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]