array=(a b c) ls ^~~~~~ "":1: Environment bindings can't contain array literals ..(command.CommandList children:[ (command.ShAssignment left: words:[] right: ) ) ) ] ) ] ) (command.CommandList children:[ (command.ShAssignment left: words:[(w ) (w ) (w )] right: ) ) ) ] ) ] ) (command.CommandList children:[ (command.Sentence child:(command.ShAssignment left: words:[(w ) (w ) (w )] right: ) ) ) ] ) terminator: ) (command.ShAssignment left: words:[(w ) (w ) (w )] right: ) ) ) ] ) ] ) (C (w ) (w )) (command.Pipeline children:[ (C (w ) (w )) (C (w ) (w )) ] ops:[] ) (command.AndOr children:[(C (w ) (w )) (C (w ))] ops:[] ) (command.AndOr children:[ (command.Pipeline children:[ (C (w ) (w )) (C (w ) (w )) ] ops:[] ) (C (w )) ] ops:[] ) (command.Case case_kw: to_match:(case_arg.Word w:(w )) arms_start: arms:[] arms_end: ) (command.Case case_kw: to_match:(case_arg.Word w:(w )) arms_start: arms:[ (CaseArm left: pattern:(pat.Words words:[(w ) (w ) (w )] ) middle: action:[(C (w ) (w ))] right: ) ] arms_end: ) (command.Case case_kw: to_match:(case_arg.Word w:(w )) arms_start: arms:[ (CaseArm left: pattern:(pat.Words words:[(w )]) middle: action:[(C (w ) (w ))] right: ) ] arms_end: ) (command.Case case_kw: to_match:(case_arg.Word w:(w )) arms_start: arms:[ (CaseArm left: pattern:(pat.Words words:[(w )]) middle: action:[(C (w ) (w ))] right: ) (CaseArm left: pattern:(pat.Words words:[(w )]) middle: action:[(C (w ) (w ))] right: ) ] arms_end: ) (command.Case case_kw: to_match:(case_arg.Word w:(w )) arms_start: arms:[ (CaseArm left: pattern:(pat.Words words:[(w )]) middle: action:[(C (w ) (w ))] right: ) (CaseArm left: pattern:(pat.Words words:[(w )]) middle: action:[ (command.Sentence child:(C (w ) (w )) terminator: ) ] ) ] arms_end: ) (command.Case case_kw: to_match:(case_arg.Word w:(w )) arms_start: arms:[ (CaseArm left: pattern:(pat.Words words:[(w )]) middle: action:[(C (w ) (w ))] right: ) (CaseArm left: pattern:(pat.Words words:[(w )]) middle: action:[(C (w ) (w ))] ) ] arms_end: ) (command.Simple blame_tok:(Token id:Lit_Chars length:2 col:0 line:(SourceLine line_num:1 content:"ls foo" src:(source.MainFile path:"") ) ) more_env:[] words:[ (CompoundWord parts:[...0x7f3a1a504188]) (CompoundWord parts:[(Token id:Lit_Chars length:3 col:3 line:...0x7f3a1a520aa0)] ) ] is_last_cmd:F ) (command.ShFunction name_tok:(Token id:Lit_Chars length:3 col:0 line:(SourceLine line_num:1 content:"fun() { echo hi; }" src:(source.MainFile path:"") ) ) name:fun body:(BraceGroup left:(Token id:Lit_LBrace length:1 col:6 line:...0x7f3a1a520ec0) children:[ (command.Sentence child:(command.Simple blame_tok:(Token id:Lit_Chars length:4 col:8 line:...0x7f3a1a520ec0) more_env:[] words:[ (CompoundWord parts:[...0x7f3a1a510b48]) (CompoundWord parts:[ (Token id:Lit_Chars length:2 col:13 line:...0x7f3a1a520ec0) ] ) ] is_last_cmd:F ) terminator:(Token id:Op_Semi length:1 col:15 line:...0x7f3a1a520ec0) ) ] right:(Token id:Lit_RBrace length:1 col:17 line:...0x7f3a1a520ec0) ) ) (C (w ) (w (CommandSub left_token: child:(C (w ) (w )) right: ) (CommandSub left_token: child:(C (w ) (w )) right: ) ) ) (C (w ) (w (DQ (CommandSub left_token: child:(C (w ) (w )) right: ) (CommandSub left_token: child:(C (w ) (w )) right: ) ) ) ) (command.CommandList children:[ (command.DBracket left: expr:(bool_expr.Binary op_id:BoolBinary_gt left:(w ($ VSub_Pound)) right:(w ) ) right: ) ] ) (command.CommandList children:[ (command.DBracket left: expr:(bool_expr.LogicalAnd left:(bool_expr.Binary op_id:BoolBinary_gt left:(w ($ VSub_Pound)) right:(w ) ) right:(bool_expr.WordTest w:(w )) ) right: ) ] ) (command.CommandList children:[ (command.If if_kw: arms:[ (IfArm keyword:...0x7f3a1....a51ddb8 cond:(List_of_command (command.DBracket left: expr:(bool_expr.Binary op_id:BoolBinary_gt left:(w ($ VSub_Pound)) right:(w ) ) right: ) ) then_kw: action:[(C (w ) (w ))] then_tok:...0x7f3a1a51d530 ) ] else_action:[] fi_kw: ) ] ) (command.CommandList children:[ (command.DBracket left: expr:(bool_expr.Binary op_id:BoolBinary_EqualTilde left:(w ) right:(w ) ) right: ) ] ) (command.CommandList children:[ (command.DBracket left: expr:(bool_expr.Binary op_id:BoolBinary_EqualTilde left:(w ) right:(w (word_part.BashRegexGroup left: child:(w ) right: ) ) ) right: ) ] ) (command.CommandList children:[ (command.DParen left: child:(arith_expr.Binary op: left:(w ) right:(w ) ) right: ) ] ) (command.CommandList children:[ (command.ForEach keyword: iter_names:[i] iterable:(for_iter.Words words:[(w ) (w ) (w )] ) semi_tok: body:(command.DoGroup left: children:[(C (w ) (w ($ i)))] right: ) ) ] ) (command.CommandList children:[ (command.ForEach keyword: iter_names:[i] iterable:(for_iter.Words words:[]) semi_tok: body:(command.DoGroup left: children:[(C (w ) (w ($ i)))] right: ) ) ] ) (command.CommandList children:[ (command.ForEach keyword: iter_names:[i] iterable:(for_iter.Args) body:(command.DoGroup left: children:[ (command.Sentence child:(C (w ) (w ($ i))) terminator: ) ] right: ) ) ] ) (command.CommandList children:[ (command.ForEach keyword: iter_names:[i] iterable:(for_iter.Args) body:(command.DoGroup left: children:[(C (w ) (w ($ i)))] right: ) ) ] ) (command.CommandList children:[ (command.ForExpr keyword: init:(arith_expr.BinaryAssign op_id:Arith_Equal left: right:(w ) ) cond:(arith_expr.Binary op: left: right:(w ) ) update:(arith_expr.UnaryAssign op_id:Arith_DPlus child: ) body:(command.DoGroup left: children:[(C (w ) (w ($ i)))] right: ) ) ] ) (command.CommandList children:[ (command.ForExpr keyword: init:(arith_expr.BinaryAssign op_id:Arith_Equal left: right:(w ) ) cond:(arith_expr.Binary op: left: right:(w ) ) update:(arith_expr.UnaryAssign op_id:Arith_DPlus child: ) body:(command.DoGroup left:<.KW_Do do> children:[(C (w ) (w ($ i)))] right: ) ) ] ) (command.CommandList children:[ (command.ForExpr keyword: init:(arith_expr.EmptyZero) cond:(arith_expr.EmptyOne) update:...0x7f3a1a82f710 body:(command.DoGroup left: children:[(C (w ) (w ($ i)))] right: ) ) ] ) (command.CommandList children:[ (command.ShFunction name_tok: name:foo body:(BraceGroup left: children:[ (command.Sentence child:(C (w ) (w )) terminator: ) ] right: ) ) ] ) (command.CommandList children:[ (command.ShFunction name_tok: name:foo body:(command.Subshell left: child:(C (w ) (w )) right: is_last_cmd:F ) ) ] ) (command.CommandList children:[ (command.ShFunction name_tok: name:foo body:(command.ForEach keyword: iter_names:[i] iterable:(for_iter.Words words:[(w )]) semi_tok: body:(command.DoGroup left: children:[ (command.Sentence child:(C (w ) (w ($ i))) terminator: ) ] right: ) ) ) ] ) (command.CommandList children:[ (command.ShFunction keyword: name_tok: name:foo body:(BraceGroup left: children:[ (command.Sentence child:(C (w ) (w )) terminator: ) ] right: ) ) ] ) (command.CommandList children:[ (command.ShFunction keyword: name_tok: name:foo body:(BraceGroup left: children:[ (command.Sentence child:(C (w ) (w )) terminator: ) ] right: ) ) ] ) (command.CommandList children:[ (command.ShFunction keyword: name_tok: name:foo body:(command.Subshell left: child:(C (w ) (w )) right: is_last_cmd:F ) ) ] ) (command.CommandList children:[ (command.ShFunction keyword: name_tok: name:foo body:(command.ForEach keyword: iter_names:[i] iterable:(for_iter.Words words:[(w )]) semi_tok: body:(command.DoGroup left: children:[ (command.Sentence child:(C (w ) (w ($ i))) terminator: ) ] right: ) ) ) ] ) (command.CommandList children:[ (command.ShFunction keyword: name_tok: name:foo body:(command.ForEach keyword: iter_names:[i] iterable:(for_iter.Words words:[(w )]) semi_tok: body:(command.DoGroup left: children:[ (command.Sentence child:(C (w ) (w ($ i))) terminator: ) ] right: ) ) ) ] ) (command.CommandList children:[ (command.ShFun... ls foo| ^ "":1: Unexpected EOF while parsing command ..ction name_tok: name:foo body:(command.Redirect child:(BraceGroup left: children:[ (command.Sentence child:(C (w ) (w )) terminator: ) ] right: ) redirects:[ (Redir op:&"> loc:(redir_loc.Fd fd:1) arg:(w ) ) (Redir op:"> loc:(redir_loc.Fd fd:2) arg:(w ) ) ] ) ) ] ) (command.CommandList children:[ (command.If if_kw: arms:[ (IfArm keyword:...0x7f3a1a552a78 cond:(List_of_command (command.Sentence child:(C (w )) terminator: ) ) then_kw: action:[ (command.Sentence child:(C (w ) (w )) terminator: ) ] then_tok:...0x7f3a1a510a10 ) ] else_action:[] fi_kw: ) ] ) (command.CommandList children:[ (command.If if_kw: arms:[ (IfArm keyword:...0x7f3a1a510bb0 cond:(List_of_command (command.Sentence child:(command.Subshell left: child:(C (w )) right: is_last_cmd:F ) terminator: ) ) then_kw: action:[ (command.Sentence child:(C (w ) (w )) terminator: ) ] then_tok:...0x7f3a1a510d50 ) ] else_action:[] fi_kw: ) ] ) (command.CommandList children:[(C (w ))]) (C (w ) (w )) (command.Pipeline children:[ (C (w ) (w )) (C (w ) (w )) ] ops:[] ) (command.Pipeline negated: children:[ (C (w ) (w )) (C (w ) (w )) ] ops:[] ) (command.Pipeline children:[ (C (w ) (w )) (C (w ) (w )) (C (w )) ] ops:[ ] ) (command.CommandList children:[ (command.Pipeline children:[ (C (w )) (C (w )) (C (w )) ] ops:[ ] ) ] ) (command.CommandList children:[ (command.Pipeline children:[ (C (w )) (C (w )) (C (w )) ] ops:[ ] ) ] ) (command.CommandList children:[ (command.Pipeline children:[ (C (w )) (C (w )) (C (w )) ] ops:[ ] ) ] ) (command.CommandList children:[ (C (w ) (w (word_part.TildeSub left:)) (w (word_part.TildeSub left: name: user_name:root ) ) (w (word_part.TildeSub left:) ) (w (word_part.TildeSub left:) )... (w (word_part.TildeSub left: name: user_name:root ) ) (w ) ) ] ) (command.CommandList children:[ (command.WhileUntil keyword: cond:(List_of_command (command.Sentence child:(C (w )) terminator: ) ) body:(command.DoGroup left: children:[ (C (w ) (w )) (command.ControlFlow keyword:) ] right: ) ) ] ) (command.CommandList children:[ (command.WhileUntil keyword: cond:(List_of_command (command.Sentence child:(C (w )) terminator: ) ) body:(command.DoGroup left: children:[ (C (w ) (w )) (command.ControlFlow keyword:) ] right: ) ) ] ) (command.CommandList children:[ (command.WhileUntil keyword: cond:(List_of_command (C (w ))) body:(command.DoGroup left: children:[ (C (w ) (w )) (command.ControlFlow keyword:) ] right: ) ) ] ) (command.Case case_kw: to_match:(case_arg.YshExpr e:(Var x)) arms_start: arms:[] arms_end: ) (command.Case case_kw: to_match:(case_arg.YshExpr e:(Var x)) arms_start: arms:[ (CaseArm left: pattern:(pat.Else) middle: action:[ (command.Sentence child:(C (w ) (w )) terminator: ) ] right: ) ] arms_end: ) (command.Case case_kw: to_match:(case_arg.YshExpr e:(Var x)) arms_start: arms:[ (CaseArm left: pattern:(pat.YshExprs exprs:[(Const Expr_DecInt _) (Const Expr_DecInt _)]) middle: action:[ (command.Sentence child:(C (w ) (w )) terminator: ) ] right: ) ] arms_end: ) (command.Case case_kw: to_match:(case_arg.YshExpr e:(Var x)) arms_start: arms:[ (CaseArm left: pattern:(pat.Words words:[(w ) (w ) (w (SQ string))] ) middle: action:[ (command.Sentence child:(C (w ) (w )) terminator: ) ] right: ) ] arms_end: ) (command.Case case_kw: to_match:(case_arg.YshExpr e:(Var x)) arms_start: arms:[ (CaseArm left: pattern:(Eggex left:...0x7f3a1a48b870 regex:(re.Repeat child:(PerlClass name:d) op:) flags:[] canonical_flags:"" ) middle: action:[ (command.Sentence child:(C (w ) (w )) terminator: ) ] right: ) (CaseArm left: pattern:(Eggex left:...0x7f3a1a3d40b8 regex:(re.Repeat child:(PerlClass name:d) op:) .. flags:[] canonical_flags:"" ) middle: action:[ (command.Sentence child:(C (w ) (w )) terminator: ) ] right: ) ] arms_end: ) (command.Case case_kw: to_match:(case_arg.YshExpr e:(Var x)) arms_start: arms:[ (CaseArm left: pattern:(pat.Words words:[(w )]) middle: action:[(command.Expr keyword: ) ] arms_end: ) (command.Case case_kw: to_match:(case_arg.YshExpr e:(Var x)) arms_start: arms:[ (CaseArm left: pattern:(Eggex left:...0x7f3a1a45cd50 regex:(SQ eggex) flags:[] canonical_flags:"" ) middle: action:[(command.Expr keyword: ) ] arms_end: ) (command.Case case_kw: to_match:(case_arg.YshExpr e:(Var x)) arms_start: arms:[ (CaseArm left: pattern:(pat.YshExprs exprs:[(SQ expr)]) middle: action:[(command.Expr keyword: ) ] arms_end: ) (command.Case case_kw: to_match:(case_arg.YshExpr e:(Var x)) arms_start: arms:[ (CaseArm left: pattern:(pat.Else) middle: action:[(command.Expr keyword: ) ] arms_end: ) (command.Redirect child:(C (w ) (w )) redirects:[ (Redir op:"> loc:(redir_loc.Fd fd:2) arg:(w ) ) ] ) (command.Pipeline children:[ (C (w ) (w )) (C (w ) (w )) ] ops:[] ) (command.AndOr children:[ (command.Pipeline children:[ (C (w ) (w )) (C (w ) (w )) ] ops:[] ) (C (w )) ] ops:[] ) (command.CommandList children:[ (command.Sentence child:(command.AndOr children:[ (command.Pipeline children:[ (C (w ) (w )) (C (w ) (w )) ] ops:[] ) (C (w )) ] ops:[] ) terminator: ) (C (w ) (w )) ] ) (command.CommandList children:[(C (w ) (w ))]) (command.CommandList children:[ (command.Sentence child:(command.AndOr children:[ (command.Pipeline children:[ (C (w ) (w )) (C (w ) (w )) ] ops:[] ) (C (w )) ] ops:[] ) terminator: ) (C (w ) (w )) ] ) (command.CommandList children:[ (command.Sentence child:(command.AndOr children:[ (command.Pipeline children:[ (C (w ) (w )) (C (w ) (w )) ] ops:[] ) (C (w ) (w )) ] ops:[] ) terminator: ) (command.AndOr children:[ (command.Pi. (( 1 + )) ^ "":1: Token can't be used in prefix position . A= (1 2) ^ "":1: Expected ( after = . [[ foo bar ]] ^~~ "":1: Expected ]] [[ foo -eq ]] ^ "":1: Expected ]] [[ foo$(echo <) -eq foo ]] ^ "":1: Invalid token after redirect operator . ls < ^ "":1: Invalid token after redirect operator ls < < ^ "":1: Invalid token after redirect operator echo foo$(ls <)bar ^ "":1: Invalid token after redirect operator BAD_ENV=(1 2 3) ls ^~~~~~~~ "":1: Environment bindings can't contain array literals for ((i=1; i<)); do echo $i; done ^ "":1: Token can't be used in prefix position for ((i=1; i<5; ++i)) OOPS echo $i; ERR ^~~~ "":1: Invalid word after for expression for ((i=1; i<5; ++i)); OOPS echo $i; ERR ^~~~ "":1: Expected word type Id.KW_Do, got Id.Word_Compound for $bad in 1 2; do echo hi; done ^~~~ "":1: Expected loop variable (a constant word) for foo BAD ^ "":1: Expected loop variable (a constant word) if foo; then echo hi; z ^ "":1: Expected word type Id.KW_Fi, got Id.Eof_Real foo$(invalid) () { echo hi; } ^~~ "":1: Invalid function name . foo="" echo "bar ^ "":1: Unexpected EOF reading double-quoted string that began here .. for x in 1 2 $( ^ "":1: Invalid word in for loop . for [ i = 1; i < 10; i++ ] ^ "":1: Invalid loop variable name '[' for = in a ^ "":1: Invalid loop variable name '=' . for x in 1 2 $(cat <":1: Couldn't find terminator for here doc that starts here . foo"bar" () { ^~~ "":1: Invalid function name ....peline children:[ (C (w ) (w )) (C (w ) (w )) ] ops:[] ) (C (w ) (w )) ] ops:[] ) ] ) (command.Redirect child:(C (w )) redirects:[ (Redir op: loc:(redir_loc.Fd fd:0) arg:(redir_param.HereDoc here_begin:(w ) here_end_tok: stdin_parts:[ (CommandSub left_token: child:(command.CommandList children:[ (C (w ) (w )) (C (w ) (w )) ] ) right: ) ] ) ) ] ) (command.AndOr children:[ (command.Redirect child:(C (w )) redirects:[ (Redir op: loc:(redir_loc.Fd fd:0) arg:(redir_param.HereDoc here_begin:(w ) here_end_tok: stdin_parts:[ ] ) ) ] ) (C (w ) (w )) ] ops:[] ) (command.AndOr children:[ (command.Redirect child:(C (w )) redirects:[ (Redir op: loc:(redir_loc.Fd fd:0) arg:(redir_param.HereDoc here_begin:(w ) here_end_tok: stdin_parts:[ ] ) ) ] ) (C (w ) (w )) ] ops:[] ) (command.AndOr children:[ (command.Redirect child:(C (w )) redirects:[ (Redir op: loc:(redir_loc.Fd fd:0) arg:(redir_param.HereDoc here_begin:(w ) here_end_tok: stdin_parts:[ ] ) ) ] ) (command.Redirect child:(C (w )) redirects:[ (Redir op: loc:(redir_loc.Fd fd:0) arg:(redir_param.HereDoc here_begin:(w ) here_end_tok: stdin_parts:[ ] ) ) ] ) ] ops:[] ) (command.Pipeline children:[ (command.Redirect child:(C (w )) redirects:[ (Redir op: loc:(redir_loc.Fd fd:0) arg:(redir_param.HereDoc here_begin:(w ) here_end_tok: stdin_parts:[ ] ) ) ] ) (C (w )) ] ops:[] ) (command.Pipeline children:[ (command.Redirect child:(C (w )) redirects:[ (Redir op: loc:(redir_loc.Fd fd:0) arg:(redir_param.HereDoc here_begin:(w ) here_end_tok: stdin_parts:[ ] ) ) ] ) (C (w )) ] ops:[] ) (command.CommandList children:[ (command.Sentence child:(command.Redirect child:(C (w )) redirects:[ (Redir op: loc:(redir_loc.Fd fd:0) arg:(redir_param.HereDoc here_begin:(w ) ...... here_end_tok: stdin_parts:[ ] ) ) ] ) terminator: ) (C (w ) (w )) ] ) (command.CommandList children:[ (command.Sentence child:(command.Redirect child:(C (w )) redirects:[ (Redir op: loc:(redir_loc.Fd fd:0) arg:(redir_param.HereDoc here_begin:(w ) here_end_tok: stdin_parts:[ ] ) ) ] ) terminator: ) (C (w ) (w )) ] ) (command.Redirect child:(C (w )) redirects:[ (Redir op: loc:(redir_loc.Fd fd:0) arg:(redir_param.HereDoc here_begin:(w ) here_end_tok: stdin_parts:[ ($ foo) ] ) ) ] ) (command.Redirect child:(C (w )) redirects:[ (Redir op: loc:(redir_loc.Fd fd:0) arg:(redir_param.HereDoc here_begin:(w (DQ )) here_end_tok: stdin_parts:[ ] ) ) ] ) (command.Redirect child:(C (w )) redirects:[ (Redir op: loc:(redir_loc.Fd fd:0) arg:(redir_param.HereDoc here_begin:(w (SQ EOF)) here_end_tok: stdin_parts:[] ) ) ] ) (command.Redirect child:(C (w )) redirects:[ (Redir op: loc:(redir_loc.Fd fd:0) arg:(redir_param.HereDoc here_begin:(w (word_part.EscapedLiteral token: ch:F) ) here_end_tok: stdin_parts:[] ) ) ] ) (command.CommandList children:[ (command.Pipeline children:[ (command.Redirect child:(C (w )) redirects:[ (Redir op: loc:(redir_loc.Fd fd:0) arg:(redir_param.HereDoc here_begin:(w ) here_end_tok: stdin_parts:[ ] ) ) ] ) (command.Redirect child:(C (w )) redirects:[ (Redir op: loc:(redir_loc.Fd fd:0) arg:(redir_param.HereDoc here_begin:(w ) here_end_tok: stdin_parts:[ ] ) ) ] ) ] ops:[] ) ] ) (command.Redirect child:(C (w )) redirects:[ (Redir op: loc:(redir_loc.Fd fd:0) arg:(redir_param.HereDoc here_begin:(w ) here_end_tok: stdin_parts:[ ($ v) ] ) ) ] ) (C (w ) (w (CommandSub left_token: child:(C (w ) (w (word_part.ArithSub left: anode:(arith_expr.Binary op: left:(w ) right:(arith_expr.Binary op: ... left:(w ) right:(w ) ) ) right: ) ) ) right: ) ) ) (command.CommandList children:[ (command.Subshell left: child:(C (w ) (w (word_part.ArithSub left: anode:(arith_expr.Binary op: left:(w ) right:(arith_expr.Binary op: left:(w ) right:(w ) ) ) right: ) ) ) right: is_last_cmd:F ) ] ) (C (w ) (w (CommandSub left_token: child:(C (w ) (w (word_part.ArithSub left: anode:(arith_expr.Binary op: left:(w ) right:(w ) ) right: ) ) ) right: ) ) ) (command.CommandList children:[ (command.Subshell left: child:(C (w ) (w (word_part.ArithSub left: anode:(arith_expr.Binary op: left:(w ) right:(w ) ) right: ) ) ) right: is_last_cmd:F ) ] ) (command.CommandList children:[ (C (w ) (w (CommandSub left_token: child:(command.ShAssignment left: words:[ (w ) (w ) (w ) ] right: ) ) ) ] ) right: ) ) ) ] ) (command.CommandList children:[ (command.Subshell left: child:(command.ShAssignment left: words:[(w ) (w ) (w )] right: ) ) ) ] ) right: is_last_cmd:F ) ] ) (command.CommandList children:[ (C (w (CommandSub left_token: child:(command.Case case_kw: to_match:(case_arg.Word w:(w )) arms_start: arms:[ (CaseArm left: pattern:(pat.Words words:[(w )]) middle: action:[(C (w ) (w ))] right: ) ] arms_end: ) right: ) ) ) ] ) (command.CommandList children:[ (comma...nd.Subshell left: child:(command.Case case_kw: to_match:(case_arg.Word w:(w )) arms_start: arms:[ (CaseArm left: pattern:(pat.Words words:[(w )]) middle: action:[(C (w ) (w ))] right: ) ] arms_end: ) right: is_last_cmd:F ) ] ) (command.CommandList children:[ (C (w ) (w (CommandSub left_token: child:(command.Case case_kw: to_match:(case_arg.Word w:(w )) arms_start: arms:[ (CaseArm left: pattern:(pat.Words words:[(w )]) middle: action:[(C (w ) (w ))] right: ) ] arms_end: ) right: ) ) ) ] ) (command.CommandList children:[ (C (w ) (w (CommandSub left_token: child:(command.CommandList children:[ (command.Case case_kw: to_match:(case_arg.Word w:(w )) arms_start: arms:[ (CaseArm left: pattern:(pat.Words words:[(w )]) middle: action:[(C (w ) (w ))] right: ) ] arms_end: ) (command.Case case_kw: to_match:(case_arg.Word w:(w )) arms_start: arms:[ (CaseArm left: pattern:(pat.Words words:[(w )]) middle: action:[(C (w ) (w ))] right: ) ] arms_end: ) ] ) right: ) ) ) ] ) (C (w ) (w (DQ (CommandSub left_token: child:(C (w ) (w )) right: ) ) ) (w ) ) (command.CommandList children:[ (command.Sentence child:(C (w ) (w )) terminator: ) (command.Sentence child:(C (w ) (w (CommandSub left_token: child:(command.Case case_kw: to_match:(case_arg.Word w:(w )) arms_start: arms:[ (CaseArm left: pattern:(pat.Words words:[ (w (CommandSub left_token: child:(C (w ) (w )) right: ) ) ] ) middle: action:[..... (C (w ) (w (CommandSub left_token: child:(C (w )) right: ) ) ) ] right: ) ] arms_end: ) right: ) ) ) terminator: ) (C (w ) (w )) ] ) (command.CommandList children:[ (command.Subshell left: child:(command.Case case_kw: to_match:(case_arg.Word w:(w )) arms_start: arms:[] arms_end: ) right: is_last_cmd:F ) ] ) (command.CommandList children:[ (C (w (CommandSub left_token: child:(command.ForExpr keyword: init:(arith_expr.BinaryAssign op_id:Arith_Equal left: right:(w ) ) cond:(arith_expr.Binary op: left: right:(w ) ) update:(arith_expr.UnaryAssign op_id:Arith_DPlus child: ) body:(command.DoGroup left: children:[(C (w ) (w ))] right: ) ) right: ) ) ) ] ) (command.CommandList children:[ (command.Subshell left: child:(command.ForExpr keyword: init:(arith_expr.BinaryAssign op_id:Arith_Equal left: right:(w ) ) cond:(arith_expr.Binary op: left: right:(w ) ) update:(arith_expr.UnaryAssign op_id:Arith_DPlus child: ) body:(command.DoGroup left: children:[(C (w ) (w ))] right: ) ) right: is_last_cmd:F ) ] ) (C (w ) (w (word_part.ArithSub left: anode:(arith_expr.BinaryAssign op_id:Arith_Equal left:(arith_expr.Binary op: left: right:(arith_expr.Binary op: left:(w ) right:(arith_expr.Binary op: left:(w ) right:(w ) ) ) ) right: ) right: ) ) ) (C (w ) (w (CommandSub left_token: child:(C (w (CommandSub left_token: child:(C (w ) (w )) right: ) ) ) right: ) ) (w ) ) (BraceGroup left: children:[ (command.Sentence child:(C (w ) (w )) terminator: ) (command.Sentence child:(C (w ) (w )) terminator: ) ] right: ) (command.CommandList child...ren:[ (command.Sentence child:(BraceGroup left: children:[ (command.Sentence child:(C (w ) (w )) terminator: ) (command.Sentence child:(C (w ) (w )) terminator: ) ] right: ) terminator: ) (C (w ) (w )) ] ) (command.CommandList children:[ (command.Sentence child:(command.Subshell left: child:(command.CommandList children:[ (command.Sentence child:(C (w ) (w )) terminator: ) (C (w ) (w ) (w )) ] ) right: is_last_cmd:F ) terminator: ) (C (w ) (w ) (w )) ] ) (command.CommandList children:[ (C (w ) (w (CommandSub left_token: child:(command.CommandList children:[ (command.Sentence child:(command.ShFunction name_tok: name:fun body:(BraceGroup left: children:[ (command.Sentence child:(C (w ) (w )) terminator: ) ] right: ) ) terminator: ) (C (w )) ] ) right: ) ) ) ] ) (command.CommandList children:[ (command.Subshell left: child:(command.CommandList children:[ (command.Sentence child:(command.ShFunction name_tok: name:fun body:(BraceGroup left: children:[ (command.Sentence child:(C (w ) (w )) terminator: ) ] right: ) ) terminator: ) (C (w )) ] ) right: is_last_cmd:F ) ] ) (command.CommandList children:[ (command.Sentence child:(C (w ) (w )) terminator: ) (command.Sentence child:(C (w ) (w (CommandSub left_token: child:(command.CommandList children:[ (command.Sentence child:(command.Subshell left: child:(command.CommandList children:[ (command.Sentence child:(C (w ) (w )) terminator: ) (C (w ) (w )) ] ) right: is_last_cmd:F ) terminator: ) (C (w ) (w )) ] ) right: ) ) ) terminator: ) (C (w ) (w ":1: Unexpected token while parsing arithmetic: '.' ..>)) ] ) (command.CommandList children:[ (C (w (CommandSub left_token: child:(command.Case case_kw: to_match:(case_arg.Word w:(w )) arms_start: arms:[ (CaseArm left: pattern:(pat.Words words:[(w )]) middle: action:[(C (w ) (w ))] right: ) ] arms_end: ) right: ) ) ) ] ) (command.CommandList children:[ (command.Subshell left: child:(command.Case case_kw: to_match:(case_arg.Word w:(w )) arms_start: arms:[ (CaseArm left: pattern:(pat.Words words:[(w )]) middle: action:[(C (w ) (w ))] right: ) ] arms_end: ) right: is_last_cmd:F ) ] ) (C (w ) (w (CommandSub left_token: child:(C (w ) (w )) right: ) ) (w ) ) (command.CommandList children:[ (command.Sentence child:(command.DBracket left: expr:(bool_expr.Unary op_id:BoolUnary_n child:(w (DQ (BracedVarSub left: name_tok: var_name:marks bracket_op:(bracket_op.ArrayIndex expr:(w (${ VSub_Name tag_marker) (${ VSub_Name cons_ptr) ) ) right: ) ) ) ) right: ) terminator: ) ] ) (command.CommandList children:[ (C (w ) (w (word_part.ArithSub left: anode:(w ($ foo)) right: ) ) ) ] ) (command.CommandList children:[ (command.ShAssignment left: words:[ (w (DQ (BracedVarSub left: name_tok: var_name:SETUP_STATE bracket_op:(bracket_op.ArrayIndex expr:(w (DQ ($ err) )) ) right: ) ) ) ] right: ) ) ) ] ) ] ) (command.CommandList children:[ (C (w ) (w (CommandSub left_token: child:(command.NoOp) right: ) ) ) ] ) (command.CommandList children:[ (C (w ) (w (CommandSub left_token: child:(command.NoOp) right: ) ) ) ] ) (command.CommandList.. children:[ (C (w ) (w ) (w (CommandSub left_token: child:(command.NoOp) right: ) ) (w ) ) ] ) (command.CommandList children:[ (command.ShAssignment left: child:(command.NoOp) right: ) (DQ ) ) ) ] ) ] ) (command.CommandList children:[ (command.If if_kw: arms:[ (IfArm keyword:...0x7f3a1a463d50 cond:(List_of_command (command.Sentence child:(C (w )) terminator: ) ) then_kw: action:[ (command.Subshell left: child:(C (w ) (w )) right: is_last_cmd:F ) ] then_tok:...0x7f3a1a4630b8 ) ] else_action:[] fi_kw: ) ] ) (command.CommandList children:[ (command.WhileUntil keyword: cond:(List_of_command (command.Sentence child:(C (w )) terminator: ) ) body:(command.DoGroup left: children:[ (BraceGroup left: children:[ (C (w ) (w )) (command.ControlFlow keyword:) ] right: ) ] right: ) ) ] ) (command.CommandList children:[ (command.If if_kw: arms:[ (IfArm keyword:...0x7f3a1a463188 cond:(List_of_command (command.Sentence child:(C (w )) terminator: ) ) then_kw: action:[ (command.Subshell left: child:(C (w ) (w )) right: is_last_cmd:F ) ] then_tok:...0x7f3a1a468600 ) ] else_action:[] fi_kw: ) ] ) (command.CommandList children:[ (command.If if_kw: arms:[ (IfArm keyword:...0x7f3a1a468050 cond:(List_of_command (command.Sentence child:(C (w )) terminator: ) ) then_kw: action:[ (command.If if_kw: arms:[ (IfArm keyword:...0x7f3a1a515ef0 cond:(List_of_command (command.Sentence child:(C (w )) terminator: ) ) then_kw: action:[(C (w ) (w ))] then_tok:...0x7f3a1a515940 ) ] else_action:[] fi_kw: ) ] then_tok:...0x7f3a1a515d50 ) ] else_action:[] fi_kw: ) (C (w ) (w )) ] ) (command.CommandList children:[ (command.Subshell left: child:(c...ommand.AndOr children:[ (C (w ) (w (DQ ($ PACKDIR)))) (command.ForEach keyword: iter_names:[e] iterable:(for_iter.Words words:[(w ($ existing))]) body:(command.DoGroup left: children:[ (command.Case case_kw: to_match:(case_arg.Word w:(w (DQ ($ fullbases) )) ) arms_start: arms:[ (CaseArm left: pattern:(pat.Words words:[ (w (DQ ($ e) ) ) ] ) middle: action:[] right: ) (CaseArm left: pattern:(pat.Words words:[(w )]) middle: action:[ (C (w ) (w ) (w (DQ ($ e) )) (w (DQ ($ e) )) (w (DQ ($ e) )) ) ] right: ) ] arms_end: ) ] right: ) ) ] ops:[] ) right: is_last_cmd:F ) ] ) (command.CommandList children:[ (command.Sentence child:(C (w ) (w (DQ ($ TEST_DIRECTORY)) ) ) terminator: ) ] ) (command.CommandList children:[ (C (w ) (w )) ] ) (command.CommandList children:[(C (w ) (w ))]) (command.CommandList children:[(C (w ) (w ))]) (command.Case case_kw: to_match:(case_arg.Word w:(w (DQ ($ fd) ($ command)))) arms_start: arms:[ (CaseArm left: pattern:(pat.Words words:[ (w ) (w ) ] ) middle: action:[] right: ) ] arms_end: ) (command.CommandList children:[ (command.Case case_kw: to_match:(case_arg.Word w:(w )) arms_start: arms:[ (CaseArm left: pattern:(pat.Words words:[ (w (SingleQuoted left: sval:"'" right: ) ) ] ) middle: action:[ (command.ShAssignment left: ch:"\\" ) .............. ) (word_part.EscapedLiteral token: ch:"'" ) ) ) ] ) ] right: ) ] arms_end: ) ] ) (command.CommandList children:[ (C (w (SingleQuoted left: sval:"abc\ndef" right: ) ) ) ] ) (command.Redirect child:(C (w ) (w )) redirects:[ (Redir op:|"> loc:(redir_loc.Fd fd:1) arg:(w ) ) ] ) (Redir op:&"> loc:(redir_loc.Fd fd:1) arg:(w )) (Redir op: loc:(redir_loc.Fd fd:0) arg:(redir_param.HereDoc here_begin:(w ) stdin_parts:[]) ) (Redir op: loc:(redir_loc.Fd fd:0) arg:(redir_param.HereDoc here_begin:(w ) stdin_parts:[]) ) (command.Redirect child:(C (w )) redirects:[ (Redir op: loc:(redir_loc.Fd fd:0) arg:(redir_param.HereDoc here_begin:(w ) here_end_tok: stdin_parts:[] ) ) (Redir op:"> loc:(redir_loc.Fd fd:1) arg:(w ) ) ] ) (Redir op:"> loc:(redir_loc.Fd fd:1) arg:(w )) (Redir op: loc:(redir_loc.Fd fd:0) arg:(redir_param.HereDoc here_begin:(w ) stdin_parts:[]) ) (command.Redirect child:(C (w )) redirects:[ (Redir op:"> loc:(redir_loc.Fd fd:1) arg:(w ) ) (Redir op:&"> loc:(redir_loc.Fd fd:1) arg:(w ) ) ] ) (command.Redirect child:(C (w )) redirects:[ (Redir op: loc:(redir_loc.Fd fd:0) arg:(w ) ) ] ) (command.CommandList children:[ (command.ShAssignment left:"> loc:(redir_loc.Fd fd:1) arg:(w ) ) ] ) ] ) (C (w ) (w (DQ ) ) (w (DQ ) (DQ )) (w ) ) (command.CommandList children:[ (command.Redirect child:(command.Simple blame_tok: more_env:[ (EnvPair left:"> loc:(redir_loc.Fd fd:1) arg:(w ) ) ] ) ] ) (command.CommandList children:[ (command.Redirect child:(C (w ) (w ) (w ) (w ) ) redirects:[ (Redir op:"> loc:(redir_loc.Fd fd:1) arg:(w ) ) ] ) ] ) (C (w ) (w )) (command.Simple blame_tok: more_env:[ (EnvPair left:"> loc:(redir_loc.Fd fd:1) arg:(w ) ) ] ) (command.Redirect child:(command.Simple blame_tok: more_env:[ (EnvPair left:"> loc:(redir_loc.Fd fd:1) arg:(w ) ) (Redir op:"> loc:(redir_loc.Fd fd:1) arg:(w ) ) ] )