Charj: simplify and improve chare type handling
[charm.git] / src / langs / charj / src / charj / translator / CharjSemantics.g
index 39fe290f562fc99c4cd3dac6ffe498db7e551b29..b5ff63f26104a326ef9ba7355ac0333062027ca2 100644 (file)
@@ -119,7 +119,7 @@ importDeclarations returns [List<CharjAST> packageNames]
 
 typeDeclaration[List<CharjAST> imports] returns [ClassSymbol sym]
 scope ScopeStack; // top-level type scope
-    :   ^((('class')|(chareType)|('chare_array' ARRAY_DIMENSION)) IDENT
+    :   ^(TYPE ('class' | chareType) IDENT
             (^('extends' parent=type))? (^('implements' type+))? classScopeDeclaration*)
         {
             Scope outerScope = $ScopeStack[-1]::current;
@@ -140,6 +140,7 @@ chareType
     :   'chare'
     |   'group'
     |   'nodegroup'
+    |   ^('chare_array' ARRAY_DIMENSION)
     ;
 
 enumConstant