Java parser chokes on import packagename.*
------------------------------------------
Key: JAXME-77
URL: http://issues.apache.org/jira/browse/JAXME-77
Project: JaxMe
Type: Bug
Components: JaxMeJS
Versions: 0.5
Environment: WinXP Pro, Java 1.5.0_03
Reporter: Jonathan Tang
When I use JavaParser to parse a class containing imports of the form "import
package.name.*", the parser fails on an IllegalStateException("Unknown token:
87"). Full test case below:
File: JaxmeTest.java
import java.io.FileReader;
import org.apache.ws.jaxme.js.*;
import org.apache.ws.jaxme.js.util.JavaParser;
public class JaxmeTest {
public static void main(String[] args) {
JavaSourceFactory jsf = new JavaSourceFactory();
JavaParser parser = new JavaParser(jsf);
try {
parser.parse(new FileReader("JaxmeTest.java"));
} catch(Exception e) {
e.printStackTrace();
}
}
}
Command line transcript:
C:\workspace\EventMonitor3.0> javac JaxmeTest.java -cp
lib\jaxmejs-0.5.jar;lib\antlr.jar
C:\workspace\EventMonitor3.0> java -cp .;lib\jaxmejs-0.5.jar;lib\antlr.jar
JaxmeTest
java.lang.IllegalStateException: Unknown token: 87
at
org.apache.ws.jaxme.js.util.JavaParser.parseIdentifier(JavaParser.java:177)
at
org.apache.ws.jaxme.js.util.JavaParser.parseIdentifier(JavaParser.java:166)
at
org.apache.ws.jaxme.js.util.JavaParser.parseIdentifier(JavaParser.java:128)
at
org.apache.ws.jaxme.js.util.JavaParser.parseImportStatement(JavaParser.java:122)
at org.apache.ws.jaxme.js.util.JavaParser.parseAST(JavaParser.java:457)
at org.apache.ws.jaxme.js.util.JavaParser.parse(JavaParser.java:108)
at org.apache.ws.jaxme.js.util.JavaParser.parse(JavaParser.java:80)
at JaxmeTest.main(JaxmeTest.java:10)
Looking through the source, it looks like the JavaParser.parseIdentifier()
method called by parseImportStatement() expects the identifier to be a
primitive or ordinary dotted identifier, but the grammar production used in
java15.g is:
identifierStar
: IDENT
( DOT^ IDENT )*
( DOT^ STAR )?
;
This may also have a STAR token, which falls through to the exception case.
For my purposes, I'd be happy if it just ignored the * and didn't choke on the
file.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]