(command.CommandList children: [ (command.AndOr ops: [Op_DAmp] children: [ (C {(Lit_Other '[')} { (word_part.BracedVarSub token: <VSub_Name VARIABLES_LINKEDLIST_SH> suffix_op: (suffix_op.StringUnary op_id:VTest_Plus arg_word:{(true)}) spids: [9 13] ) } {(Lit_Other ']')} ) (command.ControlFlow token:<ControlFlow_Return return>) ] ) (command.Assignment keyword: Assign_Declare flags: [-g] pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:VARIABLES_LINKEDLIST_SH spids:[25]) op: Equal rhs: {(true)} spids: [25] ) ] spids: [21] ) (C {(.)} { (word_part.BracedVarSub token: <VSub_Name BASH_SOURCE> suffix_op: (suffix_op.StringUnary op_id:VOp1_Percent arg_word:{(Lit_Slash /) ('*')}) spids: [31 36] ) (/common.sh) } ) (C {(.)} { (word_part.BracedVarSub token: <VSub_Name BASH_SOURCE> suffix_op: (suffix_op.StringUnary op_id:VOp1_Percent arg_word:{(Lit_Slash /) ('*')}) spids: [41 46] ) (/logger.sh) } ) (C {(.)} { (word_part.BracedVarSub token: <VSub_Name BASH_SOURCE> suffix_op: (suffix_op.StringUnary op_id:VOp1_Percent arg_word:{(Lit_Slash /) ('*')}) spids: [51 56] ) (/variables.sh) } ) (C {(.)} { (word_part.BracedVarSub token: <VSub_Name BASH_SOURCE> suffix_op: (suffix_op.StringUnary op_id:VOp1_Percent arg_word:{(Lit_Slash /) ('*')}) spids: [61 66] ) (/variables.atom.sh) } ) (C {(variable) (Lit_Other ':') (Lit_Other ':') (type) (Lit_Other ':') (Lit_Other ':') (define)} {(LinkedList)} ) (command.FuncDef name: 'variable::LinkedList::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::LinkedList::new ') (${ VSub_At '@'))}) terminator: <Op_Semi ';'> ) ] spids: [16777215 172] ) ] spids: [16777215 185] ) (C {(variable) (Lit_Other ':') (Lit_Other ':') (new)} {(LinkedList)} {(DQ (${ VSub_At '@'))}) ] spids: [154] ) spids: [142 153] ) (command.FuncDef name: 'variable::LinkedList::append' 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::LinkedList::append ') (${ VSub_At '@'))}) terminator: <Op_Semi ';'> ) ] spids: [16777215 249] ) ] spids: [16777215 262] ) (command.Assignment keyword: Assign_Declare pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:list_token spids:[267]) op: Equal rhs: {($ VSub_Number '$1')} spids: [267] ) ] spids: [265] ) (command.Assignment keyword: Assign_Declare pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:value_token spids:[273]) op: Equal rhs: {($ VSub_Number '$2')} spids: [273] ) ] spids: [271] ) (C {(variable) (Lit_Other ':') (Lit_Other ':') (type) (Lit_Other ':') (Lit_Other ':') (instanceOfOrExit) } {(DQ (${ VSub_Name list_token))} {(LinkedList)} ) (command.Assignment keyword: Assign_Declare pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:currToken spids:[298]) op: Equal rhs: {(DQ (${ VSub_Name list_token))} spids: [298] ) ] spids: [296] ) (command.Assignment keyword: Assign_Declare pairs: [(assign_pair lhs:(lhs_expr.LhsName name:node spids:[308]) op:Equal spids:[308])] spids: [306] ) (command.Assignment keyword: Assign_Declare flags: [-a] pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:nodeArr spids:[315]) op: Equal spids: [315] ) ] spids: [311] ) (command.WhileUntil keyword: <KW_While while> cond: [(command.Sentence child:(C {(true)}) terminator:<Op_Semi ';'>)] body: (command.DoGroup children: [ (C {(variable) (Lit_Other ':') (Lit_Other ':') (value)} {(DQ (${ VSub_Name currToken))} ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:node spids:[339]) op: Equal rhs: {(DQ (${ VSub_Name RESULT))} spids: [339] ) ] spids: [339] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Lit_Other '[')} {(DQ (${ VSub_Name node))} {(Lit_Other '=') (Lit_Other '=')} {(DQ )} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (C {(variable) (Lit_Other ':') (Lit_Other ':') (LinkedList) (Lit_Other ':') (Lit_Other ':') (new) } ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:nodeArr spids:[381]) op: Equal rhs: { (word_part.ArrayLiteralPart words: [ {(DQ (${ VSub_Name value_token))} {(DQ (${ VSub_Name RESULT))} ] ) } spids: [381] ) ] spids: [381] ) (C {(variable) (Lit_Other ':') (Lit_Other ':') (set)} {(DQ (${ VSub_Name currToken))} {(LinkedList)} { (DQ (word_part.BracedVarSub token: <VSub_Name nodeArr> bracket_op: (bracket_op.WholeArray op_id:Arith_Star) spids: [411 416] ) ) } ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:RESULT spids:[420]) op: Equal rhs: {(DQ )} spids: [420] ) ] spids: [420] ) (command.ControlFlow token: <ControlFlow_Return return> arg_word: {(0)} ) ] spids: [16777215 366] ) ] spids: [16777215 430] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:nodeArr spids:[433]) op: Equal rhs: {(word_part.ArrayLiteralPart words:[{($ VSub_DollarName '$node')}])} spids: [433] ) ] spids: [433] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Lit_Other '[')} { (DQ (word_part.BracedVarSub token: <VSub_Name nodeArr> prefix_op: VSub_Pound bracket_op: (bracket_op.WholeArray op_id:Lit_At) spids: [444 450] ) ) } {(-ne)} {(2)} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (C {(stderr)} { (DQ ('Encountered node with single element at [') (${ VSub_Name currToken) (']=[') (word_part.BracedVarSub token: <VSub_Name nodeArr> bracket_op: (bracket_op.WholeArray op_id:Lit_At) spids: [471 476] ) (']') ) } ) (command.ControlFlow token: <ControlFlow_Exit exit> arg_word: {(1)} ) ] spids: [16777215 460] ) ] spids: [16777215 486] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:currToken spids:[489]) op: Equal rhs: { (DQ (word_part.BracedVarSub token: <VSub_Name nodeArr> bracket_op: (bracket_op.ArrayIndex expr: (arith_expr.ArithWord w:{(Lit_Digits 1)}) ) spids: [491 496] ) ) } spids: [489] ) ] spids: [489] ) ] spids: [324 500] ) ) (C {(stderr)} {(DQ ('Should never get here'))}) (command.ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)}) ] spids: [231] ) spids: [219 230] ) (command.FuncDef name: 'variable::LinkedList::prepend' 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::LinkedList::prepend ') (${ VSub_At '@'))}) terminator: <Op_Semi ';'> ) ] spids: [16777215 563] ) ] spids: [16777215 576] ) (command.Assignment keyword: Assign_Declare pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:list_token spids:[581]) op: Equal rhs: {($ VSub_Number '$1')} spids: [581] ) ] spids: [579] ) (command.Assignment keyword: Assign_Declare pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:value_token spids:[587]) op: Equal rhs: {($ VSub_Number '$2')} spids: [587] ) ] spids: [585] ) (C {(variable) (Lit_Other ':') (Lit_Other ':') (type) (Lit_Other ':') (Lit_Other ':') (instanceOfOrExit) } {(DQ (${ VSub_Name list_token))} {(LinkedList)} ) (C {(variable) (Lit_Other ':') (Lit_Other ':') (value)} {(DQ (${ VSub_Name list_token))}) (command.Assignment keyword: Assign_Declare flags: [-a] pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:node spids:[626]) op: Equal rhs: {(word_part.ArrayLiteralPart words:[{(${ VSub_Name RESULT)}])} spids: [626] ) ] spids: [622] ) (command.Assignment keyword: Assign_Declare flags: [-a] pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:node spids:[639]) op: Equal rhs: { (word_part.ArrayLiteralPart words: [{(DQ (${ VSub_Name value_token))} {(DQ (${ VSub_Name list_token))}] ) } spids: [639] ) ] spids: [635] ) (C {(variable) (Lit_Other ':') (Lit_Other ':') (LinkedList) (Lit_Other ':') (Lit_Other ':') (new) } { (DQ (word_part.BracedVarSub token: <VSub_Name node> bracket_op: (bracket_op.WholeArray op_id:Arith_Star) spids: [664 669] ) ) } ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:RESULT spids:[673]) op: Equal rhs: {(DQ (${ VSub_Name RESULT))} spids: [673] ) ] spids: [673] ) ] spids: [545] ) spids: [533 544] ) (command.FuncDef name: 'variable::LinkedList::length' 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::LinkedList::length ') (${ VSub_At '@'))}) terminator: <Op_Semi ';'> ) ] spids: [16777215 713] ) ] spids: [16777215 726] ) (command.Assignment keyword: Assign_Declare pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:list_token spids:[731]) op: Equal rhs: {($ VSub_Number '$1')} spids: [731] ) ] spids: [729] ) (C {(variable) (Lit_Other ':') (Lit_Other ':') (type) (Lit_Other ':') (Lit_Other ':') (instanceOfOrExit) } {(DQ (${ VSub_Name list_token))} {(LinkedList)} ) (command.Assignment keyword: Assign_Declare pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:currToken spids:[756]) op: Equal rhs: {(DQ (${ VSub_Name list_token))} spids: [756] ) ] spids: [754] ) (command.Assignment keyword: Assign_Declare pairs: [(assign_pair lhs:(lhs_expr.LhsName name:node spids:[766]) op:Equal spids:[766])] spids: [764] ) (command.Assignment keyword: Assign_Declare flags: [-a] pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:nodeArr spids:[773]) op: Equal spids: [773] ) ] spids: [769] ) (command.Assignment keyword: Assign_Declare flags: [-i] pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:count spids:[780]) op: Equal rhs: {(0)} spids: [780] ) ] spids: [776] ) (command.WhileUntil keyword: <KW_While while> cond: [(command.Sentence child:(C {(true)}) terminator:<Op_Semi ';'>)] body: (command.DoGroup children: [ (C {(variable) (Lit_Other ':') (Lit_Other ':') (value)} {(DQ (${ VSub_Name currToken))} ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:node spids:[805]) op: Equal rhs: {(DQ (${ VSub_Name RESULT))} spids: [805] ) ] spids: [805] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Lit_Other '[')} {(DQ (${ VSub_Name node))} {(Lit_Other '=') (Lit_Other '=')} {(DQ )} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:RESULT spids:[836]) op: Equal rhs: {(${ VSub_Name count)} spids: [836] ) ] spids: [836] ) (command.ControlFlow token: <ControlFlow_Return return> arg_word: {(0)} ) ] spids: [16777215 832] ) ] spids: [16777215 847] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:nodeArr spids:[850]) op: Equal rhs: {(word_part.ArrayLiteralPart words:[{($ VSub_DollarName '$node')}])} spids: [850] ) ] spids: [850] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Lit_Other '[')} { (DQ (word_part.BracedVarSub token: <VSub_Name nodeArr> prefix_op: VSub_Pound bracket_op: (bracket_op.WholeArray op_id:Lit_At) spids: [861 867] ) ) } {(-ne)} {(2)} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (C {(stderr)} { (DQ ('Encountered node with single element at [') (${ VSub_Name currToken) (']=[') (word_part.BracedVarSub token: <VSub_Name nodeArr> bracket_op: (bracket_op.WholeArray op_id:Lit_At) spids: [888 893] ) (']') ) } ) (command.ControlFlow token: <ControlFlow_Exit exit> arg_word: {(1)} ) ] spids: [16777215 877] ) ] spids: [16777215 903] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:count spids:[906]) op: PlusEqual rhs: {(1)} spids: [906] ) ] spids: [906] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:currToken spids:[910]) op: Equal rhs: { (DQ (word_part.BracedVarSub token: <VSub_Name nodeArr> bracket_op: (bracket_op.ArrayIndex expr: (arith_expr.ArithWord w:{(Lit_Digits 1)}) ) spids: [912 917] ) ) } spids: [910] ) ] spids: [910] ) ] spids: [790 921] ) ) (C {(stderr)} {(DQ ('Should never get here'))}) (command.ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)}) ] spids: [695] ) spids: [683 694] ) (command.FuncDef name: 'variable::LinkedList::index' 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 ('variables_list::index ') (${ VSub_At '@'))}) terminator: <Op_Semi ';'> ) ] spids: [16777215 969] ) ] spids: [16777215 982] ) (command.Assignment keyword: Assign_Declare pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:token spids:[987]) op: Equal rhs: {(DQ (${ VSub_Number 1))} spids: [987] ) ] spids: [985] ) (command.Assignment keyword: Assign_Declare flags: [-i] pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:index spids:[999]) op: Equal rhs: {(DQ (${ VSub_Number 2))} spids: [999] ) ] spids: [995] ) (C {(variable) (Lit_Other ':') (Lit_Other ':') (type) (Lit_Other ':') (Lit_Other ':') (instanceOfOrExit) } {(DQ (${ VSub_Name token))} {(LinkedList)} ) (command.Assignment keyword: Assign_Declare pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:currToken spids:[1028]) op: Equal rhs: {(DQ (${ VSub_Name token))} spids: [1028] ) ] spids: [1026] ) (command.Assignment keyword: Assign_Declare pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:node spids:[1038]) op: Equal spids: [1038] ) ] spids: [1036] ) (command.Assignment keyword: Assign_Declare flags: [-a] pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:nodeArr spids:[1045]) op: Equal spids: [1045] ) ] spids: [1041] ) (command.Assignment keyword: Assign_Declare flags: [-i] pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:count spids:[1052]) op: Equal rhs: {(0)} spids: [1052] ) ] spids: [1048] ) (command.WhileUntil keyword: <KW_While while> cond: [(command.Sentence child:(C {(true)}) terminator:<Op_Semi ';'>)] body: (command.DoGroup children: [ (C {(variable) (Lit_Other ':') (Lit_Other ':') (value)} {(DQ (${ VSub_Name currToken))} ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:node spids:[1077]) op: Equal rhs: {(DQ (${ VSub_Name RESULT))} spids: [1077] ) ] spids: [1077] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Lit_Other '[')} {(DQ (${ VSub_Name node))} {(Lit_Other '=') (Lit_Other '=')} {(DQ )} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (C {(stderr)} { (DQ ('Invalid index [') (${ VSub_Name index) ('] for list of length [') (${ VSub_Name count) (']') ) } ) (command.ControlFlow token: <ControlFlow_Exit exit> arg_word: {(1)} ) ] spids: [16777215 1104] ) ] spids: [16777215 1128] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:nodeArr spids:[1131]) op: Equal rhs: {(word_part.ArrayLiteralPart words:[{($ VSub_DollarName '$node')}])} spids: [1131] ) ] spids: [1131] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Lit_Other '[')} { (DQ (word_part.BracedVarSub token: <VSub_Name nodeArr> prefix_op: VSub_Pound bracket_op: (bracket_op.WholeArray op_id:Lit_At) spids: [1142 1148] ) ) } {(-ne)} {(2)} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (C {(stderr)} { (DQ ('Encountered node with single element at [') (${ VSub_Name currToken) (']=[') (word_part.BracedVarSub token: <VSub_Name nodeArr> bracket_op: (bracket_op.WholeArray op_id:Lit_At) spids: [1169 1174] ) (']') ) } ) (command.ControlFlow token: <ControlFlow_Exit exit> arg_word: {(1)} ) ] spids: [16777215 1158] ) ] spids: [16777215 1184] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Lit_Other '[')} {($ VSub_DollarName '$count')} {(-eq)} {($ VSub_DollarName '$index')} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:RESULT spids:[1206]) op: Equal rhs: { (DQ (word_part.BracedVarSub token: <VSub_Name nodeArr> bracket_op: (bracket_op.ArrayIndex expr: (arith_expr.ArithWord w:{(Lit_Digits 0)}) ) spids: [1208 1213] ) ) } spids: [1206] ) ] spids: [1206] ) (command.ControlFlow token: <ControlFlow_Return return> arg_word: {(0)} ) ] spids: [16777215 1200] ) ] spids: [16777215 1222] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:count spids:[1226]) op: PlusEqual rhs: {(1)} spids: [1226] ) ] spids: [1226] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:currToken spids:[1230]) op: Equal rhs: { (DQ (word_part.BracedVarSub token: <VSub_Name nodeArr> bracket_op: (bracket_op.ArrayIndex expr: (arith_expr.ArithWord w:{(Lit_Digits 1)}) ) spids: [1232 1237] ) ) } spids: [1230] ) ] spids: [1230] ) ] spids: [1062 1241] ) ) (C {(stderr)} {(DQ ('Should never get here'))}) (command.ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)}) ] spids: [951] ) spids: [939 950] ) (command.FuncDef name: 'variable::LinkedList::first' 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::LinkedList::first ') (${ VSub_At '@'))}) terminator: <Op_Semi ';'> ) ] spids: [16777215 1293] ) ] spids: [16777215 1306] ) (command.Assignment keyword: Assign_Declare pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:token spids:[1311]) op: Equal rhs: {($ VSub_Number '$1')} spids: [1311] ) ] spids: [1309] ) (C {(variable) (Lit_Other ':') (Lit_Other ':') (type) (Lit_Other ':') (Lit_Other ':') (instanceOfOrExit) } {(DQ (${ VSub_Name token))} {(LinkedList)} ) (C {(variable) (Lit_Other ':') (Lit_Other ':') (LinkedList) (Lit_Other ':') (Lit_Other ':') (index) } {(${ VSub_Name token)} {(0)} ) ] spids: [1275] ) spids: [1263 1274] ) (command.FuncDef name: 'variable::LinkedList::rest' 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::LinkedList::rest ') (${ VSub_At '@'))}) terminator: <Op_Semi ';'> ) ] spids: [16777215 1381] ) ] spids: [16777215 1394] ) (command.Assignment keyword: Assign_Declare pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:token spids:[1399]) op: Equal rhs: {($ VSub_Number '$1')} spids: [1399] ) ] spids: [1397] ) (C {(variable) (Lit_Other ':') (Lit_Other ':') (type) (Lit_Other ':') (Lit_Other ':') (instanceOfOrExit) } {(DQ (${ VSub_Name token))} {(LinkedList)} ) (C {(variable) (Lit_Other ':') (Lit_Other ':') (value)} {(DQ (${ VSub_Name token))}) (command.Assignment keyword: Assign_Declare pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:node spids:[1436]) op: Equal rhs: {(DQ (${ VSub_Name RESULT))} spids: [1436] ) ] spids: [1434] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Lit_Other '[')} {(DQ (${ VSub_Name node))} {(Lit_Other '=') (Lit_Other '=')} {(DQ )} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (C {(stderr)} {(DQ ('Called [rest] on empty list'))}) (command.ControlFlow token: <ControlFlow_Exit exit> arg_word: {(1)} ) ] spids: [16777215 1463] ) ] spids: [16777215 1478] ) (command.Assignment keyword: Assign_Declare flags: [-a] pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:nodeArr spids:[1486]) op: Equal rhs: {(word_part.ArrayLiteralPart words:[{($ VSub_DollarName '$RESULT')}])} spids: [1486] ) ] spids: [1482] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:RESULT spids:[1492]) op: Equal rhs: { (DQ (word_part.BracedVarSub token: <VSub_Name nodeArr> bracket_op: (bracket_op.ArrayIndex expr: (arith_expr.ArithWord w:{(Lit_Digits 1)}) ) spids: [1494 1499] ) ) } spids: [1492] ) ] spids: [1492] ) ] spids: [1363] ) spids: [1351 1362] ) (command.FuncDef name: 'variable::LinkedList::isEmpty_c' 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::LinkedList::isEmpty_c ') (${ VSub_At '@'))}) terminator: <Op_Semi ';'> ) ] spids: [16777215 1544] ) ] spids: [16777215 1557] ) (command.Assignment keyword: Assign_Declare pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:token spids:[1562]) op: Equal rhs: {(DQ (${ VSub_Number 1))} spids: [1562] ) ] spids: [1560] ) (C {(variable) (Lit_Other ':') (Lit_Other ':') (type) (Lit_Other ':') (Lit_Other ':') (instanceOfOrExit) } {(DQ (${ VSub_Name token))} {(LinkedList)} ) (C {(variable) (Lit_Other ':') (Lit_Other ':') (value)} {(DQ (${ VSub_Name token))}) (command.Assignment keyword: Assign_Declare pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:node spids:[1603]) op: Equal rhs: {(DQ (${ VSub_Name RESULT))} spids: [1603] ) ] spids: [1601] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Lit_Other '[')} {(DQ (${ VSub_Name node))} {(Lit_Other '=') (Lit_Other '=')} {(DQ )} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [(command.ControlFlow token:<ControlFlow_Return return> arg_word:{(0)})] spids: [16777215 1630] ) ] else_action: [(command.ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})] spids: [1638 1646] ) ] spids: [1526] ) spids: [1514 1525] ) (command.FuncDef name: 'variable::LinkedList::toSexp' 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::LinkedList::toSexp ') (${ VSub_At '@'))}) terminator: <Op_Semi ';'> ) ] spids: [16777215 1681] ) ] spids: [16777215 1694] ) (command.Assignment keyword: Assign_Declare pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:token spids:[1699]) op: Equal rhs: {(DQ (${ VSub_Number 1))} spids: [1699] ) ] spids: [1697] ) (C {(variable) (Lit_Other ':') (Lit_Other ':') (type) (Lit_Other ':') (Lit_Other ':') (instanceOfOrExit) } {(DQ (${ VSub_Name token))} {(LinkedList)} ) (command.Assignment keyword: Assign_Declare pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:currToken spids:[1728]) op: Equal rhs: {(DQ (${ VSub_Name token))} spids: [1728] ) ] spids: [1726] ) (command.Assignment keyword: Assign_Declare pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:node spids:[1738]) op: Equal spids: [1738] ) ] spids: [1736] ) (command.Assignment keyword: Assign_Declare flags: [-a] pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:nodeArr spids:[1745]) op: Equal spids: [1745] ) ] spids: [1741] ) (command.Assignment keyword: Assign_Declare flags: [-a] pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:output spids:[1752]) op: Equal rhs: {(word_part.ArrayLiteralPart)} spids: [1752] ) ] spids: [1748] ) (command.WhileUntil keyword: <KW_While while> cond: [(command.Sentence child:(C {(true)}) terminator:<Op_Semi ';'>)] body: (command.DoGroup children: [ (C {(variable) (Lit_Other ':') (Lit_Other ':') (value)} {(DQ (${ VSub_Name currToken))} ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:node spids:[1778]) op: Equal rhs: {(DQ (${ VSub_Name RESULT))} spids: [1778] ) ] spids: [1778] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Lit_Other '[')} {(DQ (${ VSub_Name node))} {(Lit_Other '=') (Lit_Other '=')} {(DQ )} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.BoolBinary op_id: BoolBinary_GlobDEqual left: { (word_part.BracedVarSub token: <VSub_Name output> prefix_op: VSub_Pound bracket_op: (bracket_op.WholeArray op_id:Lit_At) spids: [1813 1819] ) } right: {(0)} ) ) terminator: <Op_Semi ';'> ) ] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:RESULT spids:[1831]) op: Equal rhs: {(DQ ('()'))} spids: [1831] ) ] spids: [1831] ) ] spids: [16777215 1828] ) ] else_action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:RESULT spids:[1840]) op: Equal rhs: { (DQ ('(') (word_part.BracedVarSub token: <VSub_Name output> bracket_op: (bracket_op.WholeArray op_id:Lit_At) spids: [1843 1848] ) (')') ) } spids: [1840] ) ] spids: [1840] ) ] spids: [1837 1853] ) (command.ControlFlow token: <ControlFlow_Return return> arg_word: {(0)} ) ] spids: [16777215 1805] ) ] spids: [16777215 1861] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:nodeArr spids:[1864]) op: Equal rhs: {(word_part.ArrayLiteralPart words:[{($ VSub_DollarName '$node')}])} spids: [1864] ) ] spids: [1864] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Lit_Other '[')} { (DQ (word_part.BracedVarSub token: <VSub_Name nodeArr> prefix_op: VSub_Pound bracket_op: (bracket_op.WholeArray op_id:Lit_At) spids: [1875 1881] ) ) } {(-ne)} {(2)} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (C {(stderr)} { (DQ ('Encountered node with single element at [') (${ VSub_Name currToken) (']=[') (word_part.BracedVarSub token: <VSub_Name nodeArr> bracket_op: (bracket_op.WholeArray op_id:Lit_At) spids: [1902 1907] ) (']') ) } ) (command.ControlFlow token: <ControlFlow_Exit exit> arg_word: {(1)} ) ] spids: [16777215 1891] ) ] spids: [16777215 1917] ) (C {(variable) (Lit_Other ':') (Lit_Other ':') (toSexp)} { (word_part.BracedVarSub token: <VSub_Name nodeArr> bracket_op: (bracket_op.ArrayIndex expr: (arith_expr.ArithWord w:{(Lit_Digits 0)}) ) spids: [1925 1930] ) } ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:output spids:[1933]) op: PlusEqual rhs: {(word_part.ArrayLiteralPart words:[{(DQ (${ VSub_Name RESULT))}])} spids: [1933] ) ] spids: [1933] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:currToken spids:[1943]) op: Equal rhs: { (DQ (word_part.BracedVarSub token: <VSub_Name nodeArr> bracket_op: (bracket_op.ArrayIndex expr: (arith_expr.ArithWord w:{(Lit_Digits 1)}) ) spids: [1945 1950] ) ) } spids: [1943] ) ] spids: [1943] ) ] spids: [1763 1954] ) ) (command.Sentence child: (C {(stderr)} {(DQ ('should never get here'))}) terminator: <Op_Semi ';'> ) (command.ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)}) ] spids: [1663] ) spids: [1651 1662] ) (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>)] spids: [16777215 1991] ) ] spids: [16777215 1996] ) (command.CommandList children: [ (command.Sentence child: (C {(variable) (Lit_Other ':') (Lit_Other ':') (new)} {(String)} {(DQ (A))}) terminator: <Op_Semi ';'> ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:var_A spids:[2031]) op: Equal rhs: {(DQ (${ VSub_Name RESULT))} spids: [2031] ) ] spids: [2031] ) ] ) (command.CommandList children: [ (command.Sentence child: (C {(variable) (Lit_Other ':') (Lit_Other ':') (new)} {(String)} {(DQ (B))}) terminator: <Op_Semi ';'> ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:var_B spids:[2051]) op: Equal rhs: {(DQ (${ VSub_Name RESULT))} spids: [2051] ) ] spids: [2051] ) ] ) (command.CommandList children: [ (command.Sentence child: (C {(variable) (Lit_Other ':') (Lit_Other ':') (new)} {(String)} {(DQ (C))}) terminator: <Op_Semi ';'> ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:var_C spids:[2071]) op: Equal rhs: {(DQ (${ VSub_Name RESULT))} spids: [2071] ) ] spids: [2071] ) ] ) (command.CommandList children: [ (command.Sentence child: (C {(variable) (Lit_Other ':') (Lit_Other ':') (new)} {(String)} {(DQ (D))}) terminator: <Op_Semi ';'> ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:var_D spids:[2091]) op: Equal rhs: {(DQ (${ VSub_Name RESULT))} spids: [2091] ) ] spids: [2091] ) ] ) (command.CommandList children: [ (command.Sentence child: (C {(variable) (Lit_Other ':') (Lit_Other ':') (LinkedList) (Lit_Other ':') (Lit_Other ':') (new) } ) terminator: <Op_Semi ';'> ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:vCode spids:[2115]) op: Equal rhs: {(${ VSub_Name RESULT)} spids: [2115] ) ] spids: [2115] ) ] ) (command.CommandList children: [ (command.Sentence child: (C {(variable) (Lit_Other ':') (Lit_Other ':') (LinkedList) (Lit_Other ':') (Lit_Other ':') (length) } {($ VSub_DollarName '$vCode')} ) terminator: <Op_Semi ';'> ) (C {(assert) (Lit_Other ':') (Lit_Other ':') (equals)} {(0)} {(DQ (${ VSub_Name RESULT))} {(DQ ('length empty list'))} ) ] ) (command.CommandList children: [ (command.Sentence child: (C {(variable) (Lit_Other ':') (Lit_Other ':') (LinkedList) (Lit_Other ':') (Lit_Other ':') (prepend) } {(${ VSub_Name vCode)} {(${ VSub_Name var_A)} ) terminator: <Op_Semi ';'> ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:vCode_1 spids:[2170]) op: Equal rhs: {(DQ (${ VSub_Name RESULT))} spids: [2170] ) ] spids: [2170] ) ] ) (command.CommandList children: [ (command.Sentence child: (C {(variable) (Lit_Other ':') (Lit_Other ':') (LinkedList) (Lit_Other ':') (Lit_Other ':') (length) } {(${ VSub_Name vCode_1)} ) terminator: <Op_Semi ';'> ) (C {(assert) (Lit_Other ':') (Lit_Other ':') (equals)} {(1)} {(DQ (${ VSub_Name RESULT))} {(DQ ('length after adding 1'))} ) ] ) (command.CommandList children: [ (command.Sentence child: (C {(variable) (Lit_Other ':') (Lit_Other ':') (LinkedList) (Lit_Other ':') (Lit_Other ':') (length) } {(${ VSub_Name vCode)} ) terminator: <Op_Semi ';'> ) (C {(assert) (Lit_Other ':') (Lit_Other ':') (equals)} {(0)} {(DQ (${ VSub_Name RESULT))} {(DQ ('length after adding 1 - original list'))} ) ] ) (command.CommandList children: [ (command.Sentence child: (C {(variable) (Lit_Other ':') (Lit_Other ':') (LinkedList) (Lit_Other ':') (Lit_Other ':') (prepend) } {(${ VSub_Name vCode_1)} {(${ VSub_Name var_B)} ) terminator: <Op_Semi ';'> ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:vCode_2 spids:[2262]) op: Equal rhs: {(DQ (${ VSub_Name RESULT))} spids: [2262] ) ] spids: [2262] ) ] ) (command.CommandList children: [ (command.Sentence child: (C {(variable) (Lit_Other ':') (Lit_Other ':') (LinkedList) (Lit_Other ':') (Lit_Other ':') (length) } {(${ VSub_Name vCode_2)} ) terminator: <Op_Semi ';'> ) (C {(assert) (Lit_Other ':') (Lit_Other ':') (equals)} {(2)} {(DQ (${ VSub_Name RESULT))} {(DQ ('length after adding 2'))} ) ] ) (command.CommandList children: [ (command.Sentence child: (C {(variable) (Lit_Other ':') (Lit_Other ':') (LinkedList) (Lit_Other ':') (Lit_Other ':') (length) } {(${ VSub_Name vCode_1)} ) terminator: <Op_Semi ';'> ) (C {(assert) (Lit_Other ':') (Lit_Other ':') (equals)} {(1)} {(DQ (${ VSub_Name RESULT))} {(DQ ('length after adding 2 - middle list'))} ) ] ) (command.CommandList children: [ (command.Sentence child: (C {(variable) (Lit_Other ':') (Lit_Other ':') (LinkedList) (Lit_Other ':') (Lit_Other ':') (length) } {(${ VSub_Name vCode)} ) terminator: <Op_Semi ';'> ) (C {(assert) (Lit_Other ':') (Lit_Other ':') (equals)} {(0)} {(DQ (${ VSub_Name RESULT))} {(DQ ('length after adding 1 - original list'))} ) ] ) (command.CommandList children: [ (command.Sentence child: (C {(variable) (Lit_Other ':') (Lit_Other ':') (LinkedList) (Lit_Other ':') (Lit_Other ':') (new) } ) terminator: <Op_Semi ';'> ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:vCode spids:[2383]) op: Equal rhs: {(${ VSub_Name RESULT)} spids: [2383] ) ] spids: [2383] ) ] ) (command.CommandList children: [ (command.Sentence child: (C {(variable) (Lit_Other ':') (Lit_Other ':') (LinkedList) (Lit_Other ':') (Lit_Other ':') (prepend) } {(${ VSub_Name vCode)} {(${ VSub_Name var_A)} ) terminator: <Op_Semi ';'> ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:vCode spids:[2406]) op: Equal rhs: {(DQ (${ VSub_Name RESULT))} spids: [2406] ) ] spids: [2406] ) ] ) (command.CommandList children: [ (command.Sentence child: (C {(variable) (Lit_Other ':') (Lit_Other ':') (LinkedList) (Lit_Other ':') (Lit_Other ':') (prepend) } {(${ VSub_Name vCode)} {(${ VSub_Name var_B)} ) terminator: <Op_Semi ';'> ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:vCode spids:[2431]) op: Equal rhs: {(DQ (${ VSub_Name RESULT))} spids: [2431] ) ] spids: [2431] ) ] ) (command.CommandList children: [ (command.Sentence child: (C {(variable) (Lit_Other ':') (Lit_Other ':') (LinkedList) (Lit_Other ':') (Lit_Other ':') (length) } {($ VSub_DollarName '$vCode')} ) terminator: <Op_Semi ';'> ) (C {(assert) (Lit_Other ':') (Lit_Other ':') (equals)} {(2)} {(DQ (${ VSub_Name RESULT))} {(DQ ('prepend length 2'))} ) ] ) (command.CommandList children: [ (command.Sentence child: (C {(variable) (Lit_Other ':') (Lit_Other ':') (LinkedList) (Lit_Other ':') (Lit_Other ':') (index) } {($ VSub_DollarName '$vCode')} {(0)} ) terminator: <Op_Semi ';'> ) (command.Sentence child: (C {(variable) (Lit_Other ':') (Lit_Other ':') (value)} {(DQ (${ VSub_Name RESULT))}) terminator: <Op_Semi ';'> ) (C {(assert) (Lit_Other ':') (Lit_Other ':') (equals)} {(DQ (B))} {(DQ (${ VSub_Name RESULT))} {(DQ ('first item of prepend list'))} ) ] ) (command.CommandList children: [ (command.Sentence child: (C {(variable) (Lit_Other ':') (Lit_Other ':') (LinkedList) (Lit_Other ':') (Lit_Other ':') (index) } {($ VSub_DollarName '$vCode')} {(1)} ) terminator: <Op_Semi ';'> ) (command.Sentence child: (C {(variable) (Lit_Other ':') (Lit_Other ':') (value)} {(DQ (${ VSub_Name RESULT))}) terminator: <Op_Semi ';'> ) (C {(assert) (Lit_Other ':') (Lit_Other ':') (equals)} {(DQ (A))} {(DQ (${ VSub_Name RESULT))} {(DQ ('second item of prepend list'))} ) ] ) (command.CommandList children: [ (command.Sentence child: (C {(variable) (Lit_Other ':') (Lit_Other ':') (LinkedList) (Lit_Other ':') (Lit_Other ':') (new) } ) terminator: <Op_Semi ';'> ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:vCode spids:[2583]) op: Equal rhs: {(${ VSub_Name RESULT)} spids: [2583] ) ] spids: [2583] ) ] ) (C {(variable) (Lit_Other ':') (Lit_Other ':') (LinkedList) (Lit_Other ':') (Lit_Other ':') (append)} {(${ VSub_Name vCode)} {(${ VSub_Name var_A)} ) (C {(variable) (Lit_Other ':') (Lit_Other ':') (LinkedList) (Lit_Other ':') (Lit_Other ':') (append)} {(${ VSub_Name vCode)} {(${ VSub_Name var_B)} ) (command.CommandList children: [ (command.Sentence child: (C {(variable) (Lit_Other ':') (Lit_Other ':') (LinkedList) (Lit_Other ':') (Lit_Other ':') (length) } {($ VSub_DollarName '$vCode')} ) terminator: <Op_Semi ';'> ) (C {(assert) (Lit_Other ':') (Lit_Other ':') (equals)} {(2)} {(DQ (${ VSub_Name RESULT))} {(DQ ('append length 2'))} ) ] ) (command.CommandList children: [ (command.Sentence child: (C {(variable) (Lit_Other ':') (Lit_Other ':') (LinkedList) (Lit_Other ':') (Lit_Other ':') (index) } {($ VSub_DollarName '$vCode')} {(0)} ) terminator: <Op_Semi ';'> ) (command.Sentence child: (C {(variable) (Lit_Other ':') (Lit_Other ':') (value)} {(DQ (${ VSub_Name RESULT))}) terminator: <Op_Semi ';'> ) (C {(assert) (Lit_Other ':') (Lit_Other ':') (equals)} {(DQ (A))} {(DQ (${ VSub_Name RESULT))} {(DQ ('first item of append list'))} ) ] ) (command.CommandList children: [ (command.Sentence child: (C {(variable) (Lit_Other ':') (Lit_Other ':') (LinkedList) (Lit_Other ':') (Lit_Other ':') (index) } {($ VSub_DollarName '$vCode')} {(1)} ) terminator: <Op_Semi ';'> ) (command.Sentence child: (C {(variable) (Lit_Other ':') (Lit_Other ':') (value)} {(DQ (${ VSub_Name RESULT))}) terminator: <Op_Semi ';'> ) (C {(assert) (Lit_Other ':') (Lit_Other ':') (equals)} {(DQ (B))} {(DQ (${ VSub_Name RESULT))} {(DQ ('second item of append list'))} ) ] ) (command.CommandList children: [ (command.Sentence child: (C {(variable) (Lit_Other ':') (Lit_Other ':') (LinkedList) (Lit_Other ':') (Lit_Other ':') (new) } ) terminator: <Op_Semi ';'> ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:vCode spids:[2765]) op: Equal rhs: {(${ VSub_Name RESULT)} spids: [2765] ) ] spids: [2765] ) ] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:ignore spids:[2770]) op: Equal rhs: { (word_part.CommandSubPart command_list: (command.CommandList children: [ (C {(variable) (Lit_Other ':') (Lit_Other ':') (LinkedList) (Lit_Other ':') (Lit_Other ':') (index) } {($ VSub_DollarName '$vCode')} {(0)} ) ] ) left_token: <Left_CommandSub '$('> spids: [2771 2783] ) } spids: [2770] ) ] spids: [2770] ) (C {(assert) (Lit_Other ':') (Lit_Other ':') (equals)} {(1)} {($ VSub_QMark '$?')} {(DQ ('exit code length of empty list'))} ) (command.CommandList children: [ (command.Sentence child: (C {(variable) (Lit_Other ':') (Lit_Other ':') (LinkedList) (Lit_Other ':') (Lit_Other ':') (new) } ) terminator: <Op_Semi ';'> ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:vCode spids:[2812]) op: Equal rhs: {(${ VSub_Name RESULT)} spids: [2812] ) ] spids: [2812] ) ] ) (command.CommandList children: [ (command.Sentence child: (C {(variable) (Lit_Other ':') (Lit_Other ':') (type)} {($ VSub_DollarName '$vCode')}) terminator: <Op_Semi ';'> ) (C {(assert) (Lit_Other ':') (Lit_Other ':') (equals)} {(LinkedList)} {(DQ ($ VSub_DollarName '$RESULT'))} {(DQ ('List type'))} ) ] ) (command.CommandList children: [ (command.Sentence child: (C {(variable) (Lit_Other ':') (Lit_Other ':') (type) (Lit_Other ':') (Lit_Other ':') (instanceOf) } {($ VSub_DollarName '$vCode')} {(LinkedList)} ) terminator: <Op_Semi ';'> ) (C {(assert) (Lit_Other ':') (Lit_Other ':') (equals)} {(0)} {($ VSub_QMark '$?')} {(DQ (instanceOf))} ) ] ) (command.CommandList children: [ (command.Sentence child: (C {(variable) (Lit_Other ':') (Lit_Other ':') (LinkedList) (Lit_Other ':') (Lit_Other ':') (new) } ) terminator: <Op_Semi ';'> ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:vCode spids:[2886]) op: Equal rhs: {(${ VSub_Name RESULT)} spids: [2886] ) ] spids: [2886] ) ] ) (C {(variable) (Lit_Other ':') (Lit_Other ':') (LinkedList) (Lit_Other ':') (Lit_Other ':') (isEmpty_c) } {(${ VSub_Name vCode)} ) (C {(assert) (Lit_Other ':') (Lit_Other ':') (equals)} {(0)} {($ VSub_QMark '$?')} {(DQ ('Return code true (0)'))} ) (C {(variable) (Lit_Other ':') (Lit_Other ':') (LinkedList) (Lit_Other ':') (Lit_Other ':') (append)} {(${ VSub_Name vCode)} {(${ VSub_Name var_A)} ) (C {(variable) (Lit_Other ':') (Lit_Other ':') (LinkedList) (Lit_Other ':') (Lit_Other ':') (isEmpty_c) } {(${ VSub_Name vCode)} ) (C {(assert) (Lit_Other ':') (Lit_Other ':') (equals)} {(1)} {($ VSub_QMark '$?')} {(DQ ('Return code false (1)'))} ) (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)}) spids: [2969 2973] ) } {(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)})] spids: [16777215 2995] ) ] spids: [16777215 3004] ) ] )