(command.CommandList children: [ (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} { (braced_var_sub token: <Id.VSub_Name VARIABLES_LINKEDLIST_SH> suffix_op: (suffix_op.Unary op_id:Id.VTest_Plus arg_word:{<true>}) ) } {<Id.Lit_RBracket ']'>} ) (command.ControlFlow token:<Id.ControlFlow_Return return>) ] ) (C {<declare>} {<-g>} {<Id.Lit_VarLike 'VARIABLES_LINKEDLIST_SH='> <true>}) (C {<.>} { (braced_var_sub token: <Id.VSub_Name BASH_SOURCE> suffix_op: (suffix_op.Unary op_id:Id.VOp1_Percent arg_word:{<Id.Lit_Slash /> <'*'>}) ) </common.sh> } ) (C {<.>} { (braced_var_sub token: <Id.VSub_Name BASH_SOURCE> suffix_op: (suffix_op.Unary op_id:Id.VOp1_Percent arg_word:{<Id.Lit_Slash /> <'*'>}) ) </logger.sh> } ) (C {<.>} { (braced_var_sub token: <Id.VSub_Name BASH_SOURCE> suffix_op: (suffix_op.Unary op_id:Id.VOp1_Percent arg_word:{<Id.Lit_Slash /> <'*'>}) ) </variables.sh> } ) (C {<.>} { (braced_var_sub token: <Id.VSub_Name BASH_SOURCE> suffix_op: (suffix_op.Unary op_id:Id.VOp1_Percent arg_word:{<Id.Lit_Slash /> <'*'>}) ) </variables.atom.sh> } ) (C {<variable> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <type> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <define> } {<LinkedList>} ) (command.ShFunction name: 'variable::LinkedList::new' body: (command.BraceGroup children: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {(${ Id.VSub_Name VARIABLES_DEBUG)} right: {<1>} ) ) terminator: <Id.Op_Semi _> ) ] action: [ (command.Sentence child: (C {<stderr>} {(DQ <'variable::LinkedList::new '> (${ Id.VSub_At '@'))}) terminator: <Id.Op_Semi _> ) ] spids: [157 172] ) ] ) (C {<variable> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <new>} {<LinkedList>} {(DQ (${ Id.VSub_At '@'))} ) ] ) ) (command.ShFunction name: 'variable::LinkedList::append' body: (command.BraceGroup children: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {(${ Id.VSub_Name VARIABLES_DEBUG)} right: {<1>} ) ) terminator: <Id.Op_Semi _> ) ] action: [ (command.Sentence child: (C {<stderr>} {(DQ <'variable::LinkedList::append '> (${ Id.VSub_At '@'))}) terminator: <Id.Op_Semi _> ) ] spids: [234 249] ) ] ) (C {<declare>} {<Id.Lit_VarLike 'list_token='> ($ Id.VSub_Number '$1')}) (C {<declare>} {<Id.Lit_VarLike 'value_token='> ($ Id.VSub_Number '$2')}) (C {<variable> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <type> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <instanceOfOrExit> } {(DQ (${ Id.VSub_Name list_token))} {<LinkedList>} ) (C {<declare>} {<Id.Lit_VarLike 'currToken='> (DQ (${ Id.VSub_Name list_token))}) (C {<declare>} {<node>}) (C {<declare>} {<-a>} {<nodeArr>}) (command.WhileUntil keyword: <Id.KW_While while> cond: [(command.Sentence child:(C {<true>}) terminator:<Id.Op_Semi _>)] body: (command.DoGroup children: [ (C {<variable> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <value>} {(DQ (${ Id.VSub_Name currToken))} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:node) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name RESULT))} spids: [339] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ (${ Id.VSub_Name node))} {<Id.Lit_Equals '='> <Id.Lit_Equals '='>} {(DQ )} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] action: [ (C {<variable> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <LinkedList> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <new> } ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:nodeArr) op: assign_op.Equal rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ (${ Id.VSub_Name value_token))} {(DQ (${ Id.VSub_Name RESULT))} ] ) } spids: [381] ) ] ) (C {<variable> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <Id.KW_Set set>} {(DQ (${ Id.VSub_Name currToken))} {<LinkedList>} { (DQ (braced_var_sub token: <Id.VSub_Name nodeArr> bracket_op: (bracket_op.WholeArray op_id:Id.Arith_Star) ) ) } ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:RESULT) op: assign_op.Equal rhs: {(DQ )} spids: [420] ) ] ) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<0>} ) ] spids: [347 366] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:nodeArr) op: assign_op.Equal rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [{($ Id.VSub_DollarName '$node')}] ) } spids: [433] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} { (DQ (braced_var_sub token: <Id.VSub_Name nodeArr> prefix_op: (Id.VSub_Pound) bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) ) ) } {<-ne>} {<2>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] action: [ (C {<stderr>} { (DQ <'Encountered node with single element at ['> (${ Id.VSub_Name currToken) <']=['> (braced_var_sub token: <Id.VSub_Name nodeArr> bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) ) <']'> ) } ) (command.ControlFlow token: <Id.ControlFlow_Exit exit> arg_word: {<1>} ) ] spids: [439 460] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:currToken) op: assign_op.Equal rhs: { (DQ (braced_var_sub token: <Id.VSub_Name nodeArr> bracket_op: (bracket_op.ArrayIndex expr: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>}) ) ) ) } spids: [489] ) ] ) ] ) ) (C {<stderr>} {(DQ <'Should never get here'>)}) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>}) ] ) ) (command.ShFunction name: 'variable::LinkedList::prepend' body: (command.BraceGroup children: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {(${ Id.VSub_Name VARIABLES_DEBUG)} right: {<1>} ) ) terminator: <Id.Op_Semi _> ) ] action: [ (command.Sentence child: (C {<stderr>} {(DQ <'variable::LinkedList::prepend '> (${ Id.VSub_At '@'))}) terminator: <Id.Op_Semi _> ) ] spids: [548 563] ) ] ) (C {<declare>} {<Id.Lit_VarLike 'list_token='> ($ Id.VSub_Number '$1')}) (C {<declare>} {<Id.Lit_VarLike 'value_token='> ($ Id.VSub_Number '$2')}) (C {<variable> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <type> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <instanceOfOrExit> } {(DQ (${ Id.VSub_Name list_token))} {<LinkedList>} ) (C {<variable> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <value>} {(DQ (${ Id.VSub_Name list_token))} ) (C {<declare>} {<-a>} {<Id.Lit_VarLike 'node='> (sh_array_literal left: <Id.Op_LParen _> words: [{(${ Id.VSub_Name RESULT)}] ) } ) (C {<declare>} {<-a>} {<Id.Lit_VarLike 'node='> (sh_array_literal left: <Id.Op_LParen _> words: [{(DQ (${ Id.VSub_Name value_token))} {(DQ (${ Id.VSub_Name list_token))}] ) } ) (C {<variable> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <LinkedList> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <new> } {(DQ (braced_var_sub token:<Id.VSub_Name node> bracket_op:(bracket_op.WholeArray op_id:Id.Arith_Star)))} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:RESULT) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name RESULT))} spids: [673] ) ] ) ] ) ) (command.ShFunction name: 'variable::LinkedList::length' body: (command.BraceGroup children: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {(${ Id.VSub_Name VARIABLES_DEBUG)} right: {<1>} ) ) terminator: <Id.Op_Semi _> ) ] action: [ (command.Sentence child: (C {<stderr>} {(DQ <'variable::LinkedList::length '> (${ Id.VSub_At '@'))}) terminator: <Id.Op_Semi _> ) ] spids: [698 713] ) ] ) (C {<declare>} {<Id.Lit_VarLike 'list_token='> ($ Id.VSub_Number '$1')}) (C {<variable> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <type> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <instanceOfOrExit> } {(DQ (${ Id.VSub_Name list_token))} {<LinkedList>} ) (C {<declare>} {<Id.Lit_VarLike 'currToken='> (DQ (${ Id.VSub_Name list_token))}) (C {<declare>} {<node>}) (C {<declare>} {<-a>} {<nodeArr>}) (C {<declare>} {<-i>} {<Id.Lit_VarLike 'count='> <0>}) (command.WhileUntil keyword: <Id.KW_While while> cond: [(command.Sentence child:(C {<true>}) terminator:<Id.Op_Semi _>)] body: (command.DoGroup children: [ (C {<variable> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <value>} {(DQ (${ Id.VSub_Name currToken))} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:node) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name RESULT))} spids: [805] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ (${ Id.VSub_Name node))} {<Id.Lit_Equals '='> <Id.Lit_Equals '='>} {(DQ )} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:RESULT) op: assign_op.Equal rhs: {(${ Id.VSub_Name count)} spids: [836] ) ] ) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<0>} ) ] spids: [813 832] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:nodeArr) op: assign_op.Equal rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [{($ Id.VSub_DollarName '$node')}] ) } spids: [850] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} { (DQ (braced_var_sub token: <Id.VSub_Name nodeArr> prefix_op: (Id.VSub_Pound) bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) ) ) } {<-ne>} {<2>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] action: [ (C {<stderr>} { (DQ <'Encountered node with single element at ['> (${ Id.VSub_Name currToken) <']=['> (braced_var_sub token: <Id.VSub_Name nodeArr> bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) ) <']'> ) } ) (command.ControlFlow token: <Id.ControlFlow_Exit exit> arg_word: {<1>} ) ] spids: [856 877] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:count) op: assign_op.PlusEqual rhs: {<1>} spids: [906] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:currToken) op: assign_op.Equal rhs: { (DQ (braced_var_sub token: <Id.VSub_Name nodeArr> bracket_op: (bracket_op.ArrayIndex expr: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>}) ) ) ) } spids: [910] ) ] ) ] ) ) (C {<stderr>} {(DQ <'Should never get here'>)}) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>}) ] ) ) (command.ShFunction name: 'variable::LinkedList::index' body: (command.BraceGroup children: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {(${ Id.VSub_Name VARIABLES_DEBUG)} right: {<1>} ) ) terminator: <Id.Op_Semi _> ) ] action: [ (command.Sentence child: (C {<stderr>} {(DQ <'variables_list::index '> (${ Id.VSub_At '@'))}) terminator: <Id.Op_Semi _> ) ] spids: [954 969] ) ] ) (C {<declare>} {<Id.Lit_VarLike 'token='> (DQ (${ Id.VSub_Number 1))}) (C {<declare>} {<-i>} {<Id.Lit_VarLike 'index='> (DQ (${ Id.VSub_Number 2))}) (C {<variable> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <type> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <instanceOfOrExit> } {(DQ (${ Id.VSub_Name token))} {<LinkedList>} ) (C {<declare>} {<Id.Lit_VarLike 'currToken='> (DQ (${ Id.VSub_Name token))}) (C {<declare>} {<node>}) (C {<declare>} {<-a>} {<nodeArr>}) (C {<declare>} {<-i>} {<Id.Lit_VarLike 'count='> <0>}) (command.WhileUntil keyword: <Id.KW_While while> cond: [(command.Sentence child:(C {<true>}) terminator:<Id.Op_Semi _>)] body: (command.DoGroup children: [ (C {<variable> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <value>} {(DQ (${ Id.VSub_Name currToken))} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:node) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name RESULT))} spids: [1077] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ (${ Id.VSub_Name node))} {<Id.Lit_Equals '='> <Id.Lit_Equals '='>} {(DQ )} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] action: [ (C {<stderr>} { (DQ <'Invalid index ['> (${ Id.VSub_Name index) <'] for list of length ['> (${ Id.VSub_Name count) <']'> ) } ) (command.ControlFlow token: <Id.ControlFlow_Exit exit> arg_word: {<1>} ) ] spids: [1085 1104] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:nodeArr) op: assign_op.Equal rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [{($ Id.VSub_DollarName '$node')}] ) } spids: [1131] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} { (DQ (braced_var_sub token: <Id.VSub_Name nodeArr> prefix_op: (Id.VSub_Pound) bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) ) ) } {<-ne>} {<2>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] action: [ (C {<stderr>} { (DQ <'Encountered node with single element at ['> (${ Id.VSub_Name currToken) <']=['> (braced_var_sub token: <Id.VSub_Name nodeArr> bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) ) <']'> ) } ) (command.ControlFlow token: <Id.ControlFlow_Exit exit> arg_word: {<1>} ) ] spids: [1137 1158] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {($ Id.VSub_DollarName '$count')} {<-eq>} {($ Id.VSub_DollarName '$index')} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:RESULT) op: assign_op.Equal rhs: { (DQ (braced_var_sub token: <Id.VSub_Name nodeArr> bracket_op: (bracket_op.ArrayIndex expr: (arith_expr.ArithWord w:{<Id.Lit_Digits 0>}) ) ) ) } spids: [1206] ) ] ) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<0>} ) ] spids: [1187 1200] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:count) op: assign_op.PlusEqual rhs: {<1>} spids: [1226] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:currToken) op: assign_op.Equal rhs: { (DQ (braced_var_sub token: <Id.VSub_Name nodeArr> bracket_op: (bracket_op.ArrayIndex expr: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>}) ) ) ) } spids: [1230] ) ] ) ] ) ) (C {<stderr>} {(DQ <'Should never get here'>)}) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>}) ] ) ) (command.ShFunction name: 'variable::LinkedList::first' body: (command.BraceGroup children: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {(${ Id.VSub_Name VARIABLES_DEBUG)} right: {<1>} ) ) terminator: <Id.Op_Semi _> ) ] action: [ (command.Sentence child: (C {<stderr>} {(DQ <'variable::LinkedList::first '> (${ Id.VSub_At '@'))}) terminator: <Id.Op_Semi _> ) ] spids: [1278 1293] ) ] ) (C {<declare>} {<Id.Lit_VarLike 'token='> ($ Id.VSub_Number '$1')}) (C {<variable> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <type> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <instanceOfOrExit> } {(DQ (${ Id.VSub_Name token))} {<LinkedList>} ) (C {<variable> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <LinkedList> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <index> } {(${ Id.VSub_Name token)} {<0>} ) ] ) ) (command.ShFunction name: 'variable::LinkedList::rest' body: (command.BraceGroup children: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {(${ Id.VSub_Name VARIABLES_DEBUG)} right: {<1>} ) ) terminator: <Id.Op_Semi _> ) ] action: [ (command.Sentence child: (C {<stderr>} {(DQ <'variable::LinkedList::rest '> (${ Id.VSub_At '@'))}) terminator: <Id.Op_Semi _> ) ] spids: [1366 1381] ) ] ) (C {<declare>} {<Id.Lit_VarLike 'token='> ($ Id.VSub_Number '$1')}) (C {<variable> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <type> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <instanceOfOrExit> } {(DQ (${ Id.VSub_Name token))} {<LinkedList>} ) (C {<variable> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <value>} {(DQ (${ Id.VSub_Name token))}) (C {<declare>} {<Id.Lit_VarLike 'node='> (DQ (${ Id.VSub_Name RESULT))}) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ (${ Id.VSub_Name node))} {<Id.Lit_Equals '='> <Id.Lit_Equals '='>} {(DQ )} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] action: [ (C {<stderr>} {(DQ <'Called [rest] on empty list'>)}) (command.ControlFlow token: <Id.ControlFlow_Exit exit> arg_word: {<1>} ) ] spids: [1444 1463] ) ] ) (C {<declare>} {<-a>} {<Id.Lit_VarLike 'nodeArr='> (sh_array_literal left: <Id.Op_LParen _> words: [{($ Id.VSub_DollarName '$RESULT')}] ) } ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:RESULT) op: assign_op.Equal rhs: { (DQ (braced_var_sub token: <Id.VSub_Name nodeArr> bracket_op: (bracket_op.ArrayIndex expr: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>}) ) ) ) } spids: [1492] ) ] ) ] ) ) (command.ShFunction name: 'variable::LinkedList::isEmpty_c' body: (command.BraceGroup children: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {(${ Id.VSub_Name VARIABLES_DEBUG)} right: {<1>} ) ) terminator: <Id.Op_Semi _> ) ] action: [ (command.Sentence child: (C {<stderr>} {(DQ <'variable::LinkedList::isEmpty_c '> (${ Id.VSub_At '@'))}) terminator: <Id.Op_Semi _> ) ] spids: [1529 1544] ) ] ) (C {<declare>} {<Id.Lit_VarLike 'token='> (DQ (${ Id.VSub_Number 1))}) (C {<variable> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <type> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <instanceOfOrExit> } {(DQ (${ Id.VSub_Name token))} {<LinkedList>} ) (C {<variable> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <value>} {(DQ (${ Id.VSub_Name token))}) (C {<declare>} {<Id.Lit_VarLike 'node='> (DQ (${ Id.VSub_Name RESULT))}) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ (${ Id.VSub_Name node))} {<Id.Lit_Equals '='> <Id.Lit_Equals '='>} {(DQ )} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] action: [(command.ControlFlow token:<Id.ControlFlow_Return return> arg_word:{<0>})] spids: [1611 1630] ) ] else_action: [(command.ControlFlow token:<Id.ControlFlow_Return return> arg_word:{<1>})] ) ] ) ) (command.ShFunction name: 'variable::LinkedList::toSexp' body: (command.BraceGroup children: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {(${ Id.VSub_Name VARIABLES_DEBUG)} right: {<1>} ) ) terminator: <Id.Op_Semi _> ) ] action: [ (command.Sentence child: (C {<stderr>} {(DQ <'variable::LinkedList::toSexp '> (${ Id.VSub_At '@'))}) terminator: <Id.Op_Semi _> ) ] spids: [1666 1681] ) ] ) (C {<declare>} {<Id.Lit_VarLike 'token='> (DQ (${ Id.VSub_Number 1))}) (C {<variable> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <type> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <instanceOfOrExit> } {(DQ (${ Id.VSub_Name token))} {<LinkedList>} ) (C {<declare>} {<Id.Lit_VarLike 'currToken='> (DQ (${ Id.VSub_Name token))}) (C {<declare>} {<node>}) (C {<declare>} {<-a>} {<nodeArr>}) (C {<declare>} {<-a>} {<Id.Lit_VarLike 'output='> (sh_array_literal left:<Id.Op_LParen _>)}) (command.WhileUntil keyword: <Id.KW_While while> cond: [(command.Sentence child:(C {<true>}) terminator:<Id.Op_Semi _>)] body: (command.DoGroup children: [ (C {<variable> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <value>} {(DQ (${ Id.VSub_Name currToken))} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:node) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name RESULT))} spids: [1778] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ (${ Id.VSub_Name node))} {<Id.Lit_Equals '='> <Id.Lit_Equals '='>} {(DQ )} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] action: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: { (braced_var_sub token: <Id.VSub_Name output> prefix_op: (Id.VSub_Pound) bracket_op: (bracket_op.WholeArray op_id: Id.Lit_At ) ) } right: {<0>} ) ) terminator: <Id.Op_Semi _> ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:RESULT) op: assign_op.Equal rhs: {(DQ <'()'>)} spids: [1831] ) ] ) ] spids: [1809 1828] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:RESULT) op: assign_op.Equal rhs: { (DQ <'('> (braced_var_sub token: <Id.VSub_Name output> bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) ) <')'> ) } spids: [1840] ) ] ) ] ) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<0>} ) ] spids: [1786 1805] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:nodeArr) op: assign_op.Equal rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [{($ Id.VSub_DollarName '$node')}] ) } spids: [1864] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} { (DQ (braced_var_sub token: <Id.VSub_Name nodeArr> prefix_op: (Id.VSub_Pound) bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) ) ) } {<-ne>} {<2>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] action: [ (C {<stderr>} { (DQ <'Encountered node with single element at ['> (${ Id.VSub_Name currToken) <']=['> (braced_var_sub token: <Id.VSub_Name nodeArr> bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) ) <']'> ) } ) (command.ControlFlow token: <Id.ControlFlow_Exit exit> arg_word: {<1>} ) ] spids: [1870 1891] ) ] ) (C {<variable> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <toSexp>} { (braced_var_sub token: <Id.VSub_Name nodeArr> bracket_op: (bracket_op.ArrayIndex expr: (arith_expr.ArithWord w:{<Id.Lit_Digits 0>}) ) ) } ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:output) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [{(DQ (${ Id.VSub_Name RESULT))}] ) } spids: [1933] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:currToken) op: assign_op.Equal rhs: { (DQ (braced_var_sub token: <Id.VSub_Name nodeArr> bracket_op: (bracket_op.ArrayIndex expr: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>}) ) ) ) } spids: [1943] ) ] ) ] ) ) (command.Sentence child: (C {<stderr>} {(DQ <'should never get here'>)}) terminator: <Id.Op_Semi _> ) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>}) ] ) ) (command.If arms: [ (if_arm cond: [ (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: [1977 1991] ) ] ) (command.CommandList children: [ (command.Sentence child: (C {<variable> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <new>} {<String>} {(DQ <A>)}) terminator: <Id.Op_Semi _> ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:var_A) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name RESULT))} spids: [2031] ) ] ) ] ) (command.CommandList children: [ (command.Sentence child: (C {<variable> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <new>} {<String>} {(DQ <B>)}) terminator: <Id.Op_Semi _> ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:var_B) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name RESULT))} spids: [2051] ) ] ) ] ) (command.CommandList children: [ (command.Sentence child: (C {<variable> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <new>} {<String>} {(DQ <C>)}) terminator: <Id.Op_Semi _> ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:var_C) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name RESULT))} spids: [2071] ) ] ) ] ) (command.CommandList children: [ (command.Sentence child: (C {<variable> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <new>} {<String>} {(DQ <D>)}) terminator: <Id.Op_Semi _> ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:var_D) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name RESULT))} spids: [2091] ) ] ) ] ) (command.CommandList children: [ (command.Sentence child: (C {<variable> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <LinkedList> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <new> } ) 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: [2115] ) ] ) ] ) (command.CommandList children: [ (command.Sentence child: (C {<variable> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <LinkedList> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <length> } {($ Id.VSub_DollarName '$vCode')} ) terminator: <Id.Op_Semi _> ) (C {<assert> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <equals>} {<0>} {(DQ (${ Id.VSub_Name RESULT))} {(DQ <'length empty list'>)} ) ] ) (command.CommandList children: [ (command.Sentence child: (C {<variable> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <LinkedList> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <prepend> } {(${ Id.VSub_Name vCode)} {(${ Id.VSub_Name var_A)} ) terminator: <Id.Op_Semi _> ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:vCode_1) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name RESULT))} spids: [2170] ) ] ) ] ) (command.CommandList children: [ (command.Sentence child: (C {<variable> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <LinkedList> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <length> } {(${ Id.VSub_Name vCode_1)} ) terminator: <Id.Op_Semi _> ) (C {<assert> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <equals>} {<1>} {(DQ (${ Id.VSub_Name RESULT))} {(DQ <'length after adding 1'>)} ) ] ) (command.CommandList children: [ (command.Sentence child: (C {<variable> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <LinkedList> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <length> } {(${ Id.VSub_Name vCode)} ) terminator: <Id.Op_Semi _> ) (C {<assert> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <equals>} {<0>} {(DQ (${ Id.VSub_Name RESULT))} {(DQ <'length after adding 1 - original list'>)} ) ] ) (command.CommandList children: [ (command.Sentence child: (C {<variable> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <LinkedList> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <prepend> } {(${ Id.VSub_Name vCode_1)} {(${ Id.VSub_Name var_B)} ) terminator: <Id.Op_Semi _> ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:vCode_2) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name RESULT))} spids: [2262] ) ] ) ] ) (command.CommandList children: [ (command.Sentence child: (C {<variable> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <LinkedList> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <length> } {(${ Id.VSub_Name vCode_2)} ) terminator: <Id.Op_Semi _> ) (C {<assert> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <equals>} {<2>} {(DQ (${ Id.VSub_Name RESULT))} {(DQ <'length after adding 2'>)} ) ] ) (command.CommandList children: [ (command.Sentence child: (C {<variable> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <LinkedList> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <length> } {(${ Id.VSub_Name vCode_1)} ) terminator: <Id.Op_Semi _> ) (C {<assert> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <equals>} {<1>} {(DQ (${ Id.VSub_Name RESULT))} {(DQ <'length after adding 2 - middle list'>)} ) ] ) (command.CommandList children: [ (command.Sentence child: (C {<variable> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <LinkedList> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <length> } {(${ Id.VSub_Name vCode)} ) terminator: <Id.Op_Semi _> ) (C {<assert> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <equals>} {<0>} {(DQ (${ Id.VSub_Name RESULT))} {(DQ <'length after adding 1 - original list'>)} ) ] ) (command.CommandList children: [ (command.Sentence child: (C {<variable> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <LinkedList> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <new> } ) 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: [2383] ) ] ) ] ) (command.CommandList children: [ (command.Sentence child: (C {<variable> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <LinkedList> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <prepend> } {(${ Id.VSub_Name vCode)} {(${ Id.VSub_Name var_A)} ) 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: [2406] ) ] ) ] ) (command.CommandList children: [ (command.Sentence child: (C {<variable> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <LinkedList> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <prepend> } {(${ Id.VSub_Name vCode)} {(${ Id.VSub_Name var_B)} ) 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: [2431] ) ] ) ] ) (command.CommandList children: [ (command.Sentence child: (C {<variable> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <LinkedList> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <length> } {($ Id.VSub_DollarName '$vCode')} ) terminator: <Id.Op_Semi _> ) (C {<assert> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <equals>} {<2>} {(DQ (${ Id.VSub_Name RESULT))} {(DQ <'prepend length 2'>)} ) ] ) (command.CommandList children: [ (command.Sentence child: (C {<variable> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <LinkedList> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <index> } {($ Id.VSub_DollarName '$vCode')} {<0>} ) terminator: <Id.Op_Semi _> ) (command.Sentence child: (C {<variable> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <value>} {(DQ (${ Id.VSub_Name RESULT))} ) terminator: <Id.Op_Semi _> ) (C {<assert> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <equals>} {(DQ <B>)} {(DQ (${ Id.VSub_Name RESULT))} {(DQ <'first item of prepend list'>)} ) ] ) (command.CommandList children: [ (command.Sentence child: (C {<variable> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <LinkedList> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <index> } {($ Id.VSub_DollarName '$vCode')} {<1>} ) terminator: <Id.Op_Semi _> ) (command.Sentence child: (C {<variable> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <value>} {(DQ (${ Id.VSub_Name RESULT))} ) terminator: <Id.Op_Semi _> ) (C {<assert> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <equals>} {(DQ <A>)} {(DQ (${ Id.VSub_Name RESULT))} {(DQ <'second item of prepend list'>)} ) ] ) (command.CommandList children: [ (command.Sentence child: (C {<variable> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <LinkedList> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <new> } ) 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: [2583] ) ] ) ] ) (C {<variable> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <LinkedList> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <append> } {(${ Id.VSub_Name vCode)} {(${ Id.VSub_Name var_A)} ) (C {<variable> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <LinkedList> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <append> } {(${ Id.VSub_Name vCode)} {(${ Id.VSub_Name var_B)} ) (command.CommandList children: [ (command.Sentence child: (C {<variable> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <LinkedList> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <length> } {($ Id.VSub_DollarName '$vCode')} ) terminator: <Id.Op_Semi _> ) (C {<assert> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <equals>} {<2>} {(DQ (${ Id.VSub_Name RESULT))} {(DQ <'append length 2'>)} ) ] ) (command.CommandList children: [ (command.Sentence child: (C {<variable> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <LinkedList> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <index> } {($ Id.VSub_DollarName '$vCode')} {<0>} ) terminator: <Id.Op_Semi _> ) (command.Sentence child: (C {<variable> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <value>} {(DQ (${ Id.VSub_Name RESULT))} ) terminator: <Id.Op_Semi _> ) (C {<assert> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <equals>} {(DQ <A>)} {(DQ (${ Id.VSub_Name RESULT))} {(DQ <'first item of append list'>)} ) ] ) (command.CommandList children: [ (command.Sentence child: (C {<variable> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <LinkedList> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <index> } {($ Id.VSub_DollarName '$vCode')} {<1>} ) terminator: <Id.Op_Semi _> ) (command.Sentence child: (C {<variable> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <value>} {(DQ (${ Id.VSub_Name RESULT))} ) terminator: <Id.Op_Semi _> ) (C {<assert> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <equals>} {(DQ <B>)} {(DQ (${ Id.VSub_Name RESULT))} {(DQ <'second item of append list'>)} ) ] ) (command.CommandList children: [ (command.Sentence child: (C {<variable> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <LinkedList> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <new> } ) 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: [2765] ) ] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ignore) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> command_list: (command.CommandList children: [ (C {<variable> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <LinkedList> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <index> } {($ Id.VSub_DollarName '$vCode')} {<0>} ) ] ) ) } spids: [2770] ) ] ) (C {<assert> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <equals>} {<1>} {($ Id.VSub_QMark '$?')} {(DQ <'exit code length of empty list'>)} ) (command.CommandList children: [ (command.Sentence child: (C {<variable> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <LinkedList> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <new> } ) 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: [2812] ) ] ) ] ) (command.CommandList children: [ (command.Sentence child: (C {<variable> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <type>} {($ Id.VSub_DollarName '$vCode')} ) terminator: <Id.Op_Semi _> ) (C {<assert> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <equals>} {<LinkedList>} {(DQ ($ Id.VSub_DollarName '$RESULT'))} {(DQ <'List type'>)} ) ] ) (command.CommandList children: [ (command.Sentence child: (C {<variable> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <type> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <instanceOf> } {($ Id.VSub_DollarName '$vCode')} {<LinkedList>} ) terminator: <Id.Op_Semi _> ) (C {<assert> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <equals>} {<0>} {($ Id.VSub_QMark '$?')} {(DQ <instanceOf>)} ) ] ) (command.CommandList children: [ (command.Sentence child: (C {<variable> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <LinkedList> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <new> } ) 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: [2886] ) ] ) ] ) (C {<variable> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <LinkedList> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <isEmpty_c> } {(${ Id.VSub_Name vCode)} ) (C {<assert> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <equals>} {<0>} {($ Id.VSub_QMark '$?')} {(DQ <'Return code true (0)'>)} ) (C {<variable> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <LinkedList> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <append> } {(${ Id.VSub_Name vCode)} {(${ Id.VSub_Name var_A)} ) (C {<variable> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <LinkedList> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <isEmpty_c> } {(${ Id.VSub_Name vCode)} ) (C {<assert> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <equals>} {<1>} {($ Id.VSub_QMark '$?')} {(DQ <'Return code false (1)'>)} ) (C {<assert> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <report>}) (command.If arms: [ (if_arm cond: [ (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 op_id: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_Other ':'> <Id.Lit_Other ':'> <printMetadata>})] spids: [2965 2995] ) ] ) ] )