Title: [1100] trunk/qdox/src/grammar/parser.y: Use specific ClassBodyDeclaration according to JLS
Revision
1100
Author
rfscholte
Date
2011-03-03 17:06:20 -0600 (Thu, 03 Mar 2011)

Log Message

Use specific ClassBodyDeclaration according to JLS

Modified Paths


Diff

Modified: trunk/qdox/src/grammar/parser.y (1099 => 1100)

--- trunk/qdox/src/grammar/parser.y	2011-03-03 22:26:57 UTC (rev 1099)
+++ trunk/qdox/src/grammar/parser.y	2011-03-03 23:06:20 UTC (rev 1100)
@@ -486,19 +486,36 @@
     ClassBody;
 
 // 8.1.6 Class Body and Member Declarations
-ClassBody: BRACEOPEN ClassBodyDeclarations_opt BRACECLOSE {
-           builder.endClass(); 
-         };    
+ClassBody: BRACEOPEN ClassBodyDeclarations_opt BRACECLOSE 
+           {
+             builder.endClass(); 
+           };    
 
+// this is slighly different so we can get the correct linenumber
 ClassBodyDeclarations_opt:
-                         | ClassBodyDeclarations;
-                         
-ClassBodyDeclarations: ClassBodyDeclaration
-                     | ClassBodyDeclarations ClassBodyDeclaration;
+                         | ClassBodyDeclarations_opt
+                           { 
+                             line = lexer.getLine(); 
+                           }
+                           ClassBodyDeclaration;
 
-ClassBodyDeclaration: { line = lexer.getLine(); } member;
-                         
+ClassBodyDeclaration: ClassMemberDeclaration
+/*                    | InstanceInitializer */
+                    | StaticInitializer
+                    | ConstructorDeclaration;
 
+ConstructorDeclaration: constructor;
+StaticInitializer: static_block;
+
+ClassMemberDeclaration:	FieldDeclaration
+                      | MethodDeclaration
+                      | ClassDeclaration
+/*                      | InterfaceDeclaration*/
+                      |	SEMI;
+
+FieldDeclaration: fields;
+MethodDeclaration: method;
+
 classorinterface: 
     CLASS { cls.type = ClassDef.CLASS; } | 
     INTERFACE { cls.type = ClassDef.INTERFACE; } |
@@ -545,7 +562,7 @@
 
 // ----- FIELD
 
-fields:
+fields: 
     modifiers type arrayidentifier {
         fieldType = $2;
         makeField($3, lexer.getCodeBody());


To unsubscribe from this list please visit:

http://xircles.codehaus.org/manage_email

Reply via email to