(command.CommandList children: [ (command.AndOr ops: [Id.Op_DAmp] children: [ (C {(Id.Lit_LBracket '[')} { (braced_var_sub token: (Token id:Id.VSub_Name val:LISHP_SH span_id:10) suffix_op: (suffix_op.Unary op_id:Id.VTest_Plus arg_word:{(true)}) ) } {(Id.Lit_RBracket ']')} ) (command.ControlFlow token:(Token id:Id.ControlFlow_Return val:return span_id:19)) ] ) (C {(declare)} {(-g)} {(Id.Lit_VarLike 'LISHP_SH=') (true)}) (C {(declare)} {(-g)} {(VERBOSE)}) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.AndOr ops: [Id.Op_DAmp] children: [ (C {(Id.Lit_LBracket '[')} { (braced_var_sub token: (Token id:Id.VSub_Number val:1 span_id:39) suffix_op: (suffix_op.Unary op_id:Id.VTest_Plus arg_word:{(isset)}) ) } {(Id.Lit_RBracket ']')} ) (C {(Id.Lit_LBracket '[')} {(DQ ($ Id.VSub_Number '$1'))} {(Id.Lit_Equals '=') (Id.Lit_Equals '=')} {(DQ (-verbose))} {(Id.Lit_RBracket ']')} ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:62) ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:VERBOSE) op: assign_op.Equal rhs: {(true)} spids: [68] ) ] ) (C {(shift)}) ] spids: [34 64] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:VERBOSE) op: assign_op.Equal rhs: {(false)} spids: [77] ) ] ) ] ) (C {(.)} { (braced_var_sub token: (Token id:Id.VSub_Name val:BASH_SOURCE span_id:87) suffix_op: (suffix_op.Unary op_id:Id.VOp1_Percent arg_word:{(Id.Lit_Slash /) ('*')}) ) (/common.sh) } ) (C {(.)} { (braced_var_sub token: (Token id:Id.VSub_Name val:BASH_SOURCE span_id:97) suffix_op: (suffix_op.Unary op_id:Id.VOp1_Percent arg_word:{(Id.Lit_Slash /) ('*')}) ) (/variables.sh) } ) (C {(.)} { (braced_var_sub token: (Token id:Id.VSub_Name val:BASH_SOURCE span_id:107) suffix_op: (suffix_op.Unary op_id:Id.VOp1_Percent arg_word:{(Id.Lit_Slash /) ('*')}) ) (/variables.arraylist.sh) } ) (C {(.)} { (braced_var_sub token: (Token id:Id.VSub_Name val:BASH_SOURCE span_id:117) suffix_op: (suffix_op.Unary op_id:Id.VOp1_Percent arg_word:{(Id.Lit_Slash /) ('*')}) ) (/variables.atom.sh) } ) (C {(.)} { (braced_var_sub token: (Token id:Id.VSub_Name val:BASH_SOURCE span_id:127) suffix_op: (suffix_op.Unary op_id:Id.VOp1_Percent arg_word:{(Id.Lit_Slash /) ('*')}) ) (/variables.linkedlist.sh) } ) (C {(.)} { (braced_var_sub token: (Token id:Id.VSub_Name val:BASH_SOURCE span_id:137) suffix_op: (suffix_op.Unary op_id:Id.VOp1_Percent arg_word:{(Id.Lit_Slash /) ('*')}) ) (/variables.map.sh) } ) (C {(.)} { (braced_var_sub token: (Token id:Id.VSub_Name val:BASH_SOURCE span_id:147) suffix_op: (suffix_op.Unary op_id:Id.VOp1_Percent arg_word:{(Id.Lit_Slash /) ('*')}) ) (/variables.queue.sh) } ) (C {(.)} { (braced_var_sub token: (Token id:Id.VSub_Name val:BASH_SOURCE span_id:157) suffix_op: (suffix_op.Unary op_id:Id.VOp1_Percent arg_word:{(Id.Lit_Slash /) ('*')}) ) (/variables.stack.sh) } ) (C {(.)} { (braced_var_sub token: (Token id:Id.VSub_Name val:BASH_SOURCE span_id:167) suffix_op: (suffix_op.Unary op_id:Id.VOp1_Percent arg_word:{(Id.Lit_Slash /) ('*')}) ) (/callable.sh) } ) (C {(.)} { (braced_var_sub token: (Token id:Id.VSub_Name val:BASH_SOURCE span_id:177) suffix_op: (suffix_op.Unary op_id:Id.VOp1_Percent arg_word:{(Id.Lit_Slash /) ('*')}) ) (/callable.lambda.sh) } ) (C {(.)} { (braced_var_sub token: (Token id:Id.VSub_Name val:BASH_SOURCE span_id:187) suffix_op: (suffix_op.Unary op_id:Id.VOp1_Percent arg_word:{(Id.Lit_Slash /) ('*')}) ) (/environment.sh) } ) (C {(.)} { (braced_var_sub token: (Token id:Id.VSub_Name val:BASH_SOURCE span_id:197) suffix_op: (suffix_op.Unary op_id:Id.VOp1_Percent arg_word:{(Id.Lit_Slash /) ('*')}) ) (/evaluator.sh) } ) (C {(.)} { (braced_var_sub token: (Token id:Id.VSub_Name val:BASH_SOURCE span_id:207) suffix_op: (suffix_op.Unary op_id:Id.VOp1_Percent arg_word:{(Id.Lit_Slash /) ('*')}) ) (/evaluator.functions.builtin.sh) } ) (C {(.)} { (braced_var_sub token: (Token id:Id.VSub_Name val:BASH_SOURCE span_id:217) suffix_op: (suffix_op.Unary op_id:Id.VOp1_Percent arg_word:{(Id.Lit_Slash /) ('*')}) ) (/parser.sh) } ) (C {(.)} { (braced_var_sub token: (Token id:Id.VSub_Name val:BASH_SOURCE span_id:227) suffix_op: (suffix_op.Unary op_id:Id.VOp1_Percent arg_word:{(Id.Lit_Slash /) ('*')}) ) (/logger.sh) } ) (C {(.)} { (braced_var_sub token: (Token id:Id.VSub_Name val:BASH_SOURCE span_id:237) suffix_op: (suffix_op.Unary op_id:Id.VOp1_Percent arg_word:{(Id.Lit_Slash /) ('*')}) ) (/specialforms.sh) } ) (C {(.)} { (braced_var_sub token: (Token id:Id.VSub_Name val:BASH_SOURCE span_id:247) suffix_op: (suffix_op.Unary op_id:Id.VOp1_Percent arg_word:{(Id.Lit_Slash /) ('*')}) ) (/specialforms.if.sh) } ) (C {(.)} { (braced_var_sub token: (Token id:Id.VSub_Name val:BASH_SOURCE span_id:257) suffix_op: (suffix_op.Unary op_id:Id.VOp1_Percent arg_word:{(Id.Lit_Slash /) ('*')}) ) (/specialforms.lambda.sh) } ) (C {(.)} { (braced_var_sub token: (Token id:Id.VSub_Name val:BASH_SOURCE span_id:267) suffix_op: (suffix_op.Unary op_id:Id.VOp1_Percent arg_word:{(Id.Lit_Slash /) ('*')}) ) (/specialforms.let.sh) } ) (C {(.)} { (braced_var_sub token: (Token id:Id.VSub_Name val:BASH_SOURCE span_id:277) suffix_op: (suffix_op.Unary op_id:Id.VOp1_Percent arg_word:{(Id.Lit_Slash /) ('*')}) ) (/specialforms.letstar.sh) } ) (command.AndOr ops: [Id.Op_DAmp] children: [(C {($ Id.VSub_DollarName '$VERBOSE')}) (C {(echo)} {(DQ ('Sourced libraries!'))})] ) (command.Simple words: [{(read)} {(-r)} {(-d)} {(SQ )} {(code)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Less val:'<' span_id:324) fd: -1 arg_word: { (DQ (braced_var_sub token: (Token id:Id.VSub_Number val:1 span_id:328) suffix_op: (suffix_op.Unary op_id: Id.VTest_ColonHyphen arg_word: {(Id.Lit_Slash /) (proc) (Id.Lit_Slash /) (${ Id.VSub_Dollar '$') (Id.Lit_Slash /) (fd) (Id.Lit_Slash /) (0) } ) ) ) } ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [(C {($ Id.VSub_DollarName '$VERBOSE')}) (C {(echo)} {(DQ ('Code read!'))})] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {($ Id.VSub_DollarName '$VERBOSE')}) (C {(echo)} {(Id.Lit_Equals '=') (Id.Lit_Equals '=') (Id.Lit_Equals '=') (Id.Lit_Equals '=') (Id.Lit_Equals '=') (Id.Lit_Equals '=') (Id.Lit_Equals '=') (Id.Lit_Equals '=') (Id.Lit_Equals '=') (Id.Lit_Equals '=') (Id.Lit_Equals '=') (Id.Lit_Equals '=') (Id.Lit_Equals '=') (Id.Lit_Equals '=') (Id.Lit_Equals '=') (Id.Lit_Equals '=') (Id.Lit_Equals '=') } ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {($ Id.VSub_DollarName '$VERBOSE')}) (C {(echo)} {(DQ ($ Id.VSub_DollarName '$code'))}) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {($ Id.VSub_DollarName '$VERBOSE')}) (C {(echo)} {(Id.Lit_Equals '=') (Id.Lit_Equals '=') (Id.Lit_Equals '=') (Id.Lit_Equals '=') (Id.Lit_Equals '=') (Id.Lit_Equals '=') (Id.Lit_Equals '=') (Id.Lit_Equals '=') (Id.Lit_Equals '=') (Id.Lit_Equals '=') (Id.Lit_Equals '=') (Id.Lit_Equals '=') (Id.Lit_Equals '=') (Id.Lit_Equals '=') (Id.Lit_Equals '=') (Id.Lit_Equals '=') (Id.Lit_Equals '=') } ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.Pipeline children: [ (C {(parser) (Id.Lit_Other ':') (Id.Lit_Other ':') (parse) (Id.Lit_Other ':') (Id.Lit_Other ':') (multiExpression) } {(DQ (${ Id.VSub_Name code))} ) ] negated: T ) terminator: (Token id:Id.Op_Semi val:';' span_id:430) ) ] action: [ (C {(echo)} {(DQ ('Could not parse input\n') ('====\n') (${ Id.VSub_Name code) ('\n') ('===='))} ) (command.ControlFlow token: (Token id:Id.ControlFlow_Exit val:exit span_id:448) arg_word: {(1)} ) ] spids: [413 432] ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [(C {($ Id.VSub_DollarName '$VERBOSE')}) (C {(echo)} {(DQ ('Parsed!'))})] ) (command.CommandList children: [ (command.Sentence child: (C {(environment) (Id.Lit_Other ':') (Id.Lit_Other ':') (new)}) terminator: (Token id:Id.Op_Semi val:';' span_id:479) ) (C {(declare)} {(Id.Lit_VarLike 'env=') (${ Id.VSub_Name RESULT)}) ] ) (C {(evaluator) (Id.Lit_Other ':') (Id.Lit_Other ':') (setup_builtins)} {(DQ (${ Id.VSub_Name env))}) (command.AndOr ops: [Id.Op_DAmp] children: [(C {($ Id.VSub_DollarName '$VERBOSE')}) (C {(echo)} {(DQ ('Environment setup!'))})] ) (C {(evaluator) (Id.Lit_Other ':') (Id.Lit_Other ':') (evalFromLinkedList)} {(${ Id.VSub_Name env)} {(${ Id.VSub_Name PARSER_PARSED)} ) (C {(variable) (Id.Lit_Other ':') (Id.Lit_Other ':') (debug)} {(${ Id.VSub_Name RESULT)}) (command.AndOr ops: [Id.Op_DAmp] children: [(C {($ Id.VSub_DollarName '$VERBOSE')}) (C {(echo)} {(DQ ('Done!'))})] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {($ Id.VSub_DollarName '$VERBOSE')}) (C {(echo)} {(Id.Lit_Equals '=') (Id.Lit_Equals '=') (Id.Lit_Equals '=') (Id.Lit_Equals '=') (Id.Lit_Equals '=') (Id.Lit_Equals '=') (Id.Lit_Equals '=') (Id.Lit_Equals '=') (Id.Lit_Equals '=') (Id.Lit_Equals '=') (Id.Lit_Equals '=') (Id.Lit_Equals '=') (Id.Lit_Equals '=') (Id.Lit_Equals '=') (Id.Lit_Equals '=') (Id.Lit_Equals '=') (Id.Lit_Equals '=') } ) ] ) (C {(echo)} {(DQ ($ Id.VSub_DollarName '$RESULT'))}) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {($ Id.VSub_DollarName '$VERBOSE')}) (C {(echo)} {(Id.Lit_Equals '=') (Id.Lit_Equals '=') (Id.Lit_Equals '=') (Id.Lit_Equals '=') (Id.Lit_Equals '=') (Id.Lit_Equals '=') (Id.Lit_Equals '=') (Id.Lit_Equals '=') (Id.Lit_Equals '=') (Id.Lit_Equals '=') (Id.Lit_Equals '=') (Id.Lit_Equals '=') (Id.Lit_Equals '=') (Id.Lit_Equals '=') (Id.Lit_Equals '=') (Id.Lit_Equals '=') (Id.Lit_Equals '=') } ) ] ) ] )