(command.CommandList children: [ (C {(KW_Set set)} {(-o)} {(nounset)}) (C {(KW_Set set)} {(-o)} {(pipefail)}) (C {(KW_Set set)} {(-o)} {(errexit)}) (C {(source)} {(test/common.sh)}) (command.ShFunction name: assert-deps body: (command.BraceGroup children: [ (command.AndOr ops: [Op_DPipe] children: [ (command.Pipeline children: [(C {(bin/oshc)} {(deps)}) (C {(diff)} {(-u)} {(/dev/fd/3)} {(-)})] negated: F ) (C {(fail)}) ] ) ] ) ) (command.ShFunction name: usage body: (command.BraceGroup children: [ (C {(KW_Set set)} {(Lit_Other '+') (o)} {(errexit)}) (C {(bin/oshc)}) (command.AndOr ops: [Op_DPipe] children: [(C {(test)} {($ VSub_QMark '$?')} {(-eq)} {(2)}) (C {(fail)})] ) (C {(bin/oshc)} {(invalid)}) (command.AndOr ops: [Op_DPipe] children: [(C {(test)} {($ VSub_QMark '$?')} {(-eq)} {(2)}) (C {(fail)})] ) (command.Pipeline children: [(C {(echo)} {(SQ <'<'>)}) (C {(bin/oshc)} {(deps)})] negated: F ) (command.AndOr ops: [Op_DPipe] children: [(C {(test)} {($ VSub_QMark '$?')} {(-eq)} {(2)}) (C {(fail)})] ) (C {(bin/oshc)} {(deps)} {(nonexistent.txt)}) (command.AndOr ops: [Op_DPipe] children: [(C {(test)} {($ VSub_QMark '$?')} {(-eq)} {(2)}) (C {(fail)})] ) (command.ControlFlow token:<ControlFlow_Return return>) (C {(echo)} {(--)}) (C {(bin/oshc)} {(--help)}) (command.AndOr ops: [Op_DPipe] children: [(C {(test)} {($ VSub_QMark '$?')} {(-eq)} {(0)}) (C {(fail)})] ) (C {(KW_Set set)} {(-o)} {(errexit)}) ] ) ) (command.ShFunction name: deps body: (command.BraceGroup children: [ (C {(bin/oshc)} {(deps)} {($ VSub_Number '$0')}) (command.AndOr ops: [Op_DPipe] children: [(C {(test)} {($ VSub_QMark '$?')} {(-eq)} {(0)}) (C {(fail)})] ) (command.Simple words: [{(assert-deps)}] redirects: [ (redir.HereDoc op: <Redir_DLess '<<'> fd: 16777215 here_begin: {(EOF)} here_end_span_id: 276 stdin_parts: [('if { grep foo bar; } then\n') (' cat hi\n') ('fi\n')] ) (redir.HereDoc op: <Redir_DLess '3<<'> fd: 3 here_begin: {(DEPS)} here_end_span_id: 280 stdin_parts: [('grep\n') ('cat\n')] ) ] ) (command.Simple words: [{(assert-deps)}] redirects: [ (redir.HereDoc op: <Redir_DLess '<<'> fd: 16777215 here_begin: {(EOF)} here_end_span_id: 304 stdin_parts: [ ('f() {\n') (' g\n') ('}\n') ('g() {\n') (' echo G\n') ('}\n') ('f\n') ('grep foo bar\n') ] ) (redir.HereDoc op: <Redir_DLess '3<<'> fd: 3 here_begin: {(DEPS)} here_end_span_id: 307 stdin_parts: [('grep\n')] ) ] ) (command.Simple words: [{(assert-deps)}] redirects: [ (redir.HereDoc op: <Redir_DLess '<<'> fd: 16777215 here_begin: {(EOF)} here_end_span_id: 328 stdin_parts: [('g\n') ('g() {\n') (' echo G\n') ('}\n') ('grep foo bar\n')] ) (redir.HereDoc op: <Redir_DLess '3<<'> fd: 3 here_begin: {(DEPS)} here_end_span_id: 332 stdin_parts: [('g\n') ('grep\n')] ) ] ) ] ) ) (C {(readonly)} {(-a)} {(Lit_VarLike 'PASSING=') (sh_array_literal left:<Op_LParen '('> words:[{(usage)} {(deps)}])} ) (command.ShFunction name: all-passing body: (command.BraceGroup children: [ (C {(run-all)} { (DQ (braced_var_sub token: <VSub_Name PASSING> bracket_op: (bracket_op.WholeArray op_id:Lit_At) ) ) } ) ] ) ) (C {(DQ ($ VSub_At '$@'))}) ] )