1. CHARJ_SOURCE
    1. TYPE
      1. mainchare
      2. Main(Main{Main=entry Main.Main(Main.msg)}) [type=Main{Main=entry Main.Main(Main.msg)}] [def=Main{Main=entry Main.Main(Main.msg)}]
      3. ENTRY_CONSTRUCTOR_DECL
        1. MODIFIER_LIST
          1. ACCESS_MODIFIER_LIST
            1. public
          2. LOCAL_MODIFIER_LIST
          3. CHARJ_MODIFIER_LIST
            1. entry
          4. OTHER_MODIFIER_LIST
        2. Main(Main{Main=entry Main.Main(Main.msg)}) [type=Main{Main=entry Main.Main(Main.msg)}] [def=entry Main.Main(Main.msg)]
        3. FORMAL_PARAM_LIST
          1. FORMAL_PARAM_STD_DECL
            1. POINTER_TYPE(Symbol(CkArgMsg, )) [type=Symbol(CkArgMsg, )] [def=null]
              1. QUALIFIED_TYPE_IDENT
                1. CkArgMsg
            2. msg(Symbol(CkArgMsg, )) [type=Symbol(CkArgMsg, )] [def=Main.msg]
        4. BLOCK
          1. EXPR
            1. METHOD_CALL
              1. CHELPER
              2. ARGUMENT_LIST
          2. PRIMITIVE_VAR_DECLARATION
            1. SIMPLE_TYPE(int) [type=int] [def=null]
              1. int
            2. VAR_DECLARATOR_LIST
              1. VAR_DECLARATOR
                1. ydim(int) [type=int] [def=Main.ydim]
                2. EXPR(int) [type=int] [def=Symbol(EXPR, int, )]
                  1. 10(int) [type=int] [def=null]
          3. OBJECT_VAR_DECLARATION
            1. POINTER_TYPE(Symbol(Array, )) [type=Symbol(Array, )] [def=null]
              1. QUALIFIED_TYPE_IDENT
                1. Array
                  1. TEMPLATE_INST
                    1. SIMPLE_TYPE(double) [type=double] [def=null]
                      1. double
                    2. 2(int{}) [type=int{}] [def=null]
            2. VAR_DECLARATOR_LIST
              1. VAR_DECLARATOR
                1. A(Symbol(Array, )) [type=Symbol(Array, )] [def=Main.A]
                2. EXPR(Array) [type=Array] [def=Symbol(EXPR, Array, )]
                  1. new
                    1. OBJECT_TYPE(Array) [type=Array] [def=null]
                      1. QUALIFIED_TYPE_IDENT
                        1. Array
                          1. TEMPLATE_INST
                            1. SIMPLE_TYPE(double) [type=double] [def=null]
                              1. double
                            2. 2(int{}) [type=int{}] [def=null]
                    2. ARGUMENT_LIST
                      1. EXPR
                        1. DOMAIN_EXPRESSION
                          1. RANGE_EXPRESSION
                            1. 10
                          2. RANGE_EXPRESSION
                            1. ydim
          4. OBJECT_VAR_DECLARATION
            1. POINTER_TYPE(Symbol(Array, )) [type=Symbol(Array, )] [def=null]
              1. QUALIFIED_TYPE_IDENT
                1. Array
                  1. TEMPLATE_INST
                    1. SIMPLE_TYPE(double) [type=double] [def=null]
                      1. double
            2. VAR_DECLARATOR_LIST
              1. VAR_DECLARATOR
                1. strip(Symbol(Array, )) [type=Symbol(Array, )] [def=Main.strip]
                2. EXPR(Array) [type=Array] [def=Symbol(EXPR, Array, )]
                  1. new
                    1. OBJECT_TYPE(Array) [type=Array] [def=null]
                      1. QUALIFIED_TYPE_IDENT
                        1. Array
                          1. TEMPLATE_INST
                            1. SIMPLE_TYPE(double) [type=double] [def=null]
                              1. double
                    2. ARGUMENT_LIST
                      1. EXPR
                        1. ARRAY_ELEMENT_ACCESS
                          1. A(Symbol(Array, )) [type=Symbol(Array, )] [def=Main.A]
                          2. DOMAIN_EXPRESSION
                            1. RANGE_EXPRESSION
                              1. 1
                            2. RANGE_EXPRESSION
                              1. 0
                              2. ydim