[antlr-interest] Lexer.java output in wrong directory

Martijn Reuvers martijn.reuvers at gmail.com
Sun Sep 13 01:22:17 PDT 2009


Hi Hilco,

Not sure what you want with the import statement in the parser, but I
assume you just want to just use the lexer grammar as input for your
parser grammar, then you should use:

L.g

@header {
  package x;
}


X.g:

options {
    tokenVocab=X;
}

@header {
  package x;
}

This should work with maven.

Martijn

On Sun, Sep 13, 2009 at 8:39 AM, Hilco Wijbenga
<hilco.wijbenga at gmail.com> wrote:
> Hi all,
>
> (I couldn't find an issue tracker so I'm just sending this problem to
> the mailing list. I'm not sure whether it is an ANTLR issue or an
> antlr3-maven-plugin issue.)
>
> I have the setup below. If I run it I get the following result:
>
> hilco at centaur ~/workspaces/default/JavaParser $ mvn clean compile ; tree
> [INFO] Scanning for projects...
> [INFO] ------------------------------------------------------------------------
> [INFO] Building Unnamed - org.example:x:jar:0.0.1-SNAPSHOT
> [INFO]    task-segment: [clean, compile]
> [INFO] ------------------------------------------------------------------------
> [INFO] [clean:clean]
> [INFO] Deleting directory /home/hilco/workspaces/default/JavaParser/target
> [INFO] [antlr3:antlr {execution: default}]
> [INFO] ANTLR: Processing source directory
> /home/hilco/workspaces/default/JavaParser/src/main/antlr3
> ANTLR Parser Generator  Version 3.1.3 Mar 17, 2009 19:23:44
> x/X.g
> [INFO] [resources:resources]
> [WARNING] Using platform encoding (UTF-8 actually) to copy filtered
> resources, i.e. build is platform dependent!
> [INFO] skip non existing resourceDirectory
> /home/hilco/workspaces/default/JavaParser/src/main/resources
> [INFO] [compiler:compile]
> [INFO] Compiling 3 source files to
> /home/hilco/workspaces/default/JavaParser/target/classes
> [INFO] ------------------------------------------------------------------------
> [INFO] BUILD SUCCESSFUL
> [INFO] ------------------------------------------------------------------------
> [INFO] Total time: 5 seconds
> [INFO] Finished at: Sat Sep 12 23:30:56 PDT 2009
> [INFO] Final Memory: 13M/126M
> [INFO] ------------------------------------------------------------------------
> .
> |-- pom.xml
> |-- src
> |   `-- main
> |       `-- antlr3
> |           |-- imports
> |           |   `-- L.g
> |           `-- x
> |               `-- X.g
> `-- target
>    |-- classes
>    |   |-- XLexer.class
>    |   |-- X_L.class
>    |   `-- x
>    |       `-- XParser.class
>    `-- generated-sources
>        `-- antlr3
>            |-- L.tokens
>            |-- X.tokens
>            |-- home
>            |   `-- hilco
>            |       `-- workspaces
>            |           `-- default
>            |               `-- JavaParser
>            |                   `-- src
>            |                       `-- main
>            |                           `-- antlr3
>            |                               `-- XLexer.java
>            `-- x
>                |-- XParser.java
>                `-- X_L.java
>
> Note the strange location of XLexer.java. If I comment out "import L;"
> and uncomment "LETTER : 'X' ;" everything works as expected and
> XLexer.java ends up next to XParser.java.
>
> How do I get "import" to work properly?
>
> Cheers,
> Hilco
>
> .
> |-- pom.xml
> `-- src
>    `-- main
>        `-- antlr3
>            |-- imports
>            |   `-- L.g
>            `-- x
>                `-- X.g
>
> X.g:
> grammar X;
> import L;
> @header {
> package x;
> }
> //LETTER : 'X' ;
> x : 'x' LETTER ;
>
> L.g:
> lexer grammar L;
> LETTER : 'X' ;
>
> pom.xml:
> <project
>  xmlns="http://maven.apache.org/POM/4.0.0"
>  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
> http://maven.apache.org/maven-v4_0_0.xsd"
>>
>  <modelVersion>4.0.0</modelVersion>
>  <groupId>org.example</groupId>
>  <artifactId>x</artifactId>
>  <version>0.0.1-SNAPSHOT</version>
>  <dependencies>
>    <dependency>
>      <groupId>org.antlr</groupId>
>      <artifactId>antlr-runtime</artifactId>
>      <version>3.1.3</version>
>    </dependency>
>  </dependencies>
>  <build>
>    <plugins>
>      <plugin>
>        <groupId>org.antlr</groupId>
>        <artifactId>antlr3-maven-plugin</artifactId>
>        <version>3.1.3-1</version>
>        <executions>
>          <execution>
>            <goals>
>              <goal>antlr</goal>
>            </goals>
>          </execution>
>        </executions>
>      </plugin>
>    </plugins>
>  </build>
> </project>
>
> My environment:
> Apache Maven 2.1.0 (r755702; 2009-03-18 12:10:27-0700)
> Java version: 1.5.0_19
> Java home: /opt/sun-jdk-1.5.0.19/jre
> Default locale: en_CA, platform encoding: UTF-8
> OS name: "linux" version: "2.6.30-gentoo-r6" arch: "i386" Family: "unix"
>
> List: http://www.antlr.org/mailman/listinfo/antlr-interest
> Unsubscribe: http://www.antlr.org/mailman/options/antlr-interest/your-email-address
>


More information about the antlr-interest mailing list