Package org.codehaus.mojo.antlr
Class AbstractAntlrMojo
- java.lang.Object
-
- org.apache.maven.plugin.AbstractMojo
-
- org.codehaus.mojo.antlr.AbstractAntlrMojo
-
- All Implemented Interfaces:
org.apache.maven.plugin.ContextEnabled,org.apache.maven.plugin.Mojo,Environment
- Direct Known Subclasses:
AntlrHtmlReport,AntlrPlugin
public abstract class AbstractAntlrMojo extends org.apache.maven.plugin.AbstractMojo implements Environment
Base class with majority of Antlr functionalities.- Version:
- $Id: AbstractAntlrMojo.java 13111 2010-11-16 22:16:36Z pgier $
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classAbstractAntlrMojo.NoAntlrDependencyDefinedException
-
Field Summary
Fields Modifier and Type Field Description private booleandebugLaunch the ParseView debugger upon parser invocation.private booleandiagnosticGenerate a text file from your grammar with a lot of debugging info.protected Grammar[]grammarDefsGrammar list presents in thesourceDirectorydirectory.protected java.lang.StringgrammarsComma separated grammar file names or grammar pattern file names present in thesourceDirectorydirectory.protected java.io.FileoutputDirectorySpecifies the destination directory where Antlr should generate files.protected org.apache.maven.project.MavenProjectprojectThe Maven Project Objectprivate org.apache.maven.project.MavenProjectHelperprojectHelperThe maven project's helper.protected java.io.FilesourceDirectorySpecifies the Antlr directory containing grammar files.private booleantraceHave all rules call traceIn/traceOut.private booleantraceLexerHave lexer rules call traceIn/traceOut.private booleantraceParserHave parser rules call traceIn/traceOut.private booleantraceTreeParserHave tree rules call traceIn/traceOut.
-
Constructor Summary
Constructors Constructor Description AbstractAntlrMojo()
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected static voidaddArgIf(java.util.List arguments, boolean b, java.lang.String value)Convenience method to add an argumentprotected abstract voidaddArgs(java.util.List arguments)Add arguments to be included in Antlr callprotected voidexecuteAntlr()private voidexecuteAntlrInIsolatedClassLoader(java.lang.String[] args, org.apache.maven.artifact.Artifact antlrArtifact)private java.lang.StringgenerateClasspathForProcessSpawning(org.apache.maven.artifact.Artifact antlrArtifact)private java.io.FilegetGeneratedFile(java.lang.String grammar, java.io.File outputDir)private Grammar[]getGrammars()Get the list of all grammars to be compiled.java.io.FilegetOutputDirectory()java.io.FilegetSourceDirectory()protected org.apache.maven.artifact.ArtifactlocateAntlrArtifact()protected voidperformGeneration(GenerationPlan plan, org.apache.maven.artifact.Artifact antlrArtifact)private voidvalidateParameters()grammars or grammarDefs parameters is required-
Methods inherited from class org.apache.maven.plugin.AbstractMojo
getLog, getPluginContext, setLog, setPluginContext
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.codehaus.mojo.antlr.Environment
getLog
-
-
-
-
Field Detail
-
sourceDirectory
@Parameter(defaultValue="${basedir}/src/main/antlr") protected java.io.File sourceDirectorySpecifies the Antlr directory containing grammar files.
-
project
@Parameter(property="project", readonly=true) protected org.apache.maven.project.MavenProject projectThe Maven Project Object
-
projectHelper
@Component(role=org.apache.maven.project.MavenProjectHelper.class) private org.apache.maven.project.MavenProjectHelper projectHelper
The maven project's helper.
-
outputDirectory
@Parameter(defaultValue="${project.build.directory}/generated-sources/antlr") protected java.io.File outputDirectorySpecifies the destination directory where Antlr should generate files.
See Command Line Options
-
grammars
@Parameter(property="grammars") protected java.lang.String grammars
Comma separated grammar file names or grammar pattern file names present in thesourceDirectorydirectory.
See Command Line Options
-
grammarDefs
@Parameter(property="grammarDefs") protected Grammar[] grammarDefs
Grammar list presents in thesourceDirectorydirectory.
See Command Line Options
Example:<grammarDefs>
<grammar>
<name>myGrammar.g</name>
<glib>mySuperGrammar.g;myOtherSuperGrammar.g</glib>
</grammar>
</grammarDefs>
-
debug
@Parameter(property="debug", defaultValue="false") private boolean debugLaunch the ParseView debugger upon parser invocation.
See Command Line Options
-
diagnostic
@Parameter(property="diagnostic", defaultValue="false") private boolean diagnosticGenerate a text file from your grammar with a lot of debugging info.
See Command Line Options
-
trace
@Parameter(property="trace", defaultValue="false") private boolean traceHave all rules call traceIn/traceOut.
See Command Line Options
-
traceParser
@Parameter(property="traceParser", defaultValue="false") private boolean traceParserHave parser rules call traceIn/traceOut.
See Command Line Options
-
traceLexer
@Parameter(property="traceLexer", defaultValue="false") private boolean traceLexerHave lexer rules call traceIn/traceOut.
See Command Line Options
-
traceTreeParser
@Parameter(property="traceTreeParser", defaultValue="false") private boolean traceTreeParserHave tree rules call traceIn/traceOut.
See Command Line Options
-
-
Method Detail
-
getSourceDirectory
public java.io.File getSourceDirectory()
- Specified by:
getSourceDirectoryin interfaceEnvironment
-
getOutputDirectory
public java.io.File getOutputDirectory()
- Specified by:
getOutputDirectoryin interfaceEnvironment
-
executeAntlr
protected void executeAntlr() throws org.apache.maven.plugin.MojoExecutionException- Throws:
org.apache.maven.plugin.MojoExecutionException
-
locateAntlrArtifact
protected final org.apache.maven.artifact.Artifact locateAntlrArtifact() throws AbstractAntlrMojo.NoAntlrDependencyDefinedException
-
performGeneration
protected void performGeneration(GenerationPlan plan, org.apache.maven.artifact.Artifact antlrArtifact) throws org.apache.maven.plugin.MojoExecutionException
- Throws:
org.apache.maven.plugin.MojoExecutionException
-
generateClasspathForProcessSpawning
private java.lang.String generateClasspathForProcessSpawning(org.apache.maven.artifact.Artifact antlrArtifact)
-
executeAntlrInIsolatedClassLoader
private void executeAntlrInIsolatedClassLoader(java.lang.String[] args, org.apache.maven.artifact.Artifact antlrArtifact) throws org.apache.maven.plugin.MojoExecutionException- Throws:
org.apache.maven.plugin.MojoExecutionException
-
addArgs
protected abstract void addArgs(java.util.List arguments)
Add arguments to be included in Antlr call- Parameters:
arguments-
-
addArgIf
protected static void addArgIf(java.util.List arguments, boolean b, java.lang.String value)Convenience method to add an argument- Parameters:
arguments-b-value-
-
getGeneratedFile
private java.io.File getGeneratedFile(java.lang.String grammar, java.io.File outputDir) throws java.io.IOException- Parameters:
grammar-outputDir-- Returns:
- generated file
- Throws:
java.io.IOException
-
validateParameters
private void validateParameters() throws org.apache.maven.plugin.MojoExecutionExceptiongrammars or grammarDefs parameters is required- Throws:
org.apache.maven.plugin.MojoExecutionException
-
getGrammars
private Grammar[] getGrammars()
Get the list of all grammars to be compiled. The grammars variable can be a list of file or patterns. For instance, one can use *.g instead of a full list of grammar names. Be aware that sometime the grammar order is important, and that patterns won't keep this order, but we can still combine both elements( ordered names first, then the patterns). File name won't be added twice in the list of files.- Returns:
- an array of grammar from
grammarsandgrammarDefsvariables
-
-