(command.CommandList children: [ (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} { (braced_var_sub token: <Id.VSub_Name VARIABLES_ARRAYLIST_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_ARRAYLIST_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> } {<ArrayList>} ) (command.ShFunction name: 'variable::ArrayList::new' body: (command.BraceGroup children: [ (C {<variable> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <new>} {<ArrayList>} {(DQ (${ Id.VSub_At '@'))} ) ] ) ) (command.ShFunction name: 'variable::ArrayList::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::ArrayList::append '> (${ Id.VSub_At '@'))}) terminator: <Id.Op_Semi _> ) ] spids: [140 155] ) ] ) (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))} {<ArrayList>} ) (C {<declare>} {<-a>} {<Id.Lit_VarLike 'list_value='> (sh_array_literal left: <Id.Op_LParen _> words: [ { (braced_var_sub token: <Id.VSub_Name VARIABLES_VALUES> bracket_op: (bracket_op.ArrayIndex expr: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$list_token')}) ) ) } ] ) } ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:list_value) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [{(${ Id.VSub_Name value_token)}] ) } spids: [217] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.IndexedName name: VARIABLES_VALUES index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$list_token')}) ) op: assign_op.Equal rhs: { (braced_var_sub token: <Id.VSub_Name list_value> bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) ) } spids: [225] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:RESULT) op: assign_op.Equal rhs: { (braced_var_sub token: <Id.VSub_Name list_value> prefix_op: (Id.VSub_Pound) bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) ) } spids: [239] ) ] ) ] ) ) (command.ShFunction name: 'variable::ArrayList::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::ArrayList::prepend '> (${ Id.VSub_At '@'))}) terminator: <Id.Op_Semi _> ) ] spids: [266 281] ) ] ) (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))} {<ArrayList>} ) (C {<declare>} {<-a>} {<Id.Lit_VarLike 'list_value='> (sh_array_literal left: <Id.Op_LParen _> words: [ { (braced_var_sub token: <Id.VSub_Name VARIABLES_VALUES> bracket_op: (bracket_op.ArrayIndex expr: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$list_token')}) ) ) } ] ) } ) (C {<declare>} {<-a>} {<Id.Lit_VarLike 'new_value='> (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ (${ Id.VSub_Name value_token))} { (DQ (braced_var_sub token: <Id.VSub_Name list_value> bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) suffix_op: (suffix_op.Unary op_id: Id.VTest_ColonPlus arg_word: { (braced_var_sub token: <Id.VSub_Name list_value> bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) ) } ) ) ) } ] ) } ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.IndexedName name: VARIABLES_VALUES index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$list_token')}) ) op: assign_op.Equal rhs: { (braced_var_sub token: <Id.VSub_Name new_value> bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) ) } spids: [373] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:RESULT) op: assign_op.Equal rhs: { (braced_var_sub token: <Id.VSub_Name list_value> prefix_op: (Id.VSub_Pound) bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) ) } spids: [387] ) ] ) ] ) ) (command.ShFunction name: 'variable::ArrayList::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::ArrayList::length '> (${ Id.VSub_At '@'))}) terminator: <Id.Op_Semi _> ) ] spids: [414 429] ) ] ) (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))} {<ArrayList>} ) (command.Sentence child: (C {<variable> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <value>} {(DQ (${ Id.VSub_Name list_token))} ) terminator: <Id.Op_Semi _> ) (C {<declare>} {<-a>} {<Id.Lit_VarLike 'value='> (sh_array_literal left: <Id.Op_LParen _> words: [{(DQ (${ Id.VSub_Name 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 value> prefix_op: (Id.VSub_Pound) bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) ) ) } spids: [497] ) ] ) ] ) ) (command.ShFunction name: 'variable::ArrayList::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: [526 541] ) ] ) (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))} {<ArrayList>} ) (C {<declare>} {<Id.Lit_VarLike 'index='> ($ Id.VSub_Number '$2')}) (command.Sentence child: (C {<variable> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <value>} {(DQ (${ Id.VSub_Name list_token))} ) terminator: <Id.Op_Semi _> ) (C {<declare>} {<-a>} {<Id.Lit_VarLike 'value='> (sh_array_literal left: <Id.Op_LParen _> words: [{(${ Id.VSub_Name RESULT)}] ) } ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:RESULT) op: assign_op.Equal rhs: { (braced_var_sub token: <Id.VSub_Name value> bracket_op: (bracket_op.ArrayIndex expr: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index')}) ) ) } spids: [613] ) ] ) ] ) ) (command.ShFunction name: '_variable::ArrayList::index_p' body: (command.BraceGroup children: [ (C {<variable> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <ArrayList> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <index> } {(DQ (${ Id.VSub_At '@'))} ) (C {<echo>} {(DQ ($ Id.VSub_DollarName '$RESULT'))}) ] ) ) (command.ShFunction name: 'variable::ArrayList::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::ArrayList::first '> (${ Id.VSub_At '@'))}) terminator: <Id.Op_Semi _> ) ] spids: [678 693] ) ] ) (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))} {<ArrayList>} ) (C {<variable> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <ArrayList> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <index> } {(${ Id.VSub_Name list_token)} {<0>} ) ] ) ) (command.ShFunction name: '_variable::ArrayList::first_p' body: (command.BraceGroup children: [ (C {<variable> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <ArrayList> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <first> } {(DQ (${ Id.VSub_At '@'))} ) (C {<echo>} {(DQ (${ Id.VSub_Name RESULT))}) ] ) ) (command.ShFunction name: 'variable::ArrayList::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::ArrayList::rest '> (${ Id.VSub_At '@'))}) terminator: <Id.Op_Semi _> ) ] spids: [807 822] ) ] ) (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))} {<ArrayList>} ) (command.Sentence child: (C {<variable> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <value>} {(DQ (${ Id.VSub_Name list_token))} ) terminator: <Id.Op_Semi _> ) (C {<declare>} {<-a>} {<Id.Lit_VarLike 'values='> (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 values> bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) suffix_op: (suffix_op.Slice begin: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>}) ) ) ) } spids: [886] ) ] ) ] ) ) (command.ShFunction name: '_variable::ArrayList::rest_p' body: (command.BraceGroup children: [ (C {<variable> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <ArrayList> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <rest> } {(DQ (${ Id.VSub_At '@'))} ) (C {<echo>} {(DQ (${ Id.VSub_Name RESULT))}) ] ) ) (command.ShFunction name: 'variable::ArrayList::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::ArrayList::isEmpty_c '> (${ Id.VSub_At '@'))}) terminator: <Id.Op_Semi _> ) ] spids: [966 981] ) ] ) (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))} {<ArrayList>} ) (command.Sentence child: (C {<variable> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <value>} {(DQ (${ Id.VSub_Name token))} ) terminator: <Id.Op_Semi _> ) (C {<declare>} {<-a>} {<Id.Lit_VarLike 'value='> (sh_array_literal left: <Id.Op_LParen _> words: [{(${ Id.VSub_Name RESULT)}] ) } ) (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_eq left: { (braced_var_sub token: <Id.VSub_Name value> prefix_op: (Id.VSub_Pound) bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) ) } right: {<0>} ) ) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {($ Id.VSub_QMark '$?')} ) ] ) ) (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: [1079 1093] ) ] ) (command.CommandList children: [ (command.Sentence child: (C {<variable> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <ArrayList> <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: [1130] ) ] ) ] ) (command.CommandList children: [ (command.Sentence child: (C {<variable> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <new>} {<Identifier>} {(DQ <'+'>)}) terminator: <Id.Op_Semi _> ) (C {<variable> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <ArrayList> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <append> } {(${ Id.VSub_Name vCode)} {(${ Id.VSub_Name RESULT)} ) ] ) (command.CommandList children: [ (command.Sentence child: (C {<variable> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <new>} {<Integer>} {<5>}) terminator: <Id.Op_Semi _> ) (C {<variable> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <ArrayList> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <append> } {(${ Id.VSub_Name vCode)} {(${ Id.VSub_Name RESULT)} ) ] ) (command.CommandList children: [ (command.Sentence child: (C {<variable> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <new>} {<Integer>} {<2>}) terminator: <Id.Op_Semi _> ) (C {<variable> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <ArrayList> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <append> } {(${ Id.VSub_Name vCode)} {(${ Id.VSub_Name RESULT)} ) ] ) (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>} {<ArrayList>} {(DQ ($ Id.VSub_DollarName '$RESULT'))} {(DQ <'List type'>)} ) ] ) (command.CommandList children: [ (command.Sentence child: (C {<variable> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <ArrayList> <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 ':'> <type>} {(DQ (${ Id.VSub_Name RESULT))}) terminator: <Id.Op_Semi _> ) (C {<assert> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <equals>} {<Identifier>} {(DQ ($ Id.VSub_DollarName '$RESULT'))} {(DQ <'List first item type'>)} ) ] ) (command.CommandList children: [ (command.Sentence child: (C {<variable> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <ArrayList> <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 ':'> <type>} {(DQ (${ Id.VSub_Name RESULT))}) terminator: <Id.Op_Semi _> ) (C {<assert> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <equals>} {<Integer>} {(DQ (${ Id.VSub_Name RESULT))} {(DQ <'List first item type'>)} ) ] ) (command.CommandList children: [ (command.Sentence child: (C {<variable> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <ArrayList> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <index> } {($ Id.VSub_DollarName '$vCode')} {<2>} ) terminator: <Id.Op_Semi _> ) (command.Sentence child: (C {<variable> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <type>} {(DQ (${ Id.VSub_Name RESULT))}) terminator: <Id.Op_Semi _> ) (C {<assert> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <equals>} {<Integer>} {(DQ (${ Id.VSub_Name RESULT))} {(DQ <'List first item type'>)} ) ] ) (command.CommandList children: [ (command.Sentence child: (C {<variable> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <ArrayList> <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: [1392] ) ] ) ] ) (command.CommandList children: [ (command.Sentence child: (C {<variable> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <new>} {<String>} {(DQ <a>)}) terminator: <Id.Op_Semi _> ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:A) op: assign_op.Equal rhs: {(${ Id.VSub_Name RESULT)} spids: [1410] ) ] ) terminator: <Id.Op_Semi _> ) (C {<variable> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <ArrayList> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <append> } {(${ Id.VSub_Name vCode)} {($ Id.VSub_DollarName '$A')} ) ] ) (command.CommandList children: [ (command.Sentence child: (C {<variable> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <new>} {<String>} {(DQ <b>)}) terminator: <Id.Op_Semi _> ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:B) op: assign_op.Equal rhs: {(${ Id.VSub_Name RESULT)} spids: [1444] ) ] ) terminator: <Id.Op_Semi _> ) (C {<variable> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <ArrayList> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <append> } {(${ Id.VSub_Name vCode)} {($ Id.VSub_DollarName '$B')} ) ] ) (command.CommandList children: [ (command.Sentence child: (C {<variable> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <new>} {<String>} {(DQ <c>)}) terminator: <Id.Op_Semi _> ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:C) op: assign_op.Equal rhs: {(${ Id.VSub_Name RESULT)} spids: [1478] ) ] ) terminator: <Id.Op_Semi _> ) (C {<variable> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <ArrayList> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <append> } {(${ Id.VSub_Name vCode)} {($ Id.VSub_DollarName '$C')} ) ] ) (command.CommandList children: [ (command.Sentence child: (C {<variable> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <ArrayList> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <index> } {($ Id.VSub_DollarName '$vCode')} {<1>} ) terminator: <Id.Op_Semi _> ) (C {<assert> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <equals>} {(DQ ($ Id.VSub_DollarName '$B'))} {(DQ ($ Id.VSub_DollarName '$RESULT'))} {(DQ <index_p>)} ) ] ) (command.CommandList children: [ (command.Sentence child: (C {<variable> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <ArrayList> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <first> } {($ Id.VSub_DollarName '$vCode')} ) terminator: <Id.Op_Semi _> ) (C {<assert> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <equals>} {(DQ ($ Id.VSub_DollarName '$A'))} {(DQ ($ Id.VSub_DollarName '$RESULT'))} {(DQ <first_p>)} ) ] ) (command.CommandList children: [ (command.Sentence child: (C {<variable> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <ArrayList> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <rest> } {($ Id.VSub_DollarName '$vCode')} {<0>} ) terminator: <Id.Op_Semi _> ) (C {<assert> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <equals>} {(DQ (${ Id.VSub_Name B) <' '> (${ Id.VSub_Name C))} {(DQ ($ Id.VSub_DollarName '$RESULT'))} {(DQ <rest_p>)} ) ] ) (command.CommandList children: [ (command.Sentence child: (C {<variable> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <new>} {<-name>} {(DQ <EVAL_RESULT>)} {<Integer>} {<4>} ) terminator: <Id.Op_Semi _> ) (C {<declare>} {<Id.Lit_VarLike 'varname='> (DQ (${ Id.VSub_Name RESULT))}) ] ) (C {<assert> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <equals>} {(DQ <EVAL_RESULT>)} {(DQ (${ Id.VSub_Name varname))} {(DQ <'Non-auto variable name'>)} ) (command.CommandList children: [ (command.Sentence child: (C {<variable> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <type>} {(DQ (${ Id.VSub_Name varname))} ) terminator: <Id.Op_Semi _> ) (C {<assert> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <equals>} {<Integer>} {(DQ (${ Id.VSub_Name RESULT))} {(DQ <'Non-auto type'>)} ) ] ) (command.CommandList children: [ (command.Sentence child: (C {<variable> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <value>} {(DQ (${ Id.VSub_Name varname))} ) terminator: <Id.Op_Semi _> ) (C {<assert> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <equals>} {<4>} {(DQ (${ Id.VSub_Name RESULT))} {(DQ <'Non-auto value'>)} ) ] ) (command.CommandList children: [ (command.Sentence child: (C {<variable> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <ArrayList> <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: [1725] ) ] ) ] ) (C {<variable> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <ArrayList> <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)'>)} ) (command.CommandList children: [ (command.Sentence child: (C {<variable> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <new>} {<Identifier>} {(DQ <'+'>)}) terminator: <Id.Op_Semi _> ) (C {<variable> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <ArrayList> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <append> } {(${ Id.VSub_Name vCode)} {(${ Id.VSub_Name RESULT)} ) ] ) (C {<variable> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <ArrayList> <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)'>)} ) (command.CommandList children: [ (command.Sentence child: (C {<variable> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <ArrayList> <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: [1823] ) ] ) ] ) (command.CommandList children: [ (command.Sentence child: (C {<variable> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <new>} {<Integer>} {<5>}) terminator: <Id.Op_Semi _> ) (C {<variable> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <ArrayList> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <append> } {(${ Id.VSub_Name vCode)} {(${ Id.VSub_Name RESULT)} ) ] ) (command.CommandList children: [ (command.Sentence child: (C {<variable> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <new>} {<Integer>} {<2>}) terminator: <Id.Op_Semi _> ) (C {<variable> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <ArrayList> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <append> } {(${ Id.VSub_Name vCode)} {(${ Id.VSub_Name RESULT)} ) ] ) (command.CommandList children: [ (command.Sentence child: (C {<variable> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <ArrayList> <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>} {<5>} {(DQ ($ Id.VSub_DollarName '$RESULT'))} {(DQ <'append / 0'>)} ) ] ) (command.CommandList children: [ (command.Sentence child: (C {<variable> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <ArrayList> <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_DollarName '$RESULT'))} ) terminator: <Id.Op_Semi _> ) (C {<assert> <Id.Lit_Other ':'> <Id.Lit_Other ':'> <equals>} {<2>} {(DQ ($ Id.VSub_DollarName '$RESULT'))} {(DQ <'append / 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: [1975 2005] ) ] ) ] )