(command.CommandList children: [ (command.AndOr ops: [Op_DAmp] children: [ (C {(Lit_Other '[')} { (word_part.BracedVarSub token: <VSub_Name EVALUATOR_SH> suffix_op: (suffix_op.StringUnary op_id:VTest_Plus arg_word:{(true)}) ) } {(Lit_Other ']')} ) (command.ControlFlow token:<ControlFlow_Return return>) ] ) (command.Assignment keyword: Assign_Declare flags: [-g] pairs: [(assign_pair lhs:(lhs_expr.LhsName name:EVALUATOR_SH) op:Equal rhs:{(true)})] ) (C {(.)} { (word_part.BracedVarSub token: <VSub_Name BASH_SOURCE> suffix_op: (suffix_op.StringUnary op_id:VOp1_Percent arg_word:{(Lit_Slash /) ('*')}) ) (/common.sh) } ) (C {(.)} { (word_part.BracedVarSub token: <VSub_Name BASH_SOURCE> suffix_op: (suffix_op.StringUnary op_id:VOp1_Percent arg_word:{(Lit_Slash /) ('*')}) ) (/variables.sh) } ) (C {(.)} { (word_part.BracedVarSub token: <VSub_Name BASH_SOURCE> suffix_op: (suffix_op.StringUnary op_id:VOp1_Percent arg_word:{(Lit_Slash /) ('*')}) ) (/callable.sh) } ) (C {(.)} { (word_part.BracedVarSub token: <VSub_Name BASH_SOURCE> suffix_op: (suffix_op.StringUnary op_id:VOp1_Percent arg_word:{(Lit_Slash /) ('*')}) ) (/specialforms.sh) } ) (C {(.)} { (word_part.BracedVarSub token: <VSub_Name BASH_SOURCE> suffix_op: (suffix_op.StringUnary op_id:VOp1_Percent arg_word:{(Lit_Slash /) ('*')}) ) (/specialforms.lambda.sh) } ) (C {(.)} { (word_part.BracedVarSub token: <VSub_Name BASH_SOURCE> suffix_op: (suffix_op.StringUnary op_id:VOp1_Percent arg_word:{(Lit_Slash /) ('*')}) ) (/environment.sh) } ) (C {(.)} { (word_part.BracedVarSub token: <VSub_Name BASH_SOURCE> suffix_op: (suffix_op.StringUnary op_id:VOp1_Percent arg_word:{(Lit_Slash /) ('*')}) ) (/evaluator.functions.builtin.sh) } ) (command.Assignment keyword: Assign_Declare flags: [-g] pairs: [(assign_pair lhs:(lhs_expr.LhsName name:EVALUATOR_DEBUG) op:Equal rhs:{(0)})] ) (command.FuncDef name: 'evaluator::eval' body: (command.BraceGroup children: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.BoolBinary op_id: BoolBinary_GlobDEqual left: {(${ VSub_Name EVALUATOR_DEBUG)} right: {(1)} ) ) terminator: <Op_Semi ';'> ) ] action: [ (command.Sentence child: (C {(stderr)} {(DQ ('evaluator::eval ') (${ VSub_At '@'))}) terminator: <Op_Semi ';'> ) ] ) ] ) (command.Assignment keyword: Assign_Declare pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:envToken) op: Equal rhs: {(DQ (${ VSub_Number 1))} ) ] ) (command.Assignment keyword: Assign_Declare pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:exprToken) op: Equal rhs: {(DQ (${ VSub_Number 2))} ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(variable) (Lit_Other ':') (Lit_Other ':') (type) (Lit_Other ':') (Lit_Other ':') (instanceOf) } {(DQ (${ VSub_Name exprToken))} {(Atom)} ) terminator: <Op_Semi ';'> ) ] action: [ (C {(variable) (Lit_Other ':') (Lit_Other ':') (clone)} {(DQ (${ VSub_Name exprToken))} ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:RESULT) op: Equal rhs: {(DQ (${ VSub_Name RESULT))} ) ] ) (command.ControlFlow token:<ControlFlow_Return return>) ] ) (if_arm cond: [ (command.Sentence child: (C {(variable) (Lit_Other ':') (Lit_Other ':') (type) (Lit_Other ':') (Lit_Other ':') (instanceOf) } {(DQ (${ VSub_Name exprToken))} {(Callable)} ) terminator: <Op_Semi ';'> ) ] action: [ (C {(variable) (Lit_Other ':') (Lit_Other ':') (clone)} {(DQ (${ VSub_Name exprToken))} ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:RESULT) op: Equal rhs: {(DQ (${ VSub_Name RESULT))} ) ] ) (command.ControlFlow token:<ControlFlow_Return return>) ] ) (if_arm cond: [ (command.Sentence child: (C {(variable) (Lit_Other ':') (Lit_Other ':') (type) (Lit_Other ':') (Lit_Other ':') (instanceOf) } {(DQ (${ VSub_Name exprToken))} {(Identifier)} ) terminator: <Op_Semi ';'> ) ] action: [ (C {(environment) (Lit_Other ':') (Lit_Other ':') (getValue)} {(DQ (${ VSub_Name envToken))} {(DQ (${ VSub_Name exprToken))} ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:RESULT) op: Equal rhs: {(DQ (${ VSub_Name RESULT))} ) ] ) (command.ControlFlow token:<ControlFlow_Return return>) ] ) (if_arm cond: [ (command.Sentence child: (C {(variable) (Lit_Other ':') (Lit_Other ':') (type) (Lit_Other ':') (Lit_Other ':') (instanceOf) } {(DQ (${ VSub_Name exprToken))} {(LinkedList)} ) terminator: <Op_Semi ';'> ) ] action: [ (C {(evaluator) (Lit_Other ':') (Lit_Other ':') (eval_list)} {(DQ (${ VSub_At '@'))}) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:RESULT) op: Equal rhs: {(DQ (${ VSub_Name RESULT))} ) ] ) (command.ControlFlow token:<ControlFlow_Return return>) ] ) ] else_action: [ (C {(stderr)} { (DQ ('evaluator::eval / Unhandled type for token [') ($ VSub_DollarName '$exprToken') (']') ) } ) (C {(variable) (Lit_Other ':') (Lit_Other ':') (printMetadata)}) (command.ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)}) ] ) (C {(stderr)} {(DQ ('should never get here'))}) (command.ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)}) ] ) ) (command.FuncDef name: 'evaluator::evalFromLinkedList' body: (command.BraceGroup children: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.BoolBinary op_id: BoolBinary_GlobDEqual left: {(${ VSub_Name EVALUATOR_DEBUG)} right: {(1)} ) ) terminator: <Op_Semi ';'> ) ] action: [ (command.Sentence child: (C {(stderr)} {(DQ ('evaluator::eval ') (${ VSub_At '@'))}) terminator: <Op_Semi ';'> ) ] ) ] ) (command.Assignment keyword: Assign_Declare pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:envToken) op: Equal rhs: {(DQ (${ VSub_Number 1))} ) ] ) (command.Sentence child: (command.Assignment keyword: Assign_Declare pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:expressions) op: Equal rhs: {(DQ (${ VSub_Number 2))} ) ] ) terminator: <Op_Semi ';'> ) (command.Assignment keyword: Assign_Declare pairs: [ (assign_pair lhs:(lhs_expr.LhsName name:currentSexp) op:Equal) (assign_pair lhs:(lhs_expr.LhsName name:currentResult) op:Equal) ] ) (command.WhileUntil keyword: <KW_While while> cond: [ (command.Sentence child: (command.Pipeline children: [ (C {(variable) (Lit_Other ':') (Lit_Other ':') (LinkedList) (Lit_Other ':') (Lit_Other ':') (isEmpty_c) } {(DQ (${ VSub_Name expressions))} ) ] negated: T ) terminator: <Op_Semi ';'> ) ] body: (command.DoGroup children: [ (command.Sentence child: (C {(variable) (Lit_Other ':') (Lit_Other ':') (LinkedList) (Lit_Other ':') (Lit_Other ':') (first) } {(DQ (${ VSub_Name expressions))} ) terminator: <Op_Semi ';'> ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:currentSexp) op: Equal rhs: {(${ VSub_Name RESULT)} ) ] ) (command.Sentence child: (C {(variable) (Lit_Other ':') (Lit_Other ':') (LinkedList) (Lit_Other ':') (Lit_Other ':') (rest) } {(DQ (${ VSub_Name expressions))} ) terminator: <Op_Semi ';'> ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:expressions) op: Equal rhs: {(${ VSub_Name RESULT)} ) ] ) (C {(evaluator) (Lit_Other ':') (Lit_Other ':') (eval)} {($ VSub_DollarName '$envToken')} {($ VSub_DollarName '$currentSexp')} ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:currentResult) op: Equal rhs: {(${ VSub_Name RESULT)} ) ] ) ] ) ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:RESULT) op: Equal rhs: {(DQ (${ VSub_Name currentResult))} ) ] ) (command.ControlFlow token:<ControlFlow_Return return> arg_word:{(0)}) ] ) ) (command.FuncDef name: 'evaluator::eval_list' body: (command.BraceGroup children: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.BoolBinary op_id: BoolBinary_GlobDEqual left: {(${ VSub_Name EVALUATOR_DEBUG)} right: {(1)} ) ) terminator: <Op_Semi ';'> ) ] action: [ (command.Sentence child: (C {(stderr)} {(DQ ('evaluator::eval_list ') (${ VSub_At '@'))}) terminator: <Op_Semi ';'> ) ] ) ] ) (command.Assignment keyword: Assign_Declare pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:envToken) op: Equal rhs: {(DQ (${ VSub_Number 1))} ) ] ) (command.Assignment keyword: Assign_Declare pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:listToken) op: Equal rhs: {(DQ (${ VSub_Number 2))} ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.Pipeline children: [ (C {(variable) (Lit_Other ':') (Lit_Other ':') (type) (Lit_Other ':') (Lit_Other ':') (instanceOf) } {($ VSub_DollarName '$listToken')} {(LinkedList)} ) ] negated: T ) terminator: <Op_Semi ';'> ) ] action: [ (C {(stderr)} {(DQ ('evaluator::eval_list / must be a list'))}) (command.ControlFlow token: <ControlFlow_Exit exit> arg_word: {(1)} ) ] ) ] ) (C {(variable) (Lit_Other ':') (Lit_Other ':') (LinkedList) (Lit_Other ':') (Lit_Other ':') (length) } {(DQ (${ VSub_Name listToken))} ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.BoolBinary op_id: BoolBinary_eq left: {(DQ (${ VSub_Name RESULT))} right: {(0)} ) ) terminator: <Op_Semi ';'> ) ] action: [ (C {(variable) (Lit_Other ':') (Lit_Other ':') (new)} {(Nil)} {(DQ )}) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:RESULT) op: Equal rhs: {(DQ (${ VSub_Name RESULT))} ) ] ) (command.ControlFlow token:<ControlFlow_Return return>) ] ) ] ) (C {(variable) (Lit_Other ':') (Lit_Other ':') (LinkedList) (Lit_Other ':') (Lit_Other ':') (first) } {(DQ (${ VSub_Name listToken))} ) (command.Sentence child: (C {(evaluator) (Lit_Other ':') (Lit_Other ':') (eval)} {(DQ (${ VSub_Name envToken))} {(DQ (${ VSub_Name RESULT))} ) terminator: <Op_Semi ';'> ) (command.Assignment keyword: Assign_Declare pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:headItem) op: Equal rhs: {(DQ (${ VSub_Name RESULT))} ) ] ) (command.Sentence child: (C {(variable) (Lit_Other ':') (Lit_Other ':') (type)} {(DQ (${ VSub_Name headItem))}) terminator: <Op_Semi ';'> ) (command.Assignment keyword: Assign_Declare pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:headType) op: Equal rhs: {(DQ (${ VSub_Name RESULT))} ) ] ) (command.Sentence child: (C {(variable) (Lit_Other ':') (Lit_Other ':') (value)} {(DQ (${ VSub_Name headItem))}) terminator: <Op_Semi ';'> ) (command.Assignment keyword: Assign_Declare pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:headValue) op: Equal rhs: {(DQ (${ VSub_Name RESULT))} ) ] ) (command.Sentence child: (C {(variable) (Lit_Other ':') (Lit_Other ':') (LinkedList) (Lit_Other ':') (Lit_Other ':') (rest) } {($ VSub_DollarName '$listToken')} ) terminator: <Op_Semi ';'> ) (command.Assignment keyword: Assign_Declare pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:rest) op: Equal rhs: {(DQ (${ VSub_Name RESULT))} ) ] ) (command.Case to_match: {(DQ (${ VSub_Name headType))} arms: [ (case_arm pat_list: [{(BuiltinFunction)}] action: [ (C {(evaluator) (Lit_Other ':') (Lit_Other ':') (call_builtinFunction)} {(DQ (${ VSub_Name envToken))} {(DQ (${ VSub_Name headItem))} {(DQ (${ VSub_Name rest))} ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:RESULT) op: Equal rhs: {(DQ (${ VSub_Name RESULT))} ) ] ) ] ) (case_arm pat_list: [{(BuiltinMacro)}] action: [ (C {(evaluator) (Lit_Other ':') (Lit_Other ':') (call_builtinMacro)} {(DQ (${ VSub_Name envToken))} {(DQ (${ VSub_Name headItem))} {(DQ (${ VSub_Name rest))} ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:RESULT) op: Equal rhs: {(DQ (${ VSub_Name RESULT))} ) ] ) ] ) (case_arm pat_list: [{(SpecialForm)}] action: [ (C {(evaluator) (Lit_Other ':') (Lit_Other ':') (call_specialForm)} {(DQ (${ VSub_Name envToken))} {(DQ (${ VSub_Name headItem))} {(DQ (${ VSub_Name rest))} ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:RESULT) op: Equal rhs: {(DQ (${ VSub_Name RESULT))} ) ] ) ] ) (case_arm pat_list: [{(Lambda)}] action: [ (C {(evaluator) (Lit_Other ':') (Lit_Other ':') (call_lambda)} {(DQ (${ VSub_Name envToken))} {(DQ (${ VSub_Name headItem))} {(DQ (${ VSub_Name rest))} ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:RESULT) op: Equal rhs: {(DQ (${ VSub_Name RESULT))} ) ] ) ] ) (case_arm pat_list: [{(Macro)}] action: [ (C {(stderr)} { (DQ ( 'evaluator::eval_list / evaluator::eval_list <macro> not implemented yet' ) ) } ) (command.ControlFlow token: <ControlFlow_Exit exit> arg_word: {(1)} ) ] ) (case_arm pat_list: [{(Lit_Other '*')}] action: [ (C {(stderr)} {(DQ ('evaluator::eval_list / type [') (${ VSub_Name headType) ('] not valid'))} ) (command.ControlFlow token: <ControlFlow_Exit exit> arg_word: {(1)} ) ] ) ] ) ] ) ) (command.FuncDef name: 'evaluator::call_builtinFunction' body: (command.BraceGroup children: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.BoolBinary op_id: BoolBinary_GlobDEqual left: {(${ VSub_Name EVALUATOR_DEBUG)} right: {(1)} ) ) terminator: <Op_Semi ';'> ) ] action: [ (command.Sentence child: (C {(stderr)} { (DQ ('evaluator::call_builtinFunction(') (word_part.BracedVarSub token: <VSub_At '@'> prefix_op: VSub_Pound ) (') ') (${ VSub_At '@') ) } ) terminator: <Op_Semi ';'> ) ] ) ] ) (command.Assignment keyword: Assign_Declare pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:env) op: Equal rhs: {(DQ (${ VSub_Number 1))} ) ] ) (command.Assignment keyword: Assign_Declare pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:functionToken) op: Equal rhs: {(DQ (${ VSub_Number 2))} ) ] ) (command.Assignment keyword: Assign_Declare pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:argsToken) op: Equal rhs: {(DQ (${ VSub_Number 3))} ) ] ) (command.Sentence child: (C {(variable) (Lit_Other ':') (Lit_Other ':') (value)} {(DQ (${ VSub_Name functionToken))} ) terminator: <Op_Semi ';'> ) (command.Assignment keyword: Assign_Declare pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:functionName) op: Equal rhs: {(DQ (${ VSub_Name RESULT))} ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.Pipeline children: [(C {(functionExists)} {($ VSub_DollarName '$functionName')})] negated: T ) terminator: <Op_Semi ';'> ) ] action: [ (C {(stderr)} { (DQ ('The builtin function [') (${ VSub_Name functionName) ('] does not exist')) } ) (command.ControlFlow token: <ControlFlow_Exit exit> arg_word: {(1)} ) ] ) ] ) (C {(eval)} {(DQ (${ VSub_Name functionName))} {(DQ (${ VSub_Name env))} {(DQ (${ VSub_Name functionName))} {(DQ (${ VSub_Name argsToken))} ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:RESULT) op: Equal rhs: {($ VSub_DollarName '$RESULT')} ) ] ) ] ) ) (command.FuncDef name: 'evaluator::call_lambda' body: (command.BraceGroup children: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.BoolBinary op_id: BoolBinary_GlobDEqual left: {(${ VSub_Name EVALUATOR_DEBUG)} right: {(1)} ) ) terminator: <Op_Semi ';'> ) ] action: [ (command.Sentence child: (C {(stderr)} {(DQ ('evaluator::call_lambda ') (${ VSub_At '@'))}) terminator: <Op_Semi ';'> ) ] ) ] ) (command.Assignment keyword: Assign_Declare pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:env) op: Equal rhs: {(DQ (${ VSub_Number 1))} ) ] ) (command.Assignment keyword: Assign_Declare pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:lambdaToken) op: Equal rhs: {(DQ (${ VSub_Number 2))} ) ] ) (command.Assignment keyword: Assign_Declare pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:argsToken) op: Equal rhs: {(DQ (${ VSub_Number 3))} ) ] ) (command.Sentence child: (C {(variable) (Lit_Other ':') (Lit_Other ':') (LinkedList) (Lit_Other ':') (Lit_Other ':') (new) } ) terminator: <Op_Semi ';'> ) (command.Assignment keyword: Assign_Declare pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:passedArgs) op: Equal rhs: {(DQ (${ VSub_Name RESULT))} ) ] ) (command.WhileUntil keyword: <KW_While while> cond: [ (command.Sentence child: (command.Pipeline children: [ (C {(variable) (Lit_Other ':') (Lit_Other ':') (LinkedList) (Lit_Other ':') (Lit_Other ':') (isEmpty_c) } {(DQ (${ VSub_Name argsToken))} ) ] negated: T ) terminator: <Op_Semi ';'> ) ] body: (command.DoGroup children: [ (C {(variable) (Lit_Other ':') (Lit_Other ':') (LinkedList) (Lit_Other ':') (Lit_Other ':') (first) } {(DQ (${ VSub_Name argsToken))} ) (C {(evaluator) (Lit_Other ':') (Lit_Other ':') (eval)} {(DQ (${ VSub_Name env))} {(DQ (${ VSub_Name RESULT))} ) (C {(variable) (Lit_Other ':') (Lit_Other ':') (LinkedList) (Lit_Other ':') (Lit_Other ':') (append) } {($ VSub_DollarName '$passedArgs')} {(DQ (${ VSub_Name RESULT))} ) (command.Sentence child: (C {(variable) (Lit_Other ':') (Lit_Other ':') (LinkedList) (Lit_Other ':') (Lit_Other ':') (rest) } {(DQ (${ VSub_Name argsToken))} ) terminator: <Op_Semi ';'> ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:argsToken) op: Equal rhs: {(DQ (${ VSub_Name RESULT))} ) ] ) ] ) ) (C {(variable) (Lit_Other ':') (Lit_Other ':') (Lambda) (Lit_Other ':') (Lit_Other ':') (call)} {($ VSub_DollarName '$lambdaToken')} {($ VSub_DollarName '$passedArgs')} ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:RESULT) op: Equal rhs: {(DQ (${ VSub_Name RESULT))} ) ] ) ] ) ) (command.FuncDef name: 'evaluator::call_builtinMacro' body: (command.BraceGroup children: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.BoolBinary op_id: BoolBinary_GlobDEqual left: {(${ VSub_Name EVALUATOR_DEBUG)} right: {(1)} ) ) terminator: <Op_Semi ';'> ) ] action: [ (command.Sentence child: (C {(stderr)} {(DQ ('evaluator::call_builtinMacro ') (${ VSub_At '@'))}) terminator: <Op_Semi ';'> ) ] ) ] ) (C {(variable) (Lit_Other ':') (Lit_Other ':') (set)} {(${ VSub_Name EVALUATOR_VARIABLE)} {(nil)} {(nil)} ) (command.Assignment keyword: Assign_Declare pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:env) op: Equal rhs: {(DQ (${ VSub_Number 1))} ) ] ) (command.Assignment keyword: Assign_Declare pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:identifier) op: Equal rhs: {(DQ (${ VSub_Number 2))} ) ] ) (command.Assignment keyword: Assign_Declare flags: [-a] pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:values) op: Equal rhs: {(word_part.ArrayLiteralPart words:[{(${ VSub_Number 3)}])} ) ] ) (command.Case to_match: {(DQ (${ VSub_Name identifier))} arms: [ (case_arm pat_list: [{(DQ (if))}] action: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.BoolBinary op_id: BoolBinary_GlobDEqual left: {(${ VSub_Name EVALUATOR_DEBUG)} right: {(1)} ) ) terminator: <Op_Semi ';'> ) ] action: [ (command.Sentence child: (C {(stderr)} {(DQ ("evaluator::call_identifier in 'if'"))}) terminator: <Op_Semi ';'> ) ] ) ] ) (C {(stderr)} {(DQ ('[if] not implemented yet'))}) ] ) (case_arm pat_list: [{(Lit_Other '*')}] action: [ (C {(stderr)} { (DQ ('evaluator::call_identifier / Not implemented [') (${ VSub_Name identifier) (']') ) } ) ] ) ] ) ] ) ) (command.FuncDef name: 'evaluator::call_specialForm' body: (command.BraceGroup children: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.BoolBinary op_id: BoolBinary_GlobDEqual left: {(${ VSub_Name EVALUATOR_DEBUG)} right: {(1)} ) ) terminator: <Op_Semi ';'> ) ] action: [ (command.Sentence child: (C {(stderr)} { (DQ ('evaluator::call_specialForm(') (word_part.BracedVarSub token: <VSub_At '@'> prefix_op: VSub_Pound ) (') ') (${ VSub_At '@') ) } ) terminator: <Op_Semi ';'> ) ] ) ] ) (command.Assignment keyword: Assign_Declare pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:env) op: Equal rhs: {(DQ (${ VSub_Number 1))} ) ] ) (command.Assignment keyword: Assign_Declare pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:functionToken) op: Equal rhs: {(DQ (${ VSub_Number 2))} ) ] ) (command.Assignment keyword: Assign_Declare pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:argsToken) op: Equal rhs: {(DQ (${ VSub_Number 3))} ) ] ) (command.Sentence child: (C {(variable) (Lit_Other ':') (Lit_Other ':') (value)} {(DQ (${ VSub_Name functionToken))} ) terminator: <Op_Semi ';'> ) (command.Assignment keyword: Assign_Declare pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:functionName) op: Equal rhs: {(DQ (${ VSub_Name RESULT))} ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.Pipeline children: [(C {(functionExists)} {($ VSub_DollarName '$functionName')})] negated: T ) terminator: <Op_Semi ';'> ) ] action: [ (C {(stderr)} { (DQ ('The builtin function [') (${ VSub_Name functionName) ('] does not exist')) } ) (command.ControlFlow token: <ControlFlow_Exit exit> arg_word: {(1)} ) ] ) ] ) (C {(eval)} {(DQ (${ VSub_Name functionName))} {(DQ (${ VSub_Name env))} {(DQ (${ VSub_Name functionName))} {(DQ (${ VSub_Name argsToken))} ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:RESULT) op: Equal rhs: {(DQ (${ VSub_Name RESULT))} ) ] ) ] ) ) (command.FuncDef name: 'evaluator::setup_builtin' body: (command.BraceGroup children: [ (command.Assignment keyword: Assign_Declare pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:env) op: Equal rhs: {(DQ (${ VSub_Number 1))} ) ] ) (command.Assignment keyword: Assign_Declare pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:type) op: Equal rhs: {(DQ (${ VSub_Number 2))} ) ] ) (command.Assignment keyword: Assign_Declare pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:identifier) op: Equal rhs: {(DQ (${ VSub_Number 3))} ) ] ) (command.Assignment keyword: Assign_Declare pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:functionName) op: Equal rhs: {(DQ (${ VSub_Number 4))} ) ] ) (C {(variable) (Lit_Other ':') (Lit_Other ':') (new)} {(DQ (${ VSub_Name type))} {(DQ (${ VSub_Name functionName))} ) (command.Assignment keyword: Assign_Declare pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:t1) op: Equal rhs: {(DQ (${ VSub_Name RESULT))} ) ] ) (C {(variable) (Lit_Other ':') (Lit_Other ':') (new)} {(String)} {(DQ (${ VSub_Name identifier))} ) (command.Assignment keyword: Assign_Declare pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:t2) op: Equal rhs: {(DQ (${ VSub_Name RESULT))} ) ] ) (C {(environment) (Lit_Other ':') (Lit_Other ':') (setVariable)} {(DQ (${ VSub_Name env))} {(DQ (${ VSub_Name t2))} {(DQ (${ VSub_Name t1))} ) ] ) ) (command.FuncDef name: 'evaluator::setup_builtins' body: (command.BraceGroup children: [ (command.Assignment keyword: Assign_Declare pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:env) op: Equal rhs: {(DQ (${ VSub_Number 1))} ) ] ) (C {(evaluator) (Lit_Other ':') (Lit_Other ':') (setup_builtin)} {(DQ (${ VSub_Name env))} {(BuiltinFunction)} {(DQ ('+'))} {(DQ ('evaluator::functions::builtin::add'))} ) (C {(evaluator) (Lit_Other ':') (Lit_Other ':') (setup_builtin)} {(DQ (${ VSub_Name env))} {(BuiltinFunction)} {(DQ (-))} {(DQ ('evaluator::functions::builtin::subtract'))} ) (C {(evaluator) (Lit_Other ':') (Lit_Other ':') (setup_builtin)} {(DQ (${ VSub_Name env))} {(BuiltinFunction)} {(DQ ('*'))} {(DQ ('evaluator::functions::builtin::multiply'))} ) (C {(evaluator) (Lit_Other ':') (Lit_Other ':') (setup_builtin)} {(DQ (${ VSub_Name env))} {(BuiltinFunction)} {(DQ (/))} {(DQ ('evaluator::functions::builtin::divide'))} ) (C {(evaluator) (Lit_Other ':') (Lit_Other ':') (setup_builtin)} {(DQ (${ VSub_Name env))} {(BuiltinFunction)} {(DQ ('='))} {(DQ ('evaluator::functions::builtin::equals'))} ) (C {(evaluator) (Lit_Other ':') (Lit_Other ':') (setup_builtin)} {(DQ (${ VSub_Name env))} {(BuiltinFunction)} {(DQ ('<'))} {(DQ ('evaluator::functions::builtin::lessthan'))} ) (C {(evaluator) (Lit_Other ':') (Lit_Other ':') (setup_builtin)} {(DQ (${ VSub_Name env))} {(BuiltinFunction)} {(DQ ('>'))} {(DQ ('evaluator::functions::builtin::greaterthan'))} ) (C {(evaluator) (Lit_Other ':') (Lit_Other ':') (setup_builtin)} {(DQ (${ VSub_Name env))} {(BuiltinFunction)} {(DQ ('<='))} {(DQ ('evaluator::functions::builtin::lessthanorequal'))} ) (C {(evaluator) (Lit_Other ':') (Lit_Other ':') (setup_builtin)} {(DQ (${ VSub_Name env))} {(BuiltinFunction)} {(DQ ('>='))} {(DQ ('evaluator::functions::builtin::greaterthanorequal'))} ) (C {(evaluator) (Lit_Other ':') (Lit_Other ':') (setup_builtin)} {(DQ (${ VSub_Name env))} {(SpecialForm)} {(DQ (if))} {(DQ ('evaluator::specialforms::if'))} ) (C {(evaluator) (Lit_Other ':') (Lit_Other ':') (setup_builtin)} {(DQ (${ VSub_Name env))} {(SpecialForm)} {(DQ (lambda))} {(DQ ('evaluator::specialforms::lambda'))} ) (C {(evaluator) (Lit_Other ':') (Lit_Other ':') (setup_builtin)} {(DQ (${ VSub_Name env))} {(SpecialForm)} {(DQ (let))} {(DQ ('evaluator::specialforms::let'))} ) (C {(evaluator) (Lit_Other ':') (Lit_Other ':') (setup_builtin)} {(DQ (${ VSub_Name env))} {(SpecialForm)} {(SQ <'let*'>)} {(DQ ('evaluator::specialforms::letstar'))} ) (C {(environment) (Lit_Other ':') (Lit_Other ':') (pushScope)} {(DQ (${ VSub_Name env))}) ] ) ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Lit_Other '[')} {($ VSub_Number '$0')} {(KW_Bang '!') (Lit_Other '=')} {($ VSub_DollarName '$BASH_SOURCE')} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [(command.ControlFlow token:<ControlFlow_Return return>)] ) ] ) (command.FuncDef name: createTestEnv body: (command.BraceGroup children: [ (C {(environment) (Lit_Other ':') (Lit_Other ':') (new)}) (C {(evaluator) (Lit_Other ':') (Lit_Other ':') (setup_builtins)} {(DQ (${ VSub_Name RESULT))} ) ] ) ) (command.FuncDef name: setInEnv body: (command.BraceGroup children: [ (command.Assignment keyword: Assign_Declare pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:env) op: Equal rhs: {(DQ (${ VSub_Number 1))} ) ] ) (command.Assignment keyword: Assign_Declare pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:name) op: Equal rhs: {(DQ (${ VSub_Number 2))} ) ] ) (command.Assignment keyword: Assign_Declare pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:type) op: Equal rhs: {(DQ (${ VSub_Number 3))} ) ] ) (command.Assignment keyword: Assign_Declare pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:value) op: Equal rhs: {(DQ (${ VSub_Number 4))} ) ] ) (command.Sentence child: (C {(variable) (Lit_Other ':') (Lit_Other ':') (new)} {(Identifier)} {(DQ (${ VSub_Name name))} ) terminator: <Op_Semi ';'> ) (command.Assignment keyword: Assign_Declare pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:nameToken) op: Equal rhs: {(DQ (${ VSub_Name RESULT))} ) ] ) (command.Sentence child: (C {(variable) (Lit_Other ':') (Lit_Other ':') (new)} {(DQ (${ VSub_Name type))} {(DQ (${ VSub_Name value))} ) terminator: <Op_Semi ';'> ) (command.Assignment keyword: Assign_Declare pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:valueToken) op: Equal rhs: {(DQ (${ VSub_Name RESULT))} ) ] ) (C {(environment) (Lit_Other ':') (Lit_Other ':') (setVariable)} {(DQ (${ VSub_Name env))} {(DQ (${ VSub_Name nameToken))} {(DQ (${ VSub_Name valueToken))} ) (C {(variable) (Lit_Other ':') (Lit_Other ':') (new)} {(Identifier)} {(DQ (${ VSub_Name name))} ) ] ) ) (command.FuncDef name: appendToList body: (command.BraceGroup children: [ (command.Assignment keyword: Assign_Declare pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:listToken) op: Equal rhs: {(DQ (${ VSub_Number 1))} ) ] ) (command.Assignment keyword: Assign_Declare flags: [-a] pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:items) op: Equal rhs: { (word_part.ArrayLiteralPart words: [ { (DQ (word_part.BracedVarSub token: <VSub_At '@'> suffix_op: (suffix_op.Slice begin: (arith_expr.ArithWord w:{(Lit_Digits 2)}) ) ) ) } ] ) } ) ] ) (command.Assignment keyword: Assign_Declare flags: [-i] pairs: [(assign_pair lhs:(lhs_expr.LhsName name:size) op:Equal)] ) (command.Assignment keyword: Assign_Declare flags: [-i] pairs: [(assign_pair lhs:(lhs_expr.LhsName name:max_index) op:Equal)] ) (command.Assignment keyword: Assign_Declare pairs: [(assign_pair lhs:(lhs_expr.LhsName name:currentType) op:Equal)] ) (command.Assignment keyword: Assign_Declare pairs: [(assign_pair lhs:(lhs_expr.LhsName name:currentValue) op:Equal)] ) (command.DParen child: (arith_expr.ArithBinary op_id: Arith_Comma left: (arith_expr.BinaryAssign op_id: Arith_Equal left: (lhs_expr.LhsName name:size) right: (arith_expr.ArithWord w: { (word_part.BracedVarSub token: <VSub_Name items> prefix_op: VSub_Pound bracket_op: (bracket_op.WholeArray op_id:Lit_At) ) } ) ) right: (arith_expr.BinaryAssign op_id: Arith_Equal left: (lhs_expr.LhsName name:max_index) right: (arith_expr.ArithBinary op_id: Arith_Minus left: (arith_expr.ArithVarRef token:<Lit_ArithVarLike size>) right: (arith_expr.ArithWord w:{(Lit_Digits 1)}) ) ) ) ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DParen child: (arith_expr.ArithBinary op_id: Arith_NEqual left: (arith_expr.ArithBinary op_id: Arith_Percent left: (arith_expr.ArithVarRef token:<Lit_ArithVarLike size>) right: (arith_expr.ArithWord w:{(Lit_Digits 2)}) ) right: (arith_expr.ArithWord w:{(Lit_Digits 0)}) ) ) terminator: <Op_Semi ';'> ) ] action: [ (C {(stderr)} {(DQ ('appendToList: number of items to add to list not even'))}) (command.ControlFlow token: <ControlFlow_Exit exit> arg_word: {(1)} ) ] ) ] ) (command.ForExpr init: (arith_expr.BinaryAssign op_id: Arith_Equal left: (lhs_expr.LhsName name:i) right: (arith_expr.ArithWord w:{(Lit_Digits 0)}) ) cond: (arith_expr.ArithBinary op_id: Arith_LessEqual left: (arith_expr.ArithVarRef token:<Lit_ArithVarLike i>) right: (arith_expr.ArithVarRef token:<Lit_ArithVarLike max_index>) ) update: (arith_expr.BinaryAssign op_id: Arith_Equal left: (lhs_expr.LhsName name:i) right: (arith_expr.ArithBinary op_id: Arith_Plus left: (arith_expr.ArithVarRef token:<Lit_ArithVarLike i>) right: (arith_expr.ArithWord w:{(Lit_Digits 2)}) ) ) body: (command.DoGroup children: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:currentType) op: Equal rhs: { (DQ (word_part.BracedVarSub token: <VSub_Name items> bracket_op: (bracket_op.ArrayIndex expr: (arith_expr.ArithWord w:{(${ VSub_Name i)}) ) ) ) } ) ] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:currentValue) op: Equal rhs: { (DQ (word_part.BracedVarSub token: <VSub_Name items> bracket_op: (bracket_op.ArrayIndex expr: (arith_expr.ArithBinary op_id: Arith_Plus left: (arith_expr.ArithVarRef token:<Lit_ArithVarLike i>) right: (arith_expr.ArithWord w:{(Lit_Digits 1)}) ) ) ) ) } ) ] ) (C {(variable) (Lit_Other ':') (Lit_Other ':') (new)} {(DQ (${ VSub_Name currentType))} {(DQ (${ VSub_Name currentValue))} ) (C {(variable) (Lit_Other ':') (Lit_Other ':') (LinkedList) (Lit_Other ':') (Lit_Other ':') (append) } {(DQ (${ VSub_Name listToken))} {(DQ (${ VSub_Name RESULT))} ) ] ) ) ] ) ) (command.Assignment keyword: Assign_Declare pairs: [(assign_pair lhs:(lhs_expr.LhsName name:env) op:Equal)] ) (command.CommandList children: [ (command.Sentence child:(C {(createTestEnv)}) terminator:<Op_Semi ';'>) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:env) op: Equal rhs: {(DQ (${ VSub_Name RESULT))} ) ] ) ] ) (command.CommandList children: [ (command.Sentence child: (C {(variable) (Lit_Other ':') (Lit_Other ':') (new)} {(Boolean)} {(true)}) terminator: <Op_Semi ';'> ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:valueToken) op: Equal rhs: {(DQ (${ VSub_Name RESULT))} ) ] ) ] ) (C {(evaluator) (Lit_Other ':') (Lit_Other ':') (eval)} {(DQ (${ VSub_Name env))} {($ VSub_DollarName '$valueToken')} ) (command.CommandList children: [ (command.Sentence child: (C {(variable) (Lit_Other ':') (Lit_Other ':') (debug)} {(DQ (${ VSub_Name RESULT))}) terminator: <Op_Semi ';'> ) (C {(assert) (Lit_Other ':') (Lit_Other ':') (equals)} {(DQ ('Boolean :: true'))} {(DQ (${ VSub_Name RESULT))} {(DQ (atom/boolean))} ) ] ) (command.CommandList children: [ (command.Sentence child:(C {(createTestEnv)}) terminator:<Op_Semi ';'>) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:env) op: Equal rhs: {(DQ (${ VSub_Name RESULT))} ) ] ) ] ) (command.CommandList children: [ (command.Sentence child: (C {(setInEnv)} {(DQ (${ VSub_Name env))} {(v)} {(Integer)} {(4)}) terminator: <Op_Semi ';'> ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:token) op: Equal rhs: {(DQ (${ VSub_Name RESULT))} ) ] ) ] ) (C {(evaluator) (Lit_Other ':') (Lit_Other ':') (eval)} {(DQ (${ VSub_Name env))} {(DQ (${ VSub_Name token))} ) (command.CommandList children: [ (command.Sentence child: (C {(variable) (Lit_Other ':') (Lit_Other ':') (debug)} {(DQ (${ VSub_Name RESULT))}) terminator: <Op_Semi ';'> ) (C {(assert) (Lit_Other ':') (Lit_Other ':') (equals)} {(DQ ('Integer :: 4'))} {(DQ (${ VSub_Name RESULT))} {(DQ ('identifier evaluation'))} ) ] ) (command.CommandList children: [ (command.Sentence child:(C {(createTestEnv)}) terminator:<Op_Semi ';'>) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:env) op: Equal rhs: {(DQ (${ VSub_Name RESULT))} ) ] ) ] ) (command.CommandList children: [ (command.Sentence child: (C {(variable) (Lit_Other ':') (Lit_Other ':') (LinkedList) (Lit_Other ':') (Lit_Other ':') (new) } ) terminator: <Op_Semi ';'> ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:vCode) op: Equal rhs: {(DQ (${ VSub_Name RESULT))} ) ] ) ] ) (C {(appendToList)} {($ VSub_DollarName '$vCode')} {(Identifier)} {(SQ <'+'>)} {(Integer)} {(5)} {(Integer)} {(2)} ) (C {(evaluator) (Lit_Other ':') (Lit_Other ':') (eval)} {(DQ (${ VSub_Name env))} {($ VSub_DollarName '$vCode')} ) (command.CommandList children: [ (command.Sentence child: (C {(variable) (Lit_Other ':') (Lit_Other ':') (debug)} {(DQ (${ VSub_Name RESULT))}) terminator: <Op_Semi ';'> ) (C {(assert) (Lit_Other ':') (Lit_Other ':') (equals)} {(DQ ('Integer :: 7'))} {(DQ (${ VSub_Name RESULT))} {(DQ ('(+ 5 2)'))} ) ] ) (command.CommandList children: [ (command.Sentence child:(C {(createTestEnv)}) terminator:<Op_Semi ';'>) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:env) op: Equal rhs: {(DQ (${ VSub_Name RESULT))} ) ] ) ] ) (command.CommandList children: [ (command.Sentence child: (C {(variable) (Lit_Other ':') (Lit_Other ':') (LinkedList) (Lit_Other ':') (Lit_Other ':') (new) } ) terminator: <Op_Semi ';'> ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:vCode) op: Equal rhs: {(DQ (${ VSub_Name RESULT))} ) ] ) ] ) (C {(appendToList)} {($ VSub_DollarName '$vCode')} {(Identifier)} {(SQ <->)} {(Integer)} {(5)} {(Integer)} {(2)} ) (C {(evaluator) (Lit_Other ':') (Lit_Other ':') (eval)} {(DQ (${ VSub_Name env))} {($ VSub_DollarName '$vCode')} ) (command.CommandList children: [ (command.Sentence child: (C {(variable) (Lit_Other ':') (Lit_Other ':') (debug)} {(DQ (${ VSub_Name RESULT))}) terminator: <Op_Semi ';'> ) (C {(assert) (Lit_Other ':') (Lit_Other ':') (equals)} {(DQ ('Integer :: 3'))} {(DQ (${ VSub_Name RESULT))} {(DQ ('(- 5 2)'))} ) ] ) (command.CommandList children: [ (command.Sentence child:(C {(createTestEnv)}) terminator:<Op_Semi ';'>) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:env) op: Equal rhs: {(DQ (${ VSub_Name RESULT))} ) ] ) ] ) (command.CommandList children: [ (command.Sentence child: (C {(variable) (Lit_Other ':') (Lit_Other ':') (LinkedList) (Lit_Other ':') (Lit_Other ':') (new) } ) terminator: <Op_Semi ';'> ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:vCode) op: Equal rhs: {(DQ (${ VSub_Name RESULT))} ) ] ) ] ) (C {(appendToList)} {($ VSub_DollarName '$vCode')} {(Identifier)} {(SQ <'*'>)} {(Integer)} {(5)} {(Integer)} {(2)} ) (C {(evaluator) (Lit_Other ':') (Lit_Other ':') (eval)} {(DQ (${ VSub_Name env))} {($ VSub_DollarName '$vCode')} ) (command.CommandList children: [ (command.Sentence child: (C {(variable) (Lit_Other ':') (Lit_Other ':') (debug)} {(DQ (${ VSub_Name RESULT))}) terminator: <Op_Semi ';'> ) (C {(assert) (Lit_Other ':') (Lit_Other ':') (equals)} {(DQ ('Integer :: 10'))} {(DQ (${ VSub_Name RESULT))} {(DQ ('(* 5 2)'))} ) ] ) (command.CommandList children: [ (command.Sentence child:(C {(createTestEnv)}) terminator:<Op_Semi ';'>) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:env) op: Equal rhs: {(DQ (${ VSub_Name RESULT))} ) ] ) ] ) (command.CommandList children: [ (command.Sentence child: (C {(variable) (Lit_Other ':') (Lit_Other ':') (LinkedList) (Lit_Other ':') (Lit_Other ':') (new) } ) terminator: <Op_Semi ';'> ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:vCode) op: Equal rhs: {(DQ (${ VSub_Name RESULT))} ) ] ) ] ) (C {(appendToList)} {($ VSub_DollarName '$vCode')} {(Identifier)} {(SQ </>)} {(Integer)} {(6)} {(Integer)} {(2)} ) (C {(evaluator) (Lit_Other ':') (Lit_Other ':') (eval)} {(DQ (${ VSub_Name env))} {($ VSub_DollarName '$vCode')} ) (command.CommandList children: [ (command.Sentence child: (C {(variable) (Lit_Other ':') (Lit_Other ':') (debug)} {(DQ (${ VSub_Name RESULT))}) terminator: <Op_Semi ';'> ) (C {(assert) (Lit_Other ':') (Lit_Other ':') (equals)} {(DQ ('Integer :: 3'))} {(DQ (${ VSub_Name RESULT))} {(DQ ('(/ 6 2)'))} ) ] ) (command.CommandList children: [ (command.Sentence child:(C {(createTestEnv)}) terminator:<Op_Semi ';'>) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:env) op: Equal rhs: {(DQ (${ VSub_Name RESULT))} ) ] ) ] ) (command.CommandList children: [ (command.Sentence child: (C {(variable) (Lit_Other ':') (Lit_Other ':') (LinkedList) (Lit_Other ':') (Lit_Other ':') (new) } ) terminator: <Op_Semi ';'> ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:vCode) op: Equal rhs: {(DQ (${ VSub_Name RESULT))} ) ] ) ] ) (C {(appendToList)} {($ VSub_DollarName '$vCode')} {(Identifier)} {(SQ <'='>)} {(Integer)} {(2)} {(Integer)} {(2)} ) (C {(evaluator) (Lit_Other ':') (Lit_Other ':') (eval)} {(DQ (${ VSub_Name env))} {($ VSub_DollarName '$vCode')} ) (command.CommandList children: [ (command.Sentence child: (C {(variable) (Lit_Other ':') (Lit_Other ':') (debug)} {(DQ (${ VSub_Name RESULT))}) terminator: <Op_Semi ';'> ) (C {(assert) (Lit_Other ':') (Lit_Other ':') (equals)} {(DQ ('Boolean :: true'))} {(DQ (${ VSub_Name RESULT))} {(DQ ('(= 2 2)'))} ) ] ) (command.CommandList children: [ (command.Sentence child:(C {(createTestEnv)}) terminator:<Op_Semi ';'>) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:env) op: Equal rhs: {(DQ (${ VSub_Name RESULT))} ) ] ) ] ) (command.CommandList children: [ (command.Sentence child: (C {(variable) (Lit_Other ':') (Lit_Other ':') (LinkedList) (Lit_Other ':') (Lit_Other ':') (new) } ) terminator: <Op_Semi ';'> ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:vCode) op: Equal rhs: {(DQ (${ VSub_Name RESULT))} ) ] ) ] ) (C {(appendToList)} {($ VSub_DollarName '$vCode')} {(Identifier)} {(SQ <'='>)} {(Integer)} {(2)} {(Integer)} {(3)} ) (C {(evaluator) (Lit_Other ':') (Lit_Other ':') (eval)} {(DQ (${ VSub_Name env))} {($ VSub_DollarName '$vCode')} ) (command.CommandList children: [ (command.Sentence child: (C {(variable) (Lit_Other ':') (Lit_Other ':') (debug)} {(DQ (${ VSub_Name RESULT))}) terminator: <Op_Semi ';'> ) (C {(assert) (Lit_Other ':') (Lit_Other ':') (equals)} {(DQ ('Boolean :: false'))} {(DQ (${ VSub_Name RESULT))} {(DQ ('(= 2 3)'))} ) ] ) (command.CommandList children: [ (command.Sentence child:(C {(createTestEnv)}) terminator:<Op_Semi ';'>) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:env) op: Equal rhs: {(DQ (${ VSub_Name RESULT))} ) ] ) ] ) (command.CommandList children: [ (command.Sentence child: (C {(setInEnv)} {(DQ (${ VSub_Name env))} {(u)} {(Integer)} {(4)}) terminator: <Op_Semi ';'> ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:token) op: Equal rhs: {(DQ (${ VSub_Name RESULT))} ) ] ) ] ) (command.CommandList children: [ (command.Sentence child: (C {(setInEnv)} {(DQ (${ VSub_Name env))} {(v)} {(Integer)} {(4)}) terminator: <Op_Semi ';'> ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:token) op: Equal rhs: {(DQ (${ VSub_Name RESULT))} ) ] ) ] ) (command.CommandList children: [ (command.Sentence child: (C {(setInEnv)} {(DQ (${ VSub_Name env))} {(w)} {(Integer)} {(2)}) terminator: <Op_Semi ';'> ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:token) op: Equal rhs: {(DQ (${ VSub_Name RESULT))} ) ] ) ] ) (command.CommandList children: [ (command.Sentence child: (C {(variable) (Lit_Other ':') (Lit_Other ':') (new)} {(LinkedList)}) terminator: <Op_Semi ';'> ) (command.Assignment keyword: Assign_None pairs: [(assign_pair lhs:(lhs_expr.LhsName name:vCode) op:Equal rhs:{(${ VSub_Name RESULT)})] ) ] ) (C {(appendToList)} {($ VSub_DollarName '$vCode')} {(Identifier)} {(SQ <'+'>)} {(Identifier)} {(SQ <v>)} {(Integer)} {(2)} ) (C {(evaluator) (Lit_Other ':') (Lit_Other ':') (eval)} {(DQ (${ VSub_Name env))} {(DQ (${ VSub_Name vCode))} ) (command.CommandList children: [ (command.Sentence child: (C {(variable) (Lit_Other ':') (Lit_Other ':') (debug)} {(DQ (${ VSub_Name RESULT))}) terminator: <Op_Semi ';'> ) (C {(assert) (Lit_Other ':') (Lit_Other ':') (equals)} {(DQ ('Integer :: 6'))} {(DQ (${ VSub_Name RESULT))} {(DQ ('(+ <v=4> 2)'))} ) ] ) (command.CommandList children: [ (command.Sentence child: (C {(variable) (Lit_Other ':') (Lit_Other ':') (new)} {(LinkedList)}) terminator: <Op_Semi ';'> ) (command.Assignment keyword: Assign_None pairs: [(assign_pair lhs:(lhs_expr.LhsName name:vCode) op:Equal rhs:{(${ VSub_Name RESULT)})] ) ] ) (C {(appendToList)} {($ VSub_DollarName '$vCode')} {(Identifier)} {(SQ <'+'>)} {(Integer)} {(2)} {(Identifier)} {(SQ <v>)} ) (C {(evaluator) (Lit_Other ':') (Lit_Other ':') (eval)} {(DQ (${ VSub_Name env))} {(DQ (${ VSub_Name vCode))} ) (command.CommandList children: [ (command.Sentence child: (C {(variable) (Lit_Other ':') (Lit_Other ':') (debug)} {(DQ (${ VSub_Name RESULT))}) terminator: <Op_Semi ';'> ) (C {(assert) (Lit_Other ':') (Lit_Other ':') (equals)} {(DQ ('Integer :: 6'))} {(DQ (${ VSub_Name RESULT))} {(DQ ('(+ 2 <v=4>)'))} ) ] ) (command.CommandList children: [ (command.Sentence child: (C {(variable) (Lit_Other ':') (Lit_Other ':') (new)} {(LinkedList)}) terminator: <Op_Semi ';'> ) (command.Assignment keyword: Assign_None pairs: [(assign_pair lhs:(lhs_expr.LhsName name:vCode) op:Equal rhs:{(${ VSub_Name RESULT)})] ) ] ) (C {(appendToList)} {($ VSub_DollarName '$vCode')} {(Identifier)} {(SQ <->)} {(Identifier)} {(SQ <v>)} {(Integer)} {(2)} ) (C {(evaluator) (Lit_Other ':') (Lit_Other ':') (eval)} {(DQ (${ VSub_Name env))} {(DQ (${ VSub_Name vCode))} ) (command.CommandList children: [ (command.Sentence child: (C {(variable) (Lit_Other ':') (Lit_Other ':') (debug)} {(DQ (${ VSub_Name RESULT))}) terminator: <Op_Semi ';'> ) (C {(assert) (Lit_Other ':') (Lit_Other ':') (equals)} {(DQ ('Integer :: 2'))} {(DQ (${ VSub_Name RESULT))} {(DQ ('(- <v=4> 2)'))} ) ] ) (command.CommandList children: [ (command.Sentence child: (C {(variable) (Lit_Other ':') (Lit_Other ':') (new)} {(LinkedList)}) terminator: <Op_Semi ';'> ) (command.Assignment keyword: Assign_None pairs: [(assign_pair lhs:(lhs_expr.LhsName name:vCode) op:Equal rhs:{(${ VSub_Name RESULT)})] ) ] ) (C {(appendToList)} {($ VSub_DollarName '$vCode')} {(Identifier)} {(SQ <->)} {(Integer)} {(2)} {(Identifier)} {(SQ <v>)} ) (C {(evaluator) (Lit_Other ':') (Lit_Other ':') (eval)} {(DQ (${ VSub_Name env))} {(DQ (${ VSub_Name vCode))} ) (command.CommandList children: [ (command.Sentence child: (C {(variable) (Lit_Other ':') (Lit_Other ':') (debug)} {(DQ (${ VSub_Name RESULT))}) terminator: <Op_Semi ';'> ) (C {(assert) (Lit_Other ':') (Lit_Other ':') (equals)} {(DQ ('Integer :: -2'))} {(DQ (${ VSub_Name RESULT))} {(DQ ('(- 2 <v=4>)'))} ) ] ) (command.CommandList children: [ (command.Sentence child: (C {(variable) (Lit_Other ':') (Lit_Other ':') (new)} {(LinkedList)}) terminator: <Op_Semi ';'> ) (command.Assignment keyword: Assign_None pairs: [(assign_pair lhs:(lhs_expr.LhsName name:vCode) op:Equal rhs:{(${ VSub_Name RESULT)})] ) ] ) (C {(appendToList)} {($ VSub_DollarName '$vCode')} {(Identifier)} {(SQ <'*'>)} {(Identifier)} {(SQ <v>)} {(Integer)} {(2)} ) (C {(evaluator) (Lit_Other ':') (Lit_Other ':') (eval)} {(DQ (${ VSub_Name env))} {(DQ (${ VSub_Name vCode))} ) (command.CommandList children: [ (command.Sentence child: (C {(variable) (Lit_Other ':') (Lit_Other ':') (debug)} {(DQ (${ VSub_Name RESULT))}) terminator: <Op_Semi ';'> ) (C {(assert) (Lit_Other ':') (Lit_Other ':') (equals)} {(DQ ('Integer :: 8'))} {(DQ (${ VSub_Name RESULT))} {(DQ ('(* <v=4> 2)'))} ) ] ) (command.CommandList children: [ (command.Sentence child: (C {(variable) (Lit_Other ':') (Lit_Other ':') (new)} {(LinkedList)}) terminator: <Op_Semi ';'> ) (command.Assignment keyword: Assign_None pairs: [(assign_pair lhs:(lhs_expr.LhsName name:vCode) op:Equal rhs:{(${ VSub_Name RESULT)})] ) ] ) (C {(appendToList)} {($ VSub_DollarName '$vCode')} {(Identifier)} {(SQ <'*'>)} {(Integer)} {(2)} {(Identifier)} {(SQ <v>)} ) (C {(evaluator) (Lit_Other ':') (Lit_Other ':') (eval)} {(DQ (${ VSub_Name env))} {(DQ (${ VSub_Name vCode))} ) (command.CommandList children: [ (command.Sentence child: (C {(variable) (Lit_Other ':') (Lit_Other ':') (debug)} {(DQ (${ VSub_Name RESULT))}) terminator: <Op_Semi ';'> ) (C {(assert) (Lit_Other ':') (Lit_Other ':') (equals)} {(DQ ('Integer :: 8'))} {(DQ (${ VSub_Name RESULT))} {(DQ ('(* 2 <v=4>)'))} ) ] ) (command.CommandList children: [ (command.Sentence child: (C {(variable) (Lit_Other ':') (Lit_Other ':') (new)} {(LinkedList)}) terminator: <Op_Semi ';'> ) (command.Assignment keyword: Assign_None pairs: [(assign_pair lhs:(lhs_expr.LhsName name:vCode) op:Equal rhs:{(${ VSub_Name RESULT)})] ) ] ) (C {(appendToList)} {($ VSub_DollarName '$vCode')} {(Identifier)} {(SQ </>)} {(Identifier)} {(SQ <v>)} {(Integer)} {(2)} ) (C {(evaluator) (Lit_Other ':') (Lit_Other ':') (eval)} {(DQ (${ VSub_Name env))} {(DQ (${ VSub_Name vCode))} ) (command.CommandList children: [ (command.Sentence child: (C {(variable) (Lit_Other ':') (Lit_Other ':') (debug)} {(DQ (${ VSub_Name RESULT))}) terminator: <Op_Semi ';'> ) (C {(assert) (Lit_Other ':') (Lit_Other ':') (equals)} {(DQ ('Integer :: 2'))} {(DQ (${ VSub_Name RESULT))} {(DQ ('(/ <v=4> 2)'))} ) ] ) (command.CommandList children: [ (command.Sentence child: (C {(variable) (Lit_Other ':') (Lit_Other ':') (new)} {(LinkedList)}) terminator: <Op_Semi ';'> ) (command.Assignment keyword: Assign_None pairs: [(assign_pair lhs:(lhs_expr.LhsName name:vCode) op:Equal rhs:{(${ VSub_Name RESULT)})] ) ] ) (C {(appendToList)} {($ VSub_DollarName '$vCode')} {(Identifier)} {(SQ </>)} {(Integer)} {(12)} {(Identifier)} {(SQ <v>)} ) (C {(evaluator) (Lit_Other ':') (Lit_Other ':') (eval)} {(DQ (${ VSub_Name env))} {(DQ (${ VSub_Name vCode))} ) (command.CommandList children: [ (command.Sentence child: (C {(variable) (Lit_Other ':') (Lit_Other ':') (debug)} {(DQ (${ VSub_Name RESULT))}) terminator: <Op_Semi ';'> ) (C {(assert) (Lit_Other ':') (Lit_Other ':') (equals)} {(DQ ('Integer :: 3'))} {(DQ (${ VSub_Name RESULT))} {(DQ ('(/ 12 <v=4>)'))} ) ] ) (command.CommandList children: [ (command.Sentence child: (C {(variable) (Lit_Other ':') (Lit_Other ':') (new)} {(LinkedList)}) terminator: <Op_Semi ';'> ) (command.Assignment keyword: Assign_None pairs: [(assign_pair lhs:(lhs_expr.LhsName name:vCode) op:Equal rhs:{(${ VSub_Name RESULT)})] ) ] ) (C {(appendToList)} {($ VSub_DollarName '$vCode')} {(Identifier)} {(SQ <'='>)} {(Identifier)} {(SQ <v>)} {(Integer)} {(2)} ) (C {(evaluator) (Lit_Other ':') (Lit_Other ':') (eval)} {(DQ (${ VSub_Name env))} {(DQ (${ VSub_Name vCode))} ) (command.CommandList children: [ (command.Sentence child: (C {(variable) (Lit_Other ':') (Lit_Other ':') (debug)} {(DQ (${ VSub_Name RESULT))}) terminator: <Op_Semi ';'> ) (C {(assert) (Lit_Other ':') (Lit_Other ':') (equals)} {(DQ ('Boolean :: false'))} {(DQ (${ VSub_Name RESULT))} {(DQ ('(= <v=4> 2)'))} ) ] ) (command.CommandList children: [ (command.Sentence child: (C {(variable) (Lit_Other ':') (Lit_Other ':') (new)} {(LinkedList)}) terminator: <Op_Semi ';'> ) (command.Assignment keyword: Assign_None pairs: [(assign_pair lhs:(lhs_expr.LhsName name:vCode) op:Equal rhs:{(${ VSub_Name RESULT)})] ) ] ) (C {(appendToList)} {($ VSub_DollarName '$vCode')} {(Identifier)} {(SQ <'='>)} {(Integer)} {(4)} {(Identifier)} {(SQ <v>)} ) (C {(evaluator) (Lit_Other ':') (Lit_Other ':') (eval)} {(DQ (${ VSub_Name env))} {(DQ (${ VSub_Name vCode))} ) (command.CommandList children: [ (command.Sentence child: (C {(variable) (Lit_Other ':') (Lit_Other ':') (debug)} {(DQ (${ VSub_Name RESULT))}) terminator: <Op_Semi ';'> ) (C {(assert) (Lit_Other ':') (Lit_Other ':') (equals)} {(DQ ('Boolean :: true'))} {(DQ (${ VSub_Name RESULT))} {(DQ ('(= 4 <v=4>)'))} ) ] ) (command.CommandList children: [ (command.Sentence child:(C {(createTestEnv)}) terminator:<Op_Semi ';'>) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:env) op: Equal rhs: {(DQ (${ VSub_Name RESULT))} ) ] ) ] ) (command.CommandList children: [ (command.Sentence child: (C {(setInEnv)} {(DQ (${ VSub_Name env))} {(u)} {(Integer)} {(4)}) terminator: <Op_Semi ';'> ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:token) op: Equal rhs: {(DQ (${ VSub_Name RESULT))} ) ] ) ] ) (command.CommandList children: [ (command.Sentence child: (C {(setInEnv)} {(DQ (${ VSub_Name env))} {(v)} {(Integer)} {(4)}) terminator: <Op_Semi ';'> ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:token) op: Equal rhs: {(DQ (${ VSub_Name RESULT))} ) ] ) ] ) (command.CommandList children: [ (command.Sentence child: (C {(setInEnv)} {(DQ (${ VSub_Name env))} {(w)} {(Integer)} {(2)}) terminator: <Op_Semi ';'> ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:token) op: Equal rhs: {(DQ (${ VSub_Name RESULT))} ) ] ) ] ) (command.CommandList children: [ (command.Sentence child: (C {(variable) (Lit_Other ':') (Lit_Other ':') (new)} {(LinkedList)}) terminator: <Op_Semi ';'> ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:slistOne) op: Equal rhs: {(${ VSub_Name RESULT)} ) ] ) ] ) (C {(appendToList)} {($ VSub_DollarName '$slistOne')} {(Identifier)} {(Lit_Other '+')} {(Integer)} {(4)} {(Identifier)} {(v)} ) (command.CommandList children: [ (command.Sentence child: (C {(variable) (Lit_Other ':') (Lit_Other ':') (new)} {(LinkedList)}) terminator: <Op_Semi ';'> ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:slistTwo) op: Equal rhs: {(${ VSub_Name RESULT)} ) ] ) ] ) (C {(appendToList)} {($ VSub_DollarName '$slistTwo')} {(Identifier)} {(-)} {(Integer)} {(4)} {(Identifier)} {(w)} ) (command.CommandList children: [ (command.Sentence child: (C {(variable) (Lit_Other ':') (Lit_Other ':') (new)} {(LinkedList)}) terminator: <Op_Semi ';'> ) (command.Assignment keyword: Assign_None pairs: [(assign_pair lhs:(lhs_expr.LhsName name:vCode) op:Equal rhs:{(${ VSub_Name RESULT)})] ) ] ) (C {(appendToList)} {($ VSub_DollarName '$vCode')} {(Identifier)} {(SQ <'*'>)}) (C {(variable) (Lit_Other ':') (Lit_Other ':') (LinkedList) (Lit_Other ':') (Lit_Other ':') (append)} {($ VSub_DollarName '$vCode')} {($ VSub_DollarName '$slistTwo')} ) (C {(variable) (Lit_Other ':') (Lit_Other ':') (LinkedList) (Lit_Other ':') (Lit_Other ':') (append)} {($ VSub_DollarName '$vCode')} {($ VSub_DollarName '$slistOne')} ) (C {(evaluator) (Lit_Other ':') (Lit_Other ':') (eval)} {(DQ (${ VSub_Name env))} {(DQ (${ VSub_Name vCode))} ) (command.CommandList children: [ (command.Sentence child: (C {(variable) (Lit_Other ':') (Lit_Other ':') (debug)} {(DQ (${ VSub_Name RESULT))}) terminator: <Op_Semi ';'> ) (C {(assert) (Lit_Other ':') (Lit_Other ':') (equals)} {(DQ ('Integer :: 16'))} {(DQ (${ VSub_Name RESULT))} {(DQ ('(* (+ 4 <v=4>) (- 4 <w=2>))'))} ) ] ) (command.CommandList children: [ (command.Sentence child:(C {(createTestEnv)}) terminator:<Op_Semi ';'>) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:lambdaEnv) op: Equal rhs: {(DQ (${ VSub_Name RESULT))} ) ] ) ] ) (C {(setInEnv)} {($ VSub_DollarName '$lambdaEnv')} {(DQ (y))} {(Integer)} {(10)}) (command.CommandList children: [ (command.Sentence child: (C {(variable) (Lit_Other ':') (Lit_Other ':') (LinkedList) (Lit_Other ':') (Lit_Other ':') (new) } ) terminator: <Op_Semi ';'> ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:lambdaArgs) op: Equal rhs: {(DQ (${ VSub_Name RESULT))} ) ] ) ] ) (C {(appendToList)} {($ VSub_DollarName '$lambdaArgs')} {(Identifier)} {(DQ (x))}) (command.CommandList children: [ (command.Sentence child: (C {(variable) (Lit_Other ':') (Lit_Other ':') (LinkedList) (Lit_Other ':') (Lit_Other ':') (new) } ) terminator: <Op_Semi ';'> ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:lambdaExpression) op: Equal rhs: {(DQ (${ VSub_Name RESULT))} ) ] ) ] ) (C {(appendToList)} {($ VSub_DollarName '$lambdaExpression')} {(Identifier)} {(SQ <'*'>)} {(Identifier)} {(DQ (x))} {(Identifier)} {(DQ (y))} ) (command.CommandList children: [ (command.Sentence child: (C {(variable) (Lit_Other ':') (Lit_Other ':') (LinkedList) (Lit_Other ':') (Lit_Other ':') (new) } ) terminator: <Op_Semi ';'> ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:lambdaCode) op: Equal rhs: {(DQ (${ VSub_Name RESULT))} ) ] ) ] ) (C {(variable) (Lit_Other ':') (Lit_Other ':') (LinkedList) (Lit_Other ':') (Lit_Other ':') (append)} {($ VSub_DollarName '$lambdaCode')} {($ VSub_DollarName '$lambdaExpression')} ) (command.CommandList children: [ (command.Sentence child: (C {(variable) (Lit_Other ':') (Lit_Other ':') (Lambda) (Lit_Other ':') (Lit_Other ':') (new)} { (DQ ($ VSub_DollarName '$lambdaEnv') (' ') ($ VSub_DollarName '$lambdaArgs') (' ') ($ VSub_DollarName '$lambdaCode') ) } ) terminator: <Op_Semi ';'> ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:lambda) op: Equal rhs: {(DQ (${ VSub_Name RESULT))} ) ] ) ] ) (command.CommandList children: [ (command.Sentence child:(C {(createTestEnv)}) terminator:<Op_Semi ';'>) (command.Assignment keyword: Assign_None pairs: [(assign_pair lhs:(lhs_expr.LhsName name:env) op:Equal rhs:{(${ VSub_Name RESULT)})] ) ] ) (C {(setInEnv)} {(DQ (${ VSub_Name env))} {(DQ (a))} {(Integer)} {(5)}) (command.CommandList children: [ (command.Sentence child: (C {(variable) (Lit_Other ':') (Lit_Other ':') (new)} {(LinkedList)}) terminator: <Op_Semi ';'> ) (command.Assignment keyword: Assign_None pairs: [(assign_pair lhs:(lhs_expr.LhsName name:vCode) op:Equal rhs:{(${ VSub_Name RESULT)})] ) ] ) (C {(variable) (Lit_Other ':') (Lit_Other ':') (LinkedList) (Lit_Other ':') (Lit_Other ':') (append)} {($ VSub_DollarName '$vCode')} {($ VSub_DollarName '$lambda')} ) (C {(appendToList)} {($ VSub_DollarName '$vCode')} {(Identifier)} {(DQ (a))}) (C {(evaluator) (Lit_Other ':') (Lit_Other ':') (eval)} {(DQ (${ VSub_Name env))} {(DQ (${ VSub_Name vCode))} ) (command.CommandList children: [ (command.Sentence child: (C {(variable) (Lit_Other ':') (Lit_Other ':') (debug)} {(DQ (${ VSub_Name RESULT))}) terminator: <Op_Semi ';'> ) (C {(assert) (Lit_Other ':') (Lit_Other ':') (equals)} {(DQ ('Integer :: 50'))} {(DQ (${ VSub_Name RESULT))} {(DQ ('env(a=5) ((lambda[env(y=10)] (x) (* y x)) a)'))} ) ] ) (C {(assert) (Lit_Other ':') (Lit_Other ':') (report)}) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.AndOr ops: [Op_DAmp] children: [ (C {(Lit_Other '[')} { (word_part.BracedVarSub token: <VSub_Number 1> suffix_op: (suffix_op.StringUnary op_id:VTest_Plus arg_word:{(isset)}) ) } {(Lit_Other ']')} ) (C {(Lit_Other '[')} {(DQ ($ VSub_Number '$1'))} {(Lit_Other '=') (Lit_Other '=')} {(DQ (debug))} {(Lit_Other ']')} ) ] ) terminator: <Op_Semi ';'> ) ] action: [(C {(variable) (Lit_Other ':') (Lit_Other ':') (printMetadata)})] ) ] ) ] )