The plugin reads JFlex grammar specification files (.jflex
) and
generates a corresponding Java parser
(in target/generated-source/jflex
by default).
This configuration generates java code of a parser
for all grammar files (*.jflex
, *.jlex
, *.lex
, *.flex
)
found in src/main/jflex/
and its sub-directories.
The name and package of the generated Java source code are the ones defined in
the grammar.
The generated Java source code is placed in target/generated-source/jflex
,
in sub-directories following the Java convention on package names.
Update the pom.xml
to add the plugin:
<project>
<!-- ... -->
<build>
<plugins>
<plugin>
<groupId>de.jflex</groupId>
<artifactId>jflex-maven-plugin</artifactId>
<version>${project.version}</version>
<executions>
<execution>
<goals>
<goal>generate</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
<!-- ... -->
</build>
<!-- ... -->
</project>
This example generates the source for the two grammars
src/main/lex/preprocessor.jflex
and /pub/postprocessor.jflex
,
as well as all grammar files found in src/main/jflex
(and its sub-directories).
The generated Java code is placed into src/main/java
instead of
target/generated-sources/jflex
.
<plugin>
<groupId>de.jflex</groupId>
<artifactId>jflex-maven-plugin</artifactId>
<version>${project.version}</version>
<executions>
<execution>
<goals>
<goal>generate</goal>
</goals>
<configuration>
<outputDirectory>src/main/java</outputDirectory>
<lexDefinitions>
<lexDefinition>src/main/jflex</lexDefinition>
<lexDefinition>src/main/lex/preprocessor.jflex</lexDefinition>
<lexDefinition>/pub/postprocessor.jflex</lexDefinition>
</lexDefinitions>
</configuration>
</execution>
</executions>
</plugin>
This generates the source for
all files found in
src/main/lex/
, using strict JLex compatibility.
and all files found in
src/main/jflex
, in verbose mode.
<plugin>
<groupId>de.jflex</groupId>
<artifactId>jflex-maven-plugin</artifactId>
<version>${project.version}</version>
<executions>
<execution>
<id>strict jlex</id>
<goals>
<goal>generate</goal>
</goals>
<configuration>
<lexDefinitions>
<lexDefinition>src/main/lex</lexDefinition>
</lexDefinitions>
<jlex>true</jlex>
</configuration>
</execution>
<execution>
<id>jflex</id>
<goals>
<goal>generate</goal>
</goals>
<configuration>
<lexDefinitions>
<lexDefinition>src/main/jflex</lexDefinition>
</lexDefinitions>
<verbose>true</verbose>
</configuration>
</execution>
</executions>
</plugin>