(command.CommandList
  children: [
    (C {<set>} {<-o>} {<nounset>})
    (C {<set>} {<-o>} {<pipefail>})
    (C {<set>} {<-o>} {<errexit>})
    (C {<source>} {<'test/common.sh'>})
    (command.ShFunction
      name: _banner
      body: 
        (BraceGroup
          children: [
            (C {<echo>} {<----->})
            (C {<echo>} {(DQ ($ Id.VSub_At '$@'))})
            (C {<echo>} {<----->})
          ]
        )
    )
    (command.ShFunction
      name: prereq
      body: (BraceGroup children:[(C {<'test/unit.sh'>} {<all>}) (C {<'test/spec.sh'>} {<all>})])
    )
    (command.ShFunction
      name: measure-shells
      body: 
        (BraceGroup
          children: [
            (C {<local>} 
              {<Id.Lit_VarLike 'base_dir='> 
                (braced_var_sub
                  token: <Id.VSub_Number 1>
                  suffix_op: 
                    (suffix_op.Unary
                      tok: <Id.VTest_ColonHyphen ':-'>
                      arg_word: {<..> <Id.Lit_Slash '/'> <benchmark-data>}
                    )
                )
              }
            )
            (C {<local>} {<provenance>})
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:provenance)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: <Id.Left_DollarParen '$('>
                        child: (C {<'benchmarks/id.sh'>} {<shell-provenance>})
                      )
                    }
                  spids: [149]
                )
              ]
            )
            (C {<'benchmarks/vm-baseline.sh'>} {<measure>} {($ Id.VSub_DollarName '$provenance')} 
              {($ Id.VSub_DollarName '$base_dir') <'/vm-baseline'>}
            )
            (C {<'benchmarks/osh-runtime.sh'>} {<measure>} {($ Id.VSub_DollarName '$provenance')} 
              {($ Id.VSub_DollarName '$base_dir') <'/osh-runtime'>}
            )
            (C {<'benchmarks/osh-parser.sh'>} {<measure>} {($ Id.VSub_DollarName '$provenance')} 
              {($ Id.VSub_DollarName '$base_dir') <'/osh-parser'>}
            )
          ]
        )
    )
    (command.ShFunction
      name: measure-builds
      body: 
        (BraceGroup
          children: [
            (C {<local>} 
              {<Id.Lit_VarLike 'base_dir='> 
                (braced_var_sub
                  token: <Id.VSub_Number 1>
                  suffix_op: 
                    (suffix_op.Unary
                      tok: <Id.VTest_ColonHyphen ':-'>
                      arg_word: {<..> <Id.Lit_Slash '/'> <benchmark-data>}
                    )
                )
              }
            )
            (C {<local>} {<provenance>})
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:provenance)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: <Id.Left_DollarParen '$('>
                        child: (C {<'benchmarks/id.sh'>} {<compiler-provenance>})
                      )
                    }
                  spids: [218]
                )
              ]
            )
            (C {<'benchmarks/ovm-build.sh'>} {<measure>} {($ Id.VSub_DollarName '$provenance')} 
              {($ Id.VSub_DollarName '$base_dir') <'/ovm-build'>}
            )
          ]
        )
    )
    (command.ShFunction
      name: all
      body: (BraceGroup children:[(C {<measure-shells>}) (C {<measure-builds>})])
    )
    (command.ShFunction
      name: demo-tasks
      body: 
        (BraceGroup
          children: [
            (C {<local>} {<Id.Lit_VarLike 'provenance='> ($ Id.VSub_Number '$1')})
            (C {<local>} 
              {<Id.Lit_VarLike 'name='> 
                (command_sub
                  left_token: <Id.Left_DollarParen '$('>
                  child: (C {<basename>} {($ Id.VSub_DollarName '$provenance')})
                )
              }
            )
            (C {<local>} 
              {<Id.Lit_VarLike 'job_id='> 
                (braced_var_sub
                  token: <Id.VSub_Name name>
                  suffix_op: (suffix_op.Unary tok:<Id.VOp1_Percent '%'> arg_word:{<.provenance.txt>})
                )
              }
            )
            (C {<echo>} {(DQ <'JOB ID: '> ($ Id.VSub_DollarName '$job_id'))})
            (command.Pipeline
              children: [
                (C {<cat>} {($ Id.VSub_DollarName '$provenance')})
                (command.WhileUntil
                  keyword: <Id.KW_While while>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C {<read>} {<Id.Lit_Underscore _>} {<Id.Lit_Underscore _>} 
                              {<Id.Lit_Underscore _>} {<sh_path>} {<Id.Lit_Underscore _>}
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  body: 
                    (command.DoGroup
                      children: [
                        (command.ForEach
                          iter_name: i
                          iter_words: [{<1>} {<2>} {<3>}]
                          do_arg_iter: F
                          body: 
                            (command.DoGroup
                              children: [
                                (C {<echo>} {($ Id.VSub_DollarName '$i')} 
                                  {($ Id.VSub_DollarName '$sh_path')}
                                )
                              ]
                            )
                        )
                      ]
                    )
                )
              ]
              negated: F
            )
          ]
        )
    )
    (C {(DQ ($ Id.VSub_At '$@'))})
  ]
)