(command.CommandList children: [ (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} { (braced_var_sub token: <Id.VSub_Name EVALUATOR_SH> suffix_op: (suffix_op.Unary tok:<Id.VTest_Plus '+'> arg_word:{<true>}) ) } {<Id.Lit_RBracket ']'>} ) (command.ControlFlow token:<Id.ControlFlow_Return return>) ] ) (C {<declare>} {<-g>} {<Id.Lit_VarLike 'EVALUATOR_SH='> <true>}) (C {<.>} { (braced_var_sub token: <Id.VSub_Name BASH_SOURCE> suffix_op: (suffix_op.Unary tok: <Id.VOp1_Percent '%'> arg_word: {<Id.Lit_Slash '/'> <Id.Lit_Other '*'>} ) ) <'/common.sh'> } ) (C {<.>} { (braced_var_sub token: <Id.VSub_Name BASH_SOURCE> suffix_op: (suffix_op.Unary tok: <Id.VOp1_Percent '%'> arg_word: {<Id.Lit_Slash '/'> <Id.Lit_Other '*'>} ) ) <'/variables.sh'> } ) (C {<.>} { (braced_var_sub token: <Id.VSub_Name BASH_SOURCE> suffix_op: (suffix_op.Unary tok: <Id.VOp1_Percent '%'> arg_word: {<Id.Lit_Slash '/'> <Id.Lit_Other '*'>} ) ) <'/callable.sh'> } ) (C {<.>} { (braced_var_sub token: <Id.VSub_Name BASH_SOURCE> suffix_op: (suffix_op.Unary tok: <Id.VOp1_Percent '%'> arg_word: {<Id.Lit_Slash '/'> <Id.Lit_Other '*'>} ) ) <'/specialforms.sh'> } ) (C {<.>} { (braced_var_sub token: <Id.VSub_Name BASH_SOURCE> suffix_op: (suffix_op.Unary tok: <Id.VOp1_Percent '%'> arg_word: {<Id.Lit_Slash '/'> <Id.Lit_Other '*'>} ) ) <'/specialforms.lambda.sh'> } ) (C {<.>} { (braced_var_sub token: <Id.VSub_Name BASH_SOURCE> suffix_op: (suffix_op.Unary tok: <Id.VOp1_Percent '%'> arg_word: {<Id.Lit_Slash '/'> <Id.Lit_Other '*'>} ) ) <'/environment.sh'> } ) (C {<.>} { (braced_var_sub token: <Id.VSub_Name BASH_SOURCE> suffix_op: (suffix_op.Unary tok: <Id.VOp1_Percent '%'> arg_word: {<Id.Lit_Slash '/'> <Id.Lit_Other '*'>} ) ) <'/evaluator.functions.builtin.sh'> } ) (C {<declare>} {<-g>} {<Id.Lit_VarLike 'EVALUATOR_DEBUG='> <0>}) (command.ShFunction name: 'evaluator::eval' body: (BraceGroup children: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {(${ Id.VSub_Name EVALUATOR_DEBUG)} right: {<1>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Sentence child: (C {<stderr>} {(DQ <'evaluator::eval '> (${ Id.VSub_At '@'))}) terminator: <Id.Op_Semi _> ) ] spids: [142 157] ) ] ) (C {<declare>} {<Id.Lit_VarLike 'envToken='> (DQ (${ Id.VSub_Number 1))}) (C {<declare>} {<Id.Lit_VarLike 'exprToken='> (DQ (${ Id.VSub_Number 2))}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<variable> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <type> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <instanceOf> } {(DQ (${ Id.VSub_Name exprToken))} {<Atom>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<variable> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <clone>} {(DQ (${ Id.VSub_Name exprToken))} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:RESULT) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name RESULT))} spids: [229] ) ] ) (command.ControlFlow token:<Id.ControlFlow_Return return>) ] spids: [195 214] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<variable> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <type> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <instanceOf> } {(DQ (${ Id.VSub_Name exprToken))} {<Callable>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<variable> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <clone>} {(DQ (${ Id.VSub_Name exprToken))} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:RESULT) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name RESULT))} spids: [274] ) ] ) (command.ControlFlow token:<Id.ControlFlow_Return return>) ] spids: [240 259] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<variable> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <type> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <instanceOf> } {(DQ (${ Id.VSub_Name exprToken))} {<Identifier>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<environment> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <getValue>} {(DQ (${ Id.VSub_Name envToken))} {(DQ (${ Id.VSub_Name exprToken))} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:RESULT) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name RESULT))} spids: [325] ) ] ) (command.ControlFlow token:<Id.ControlFlow_Return return>) ] spids: [285 304] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<variable> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <type> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <instanceOf> } {(DQ (${ Id.VSub_Name exprToken))} {<LinkedList>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<evaluator> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <eval_list>} {(DQ (${ Id.VSub_At '@'))} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:RESULT) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name RESULT))} spids: [370] ) ] ) (command.ControlFlow token:<Id.ControlFlow_Return return>) ] spids: [336 355] ) ] else_action: [ (C {<stderr>} { (DQ <'evaluator::eval / Unhandled type for token ['> ($ Id.VSub_DollarName '$exprToken') <']'> ) } ) (C {<variable> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <printMetadata>}) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>}) ] ) (C {<stderr>} {(DQ <'should never get here'>)}) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>}) ] ) ) (command.ShFunction name: 'evaluator::evalFromLinkedList' body: (BraceGroup children: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {(${ Id.VSub_Name EVALUATOR_DEBUG)} right: {<1>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Sentence child: (C {<stderr>} {(DQ <'evaluator::eval '> (${ Id.VSub_At '@'))}) terminator: <Id.Op_Semi _> ) ] spids: [434 449] ) ] ) (C {<declare>} {<Id.Lit_VarLike 'envToken='> (DQ (${ Id.VSub_Number 1))}) (command.Sentence child: (C {<declare>} {<Id.Lit_VarLike 'expressions='> (DQ (${ Id.VSub_Number 2))}) terminator: <Id.Op_Semi _> ) (C {<declare>} {<currentSexp>} {<currentResult>}) (command.WhileUntil keyword: <Id.KW_While while> cond: (condition.Shell commands: [ (command.Sentence child: (command.Pipeline children: [ (C {<variable> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <LinkedList> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <isEmpty_c> } {(DQ (${ Id.VSub_Name expressions))} ) ] negated: T ) terminator: <Id.Op_Semi _> ) ] ) body: (command.DoGroup children: [ (command.Sentence child: (C {<variable> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <LinkedList> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <first> } {(DQ (${ Id.VSub_Name expressions))} ) terminator: <Id.Op_Semi _> ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:currentSexp) op: assign_op.Equal rhs: {(${ Id.VSub_Name RESULT)} spids: [541] ) ] ) (command.Sentence child: (C {<variable> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <LinkedList> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <rest> } {(DQ (${ Id.VSub_Name expressions))} ) terminator: <Id.Op_Semi _> ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:expressions) op: assign_op.Equal rhs: {(${ Id.VSub_Name RESULT)} spids: [563] ) ] ) (C {<evaluator> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <eval>} {($ Id.VSub_DollarName '$envToken')} {($ Id.VSub_DollarName '$currentSexp')} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:currentResult) op: assign_op.Equal rhs: {(${ Id.VSub_Name RESULT)} spids: [579] ) ] ) ] ) ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:RESULT) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name currentResult))} spids: [588] ) ] ) (command.ControlFlow token:<Id.ControlFlow_Return return> arg_word:{<0>}) ] ) ) (command.ShFunction name: 'evaluator::eval_list' body: (BraceGroup children: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {(${ Id.VSub_Name EVALUATOR_DEBUG)} right: {<1>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Sentence child: (C {<stderr>} {(DQ <'evaluator::eval_list '> (${ Id.VSub_At '@'))}) terminator: <Id.Op_Semi _> ) ] spids: [615 630] ) ] ) (C {<declare>} {<Id.Lit_VarLike 'envToken='> (DQ (${ Id.VSub_Number 1))}) (C {<declare>} {<Id.Lit_VarLike 'listToken='> (DQ (${ Id.VSub_Number 2))}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.Pipeline children: [ (C {<variable> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <type> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <instanceOf> } {($ Id.VSub_DollarName '$listToken')} {<LinkedList>} ) ] negated: T ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<stderr>} {(DQ <'evaluator::eval_list / must be a list'>)}) (command.ControlFlow token: <Id.ControlFlow_Exit exit> arg_word: {<1>} ) ] spids: [668 685] ) ] ) (C {<variable> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <LinkedList> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <length> } {(DQ (${ Id.VSub_Name listToken))} ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_eq left: {(DQ (${ Id.VSub_Name RESULT))} right: {<0>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<variable> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <new>} {<Nil>} {(DQ )}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:RESULT) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name RESULT))} spids: [751] ) ] ) (command.ControlFlow token:<Id.ControlFlow_Return return>) ] spids: [719 736] ) ] ) (C {<variable> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <LinkedList> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <first> } {(DQ (${ Id.VSub_Name listToken))} ) (command.Sentence child: (C {<evaluator> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <eval>} {(DQ (${ Id.VSub_Name envToken))} {(DQ (${ Id.VSub_Name RESULT))} ) terminator: <Id.Op_Semi _> ) (C {<declare>} {<Id.Lit_VarLike 'headItem='> (DQ (${ Id.VSub_Name RESULT))}) (command.Sentence child: (C {<variable> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <type>} {(DQ (${ Id.VSub_Name headItem))} ) terminator: <Id.Op_Semi _> ) (C {<declare>} {<Id.Lit_VarLike 'headType='> (DQ (${ Id.VSub_Name RESULT))}) (command.Sentence child: (C {<variable> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <value>} {(DQ (${ Id.VSub_Name headItem))} ) terminator: <Id.Op_Semi _> ) (C {<declare>} {<Id.Lit_VarLike 'headValue='> (DQ (${ Id.VSub_Name RESULT))}) (command.Sentence child: (C {<variable> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <LinkedList> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <rest> } {($ Id.VSub_DollarName '$listToken')} ) terminator: <Id.Op_Semi _> ) (C {<declare>} {<Id.Lit_VarLike 'rest='> (DQ (${ Id.VSub_Name RESULT))}) (command.Case to_match: {(DQ (${ Id.VSub_Name headType))} arms: [ (case_arm pat_list: [{<BuiltinFunction>}] action: [ (C {<evaluator> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <call_builtinFunction>} {(DQ (${ Id.VSub_Name envToken))} {(DQ (${ Id.VSub_Name headItem))} {(DQ (${ Id.VSub_Name rest))} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:RESULT) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name RESULT))} spids: [928] ) ] ) ] spids: [900 901 936 -1] ) (case_arm pat_list: [{<BuiltinMacro>}] action: [ (C {<evaluator> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <call_builtinMacro>} {(DQ (${ Id.VSub_Name envToken))} {(DQ (${ Id.VSub_Name headItem))} {(DQ (${ Id.VSub_Name rest))} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:RESULT) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name RESULT))} spids: [970] ) ] ) ] spids: [939 940 978 -1] ) (case_arm pat_list: [{<SpecialForm>}] action: [ (C {<evaluator> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <call_specialForm>} {(DQ (${ Id.VSub_Name envToken))} {(DQ (${ Id.VSub_Name headItem))} {(DQ (${ Id.VSub_Name rest))} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:RESULT) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name RESULT))} spids: [1012] ) ] ) ] spids: [981 982 1020 -1] ) (case_arm pat_list: [{<Lambda>}] action: [ (C {<evaluator> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <call_lambda>} {(DQ (${ Id.VSub_Name envToken))} {(DQ (${ Id.VSub_Name headItem))} {(DQ (${ Id.VSub_Name rest))} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:RESULT) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name RESULT))} spids: [1051] ) ] ) ] spids: [1023 1024 1059 -1] ) (case_arm pat_list: [{<Macro>}] action: [ (C {<stderr>} { (DQ < 'evaluator::eval_list / evaluator::eval_list <macro> not implemented yet' > ) } ) (command.ControlFlow token: <Id.ControlFlow_Exit exit> arg_word: {<1>} ) ] spids: [1062 1063 1078 -1] ) (case_arm pat_list: [{<Id.Lit_Star '*'>}] action: [ (C {<stderr>} { (DQ <'evaluator::eval_list / type ['> (${ Id.VSub_Name headType) <'] not valid'> ) } ) (command.ControlFlow token: <Id.ControlFlow_Exit exit> arg_word: {<1>} ) ] spids: [1081 1082 1101 -1] ) ] ) ] ) ) (command.ShFunction name: 'evaluator::call_builtinFunction' body: (BraceGroup children: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {(${ Id.VSub_Name EVALUATOR_DEBUG)} right: {<1>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Sentence child: (C {<stderr>} { (DQ <'evaluator::call_builtinFunction('> (braced_var_sub token: <Id.VSub_At '@'> prefix_op: (Id.VSub_Pound) ) <') '> (${ Id.VSub_At '@') ) } ) terminator: <Id.Op_Semi _> ) ] spids: [1122 1137] ) ] ) (C {<declare>} {<Id.Lit_VarLike 'env='> (DQ (${ Id.VSub_Number 1))}) (C {<declare>} {<Id.Lit_VarLike 'functionToken='> (DQ (${ Id.VSub_Number 2))}) (C {<declare>} {<Id.Lit_VarLike 'argsToken='> (DQ (${ Id.VSub_Number 3))}) (command.Sentence child: (C {<variable> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <value>} {(DQ (${ Id.VSub_Name functionToken))} ) terminator: <Id.Op_Semi _> ) (C {<declare>} {<Id.Lit_VarLike 'functionName='> (DQ (${ Id.VSub_Name RESULT))}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.Pipeline children: [ (C {<functionExists>} {($ Id.VSub_DollarName '$functionName')}) ] negated: T ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<stderr>} { (DQ <'The builtin function ['> (${ Id.VSub_Name functionName) <'] does not exist'> ) } ) (command.ControlFlow token: <Id.ControlFlow_Exit exit> arg_word: {<1>} ) ] spids: [1213 1222] ) ] ) (C {<eval>} {(DQ (${ Id.VSub_Name functionName))} {(DQ (${ Id.VSub_Name env))} {(DQ (${ Id.VSub_Name functionName))} {(DQ (${ Id.VSub_Name argsToken))} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:RESULT) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$RESULT')} spids: [1271] ) ] ) ] ) ) (command.ShFunction name: 'evaluator::call_lambda' body: (BraceGroup children: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {(${ Id.VSub_Name EVALUATOR_DEBUG)} right: {<1>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Sentence child: (C {<stderr>} {(DQ <'evaluator::call_lambda '> (${ Id.VSub_At '@'))}) terminator: <Id.Op_Semi _> ) ] spids: [1289 1304] ) ] ) (C {<declare>} {<Id.Lit_VarLike 'env='> (DQ (${ Id.VSub_Number 1))}) (C {<declare>} {<Id.Lit_VarLike 'lambdaToken='> (DQ (${ Id.VSub_Number 2))}) (C {<declare>} {<Id.Lit_VarLike 'argsToken='> (DQ (${ Id.VSub_Number 3))}) (command.Sentence child: (C {<variable> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <LinkedList> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <new> } ) terminator: <Id.Op_Semi _> ) (C {<declare>} {<Id.Lit_VarLike 'passedArgs='> (DQ (${ Id.VSub_Name RESULT))}) (command.WhileUntil keyword: <Id.KW_While while> cond: (condition.Shell commands: [ (command.Sentence child: (command.Pipeline children: [ (C {<variable> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <LinkedList> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <isEmpty_c> } {(DQ (${ Id.VSub_Name argsToken))} ) ] negated: T ) terminator: <Id.Op_Semi _> ) ] ) body: (command.DoGroup children: [ (C {<variable> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <LinkedList> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <first> } {(DQ (${ Id.VSub_Name argsToken))} ) (C {<evaluator> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <eval>} {(DQ (${ Id.VSub_Name env))} {(DQ (${ Id.VSub_Name RESULT))} ) (C {<variable> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <LinkedList> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <append> } {($ Id.VSub_DollarName '$passedArgs')} {(DQ (${ Id.VSub_Name RESULT))} ) (command.Sentence child: (C {<variable> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <LinkedList> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <rest> } {(DQ (${ Id.VSub_Name argsToken))} ) terminator: <Id.Op_Semi _> ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:argsToken) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name RESULT))} spids: [1460] ) ] ) ] ) ) (C {<variable> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <Lambda> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <call> } {($ Id.VSub_DollarName '$lambdaToken')} {($ Id.VSub_DollarName '$passedArgs')} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:RESULT) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name RESULT))} spids: [1485] ) ] ) ] ) ) (command.ShFunction name: 'evaluator::call_builtinMacro' body: (BraceGroup children: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {(${ Id.VSub_Name EVALUATOR_DEBUG)} right: {<1>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Sentence child: (C {<stderr>} {(DQ <'evaluator::call_builtinMacro '> (${ Id.VSub_At '@'))}) terminator: <Id.Op_Semi _> ) ] spids: [1507 1522] ) ] ) (C {<variable> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <set>} {(${ Id.VSub_Name EVALUATOR_VARIABLE)} {<nil>} {<nil>} ) (C {<declare>} {<Id.Lit_VarLike 'env='> (DQ (${ Id.VSub_Number 1))}) (C {<declare>} {<Id.Lit_VarLike 'identifier='> (DQ (${ Id.VSub_Number 2))}) (C {<declare>} {<-a>} {<Id.Lit_VarLike 'values='> (sh_array_literal left: <Id.Op_LParen _> words: [{(${ Id.VSub_Number 3)}] ) } ) (command.Case to_match: {(DQ (${ Id.VSub_Name identifier))} arms: [ (case_arm pat_list: [{(DQ <if>)}] action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {(${ Id.VSub_Name EVALUATOR_DEBUG)} right: {<1>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Sentence child: (C {<stderr>} {(DQ <'evaluator::call_identifier in \'if\''>)}) terminator: <Id.Op_Semi _> ) ] spids: [1604 1619] ) ] ) (C {<stderr>} {(DQ <'[if] not implemented yet'>)}) ] spids: [1598 1601 1639 -1] ) (case_arm pat_list: [{<Id.Lit_Star '*'>}] action: [ (C {<stderr>} { (DQ <'evaluator::call_identifier / Not implemented ['> (${ Id.VSub_Name identifier) <']'> ) } ) ] spids: [1642 1643 1657 -1] ) ] ) ] ) ) (command.ShFunction name: 'evaluator::call_specialForm' body: (BraceGroup children: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {(${ Id.VSub_Name EVALUATOR_DEBUG)} right: {<1>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Sentence child: (C {<stderr>} { (DQ <'evaluator::call_specialForm('> (braced_var_sub token: <Id.VSub_At '@'> prefix_op: (Id.VSub_Pound) ) <') '> (${ Id.VSub_At '@') ) } ) terminator: <Id.Op_Semi _> ) ] spids: [1677 1692] ) ] ) (C {<declare>} {<Id.Lit_VarLike 'env='> (DQ (${ Id.VSub_Number 1))}) (C {<declare>} {<Id.Lit_VarLike 'functionToken='> (DQ (${ Id.VSub_Number 2))}) (C {<declare>} {<Id.Lit_VarLike 'argsToken='> (DQ (${ Id.VSub_Number 3))}) (command.Sentence child: (C {<variable> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <value>} {(DQ (${ Id.VSub_Name functionToken))} ) terminator: <Id.Op_Semi _> ) (C {<declare>} {<Id.Lit_VarLike 'functionName='> (DQ (${ Id.VSub_Name RESULT))}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.Pipeline children: [ (C {<functionExists>} {($ Id.VSub_DollarName '$functionName')}) ] negated: T ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<stderr>} { (DQ <'The builtin function ['> (${ Id.VSub_Name functionName) <'] does not exist'> ) } ) (command.ControlFlow token: <Id.ControlFlow_Exit exit> arg_word: {<1>} ) ] spids: [1768 1777] ) ] ) (C {<eval>} {(DQ (${ Id.VSub_Name functionName))} {(DQ (${ Id.VSub_Name env))} {(DQ (${ Id.VSub_Name functionName))} {(DQ (${ Id.VSub_Name argsToken))} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:RESULT) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name RESULT))} spids: [1826] ) ] ) ] ) ) (command.ShFunction name: 'evaluator::setup_builtin' body: (BraceGroup children: [ (C {<declare>} {<Id.Lit_VarLike 'env='> (DQ (${ Id.VSub_Number 1))}) (C {<declare>} {<Id.Lit_VarLike 'type='> (DQ (${ Id.VSub_Number 2))}) (C {<declare>} {<Id.Lit_VarLike 'identifier='> (DQ (${ Id.VSub_Number 3))}) (C {<declare>} {<Id.Lit_VarLike 'functionName='> (DQ (${ Id.VSub_Number 4))}) (C {<variable> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <new>} {(DQ (${ Id.VSub_Name type))} {(DQ (${ Id.VSub_Name functionName))} ) (C {<declare>} {<Id.Lit_VarLike 't1='> (DQ (${ Id.VSub_Name RESULT))}) (C {<variable> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <new>} {<String>} {(DQ (${ Id.VSub_Name identifier))} ) (C {<declare>} {<Id.Lit_VarLike 't2='> (DQ (${ Id.VSub_Name RESULT))}) (C {<environment> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <setVariable>} {(DQ (${ Id.VSub_Name env))} {(DQ (${ Id.VSub_Name t2))} {(DQ (${ Id.VSub_Name t1))} ) ] ) ) (command.ShFunction name: 'evaluator::setup_builtins' body: (BraceGroup children: [ (C {<declare>} {<Id.Lit_VarLike 'env='> (DQ (${ Id.VSub_Number 1))}) (C {<evaluator> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <setup_builtin>} {(DQ (${ Id.VSub_Name env))} {<BuiltinFunction>} {(DQ <'+'>)} {(DQ <'evaluator::functions::builtin::add'>)} ) (C {<evaluator> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <setup_builtin>} {(DQ (${ Id.VSub_Name env))} {<BuiltinFunction>} {(DQ <->)} {(DQ <'evaluator::functions::builtin::subtract'>)} ) (C {<evaluator> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <setup_builtin>} {(DQ (${ Id.VSub_Name env))} {<BuiltinFunction>} {(DQ <'*'>)} {(DQ <'evaluator::functions::builtin::multiply'>)} ) (C {<evaluator> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <setup_builtin>} {(DQ (${ Id.VSub_Name env))} {<BuiltinFunction>} {(DQ <'/'>)} {(DQ <'evaluator::functions::builtin::divide'>)} ) (C {<evaluator> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <setup_builtin>} {(DQ (${ Id.VSub_Name env))} {<BuiltinFunction>} {(DQ <'='>)} {(DQ <'evaluator::functions::builtin::equals'>)} ) (C {<evaluator> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <setup_builtin>} {(DQ (${ Id.VSub_Name env))} {<BuiltinFunction>} {(DQ <'<'>)} {(DQ <'evaluator::functions::builtin::lessthan'>)} ) (C {<evaluator> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <setup_builtin>} {(DQ (${ Id.VSub_Name env))} {<BuiltinFunction>} {(DQ <'>'>)} {(DQ <'evaluator::functions::builtin::greaterthan'>)} ) (C {<evaluator> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <setup_builtin>} {(DQ (${ Id.VSub_Name env))} {<BuiltinFunction>} {(DQ <'<='>)} {(DQ <'evaluator::functions::builtin::lessthanorequal'>)} ) (C {<evaluator> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <setup_builtin>} {(DQ (${ Id.VSub_Name env))} {<BuiltinFunction>} {(DQ <'>='>)} {(DQ <'evaluator::functions::builtin::greaterthanorequal'>)} ) (C {<evaluator> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <setup_builtin>} {(DQ (${ Id.VSub_Name env))} {<SpecialForm>} {(DQ <if>)} {(DQ <'evaluator::specialforms::if'>)} ) (C {<evaluator> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <setup_builtin>} {(DQ (${ Id.VSub_Name env))} {<SpecialForm>} {(DQ <lambda>)} {(DQ <'evaluator::specialforms::lambda'>)} ) (C {<evaluator> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <setup_builtin>} {(DQ (${ Id.VSub_Name env))} {<SpecialForm>} {(DQ <let>)} {(DQ <'evaluator::specialforms::let'>)} ) (C {<evaluator> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <setup_builtin>} {(DQ (${ Id.VSub_Name env))} {<SpecialForm>} {(SQ <'let*'>)} {(DQ <'evaluator::specialforms::letstar'>)} ) (C {<environment> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <pushScope>} {(DQ (${ Id.VSub_Name env))} ) ] ) ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {($ Id.VSub_Number '$0')} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {($ Id.VSub_DollarName '$BASH_SOURCE')} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [(command.ControlFlow token:<Id.ControlFlow_Return return>)] spids: [2301 2315] ) ] ) (command.ShFunction name: createTestEnv body: (BraceGroup children: [ (C {<environment> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <new>}) (C {<evaluator> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <setup_builtins>} {(DQ (${ Id.VSub_Name RESULT))} ) ] ) ) (command.ShFunction name: setInEnv body: (BraceGroup children: [ (C {<declare>} {<Id.Lit_VarLike 'env='> (DQ (${ Id.VSub_Number 1))}) (C {<declare>} {<Id.Lit_VarLike 'name='> (DQ (${ Id.VSub_Number 2))}) (C {<declare>} {<Id.Lit_VarLike 'type='> (DQ (${ Id.VSub_Number 3))}) (C {<declare>} {<Id.Lit_VarLike 'value='> (DQ (${ Id.VSub_Number 4))}) (command.Sentence child: (C {<variable> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <new>} {<Identifier>} {(DQ (${ Id.VSub_Name name))} ) terminator: <Id.Op_Semi _> ) (C {<declare>} {<Id.Lit_VarLike 'nameToken='> (DQ (${ Id.VSub_Name RESULT))}) (command.Sentence child: (C {<variable> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <new>} {(DQ (${ Id.VSub_Name type))} {(DQ (${ Id.VSub_Name value))} ) terminator: <Id.Op_Semi _> ) (C {<declare>} {<Id.Lit_VarLike 'valueToken='> (DQ (${ Id.VSub_Name RESULT))}) (C {<environment> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <setVariable>} {(DQ (${ Id.VSub_Name env))} {(DQ (${ Id.VSub_Name nameToken))} {(DQ (${ Id.VSub_Name valueToken))} ) (C {<variable> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <new>} {<Identifier>} {(DQ (${ Id.VSub_Name name))} ) ] ) ) (command.ShFunction name: appendToList body: (BraceGroup children: [ (C {<declare>} {<Id.Lit_VarLike 'listToken='> (DQ (${ Id.VSub_Number 1))}) (C {<declare>} {<-a>} {<Id.Lit_VarLike 'items='> (sh_array_literal left: <Id.Op_LParen _> words: [ { (DQ (braced_var_sub token: <Id.VSub_At '@'> suffix_op: (suffix_op.Slice begin:{<Id.Lit_Digits 2>}) ) ) } ] ) } ) (C {<declare>} {<-i>} {<size>}) (C {<declare>} {<-i>} {<max_index>}) (C {<declare>} {<currentType>}) (C {<declare>} {<currentValue>}) (command.DParen child: (arith_expr.Binary op_id: Id.Arith_Comma left: (arith_expr.BinaryAssign op_id: Id.Arith_Equal left: <Id.Lit_ArithVarLike size> right: { (braced_var_sub token: <Id.VSub_Name items> prefix_op: (Id.VSub_Pound) bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) ) } ) right: (arith_expr.BinaryAssign op_id: Id.Arith_Equal left: <Id.Lit_ArithVarLike max_index> right: (arith_expr.Binary op_id: Id.Arith_Minus left: <Id.Lit_ArithVarLike size> right: {<Id.Lit_Digits 1>} ) ) ) ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_NEqual left: (arith_expr.Binary op_id: Id.Arith_Percent left: <Id.Lit_ArithVarLike size> right: {<Id.Lit_Digits 2>} ) right: {<Id.Lit_Digits 0>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<stderr>} {(DQ <'appendToList: number of items to add to list not even'>)}) (command.ControlFlow token: <Id.ControlFlow_Exit exit> arg_word: {<1>} ) ] spids: [2578 2594] ) ] ) (command.ForExpr init: (arith_expr.BinaryAssign op_id: Id.Arith_Equal left: <Id.Lit_ArithVarLike i> right: {<Id.Lit_Digits 0>} ) cond: (arith_expr.Binary op_id: Id.Arith_LessEqual left: <Id.Lit_ArithVarLike i> right: <Id.Lit_ArithVarLike max_index> ) update: (arith_expr.BinaryAssign op_id: Id.Arith_Equal left: <Id.Lit_ArithVarLike i> right: (arith_expr.Binary op_id: Id.Arith_Plus left: <Id.Lit_ArithVarLike i> right: {<Id.Lit_Digits 2>} ) ) body: (command.DoGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:currentType) op: assign_op.Equal rhs: { (DQ (braced_var_sub token: <Id.VSub_Name items> bracket_op: (bracket_op.ArrayIndex expr:{(${ Id.VSub_Name i)}) ) ) } spids: [2637] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:currentValue) op: assign_op.Equal rhs: { (DQ (braced_var_sub token: <Id.VSub_Name items> bracket_op: (bracket_op.ArrayIndex expr: (arith_expr.Binary op_id: Id.Arith_Plus left: <Id.Lit_ArithVarLike i> right: {<Id.Lit_Digits 1>} ) ) ) ) } spids: [2650] ) ] ) (C {<variable> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <new>} {(DQ (${ Id.VSub_Name currentType))} {(DQ (${ Id.VSub_Name currentValue))} ) (C {<variable> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <LinkedList> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <append> } {(DQ (${ Id.VSub_Name listToken))} {(DQ (${ Id.VSub_Name RESULT))} ) ] ) ) ] ) ) (C {<declare>} {<env>}) (command.CommandList children: [ (command.Sentence child:(C {<createTestEnv>}) terminator:<Id.Op_Semi _>) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:env) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name RESULT))} spids: [2724] ) ] ) ] ) (command.CommandList children: [ (command.Sentence child: (C {<variable> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <new>} {<Boolean>} {<true>}) terminator: <Id.Op_Semi _> ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:valueToken) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name RESULT))} spids: [2742] ) ] ) ] ) (C {<evaluator> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <eval>} {(DQ (${ Id.VSub_Name env))} {($ Id.VSub_DollarName '$valueToken')} ) (command.CommandList children: [ (command.Sentence child: (C {<variable> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <debug>} {(DQ (${ Id.VSub_Name RESULT))} ) terminator: <Id.Op_Semi _> ) (C {<assert> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <equals>} {(DQ <'Boolean :: true'>)} {(DQ (${ Id.VSub_Name RESULT))} {(DQ <'atom/boolean'>)} ) ] ) (command.CommandList children: [ (command.Sentence child:(C {<createTestEnv>}) terminator:<Id.Op_Semi _>) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:env) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name RESULT))} spids: [2810] ) ] ) ] ) (command.CommandList children: [ (command.Sentence child: (C {<setInEnv>} {(DQ (${ Id.VSub_Name env))} {<v>} {<Integer>} {<4>}) terminator: <Id.Op_Semi _> ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:token) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name RESULT))} spids: [2833] ) ] ) ] ) (C {<evaluator> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <eval>} {(DQ (${ Id.VSub_Name env))} {(DQ (${ Id.VSub_Name token))} ) (command.CommandList children: [ (command.Sentence child: (C {<variable> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <debug>} {(DQ (${ Id.VSub_Name RESULT))} ) terminator: <Id.Op_Semi _> ) (C {<assert> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <equals>} {(DQ <'Integer :: 4'>)} {(DQ (${ Id.VSub_Name RESULT))} {(DQ <'identifier evaluation'>)} ) ] ) (command.CommandList children: [ (command.Sentence child:(C {<createTestEnv>}) terminator:<Id.Op_Semi _>) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:env) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name RESULT))} spids: [2901] ) ] ) ] ) (command.CommandList children: [ (command.Sentence child: (C {<variable> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <LinkedList> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <new> } ) terminator: <Id.Op_Semi _> ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:vCode) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name RESULT))} spids: [2918] ) ] ) ] ) (C {<appendToList>} {($ Id.VSub_DollarName '$vCode')} {<Identifier>} {(SQ <'+'>)} {<Integer>} {<5>} {<Integer>} {<2>} ) (C {<evaluator> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <eval>} {(DQ (${ Id.VSub_Name env))} {($ Id.VSub_DollarName '$vCode')} ) (command.CommandList children: [ (command.Sentence child: (C {<variable> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <debug>} {(DQ (${ Id.VSub_Name RESULT))} ) terminator: <Id.Op_Semi _> ) (C {<assert> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <equals>} {(DQ <'Integer :: 7'>)} {(DQ (${ Id.VSub_Name RESULT))} {(DQ <'(+ 5 2)'>)} ) ] ) (command.CommandList children: [ (command.Sentence child:(C {<createTestEnv>}) terminator:<Id.Op_Semi _>) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:env) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name RESULT))} spids: [2998] ) ] ) ] ) (command.CommandList children: [ (command.Sentence child: (C {<variable> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <LinkedList> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <new> } ) terminator: <Id.Op_Semi _> ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:vCode) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name RESULT))} spids: [3015] ) ] ) ] ) (C {<appendToList>} {($ Id.VSub_DollarName '$vCode')} {<Identifier>} {(SQ <->)} {<Integer>} {<5>} {<Integer>} {<2>} ) (C {<evaluator> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <eval>} {(DQ (${ Id.VSub_Name env))} {($ Id.VSub_DollarName '$vCode')} ) (command.CommandList children: [ (command.Sentence child: (C {<variable> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <debug>} {(DQ (${ Id.VSub_Name RESULT))} ) terminator: <Id.Op_Semi _> ) (C {<assert> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <equals>} {(DQ <'Integer :: 3'>)} {(DQ (${ Id.VSub_Name RESULT))} {(DQ <'(- 5 2)'>)} ) ] ) (command.CommandList children: [ (command.Sentence child:(C {<createTestEnv>}) terminator:<Id.Op_Semi _>) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:env) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name RESULT))} spids: [3095] ) ] ) ] ) (command.CommandList children: [ (command.Sentence child: (C {<variable> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <LinkedList> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <new> } ) terminator: <Id.Op_Semi _> ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:vCode) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name RESULT))} spids: [3112] ) ] ) ] ) (C {<appendToList>} {($ Id.VSub_DollarName '$vCode')} {<Identifier>} {(SQ <'*'>)} {<Integer>} {<5>} {<Integer>} {<2>} ) (C {<evaluator> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <eval>} {(DQ (${ Id.VSub_Name env))} {($ Id.VSub_DollarName '$vCode')} ) (command.CommandList children: [ (command.Sentence child: (C {<variable> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <debug>} {(DQ (${ Id.VSub_Name RESULT))} ) terminator: <Id.Op_Semi _> ) (C {<assert> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <equals>} {(DQ <'Integer :: 10'>)} {(DQ (${ Id.VSub_Name RESULT))} {(DQ <'(* 5 2)'>)} ) ] ) (command.CommandList children: [ (command.Sentence child:(C {<createTestEnv>}) terminator:<Id.Op_Semi _>) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:env) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name RESULT))} spids: [3192] ) ] ) ] ) (command.CommandList children: [ (command.Sentence child: (C {<variable> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <LinkedList> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <new> } ) terminator: <Id.Op_Semi _> ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:vCode) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name RESULT))} spids: [3209] ) ] ) ] ) (C {<appendToList>} {($ Id.VSub_DollarName '$vCode')} {<Identifier>} {(SQ <'/'>)} {<Integer>} {<6>} {<Integer>} {<2>} ) (C {<evaluator> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <eval>} {(DQ (${ Id.VSub_Name env))} {($ Id.VSub_DollarName '$vCode')} ) (command.CommandList children: [ (command.Sentence child: (C {<variable> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <debug>} {(DQ (${ Id.VSub_Name RESULT))} ) terminator: <Id.Op_Semi _> ) (C {<assert> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <equals>} {(DQ <'Integer :: 3'>)} {(DQ (${ Id.VSub_Name RESULT))} {(DQ <'(/ 6 2)'>)} ) ] ) (command.CommandList children: [ (command.Sentence child:(C {<createTestEnv>}) terminator:<Id.Op_Semi _>) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:env) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name RESULT))} spids: [3289] ) ] ) ] ) (command.CommandList children: [ (command.Sentence child: (C {<variable> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <LinkedList> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <new> } ) terminator: <Id.Op_Semi _> ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:vCode) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name RESULT))} spids: [3306] ) ] ) ] ) (C {<appendToList>} {($ Id.VSub_DollarName '$vCode')} {<Identifier>} {(SQ <'='>)} {<Integer>} {<2>} {<Integer>} {<2>} ) (C {<evaluator> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <eval>} {(DQ (${ Id.VSub_Name env))} {($ Id.VSub_DollarName '$vCode')} ) (command.CommandList children: [ (command.Sentence child: (C {<variable> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <debug>} {(DQ (${ Id.VSub_Name RESULT))} ) terminator: <Id.Op_Semi _> ) (C {<assert> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <equals>} {(DQ <'Boolean :: true'>)} {(DQ (${ Id.VSub_Name RESULT))} {(DQ <'(= 2 2)'>)} ) ] ) (command.CommandList children: [ (command.Sentence child:(C {<createTestEnv>}) terminator:<Id.Op_Semi _>) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:env) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name RESULT))} spids: [3386] ) ] ) ] ) (command.CommandList children: [ (command.Sentence child: (C {<variable> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <LinkedList> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <new> } ) terminator: <Id.Op_Semi _> ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:vCode) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name RESULT))} spids: [3403] ) ] ) ] ) (C {<appendToList>} {($ Id.VSub_DollarName '$vCode')} {<Identifier>} {(SQ <'='>)} {<Integer>} {<2>} {<Integer>} {<3>} ) (C {<evaluator> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <eval>} {(DQ (${ Id.VSub_Name env))} {($ Id.VSub_DollarName '$vCode')} ) (command.CommandList children: [ (command.Sentence child: (C {<variable> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <debug>} {(DQ (${ Id.VSub_Name RESULT))} ) terminator: <Id.Op_Semi _> ) (C {<assert> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <equals>} {(DQ <'Boolean :: false'>)} {(DQ (${ Id.VSub_Name RESULT))} {(DQ <'(= 2 3)'>)} ) ] ) (command.CommandList children: [ (command.Sentence child:(C {<createTestEnv>}) terminator:<Id.Op_Semi _>) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:env) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name RESULT))} spids: [3489] ) ] ) ] ) (command.CommandList children: [ (command.Sentence child: (C {<setInEnv>} {(DQ (${ Id.VSub_Name env))} {<u>} {<Integer>} {<4>}) terminator: <Id.Op_Semi _> ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:token) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name RESULT))} spids: [3512] ) ] ) ] ) (command.CommandList children: [ (command.Sentence child: (C {<setInEnv>} {(DQ (${ Id.VSub_Name env))} {<v>} {<Integer>} {<4>}) terminator: <Id.Op_Semi _> ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:token) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name RESULT))} spids: [3535] ) ] ) ] ) (command.CommandList children: [ (command.Sentence child: (C {<setInEnv>} {(DQ (${ Id.VSub_Name env))} {<w>} {<Integer>} {<2>}) terminator: <Id.Op_Semi _> ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:token) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name RESULT))} spids: [3558] ) ] ) ] ) (command.CommandList children: [ (command.Sentence child: (C {<variable> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <new>} {<LinkedList>}) terminator: <Id.Op_Semi _> ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:vCode) op: assign_op.Equal rhs: {(${ Id.VSub_Name RESULT)} spids: [3578] ) ] ) ] ) (C {<appendToList>} {($ Id.VSub_DollarName '$vCode')} {<Identifier>} {(SQ <'+'>)} {<Identifier>} {(SQ <v>)} {<Integer>} {<2>} ) (C {<evaluator> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <eval>} {(DQ (${ Id.VSub_Name env))} {(DQ (${ Id.VSub_Name vCode))} ) (command.CommandList children: [ (command.Sentence child: (C {<variable> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <debug>} {(DQ (${ Id.VSub_Name RESULT))} ) terminator: <Id.Op_Semi _> ) (C {<assert> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <equals>} {(DQ <'Integer :: 6'>)} {(DQ (${ Id.VSub_Name RESULT))} {(DQ <'(+ <v=4> 2)'>)} ) ] ) (command.CommandList children: [ (command.Sentence child: (C {<variable> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <new>} {<LinkedList>}) terminator: <Id.Op_Semi _> ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:vCode) op: assign_op.Equal rhs: {(${ Id.VSub_Name RESULT)} spids: [3667] ) ] ) ] ) (C {<appendToList>} {($ Id.VSub_DollarName '$vCode')} {<Identifier>} {(SQ <'+'>)} {<Integer>} {<2>} {<Identifier>} {(SQ <v>)} ) (C {<evaluator> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <eval>} {(DQ (${ Id.VSub_Name env))} {(DQ (${ Id.VSub_Name vCode))} ) (command.CommandList children: [ (command.Sentence child: (C {<variable> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <debug>} {(DQ (${ Id.VSub_Name RESULT))} ) terminator: <Id.Op_Semi _> ) (C {<assert> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <equals>} {(DQ <'Integer :: 6'>)} {(DQ (${ Id.VSub_Name RESULT))} {(DQ <'(+ 2 <v=4>)'>)} ) ] ) (command.CommandList children: [ (command.Sentence child: (C {<variable> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <new>} {<LinkedList>}) terminator: <Id.Op_Semi _> ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:vCode) op: assign_op.Equal rhs: {(${ Id.VSub_Name RESULT)} spids: [3756] ) ] ) ] ) (C {<appendToList>} {($ Id.VSub_DollarName '$vCode')} {<Identifier>} {(SQ <->)} {<Identifier>} {(SQ <v>)} {<Integer>} {<2>} ) (C {<evaluator> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <eval>} {(DQ (${ Id.VSub_Name env))} {(DQ (${ Id.VSub_Name vCode))} ) (command.CommandList children: [ (command.Sentence child: (C {<variable> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <debug>} {(DQ (${ Id.VSub_Name RESULT))} ) terminator: <Id.Op_Semi _> ) (C {<assert> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <equals>} {(DQ <'Integer :: 2'>)} {(DQ (${ Id.VSub_Name RESULT))} {(DQ <'(- <v=4> 2)'>)} ) ] ) (command.CommandList children: [ (command.Sentence child: (C {<variable> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <new>} {<LinkedList>}) terminator: <Id.Op_Semi _> ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:vCode) op: assign_op.Equal rhs: {(${ Id.VSub_Name RESULT)} spids: [3845] ) ] ) ] ) (C {<appendToList>} {($ Id.VSub_DollarName '$vCode')} {<Identifier>} {(SQ <->)} {<Integer>} {<2>} {<Identifier>} {(SQ <v>)} ) (C {<evaluator> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <eval>} {(DQ (${ Id.VSub_Name env))} {(DQ (${ Id.VSub_Name vCode))} ) (command.CommandList children: [ (command.Sentence child: (C {<variable> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <debug>} {(DQ (${ Id.VSub_Name RESULT))} ) terminator: <Id.Op_Semi _> ) (C {<assert> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <equals>} {(DQ <'Integer :: -2'>)} {(DQ (${ Id.VSub_Name RESULT))} {(DQ <'(- 2 <v=4>)'>)} ) ] ) (command.CommandList children: [ (command.Sentence child: (C {<variable> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <new>} {<LinkedList>}) terminator: <Id.Op_Semi _> ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:vCode) op: assign_op.Equal rhs: {(${ Id.VSub_Name RESULT)} spids: [3934] ) ] ) ] ) (C {<appendToList>} {($ Id.VSub_DollarName '$vCode')} {<Identifier>} {(SQ <'*'>)} {<Identifier>} {(SQ <v>)} {<Integer>} {<2>} ) (C {<evaluator> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <eval>} {(DQ (${ Id.VSub_Name env))} {(DQ (${ Id.VSub_Name vCode))} ) (command.CommandList children: [ (command.Sentence child: (C {<variable> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <debug>} {(DQ (${ Id.VSub_Name RESULT))} ) terminator: <Id.Op_Semi _> ) (C {<assert> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <equals>} {(DQ <'Integer :: 8'>)} {(DQ (${ Id.VSub_Name RESULT))} {(DQ <'(* <v=4> 2)'>)} ) ] ) (command.CommandList children: [ (command.Sentence child: (C {<variable> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <new>} {<LinkedList>}) terminator: <Id.Op_Semi _> ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:vCode) op: assign_op.Equal rhs: {(${ Id.VSub_Name RESULT)} spids: [4023] ) ] ) ] ) (C {<appendToList>} {($ Id.VSub_DollarName '$vCode')} {<Identifier>} {(SQ <'*'>)} {<Integer>} {<2>} {<Identifier>} {(SQ <v>)} ) (C {<evaluator> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <eval>} {(DQ (${ Id.VSub_Name env))} {(DQ (${ Id.VSub_Name vCode))} ) (command.CommandList children: [ (command.Sentence child: (C {<variable> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <debug>} {(DQ (${ Id.VSub_Name RESULT))} ) terminator: <Id.Op_Semi _> ) (C {<assert> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <equals>} {(DQ <'Integer :: 8'>)} {(DQ (${ Id.VSub_Name RESULT))} {(DQ <'(* 2 <v=4>)'>)} ) ] ) (command.CommandList children: [ (command.Sentence child: (C {<variable> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <new>} {<LinkedList>}) terminator: <Id.Op_Semi _> ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:vCode) op: assign_op.Equal rhs: {(${ Id.VSub_Name RESULT)} spids: [4112] ) ] ) ] ) (C {<appendToList>} {($ Id.VSub_DollarName '$vCode')} {<Identifier>} {(SQ <'/'>)} {<Identifier>} {(SQ <v>)} {<Integer>} {<2>} ) (C {<evaluator> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <eval>} {(DQ (${ Id.VSub_Name env))} {(DQ (${ Id.VSub_Name vCode))} ) (command.CommandList children: [ (command.Sentence child: (C {<variable> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <debug>} {(DQ (${ Id.VSub_Name RESULT))} ) terminator: <Id.Op_Semi _> ) (C {<assert> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <equals>} {(DQ <'Integer :: 2'>)} {(DQ (${ Id.VSub_Name RESULT))} {(DQ <'(/ <v=4> 2)'>)} ) ] ) (command.CommandList children: [ (command.Sentence child: (C {<variable> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <new>} {<LinkedList>}) terminator: <Id.Op_Semi _> ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:vCode) op: assign_op.Equal rhs: {(${ Id.VSub_Name RESULT)} spids: [4201] ) ] ) ] ) (C {<appendToList>} {($ Id.VSub_DollarName '$vCode')} {<Identifier>} {(SQ <'/'>)} {<Integer>} {<12>} {<Identifier>} {(SQ <v>)} ) (C {<evaluator> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <eval>} {(DQ (${ Id.VSub_Name env))} {(DQ (${ Id.VSub_Name vCode))} ) (command.CommandList children: [ (command.Sentence child: (C {<variable> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <debug>} {(DQ (${ Id.VSub_Name RESULT))} ) terminator: <Id.Op_Semi _> ) (C {<assert> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <equals>} {(DQ <'Integer :: 3'>)} {(DQ (${ Id.VSub_Name RESULT))} {(DQ <'(/ 12 <v=4>)'>)} ) ] ) (command.CommandList children: [ (command.Sentence child: (C {<variable> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <new>} {<LinkedList>}) terminator: <Id.Op_Semi _> ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:vCode) op: assign_op.Equal rhs: {(${ Id.VSub_Name RESULT)} spids: [4290] ) ] ) ] ) (C {<appendToList>} {($ Id.VSub_DollarName '$vCode')} {<Identifier>} {(SQ <'='>)} {<Identifier>} {(SQ <v>)} {<Integer>} {<2>} ) (C {<evaluator> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <eval>} {(DQ (${ Id.VSub_Name env))} {(DQ (${ Id.VSub_Name vCode))} ) (command.CommandList children: [ (command.Sentence child: (C {<variable> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <debug>} {(DQ (${ Id.VSub_Name RESULT))} ) terminator: <Id.Op_Semi _> ) (C {<assert> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <equals>} {(DQ <'Boolean :: false'>)} {(DQ (${ Id.VSub_Name RESULT))} {(DQ <'(= <v=4> 2)'>)} ) ] ) (command.CommandList children: [ (command.Sentence child: (C {<variable> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <new>} {<LinkedList>}) terminator: <Id.Op_Semi _> ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:vCode) op: assign_op.Equal rhs: {(${ Id.VSub_Name RESULT)} spids: [4379] ) ] ) ] ) (C {<appendToList>} {($ Id.VSub_DollarName '$vCode')} {<Identifier>} {(SQ <'='>)} {<Integer>} {<4>} {<Identifier>} {(SQ <v>)} ) (C {<evaluator> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <eval>} {(DQ (${ Id.VSub_Name env))} {(DQ (${ Id.VSub_Name vCode))} ) (command.CommandList children: [ (command.Sentence child: (C {<variable> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <debug>} {(DQ (${ Id.VSub_Name RESULT))} ) terminator: <Id.Op_Semi _> ) (C {<assert> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <equals>} {(DQ <'Boolean :: true'>)} {(DQ (${ Id.VSub_Name RESULT))} {(DQ <'(= 4 <v=4>)'>)} ) ] ) (command.CommandList children: [ (command.Sentence child:(C {<createTestEnv>}) terminator:<Id.Op_Semi _>) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:env) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name RESULT))} spids: [4469] ) ] ) ] ) (command.CommandList children: [ (command.Sentence child: (C {<setInEnv>} {(DQ (${ Id.VSub_Name env))} {<u>} {<Integer>} {<4>}) terminator: <Id.Op_Semi _> ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:token) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name RESULT))} spids: [4492] ) ] ) ] ) (command.CommandList children: [ (command.Sentence child: (C {<setInEnv>} {(DQ (${ Id.VSub_Name env))} {<v>} {<Integer>} {<4>}) terminator: <Id.Op_Semi _> ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:token) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name RESULT))} spids: [4515] ) ] ) ] ) (command.CommandList children: [ (command.Sentence child: (C {<setInEnv>} {(DQ (${ Id.VSub_Name env))} {<w>} {<Integer>} {<2>}) terminator: <Id.Op_Semi _> ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:token) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name RESULT))} spids: [4538] ) ] ) ] ) (command.CommandList children: [ (command.Sentence child: (C {<variable> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <new>} {<LinkedList>}) terminator: <Id.Op_Semi _> ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:slistOne) op: assign_op.Equal rhs: {(${ Id.VSub_Name RESULT)} spids: [4555] ) ] ) ] ) (C {<appendToList>} {($ Id.VSub_DollarName '$slistOne')} {<Identifier>} {<Id.Lit_Other '+'>} {<Integer>} {<4>} {<Identifier>} {<v>} ) (command.CommandList children: [ (command.Sentence child: (C {<variable> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <new>} {<LinkedList>}) terminator: <Id.Op_Semi _> ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:slistTwo) op: assign_op.Equal rhs: {(${ Id.VSub_Name RESULT)} spids: [4585] ) ] ) ] ) (C {<appendToList>} {($ Id.VSub_DollarName '$slistTwo')} {<Identifier>} {<->} {<Integer>} {<4>} {<Identifier>} {<w>} ) (command.CommandList children: [ (command.Sentence child: (C {<variable> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <new>} {<LinkedList>}) terminator: <Id.Op_Semi _> ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:vCode) op: assign_op.Equal rhs: {(${ Id.VSub_Name RESULT)} spids: [4615] ) ] ) ] ) (C {<appendToList>} {($ Id.VSub_DollarName '$vCode')} {<Identifier>} {(SQ <'*'>)}) (C {<variable> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <LinkedList> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <append> } {($ Id.VSub_DollarName '$vCode')} {($ Id.VSub_DollarName '$slistTwo')} ) (C {<variable> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <LinkedList> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <append> } {($ Id.VSub_DollarName '$vCode')} {($ Id.VSub_DollarName '$slistOne')} ) (C {<evaluator> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <eval>} {(DQ (${ Id.VSub_Name env))} {(DQ (${ Id.VSub_Name vCode))} ) (command.CommandList children: [ (command.Sentence child: (C {<variable> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <debug>} {(DQ (${ Id.VSub_Name RESULT))} ) terminator: <Id.Op_Semi _> ) (C {<assert> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <equals>} {(DQ <'Integer :: 16'>)} {(DQ (${ Id.VSub_Name RESULT))} {(DQ <'(* (+ 4 <v=4>) (- 4 <w=2>))'>)} ) ] ) (command.CommandList children: [ (command.Sentence child:(C {<createTestEnv>}) terminator:<Id.Op_Semi _>) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:lambdaEnv) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name RESULT))} spids: [4719] ) ] ) ] ) (C {<setInEnv>} {($ Id.VSub_DollarName '$lambdaEnv')} {(DQ <y>)} {<Integer>} {<10>}) (command.CommandList children: [ (command.Sentence child: (C {<variable> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <LinkedList> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <new> } ) terminator: <Id.Op_Semi _> ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:lambdaArgs) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name RESULT))} spids: [4748] ) ] ) ] ) (C {<appendToList>} {($ Id.VSub_DollarName '$lambdaArgs')} {<Identifier>} {(DQ <x>)}) (command.CommandList children: [ (command.Sentence child: (C {<variable> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <LinkedList> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <new> } ) terminator: <Id.Op_Semi _> ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:lambdaExpression) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name RESULT))} spids: [4775] ) ] ) ] ) (C {<appendToList>} {($ Id.VSub_DollarName '$lambdaExpression')} {<Identifier>} {(SQ <'*'>)} {<Identifier>} {(DQ <x>)} {<Identifier>} {(DQ <y>)} ) (command.CommandList children: [ (command.Sentence child: (C {<variable> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <LinkedList> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <new> } ) terminator: <Id.Op_Semi _> ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:lambdaCode) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name RESULT))} spids: [4814] ) ] ) ] ) (C {<variable> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <LinkedList> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <append> } {($ Id.VSub_DollarName '$lambdaCode')} {($ Id.VSub_DollarName '$lambdaExpression')} ) (command.CommandList children: [ (command.Sentence child: (C {<variable> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <Lambda> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <new> } { (DQ ($ Id.VSub_DollarName '$lambdaEnv') <' '> ($ Id.VSub_DollarName '$lambdaArgs') <' '> ($ Id.VSub_DollarName '$lambdaCode') ) } ) terminator: <Id.Op_Semi _> ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:lambda) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name RESULT))} spids: [4851] ) ] ) ] ) (command.CommandList children: [ (command.Sentence child:(C {<createTestEnv>}) terminator:<Id.Op_Semi _>) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:env) op: assign_op.Equal rhs: {(${ Id.VSub_Name RESULT)} spids: [4863] ) ] ) ] ) (C {<setInEnv>} {(DQ (${ Id.VSub_Name env))} {(DQ <a>)} {<Integer>} {<5>}) (command.CommandList children: [ (command.Sentence child: (C {<variable> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <new>} {<LinkedList>}) terminator: <Id.Op_Semi _> ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:vCode) op: assign_op.Equal rhs: {(${ Id.VSub_Name RESULT)} spids: [4894] ) ] ) ] ) (C {<variable> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <LinkedList> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <append> } {($ Id.VSub_DollarName '$vCode')} {($ Id.VSub_DollarName '$lambda')} ) (C {<appendToList>} {($ Id.VSub_DollarName '$vCode')} {<Identifier>} {(DQ <a>)}) (C {<evaluator> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <eval>} {(DQ (${ Id.VSub_Name env))} {(DQ (${ Id.VSub_Name vCode))} ) (command.CommandList children: [ (command.Sentence child: (C {<variable> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <debug>} {(DQ (${ Id.VSub_Name RESULT))} ) terminator: <Id.Op_Semi _> ) (C {<assert> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <equals>} {(DQ <'Integer :: 50'>)} {(DQ (${ Id.VSub_Name RESULT))} {(DQ <'env(a=5) ((lambda[env(y=10)] (x) (* y x)) a)'>)} ) ] ) (C {<assert> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <report>}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} { (braced_var_sub token: <Id.VSub_Number 1> suffix_op: (suffix_op.Unary tok:<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 <debug>)} {<Id.Lit_RBracket ']'>} ) ] ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<variable> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <printMetadata>})] spids: [4987 5017] ) ] ) ] )