- 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:
