(CommandList
  children: [
    (C {(set)} {(-o)} {(nounset)})
    (C {(set)} {(-o)} {(pipefail)})
    (C {(set)} {(-o)} {(errexit)})
    (C {(source)} {(test/common.sh)})
    (FuncDef
      name: stage2
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:base_dir)
                  op: Equal
                  rhs: {($ VSub_Number '$1')}
                  spids: [66]
                )
              ]
              spids: [64]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:action)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [(C {(basename)} {($ VSub_Name '$base_dir')})]
                          )
                        left_token: <Left_CommandSub '$('>
                        spids: [76 80]
                      )
                    }
                  spids: [75]
                )
              ]
              spids: [73]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:out)
                  op: Equal
                  rhs: {($ VSub_Name '$base_dir') (/stage2)}
                  spids: [86]
                )
              ]
              spids: [84]
            )
            (C {(mkdir)} {(-p)} {($ VSub_Name '$out')})
            (C {(benchmarks/report.R)} {($ VSub_Name '$action')} {($ VSub_Name '$base_dir') (/stage1)} 
              {($ VSub_Name '$out')}
            )
            (C {(tree)} {($ VSub_Name '$out')})
          ]
          spids: [61]
        )
      spids: [57 60]
    )
    (FuncDef
      name: stage3
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:base_dir)
                  op: Equal
                  rhs: {($ VSub_Number '$1')}
                  spids: [126]
                )
              ]
              spids: [124]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:name)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [(C {(basename)} {($ VSub_Name '$base_dir')})]
                          )
                        left_token: <Left_CommandSub '$('>
                        spids: [136 140]
                      )
                    }
                  spids: [135]
                )
              ]
              spids: [133]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:script)
                  op: Equal
                  rhs: {(benchmarks/) ($ VSub_Name '$name') (.sh)}
                  spids: [145]
                )
              ]
              spids: [143]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:out)
                  op: Equal
                  rhs: {($ VSub_Name '$base_dir') (/index.html)}
                  spids: [154]
                )
              ]
              spids: [152]
            )
            (C {(mkdir)} {(-p)} 
              {
                (CommandSubPart
                  command_list: (CommandList children:[(C {(dirname)} {($ VSub_Name '$out')})])
                  left_token: <Left_CommandSub '$('>
                  spids: [163 167]
                )
              }
            )
            (SimpleCommand
              words: [{($ VSub_Name '$script')} {(print-report)} {($ VSub_Name '$base_dir') (/stage2)}]
              redirects: [
                (Redir
                  op_id: Redir_Great
                  fd: 16777215
                  arg_word: {($ VSub_Name '$out')}
                  spids: [178]
                )
              ]
            )
            (C {(echo)} {(DQ ('Wrote ') ($ VSub_Name '$out'))})
          ]
          spids: [121]
        )
      spids: [117 120]
    )
    (FuncDef
      name: osh-parser
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:base_dir)
                  op: Equal
                  rhs: {(_tmp/osh-parser)}
                  spids: [203]
                )
              ]
              spids: [201]
            )
            (C {(benchmarks/osh-parser.sh)} {(stage1)} {(../benchmark-data/osh-parser)})
            (C {(stage2)} {($ VSub_Name '$base_dir')})
            (C {(stage3)} {($ VSub_Name '$base_dir')})
          ]
          spids: [198]
        )
      spids: [194 197]
    )
    (FuncDef
      name: osh-runtime
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:base_dir)
                  op: Equal
                  rhs: {(_tmp/osh-runtime)}
                  spids: [236]
                )
              ]
              spids: [234]
            )
            (C {(benchmarks/osh-runtime.sh)} {(stage1)} {(../benchmark-data/osh-runtime)})
            (C {(stage2)} {($ VSub_Name '$base_dir')})
            (C {(stage3)} {($ VSub_Name '$base_dir')})
          ]
          spids: [231]
        )
      spids: [227 230]
    )
    (FuncDef
      name: vm-baseline
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:base_dir)
                  op: Equal
                  rhs: {(_tmp/vm-baseline)}
                  spids: [272]
                )
              ]
              spids: [270]
            )
            (C {(benchmarks/vm-baseline.sh)} {(stage1)} {(../benchmark-data/vm-baseline)})
            (C {(stage2)} {($ VSub_Name '$base_dir')})
            (C {(stage3)} {($ VSub_Name '$base_dir')})
          ]
          spids: [267]
        )
      spids: [263 266]
    )
    (FuncDef
      name: oheap
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:base_dir)
                  op: Equal
                  rhs: {(_tmp/oheap)}
                  spids: [308]
                )
              ]
              spids: [306]
            )
            (C {(benchmarks/oheap.sh)} {(stage1)})
            (C {(stage2)} {($ VSub_Name '$base_dir')})
            (C {(stage3)} {($ VSub_Name '$base_dir')})
          ]
          spids: [303]
        )
      spids: [299 302]
    )
    (FuncDef
      name: all
      body: 
        (BraceGroup
          children: [(C {(osh-parser)}) (C {(osh-runtime)}) (C {(vm-baseline)}) (C {(oheap)})]
          spids: [335]
        )
      spids: [331 334]
    )
    (FuncDef
      name: dev-index
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:out)
                  op: Equal
                  rhs: {(_tmp/benchmarks.html)}
                  spids: [364]
                )
              ]
              spids: [362]
            )
            (ForEach
              iter_name: name
              iter_words: [{(osh-parser)} {(osh-runtime)} {(vm-baseline)} {(oheap)}]
              do_arg_iter: F
              body: 
                (DoGroup
                  children: [
                    (C {(echo)} 
                      {
                        (DQ ('<a href=') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) 
                          ($ VSub_Name '$name') (/index.html) (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) ('>') ($ VSub_Name '$name') 
                          ('</a> <br/>')
                        )
                      }
                    )
                  ]
                  spids: [383 400]
                )
              redirects: [
                (Redir
                  op_id: Redir_Great
                  fd: 16777215
                  arg_word: {($ VSub_Name '$out')}
                  spids: [402]
                )
              ]
              spids: [373 381]
            )
            (C {(log)} {(DQ ('Wrote ') ($ VSub_Name '$out'))})
          ]
          spids: [359]
        )
      spids: [355 358]
    )
    (C {(DQ ($ VSub_At '$@'))})
  ]
)