1. CHARJ_SOURCE
    1. package
      1. tests
    2. readonly
      1. OBJECT_VAR_DECLARATION
        1. PROXY_TYPE(Symbol(Main@, )) [type=Symbol(Main@, )] [def=null]
          1. QUALIFIED_TYPE_IDENT
            1. Main
        2. VAR_DECLARATOR_LIST
          1. VAR_DECLARATOR
            1. main(Symbol(Main@, )) [type=Symbol(Main@, )] [def=tests.main]
    3. TYPE
      1. mainchare
      2. Main(tests::Main{n=Main.n, a=Main.a, b=Main.b, Main=entry Main.Main(Main.m), done=entry Main.done(done.value), pup=Main.pup(pup.p), initMethod=Main.initMethod(), constructorHelper=Main.constructorHelper()}) [type=tests::Main{n=Main.n, a=Main.a, b=Main.b, Main=entry Main.Main(Main.m), done=entry Main.done(done.value), pup=Main.pup(pup.p), initMethod=Main.initMethod(), constructorHelper=Main.constructorHelper()}] [def=tests::Main{n=Main.n, a=Main.a, b=Main.b, Main=entry Main.Main(Main.m), done=entry Main.done(done.value), pup=Main.pup(pup.p), initMethod=Main.initMethod(), constructorHelper=Main.constructorHelper()}]
      3. PRIMITIVE_VAR_DECLARATION
        1. MODIFIER_LIST
          1. ACCESS_MODIFIER_LIST
            1. private
        2. SIMPLE_TYPE(int) [type=int] [def=null]
          1. int
        3. VAR_DECLARATOR_LIST
          1. VAR_DECLARATOR
            1. n(int) [type=int] [def=Main.n]
      4. OBJECT_VAR_DECLARATION
        1. MODIFIER_LIST
          1. ACCESS_MODIFIER_LIST
            1. private
        2. POINTER_TYPE(tests::Fib{parent=Fib.parent, root=Fib.root, n=Fib.n, partialResult=Fib.partialResult, pendingChildren=Fib.pendingChildren, seq_fib=Fib.seq_fib(seq_fib.n), Fib=Fib.Fib(), gather=entry Fib.gather(gather.value), passUp=Fib.passUp(), pup=Fib.pup(pup.p), initMethod=Fib.initMethod(), constructorHelper=Fib.constructorHelper()}) [type=tests::Fib{parent=Fib.parent, root=Fib.root, n=Fib.n, partialResult=Fib.partialResult, pendingChildren=Fib.pendingChildren, seq_fib=Fib.seq_fib(seq_fib.n), Fib=Fib.Fib(), gather=entry Fib.gather(gather.value), passUp=Fib.passUp(), pup=Fib.pup(pup.p), initMethod=Fib.initMethod(), constructorHelper=Fib.constructorHelper()}] [def=null]
          1. QUALIFIED_TYPE_IDENT
            1. Fib
        3. VAR_DECLARATOR_LIST
          1. VAR_DECLARATOR
            1. a(tests::Fib{parent=Fib.parent, root=Fib.root, n=Fib.n, partialResult=Fib.partialResult, pendingChildren=Fib.pendingChildren, seq_fib=Fib.seq_fib(seq_fib.n), Fib=Fib.Fib(), gather=entry Fib.gather(gather.value), passUp=Fib.passUp(), pup=Fib.pup(pup.p), initMethod=Fib.initMethod(), constructorHelper=Fib.constructorHelper()}) [type=tests::Fib{parent=Fib.parent, root=Fib.root, n=Fib.n, partialResult=Fib.partialResult, pendingChildren=Fib.pendingChildren, seq_fib=Fib.seq_fib(seq_fib.n), Fib=Fib.Fib(), gather=entry Fib.gather(gather.value), passUp=Fib.passUp(), pup=Fib.pup(pup.p), initMethod=Fib.initMethod(), constructorHelper=Fib.constructorHelper()}] [def=Main.a]
      5. OBJECT_VAR_DECLARATION
        1. MODIFIER_LIST
          1. ACCESS_MODIFIER_LIST
            1. private
        2. POINTER_TYPE(tests::Main{n=Main.n, a=Main.a, b=Main.b, Main=entry Main.Main(Main.m), done=entry Main.done(done.value), pup=Main.pup(pup.p), initMethod=Main.initMethod(), constructorHelper=Main.constructorHelper()}) [type=tests::Main{n=Main.n, a=Main.a, b=Main.b, Main=entry Main.Main(Main.m), done=entry Main.done(done.value), pup=Main.pup(pup.p), initMethod=Main.initMethod(), constructorHelper=Main.constructorHelper()}] [def=null]
          1. QUALIFIED_TYPE_IDENT
            1. Main
        3. VAR_DECLARATOR_LIST
          1. VAR_DECLARATOR
            1. b(tests::Main{n=Main.n, a=Main.a, b=Main.b, Main=entry Main.Main(Main.m), done=entry Main.done(done.value), pup=Main.pup(pup.p), initMethod=Main.initMethod(), constructorHelper=Main.constructorHelper()}) [type=tests::Main{n=Main.n, a=Main.a, b=Main.b, Main=entry Main.Main(Main.m), done=entry Main.done(done.value), pup=Main.pup(pup.p), initMethod=Main.initMethod(), constructorHelper=Main.constructorHelper()}] [def=Main.b]
      6. ENTRY_CONSTRUCTOR_DECL
        1. MODIFIER_LIST
          1. ACCESS_MODIFIER_LIST
            1. public
          2. CHARJ_MODIFIER_LIST
            1. entry
        2. Main(tests::Main{n=Main.n, a=Main.a, b=Main.b, Main=entry Main.Main(Main.m), done=entry Main.done(done.value), pup=Main.pup(pup.p), initMethod=Main.initMethod(), constructorHelper=Main.constructorHelper()}) [type=tests::Main{n=Main.n, a=Main.a, b=Main.b, Main=entry Main.Main(Main.m), done=entry Main.done(done.value), pup=Main.pup(pup.p), initMethod=Main.initMethod(), constructorHelper=Main.constructorHelper()}] [def=entry Main.Main(Main.m)]
        3. FORMAL_PARAM_LIST
          1. FORMAL_PARAM_STD_DECL
            1. POINTER_TYPE
              1. QUALIFIED_TYPE_IDENT
                1. CkArgMsg
            2. m
        4. BLOCK
          1. EXPR(void) [type=void] [def=Symbol(EXPR, void, )]
            1. METHOD_CALL(void) [type=void] [def=null]
              1. constructorHelper(void) [type=void] [def=Main.constructorHelper()]
              2. ARGUMENT_LIST
          2. if
            1. PAREN_EXPR
              1. EXPR
                1. <
                  1. ARROW
                    1. m
                    2. argc
                  2. 2(int) [type=int] [def=null]
            2. BLOCK
              1. EXPR(int) [type=int] [def=Symbol(EXPR, int, )]
                1. =(int) [type=int] [def=Symbol(=, int, )]
                  1. n(int) [type=int] [def=Main.n]
                  2. 16(int) [type=int] [def=null]
            3. BLOCK
              1. EXPR(int) [type=int] [def=Symbol(EXPR, int, )]
                1. =(int) [type=int] [def=Symbol(=, int, )]
                  1. n(int) [type=int] [def=Main.n]
                  2. METHOD_CALL
                    1. atoi
                    2. ARGUMENT_LIST
                      1. EXPR
                        1. ARRAY_ELEMENT_ACCESS
                          1. ARROW
                            1. m
                            2. argv
                          2. EXPR(int) [type=int] [def=Symbol(EXPR, int, )]
                            1. 1(int) [type=int] [def=null]
          3. EXPR(Symbol(Main@, )) [type=Symbol(Main@, )] [def=Symbol(EXPR, Symbol(Main@, ), )]
            1. =(Symbol(Main@, )) [type=Symbol(Main@, )] [def=Symbol(=, Symbol(Main@, ), )]
              1. main(Symbol(Main@, )) [type=Symbol(Main@, )] [def=tests.main]
              2. thishandle
          4. OBJECT_VAR_DECLARATION
            1. PROXY_TYPE(Symbol(Fib@, )) [type=Symbol(Fib@, )] [def=null]
              1. QUALIFIED_TYPE_IDENT
                1. Fib
            2. VAR_DECLARATOR_LIST
              1. VAR_DECLARATOR
                1. fib(Symbol(Fib@, )) [type=Symbol(Fib@, )] [def=Main.fib]
                2. EXPR(Symbol(Fib@, )) [type=Symbol(Fib@, )] [def=Symbol(EXPR, Symbol(Fib@, ), )]
                  1. new
                    1. PROXY_TYPE(Symbol(Fib@, )) [type=Symbol(Fib@, )] [def=null]
                      1. QUALIFIED_TYPE_IDENT
                        1. Fib
                    2. ARGUMENT_LIST
                      1. EXPR(bool) [type=bool] [def=Symbol(EXPR, bool, )]
                        1. true(bool) [type=bool] [def=null]
                      2. EXPR(int) [type=int] [def=Symbol(EXPR, int, )]
                        1. n(int) [type=int] [def=Main.n]
                      3. EXPR
                        1. thishandle
      7. ENTRY_FUNCTION_DECL
        1. MODIFIER_LIST
          1. ACCESS_MODIFIER_LIST
            1. public
          2. CHARJ_MODIFIER_LIST
            1. entry
        2. void(void) [type=void] [def=null]
        3. done(void) [type=void] [def=entry Main.done(done.value)]
        4. FORMAL_PARAM_LIST
          1. FORMAL_PARAM_STD_DECL
            1. SIMPLE_TYPE(int) [type=int] [def=null]
              1. int
            2. value(int) [type=int] [def=done.value]
        5. BLOCK
          1. EXPR
            1. METHOD_CALL
              1. CkPrintf
              2. ARGUMENT_LIST
                1. EXPR(string) [type=string] [def=Symbol(EXPR, string, )]
                  1. "Fib(%d) = %d\n"(string) [type=string] [def=null]
                2. EXPR(int) [type=int] [def=Symbol(EXPR, int, )]
                  1. n(int) [type=int] [def=Main.n]
                3. EXPR(int) [type=int] [def=Symbol(EXPR, int, )]
                  1. value(int) [type=int] [def=done.value]
          2. EXPR
            1. METHOD_CALL
              1. CkExit
              2. ARGUMENT_LIST
      8. FUNCTION_METHOD_DECL
        1. MODIFIER_LIST
          1. ACCESS_MODIFIER_LIST
            1. public
        2. void(void) [type=void] [def=null]
        3. pup(void) [type=void] [def=Main.pup(pup.p)]
        4. FORMAL_PARAM_LIST
          1. FORMAL_PARAM_STD_DECL
            1. REFERENCE_TYPE
              1. QUALIFIED_TYPE_IDENT
                1. PUP::er
            2. p
        5. BLOCK
          1. EXPR
            1. |
              1. p
              2. n(int) [type=int] [def=Main.n]
          2. if
            1. PAREN_EXPR
              1. EXPR
                1. METHOD_CALL
                  1. .
                    1. p
                    2. isUnpacking
                  2. ARGUMENT_LIST
            2. BLOCK
              1. EXPR(void) [type=void] [def=Symbol(EXPR, void, )]
                1. METHOD_CALL(void) [type=void] [def=null]
                  1. initMethod(void) [type=void] [def=Main.initMethod()]
                  2. ARGUMENT_LIST
          3. EXPR(void) [type=void] [def=Symbol(EXPR, void, )]
            1. METHOD_CALL(void) [type=void] [def=null]
              1. ARROW(void) [type=void] [def=Fib.pup(pup.p)]
                1. a(tests::Fib{parent=Fib.parent, root=Fib.root, n=Fib.n, partialResult=Fib.partialResult, pendingChildren=Fib.pendingChildren, seq_fib=Fib.seq_fib(seq_fib.n), Fib=Fib.Fib(), gather=entry Fib.gather(gather.value), passUp=Fib.passUp(), pup=Fib.pup(pup.p), initMethod=Fib.initMethod(), constructorHelper=Fib.constructorHelper()}) [type=tests::Fib{parent=Fib.parent, root=Fib.root, n=Fib.n, partialResult=Fib.partialResult, pendingChildren=Fib.pendingChildren, seq_fib=Fib.seq_fib(seq_fib.n), Fib=Fib.Fib(), gather=entry Fib.gather(gather.value), passUp=Fib.passUp(), pup=Fib.pup(pup.p), initMethod=Fib.initMethod(), constructorHelper=Fib.constructorHelper()}] [def=Main.a]
                2. pup(void) [type=void] [def=Fib.pup(pup.p)]
              2. ARGUMENT_LIST
                1. EXPR
                  1. p
          4. EXPR(void) [type=void] [def=Symbol(EXPR, void, )]
            1. METHOD_CALL(void) [type=void] [def=null]
              1. ARROW(void) [type=void] [def=Main.pup(pup.p)]
                1. b(tests::Main{n=Main.n, a=Main.a, b=Main.b, Main=entry Main.Main(Main.m), done=entry Main.done(done.value), pup=Main.pup(pup.p), initMethod=Main.initMethod(), constructorHelper=Main.constructorHelper()}) [type=tests::Main{n=Main.n, a=Main.a, b=Main.b, Main=entry Main.Main(Main.m), done=entry Main.done(done.value), pup=Main.pup(pup.p), initMethod=Main.initMethod(), constructorHelper=Main.constructorHelper()}] [def=Main.b]
                2. pup(void) [type=void] [def=Main.pup(pup.p)]
              2. ARGUMENT_LIST
                1. EXPR
                  1. p
      9. FUNCTION_METHOD_DECL
        1. MODIFIER_LIST
          1. ACCESS_MODIFIER_LIST
            1. private
        2. void(void) [type=void] [def=null]
        3. initMethod(void) [type=void] [def=Main.initMethod()]
        4. FORMAL_PARAM_LIST
        5. BLOCK
          1. EXPR(tests::Fib{parent=Fib.parent, root=Fib.root, n=Fib.n, partialResult=Fib.partialResult, pendingChildren=Fib.pendingChildren, seq_fib=Fib.seq_fib(seq_fib.n), Fib=Fib.Fib(), gather=entry Fib.gather(gather.value), passUp=Fib.passUp(), pup=Fib.pup(pup.p), initMethod=Fib.initMethod(), constructorHelper=Fib.constructorHelper()}) [type=tests::Fib{parent=Fib.parent, root=Fib.root, n=Fib.n, partialResult=Fib.partialResult, pendingChildren=Fib.pendingChildren, seq_fib=Fib.seq_fib(seq_fib.n), Fib=Fib.Fib(), gather=entry Fib.gather(gather.value), passUp=Fib.passUp(), pup=Fib.pup(pup.p), initMethod=Fib.initMethod(), constructorHelper=Fib.constructorHelper()}] [def=Symbol(EXPR, tests::Fib{parent=Fib.parent, root=Fib.root, n=Fib.n, partialResult=Fib.partialResult, pendingChildren=Fib.pendingChildren, seq_fib=Fib.seq_fib(seq_fib.n), Fib=Fib.Fib(), gather=entry Fib.gather(gather.value), passUp=Fib.passUp(), pup=Fib.pup(pup.p), initMethod=Fib.initMethod(), constructorHelper=Fib.constructorHelper()}, )]
            1. =(tests::Fib{parent=Fib.parent, root=Fib.root, n=Fib.n, partialResult=Fib.partialResult, pendingChildren=Fib.pendingChildren, seq_fib=Fib.seq_fib(seq_fib.n), Fib=Fib.Fib(), gather=entry Fib.gather(gather.value), passUp=Fib.passUp(), pup=Fib.pup(pup.p), initMethod=Fib.initMethod(), constructorHelper=Fib.constructorHelper()}) [type=tests::Fib{parent=Fib.parent, root=Fib.root, n=Fib.n, partialResult=Fib.partialResult, pendingChildren=Fib.pendingChildren, seq_fib=Fib.seq_fib(seq_fib.n), Fib=Fib.Fib(), gather=entry Fib.gather(gather.value), passUp=Fib.passUp(), pup=Fib.pup(pup.p), initMethod=Fib.initMethod(), constructorHelper=Fib.constructorHelper()}] [def=Symbol(tests::Fib{parent=Fib.parent, root=Fib.root, n=Fib.n, partialResult=Fib.partialResult, pendingChildren=Fib.pendingChildren, seq_fib=Fib.seq_fib(seq_fib.n), Fib=Fib.Fib(), gather=entry Fib.gather(gather.value), passUp=Fib.passUp(), pup=Fib.pup(pup.p), initMethod=Fib.initMethod(), constructorHelper=Fib.constructorHelper()}, )]
              1. a(tests::Fib{parent=Fib.parent, root=Fib.root, n=Fib.n, partialResult=Fib.partialResult, pendingChildren=Fib.pendingChildren, seq_fib=Fib.seq_fib(seq_fib.n), Fib=Fib.Fib(), gather=entry Fib.gather(gather.value), passUp=Fib.passUp(), pup=Fib.pup(pup.p), initMethod=Fib.initMethod(), constructorHelper=Fib.constructorHelper()}) [type=tests::Fib{parent=Fib.parent, root=Fib.root, n=Fib.n, partialResult=Fib.partialResult, pendingChildren=Fib.pendingChildren, seq_fib=Fib.seq_fib(seq_fib.n), Fib=Fib.Fib(), gather=entry Fib.gather(gather.value), passUp=Fib.passUp(), pup=Fib.pup(pup.p), initMethod=Fib.initMethod(), constructorHelper=Fib.constructorHelper()}] [def=Main.a]
              2. new
                1. OBJECT_TYPE(tests::Fib{parent=Fib.parent, root=Fib.root, n=Fib.n, partialResult=Fib.partialResult, pendingChildren=Fib.pendingChildren, seq_fib=Fib.seq_fib(seq_fib.n), Fib=Fib.Fib(), gather=entry Fib.gather(gather.value), passUp=Fib.passUp(), pup=Fib.pup(pup.p), initMethod=Fib.initMethod(), constructorHelper=Fib.constructorHelper()}) [type=tests::Fib{parent=Fib.parent, root=Fib.root, n=Fib.n, partialResult=Fib.partialResult, pendingChildren=Fib.pendingChildren, seq_fib=Fib.seq_fib(seq_fib.n), Fib=Fib.Fib(), gather=entry Fib.gather(gather.value), passUp=Fib.passUp(), pup=Fib.pup(pup.p), initMethod=Fib.initMethod(), constructorHelper=Fib.constructorHelper()}] [def=null]
                  1. QUALIFIED_TYPE_IDENT
                    1. Fib
                2. ARGUMENT_LIST
          2. EXPR(tests::Main{n=Main.n, a=Main.a, b=Main.b, Main=entry Main.Main(Main.m), done=entry Main.done(done.value), pup=Main.pup(pup.p), initMethod=Main.initMethod(), constructorHelper=Main.constructorHelper()}) [type=tests::Main{n=Main.n, a=Main.a, b=Main.b, Main=entry Main.Main(Main.m), done=entry Main.done(done.value), pup=Main.pup(pup.p), initMethod=Main.initMethod(), constructorHelper=Main.constructorHelper()}] [def=Symbol(EXPR, tests::Main{n=Main.n, a=Main.a, b=Main.b, Main=entry Main.Main(Main.m), done=entry Main.done(done.value), pup=Main.pup(pup.p), initMethod=Main.initMethod(), constructorHelper=Main.constructorHelper()}, )]
            1. =(tests::Main{n=Main.n, a=Main.a, b=Main.b, Main=entry Main.Main(Main.m), done=entry Main.done(done.value), pup=Main.pup(pup.p), initMethod=Main.initMethod(), constructorHelper=Main.constructorHelper()}) [type=tests::Main{n=Main.n, a=Main.a, b=Main.b, Main=entry Main.Main(Main.m), done=entry Main.done(done.value), pup=Main.pup(pup.p), initMethod=Main.initMethod(), constructorHelper=Main.constructorHelper()}] [def=Symbol(tests::Main{n=Main.n, a=Main.a, b=Main.b, Main=entry Main.Main(Main.m), done=entry Main.done(done.value), pup=Main.pup(pup.p), initMethod=Main.initMethod(), constructorHelper=Main.constructorHelper()}, )]
              1. b(tests::Main{n=Main.n, a=Main.a, b=Main.b, Main=entry Main.Main(Main.m), done=entry Main.done(done.value), pup=Main.pup(pup.p), initMethod=Main.initMethod(), constructorHelper=Main.constructorHelper()}) [type=tests::Main{n=Main.n, a=Main.a, b=Main.b, Main=entry Main.Main(Main.m), done=entry Main.done(done.value), pup=Main.pup(pup.p), initMethod=Main.initMethod(), constructorHelper=Main.constructorHelper()}] [def=Main.b]
              2. new
                1. OBJECT_TYPE(tests::Main{n=Main.n, a=Main.a, b=Main.b, Main=entry Main.Main(Main.m), done=entry Main.done(done.value), pup=Main.pup(pup.p), initMethod=Main.initMethod(), constructorHelper=Main.constructorHelper()}) [type=tests::Main{n=Main.n, a=Main.a, b=Main.b, Main=entry Main.Main(Main.m), done=entry Main.done(done.value), pup=Main.pup(pup.p), initMethod=Main.initMethod(), constructorHelper=Main.constructorHelper()}] [def=null]
                  1. QUALIFIED_TYPE_IDENT
                    1. Main
                2. ARGUMENT_LIST
      10. FUNCTION_METHOD_DECL
        1. MODIFIER_LIST
          1. ACCESS_MODIFIER_LIST
            1. protected
        2. void(void) [type=void] [def=null]
        3. constructorHelper(void) [type=void] [def=Main.constructorHelper()]
        4. FORMAL_PARAM_LIST
        5. BLOCK
          1. EXPR
            1. METHOD_CALL
              1. _initTrace
              2. ARGUMENT_LIST
    4. TYPE
      1. chare
      2. Fib(tests::Fib{parent=Fib.parent, root=Fib.root, n=Fib.n, partialResult=Fib.partialResult, pendingChildren=Fib.pendingChildren, seq_fib=Fib.seq_fib(seq_fib.n), Fib=Fib.Fib(), gather=entry Fib.gather(gather.value), passUp=Fib.passUp(), pup=Fib.pup(pup.p), initMethod=Fib.initMethod(), constructorHelper=Fib.constructorHelper()}) [type=tests::Fib{parent=Fib.parent, root=Fib.root, n=Fib.n, partialResult=Fib.partialResult, pendingChildren=Fib.pendingChildren, seq_fib=Fib.seq_fib(seq_fib.n), Fib=Fib.Fib(), gather=entry Fib.gather(gather.value), passUp=Fib.passUp(), pup=Fib.pup(pup.p), initMethod=Fib.initMethod(), constructorHelper=Fib.constructorHelper()}] [def=tests::Fib{parent=Fib.parent, root=Fib.root, n=Fib.n, partialResult=Fib.partialResult, pendingChildren=Fib.pendingChildren, seq_fib=Fib.seq_fib(seq_fib.n), Fib=Fib.Fib(), gather=entry Fib.gather(gather.value), passUp=Fib.passUp(), pup=Fib.pup(pup.p), initMethod=Fib.initMethod(), constructorHelper=Fib.constructorHelper()}]
      3. OBJECT_VAR_DECLARATION
        1. MODIFIER_LIST
          1. ACCESS_MODIFIER_LIST
            1. private
        2. PROXY_TYPE(Symbol(Fib@, )) [type=Symbol(Fib@, )] [def=null]
          1. QUALIFIED_TYPE_IDENT
            1. Fib
        3. VAR_DECLARATOR_LIST
          1. VAR_DECLARATOR
            1. parent(Symbol(Fib@, )) [type=Symbol(Fib@, )] [def=Fib.parent]
      4. PRIMITIVE_VAR_DECLARATION
        1. MODIFIER_LIST
          1. ACCESS_MODIFIER_LIST
            1. private
        2. SIMPLE_TYPE(bool) [type=bool] [def=null]
          1. boolean
        3. VAR_DECLARATOR_LIST
          1. VAR_DECLARATOR
            1. root(bool) [type=bool] [def=Fib.root]
      5. PRIMITIVE_VAR_DECLARATION
        1. MODIFIER_LIST
          1. ACCESS_MODIFIER_LIST
            1. private
        2. SIMPLE_TYPE(int) [type=int] [def=null]
          1. int
        3. VAR_DECLARATOR_LIST
          1. VAR_DECLARATOR
            1. n(int) [type=int] [def=Fib.n]
      6. PRIMITIVE_VAR_DECLARATION
        1. MODIFIER_LIST
          1. ACCESS_MODIFIER_LIST
            1. private
        2. SIMPLE_TYPE(int) [type=int] [def=null]
          1. int
        3. VAR_DECLARATOR_LIST
          1. VAR_DECLARATOR
            1. partialResult(int) [type=int] [def=Fib.partialResult]
      7. PRIMITIVE_VAR_DECLARATION
        1. MODIFIER_LIST
          1. ACCESS_MODIFIER_LIST
            1. private
        2. SIMPLE_TYPE(int) [type=int] [def=null]
          1. int
        3. VAR_DECLARATOR_LIST
          1. VAR_DECLARATOR
            1. pendingChildren(int) [type=int] [def=Fib.pendingChildren]
      8. FUNCTION_METHOD_DECL
        1. MODIFIER_LIST
          1. ACCESS_MODIFIER_LIST
            1. private
        2. SIMPLE_TYPE(int) [type=int] [def=null]
          1. int
        3. seq_fib(int) [type=int] [def=Fib.seq_fib(seq_fib.n)]
        4. FORMAL_PARAM_LIST
          1. FORMAL_PARAM_STD_DECL
            1. SIMPLE_TYPE(int) [type=int] [def=null]
              1. int
            2. n(int) [type=int] [def=seq_fib.n]
        5. BLOCK
          1. if
            1. PAREN_EXPR
              1. EXPR(int) [type=int] [def=Symbol(EXPR, int, )]
                1. <(int) [type=int] [def=Symbol(<, int, )]
                  1. n(int) [type=int] [def=seq_fib.n]
                  2. 2(int) [type=int] [def=null]
            2. BLOCK
              1. return
                1. EXPR(int) [type=int] [def=Symbol(EXPR, int, )]
                  1. n(int) [type=int] [def=seq_fib.n]
          2. return
            1. EXPR(int) [type=int] [def=Symbol(EXPR, int, )]
              1. +(int) [type=int] [def=Symbol(+, int, )]
                1. METHOD_CALL(int) [type=int] [def=null]
                  1. seq_fib(int) [type=int] [def=Fib.seq_fib(seq_fib.n)]
                  2. ARGUMENT_LIST
                    1. EXPR(int) [type=int] [def=Symbol(EXPR, int, )]
                      1. -(int) [type=int] [def=Symbol(-, int, )]
                        1. n(int) [type=int] [def=seq_fib.n]
                        2. 1(int) [type=int] [def=null]
                2. METHOD_CALL(int) [type=int] [def=null]
                  1. seq_fib(int) [type=int] [def=Fib.seq_fib(seq_fib.n)]
                  2. ARGUMENT_LIST
                    1. EXPR(int) [type=int] [def=Symbol(EXPR, int, )]
                      1. -(int) [type=int] [def=Symbol(-, int, )]
                        1. n(int) [type=int] [def=seq_fib.n]
                        2. 2(int) [type=int] [def=null]
      9. ENTRY_CONSTRUCTOR_DECL
        1. MODIFIER_LIST
          1. ACCESS_MODIFIER_LIST
            1. public
          2. CHARJ_MODIFIER_LIST
            1. entry
        2. Fib(tests::Fib{parent=Fib.parent, root=Fib.root, n=Fib.n, partialResult=Fib.partialResult, pendingChildren=Fib.pendingChildren, seq_fib=Fib.seq_fib(seq_fib.n), Fib=Fib.Fib(), gather=entry Fib.gather(gather.value), passUp=Fib.passUp(), pup=Fib.pup(pup.p), initMethod=Fib.initMethod(), constructorHelper=Fib.constructorHelper()}) [type=tests::Fib{parent=Fib.parent, root=Fib.root, n=Fib.n, partialResult=Fib.partialResult, pendingChildren=Fib.pendingChildren, seq_fib=Fib.seq_fib(seq_fib.n), Fib=Fib.Fib(), gather=entry Fib.gather(gather.value), passUp=Fib.passUp(), pup=Fib.pup(pup.p), initMethod=Fib.initMethod(), constructorHelper=Fib.constructorHelper()}] [def=entry Fib.Fib(Fib.root_,Fib.n_,Fib.parent_)]
        3. FORMAL_PARAM_LIST
          1. FORMAL_PARAM_STD_DECL
            1. SIMPLE_TYPE(bool) [type=bool] [def=null]
              1. boolean
            2. root_(bool) [type=bool] [def=Fib.root_]
          2. FORMAL_PARAM_STD_DECL
            1. SIMPLE_TYPE(int) [type=int] [def=null]
              1. int
            2. n_(int) [type=int] [def=Fib.n_]
          3. FORMAL_PARAM_STD_DECL
            1. PROXY_TYPE(Symbol(Fib@, )) [type=Symbol(Fib@, )] [def=null]
              1. QUALIFIED_TYPE_IDENT
                1. Fib
            2. parent_(Symbol(Fib@, )) [type=Symbol(Fib@, )] [def=Fib.parent_]
        4. BLOCK
          1. EXPR(void) [type=void] [def=Symbol(EXPR, void, )]
            1. METHOD_CALL(void) [type=void] [def=null]
              1. constructorHelper(void) [type=void] [def=Fib.constructorHelper()]
              2. ARGUMENT_LIST
          2. EXPR(int) [type=int] [def=Symbol(EXPR, int, )]
            1. =(int) [type=int] [def=Symbol(=, int, )]
              1. n(int) [type=int] [def=Fib.n]
              2. n_(int) [type=int] [def=Fib.n_]
          3. EXPR(bool) [type=bool] [def=Symbol(EXPR, bool, )]
            1. =(bool) [type=bool] [def=Symbol(=, bool, )]
              1. root(bool) [type=bool] [def=Fib.root]
              2. root_(bool) [type=bool] [def=Fib.root_]
          4. EXPR(Symbol(Fib@, )) [type=Symbol(Fib@, )] [def=Symbol(EXPR, Symbol(Fib@, ), )]
            1. =(Symbol(Fib@, )) [type=Symbol(Fib@, )] [def=Symbol(=, Symbol(Fib@, ), )]
              1. parent(Symbol(Fib@, )) [type=Symbol(Fib@, )] [def=Fib.parent]
              2. parent_(Symbol(Fib@, )) [type=Symbol(Fib@, )] [def=Fib.parent_]
          5. if
            1. PAREN_EXPR
              1. EXPR(int) [type=int] [def=Symbol(EXPR, int, )]
                1. <=(int) [type=int] [def=Symbol(<=, int, )]
                  1. n(int) [type=int] [def=Fib.n]
                  2. 10(int) [type=int] [def=null]
            2. BLOCK
              1. EXPR(int) [type=int] [def=Symbol(EXPR, int, )]
                1. =(int) [type=int] [def=Symbol(=, int, )]
                  1. partialResult(int) [type=int] [def=Fib.partialResult]
                  2. METHOD_CALL(int) [type=int] [def=null]
                    1. seq_fib(int) [type=int] [def=Fib.seq_fib(seq_fib.n)]
                    2. ARGUMENT_LIST
                      1. EXPR(int) [type=int] [def=Symbol(EXPR, int, )]
                        1. n(int) [type=int] [def=Fib.n]
              2. EXPR(void) [type=void] [def=Symbol(EXPR, void, )]
                1. METHOD_CALL(void) [type=void] [def=null]
                  1. passUp(void) [type=void] [def=Fib.passUp()]
                  2. ARGUMENT_LIST
            3. BLOCK
              1. OBJECT_VAR_DECLARATION
                1. PROXY_TYPE(Symbol(Fib@, )) [type=Symbol(Fib@, )] [def=null]
                  1. QUALIFIED_TYPE_IDENT
                    1. Fib
                2. VAR_DECLARATOR_LIST
                  1. VAR_DECLARATOR
                    1. child1(Symbol(Fib@, )) [type=Symbol(Fib@, )] [def=Fib.child1]
                    2. EXPR(Symbol(Fib@, )) [type=Symbol(Fib@, )] [def=Symbol(EXPR, Symbol(Fib@, ), )]
                      1. new
                        1. PROXY_TYPE(Symbol(Fib@, )) [type=Symbol(Fib@, )] [def=null]
                          1. QUALIFIED_TYPE_IDENT
                            1. Fib
                        2. ARGUMENT_LIST
                          1. EXPR(bool) [type=bool] [def=Symbol(EXPR, bool, )]
                            1. false(bool) [type=bool] [def=null]
                          2. EXPR(int) [type=int] [def=Symbol(EXPR, int, )]
                            1. -(int) [type=int] [def=Symbol(-, int, )]
                              1. n(int) [type=int] [def=Fib.n]
                              2. 1(int) [type=int] [def=null]
                          3. EXPR
                            1. thishandle
              2. OBJECT_VAR_DECLARATION
                1. PROXY_TYPE(Symbol(Fib@, )) [type=Symbol(Fib@, )] [def=null]
                  1. QUALIFIED_TYPE_IDENT
                    1. Fib
                2. VAR_DECLARATOR_LIST
                  1. VAR_DECLARATOR
                    1. child2(Symbol(Fib@, )) [type=Symbol(Fib@, )] [def=Fib.child2]
                    2. EXPR(Symbol(Fib@, )) [type=Symbol(Fib@, )] [def=Symbol(EXPR, Symbol(Fib@, ), )]
                      1. new
                        1. PROXY_TYPE(Symbol(Fib@, )) [type=Symbol(Fib@, )] [def=null]
                          1. QUALIFIED_TYPE_IDENT
                            1. Fib
                        2. ARGUMENT_LIST
                          1. EXPR(bool) [type=bool] [def=Symbol(EXPR, bool, )]
                            1. false(bool) [type=bool] [def=null]
                          2. EXPR(int) [type=int] [def=Symbol(EXPR, int, )]
                            1. -(int) [type=int] [def=Symbol(-, int, )]
                              1. n(int) [type=int] [def=Fib.n]
                              2. 2(int) [type=int] [def=null]
                          3. EXPR
                            1. thishandle
              3. EXPR(int) [type=int] [def=Symbol(EXPR, int, )]
                1. =(int) [type=int] [def=Symbol(=, int, )]
                  1. partialResult(int) [type=int] [def=Fib.partialResult]
                  2. 0(int) [type=int] [def=null]
              4. EXPR(int) [type=int] [def=Symbol(EXPR, int, )]
                1. =(int) [type=int] [def=Symbol(=, int, )]
                  1. pendingChildren(int) [type=int] [def=Fib.pendingChildren]
                  2. 2(int) [type=int] [def=null]
      10. ENTRY_FUNCTION_DECL
        1. MODIFIER_LIST
          1. ACCESS_MODIFIER_LIST
            1. public
          2. CHARJ_MODIFIER_LIST
            1. traced
            2. entry
        2. void(void) [type=void] [def=null]
        3. gather(void) [type=void] [def=entry Fib.gather(gather.value)]
        4. FORMAL_PARAM_LIST
          1. FORMAL_PARAM_STD_DECL
            1. SIMPLE_TYPE(int) [type=int] [def=null]
              1. int
            2. value(int) [type=int] [def=gather.value]
        5. BLOCK
          1. EXPR(int) [type=int] [def=Symbol(EXPR, int, )]
            1. +=(int) [type=int] [def=Symbol(+=, int, )]
              1. partialResult(int) [type=int] [def=Fib.partialResult]
              2. value(int) [type=int] [def=gather.value]
          2. if
            1. PAREN_EXPR
              1. EXPR(int) [type=int] [def=Symbol(EXPR, int, )]
                1. ==(int) [type=int] [def=Symbol(==, int, )]
                  1. PRE_DEC(int) [type=int] [def=Symbol(--, int, )]
                    1. pendingChildren(int) [type=int] [def=Fib.pendingChildren]
                  2. 0(int) [type=int] [def=null]
            2. BLOCK
              1. EXPR(void) [type=void] [def=Symbol(EXPR, void, )]
                1. METHOD_CALL(void) [type=void] [def=null]
                  1. passUp(void) [type=void] [def=Fib.passUp()]
                  2. ARGUMENT_LIST
      11. FUNCTION_METHOD_DECL
        1. MODIFIER_LIST
          1. ACCESS_MODIFIER_LIST
            1. public
          2. CHARJ_MODIFIER_LIST
            1. traced
        2. void(void) [type=void] [def=null]
        3. passUp(void) [type=void] [def=Fib.passUp()]
        4. FORMAL_PARAM_LIST
        5. BLOCK
          1. if
            1. PAREN_EXPR
              1. EXPR(bool) [type=bool] [def=Symbol(EXPR, bool, )]
                1. root(bool) [type=bool] [def=Fib.root]
            2. BLOCK
              1. EXPR(void) [type=void] [def=Symbol(EXPR, void, )]
                1. ENTRY_METHOD_CALL(void) [type=void] [def=null]
                  1. DOT(void) [type=void] [def=entry Main.done(done.value)]
                    1. main(Symbol(Main@, )) [type=Symbol(Main@, )] [def=tests.main]
                    2. done(void) [type=void] [def=entry Main.done(done.value)]
                  2. ARGUMENT_LIST
                    1. EXPR(int) [type=int] [def=Symbol(EXPR, int, )]
                      1. partialResult(int) [type=int] [def=Fib.partialResult]
            3. BLOCK
              1. EXPR(void) [type=void] [def=Symbol(EXPR, void, )]
                1. ENTRY_METHOD_CALL(void) [type=void] [def=null]
                  1. DOT(void) [type=void] [def=entry Fib.gather(gather.value)]
                    1. parent(Symbol(Fib@, )) [type=Symbol(Fib@, )] [def=Fib.parent]
                    2. gather(void) [type=void] [def=entry Fib.gather(gather.value)]
                  2. ARGUMENT_LIST
                    1. EXPR(int) [type=int] [def=Symbol(EXPR, int, )]
                      1. partialResult(int) [type=int] [def=Fib.partialResult]
          2. delete
            1. EXPR(tests::Fib{parent=Fib.parent, root=Fib.root, n=Fib.n, partialResult=Fib.partialResult, pendingChildren=Fib.pendingChildren, seq_fib=Fib.seq_fib(seq_fib.n), Fib=Fib.Fib(), gather=entry Fib.gather(gather.value), passUp=Fib.passUp(), pup=Fib.pup(pup.p), initMethod=Fib.initMethod(), constructorHelper=Fib.constructorHelper()}) [type=tests::Fib{parent=Fib.parent, root=Fib.root, n=Fib.n, partialResult=Fib.partialResult, pendingChildren=Fib.pendingChildren, seq_fib=Fib.seq_fib(seq_fib.n), Fib=Fib.Fib(), gather=entry Fib.gather(gather.value), passUp=Fib.passUp(), pup=Fib.pup(pup.p), initMethod=Fib.initMethod(), constructorHelper=Fib.constructorHelper()}] [def=Symbol(EXPR, tests::Fib{parent=Fib.parent, root=Fib.root, n=Fib.n, partialResult=Fib.partialResult, pendingChildren=Fib.pendingChildren, seq_fib=Fib.seq_fib(seq_fib.n), Fib=Fib.Fib(), gather=entry Fib.gather(gather.value), passUp=Fib.passUp(), pup=Fib.pup(pup.p), initMethod=Fib.initMethod(), constructorHelper=Fib.constructorHelper()}, )]
              1. this(tests::Fib{parent=Fib.parent, root=Fib.root, n=Fib.n, partialResult=Fib.partialResult, pendingChildren=Fib.pendingChildren, seq_fib=Fib.seq_fib(seq_fib.n), Fib=Fib.Fib(), gather=entry Fib.gather(gather.value), passUp=Fib.passUp(), pup=Fib.pup(pup.p), initMethod=Fib.initMethod(), constructorHelper=Fib.constructorHelper()}) [type=tests::Fib{parent=Fib.parent, root=Fib.root, n=Fib.n, partialResult=Fib.partialResult, pendingChildren=Fib.pendingChildren, seq_fib=Fib.seq_fib(seq_fib.n), Fib=Fib.Fib(), gather=entry Fib.gather(gather.value), passUp=Fib.passUp(), pup=Fib.pup(pup.p), initMethod=Fib.initMethod(), constructorHelper=Fib.constructorHelper()}] [def=tests::Fib{parent=Fib.parent, root=Fib.root, n=Fib.n, partialResult=Fib.partialResult, pendingChildren=Fib.pendingChildren, seq_fib=Fib.seq_fib(seq_fib.n), Fib=Fib.Fib(), gather=entry Fib.gather(gather.value), passUp=Fib.passUp(), pup=Fib.pup(pup.p), initMethod=Fib.initMethod(), constructorHelper=Fib.constructorHelper()}]
      12. FUNCTION_METHOD_DECL
        1. MODIFIER_LIST
          1. ACCESS_MODIFIER_LIST
            1. public
        2. void(void) [type=void] [def=null]
        3. pup(void) [type=void] [def=Fib.pup(pup.p)]
        4. FORMAL_PARAM_LIST
          1. FORMAL_PARAM_STD_DECL
            1. REFERENCE_TYPE
              1. QUALIFIED_TYPE_IDENT
                1. PUP::er
            2. p
        5. BLOCK
          1. EXPR
            1. |
              1. p
              2. parent(Symbol(Fib@, )) [type=Symbol(Fib@, )] [def=Fib.parent]
          2. EXPR
            1. |
              1. p
              2. root(bool) [type=bool] [def=Fib.root]
          3. EXPR
            1. |
              1. p
              2. n(int) [type=int] [def=Fib.n]
          4. EXPR
            1. |
              1. p
              2. partialResult(int) [type=int] [def=Fib.partialResult]
          5. EXPR
            1. |
              1. p
              2. pendingChildren(int) [type=int] [def=Fib.pendingChildren]
      13. FUNCTION_METHOD_DECL
        1. MODIFIER_LIST
          1. ACCESS_MODIFIER_LIST
            1. private
        2. void(void) [type=void] [def=null]
        3. initMethod(void) [type=void] [def=Fib.initMethod()]
        4. FORMAL_PARAM_LIST
        5. BLOCK
      14. FUNCTION_METHOD_DECL
        1. MODIFIER_LIST
          1. ACCESS_MODIFIER_LIST
            1. protected
        2. void(void) [type=void] [def=null]
        3. constructorHelper(void) [type=void] [def=Fib.constructorHelper()]
        4. FORMAL_PARAM_LIST
        5. BLOCK
          1. EXPR
            1. METHOD_CALL
              1. _initTrace
              2. ARGUMENT_LIST
      15. CONSTRUCTOR_DECL
        1. MODIFIER_LIST
          1. ACCESS_MODIFIER_LIST
            1. public
        2. Fib(tests::Fib{parent=Fib.parent, root=Fib.root, n=Fib.n, partialResult=Fib.partialResult, pendingChildren=Fib.pendingChildren, seq_fib=Fib.seq_fib(seq_fib.n), Fib=Fib.Fib(), gather=entry Fib.gather(gather.value), passUp=Fib.passUp(), pup=Fib.pup(pup.p), initMethod=Fib.initMethod(), constructorHelper=Fib.constructorHelper()}) [type=tests::Fib{parent=Fib.parent, root=Fib.root, n=Fib.n, partialResult=Fib.partialResult, pendingChildren=Fib.pendingChildren, seq_fib=Fib.seq_fib(seq_fib.n), Fib=Fib.Fib(), gather=entry Fib.gather(gather.value), passUp=Fib.passUp(), pup=Fib.pup(pup.p), initMethod=Fib.initMethod(), constructorHelper=Fib.constructorHelper()}] [def=Fib.Fib()]
        3. FORMAL_PARAM_LIST
        4. BLOCK
          1. EXPR(void) [type=void] [def=Symbol(EXPR, void, )]
            1. METHOD_CALL(void) [type=void] [def=null]
              1. constructorHelper(void) [type=void] [def=Fib.constructorHelper()]
              2. ARGUMENT_LIST