(CommandList children: [ (FuncDef name: source_bad_syntax body: (BraceGroup children: [ (SimpleCommand words: [{(cat)}] redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {(_tmp/bad-syntax.sh)} spids: [38] ) (HereDoc op_id: Redir_DLess fd: 16777215 body: {(DQ ('if foo; echo ls; fi\n'))} do_expansion: True here_end: EOF was_filled: T spids: [41] ) ] ) (C {(.)} {(_tmp/bad-syntax.sh)}) ] spids: [33] ) spids: [29 32] ) (FuncDef name: eval_bad_syntax body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:code) op: Equal rhs: {(SQ <'if foo; echo ls; fi'>)} spids: [78] ) ] spids: [76] ) (C {(eval)} {(DQ ('echo --\n') (' ') ($ VSub_Name '$code'))}) ] spids: [73] ) spids: [69 72] ) (FuncDef name: no_such_command body: (BraceGroup children: [ (C {(set)} {(-o)} {(errexit)}) (C {(ZZZZZ)}) (C {(echo)} {(SQ <'SHOULD NOT GET HERE'>)}) ] spids: [109] ) spids: [105 108] ) (FuncDef name: no_such_command_commandsub body: (BraceGroup children: [ (C {(set)} {(-o)} {(errexit)}) (C {(echo)} { (CommandSubPart command_list: (CommandList children:[(C {(ZZZZZ)})]) left_token: <Left_CommandSub '$('> spids: [148 150] ) } ) (C {(echo)} {(SQ <'SHOULD NOT GET HERE'>)}) ] spids: [136] ) spids: [132 135] ) (FuncDef name: no_such_command_heredoc body: (BraceGroup children: [ (C {(set)} {(-o)} {(errexit)}) (SimpleCommand words: [{(cat)}] redirects: [ (HereDoc op_id: Redir_DLess fd: 16777215 body: { (DQ ('one\n') (CommandSubPart command_list: (CommandList children:[(C {(ZZZZZ)})]) left_token: <Left_CommandSub '$('> spids: [195 197] ) ('\n') ('three\n') ) } do_expansion: True here_end: EOF was_filled: T spids: [191] ) ] ) (C {(echo)} {(SQ <'SHOULD NOT GET HERE'>)}) ] spids: [166] ) spids: [162 165] ) (FuncDef name: failed_command body: (BraceGroup children: [ (C {(set)} {(-o)} {(errexit)}) (C {(false)}) (C {(echo)} {(SQ <'SHOULD NOT GET HERE'>)}) ] spids: [215] ) spids: [211 214] ) (FuncDef name: pipefail body: (BraceGroup children: [ (Pipeline children:[(C {(false)}) (C {(wc)} {(-l)})] negated:F) (C {(set)} {(-o)} {(errexit)}) (C {(set)} {(-o)} {(pipefail)}) (Pipeline children:[(C {(false)}) (C {(wc)} {(-l)})] negated:F) (C {(echo)} {(SQ <'SHOULD NOT GET HERE'>)}) ] spids: [242] ) spids: [238 241] ) (FuncDef name: pipefail_func body: (BraceGroup children: [ (C {(set)} {(-o)} {(errexit)} {(-o)} {(pipefail)}) (FuncDef name: f body: (BraceGroup children: [(C {(cat)}) (ControlFlow token:<ControlFlow_Return return> arg_word:{(42)})] spids: [310] ) spids: [306 309] ) (Pipeline children:[(C {(echo)} {(hi)}) (C {(f)}) (C {(wc)})] negated:F) (C {(echo)} {(SQ <'SHOULD NOT GET HERE'>)}) ] spids: [292] ) spids: [288 291] ) (FuncDef name: pipefail_group body: (BraceGroup children: [ (C {(set)} {(-o)} {(errexit)} {(-o)} {(pipefail)}) (Pipeline children: [ (C {(echo)} {(hi)}) (BraceGroup children: [ (Sentence child:(C {(cat)}) terminator:<Op_Semi ';'>) (Sentence child: (C {(sh)} {(-c)} {(SQ <'exit 42'>)}) terminator: <Op_Semi ';'> ) ] spids: [385] ) (C {(wc)}) ] negated: F ) (C {(echo)} {(SQ <'SHOULD NOT GET HERE'>)}) ] spids: [365] ) spids: [361 364] ) (FuncDef name: pipefail_subshell body: (BraceGroup children: [ (C {(set)} {(-o)} {(errexit)} {(-o)} {(pipefail)}) (Pipeline children: [ (C {(echo)} {(hi)}) (Subshell child: (CommandList children: [ (Sentence child:(C {(cat)}) terminator:<Op_Semi ';'>) (C {(sh)} {(-c)} {(SQ <'exit 42'>)}) ] ) spids: [443 454] ) (C {(wc)}) ] negated: F ) (C {(echo)} {(SQ <'SHOULD NOT GET HERE'>)}) ] spids: [423] ) spids: [419 422] ) (FuncDef name: pipefail_while body: (BraceGroup children: [ (C {(set)} {(-o)} {(errexit)} {(-o)} {(pipefail)}) (Pipeline children: [ (C {(seq)} {(3)}) (While cond: [(Sentence child:(C {(true)}) terminator:<Op_Semi ';'>)] body: (DoGroup children: [ (C {(read)} {(line)}) (C {(echo)} {(X)} {($ VSub_Name '$line')} {(X)}) (If arms: [ (if_arm cond: [ (Sentence child: (C {(test)} {(DQ ($ VSub_Name '$line'))} {(Lit_Other '=')} {(2)}) terminator: <Op_Semi ';'> ) ] action: [(C {(sh)} {(-c)} {(SQ <'exit 42'>)})] spids: [16777215 533] ) ] spids: [16777215 545] ) ] spids: [503 548] ) ) (C {(wc)}) ] negated: F ) (C {(echo)} {(SQ <'SHOULD NOT GET HERE'>)}) ] spids: [478] ) spids: [474 477] ) (FuncDef name: pipefail_multiple body: (BraceGroup children: [ (C {(set)} {(-o)} {(errexit)} {(-o)} {(pipefail)}) (Pipeline children: [ (BraceGroup children: [ (Sentence child: (C {(echo)} {(SQ <four>)}) terminator: <Op_Semi ';'> ) (Sentence child: (C {(sh)} {(-c)} {(SQ <'exit 4'>)}) terminator: <Op_Semi ';'> ) ] spids: [586] ) (BraceGroup children: [ (Sentence child: (C {(echo)} {(SQ <five>)}) terminator: <Op_Semi ';'> ) (Sentence child: (C {(sh)} {(-c)} {(SQ <'exit 5'>)}) terminator: <Op_Semi ';'> ) ] spids: [609] ) (BraceGroup children: [ (Sentence child: (C {(echo)} {(SQ <six>)}) terminator: <Op_Semi ';'> ) (Sentence child: (C {(sh)} {(-c)} {(SQ <'exit 6'>)}) terminator: <Op_Semi ';'> ) ] spids: [632] ) ] negated: F ) ] spids: [572] ) spids: [568 571] ) (FuncDef name: control_flow body: (BraceGroup children: [ (ControlFlow token:<ControlFlow_Break break>) (ControlFlow token:<ControlFlow_Continue continue>) (C {(echo)} {(SQ <'SHOULD NOT GET HERE'>)}) ] spids: [662] ) spids: [658 661] ) (FuncDef name: nounset body: (BraceGroup children: [ (C {(set)} {(-o)} {(nounset)}) (C {(echo)} {($ VSub_Name '$x')}) (C {(echo)} {(SQ <'SHOULD NOT GET HERE'>)}) ] spids: [695] ) spids: [691 694] ) (FuncDef name: nounset_arith body: (BraceGroup children: [ (C {(set)} {(-o)} {(nounset)}) (C {(echo)} {(ArithSubPart anode:(ArithVarRef name:x) spids:[746 751])}) (C {(echo)} {(SQ <'SHOULD NOT GET HERE'>)}) ] spids: [734] ) spids: [730 733] ) (FuncDef name: divzero body: (BraceGroup children: [ (C {(echo)} { (ArithSubPart anode: (ArithBinary op_id: Arith_Slash left: (ArithWord w:{(Lit_Digits 1)}) right: (ArithWord w:{(Lit_Digits 0)}) ) spids: [773 782] ) } ) (C {(echo)} {(SQ <'SHOULD NOT GET HERE'>)}) ] spids: [768] ) spids: [764 767] ) (FuncDef name: divzero_var body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [(assign_pair lhs:(LhsName name:zero) op:Equal rhs:{(0)} spids:[804])] spids: [802] ) (C {(echo)} { (ArithSubPart anode: (ArithBinary op_id: Arith_Slash left: (ArithWord w:{(Lit_Digits 1)}) right: (ArithVarRef name:zero) ) spids: [810 819] ) } ) (C {(echo)} {(SQ <'SHOULD NOT GET HERE'>)}) ] spids: [799] ) spids: [795 798] ) (FuncDef name: string_to_int_arith body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [(assign_pair lhs:(LhsName name:x) op:Equal rhs:{(SQ <ZZZ>)} spids:[844])] spids: [842] ) (C {(echo)} { (ArithSubPart anode: (ArithBinary op_id: Arith_Plus left: (ArithVarRef name:x) right: (ArithWord w:{(Lit_Digits 5)}) ) spids: [852 861] ) } ) (C {(set)} {(-o)} {(strict-arith)}) (C {(echo)} { (ArithSubPart anode: (ArithBinary op_id: Arith_Plus left: (ArithVarRef name:x) right: (ArithWord w:{(Lit_Digits 5)}) ) spids: [875 884] ) } ) (C {(echo)} {(SQ <'SHOULD NOT GET HERE'>)}) ] spids: [839] ) spids: [835 838] ) (FuncDef name: string_to_hex body: (BraceGroup children: [ (C {(echo)} { (ArithSubPart anode: (ArithBinary op_id: Arith_Plus left: (ArithWord w:{(Lit_Digits 0) (Lit_ArithVarLike xGG)}) right: (ArithWord w:{(Lit_Digits 1)}) ) spids: [909 919] ) } ) (C {(echo)} {(SQ <'SHOULD NOT GET HERE'>)}) ] spids: [904] ) spids: [900 903] ) (FuncDef name: string_to_octal body: (BraceGroup children: [ (C {(echo)} { (ArithSubPart anode: (ArithBinary op_id: Arith_Plus left: (ArithWord w:{(Lit_Digits 018)}) right: (ArithWord w:{(Lit_Digits 1)}) ) spids: [944 953] ) } ) (C {(echo)} {(SQ <'SHOULD NOT GET HERE'>)}) ] spids: [939] ) spids: [935 938] ) (FuncDef name: string_to_intbase body: (BraceGroup children: [ (C {(echo)} { (ArithSubPart anode: (ArithWord w:{(Lit_Digits 16) (Lit_Pound '#') (Lit_ArithVarLike GG)}) spids: [978 985] ) } ) (C {(echo)} {(SQ <'SHOULD NOT GET HERE'>)}) ] spids: [973] ) spids: [969 972] ) (FuncDef name: string_to_int_bool body: (BraceGroup children: [ (DBracket expr:(BoolBinary op_id:BoolBinary_eq left:{(a)} right:{(0)})) (C {(set)} {(-o)} {(strict-arith)}) (DBracket expr:(BoolBinary op_id:BoolBinary_eq left:{(a)} right:{(0)})) (C {(echo)} {(SQ <'SHOULD NOT GET HERE'>)}) ] spids: [1015] ) spids: [1011 1014] ) (FuncDef name: _run_test body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:t) op: Equal rhs: {($ VSub_Number '$1')} spids: [1077] ) ] spids: [1075] ) (C {(echo)} {(DQ (--------))}) (C {(echo)} {(DQ (' CASE: ') ($ VSub_Name '$t'))}) (Subshell child:(C {($ VSub_Name '$t')}) spids:[1101 1105]) (C {(echo)} {(DQ (' STATUS: ') ($ VSub_QMark '$?'))}) (C {(echo)}) ] spids: [1072] ) spids: [1068 1071] ) (FuncDef name: all body: (BraceGroup children: [ (C {(_run_test)} {(control_flow)}) (ForEach iter_name: t iter_words: [ {(no_such_command)} {(no_such_command_commandsub)} {(no_such_command_heredoc)} {(failed_command)} {(pipefail)} {(pipefail_group)} {(pipefail_subshell)} {(pipefail_func)} {(pipefail_while)} {(nonexistent)} {(nounset)} {(nounset_arith)} {(divzero)} {(divzero_var)} {(string_to_int_arith)} {(string_to_hex)} {(string_to_octal)} {(string_to_intbase)} {(string_to_int_bool)} ] do_arg_iter: F body: (DoGroup children:[(C {(_run_test)} {($ VSub_Name '$t')})] spids:[1198 1207]) spids: [1144 1196] ) ] spids: [1125] ) spids: [1121 1124] ) (C {(DQ ($ VSub_At '$@'))}) ] )