(CommandList children: [ (AndOr children: [ (C {(Lit_Other "[")} { (BracedVarSub token: <VSub_Name CALLABLE_LAMBDA_SH> suffix_op: (StringUnary op_id:VTest_Plus arg_word:{(true)}) spids: [9 13] ) } {(Lit_Other "]")} ) (ControlFlow token:<ControlFlow_Return return>) ] op_id: Op_DAmp ) (Assignment keyword: Assign_Declare flags: ["'-g'"] pairs: [(assign_pair lhs:(LhsName name:CALLABLE_LAMBDA_SH) op:Equal rhs:{(true)} spids:[25])] spids: [21] ) (C {(.)} { (BracedVarSub token: <VSub_Name BASH_SOURCE> suffix_op: (StringUnary op_id:VOp1_Percent arg_word:{(Lit_Slash /) ("*")}) spids: [31 36] ) (/common.sh) } ) (C {(.)} { (BracedVarSub token: <VSub_Name BASH_SOURCE> suffix_op: (StringUnary op_id:VOp1_Percent arg_word:{(Lit_Slash /) ("*")}) spids: [41 46] ) (/variables.sh) } ) (C {(.)} { (BracedVarSub token: <VSub_Name BASH_SOURCE> suffix_op: (StringUnary op_id:VOp1_Percent arg_word:{(Lit_Slash /) ("*")}) spids: [51 56] ) (/variables.linkedlist.sh) } ) (C {(.)} { (BracedVarSub token: <VSub_Name BASH_SOURCE> suffix_op: (StringUnary op_id:VOp1_Percent arg_word:{(Lit_Slash /) ("*")}) spids: [61 66] ) (/specialforms.sh) } ) (C {(.)} { (BracedVarSub token: <VSub_Name BASH_SOURCE> suffix_op: (StringUnary op_id:VOp1_Percent arg_word:{(Lit_Slash /) ("*")}) spids: [71 76] ) (/evaluator.sh) } ) (C {(.)} { (BracedVarSub token: <VSub_Name BASH_SOURCE> suffix_op: (StringUnary op_id:VOp1_Percent arg_word:{(Lit_Slash /) ("*")}) spids: [81 86] ) (/callable.sh) } ) (C {(variable) (Lit_Other ":") (Lit_Other ":") (type) (Lit_Other ":") (Lit_Other ":") (define)} {(Lambda)} {(Function)} ) (FuncDef name: "variable::Lambda::new" body: (BraceGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: {(${ VSub_Name VARIABLES_DEBUG)} right: {(1)} ) ) terminator: <Op_Semi ";"> ) ] action: [ (Sentence child: (C {(stderr)} {(DQ ("variable::Lambda::new ") (${ VSub_At "@"))}) terminator: <Op_Semi ";"> ) ] spids: [-1 185] ) ] spids: [-1 198] ) (C {(variable) (Lit_Other ":") (Lit_Other ":") (new)} {(Lambda)} {(DQ (${ VSub_At "@"))}) ] spids: [167] ) spids: [155 166] ) (FuncDef name: "variable::Lambda::call" body: (BraceGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: {(${ VSub_Name VARIABLES_DEBUG)} right: {(1)} ) ) terminator: <Op_Semi ";"> ) ] action: [ (Sentence child: (C {(stderr)} {(DQ ("variable::Lambda::call ") (${ VSub_At "@"))}) terminator: <Op_Semi ";"> ) ] spids: [-1 262] ) ] spids: [-1 275] ) (Assignment keyword: Assign_Declare pairs: [ (assign_pair lhs: (LhsName name:lambdaToken) op: Equal rhs: {(DQ (${ VSub_Number 1))} spids: [280] ) ] spids: [278] ) (Assignment keyword: Assign_Declare pairs: [ (assign_pair lhs: (LhsName name:passedArgs) op: Equal rhs: {(DQ (${ VSub_Number 2))} spids: [290] ) ] spids: [288] ) (C {(variable) (Lit_Other ":") (Lit_Other ":") (type) (Lit_Other ":") (Lit_Other ":") (instanceOfOrExit) } {(DQ (${ VSub_Name lambdaToken))} {(Lambda)} ) (Sentence child: (C {(variable) (Lit_Other ":") (Lit_Other ":") (LinkedList) (Lit_Other ":") (Lit_Other ":") (length) } {($ VSub_Name "$passedArgs")} ) terminator: <Op_Semi ";"> ) (Assignment keyword: Assign_Declare pairs: [ (assign_pair lhs: (LhsName name:passedArgCount) op: Equal rhs: {(DQ (${ VSub_Name RESULT))} spids: [330] ) ] spids: [328] ) (Sentence child: (C {(variable) (Lit_Other ":") (Lit_Other ":") (Lambda) (Lit_Other ":") (Lit_Other ":") (getEnv) } {($ VSub_Name "$lambdaToken")} ) terminator: <Op_Semi ";"> ) (Assignment keyword: Assign_Declare pairs: [ (assign_pair lhs: (LhsName name:env) op: Equal rhs: {(DQ (${ VSub_Name RESULT))} spids: [352] ) ] spids: [350] ) (Sentence child: (C {(variable) (Lit_Other ":") (Lit_Other ":") (Lambda) (Lit_Other ":") (Lit_Other ":") (getFormalArgs) } {($ VSub_Name "$lambdaToken")} ) terminator: <Op_Semi ";"> ) (Assignment keyword: Assign_Declare pairs: [ (assign_pair lhs: (LhsName name:formalArgs) op: Equal rhs: {(DQ (${ VSub_Name RESULT))} spids: [374] ) ] spids: [372] ) (Sentence child: (C {(variable) (Lit_Other ":") (Lit_Other ":") (Lambda) (Lit_Other ":") (Lit_Other ":") (getBody) } {($ VSub_Name "$lambdaToken")} ) terminator: <Op_Semi ";"> ) (Assignment keyword: Assign_Declare pairs: [ (assign_pair lhs: (LhsName name:body) op: Equal rhs: {(DQ (${ VSub_Name RESULT))} spids: [396] ) ] spids: [394] ) (Sentence child: (C {(variable) (Lit_Other ":") (Lit_Other ":") (LinkedList) (Lit_Other ":") (Lit_Other ":") (length) } {($ VSub_Name "$formalArgs")} ) terminator: <Op_Semi ";"> ) (Assignment keyword: Assign_Declare pairs: [ (assign_pair lhs: (LhsName name:formalArgCount) op: Equal rhs: {(DQ (${ VSub_Name RESULT))} spids: [418] ) ] spids: [416] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_ne left: {($ VSub_Name "$passedArgCount")} right: {($ VSub_Name "$formalArgCount")} ) ) terminator: <Op_Semi ";"> ) ] action: [ (C {(stderr)} { (DQ ("lambda: passed arg count (") (${ VSub_Name passedArgCount) (") != format arg count (") (${ VSub_Name formalArgCount) (")") ) } ) (C {(exit)} {(1)}) ] spids: [-1 440] ) ] spids: [-1 463] ) (Sentence child: (C {(environment) (Lit_Other ":") (Lit_Other ":") (pushScope)} {($ VSub_Name "$env")}) terminator: <Op_Semi ";"> ) (Assignment keyword: Assign_Declare pairs: [ (assign_pair lhs: (LhsName name:runningEnv) op: Equal rhs: {(DQ (${ VSub_Name RESULT))} spids: [478] ) ] spids: [476] ) (Assignment keyword: Assign_Declare pairs: [(assign_pair lhs:(LhsName name:thisKeyToken) op:Equal spids:[488])] spids: [486] ) (Assignment keyword: Assign_Declare pairs: [(assign_pair lhs:(LhsName name:thisValueToken) op:Equal spids:[493])] spids: [491] ) (While cond: [ (Sentence child: (Pipeline children: [ (C {(variable) (Lit_Other ":") (Lit_Other ":") (LinkedList) (Lit_Other ":") (Lit_Other ":") (isEmpty_c) } {(DQ (${ VSub_Name formalArgs))} ) ] negated: True ) terminator: <Op_Semi ";"> ) ] body: (DoGroup children: [ (Sentence child: (C {(variable) (Lit_Other ":") (Lit_Other ":") (LinkedList) (Lit_Other ":") (Lit_Other ":") (first) } {(DQ (${ VSub_Name formalArgs))} ) terminator: <Op_Semi ";"> ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:thisKeyToken) op: Equal rhs: {(DQ (${ VSub_Name RESULT))} spids: [535] ) ] spids: [535] ) (Sentence child: (C {(variable) (Lit_Other ":") (Lit_Other ":") (LinkedList) (Lit_Other ":") (Lit_Other ":") (first) } {(DQ (${ VSub_Name passedArgs))} ) terminator: <Op_Semi ";"> ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:thisValueToken) op: Equal rhs: {(DQ (${ VSub_Name RESULT))} spids: [559] ) ] spids: [559] ) (Sentence child: (C {(variable) (Lit_Other ":") (Lit_Other ":") (LinkedList) (Lit_Other ":") (Lit_Other ":") (rest) } {(DQ (${ VSub_Name formalArgs))} ) terminator: <Op_Semi ";"> ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:formalArgs) op: Equal rhs: {(DQ (${ VSub_Name RESULT))} spids: [584] ) ] spids: [584] ) (Sentence child: (C {(variable) (Lit_Other ":") (Lit_Other ":") (LinkedList) (Lit_Other ":") (Lit_Other ":") (rest) } {(DQ (${ VSub_Name passedArgs))} ) terminator: <Op_Semi ";"> ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:passedArgs) op: Equal rhs: {(DQ (${ VSub_Name RESULT))} spids: [608] ) ] spids: [608] ) (C {(environment) (Lit_Other ":") (Lit_Other ":") (setVariable)} {(DQ (${ VSub_Name runningEnv))} {($ VSub_Name "$thisKeyToken")} {($ VSub_Name "$thisValueToken")} ) ] spids: [516 633] ) ) (C {(variable) (Lit_Other ":") (Lit_Other ":") (debug)} {($ VSub_Name "$body")}) (Assignment keyword: Assign_Declare pairs: [ (assign_pair lhs:(LhsName name:currentSexp) op:Equal spids:[648]) (assign_pair lhs:(LhsName name:currentResult) op:Equal spids:[650]) ] spids: [646] ) (While cond: [ (Sentence child: (Pipeline children: [ (C {(variable) (Lit_Other ":") (Lit_Other ":") (LinkedList) (Lit_Other ":") (Lit_Other ":") (isEmpty_c) } {(DQ (${ VSub_Name body))} ) ] negated: True ) terminator: <Op_Semi ";"> ) ] body: (DoGroup children: [ (Sentence child: (C {(variable) (Lit_Other ":") (Lit_Other ":") (LinkedList) (Lit_Other ":") (Lit_Other ":") (first) } {(DQ (${ VSub_Name body))} ) terminator: <Op_Semi ";"> ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:currentSexp) op: Equal rhs: {(${ VSub_Name RESULT)} spids: [692] ) ] spids: [692] ) (Sentence child: (C {(variable) (Lit_Other ":") (Lit_Other ":") (LinkedList) (Lit_Other ":") (Lit_Other ":") (rest) } {(DQ (${ VSub_Name body))} ) terminator: <Op_Semi ";"> ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:body) op: Equal rhs: {(${ VSub_Name RESULT)} spids: [714] ) ] spids: [714] ) (C {(evaluator) (Lit_Other ":") (Lit_Other ":") (eval)} {($ VSub_Name "$runningEnv")} {($ VSub_Name "$currentSexp")} ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:currentResult) op: Equal rhs: {(${ VSub_Name RESULT)} spids: [730] ) ] spids: [730] ) ] spids: [673 736] ) ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:RESULT) op: Equal rhs: {(DQ (${ VSub_Name currentResult))} spids: [739] ) ] spids: [739] ) ] spids: [244] ) spids: [232 243] ) (FuncDef name: "variable::Lambda::getEnv" body: (BraceGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: {(${ VSub_Name VARIABLES_DEBUG)} right: {(1)} ) ) terminator: <Op_Semi ";"> ) ] action: [ (Sentence child: (C {(stderr)} {(DQ ("variable::Lambda::getEnv ") (${ VSub_At "@"))}) terminator: <Op_Semi ";"> ) ] spids: [-1 779] ) ] spids: [-1 792] ) (Assignment keyword: Assign_Declare pairs: [ (assign_pair lhs: (LhsName name:lambdaToken) op: Equal rhs: {(DQ (${ VSub_Number 1))} spids: [797] ) ] spids: [795] ) (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_Name "$lambdaToken")}) (Assignment keyword: Assign_Declare flags: ["'-a'"] pairs: [ (assign_pair lhs: (LhsName name:data) op: Equal rhs: {(ArrayLiteralPart words:[{(${ VSub_Name RESULT)}])} spids: [835] ) ] spids: [831] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:RESULT) op: Equal rhs: { (DQ (BracedVarSub token: <VSub_Name data> bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 0)})) spids: [846 851] ) ) } spids: [844] ) ] spids: [844] ) ] spids: [761] ) spids: [749 760] ) (FuncDef name: "variable::Lambda::getFormalArgs" body: (BraceGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: {(${ VSub_Name VARIABLES_DEBUG)} right: {(1)} ) ) terminator: <Op_Semi ";"> ) ] action: [ (Sentence child: (C {(stderr)} {(DQ ("variable::Lambda::getFormalArgs ") (${ VSub_At "@"))}) terminator: <Op_Semi ";"> ) ] spids: [-1 887] ) ] spids: [-1 900] ) (Assignment keyword: Assign_Declare pairs: [ (assign_pair lhs: (LhsName name:lambdaToken) op: Equal rhs: {(DQ (${ VSub_Number 1))} spids: [905] ) ] spids: [903] ) (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_Name "$lambdaToken")}) (Assignment keyword: Assign_Declare flags: ["'-a'"] pairs: [ (assign_pair lhs: (LhsName name:data) op: Equal rhs: {(ArrayLiteralPart words:[{(${ VSub_Name RESULT)}])} spids: [943] ) ] spids: [939] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:RESULT) op: Equal rhs: { (DQ (BracedVarSub token: <VSub_Name data> bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 1)})) spids: [954 959] ) ) } spids: [952] ) ] spids: [952] ) ] spids: [869] ) spids: [857 868] ) (FuncDef name: "variable::Lambda::getBody" body: (BraceGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: {(${ VSub_Name VARIABLES_DEBUG)} right: {(1)} ) ) terminator: <Op_Semi ";"> ) ] action: [ (Sentence child: (C {(stderr)} {(DQ ("variable::Lambda::getBody ") (${ VSub_At "@"))}) terminator: <Op_Semi ";"> ) ] spids: [-1 995] ) ] spids: [-1 1008] ) (Assignment keyword: Assign_Declare pairs: [ (assign_pair lhs: (LhsName name:lambdaToken) op: Equal rhs: {(DQ (${ VSub_Number 1))} spids: [1013] ) ] spids: [1011] ) (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_Name "$lambdaToken")}) (Assignment keyword: Assign_Declare flags: ["'-a'"] pairs: [ (assign_pair lhs: (LhsName name:data) op: Equal rhs: {(ArrayLiteralPart words:[{(${ VSub_Name RESULT)}])} spids: [1051] ) ] spids: [1047] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:RESULT) op: Equal rhs: { (DQ (BracedVarSub token: <VSub_Name data> bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 2)})) spids: [1062 1067] ) ) } spids: [1060] ) ] spids: [1060] ) ] spids: [977] ) spids: [965 976] ) (FuncDef name: "variable::Lambda::toSexp" body: (BraceGroup children: [ (Assignment keyword: Assign_Declare pairs: [ (assign_pair lhs: (LhsName name:token) op: Equal rhs: {(DQ (${ VSub_Number 1))} spids: [1090] ) ] spids: [1088] ) (Sentence child: (C {(variable) (Lit_Other ":") (Lit_Other ":") (Lambda) (Lit_Other ":") (Lit_Other ":") (getEnv) } {($ VSub_Name "$token")} ) terminator: <Op_Semi ";"> ) (Assignment keyword: Assign_Declare pairs: [ (assign_pair lhs: (LhsName name:env) op: Equal rhs: {($ VSub_Name "$RESULT")} spids: [1112] ) ] spids: [1110] ) (Sentence child: (C {(variable) (Lit_Other ":") (Lit_Other ":") (Lambda) (Lit_Other ":") (Lit_Other ":") (getFormalArgs) } {($ VSub_Name "$token")} ) terminator: <Op_Semi ";"> ) (Assignment keyword: Assign_Declare pairs: [ (assign_pair lhs: (LhsName name:args) op: Equal rhs: {($ VSub_Name "$RESULT")} spids: [1130] ) ] spids: [1128] ) (Sentence child: (C {(variable) (Lit_Other ":") (Lit_Other ":") (Lambda) (Lit_Other ":") (Lit_Other ":") (getBody) } {($ VSub_Name "$token")} ) terminator: <Op_Semi ";"> ) (Assignment keyword: Assign_Declare pairs: [ (assign_pair lhs: (LhsName name:body) op: Equal rhs: {($ VSub_Name "$RESULT")} spids: [1148] ) ] spids: [1146] ) (Sentence child: (C {(variable) (Lit_Other ":") (Lit_Other ":") (toSexp)} {($ VSub_Name "$args")}) terminator: <Op_Semi ";"> ) (Assignment keyword: Assign_Declare pairs: [ (assign_pair lhs: (LhsName name:argsString) op: Equal rhs: {($ VSub_Name "$RESULT")} spids: [1164] ) ] spids: [1162] ) (Sentence child: (C {(variable) (Lit_Other ":") (Lit_Other ":") (toSexp)} {($ VSub_Name "$body")}) terminator: <Op_Semi ";"> ) (Assignment keyword: Assign_Declare pairs: [ (assign_pair lhs: (LhsName name:bodyString) op: Equal rhs: {($ VSub_Name "$RESULT")} spids: [1179] ) ] spids: [1177] ) (Sentence child: (Assignment keyword: Assign_Declare pairs: [(assign_pair lhs:(LhsName name:bodyLen) op:Equal spids:[1185])] spids: [1183] ) terminator: <Op_Semi ";"> ) (DParen child: (BinaryAssign op_id: Arith_Equal left: (LhsName name:bodyLen) right: (ArithBinary op_id: Arith_Minus left: (ArithWord w: { (BracedVarSub token: <VSub_Name bodyString> prefix_op: VSub_Pound spids: [1195 1198] ) } ) right: (ArithWord w:{(Lit_Digits 2)}) ) ) ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:bodyString) op: Equal rhs: { (BracedVarSub token: <VSub_Name bodyString> suffix_op: (Slice begin: (ArithWord w:{(Lit_Digits 1)}) length: (ArithVarRef name:bodyLen) ) spids: [1209 1215] ) } spids: [1208] ) ] spids: [1208] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:RESULT) op: Equal rhs: { (DQ ("(lambda ") (${ VSub_Name argsString) (" ") ($ VSub_Name "$bodyString") (")")) } spids: [1219] ) ] spids: [1219] ) ] spids: [1085] ) spids: [1073 1084] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other "[")} {($ VSub_Number "$0")} {(KW_Bang "!") (Lit_Other "=")} {($ VSub_Name "$BASH_SOURCE")} {(Lit_Other "]")} ) terminator: <Op_Semi ";"> ) ] action: [(ControlFlow token:<ControlFlow_Return return>)] spids: [-1 1253] ) ] spids: [-1 1258] ) (C {(.)} { (BracedVarSub token: <VSub_Name BASH_SOURCE> suffix_op: (StringUnary op_id:VOp1_Percent arg_word:{(Lit_Slash /) ("*")}) spids: [1263 1268] ) (/test.sh) } ) (Sentence child:(C {(createTestEnv)}) terminator:<Op_Semi ";">) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:lambdaEnv) op: Equal rhs: {(DQ (${ VSub_Name RESULT))} spids: [1285] ) ] spids: [1285] ) (Sentence child: (C {(variable) (Lit_Other ":") (Lit_Other ":") (LinkedList) (Lit_Other ":") (Lit_Other ":") (new)} ) terminator: <Op_Semi ";"> ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:lambdaArgs) op: Equal rhs: {(DQ (${ VSub_Name RESULT))} spids: [1302] ) ] spids: [1302] ) (C {(appendToList)} {($ VSub_Name "$lambdaArgs")} {(Identifier)} {(DQ (x))} {(Identifier)} {(DQ (y))}) (Sentence child: (C {(variable) (Lit_Other ":") (Lit_Other ":") (LinkedList) (Lit_Other ":") (Lit_Other ":") (new)} ) terminator: <Op_Semi ";"> ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:lambdaBody) op: Equal rhs: {(DQ (${ VSub_Name RESULT))} spids: [1335] ) ] spids: [1335] ) (Sentence child: (C {(variable) (Lit_Other ":") (Lit_Other ":") (LinkedList) (Lit_Other ":") (Lit_Other ":") (new)} ) terminator: <Op_Semi ";"> ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:lambdaCode) op: Equal rhs: {(DQ (${ VSub_Name RESULT))} spids: [1352] ) ] spids: [1352] ) (C {(appendToList)} {($ VSub_Name "$lambdaCode")} {(Identifier)} {(SQ <"*">)} {(Identifier)} {(DQ (x))} {(Identifier)} {(DQ (y))} ) (C {(variable) (Lit_Other ":") (Lit_Other ":") (LinkedList) (Lit_Other ":") (Lit_Other ":") (append)} {($ VSub_Name "$lambdaBody")} {($ VSub_Name "$lambdaCode")} ) (Sentence child: (C {(variable) (Lit_Other ":") (Lit_Other ":") (Lambda) (Lit_Other ":") (Lit_Other ":") (new)} { (DQ ($ VSub_Name "$lambdaEnv") (" ") ($ VSub_Name "$lambdaArgs") (" ") ($ VSub_Name "$lambdaBody") ) } ) terminator: <Op_Semi ";"> ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:lambda) op: Equal rhs: {(DQ (${ VSub_Name RESULT))} spids: [1411] ) ] spids: [1411] ) (Sentence child: (C {(variable) (Lit_Other ":") (Lit_Other ":") (LinkedList) (Lit_Other ":") (Lit_Other ":") (new)} ) terminator: <Op_Semi ";"> ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:callingArgs) op: Equal rhs: {(DQ (${ VSub_Name RESULT))} spids: [1429] ) ] spids: [1429] ) (C {(appendToList)} {($ VSub_Name "$callingArgs")} {(Integer)} {(5)} {(Integer)} {(3)}) (C {(variable) (Lit_Other ":") (Lit_Other ":") (Lambda) (Lit_Other ":") (Lit_Other ":") (call)} {($ VSub_Name "$lambda")} {($ VSub_Name "$callingArgs")} ) (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)"))} ) (Sentence child:(C {(createTestEnv)}) terminator:<Op_Semi ";">) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:lambdaEnv) op: Equal rhs: {(DQ (${ VSub_Name RESULT))} spids: [1509] ) ] spids: [1509] ) (C {(setInEnv)} {($ VSub_Name "$lambdaEnv")} {(DQ (y))} {(Integer)} {(10)}) (Sentence child: (C {(variable) (Lit_Other ":") (Lit_Other ":") (LinkedList) (Lit_Other ":") (Lit_Other ":") (new)} ) terminator: <Op_Semi ";"> ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:lambdaArgs) op: Equal rhs: {(DQ (${ VSub_Name RESULT))} spids: [1538] ) ] spids: [1538] ) (C {(appendToList)} {($ VSub_Name "$lambdaArgs")} {(Identifier)} {(DQ (x))}) (Sentence child: (C {(variable) (Lit_Other ":") (Lit_Other ":") (LinkedList) (Lit_Other ":") (Lit_Other ":") (new)} ) terminator: <Op_Semi ";"> ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:lambdaBody) op: Equal rhs: {(DQ (${ VSub_Name RESULT))} spids: [1565] ) ] spids: [1565] ) (Sentence child: (C {(variable) (Lit_Other ":") (Lit_Other ":") (LinkedList) (Lit_Other ":") (Lit_Other ":") (new)} ) terminator: <Op_Semi ";"> ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:lambdaCode) op: Equal rhs: {(DQ (${ VSub_Name RESULT))} spids: [1582] ) ] spids: [1582] ) (C {(appendToList)} {($ VSub_Name "$lambdaCode")} {(Identifier)} {(SQ <"*">)} {(Identifier)} {(DQ (x))} {(Identifier)} {(DQ (y))} ) (C {(variable) (Lit_Other ":") (Lit_Other ":") (LinkedList) (Lit_Other ":") (Lit_Other ":") (append)} {($ VSub_Name "$lambdaBody")} {($ VSub_Name "$lambdaCode")} ) (Sentence child: (C {(variable) (Lit_Other ":") (Lit_Other ":") (Lambda) (Lit_Other ":") (Lit_Other ":") (new)} { (DQ ($ VSub_Name "$lambdaEnv") (" ") ($ VSub_Name "$lambdaArgs") (" ") ($ VSub_Name "$lambdaBody") ) } ) terminator: <Op_Semi ";"> ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:lambda) op: Equal rhs: {(DQ (${ VSub_Name RESULT))} spids: [1641] ) ] spids: [1641] ) (Sentence child: (C {(variable) (Lit_Other ":") (Lit_Other ":") (LinkedList) (Lit_Other ":") (Lit_Other ":") (new)} ) terminator: <Op_Semi ";"> ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:callingArgs) op: Equal rhs: {(DQ (${ VSub_Name RESULT))} spids: [1659] ) ] spids: [1659] ) (C {(appendToList)} {($ VSub_Name "$callingArgs")} {(Integer)} {(5)}) (C {(variable) (Lit_Other ":") (Lit_Other ":") (Lambda) (Lit_Other ":") (Lit_Other ":") (call)} {($ VSub_Name "$lambda")} {($ VSub_Name "$callingArgs")} ) (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)}) (If arms: [ (if_arm cond: [ (Sentence child: (AndOr children: [ (C {(Lit_Other "[")} { (BracedVarSub token: <VSub_Number 1> suffix_op: (StringUnary op_id:VTest_Plus arg_word:{(isset)}) spids: [1739 1743] ) } {(Lit_Other "]")} ) (C {(Lit_Other "[")} {(DQ ($ VSub_Number "$1"))} {(Lit_Other "=") (Lit_Other "=")} {(DQ (debug))} {(Lit_Other "]")} ) ] op_id: Op_DAmp ) terminator: <Op_Semi ";"> ) ] action: [(C {(variable) (Lit_Other ":") (Lit_Other ":") (printMetadata)})] spids: [-1 1765] ) ] spids: [-1 1774] ) ] )