[antlr-interest] [stringtemplate-interest] Working Java 1.5 grammar?
Jim Idle
jimi at temporal-wave.com
Tue Nov 16 13:59:26 PST 2010
I think that the grammar is relying on a faster computer or a longer timeout
;-) Try adding -Xconversiontimeout 30000 to the command line.
Yang's grammar is very accurate for 1.5 but it does rely on backtracking,
which makes it a little slow and a little difficult to report accurate
errors with. However, if you know that the input is good, then this is a
great starting point if you want to do something very custom. Note that you
can always use existing tools such as those within Netbeans and many others
to provide custom refactoring too.
Jim
PS: I answered this on the ANTLR mailing list, which is where it belongs J
From: stringtemplate-interest-bounces at antlr.org
[mailto:stringtemplate-interest-bounces at antlr.org] On Behalf Of Steven
Atkinson
Sent: Tuesday, November 16, 2010 1:31 PM
To: 'stringtemplate-interest at antlr.org'
Cc: 'yang.jiang.z at gmail.com'
Subject: [stringtemplate-interest] Working Java 1.5 grammar?
Folks,
I'm trying to get a working Java 1.5 grammar and tree walker for
source-to-source refactoring efforts at Netflix.
I've installed antlrWorks in IntelliJ, downloaded the Java.g from antlr.org,
and even went hunting in openJDK sources for a working ANTLR v3 grammer for
Java 1.5 or 1.6.
When I try putting the Java.g grammar from Yang Jiang
<http://openjdk.java.net/projects/compiler-grammar/antlrworks/Java.g>
(yang.jiang.z at gmail.com) through ANTLRWorks or on the command line I get the
following error output
Any help is appreciated!
C:\Hack>java -jar antlr-3.2.jar Java.g
warning(209): Java.g:1783:1: Multiple token rules can match input such as
"'-'": SUBSUB, SUB, SUBEQ
As a result, token(s) SUB,SUBEQ were disabled for that input
warning(209): Java.g:1827:1: Multiple token rules can match input such as
"'c'": CASE, CATCH, CHAR, CLASS, CONST, CONTINUE, IDENTIFIER
As a result, token(s) CATCH,CHAR,CLASS,CONST,CONTINUE,IDENTIFIER were
disabled for that input
warning(209): Java.g:1807:1: Multiple token rules can match input such as
"'%'": PERCENT, PERCENTEQ
As a result, token(s) PERCENTEQ were disabled for that input
warning(209): Java.g:1827:1: Multiple token rules can match input such as
"'t'": THIS, THROW, THROWS, TRANSIENT, TRY, TRUE, IDENTIFIER
As a result, token(s) THROW,THROWS,TRANSIENT,TRY,TRUE,IDENTIFIER were
disabled for that input
warning(209): Java.g:1815:1: Multiple token rules can match input such as
"'!'": BANG, BANGEQ
As a result, token(s) BANGEQ were disabled for that input
warning(209): Java.g:1827:1: Multiple token rules can match input such as
"'w'": WHILE, IDENTIFIER
As a result, token(s) IDENTIFIER were disabled for that input
warning(209): Java.g:1779:1: Multiple token rules can match input such as
"'+'": PLUSPLUS, PLUS, PLUSEQ
As a result, token(s) PLUS,PLUSEQ were disabled for that input
warning(209): Java.g:1370:1: Multiple token rules can match input such as
"'1'..'9'": LONGLITERAL, INTLITERAL, FLOATLITERAL, DOUBLELITERAL
As a result, token(s) INTLITERAL,FLOATLITERAL,DOUBLELITERAL were disabled
for that input
warning(209): Java.g:1803:1: Multiple token rules can match input such as
"'^'": CARET, CARETEQ
As a result, token(s) CARETEQ were disabled for that input
warning(209): Java.g:1827:1: Multiple token rules can match input such as
"'s'": SHORT, STATIC, STRICTFP, SUPER, SWITCH, SYNCHRONIZED, IDENTIFIER
As a result, token(s) STATIC,STRICTFP,SUPER,SWITCH,SYNCHRONIZED,IDENTIFIER
were disabled for that input
warning(209): Java.g:1827:1: Multiple token rules can match input such as
"'f'": FINAL, FINALLY, FLOAT, FOR, FALSE, IDENTIFIER
As a result, token(s) FINALLY,FLOAT,FOR,FALSE,IDENTIFIER were disabled for
that input
warning(209): Java.g:1827:1: Multiple token rules can match input such as
"'l'": LONG, IDENTIFIER
As a result, token(s) IDENTIFIER were disabled for that input
warning(209): Java.g:1827:1: Multiple token rules can match input such as
"'v'": VOID, VOLATILE, IDENTIFIER
As a result, token(s) VOLATILE,IDENTIFIER were disabled for that input
warning(209): Java.g:1827:1: Multiple token rules can match input such as
"'d'": DEFAULT, DO, DOUBLE, IDENTIFIER
As a result, token(s) DO,DOUBLE,IDENTIFIER were disabled for that input
warning(209): Java.g:1727:1: Multiple token rules can match input such as
"'='": EQ, EQEQ
As a result, token(s) EQEQ were disabled for that input
warning(209): Java.g:1787:1: Multiple token rules can match input such as
"'*'": STAR, STAREQ
As a result, token(s) STAREQ were disabled for that input
warning(209): Java.g:1827:1: Multiple token rules can match input such as
"'e'": ELSE, ENUM, EXTENDS, IDENTIFIER
As a result, token(s) ENUM,EXTENDS,IDENTIFIER were disabled for that input
warning(209): Java.g:1791:1: Multiple token rules can match input such as
"'/'": COMMENT, LINE_COMMENT, SLASH, SLASHEQ
As a result, token(s) LINE_COMMENT,SLASH,SLASHEQ were disabled for that
input
warning(209): Java.g:1827:1: Multiple token rules can match input such as
"'g'": GOTO, IDENTIFIER
As a result, token(s) IDENTIFIER were disabled for that input
warning(209): Java.g:1827:1: Multiple token rules can match input such as
"'n'": NATIVE, NEW, NULL, IDENTIFIER
As a result, token(s) NEW,NULL,IDENTIFIER were disabled for that input
warning(209): Java.g:1799:1: Multiple token rules can match input such as
"'|'": BARBAR, BAR, BAREQ
As a result, token(s) BAR,BAREQ were disabled for that input
warning(209): Java.g:1827:1: Multiple token rules can match input such as
"'r'": RETURN, IDENTIFIER
As a result, token(s) IDENTIFIER were disabled for that input
warning(209): Java.g:1827:1: Multiple token rules can match input such as
"'p'": PACKAGE, PRIVATE, PROTECTED, PUBLIC, IDENTIFIER
As a result, token(s) PRIVATE,PROTECTED,PUBLIC,IDENTIFIER were disabled for
that input
warning(209): Java.g:1827:1: Multiple token rules can match input such as
"'b'": BOOLEAN, BREAK, BYTE, IDENTIFIER
As a result, token(s) BREAK,BYTE,IDENTIFIER were disabled for that input
warning(209): Java.g:1370:1: Multiple token rules can match input such as
"'0'": LONGLITERAL, INTLITERAL, FLOATLITERAL, DOUBLELITERAL
As a result, token(s) INTLITERAL,FLOATLITERAL,DOUBLELITERAL were disabled
for that input
warning(209): Java.g:1827:1: Multiple token rules can match input such as
"'a'": ABSTRACT, ASSERT, IDENTIFIER
As a result, token(s) ASSERT,IDENTIFIER were disabled for that input
warning(209): Java.g:1795:1: Multiple token rules can match input such as
"'&'": AMPAMP, AMP, AMPEQ
As a result, token(s) AMP,AMPEQ were disabled for that input
warning(209): Java.g:1703:1: Multiple token rules can match input such as
"'.'": FLOATLITERAL, DOUBLELITERAL, DOT, ELLIPSIS
As a result, token(s) DOUBLELITERAL,DOT,ELLIPSIS were disabled for that
input
warning(209): Java.g:1827:1: Multiple token rules can match input such as
"'i'": IF, IMPLEMENTS, IMPORT, INSTANCEOF, INT, INTERFACE, IDENTIFIER
As a result, token(s) IMPLEMENTS,IMPORT,INSTANCEOF,INT,INTERFACE,IDENTIFIER
were disabled for that input
error(208): Java.g:1815:1: The following token definitions can never be
matched because prior tokens match the same input:
INTLITERAL,DOUBLELITERAL,LINE_COMMENT,ASSERT,BREAK,BYTE,CATCH,CHAR,CLASS,CON
S
T,CONTINUE,DO,DOUBLE,ENUM,EXTENDS,FINALLY,FLOAT,FOR,IMPLEMENTS,IMPORT,INSTAN
CEOF,INT,INTERFACE,NEW,PRIVATE,PROTECTED,PUBLIC,STATIC,STRICTFP,SUPER,SWITCH
,SYNCHRONIZED,THROW,THROWS,TRANSIENT,TRY,VOLATIL
E,TRUE,FALSE,NULL,DOT,ELLIPSIS,EQEQ,PLUS,SUB,SLASH,AMP,BAR,PLUSEQ,SUBEQ,STAR
EQ,SLASHEQ,AMPEQ,BAREQ,CARETEQ,PERCENTEQ,BANGEQ
C:\Hack>
More information about the antlr-interest
mailing list