(CommandList
  children: [
    (AndOr
      ops: [Op_DAmp]
      children: [
        (C {(Lit_Other '[')} 
          {
            (BracedVarSub
              token: <VSub_Name VARIABLES_ARRAYLIST_SH>
              suffix_op: (StringUnary op_id:VTest_Plus arg_word:{(true)})
              spids: [9 13]
            )
          } {(Lit_Other ']')}
        )
        (ControlFlow token:<ControlFlow_Return return>)
      ]
    )
    (Assignment
      keyword: Assign_Declare
      flags: [-g]
      pairs: [
        (assign_pair
          lhs: (LhsName name:VARIABLES_ARRAYLIST_SH)
          op: Equal
          rhs: {(true)}
          spids: [25]
        )
      ]
      spids: [21]
    )
    (C {(.)} 
      {
        (BracedVarSub
          token: <VSub_Name BASH_SOURCE>
          suffix_op: (StringUnary op_id:VOp1_Percent arg_word:{(Lit_Slash /) ('*')})
          spids: [31 36]
        ) (/common.sh)
      }
    )
    (C {(.)} 
      {
        (BracedVarSub
          token: <VSub_Name BASH_SOURCE>
          suffix_op: (StringUnary op_id:VOp1_Percent arg_word:{(Lit_Slash /) ('*')})
          spids: [41 46]
        ) (/logger.sh)
      }
    )
    (C {(.)} 
      {
        (BracedVarSub
          token: <VSub_Name BASH_SOURCE>
          suffix_op: (StringUnary op_id:VOp1_Percent arg_word:{(Lit_Slash /) ('*')})
          spids: [51 56]
        ) (/variables.sh)
      }
    )
    (C {(.)} 
      {
        (BracedVarSub
          token: <VSub_Name BASH_SOURCE>
          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)} 
      {(ArrayList)}
    )
    (FuncDef
      name: 'variable::ArrayList::new'
      body: 
        (BraceGroup
          children: [
            (C {(variable) (Lit_Other ':') (Lit_Other ':') (new)} {(ArrayList)} {(DQ (${ VSub_At '@'))})
          ]
          spids: [106]
        )
      spids: [94 105]
    )
    (FuncDef
      name: 'variable::ArrayList::append'
      body: 
        (BraceGroup
          children: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolBinary
                              op_id: BoolBinary_GlobDEqual
                              left: {(${ VSub_Name VARIABLES_DEBUG)}
                              right: {(1)}
                            )
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Sentence
                      child: (C {(stderr)} {(DQ ('variable::ArrayList::append ') (${ VSub_At '@'))})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  spids: [16777215 155]
                )
              ]
              spids: [16777215 168]
            )
            (Assignment
              keyword: Assign_Declare
              pairs: [
                (assign_pair
                  lhs: (LhsName name:list_token)
                  op: Equal
                  rhs: {($ VSub_Number '$1')}
                  spids: [173]
                )
              ]
              spids: [171]
            )
            (Assignment
              keyword: Assign_Declare
              pairs: [
                (assign_pair
                  lhs: (LhsName name:value_token)
                  op: Equal
                  rhs: {($ VSub_Number '$2')}
                  spids: [179]
                )
              ]
              spids: [177]
            )
            (C 
              {(variable) (Lit_Other ':') (Lit_Other ':') (type) (Lit_Other ':') (Lit_Other ':') 
                (instanceOfOrExit)
              } {(DQ (${ VSub_Name list_token))} {(ArrayList)}
            )
            (Assignment
              keyword: Assign_Declare
              flags: [-a]
              pairs: [
                (assign_pair
                  lhs: (LhsName name:list_value)
                  op: Equal
                  rhs: 
                    {
                      (ArrayLiteralPart
                        words: [
                          {
                            (BracedVarSub
                              token: <VSub_Name VARIABLES_VALUES>
                              bracket_op: (ArrayIndex expr:(ArithWord w:{($ VSub_Name '$list_token')}))
                              spids: [208 213]
                            )
                          }
                        ]
                      )
                    }
                  spids: [206]
                )
              ]
              spids: [202]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:list_value)
                  op: PlusEqual
                  rhs: {(ArrayLiteralPart words:[{(${ VSub_Name value_token)}])}
                  spids: [217]
                )
              ]
              spids: [217]
            )
            (C 
              {(VARIABLES_VALUES) (Lit_Other '[') ($ VSub_Name '$list_token') (Lit_Other ']') 
                (Lit_Other '=') (BracedVarSub token:<VSub_Name list_value> bracket_op:(WholeArray op_id:Lit_At) spids:[230 235])
              }
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:RESULT)
                  op: Equal
                  rhs: 
                    {
                      (BracedVarSub
                        token: <VSub_Name list_value>
                        prefix_op: VSub_Pound
                        bracket_op: (WholeArray op_id:Lit_At)
                        spids: [240 246]
                      )
                    }
                  spids: [239]
                )
              ]
              spids: [239]
            )
          ]
          spids: [137]
        )
      spids: [125 136]
    )
    (FuncDef
      name: 'variable::ArrayList::prepend'
      body: 
        (BraceGroup
          children: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolBinary
                              op_id: BoolBinary_GlobDEqual
                              left: {(${ VSub_Name VARIABLES_DEBUG)}
                              right: {(1)}
                            )
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Sentence
                      child: (C {(stderr)} {(DQ ('variable::ArrayList::prepend ') (${ VSub_At '@'))})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  spids: [16777215 281]
                )
              ]
              spids: [16777215 294]
            )
            (Assignment
              keyword: Assign_Declare
              pairs: [
                (assign_pair
                  lhs: (LhsName name:list_token)
                  op: Equal
                  rhs: {($ VSub_Number '$1')}
                  spids: [299]
                )
              ]
              spids: [297]
            )
            (Assignment
              keyword: Assign_Declare
              pairs: [
                (assign_pair
                  lhs: (LhsName name:value_token)
                  op: Equal
                  rhs: {($ VSub_Number '$2')}
                  spids: [305]
                )
              ]
              spids: [303]
            )
            (C 
              {(variable) (Lit_Other ':') (Lit_Other ':') (type) (Lit_Other ':') (Lit_Other ':') 
                (instanceOfOrExit)
              } {(DQ (${ VSub_Name list_token))} {(ArrayList)}
            )
            (Assignment
              keyword: Assign_Declare
              flags: [-a]
              pairs: [
                (assign_pair
                  lhs: (LhsName name:list_value)
                  op: Equal
                  rhs: 
                    {
                      (ArrayLiteralPart
                        words: [
                          {
                            (BracedVarSub
                              token: <VSub_Name VARIABLES_VALUES>
                              bracket_op: (ArrayIndex expr:(ArithWord w:{($ VSub_Name '$list_token')}))
                              spids: [334 339]
                            )
                          }
                        ]
                      )
                    }
                  spids: [332]
                )
              ]
              spids: [328]
            )
            (Assignment
              keyword: Assign_Declare
              flags: [-a]
              pairs: [
                (assign_pair
                  lhs: (LhsName name:new_value)
                  op: Equal
                  rhs: 
                    {
                      (ArrayLiteralPart
                        words: [
                          {(DQ (${ VSub_Name value_token))}
                          {
                            (DQ 
                              (BracedVarSub
                                token: <VSub_Name list_value>
                                bracket_op: (WholeArray op_id:Lit_At)
                                suffix_op: 
                                  (StringUnary
                                    op_id: VTest_ColonPlus
                                    arg_word: 
                                      {
                                        (BracedVarSub
                                          token: <VSub_Name list_value>
                                          bracket_op: (WholeArray op_id:Lit_At)
                                          spids: [362 367]
                                        )
                                      }
                                  )
                                spids: [356 368]
                              )
                            )
                          }
                        ]
                      )
                    }
                  spids: [347]
                )
              ]
              spids: [343]
            )
            (C 
              {(VARIABLES_VALUES) (Lit_Other '[') ($ VSub_Name '$list_token') (Lit_Other ']') 
                (Lit_Other '=') (BracedVarSub token:<VSub_Name new_value> bracket_op:(WholeArray op_id:Lit_At) spids:[378 383])
              }
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:RESULT)
                  op: Equal
                  rhs: 
                    {
                      (BracedVarSub
                        token: <VSub_Name list_value>
                        prefix_op: VSub_Pound
                        bracket_op: (WholeArray op_id:Lit_At)
                        spids: [388 394]
                      )
                    }
                  spids: [387]
                )
              ]
              spids: [387]
            )
          ]
          spids: [263]
        )
      spids: [251 262]
    )
    (FuncDef
      name: 'variable::ArrayList::length'
      body: 
        (BraceGroup
          children: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolBinary
                              op_id: BoolBinary_GlobDEqual
                              left: {(${ VSub_Name VARIABLES_DEBUG)}
                              right: {(1)}
                            )
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Sentence
                      child: (C {(stderr)} {(DQ ('variable::ArrayList::length ') (${ VSub_At '@'))})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  spids: [16777215 429]
                )
              ]
              spids: [16777215 442]
            )
            (Assignment
              keyword: Assign_Declare
              pairs: [
                (assign_pair
                  lhs: (LhsName name:list_token)
                  op: Equal
                  rhs: {($ VSub_Number '$1')}
                  spids: [447]
                )
              ]
              spids: [445]
            )
            (C 
              {(variable) (Lit_Other ':') (Lit_Other ':') (type) (Lit_Other ':') (Lit_Other ':') 
                (instanceOfOrExit)
              } {(DQ (${ VSub_Name list_token))} {(ArrayList)}
            )
            (Sentence
              child: 
                (C {(variable) (Lit_Other ':') (Lit_Other ':') (value)} {(DQ (${ VSub_Name list_token))})
              terminator: <Op_Semi ';'>
            )
            (Assignment
              keyword: Assign_Declare
              flags: [-a]
              pairs: [
                (assign_pair
                  lhs: (LhsName name:value)
                  op: Equal
                  rhs: {(ArrayLiteralPart words:[{(DQ (${ VSub_Name RESULT))}])}
                  spids: [487]
                )
              ]
              spids: [483]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:RESULT)
                  op: Equal
                  rhs: 
                    {
                      (DQ 
                        (BracedVarSub
                          token: <VSub_Name value>
                          prefix_op: VSub_Pound
                          bracket_op: (WholeArray op_id:Lit_At)
                          spids: [499 505]
                        )
                      )
                    }
                  spids: [497]
                )
              ]
              spids: [497]
            )
          ]
          spids: [411]
        )
      spids: [399 410]
    )
    (FuncDef
      name: 'variable::ArrayList::index'
      body: 
        (BraceGroup
          children: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolBinary
                              op_id: BoolBinary_GlobDEqual
                              left: {(${ VSub_Name VARIABLES_DEBUG)}
                              right: {(1)}
                            )
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Sentence
                      child: (C {(stderr)} {(DQ ('variables_list::index ') (${ VSub_At '@'))})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  spids: [16777215 541]
                )
              ]
              spids: [16777215 554]
            )
            (Assignment
              keyword: Assign_Declare
              pairs: [
                (assign_pair
                  lhs: (LhsName name:list_token)
                  op: Equal
                  rhs: {($ VSub_Number '$1')}
                  spids: [559]
                )
              ]
              spids: [557]
            )
            (C 
              {(variable) (Lit_Other ':') (Lit_Other ':') (type) (Lit_Other ':') (Lit_Other ':') 
                (instanceOfOrExit)
              } {(DQ (${ VSub_Name list_token))} {(ArrayList)}
            )
            (Assignment
              keyword: Assign_Declare
              pairs: [
                (assign_pair
                  lhs: (LhsName name:index)
                  op: Equal
                  rhs: {($ VSub_Number '$2')}
                  spids: [584]
                )
              ]
              spids: [582]
            )
            (Sentence
              child: 
                (C {(variable) (Lit_Other ':') (Lit_Other ':') (value)} {(DQ (${ VSub_Name list_token))})
              terminator: <Op_Semi ';'>
            )
            (Assignment
              keyword: Assign_Declare
              flags: [-a]
              pairs: [
                (assign_pair
                  lhs: (LhsName name:value)
                  op: Equal
                  rhs: {(ArrayLiteralPart words:[{(${ VSub_Name RESULT)}])}
                  spids: [605]
                )
              ]
              spids: [601]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:RESULT)
                  op: Equal
                  rhs: 
                    {
                      (BracedVarSub
                        token: <VSub_Name value>
                        bracket_op: (ArrayIndex expr:(ArithWord w:{($ VSub_Name '$index')}))
                        spids: [614 619]
                      )
                    }
                  spids: [613]
                )
              ]
              spids: [613]
            )
          ]
          spids: [523]
        )
      spids: [511 522]
    )
    (FuncDef
      name: '_variable::ArrayList::index_p'
      body: 
        (BraceGroup
          children: [
            (C 
              {(variable) (Lit_Other ':') (Lit_Other ':') (ArrayList) (Lit_Other ':') (Lit_Other ':') 
                (index)
              } {(DQ (${ VSub_At '@'))}
            )
            (C {(echo)} {(DQ ($ VSub_Name '$RESULT'))})
          ]
          spids: [636]
        )
      spids: [624 635]
    )
    (FuncDef
      name: 'variable::ArrayList::first'
      body: 
        (BraceGroup
          children: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolBinary
                              op_id: BoolBinary_GlobDEqual
                              left: {(${ VSub_Name VARIABLES_DEBUG)}
                              right: {(1)}
                            )
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Sentence
                      child: (C {(stderr)} {(DQ ('variable::ArrayList::first ') (${ VSub_At '@'))})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  spids: [16777215 693]
                )
              ]
              spids: [16777215 706]
            )
            (Assignment
              keyword: Assign_Declare
              pairs: [
                (assign_pair
                  lhs: (LhsName name:list_token)
                  op: Equal
                  rhs: {($ VSub_Number '$1')}
                  spids: [711]
                )
              ]
              spids: [709]
            )
            (C 
              {(variable) (Lit_Other ':') (Lit_Other ':') (type) (Lit_Other ':') (Lit_Other ':') 
                (instanceOfOrExit)
              } {(DQ (${ VSub_Name list_token))} {(ArrayList)}
            )
            (C 
              {(variable) (Lit_Other ':') (Lit_Other ':') (ArrayList) (Lit_Other ':') (Lit_Other ':') 
                (index)
              } {(${ VSub_Name list_token)} {(0)}
            )
          ]
          spids: [675]
        )
      spids: [663 674]
    )
    (FuncDef
      name: '_variable::ArrayList::first_p'
      body: 
        (BraceGroup
          children: [
            (C 
              {(variable) (Lit_Other ':') (Lit_Other ':') (ArrayList) (Lit_Other ':') (Lit_Other ':') 
                (first)
              } {(DQ (${ VSub_At '@'))}
            )
            (C {(echo)} {(DQ (${ VSub_Name RESULT))})
          ]
          spids: [763]
        )
      spids: [751 762]
    )
    (FuncDef
      name: 'variable::ArrayList::rest'
      body: 
        (BraceGroup
          children: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolBinary
                              op_id: BoolBinary_GlobDEqual
                              left: {(${ VSub_Name VARIABLES_DEBUG)}
                              right: {(1)}
                            )
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Sentence
                      child: (C {(stderr)} {(DQ ('variable::ArrayList::rest ') (${ VSub_At '@'))})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  spids: [16777215 822]
                )
              ]
              spids: [16777215 835]
            )
            (Assignment
              keyword: Assign_Declare
              pairs: [
                (assign_pair
                  lhs: (LhsName name:list_token)
                  op: Equal
                  rhs: {($ VSub_Number '$1')}
                  spids: [840]
                )
              ]
              spids: [838]
            )
            (C 
              {(variable) (Lit_Other ':') (Lit_Other ':') (type) (Lit_Other ':') (Lit_Other ':') 
                (instanceOfOrExit)
              } {(DQ (${ VSub_Name list_token))} {(ArrayList)}
            )
            (Sentence
              child: 
                (C {(variable) (Lit_Other ':') (Lit_Other ':') (value)} {(DQ (${ VSub_Name list_token))})
              terminator: <Op_Semi ';'>
            )
            (Assignment
              keyword: Assign_Declare
              flags: [-a]
              pairs: [
                (assign_pair
                  lhs: (LhsName name:values)
                  op: Equal
                  rhs: {(ArrayLiteralPart words:[{($ VSub_Name '$RESULT')}])}
                  spids: [880]
                )
              ]
              spids: [876]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:RESULT)
                  op: Equal
                  rhs: 
                    {
                      (DQ 
                        (BracedVarSub
                          token: <VSub_Name values>
                          bracket_op: (WholeArray op_id:Lit_At)
                          suffix_op: (Slice begin:(ArithWord w:{(Lit_Digits 1)}))
                          spids: [888 895]
                        )
                      )
                    }
                  spids: [886]
                )
              ]
              spids: [886]
            )
          ]
          spids: [804]
        )
      spids: [792 803]
    )
    (FuncDef
      name: '_variable::ArrayList::rest_p'
      body: 
        (BraceGroup
          children: [
            (C 
              {(variable) (Lit_Other ':') (Lit_Other ':') (ArrayList) (Lit_Other ':') (Lit_Other ':') 
                (rest)
              } {(DQ (${ VSub_At '@'))}
            )
            (C {(echo)} {(DQ (${ VSub_Name RESULT))})
          ]
          spids: [913]
        )
      spids: [901 912]
    )
    (FuncDef
      name: 'variable::ArrayList::isEmpty_c'
      body: 
        (BraceGroup
          children: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolBinary
                              op_id: BoolBinary_GlobDEqual
                              left: {(${ VSub_Name VARIABLES_DEBUG)}
                              right: {(1)}
                            )
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Sentence
                      child: (C {(stderr)} {(DQ ('variable::ArrayList::isEmpty_c ') (${ VSub_At '@'))})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  spids: [16777215 981]
                )
              ]
              spids: [16777215 994]
            )
            (Assignment
              keyword: Assign_Declare
              pairs: [
                (assign_pair
                  lhs: (LhsName name:token)
                  op: Equal
                  rhs: {(DQ (${ VSub_Number 1))}
                  spids: [999]
                )
              ]
              spids: [997]
            )
            (C 
              {(variable) (Lit_Other ':') (Lit_Other ':') (type) (Lit_Other ':') (Lit_Other ':') 
                (instanceOfOrExit)
              } {(DQ (${ VSub_Name token))} {(ArrayList)}
            )
            (Sentence
              child: 
                (C {(variable) (Lit_Other ':') (Lit_Other ':') (value)} {(DQ (${ VSub_Name token))})
              terminator: <Op_Semi ';'>
            )
            (Assignment
              keyword: Assign_Declare
              flags: [-a]
              pairs: [
                (assign_pair
                  lhs: (LhsName name:value)
                  op: Equal
                  rhs: {(ArrayLiteralPart words:[{(${ VSub_Name RESULT)}])}
                  spids: [1043]
                )
              ]
              spids: [1039]
            )
            (DBracket
              expr: 
                (BoolBinary
                  op_id: BoolBinary_eq
                  left: 
                    {
                      (BracedVarSub
                        token: <VSub_Name value>
                        prefix_op: VSub_Pound
                        bracket_op: (WholeArray op_id:Lit_At)
                        spids: [1053 1059]
                      )
                    }
                  right: {(0)}
                )
            )
            (ControlFlow token:<ControlFlow_Return return> arg_word:{($ VSub_QMark '$?')})
          ]
          spids: [963]
        )
      spids: [951 962]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (C {(Lit_Other '[')} {($ VSub_Number '$0')} {(KW_Bang '!') (Lit_Other '=')} 
                  {($ VSub_Name '$BASH_SOURCE')} {(Lit_Other ']')}
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [(ControlFlow token:<ControlFlow_Return return>)]
          spids: [16777215 1093]
        )
      ]
      spids: [16777215 1098]
    )
    (Sentence
      child: 
        (C 
          {(variable) (Lit_Other ':') (Lit_Other ':') (ArrayList) (Lit_Other ':') (Lit_Other ':') (new)}
        )
      terminator: <Op_Semi ';'>
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:vCode)
          op: Equal
          rhs: {(${ VSub_Name RESULT)}
          spids: [1130]
        )
      ]
      spids: [1130]
    )
    (Sentence
      child: (C {(variable) (Lit_Other ':') (Lit_Other ':') (new)} {(Identifier)} {(DQ ('+'))})
      terminator: <Op_Semi ';'>
    )
    (C 
      {(variable) (Lit_Other ':') (Lit_Other ':') (ArrayList) (Lit_Other ':') (Lit_Other ':') (append)} {(${ VSub_Name vCode)} {(${ VSub_Name RESULT)}
    )
    (Sentence
      child: (C {(variable) (Lit_Other ':') (Lit_Other ':') (new)} {(Integer)} {(5)})
      terminator: <Op_Semi ';'>
    )
    (C 
      {(variable) (Lit_Other ':') (Lit_Other ':') (ArrayList) (Lit_Other ':') (Lit_Other ':') (append)} {(${ VSub_Name vCode)} {(${ VSub_Name RESULT)}
    )
    (Sentence
      child: (C {(variable) (Lit_Other ':') (Lit_Other ':') (new)} {(Integer)} {(2)})
      terminator: <Op_Semi ';'>
    )
    (C 
      {(variable) (Lit_Other ':') (Lit_Other ':') (ArrayList) (Lit_Other ':') (Lit_Other ':') (append)} {(${ VSub_Name vCode)} {(${ VSub_Name RESULT)}
    )
    (Sentence
      child: (C {(variable) (Lit_Other ':') (Lit_Other ':') (type)} {($ VSub_Name '$vCode')})
      terminator: <Op_Semi ';'>
    )
    (C {(assert) (Lit_Other ':') (Lit_Other ':') (equals)} {(ArrayList)} {(DQ ($ VSub_Name '$RESULT'))} 
      {(DQ ('List type'))}
    )
    (Sentence
      child: 
        (C 
          {(variable) (Lit_Other ':') (Lit_Other ':') (ArrayList) (Lit_Other ':') (Lit_Other ':') (index)} {($ VSub_Name '$vCode')} {(0)}
        )
      terminator: <Op_Semi ';'>
    )
    (Sentence
      child: (C {(variable) (Lit_Other ':') (Lit_Other ':') (type)} {(DQ (${ VSub_Name RESULT))})
      terminator: <Op_Semi ';'>
    )
    (C {(assert) (Lit_Other ':') (Lit_Other ':') (equals)} {(Identifier)} {(DQ ($ VSub_Name '$RESULT'))} 
      {(DQ ('List first item type'))}
    )
    (Sentence
      child: 
        (C 
          {(variable) (Lit_Other ':') (Lit_Other ':') (ArrayList) (Lit_Other ':') (Lit_Other ':') (index)} {($ VSub_Name '$vCode')} {(1)}
        )
      terminator: <Op_Semi ';'>
    )
    (Sentence
      child: (C {(variable) (Lit_Other ':') (Lit_Other ':') (type)} {(DQ (${ VSub_Name RESULT))})
      terminator: <Op_Semi ';'>
    )
    (C {(assert) (Lit_Other ':') (Lit_Other ':') (equals)} {(Integer)} {(DQ (${ VSub_Name RESULT))} 
      {(DQ ('List first item type'))}
    )
    (Sentence
      child: 
        (C 
          {(variable) (Lit_Other ':') (Lit_Other ':') (ArrayList) (Lit_Other ':') (Lit_Other ':') (index)} {($ VSub_Name '$vCode')} {(2)}
        )
      terminator: <Op_Semi ';'>
    )
    (Sentence
      child: (C {(variable) (Lit_Other ':') (Lit_Other ':') (type)} {(DQ (${ VSub_Name RESULT))})
      terminator: <Op_Semi ';'>
    )
    (C {(assert) (Lit_Other ':') (Lit_Other ':') (equals)} {(Integer)} {(DQ (${ VSub_Name RESULT))} 
      {(DQ ('List first item type'))}
    )
    (Sentence
      child: 
        (C 
          {(variable) (Lit_Other ':') (Lit_Other ':') (ArrayList) (Lit_Other ':') (Lit_Other ':') (new)}
        )
      terminator: <Op_Semi ';'>
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:vCode)
          op: Equal
          rhs: {(${ VSub_Name RESULT)}
          spids: [1392]
        )
      ]
      spids: [1392]
    )
    (Sentence
      child: (C {(variable) (Lit_Other ':') (Lit_Other ':') (new)} {(String)} {(DQ (a))})
      terminator: <Op_Semi ';'>
    )
    (Sentence
      child: 
        (Assignment
          keyword: Assign_None
          pairs: [
            (assign_pair
              lhs: (LhsName name:A)
              op: Equal
              rhs: {(${ VSub_Name RESULT)}
              spids: [1410]
            )
          ]
          spids: [1410]
        )
      terminator: <Op_Semi ';'>
    )
    (C 
      {(variable) (Lit_Other ':') (Lit_Other ':') (ArrayList) (Lit_Other ':') (Lit_Other ':') (append)} {(${ VSub_Name vCode)} {($ VSub_Name '$A')}
    )
    (Sentence
      child: (C {(variable) (Lit_Other ':') (Lit_Other ':') (new)} {(String)} {(DQ (b))})
      terminator: <Op_Semi ';'>
    )
    (Sentence
      child: 
        (Assignment
          keyword: Assign_None
          pairs: [
            (assign_pair
              lhs: (LhsName name:B)
              op: Equal
              rhs: {(${ VSub_Name RESULT)}
              spids: [1444]
            )
          ]
          spids: [1444]
        )
      terminator: <Op_Semi ';'>
    )
    (C 
      {(variable) (Lit_Other ':') (Lit_Other ':') (ArrayList) (Lit_Other ':') (Lit_Other ':') (append)} {(${ VSub_Name vCode)} {($ VSub_Name '$B')}
    )
    (Sentence
      child: (C {(variable) (Lit_Other ':') (Lit_Other ':') (new)} {(String)} {(DQ (c))})
      terminator: <Op_Semi ';'>
    )
    (Sentence
      child: 
        (Assignment
          keyword: Assign_None
          pairs: [
            (assign_pair
              lhs: (LhsName name:C)
              op: Equal
              rhs: {(${ VSub_Name RESULT)}
              spids: [1478]
            )
          ]
          spids: [1478]
        )
      terminator: <Op_Semi ';'>
    )
    (C 
      {(variable) (Lit_Other ':') (Lit_Other ':') (ArrayList) (Lit_Other ':') (Lit_Other ':') (append)} {(${ VSub_Name vCode)} {($ VSub_Name '$C')}
    )
    (Sentence
      child: 
        (C 
          {(variable) (Lit_Other ':') (Lit_Other ':') (ArrayList) (Lit_Other ':') (Lit_Other ':') (index)} {($ VSub_Name '$vCode')} {(1)}
        )
      terminator: <Op_Semi ';'>
    )
    (C {(assert) (Lit_Other ':') (Lit_Other ':') (equals)} {(DQ ($ VSub_Name '$B'))} 
      {(DQ ($ VSub_Name '$RESULT'))} {(DQ (index_p))}
    )
    (Sentence
      child: 
        (C 
          {(variable) (Lit_Other ':') (Lit_Other ':') (ArrayList) (Lit_Other ':') (Lit_Other ':') (first)} {($ VSub_Name '$vCode')}
        )
      terminator: <Op_Semi ';'>
    )
    (C {(assert) (Lit_Other ':') (Lit_Other ':') (equals)} {(DQ ($ VSub_Name '$A'))} 
      {(DQ ($ VSub_Name '$RESULT'))} {(DQ (first_p))}
    )
    (Sentence
      child: 
        (C 
          {(variable) (Lit_Other ':') (Lit_Other ':') (ArrayList) (Lit_Other ':') (Lit_Other ':') (rest)} {($ VSub_Name '$vCode')} {(0)}
        )
      terminator: <Op_Semi ';'>
    )
    (C {(assert) (Lit_Other ':') (Lit_Other ':') (equals)} 
      {(DQ (${ VSub_Name B) (' ') (${ VSub_Name C))} {(DQ ($ VSub_Name '$RESULT'))} {(DQ (rest_p))}
    )
    (Sentence
      child: 
        (C {(variable) (Lit_Other ':') (Lit_Other ':') (new)} {(-name)} {(DQ (EVAL_RESULT))} {(Integer)} 
          {(4)}
        )
      terminator: <Op_Semi ';'>
    )
    (Assignment
      keyword: Assign_Declare
      pairs: [
        (assign_pair
          lhs: (LhsName name:varname)
          op: Equal
          rhs: {(DQ (${ VSub_Name RESULT))}
          spids: [1623]
        )
      ]
      spids: [1621]
    )
    (C {(assert) (Lit_Other ':') (Lit_Other ':') (equals)} {(DQ (EVAL_RESULT))} 
      {(DQ (${ VSub_Name varname))} {(DQ ('Non-auto variable name'))}
    )
    (Sentence
      child: (C {(variable) (Lit_Other ':') (Lit_Other ':') (type)} {(DQ (${ VSub_Name varname))})
      terminator: <Op_Semi ';'>
    )
    (C {(assert) (Lit_Other ':') (Lit_Other ':') (equals)} {(Integer)} {(DQ (${ VSub_Name RESULT))} 
      {(DQ ('Non-auto type'))}
    )
    (Sentence
      child: (C {(variable) (Lit_Other ':') (Lit_Other ':') (value)} {(DQ (${ VSub_Name varname))})
      terminator: <Op_Semi ';'>
    )
    (C {(assert) (Lit_Other ':') (Lit_Other ':') (equals)} {(4)} {(DQ (${ VSub_Name RESULT))} 
      {(DQ ('Non-auto value'))}
    )
    (Sentence
      child: 
        (C 
          {(variable) (Lit_Other ':') (Lit_Other ':') (ArrayList) (Lit_Other ':') (Lit_Other ':') (new)}
        )
      terminator: <Op_Semi ';'>
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:vCode)
          op: Equal
          rhs: {(${ VSub_Name RESULT)}
          spids: [1725]
        )
      ]
      spids: [1725]
    )
    (C 
      {(variable) (Lit_Other ':') (Lit_Other ':') (ArrayList) (Lit_Other ':') (Lit_Other ':') (isEmpty_c)} {(${ VSub_Name vCode)}
    )
    (C {(assert) (Lit_Other ':') (Lit_Other ':') (equals)} {(0)} {($ VSub_QMark '$?')} 
      {(DQ ('Return code true (0)'))}
    )
    (Sentence
      child: (C {(variable) (Lit_Other ':') (Lit_Other ':') (new)} {(Identifier)} {(DQ ('+'))})
      terminator: <Op_Semi ';'>
    )
    (C 
      {(variable) (Lit_Other ':') (Lit_Other ':') (ArrayList) (Lit_Other ':') (Lit_Other ':') (append)} {(${ VSub_Name vCode)} {(${ VSub_Name RESULT)}
    )
    (C 
      {(variable) (Lit_Other ':') (Lit_Other ':') (ArrayList) (Lit_Other ':') (Lit_Other ':') (isEmpty_c)} {(${ VSub_Name vCode)}
    )
    (C {(assert) (Lit_Other ':') (Lit_Other ':') (equals)} {(1)} {($ VSub_QMark '$?')} 
      {(DQ ('Return code false (1)'))}
    )
    (Sentence
      child: 
        (C 
          {(variable) (Lit_Other ':') (Lit_Other ':') (ArrayList) (Lit_Other ':') (Lit_Other ':') (new)}
        )
      terminator: <Op_Semi ';'>
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:vCode)
          op: Equal
          rhs: {(${ VSub_Name RESULT)}
          spids: [1823]
        )
      ]
      spids: [1823]
    )
    (Sentence
      child: (C {(variable) (Lit_Other ':') (Lit_Other ':') (new)} {(Integer)} {(5)})
      terminator: <Op_Semi ';'>
    )
    (C 
      {(variable) (Lit_Other ':') (Lit_Other ':') (ArrayList) (Lit_Other ':') (Lit_Other ':') (append)} {(${ VSub_Name vCode)} {(${ VSub_Name RESULT)}
    )
    (Sentence
      child: (C {(variable) (Lit_Other ':') (Lit_Other ':') (new)} {(Integer)} {(2)})
      terminator: <Op_Semi ';'>
    )
    (C 
      {(variable) (Lit_Other ':') (Lit_Other ':') (ArrayList) (Lit_Other ':') (Lit_Other ':') (append)} {(${ VSub_Name vCode)} {(${ VSub_Name RESULT)}
    )
    (Sentence
      child: 
        (C 
          {(variable) (Lit_Other ':') (Lit_Other ':') (ArrayList) (Lit_Other ':') (Lit_Other ':') (index)} {($ VSub_Name '$vCode')} {(0)}
        )
      terminator: <Op_Semi ';'>
    )
    (Sentence
      child: (C {(variable) (Lit_Other ':') (Lit_Other ':') (value)} {(DQ (${ VSub_Name RESULT))})
      terminator: <Op_Semi ';'>
    )
    (C {(assert) (Lit_Other ':') (Lit_Other ':') (equals)} {(5)} {(DQ ($ VSub_Name '$RESULT'))} 
      {(DQ ('append / 0'))}
    )
    (Sentence
      child: 
        (C 
          {(variable) (Lit_Other ':') (Lit_Other ':') (ArrayList) (Lit_Other ':') (Lit_Other ':') (index)} {($ VSub_Name '$vCode')} {(1)}
        )
      terminator: <Op_Semi ';'>
    )
    (Sentence
      child: (C {(variable) (Lit_Other ':') (Lit_Other ':') (value)} {(DQ ($ VSub_Name '$RESULT'))})
      terminator: <Op_Semi ';'>
    )
    (C {(assert) (Lit_Other ':') (Lit_Other ':') (equals)} {(2)} {(DQ ($ VSub_Name '$RESULT'))} 
      {(DQ ('append / 1'))}
    )
    (C {(assert) (Lit_Other ':') (Lit_Other ':') (report)})
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (AndOr
                  ops: [Op_DAmp]
                  children: [
                    (C {(Lit_Other '[')} 
                      {
                        (BracedVarSub
                          token: <VSub_Number 1>
                          suffix_op: (StringUnary op_id:VTest_Plus arg_word:{(isset)})
                          spids: [1979 1983]
                        )
                      } {(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 2005]
        )
      ]
      spids: [16777215 2014]
    )
  ]
)