(command.CommandList children: [ (command.AndOr ops: [Op_DAmp] children: [ (C {(Lit_Other '[')} { (word_part.BracedVarSub token: <VSub_Name CALLABLE_LAMBDA_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:CALLABLE_LAMBDA_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 /) ('*')}) ) (/variables.linkedlist.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 /) ('*')}) ) (/evaluator.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 {(variable) (Lit_Other ':') (Lit_Other ':') (type) (Lit_Other ':') (Lit_Other ':') (define)} {(Lambda)} {(Function)} ) (command.FuncDef name: 'variable::Lambda::new' 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 VARIABLES_DEBUG)} right: {(1)} ) ) terminator: <Op_Semi ';'> ) ] action: [ (command.Sentence child: (C {(stderr)} {(DQ ('variable::Lambda::new ') (${ VSub_At '@'))}) terminator: <Op_Semi ';'> ) ] ) ] ) (C {(variable) (Lit_Other ':') (Lit_Other ':') (new)} {(Lambda)} {(DQ (${ VSub_At '@'))}) ] ) ) (command.FuncDef name: 'variable::Lambda::call' 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 VARIABLES_DEBUG)} right: {(1)} ) ) terminator: <Op_Semi ';'> ) ] action: [ (command.Sentence child: (C {(stderr)} {(DQ ('variable::Lambda::call ') (${ VSub_At '@'))}) terminator: <Op_Semi ';'> ) ] ) ] ) (command.Assignment keyword: Assign_Declare pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:lambdaToken) op: Equal rhs: {(DQ (${ VSub_Number 1))} ) ] ) (command.Assignment keyword: Assign_Declare pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:passedArgs) op: Equal rhs: {(DQ (${ VSub_Number 2))} ) ] ) (C {(variable) (Lit_Other ':') (Lit_Other ':') (type) (Lit_Other ':') (Lit_Other ':') (instanceOfOrExit) } {(DQ (${ VSub_Name lambdaToken))} {(Lambda)} ) (command.Sentence child: (C {(variable) (Lit_Other ':') (Lit_Other ':') (LinkedList) (Lit_Other ':') (Lit_Other ':') (length) } {($ VSub_DollarName '$passedArgs')} ) terminator: <Op_Semi ';'> ) (command.Assignment keyword: Assign_Declare pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:passedArgCount) op: Equal rhs: {(DQ (${ VSub_Name RESULT))} ) ] ) (command.Sentence child: (C {(variable) (Lit_Other ':') (Lit_Other ':') (Lambda) (Lit_Other ':') (Lit_Other ':') (getEnv) } {($ VSub_DollarName '$lambdaToken')} ) terminator: <Op_Semi ';'> ) (command.Assignment keyword: Assign_Declare pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:env) op: Equal rhs: {(DQ (${ VSub_Name RESULT))} ) ] ) (command.Sentence child: (C {(variable) (Lit_Other ':') (Lit_Other ':') (Lambda) (Lit_Other ':') (Lit_Other ':') (getFormalArgs) } {($ VSub_DollarName '$lambdaToken')} ) terminator: <Op_Semi ';'> ) (command.Assignment keyword: Assign_Declare pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:formalArgs) op: Equal rhs: {(DQ (${ VSub_Name RESULT))} ) ] ) (command.Sentence child: (C {(variable) (Lit_Other ':') (Lit_Other ':') (Lambda) (Lit_Other ':') (Lit_Other ':') (getBody) } {($ VSub_DollarName '$lambdaToken')} ) terminator: <Op_Semi ';'> ) (command.Assignment keyword: Assign_Declare pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:body) op: Equal rhs: {(DQ (${ VSub_Name RESULT))} ) ] ) (command.Sentence child: (C {(variable) (Lit_Other ':') (Lit_Other ':') (LinkedList) (Lit_Other ':') (Lit_Other ':') (length) } {($ VSub_DollarName '$formalArgs')} ) terminator: <Op_Semi ';'> ) (command.Assignment keyword: Assign_Declare pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:formalArgCount) op: Equal rhs: {(DQ (${ VSub_Name RESULT))} ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.BoolBinary op_id: BoolBinary_ne left: {($ VSub_DollarName '$passedArgCount')} right: {($ VSub_DollarName '$formalArgCount')} ) ) terminator: <Op_Semi ';'> ) ] action: [ (C {(stderr)} { (DQ ('lambda: passed arg count (') (${ VSub_Name passedArgCount) (') != format arg count (') (${ VSub_Name formalArgCount) (')') ) } ) (command.ControlFlow token: <ControlFlow_Exit exit> arg_word: {(1)} ) ] ) ] ) (command.Sentence child: (C {(environment) (Lit_Other ':') (Lit_Other ':') (pushScope)} {($ VSub_DollarName '$env')} ) terminator: <Op_Semi ';'> ) (command.Assignment keyword: Assign_Declare pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:runningEnv) op: Equal rhs: {(DQ (${ VSub_Name RESULT))} ) ] ) (command.Assignment keyword: Assign_Declare pairs: [(assign_pair lhs:(lhs_expr.LhsName name:thisKeyToken) op:Equal)] ) (command.Assignment keyword: Assign_Declare pairs: [(assign_pair lhs:(lhs_expr.LhsName name:thisValueToken) 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 formalArgs))} ) ] 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 formalArgs))} ) terminator: <Op_Semi ';'> ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:thisKeyToken) op: Equal rhs: {(DQ (${ VSub_Name RESULT))} ) ] ) (command.Sentence child: (C {(variable) (Lit_Other ':') (Lit_Other ':') (LinkedList) (Lit_Other ':') (Lit_Other ':') (first) } {(DQ (${ VSub_Name passedArgs))} ) terminator: <Op_Semi ';'> ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:thisValueToken) op: Equal rhs: {(DQ (${ VSub_Name RESULT))} ) ] ) (command.Sentence child: (C {(variable) (Lit_Other ':') (Lit_Other ':') (LinkedList) (Lit_Other ':') (Lit_Other ':') (rest) } {(DQ (${ VSub_Name formalArgs))} ) terminator: <Op_Semi ';'> ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:formalArgs) op: Equal rhs: {(DQ (${ VSub_Name RESULT))} ) ] ) (command.Sentence child: (C {(variable) (Lit_Other ':') (Lit_Other ':') (LinkedList) (Lit_Other ':') (Lit_Other ':') (rest) } {(DQ (${ VSub_Name passedArgs))} ) terminator: <Op_Semi ';'> ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:passedArgs) op: Equal rhs: {(DQ (${ VSub_Name RESULT))} ) ] ) (C {(environment) (Lit_Other ':') (Lit_Other ':') (setVariable)} {(DQ (${ VSub_Name runningEnv))} {($ VSub_DollarName '$thisKeyToken')} {($ VSub_DollarName '$thisValueToken')} ) ] ) ) (C {(variable) (Lit_Other ':') (Lit_Other ':') (debug)} {($ VSub_DollarName '$body')}) (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 body))} ) ] 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 body))} ) 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 body))} ) terminator: <Op_Semi ';'> ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:body) op: Equal rhs: {(${ VSub_Name RESULT)} ) ] ) (C {(evaluator) (Lit_Other ':') (Lit_Other ':') (eval)} {($ VSub_DollarName '$runningEnv')} {($ 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.FuncDef name: 'variable::Lambda::getEnv' 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 VARIABLES_DEBUG)} right: {(1)} ) ) terminator: <Op_Semi ';'> ) ] action: [ (command.Sentence child: (C {(stderr)} {(DQ ('variable::Lambda::getEnv ') (${ VSub_At '@'))}) terminator: <Op_Semi ';'> ) ] ) ] ) (command.Assignment keyword: Assign_Declare pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:lambdaToken) op: Equal rhs: {(DQ (${ VSub_Number 1))} ) ] ) (C {(variable) (Lit_Other ':') (Lit_Other ':') (type) (Lit_Other ':') (Lit_Other ':') (instanceOfOrExit) } {(DQ (${ VSub_Name lambdaToken))} {(Lambda)} ) (C {(variable) (Lit_Other ':') (Lit_Other ':') (value)} {($ VSub_DollarName '$lambdaToken')} ) (command.Assignment keyword: Assign_Declare flags: [-a] pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:data) op: Equal rhs: {(word_part.ArrayLiteralPart words:[{(${ VSub_Name RESULT)}])} ) ] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:RESULT) op: Equal rhs: { (DQ (word_part.BracedVarSub token: <VSub_Name data> bracket_op: (bracket_op.ArrayIndex expr: (arith_expr.ArithWord w:{(Lit_Digits 0)}) ) ) ) } ) ] ) ] ) ) (command.FuncDef name: 'variable::Lambda::getFormalArgs' 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 VARIABLES_DEBUG)} right: {(1)} ) ) terminator: <Op_Semi ';'> ) ] action: [ (command.Sentence child: (C {(stderr)} {(DQ ('variable::Lambda::getFormalArgs ') (${ VSub_At '@'))}) terminator: <Op_Semi ';'> ) ] ) ] ) (command.Assignment keyword: Assign_Declare pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:lambdaToken) op: Equal rhs: {(DQ (${ VSub_Number 1))} ) ] ) (C {(variable) (Lit_Other ':') (Lit_Other ':') (type) (Lit_Other ':') (Lit_Other ':') (instanceOfOrExit) } {(DQ (${ VSub_Name lambdaToken))} {(Lambda)} ) (C {(variable) (Lit_Other ':') (Lit_Other ':') (value)} {($ VSub_DollarName '$lambdaToken')} ) (command.Assignment keyword: Assign_Declare flags: [-a] pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:data) op: Equal rhs: {(word_part.ArrayLiteralPart words:[{(${ VSub_Name RESULT)}])} ) ] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:RESULT) op: Equal rhs: { (DQ (word_part.BracedVarSub token: <VSub_Name data> bracket_op: (bracket_op.ArrayIndex expr: (arith_expr.ArithWord w:{(Lit_Digits 1)}) ) ) ) } ) ] ) ] ) ) (command.FuncDef name: 'variable::Lambda::getBody' 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 VARIABLES_DEBUG)} right: {(1)} ) ) terminator: <Op_Semi ';'> ) ] action: [ (command.Sentence child: (C {(stderr)} {(DQ ('variable::Lambda::getBody ') (${ VSub_At '@'))}) terminator: <Op_Semi ';'> ) ] ) ] ) (command.Assignment keyword: Assign_Declare pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:lambdaToken) op: Equal rhs: {(DQ (${ VSub_Number 1))} ) ] ) (C {(variable) (Lit_Other ':') (Lit_Other ':') (type) (Lit_Other ':') (Lit_Other ':') (instanceOfOrExit) } {(DQ (${ VSub_Name lambdaToken))} {(Lambda)} ) (C {(variable) (Lit_Other ':') (Lit_Other ':') (value)} {($ VSub_DollarName '$lambdaToken')} ) (command.Assignment keyword: Assign_Declare flags: [-a] pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:data) op: Equal rhs: {(word_part.ArrayLiteralPart words:[{(${ VSub_Name RESULT)}])} ) ] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:RESULT) op: Equal rhs: { (DQ (word_part.BracedVarSub token: <VSub_Name data> bracket_op: (bracket_op.ArrayIndex expr: (arith_expr.ArithWord w:{(Lit_Digits 2)}) ) ) ) } ) ] ) ] ) ) (command.FuncDef name: 'variable::Lambda::toSexp' body: (command.BraceGroup children: [ (command.Assignment keyword: Assign_Declare pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:token) op: Equal rhs: {(DQ (${ VSub_Number 1))} ) ] ) (command.Sentence child: (C {(variable) (Lit_Other ':') (Lit_Other ':') (Lambda) (Lit_Other ':') (Lit_Other ':') (getEnv) } {($ VSub_DollarName '$token')} ) terminator: <Op_Semi ';'> ) (command.Assignment keyword: Assign_Declare pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:env) op: Equal rhs: {($ VSub_DollarName '$RESULT')} ) ] ) (command.Sentence child: (C {(variable) (Lit_Other ':') (Lit_Other ':') (Lambda) (Lit_Other ':') (Lit_Other ':') (getFormalArgs) } {($ VSub_DollarName '$token')} ) terminator: <Op_Semi ';'> ) (command.Assignment keyword: Assign_Declare pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:args) op: Equal rhs: {($ VSub_DollarName '$RESULT')} ) ] ) (command.Sentence child: (C {(variable) (Lit_Other ':') (Lit_Other ':') (Lambda) (Lit_Other ':') (Lit_Other ':') (getBody) } {($ VSub_DollarName '$token')} ) terminator: <Op_Semi ';'> ) (command.Assignment keyword: Assign_Declare pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:body) op: Equal rhs: {($ VSub_DollarName '$RESULT')} ) ] ) (command.Sentence child: (C {(variable) (Lit_Other ':') (Lit_Other ':') (toSexp)} {($ VSub_DollarName '$args')}) terminator: <Op_Semi ';'> ) (command.Assignment keyword: Assign_Declare pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:argsString) op: Equal rhs: {($ VSub_DollarName '$RESULT')} ) ] ) (command.Sentence child: (C {(variable) (Lit_Other ':') (Lit_Other ':') (toSexp)} {($ VSub_DollarName '$body')}) terminator: <Op_Semi ';'> ) (command.Assignment keyword: Assign_Declare pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:bodyString) op: Equal rhs: {($ VSub_DollarName '$RESULT')} ) ] ) (command.Sentence child: (command.Assignment keyword: Assign_Declare pairs: [(assign_pair lhs:(lhs_expr.LhsName name:bodyLen) op:Equal)] ) terminator: <Op_Semi ';'> ) (command.DParen child: (arith_expr.BinaryAssign op_id: Arith_Equal left: (lhs_expr.LhsName name:bodyLen) right: (arith_expr.ArithBinary op_id: Arith_Minus left: (arith_expr.ArithWord w: { (word_part.BracedVarSub token: <VSub_Name bodyString> prefix_op: VSub_Pound ) } ) right: (arith_expr.ArithWord w:{(Lit_Digits 2)}) ) ) ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:bodyString) op: Equal rhs: { (word_part.BracedVarSub token: <VSub_Name bodyString> suffix_op: (suffix_op.Slice begin: (arith_expr.ArithWord w:{(Lit_Digits 1)}) length: (arith_expr.ArithVarRef token:<Lit_ArithVarLike bodyLen>) ) ) } ) ] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:RESULT) op: Equal rhs: { (DQ ('(lambda ') (${ VSub_Name argsString) (' ') ($ VSub_DollarName '$bodyString') (')') ) } ) ] ) ] ) ) (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>)] ) ] ) (C {(.)} { (word_part.BracedVarSub token: <VSub_Name BASH_SOURCE> suffix_op: (suffix_op.StringUnary op_id:VOp1_Percent arg_word:{(Lit_Slash /) ('*')}) ) (/test.sh) } ) (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))} ) ] ) ] ) (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))} {(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:lambdaBody) 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:lambdaCode) op: Equal rhs: {(DQ (${ VSub_Name RESULT))} ) ] ) ] ) (C {(appendToList)} {($ VSub_DollarName '$lambdaCode')} {(Identifier)} {(SQ <'*'>)} {(Identifier)} {(DQ (x))} {(Identifier)} {(DQ (y))} ) (C {(variable) (Lit_Other ':') (Lit_Other ':') (LinkedList) (Lit_Other ':') (Lit_Other ':') (append)} {($ VSub_DollarName '$lambdaBody')} {($ VSub_DollarName '$lambdaCode')} ) (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 '$lambdaBody') ) } ) 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 {(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:callingArgs) op: Equal rhs: {(DQ (${ VSub_Name RESULT))} ) ] ) ] ) (C {(appendToList)} {($ VSub_DollarName '$callingArgs')} {(Integer)} {(5)} {(Integer)} {(3)}) (C {(variable) (Lit_Other ':') (Lit_Other ':') (Lambda) (Lit_Other ':') (Lit_Other ':') (call)} {($ VSub_DollarName '$lambda')} {($ VSub_DollarName '$callingArgs')} ) (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 :: 15'))} {(DQ (${ VSub_Name RESULT))} {(DQ ('((lambda (x y) (* x y) 5 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: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:lambdaBody) 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:lambdaCode) op: Equal rhs: {(DQ (${ VSub_Name RESULT))} ) ] ) ] ) (C {(appendToList)} {($ VSub_DollarName '$lambdaCode')} {(Identifier)} {(SQ <'*'>)} {(Identifier)} {(DQ (x))} {(Identifier)} {(DQ (y))} ) (C {(variable) (Lit_Other ':') (Lit_Other ':') (LinkedList) (Lit_Other ':') (Lit_Other ':') (append)} {($ VSub_DollarName '$lambdaBody')} {($ VSub_DollarName '$lambdaCode')} ) (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 '$lambdaBody') ) } ) 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 {(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:callingArgs) op: Equal rhs: {(DQ (${ VSub_Name RESULT))} ) ] ) ] ) (C {(appendToList)} {($ VSub_DollarName '$callingArgs')} {(Integer)} {(5)}) (C {(variable) (Lit_Other ':') (Lit_Other ':') (Lambda) (Lit_Other ':') (Lit_Other ':') (call)} {($ VSub_DollarName '$lambda')} {($ VSub_DollarName '$callingArgs')} ) (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(y=10) ((lambda (x) (* x y) 5)'))} ) ] ) (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)})] ) ] ) ] )