Charj: removed Java code for arranging modifiers and adding private. Added Antlr...
authorJonathan Lifflander <jliffl2@illinois.edu>
Tue, 22 Jun 2010 17:14:04 +0000 (12:14 -0500)
committerJonathan Lifflander <jliffl2@illinois.edu>
Tue, 22 Jun 2010 17:14:04 +0000 (12:14 -0500)
src/langs/charj/src/charj/translator/AstModifier.java
src/langs/charj/src/charj/translator/CharjASTModifier.g
src/langs/charj/src/charj/translator/CharjASTModifier2.g
src/langs/charj/src/charj/translator/CharjEmitter.g

index e399e7558df2be06b35eecc1f5bc2dd7168abb8d..0593b6532e4e4a89defab79a5fc677c699fcaf08 100644 (file)
@@ -216,72 +216,6 @@ class AstModifier
         pupNode.getChild(4).getChild(index).getChild(1).getChild(0).getChild(0).addChild(createNode(CharjParser.ARGUMENT_LIST, "ARGUMENT_LIST"));
     }
 
-    protected void arrangeModifiers(CharjAST modlistNode)
-    {
-        CharjAST accessList = createNode(CharjParser.ACCESS_MODIFIER_LIST, "ACCESS_MODIFIER_LIST");
-        CharjAST localList = createNode(CharjParser.LOCAL_MODIFIER_LIST, "LOCAL_MODIFIER_LIST");
-        CharjAST charjList = createNode(CharjParser.CHARJ_MODIFIER_LIST, "CHARJ_MODIFIER_LIST");
-        CharjAST otherList = createNode(CharjParser.CHARJ_MODIFIER_LIST, "OTHER_MODIFIER_LIST");
-
-
-        Iterator<CharjAST> iter = modlistNode.getChildren().iterator();
-        
-        while(iter.hasNext())
-        {
-            CharjAST mod = iter.next();
-            iter.remove();
-
-            switch(mod.getType())
-            {
-                case CharjParser.PUBLIC:
-                case CharjParser.PRIVATE:
-                case CharjParser.PROTECTED:
-                    accessList.addChild(mod.dupNode());
-                    break;
-                case CharjParser.ENTRY:
-                    charjList.addChild(mod.dupNode());
-                    break;
-                case CharjParser.FINAL:
-                case CharjParser.STATIC:
-                case CharjParser.VOLATILE:
-                    localList.addChild(mod.dupNode());
-                    break;
-                case CharjParser.ABSTRACT:
-                case CharjParser.NATIVE:
-                    otherList.addChild(mod.dupNode());
-                    break;
-            }
-        }
-
-       if(accessList.getChildren() == null)
-           try
-           {
-               if(charjList.getChildren().contains(createNode(CharjParser.ENTRY, "entry")))
-                   accessList.addChild(createNode(CharjParser.PUBLIC, "public"));
-               else
-                   accessList.addChild(createNode(CharjParser.PRIVATE, "private"));
-           }
-           catch(NullPointerException npe)
-           {
-               // charjList == null && accessList is empty
-               accessList.addChild(createNode(CharjParser.PRIVATE, "private"));
-           }
-
-       modlistNode.addChild(accessList);
-       if(localList.getChildren() != null) modlistNode.addChild(localList);
-       if(charjList.getChildren() != null) modlistNode.addChild(charjList);
-       if(otherList.getChildren() != null) modlistNode.addChild(otherList);
-    }
-
-    protected void fillPrivateModifier(CharjAST declNode)
-    {
-        CharjAST modlist = createNode(CharjParser.MODIFIER_LIST, "MODIFIER_LIST");
-        modlist.addChild(createNode(CharjParser.ACCESS_MODIFIER_LIST, "ACCESS_MODIFIER_LIST"));
-        modlist.getChild(0).addChild(createNode(CharjParser.PRIVATE, "private"));
-
-        declNode.insertChild(0, modlist);
-    }
-
     protected void insertHelperRoutineCall(CharjAST ctordecl)
     {
         CharjAST expr = createNode(CharjParser.EXPR, "EXPR");
index f71f6a075751bda3e87deffde89b6c58fd645c66..f26d7968530dbf510b712de1c5f7a1f9fdb134ec 100644 (file)
@@ -96,28 +96,14 @@ classScopeDeclaration
             ty=type IDENT f=formalParameterList a=domainExpression? 
             b=block?)
         {
-            if($m.tree == null)
-                astmod.fillPrivateModifier($d.tree);
-
             if(astmod.isEntry($d.tree))
                 $d.tree.setType(CharjParser.ENTRY_FUNCTION_DECL, "ENTRY_FUNCTION_DECL");
         }
     |   ^(PRIMITIVE_VAR_DECLARATION m = modifierList? simpleType variableDeclaratorList)
-        {
-            if($m.tree == null)
-                astmod.fillPrivateModifier($PRIMITIVE_VAR_DECLARATION.tree);
-        }
     |   ^(OBJECT_VAR_DECLARATION m = modifierList? objectType variableDeclaratorList)
