Title: [1125] trunk/qdox/src/grammar/parser.y: Use AnyModifiers_opt instead of modifiers, which reflect its usage better
Revision
1125
Author
rfscholte
Date
2011-03-21 16:16:32 -0500 (Mon, 21 Mar 2011)

Log Message

Use AnyModifiers_opt instead of modifiers, which reflect its usage better

Modified Paths

Diff

Modified: trunk/qdox/src/grammar/parser.y (1124 => 1125)

--- trunk/qdox/src/grammar/parser.y	2011-03-17 22:54:55 UTC (rev 1124)
+++ trunk/qdox/src/grammar/parser.y	2011-03-21 21:16:32 UTC (rev 1125)
@@ -145,23 +145,21 @@
     fullidentifier DOT IDENTIFIER { $$ = $1 + '.' + $3; };
 
 // Modifiers to methods, fields, classes, interfaces, parameters, etc...
-modifier:
-	Annotation |
-    PUBLIC          { modifiers.add("public"); } |
-    PROTECTED       { modifiers.add("protected"); } |
-    PRIVATE         { modifiers.add("private"); } |
-    STATIC          { modifiers.add("static"); } |
-    FINAL           { modifiers.add("final"); } |
-    ABSTRACT        { modifiers.add("abstract"); } |
-    NATIVE          { modifiers.add("native"); } |
-    SYNCHRONIZED    { modifiers.add("synchronized"); } |
-    VOLATILE        { modifiers.add("volatile"); } |
-    TRANSIENT       { modifiers.add("transient"); } |
-    STRICTFP        { modifiers.add("strictfp"); } ;
+AnyModifiers_opt:
+                | AnyModifiers_opt AnyModifier;
 
-modifiers:
-    modifiers modifier |
-    ;
+AnyModifier: Annotation 
+           | PUBLIC          { modifiers.add("public"); }
+           | PROTECTED       { modifiers.add("protected"); } 
+           | PRIVATE         { modifiers.add("private"); }
+           | STATIC          { modifiers.add("static"); }
+           | FINAL           { modifiers.add("final"); }
+           | ABSTRACT        { modifiers.add("abstract"); }
+           | NATIVE          { modifiers.add("native"); }
+           | SYNCHRONIZED    { modifiers.add("synchronized"); }
+           | VOLATILE        { modifiers.add("volatile"); }
+           | TRANSIENT       { modifiers.add("transient"); }
+           | STRICTFP        { modifiers.add("strictfp"); } ;
 
 
 //--------------------------------------------------------------------------------
@@ -441,7 +439,7 @@
 // ----- ENUM
 
 // 8.9 Enums
-EnumDeclaration: ClassModifiers_opt ENUM IDENTIFIER Interfaces_opt 
+EnumDeclaration: AnyModifiers_opt /* =ClassModifiers_opt*/ ENUM IDENTIFIER Interfaces_opt 
                { cls.lineNumber = line;
                  cls.modifiers.addAll(modifiers);
                  cls.name = $3;
@@ -451,9 +449,6 @@
                  fieldType = new TypeDef($3, 0);
                } EnumBody;
 
-
-ClassModifiers_opt: modifiers;
-
 /* Specs say: { EnumConstants_opt ,_opt EnumBodyDeclarations_opt }
    The optional COMMA causes trouble for the parser
    For that reason the adjusted options of EnumConstants_opt, which will accept all cases 
@@ -488,7 +483,7 @@
 // 8.1 Class Declaration
 
 NormalClassDeclaration: 
-    modifiers classorinterface IDENTIFIER TypeParameters_opt opt_extends Interfaces_opt  {
+    AnyModifiers_opt classorinterface IDENTIFIER TypeParameters_opt opt_extends Interfaces_opt  {
         cls.lineNumber = line;
         cls.modifiers.addAll(modifiers); modifiers.clear(); 
         cls.name = $3;
@@ -526,9 +521,6 @@
 /*                      | InterfaceDeclaration*/
                       |	SEMI;
 
-FieldDeclaration: fields;
-MethodDeclaration: method;
-
 classorinterface: 
     CLASS { cls.type = ClassDef.CLASS; } | 
     INTERFACE { cls.type = ClassDef.INTERFACE; } |
@@ -552,12 +544,12 @@
 InterfaceType: classtype;
 
 static_block:
-    modifiers CODEBLOCK { lexer.getCodeBody(); modifiers.clear(); };
+    AnyModifiers_opt CODEBLOCK { lexer.getCodeBody(); modifiers.clear(); };
 
 // ----- FIELD
 
-fields: 
-    modifiers type VariableDeclaratorId {
+FieldDeclaration: 
+    AnyModifiers_opt type VariableDeclaratorId {
         fieldType = $2;
         makeField($3, lexer.getCodeBody());
     }
@@ -578,8 +570,8 @@
 
 // ----- METHOD
 
-method:
-    modifiers TypeParameters type IDENTIFIER {
+MethodDeclaration:
+    AnyModifiers_opt TypeParameters type IDENTIFIER {
         builder.beginMethod();
         mth.lineNumber = lexer.getLine();
         mth.modifiers.addAll(modifiers); modifiers.clear(); 
@@ -592,7 +584,7 @@
         builder.endMethod(mth);
         mth = new MethodDef(); 
     } |
-    modifiers type IDENTIFIER {
+    AnyModifiers_opt type IDENTIFIER {
         builder.beginMethod();
         mth.lineNumber = lexer.getLine();
         mth.modifiers.addAll(modifiers); modifiers.clear();
@@ -606,7 +598,7 @@
     };
 
 constructor:
-    modifiers IDENTIFIER {
+    AnyModifiers_opt IDENTIFIER {
         builder.beginConstructor();
         mth.lineNumber = lexer.getLine();
         mth.modifiers.addAll(modifiers); modifiers.clear(); 
@@ -616,7 +608,7 @@
         builder.endConstructor(mth);
         mth = new MethodDef(); 
     } |
-    modifiers TypeParameters IDENTIFIER {
+    AnyModifiers_opt TypeParameters IDENTIFIER {
         builder.beginConstructor();
         mth.lineNumber = lexer.getLine();
         mth.typeParams = typeParams;
@@ -663,7 +655,7 @@
 FormalParameters: FormalParameter
                 | FormalParameters COMMA FormalParameter;
                 
-FormalParameter:  VariableModifiers_opt type /* =Type */ VariableDeclaratorId
+FormalParameter:  AnyModifiers_opt /* =VariableModifiers_opt */ type /* =Type */ VariableDeclaratorId
                   {
                     param.name = $3.name;
                     param.type = $2;
@@ -674,7 +666,7 @@
                     param = new FieldDef();
                   };
 
-LastFormalParameter: VariableModifiers_opt type /* =Type */ DOTDOTDOT VariableDeclaratorId  /* =VariableDeclaratorId */
+LastFormalParameter: AnyModifiers_opt /* =VariableModifiers_opt */ type /* =Type */ DOTDOTDOT VariableDeclaratorId  /* =VariableDeclaratorId */
                      {
                        param.name = $4.name; 
                        param.type = $2;
@@ -685,10 +677,6 @@
                        param = new FieldDef();
                      };
                    | FormalParameter;
-
-VariableModifiers_opt: 
-                     | VariableModifiers_opt modifier;
-
 %%
 
 private JavaLexer lexer;


To unsubscribe from this list please visit:

http://xircles.codehaus.org/manage_email

Reply via email to