public class JJTreeJavaCCMojo extends AbstractJavaCCMojo
*.jjt
) with JJTree and passes the output to JavaCC in order to
finally generate a parser with parse tree actions.Modifier and Type | Field and Description |
---|---|
private java.lang.Boolean |
buildNodeFiles
A flag whether to generate sample implementations for
SimpleNode and any other nodes used in the
grammar. |
private java.lang.String[] |
excludes
A set of Ant-like exclusion patterns used to prevent certain files from being processed.
|
private java.lang.String[] |
includes
A set of Ant-like inclusion patterns used to select files from the source directory for processing.
|
private java.io.File |
interimDirectory
The directory where the AST node files generated by JJTree will be stored.
|
private java.lang.Boolean |
multi
A flag whether to generate a multi mode parse tree or a single mode parse tree.
|
private java.lang.String |
nodeClass
The name of a custom class that extends
SimpleNode and will be used as the super class for the
generated tree node classes. |
private java.lang.Boolean |
nodeDefaultVoid
A flag whether to make each non-decorated production void instead of an indefinite node.
|
private java.lang.String |
nodeFactory
The name of a custom factory class used to create
Node objects. |
private java.lang.String |
nodePackage
The package to generate the AST node classes into.
|
private java.lang.String |
nodePrefix
The prefix used to construct node class names from node identifiers in multi mode.
|
private java.lang.Boolean |
nodeScopeHook
A flag whether user-defined parser methods should be called on entry and exit of every node scope.
|
private java.lang.Boolean |
nodeUsesParser
A flag whether the node construction routines need an additional method parameter to receive the parser object.
|
private java.io.File |
outputDirectory
The directory where the parser files generated by JavaCC will be stored.
|
private java.io.File |
sourceDirectory
The directory where the decorated JavaCC grammar files (
*.jjt ) are located. |
private int |
staleMillis
The granularity in milliseconds of the last modification date for testing whether a grammar file needs
recompilation.
|
private java.lang.Boolean |
trackTokens
A flag whether to insert the methods
jjtGetFirstToken() , jjtSetFirstToken() ,
getLastToken() and jjtSetLastToken() into the class SimpleNode . |
private java.lang.Boolean |
visitor
A flag whether to insert a
jjtAccept() method in the node classes and to generate a visitor
implementation with an entry for every node type used in the grammar. |
private java.lang.String |
visitorDataType
The name of a class to use for the data argument of the
jjtAccept() and visit()
methods. |
private java.lang.String |
visitorException
The name of an exception class to include in the signature of the generated
jjtAccept() and
visit() methods. |
private java.lang.String |
visitorReturnType
The name of a class to use as the return type of the
jjtAccept() and visit() methods. |
Constructor and Description |
---|
JJTreeJavaCCMojo() |
Modifier and Type | Method and Description |
---|---|
protected java.io.File[] |
getCompileSourceRoots()
Gets all the output directories to register with the project for compilation.
|
protected java.lang.String[] |
getExcludes()
Gets a set of Ant-like exclusion patterns used to unselect files from the source directory for processing.
|
protected java.lang.String[] |
getIncludes()
Gets a set of Ant-like inclusion patterns used to select files from the source directory for processing.
|
private java.io.File |
getInterimDirectory()
Gets the absolute path to the directory where the interim output from JJTree will be stored.
|
protected java.io.File |
getOutputDirectory()
Gets the absolute path to the directory where the generated Java files for the parser will be stored.
|
protected java.io.File |
getSourceDirectory()
Gets the absolute path to the directory where the grammar files are located.
|
protected int |
getStaleMillis()
Gets the granularity in milliseconds of the last modification date for testing whether a source needs
recompilation.
|
protected JJTree |
newJJTree()
Creates a new facade to invoke JJTree.
|
protected void |
processGrammar(GrammarInfo grammarInfo)
Passes the specified grammar file through the tool.
|
copyGrammarOutput, deleteTempDirectory, execute, getGrammarEncoding, getIsStatic, getJdkVersion, getParserPackage, getTempDirectory, isSourceRoot, newJavaCC
private java.lang.Boolean buildNodeFiles
SimpleNode
and any other nodes used in the
grammar. Default value is true
.private java.lang.Boolean multi
false
.private java.lang.Boolean nodeDefaultVoid
false
.private java.lang.String nodeClass
SimpleNode
and will be used as the super class for the
generated tree node classes. By default, the tree node classes will directly extend the class
SimpleNode
.private java.lang.String nodeFactory
Node
objects. This class must have a method with
the signature public static Node jjtCreate(int id)
. By default, the class SimpleNode
will be used as the factory class.private java.lang.String nodePackage
org.apache
and this parameter
is set to *.node
, the tree node classes will be located in the package
org.apache.node
. By default, the package of the corresponding parser is used.private java.lang.String nodePrefix
AST
.private java.lang.Boolean nodeScopeHook
false
.private java.lang.Boolean nodeUsesParser
false
.private java.lang.Boolean trackTokens
jjtGetFirstToken()
, jjtSetFirstToken()
,
getLastToken()
and jjtSetLastToken()
into the class SimpleNode
. Default
value is false
.private java.lang.Boolean visitor
jjtAccept()
method in the node classes and to generate a visitor
implementation with an entry for every node type used in the grammar. Default value is false
.private java.lang.String visitorDataType
jjtAccept()
and visit()
methods. Default value is java.lang.Object
.private java.lang.String visitorReturnType
jjtAccept()
and visit()
methods.
Default value is java.lang.Object
.private java.lang.String visitorException
jjtAccept()
and
visit()
methods. By default, the throws
clause of the generated methods is empty such
that only unchecked exceptions can be thrown.private java.io.File sourceDirectory
*.jjt
) are located. It will be
recursively scanned for input files to pass to JJTree. The parameters includes
and
excludes
can be used to select a subset of files.private java.io.File interimDirectory
private java.io.File outputDirectory
private java.lang.String[] includes
**/*.jj
, **/*.JJ
, **/*.jjt
and
**/*.JJT
are used to select grammar files.private java.lang.String[] excludes
private int staleMillis
protected java.io.File getSourceDirectory()
getSourceDirectory
in class AbstractJavaCCMojo
null
.protected java.lang.String[] getIncludes()
getIncludes
in class AbstractJavaCCMojo
null
if all files should be included.protected java.lang.String[] getExcludes()
getExcludes
in class AbstractJavaCCMojo
null
if no files should be excluded.protected java.io.File getOutputDirectory()
getOutputDirectory
in class AbstractJavaCCMojo
null
.protected int getStaleMillis()
getStaleMillis
in class AbstractJavaCCMojo
private java.io.File getInterimDirectory()
protected java.io.File[] getCompileSourceRoots()
getCompileSourceRoots
in class AbstractJavaCCMojo
null
.protected void processGrammar(GrammarInfo grammarInfo) throws org.apache.maven.plugin.MojoExecutionException, org.apache.maven.plugin.MojoFailureException
processGrammar
in class AbstractJavaCCMojo
grammarInfo
- The grammar info describing the grammar file to process, must not be null
.org.apache.maven.plugin.MojoExecutionException
- If the invocation of the tool failed.org.apache.maven.plugin.MojoFailureException
- If the tool reported a non-zero exit code.protected JJTree newJJTree()
null
.