(CommandList
  children: [
    (C {(set)} {(-o)} {(nounset)})
    (C {(set)} {(-o)} {(pipefail)})
    (C {(set)} {(-o)} {(errexit)})
    (C {(source)} {(test/common.sh)})
    (FuncDef
      name: assert-deps
      body: 
        (BraceGroup
          children: [
            (AndOr
              ops: [Op_DPipe]
              children: [
                (Pipeline
                  children: [(C {(bin/oilc)} {(deps)}) (C {(diff)} {(-u)} {(/dev/fd/3)} {(-)})]
                  negated: F
                )
                (C {(fail)})
              ]
            )
          ]
          spids: [54]
        )
      spids: [50 53]
    )
    (FuncDef
      name: usage
      body: 
        (BraceGroup
          children: [
            (C {(set)} {(Lit_Other '+') (o)} {(errexit)})
            (C {(bin/oilc)})
            (AndOr
              ops: [Op_DPipe]
              children: [(C {(test)} {($ VSub_QMark '$?')} {(-eq)} {(2)}) (C {(fail)})]
            )
            (C {(bin/oilc)} {(invalid)})
            (AndOr
              ops: [Op_DPipe]
              children: [(C {(test)} {($ VSub_QMark '$?')} {(-eq)} {(2)}) (C {(fail)})]
            )
            (Pipeline
              children: [(C {(echo)} {(SQ <'<'>)}) (C {(bin/oilc)} {(deps)})]
              negated: F
            )
            (AndOr
              ops: [Op_DPipe]
              children: [(C {(test)} {($ VSub_QMark '$?')} {(-eq)} {(2)}) (C {(fail)})]
            )
            (C {(bin/oilc)} {(deps)} {(nonexistent.txt)})
            (AndOr
              ops: [Op_DPipe]
              children: [(C {(test)} {($ VSub_QMark '$?')} {(-eq)} {(2)}) (C {(fail)})]
            )
            (ControlFlow token:<ControlFlow_Return return>)
            (C {(echo)} {(--)})
            (C {(bin/oilc)} {(--help)})
            (AndOr
              ops: [Op_DPipe]
              children: [(C {(test)} {($ VSub_QMark '$?')} {(-eq)} {(0)}) (C {(fail)})]
            )
            (C {(set)} {(-o)} {(errexit)})
          ]
          spids: [82]
        )
      spids: [78 81]
    )
    (FuncDef
      name: deps
      body: 
        (BraceGroup
          children: [
            (C {(bin/oilc)} {(deps)} {($ VSub_Number '$0')})
            (AndOr
              ops: [Op_DPipe]
              children: [(C {(test)} {($ VSub_QMark '$?')} {(-eq)} {(0)}) (C {(fail)})]
            )
            (SimpleCommand
              words: [{(assert-deps)}]
              redirects: [
                (HereDoc
                  op_id: Redir_DLess
                  fd: 16777215
                  body: {(DQ ('if { grep foo bar; } then\n') ('\tcat hi\n') ('fi\n'))}
                  do_expansion: True
                  here_end: EOF
                  was_filled: T
                  spids: [266]
                )
                (HereDoc
                  op_id: Redir_DLess
                  fd: 3
                  body: {(DQ ('grep\n') ('cat\n'))}
                  do_expansion: True
                  here_end: DEPS
                  was_filled: T
                  spids: [269]
                )
              ]
            )
            (SimpleCommand
              words: [{(assert-deps)}]
              redirects: [
                (HereDoc
                  op_id: Redir_DLess
                  fd: 16777215
                  body: 
                    {
                      (DQ ('f() {\n') ('\tg\n') ('}\n') ('g() {\n') ('\techo G\n') ('}\n') ('f\n') 
                        ('grep foo bar\n')
                      )
                    }
                  do_expansion: True
                  here_end: EOF
                  was_filled: T
                  spids: [287]
                )
                (HereDoc
                  op_id: Redir_DLess
                  fd: 3
                  body: {(DQ ('grep\n'))}
                  do_expansion: True
                  here_end: DEPS
                  was_filled: T
                  spids: [290]
                )
              ]
            )
            (SimpleCommand
              words: [{(assert-deps)}]
              redirects: [
                (HereDoc
                  op_id: Redir_DLess
                  fd: 16777215
                  body: {(DQ ('g\n') ('g() {\n') ('\techo G\n') ('}\n') ('grep foo bar\n'))}
                  do_expansion: True
                  here_end: EOF
                  was_filled: T
                  spids: [312]
                )
                (HereDoc
                  op_id: Redir_DLess
                  fd: 3
                  body: {(DQ ('g\n') ('grep\n'))}
                  do_expansion: True
                  here_end: DEPS
                  was_filled: T
                  spids: [315]
                )
              ]
            )
          ]
          spids: [236]
        )
      spids: [232 235]
    )
    (Assignment
      keyword: Assign_Readonly
      flags: [-a]
      pairs: [
        (assign_pair
          lhs: (LhsName name:PASSING)
          op: Equal
          rhs: {(ArrayLiteralPart words:[{(usage)} {(deps)}])}
          spids: [334]
        )
      ]
      spids: [330]
    )
    (FuncDef
      name: all-passing
      body: 
        (BraceGroup
          children: [
            (ForEach
              iter_name: t
              iter_words: [
                {
                  (DQ 
                    (BracedVarSub
                      token: <VSub_Name PASSING>
                      bracket_op: (WholeArray op_id:Lit_At)
                      spids: [360 365]
                    )
                  )
                }
              ]
              do_arg_iter: F
              body: 
                (DoGroup
                  children: [(C {($ VSub_Name '$t')}) (C {(echo)} {(DQ ('OK  ') ($ VSub_Name '$t'))})]
                  spids: [369 387]
                )
              spids: [358 367]
            )
            (C {(echo)})
            (C {(echo)} {(DQ ('All osh2oil tests passed.'))})
          ]
          spids: [350]
        )
      spids: [346 349]
    )
    (C {(DQ ($ VSub_At '$@'))})
  ]
)