(CommandList
  children: [
    (C {(set)} {(-o)} {(nounset)})
    (C {(set)} {(-o)} {(pipefail)})
    (C {(set)} {(-o)} {(errexit)})
    (C {(source)} {(test/common.sh)})
    (FuncDef
      name: _banner
      body: 
        (BraceGroup
          children: [(C {(echo)} {(-----)}) (C {(echo)} {(DQ ($ VSub_At '$@'))}) (C {(echo)} {(-----)})]
          spids: [80]
        )
      spids: [76 79]
    )
    (FuncDef
      name: prereq
      body: 
        (BraceGroup
          children: [(C {(test/unit.sh)} {(all)}) (C {(test/spec.sh)} {(all)})]
          spids: [109]
        )
      spids: [105 108]
    )
    (FuncDef
      name: measure-shells
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:base_dir)
                  op: Equal
                  rhs: 
                    {
                      (BracedVarSub
                        token: <VSub_Number 1>
                        suffix_op: 
                          (StringUnary
                            op_id: VTest_ColonHyphen
                            arg_word: {(..) (Lit_Slash /) (benchmark-data)}
                          )
                        spids: [134 140]
                      )
                    }
                  spids: [133]
                )
              ]
              spids: [131]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [(assign_pair lhs:(LhsName name:provenance) op:Equal spids:[146])]
              spids: [144]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:provenance)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [(C {(benchmarks/id.sh)} {(shell-provenance)})]
                          )
                        left_token: <Left_CommandSub '$('>
                        spids: [150 154]
                      )
                    }
                  spids: [149]
                )
              ]
              spids: [149]
            )
            (C {(benchmarks/vm-baseline.sh)} {(measure)} {($ VSub_Name '$provenance')} 
              {($ VSub_Name '$base_dir') (/vm-baseline)}
            )
            (C {(benchmarks/osh-runtime.sh)} {(measure)} {($ VSub_Name '$provenance')} 
              {($ VSub_Name '$base_dir') (/osh-runtime)}
            )
            (C {(benchmarks/osh-parser.sh)} {(measure)} {($ VSub_Name '$provenance')} 
              {($ VSub_Name '$base_dir') (/osh-parser)}
            )
          ]
          spids: [128]
        )
      spids: [124 127]
    )
    (FuncDef
      name: measure-builds
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:base_dir)
                  op: Equal
                  rhs: 
                    {
                      (BracedVarSub
                        token: <VSub_Number 1>
                        suffix_op: 
                          (StringUnary
                            op_id: VTest_ColonHyphen
                            arg_word: {(..) (Lit_Slash /) (benchmark-data)}
                          )
                        spids: [203 209]
                      )
                    }
                  spids: [202]
                )
              ]
              spids: [200]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [(assign_pair lhs:(LhsName name:provenance) op:Equal spids:[215])]
              spids: [213]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:provenance)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [(C {(benchmarks/id.sh)} {(compiler-provenance)})]
                          )
                        left_token: <Left_CommandSub '$('>
                        spids: [219 223]
                      )
                    }
                  spids: [218]
                )
              ]
              spids: [218]
            )
            (C {(benchmarks/ovm-build.sh)} {(measure)} {($ VSub_Name '$provenance')} 
              {($ VSub_Name '$base_dir') (/ovm-build)}
            )
          ]
          spids: [197]
        )
      spids: [193 196]
    )
    (FuncDef
      name: all
      body: (BraceGroup children:[(C {(measure-shells)}) (C {(measure-builds)})] spids:[253])
      spids: [249 252]
    )
    (FuncDef
      name: demo-tasks
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:provenance)
                  op: Equal
                  rhs: {($ VSub_Number '$1')}
                  spids: [283]
                )
              ]
              spids: [281]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:name)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [(C {(basename)} {($ VSub_Name '$provenance')})]
                          )
                        left_token: <Left_CommandSub '$('>
                        spids: [295 299]
                      )
                    }
                  spids: [294]
                )
              ]
              spids: [292]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:job_id)
                  op: Equal
                  rhs: 
                    {
                      (BracedVarSub
                        token: <VSub_Name name>
                        suffix_op: (StringUnary op_id:VOp1_Percent arg_word:{(.provenance.txt)})
                        spids: [305 309]
                      )
                    }
                  spids: [304]
                )
              ]
              spids: [302]
            )
            (C {(echo)} {(DQ ('JOB ID: ') ($ VSub_Name '$job_id'))})
            (Pipeline
              children: [
                (C {(cat)} {($ VSub_Name '$provenance')})
                (While
                  cond: [
                    (Sentence
                      child: (C {(read)} {(_)} {(_)} {(_)} {(sh_path)} {(_)})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  body: 
                    (DoGroup
                      children: [
                        (ForEach
                          iter_name: i
                          iter_words: [{(1)} {(2)} {(3)}]
                          do_arg_iter: F
                          body: 
                            (DoGroup
                              children: [(C {(echo)} {($ VSub_Name '$i')} {($ VSub_Name '$sh_path')})]
                              spids: [363 373]
                            )
                          spids: [355 361]
                        )
                      ]
                      spids: [347 376]
                    )
                )
              ]
              negated: F
            )
          ]
          spids: [278]
        )
      spids: [274 277]
    )
    (C {(DQ ($ VSub_At '$@'))})
  ]
)