[ http://issues.apache.org/jira/browse/JAXME-77?page=all ]

Jochen Wiedmann resolved JAXME-77.
----------------------------------

    Fix Version/s: 0.6
       Resolution: Fixed
         Assignee: Jochen Wiedmann

Applied to 0.5 and 0.6 branch.


> Java parser chokes on import packagename.*
> ------------------------------------------
>
>                 Key: JAXME-77
>                 URL: http://issues.apache.org/jira/browse/JAXME-77
>             Project: JaxMe
>          Issue Type: Bug
>          Components: JaxMeJS
>    Affects Versions: 0.5
>         Environment: WinXP Pro, Java 1.5.0_03
>            Reporter: Jonathan Tang
>         Assigned To: Jochen Wiedmann
>             Fix For: 0.6
>
>         Attachments: JAXME-77.patch
>
>
> 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]

Reply via email to