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,
threadSafe=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 -
Field Summary
FieldsModifier and TypeFieldDescriptionA list of additional command line arguments to pass to the ANTLR tool.protected boolean
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
A set of Ant-like exclusion patterns used to prevent certain files from being processed.protected boolean
Use the ATN simulator for all predictions.private boolean
Specifies whether sources are added to thecompile
ortest
scope.Provides an explicit list of all the grammars that should be included in the generate phase of the plugin.protected String
specify grammar file encoding; e.g., euc-jpprivate File
Specify location of imported grammars and tokens files.protected boolean
Generate parse tree listener interface and base class.A list of grammar options to explicitly specify to the tool.private File
Specify output directory where the Java files are generated.protected String
specify output file encoding; defaults to source encodingprotected org.apache.maven.project.MavenProject
The current Maven project.private File
The directory where the ANTLR grammar files (*.g4
) are located.private File
The directory where build status information is located.protected Tool
An instance of the ANTLR tool buildprotected boolean
Treat warnings as errors.protected boolean
Generate parse tree visitor interface and base class.Fields inherited from interface org.apache.maven.plugin.Mojo
ROLE
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescription(package private) void
addSourceRoot
(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 File
getGrammarFiles
(File sourceDirectory) getImportFiles
(File sourceDirectory) private static String
getPackageName
(String relativeFolderPath) processGrammarFiles
(List<String> args, Set<File> grammarFiles, GrammarDependencies dependencies, File sourceDirectory) private String
validateEncoding
(String encoding) Validates the given encoding.Methods inherited from class org.apache.maven.plugin.AbstractMojo
getLog, getPluginContext, setLog, setPluginContext
-
Field Details
-
atn
@Parameter(property="antlr4.atn", defaultValue="false") protected boolean atnIf set to true then the ANTLR tool will generate a description of the ATN for each rule in Dot format. -
inputEncoding
specify grammar file encoding; e.g., euc-jp -
outputEncoding
specify output file encoding; defaults to source encoding -
listener
@Parameter(property="antlr4.listener", defaultValue="true") protected boolean listenerGenerate parse tree listener interface and base class. -
visitor
@Parameter(property="antlr4.visitor", defaultValue="false") protected boolean visitorGenerate parse tree visitor interface and base class. -
treatWarningsAsErrors
@Parameter(property="antlr4.treatWarningsAsErrors", defaultValue="false") protected boolean treatWarningsAsErrorsTreat warnings as errors. -
forceATN
@Parameter(property="antlr4.forceATN", defaultValue="false") protected boolean forceATNUse the ATN simulator for all predictions. -
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
A list of additional command line arguments to pass to the ANTLR tool. -
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
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 projectThe current Maven project. -
generateTestSources
@Parameter(property="antlr4.generateTestSources", defaultValue="false") private boolean generateTestSourcesSpecifies whether sources are added to thecompile
ortest
scope. -
sourceDirectory
The directory where the ANTLR grammar files (*.g4
) are located. -
outputDirectory
@Parameter(defaultValue="${project.build.directory}/generated-sources/antlr4") private File outputDirectorySpecify output directory where the Java files are generated. -
libDirectory
Specify location of imported grammars and tokens files. -
statusDirectory
@Parameter(defaultValue="${project.build.directory}/maven-status/antlr4", readonly=true) private File statusDirectoryThe directory where build status information is located. -
buildContext
@Component private org.sonatype.plexus.build.incremental.BuildContext buildContext -
tool
An instance of the ANTLR tool build
-
-
Constructor Details
-
Antlr4Mojo
public Antlr4Mojo()
-
-
Method Details
-
getSourceDirectory
-
getOutputDirectory
-
getLibDirectory
-
addSourceRoot
-
execute
public void execute() throws org.apache.maven.plugin.MojoExecutionException, org.apache.maven.plugin.MojoFailureExceptionThe 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
-
processGrammarFiles
private List<List<String>> processGrammarFiles(List<String> args, Set<File> grammarFiles, GrammarDependencies dependencies, File sourceDirectory) throws org.codehaus.plexus.compiler.util.scan.InclusionScanException, IOException - Parameters:
sourceDirectory
-- Throws:
org.codehaus.plexus.compiler.util.scan.InclusionScanException
IOException
-
getImportFiles
private Set<File> getImportFiles(File sourceDirectory) throws org.codehaus.plexus.compiler.util.scan.InclusionScanException - Throws:
org.codehaus.plexus.compiler.util.scan.InclusionScanException
-
getGrammarFiles
private Set<File> getGrammarFiles(File sourceDirectory) throws org.codehaus.plexus.compiler.util.scan.InclusionScanException - Throws:
org.codehaus.plexus.compiler.util.scan.InclusionScanException
-
getPackageName
-
getIncludesPatterns
-
getDependenciesStatusFile
-
validateEncoding
Validates the given encoding.- Returns:
- the validated encoding. If
null
was provided, returns the platform default encoding.
-