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 booleanIf 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.BuildContextA set of Ant-like exclusion patterns used to prevent certain files from being processed.protected booleanUse the ATN simulator for all predictions.private booleanSpecifies whether sources are added to thecompileortestscope.Provides an explicit list of all the grammars that should be included in the generate phase of the plugin.protected Stringspecify grammar file encoding; e.g., euc-jpprivate FileSpecify location of imported grammars and tokens files.protected booleanGenerate parse tree listener interface and base class.A list of grammar options to explicitly specify to the tool.private FileSpecify output directory where the Java files are generated.protected Stringspecify output file encoding; defaults to source encodingprotected org.apache.maven.project.MavenProjectThe current Maven project.private FileThe directory where the ANTLR grammar files (*.g4) are located.private FileThe directory where build status information is located.protected ToolAn instance of the ANTLR tool buildprotected booleanTreat warnings as errors.protected booleanGenerate 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) voidaddSourceRoot(File outputDir) voidexecute()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 FilegetGrammarFiles(File sourceDirectory) getImportFiles(File sourceDirectory) private static StringgetPackageName(String relativeFolderPath) processGrammarFiles(List<String> args, Set<File> grammarFiles, GrammarDependencies dependencies, File sourceDirectory) private StringvalidateEncoding(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
-
arguments
-
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
**/*.g4is used to select grammar files. -
excludes
-
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 thecompileortestscope. -
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 4Toolcannot 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.InclusionScanExceptionIOException
-
getImportFiles
-
getGrammarFiles
-
getPackageName
-
getIncludesPatterns
-
getDependenciesStatusFile
-
validateEncoding
-