(command.CommandList
  children: [
    (command.Simple
      blame_tok: <set>
      more_env: []
      words: [{<set>} {<-o>} {<nounset>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <set>
      more_env: []
      words: [{<set>} {<-o>} {<pipefail>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <set>
      more_env: []
      words: [{<set>} {<-o>} {<errexit>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <source>
      more_env: []
      words: [{<source>} {<'test/common.sh'>}]
      redirects: []
      do_fork: T
    )
    (command.ShFunction
      name_tok: <process-file>
      name: process-file
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <local>
              more_env: []
              words: [{<local>} {<Id.Lit_VarLike 'proj='> ($ Id.VSub_Number 1)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <local>
              more_env: []
              words: [{<local>} {<Id.Lit_VarLike 'abs_path='> ($ Id.VSub_Number 2)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <local>
              more_env: []
              words: [{<local>} {<Id.Lit_VarLike 'rel_path='> ($ Id.VSub_Number 3)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <local>
              more_env: []
              words: [
                {<local>}
                {<Id.Lit_VarLike 'raw_base='> <'_tmp/wild/raw/'> ($ Id.VSub_DollarName proj) <'/'> 
                  ($ Id.VSub_DollarName rel_path)
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <local>
              more_env: []
              words: [
                {<local>}
                {<Id.Lit_VarLike 'www_base='> <'_tmp/wild/www/'> ($ Id.VSub_DollarName proj) <'/'> 
                  ($ Id.VSub_DollarName rel_path)
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <mkdir>
              more_env: []
              words: [
                {<mkdir>}
                {<-p>}
                {
                  (CommandSub
                    left_token: <Id.Left_DollarParen '$('>
                    child: 
                      (command.Simple
                        blame_tok: <dirname>
                        more_env: []
                        words: [{<dirname>} {($ Id.VSub_DollarName raw_base)}]
                        redirects: []
                        do_fork: T
                      )
                    right: <Id.Eof_RParen _>
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <mkdir>
              more_env: []
              words: [
                {<mkdir>}
                {<-p>}
                {
                  (CommandSub
                    left_token: <Id.Left_DollarParen '$('>
                    child: 
                      (command.Simple
                        blame_tok: <dirname>
                        more_env: []
                        words: [{<dirname>} {($ Id.VSub_DollarName www_base)}]
                        redirects: []
                        do_fork: T
                      )
                    right: <Id.Eof_RParen _>
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <log>
              more_env: []
              words: [
                {<log>}
                {
                  (DQ <'--- Processing '> ($ Id.VSub_DollarName proj) <' - '> 
                    ($ Id.VSub_DollarName rel_path)
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <wc>
              more_env: []
              words: [{<wc>} {($ Id.VSub_DollarName abs_path)}]
              redirects: [
                (Redir
                  op: <Id.Redir_Great '>'>
                  loc: (redir_loc.Fd fd:1)
                  arg: {(${ Id.VSub_Name raw_base) <__wc.txt>}
                )
              ]
              do_fork: T
            )
            (command.Simple
              blame_tok: <cp>
              more_env: []
              words: [{<cp>} {($ Id.VSub_DollarName abs_path)} {(${ Id.VSub_Name www_base) <.txt>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <local>
              more_env: []
              words: [
                {<local>}
                {<Id.Lit_VarLike 'task_file='> (${ Id.VSub_Name raw_base) <__parse.task.txt>}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <local>
              more_env: []
              words: [
                {<local>}
                {<Id.Lit_VarLike 'stderr_file='> (${ Id.VSub_Name raw_base) <__parse.stderr.txt>}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <local>
              more_env: []
              words: [{<local>} {<Id.Lit_VarLike 'out_file='> (${ Id.VSub_Name www_base) <__ast.html>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <run-task-with-status>
              more_env: []
              words: [
                {<run-task-with-status>}
                {($ Id.VSub_DollarName task_file)}
                {<'bin/osh'>}
                {<--ast-format>}
                {<abbrev-html>}
                {<-n>}
                {($ Id.VSub_DollarName abs_path)}
              ]
              redirects: [
                (Redir
                  op: <Id.Redir_Great '>'>
                  loc: (redir_loc.Fd fd:1)
                  arg: {($ Id.VSub_DollarName out_file)}
                )
                (Redir
                  op: <Id.Redir_Great '2>'>
                  loc: (redir_loc.Fd fd:2)
                  arg: {($ Id.VSub_DollarName stderr_file)}
                )
              ]
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'task_file='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'task_file='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'task_file='> name:task_file)
                  op: assign_op.Equal
                  rhs: {(${ Id.VSub_Name raw_base) <__osh2oil.task.txt>}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'stderr_file='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'stderr_file='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'stderr_file='> name:stderr_file)
                  op: assign_op.Equal
                  rhs: {(${ Id.VSub_Name raw_base) <__osh2oil.stderr.txt>}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'out_file='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'out_file='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'out_file='> name:out_file)
                  op: assign_op.Equal
                  rhs: {(${ Id.VSub_Name www_base) <__oil.txt>}
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <run-task-with-status>
              more_env: []
              words: [
                {<run-task-with-status>}
                {($ Id.VSub_DollarName task_file)}
                {($ Id.VSub_DollarName OSH)}
                {<-n>}
                {<--fix>}
                {($ Id.VSub_DollarName abs_path)}
              ]
              redirects: [
                (Redir
                  op: <Id.Redir_Great '>'>
                  loc: (redir_loc.Fd fd:1)
                  arg: {($ Id.VSub_DollarName out_file)}
                )
                (Redir
                  op: <Id.Redir_Great '2>'>
                  loc: (redir_loc.Fd fd:2)
                  arg: {($ Id.VSub_DollarName stderr_file)}
                )
              ]
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.Simple
      blame_tok: <readonly>
      more_env: []
      words: [{<readonly>} {<Id.Lit_VarLike 'NUM_TASKS='> <200>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <readonly>
      more_env: []
      words: [{<readonly>} {<Id.Lit_VarLike 'MANIFEST='> <'_tmp/wild/MANIFEST.txt'>}]
      redirects: []
      do_fork: T
    )
    (command.ShFunction
      name_tok: <parse-in-parallel>
      name: parse-in-parallel
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <local>
              more_env: []
              words: [{<local>} {<Id.Lit_VarLike 'failed='> (SQ )}]
              redirects: []
              do_fork: T
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <xargs>
                  more_env: []
                  words: [
                    {<xargs>}
                    {<-n>}
                    {<3>}
                    {<-P>}
                    {($ Id.VSub_DollarName JOBS)}
                    {<-->}
                    {($ Id.VSub_Number 0)}
                    {<process-file>}
                  ]
                  redirects: []
                  do_fork: T
                )
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'failed='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'failed='>
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'failed='> name:failed)
                      op: assign_op.Equal
                      rhs: {<1>}
                    )
                  ]
                  redirects: []
                )
              ]
              ops: [<Id.Op_DPipe _>]
            )
            (command.Simple
              blame_tok: <tree>
              more_env: []
              words: [{<tree>} {<-L>} {<3>} {<'_tmp/wild'>}]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <parse-and-report>
      name: parse-and-report
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <local>
              more_env: []
              words: [
                {<local>}
                {<Id.Lit_VarLike 'manifest_regex='> 
                  (BracedVarSub
                    left: <Id.Left_DollarBrace '${'>
                    token: <Id.VSub_Number 1>
                    var_name: 1
                    suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:{})
                    right: <Id.Right_DollarBrace '}'>
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.TimeBlock
              keyword: <Id.KW_Time time>
              pipeline: 
                (BraceGroup
                  left: <Id.Lit_LBrace '{'>
                  children: [
                    (command.Simple
                      blame_tok: <'test/wild.sh'>
                      more_env: []
                      words: [{<'test/wild.sh'>} {<write-manifest>}]
                      redirects: []
                      do_fork: T
                    )
                    (command.If
                      if_kw: <Id.KW_If if>
                      arms: [
                        (IfArm
                          keyword: <Id.KW_If if>
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.Simple
                                      blame_tok: <test>
                                      more_env: []
                                      words: [
                                        {<test>}
                                        {<-n>}
                                        {(DQ ($ Id.VSub_DollarName manifest_regex))}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.Pipeline
                              children: [
                                (command.Simple
                                  blame_tok: <egrep>
                                  more_env: []
                                  words: [
                                    {<egrep>}
                                    {<-->}
                                    {(DQ ($ Id.VSub_DollarName manifest_regex))}
                                    {($ Id.VSub_DollarName MANIFEST)}
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                                (command.Simple
                                  blame_tok: <parse-in-parallel>
                                  more_env: []
                                  words: [{<parse-in-parallel>}]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                              ops: [<Id.Op_Pipe _>]
                            )
                          ]
                          spids: [365 376]
                        )
                      ]
                      else_kw: <Id.KW_Else else>
                      else_action: [
                        (command.Pipeline
                          children: [
                            (command.Simple
                              blame_tok: <cat>
                              more_env: []
                              words: [{<cat>} {($ Id.VSub_DollarName MANIFEST)}]
                              redirects: []
                              do_fork: T
                            )
                            (command.Simple
                              blame_tok: <parse-in-parallel>
                              more_env: []
                              words: [{<parse-in-parallel>}]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          ops: [<Id.Op_Pipe _>]
                        )
                      ]
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <make-report>
                      more_env: []
                      words: [{<make-report>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  redirects: []
                  right: <Id.Lit_RBrace '}'>
                )
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <wild-report>
      name: wild-report
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <'test/wild_report.py'>
              more_env: [
                (EnvPair
                  left: <Id.Lit_VarLike 'PYTHONPATH='>
                  name: PYTHONPATH
                  val: {<Id.Lit_TildeLike '~'> <'/hg/json-template/python'>}
                )
              ]
              words: [{<'test/wild_report.py'>} {(DQ ($ Id.VSub_At '@'))}]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <_link>
      name: _link
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <ln>
              more_env: []
              words: [{<ln>} {<-s>} {<-f>} {<-v>} {(DQ ($ Id.VSub_At '@'))}]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <make-report>
      name: make-report
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Pipeline
              children: [
                (command.Simple
                  blame_tok: <cat>
                  more_env: []
                  words: [{<cat>} {($ Id.VSub_DollarName MANIFEST)}]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <wild-report>
                  more_env: []
                  words: [{<wild-report>} {<summarize-dirs>}]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_Pipe _>]
            )
            (command.Simple
              blame_tok: <_link>
              more_env: []
              words: [
                {<_link>}
                (word.BracedTree
                  parts: [
                    ($ Id.VSub_DollarName PWD)
                    <'/web/osh-to-oil.'>
                    (word_part.BracedTuple words:[{<html>} {<js>}])
                  ]
                )
                {<'_tmp/wild/www'>}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <_link>
              more_env: []
              words: [{<_link>} {($ Id.VSub_DollarName PWD) <'/web'>} {<_tmp>}]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <test-wild-report>
      name: test-wild-report
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Pipeline
              children: [
                (command.Simple
                  blame_tok: <egrep>
                  more_env: []
                  words: [{<egrep>} {<-->} {(SQ <'^oil|^perf-tools'>)} {($ Id.VSub_DollarName MANIFEST)}]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <wild-report>
                  more_env: []
                  words: [{<wild-report>} {<summarize-dirs>}]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_Pipe _>]
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.If
      if_kw: <Id.KW_If if>
      arms: [
        (IfArm
          keyword: <Id.KW_If if>
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.Simple
                      blame_tok: <test>
                      more_env: []
                      words: [
                        {<test>}
                        {
                          (DQ 
                            (CommandSub
                              left_token: <Id.Left_DollarParen '$('>
                              child: 
                                (command.Simple
                                  blame_tok: <basename>
                                  more_env: []
                                  words: [{<basename>} {($ Id.VSub_Number 0)}]
                                  redirects: []
                                  do_fork: T
                                )
                              right: <Id.Eof_RParen _>
                            )
                          )
                        }
                        {<Id.Lit_Equals '='>}
                        {(SQ <wild-runner.sh>)}
                      ]
                      redirects: []
                      do_fork: T
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.Simple
              blame_tok: <Id.Left_DoubleQuote '"'>
              more_env: []
              words: [{(DQ ($ Id.VSub_At '@'))}]
              redirects: []
              do_fork: T
            )
          ]
          spids: [541 560]
        )
      ]
      else_action: []
      fi_kw: <Id.KW_Fi fi>
      redirects: []
    )
  ]
)