Package org.antlr.mojo.antlr4
Class Antlr4Mojo
- java.lang.Object
-
- org.apache.maven.plugin.AbstractMojo
-
- org.antlr.mojo.antlr4.Antlr4Mojo
-
- All Implemented Interfaces:
org.apache.maven.plugin.ContextEnabled
,org.apache.maven.plugin.Mojo
@Mojo(name="antlr4", defaultPhase=GENERATE_SOURCES, requiresDependencyResolution=COMPILE, requiresProject=true) public class Antlr4Mojo extends org.apache.maven.plugin.AbstractMojo
Parses ANTLR 4 grammar files*.g4
and transforms them into Java source files.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private class
Antlr4Mojo.CustomTool
-
Field Summary
Fields Modifier and Type Field Description protected java.util.List<java.lang.String>
arguments
A list of additional command line arguments to pass to the ANTLR tool.protected boolean
atn
If set to true then the ANTLR tool will generate a description of the ATN for each rule in Dot format.private org.sonatype.plexus.build.incremental.BuildContext
buildContext
protected java.util.Set<java.lang.String>
excludes
A set of Ant-like exclusion patterns used to prevent certain files from being processed.protected boolean
forceATN
Use the ATN simulator for all predictions.private boolean
generateTestSources
Specifies whether sources are added to thecompile
ortest
scope.protected java.util.Set<java.lang.String>
includes
Provides an explicit list of all the grammars that should be included in the generate phase of the plugin.protected java.lang.String
inputEncoding
specify grammar file encoding; e.g., euc-jpprivate java.io.File
libDirectory
Specify location of imported grammars and tokens files.protected boolean
listener
Generate parse tree listener interface and base class.protected java.util.Map<java.lang.String,java.lang.String>
options
A list of grammar options to explicitly specify to the tool.private java.io.File
outputDirectory
Specify output directory where the Java files are generated.protected java.lang.String
outputEncoding
specify output file encoding; defaults to source encodingprotected org.apache.maven.project.MavenProject
project
The current Maven project.private java.io.File
sourceDirectory
The directory where the ANTLR grammar files (*.g4
) are located.private java.io.File
statusDirectory
The directory where build status information is located.protected Tool
tool
An instance of the ANTLR tool buildprotected boolean
treatWarningsAsErrors
Treat warnings as errors.protected boolean
visitor
Generate parse tree visitor interface and base class.
-
Constructor Summary
Constructors Constructor Description Antlr4Mojo()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description (package private) void
addSourceRoot(java.io.File outputDir)
void
execute()
The main entry point for this Mojo, it is responsible for converting ANTLR 4.x grammars into the target language specified by the grammar.private java.util.List<java.lang.String>
getCommandArguments()
private java.io.File
getDependenciesStatusFile()
private java.util.Set<java.io.File>
getGrammarFiles(java.io.File sourceDirectory)
private java.util.Set<java.io.File>
getImportFiles(java.io.File sourceDirectory)
java.util.Set<java.lang.String>
getIncludesPatterns()
java.io.File
getLibDirectory()
java.io.File
getOutputDirectory()
private static java.lang.String
getPackageName(java.lang.String relativeFolderPath)
java.io.File
getSourceDirectory()
private java.util.List<java.util.List<java.lang.String>>
processGrammarFiles(java.util.List<java.lang.String> args, java.util.Set<java.io.File> grammarFiles, GrammarDependencies dependencies, java.io.File sourceDirectory)
private java.lang.String
validateEncoding(java.lang.String encoding)
Validates the given encoding.
-
-
-
Field Detail
-
atn
@Parameter(property="antlr4.atn", defaultValue="false") protected boolean atn
If set to true then the ANTLR tool will generate a description of the ATN for each rule in Dot format.
-
inputEncoding
@Parameter(property="project.build.sourceEncoding") protected java.lang.String inputEncoding
specify grammar file encoding; e.g., euc-jp
-
outputEncoding
@Parameter(property="project.build.sourceEncoding") protected java.lang.String outputEncoding
specify output file encoding; defaults to source encoding
-
listener
@Parameter(property="antlr4.listener", defaultValue="true") protected boolean listener
Generate parse tree listener interface and base class.
-
visitor
@Parameter(property="antlr4.visitor", defaultValue="false") protected boolean visitor
Generate parse tree visitor interface and base class.
-
treatWarningsAsErrors
@Parameter(property="antlr4.treatWarningsAsErrors", defaultValue="false") protected boolean treatWarningsAsErrors
Treat warnings as errors.
-
forceATN
@Parameter(property="antlr4.forceATN", defaultValue="false") protected boolean forceATN
Use the ATN simulator for all predictions.
-
options
@Parameter protected java.util.Map<java.lang.String,java.lang.String> options
A list of grammar options to explicitly specify to the tool. These options are passed to the tool using the-D<option>=<value>
syntax.
-
arguments
@Parameter protected java.util.List<java.lang.String> arguments
A list of additional command line arguments to pass to the ANTLR tool.
-
includes
@Parameter protected java.util.Set<java.lang.String> includes
Provides an explicit list of all the grammars that should be included in the generate phase of the plugin. Note that the plugin is smart enough to realize that imported grammars should be included but not acted upon directly by the ANTLR Tool.A set of Ant-like inclusion patterns used to select files from the source directory for processing. By default, the pattern
**/*.g4
is used to select grammar files.
-
excludes
@Parameter protected java.util.Set<java.lang.String> excludes
A set of Ant-like exclusion patterns used to prevent certain files from being processed. By default, this set is empty such that no files are excluded.
-
project
@Parameter(property="project", required=true, readonly=true) protected org.apache.maven.project.MavenProject project
The current Maven project.
-
generateTestSources
@Parameter(property="antlr4.generateTestSources", defaultValue="false") private boolean generateTestSources
Specifies whether sources are added to thecompile
ortest
scope.
-
sourceDirectory
@Parameter(defaultValue="${basedir}/src/main/antlr4") private java.io.File sourceDirectory
The directory where the ANTLR grammar files (*.g4
) are located.
-
outputDirectory
@Parameter(defaultValue="${project.build.directory}/generated-sources/antlr4") private java.io.File outputDirectory
Specify output directory where the Java files are generated.
-
libDirectory
@Parameter(defaultValue="${basedir}/src/main/antlr4/imports") private java.io.File libDirectory
Specify location of imported grammars and tokens files.
-
statusDirectory
@Parameter(defaultValue="${project.build.directory}/maven-status/antlr4", readonly=true) private java.io.File statusDirectory
The directory where build status information is located.
-
buildContext
@Component private org.sonatype.plexus.build.incremental.BuildContext buildContext
-
tool
protected Tool tool
An instance of the ANTLR tool build
-
-
Method Detail
-
getSourceDirectory
public java.io.File getSourceDirectory()
-
getOutputDirectory
public java.io.File getOutputDirectory()
-
getLibDirectory
public java.io.File getLibDirectory()
-
addSourceRoot
void addSourceRoot(java.io.File outputDir)
-
execute
public void execute() throws org.apache.maven.plugin.MojoExecutionException, org.apache.maven.plugin.MojoFailureException
The main entry point for this Mojo, it is responsible for converting ANTLR 4.x grammars into the target language specified by the grammar.- Throws:
org.apache.maven.plugin.MojoExecutionException
- if a configuration or grammar error causes the code generation process to failorg.apache.maven.plugin.MojoFailureException
- if an instance of the ANTLR 4Tool
cannot be created
-
getCommandArguments
private java.util.List<java.lang.String> getCommandArguments()
-
processGrammarFiles
private java.util.List<java.util.List<java.lang.String>> processGrammarFiles(java.util.List<java.lang.String> args, java.util.Set<java.io.File> grammarFiles, GrammarDependencies dependencies, java.io.File sourceDirectory) throws org.codehaus.plexus.compiler.util.scan.InclusionScanException, java.io.IOException
- Parameters:
sourceDirectory
-- Throws:
org.codehaus.plexus.compiler.util.scan.InclusionScanException
java.io.IOException
-
getImportFiles
private java.util.Set<java.io.File> getImportFiles(java.io.File sourceDirectory) throws org.codehaus.plexus.compiler.util.scan.InclusionScanException
- Throws:
org.codehaus.plexus.compiler.util.scan.InclusionScanException
-
getGrammarFiles
private java.util.Set<java.io.File> getGrammarFiles(java.io.File sourceDirectory) throws org.codehaus.plexus.compiler.util.scan.InclusionScanException
- Throws:
org.codehaus.plexus.compiler.util.scan.InclusionScanException
-
getPackageName
private static java.lang.String getPackageName(java.lang.String relativeFolderPath)
-
getIncludesPatterns
public java.util.Set<java.lang.String> getIncludesPatterns()
-
getDependenciesStatusFile
private java.io.File getDependenciesStatusFile()
-
validateEncoding
private java.lang.String validateEncoding(java.lang.String encoding)
Validates the given encoding.- Returns:
- the validated encoding. If
null
was provided, returns the platform default encoding.
-
-