-        {
-            if($m.tree == null)
-                astmod.fillPrivateModifier($OBJECT_VAR_DECLARATION.tree);
-        }
     |   ^(cd=CONSTRUCTOR_DECL m=modifierList? g=genericTypeParameterList? IDENT f=formalParameterList 
             b=block)
         {
-            if($m.tree == null)
-                astmod.fillPrivateModifier($CONSTRUCTOR_DECL.tree);
-
             astmod.insertHelperRoutineCall($CONSTRUCTOR_DECL.tree);
             astmod.checkForDefaultCtor($CONSTRUCTOR_DECL, $CONSTRUCTOR_DECL.tree);
             astmod.checkForMigrationCtor($CONSTRUCTOR_DECL);
@@ -191,10 +177,30 @@ bound
     ;
 
 modifierList
-    :   ^(MODIFIER_LIST modifier+)
-        {
-            astmod.arrangeModifiers($MODIFIER_LIST.tree);
-        }
+    :   ^(MODIFIER_LIST (localModifier | (am+=accessModifier) | charjModifier | otherModifier)*)
+        -> {$am == null}? ^(MODIFIER_LIST ^(ACCESS_MODIFIER_LIST 'private') ^(LOCAL_MODIFIER_LIST localModifier*) ^(CHARJ_MODIFIER_LIST charjModifier*) ^(OTHER_MODIFIER_LIST otherModifier*))
+        -> ^(MODIFIER_LIST ^(ACCESS_MODIFIER_LIST accessModifier*) ^(LOCAL_MODIFIER_LIST localModifier*) ^(CHARJ_MODIFIER_LIST charjModifier*) ^(OTHER_MODIFIER_LIST otherModifier*)) 
+    ;
+
+localModifier
+    :   FINAL
+    |   STATIC
+    |   VOLATILE
+    ;
+
+accessModifier
+    :   PUBLIC
+    |   PROTECTED
+    |   PRIVATE
+    ;
+
+charjModifier
+    :   ENTRY
+    ;
+
+otherModifier
+    :   ABSTRACT
+    |   NATIVE
     ;
 
 modifier
@@ -211,12 +217,6 @@ localModifierList
     :   ^(LOCAL_MODIFIER_LIST localModifier+)
     ;
 
-localModifier
-    :   FINAL
-    |   STATIC
-    |   VOLATILE
-    ;
-
 type
     :   simpleType
     |   objectType 
index e8df31f74f11c8cb65402c3ebe890f4e7523c545..42cc64129ba24b2b8099a9c1f09a5ca2b6dfb535 100644 (file)
@@ -171,7 +171,7 @@ bound
     ;
 
 modifierList
-    :   ^(MODIFIER_LIST accessModifierList? localModifierList? charjModifierList? otherModifierList?)
+    :   ^(MODIFIER_LIST accessModifierList localModifierList charjModifierList otherModifierList)
     ;
 
 modifier
@@ -182,19 +182,19 @@ modifier
     ;
 
 localModifierList
-    :   ^(LOCAL_MODIFIER_LIST localModifier+)
+    :   ^(LOCAL_MODIFIER_LIST localModifier*)
     ;
 
 accessModifierList
-    :   ^(ACCESS_MODIFIER_LIST accessModifier+)
+    :   ^(ACCESS_MODIFIER_LIST accessModifier*)
     ;
 
 charjModifierList
-    :   ^(CHARJ_MODIFIER_LIST charjModifier+)
+    :   ^(CHARJ_MODIFIER_LIST charjModifier*)
     ;
 
 otherModifierList
-    :   ^(OTHER_MODIFIER_LIST otherModifier+)
+    :   ^(OTHER_MODIFIER_LIST otherModifier*)
     ;
     
 localModifier
index 80ca56cb8c4ef6340d18813e0baa7c7b619e3963..de0f39ca82210c361c5a9d717d30a14c96b45cbb 100644 (file)
@@ -399,7 +399,7 @@ throwsClause
     ;
 
 modifierList
-    :   ^(MODIFIER_LIST accessModifierList? localModifierList? charjModifierList? otherModifierList?)
+    :   ^(MODIFIER_LIST accessModifierList localModifierList charjModifierList otherModifierList)
         ->  {emitCC()}? mod_list_cc(accmods = {$accessModifierList.names}, localmods = {$localModifierList.names}, charjmods = {$charjModifierList.names}, othermods = {$otherModifierList.names})
         ->  {emitH()}? mod_list_h(accmods = {$accessModifierList.names}, localmods = {$localModifierList.names}, charjmods = {$charjModifierList.names}, othermods = {$otherModifierList.names})
         ->  {emitCI()}? mod_list_ci(accmods = {$accessModifierList.names}, localmods = {$localModifierList.names}, charjmods = {$charjModifierList.names}, othermods = {$otherModifierList.names})
@@ -415,14 +415,14 @@ modifier
 
 accessModifierList
 returns [List names]
-    :   ^(ACCESS_MODIFIER_LIST (m+=accessModifier)+)
+    :   ^(ACCESS_MODIFIER_LIST (m+=accessModifier)*)
         {
             $names = $m;
         }
     ;
 localModifierList
 returns [List names]
-    :   ^(LOCAL_MODIFIER_LIST (m+=localModifier)+)
+    :   ^(LOCAL_MODIFIER_LIST (m+=localModifier)*)
         {
             $names = $m;
         }
@@ -431,7 +431,7 @@ returns [List names]
 
 charjModifierList
 returns [List names]
-    :   ^(CHARJ_MODIFIER_LIST (m+=charjModifier)+)
+    :   ^(CHARJ_MODIFIER_LIST (m+=charjModifier)*)
         {
             $names = $m;
         }
@@ -439,7 +439,7 @@ returns [List names]
 
 otherModifierList
 returns [List names]
-    :   ^(OTHER_MODIFIER_LIST (m+=otherModifier)+)
+    :   ^(OTHER_MODIFIER_LIST (m+=otherModifier)*)
         {
             $names = $m;
         }