Package org.codehaus.mojo.javacc
Class JTBJavaCCMojo
java.lang.Object
org.apache.maven.plugin.AbstractMojo
org.codehaus.mojo.javacc.AbstractJavaCCMojo
org.codehaus.mojo.javacc.JTBJavaCCMojo
- All Implemented Interfaces:
org.apache.maven.plugin.ContextEnabled
,org.apache.maven.plugin.Mojo
Preprocesses ordinary grammar files (
Note: JTB requires Java 1.5 or higher. This goal will not work with earlier versions of the JRE.
*.jtb
) with JTB and passes the output to JavaCC in order to
finally generate a parser with parse tree actions.Note: JTB requires Java 1.5 or higher. This goal will not work with earlier versions of the JRE.
- Since:
- 2.4
- Version:
- $Id: JTBJavaCCMojo.java 8156 2008-11-26 18:20:19Z bentmann $
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate Boolean
Setting this option totrue
causes JTB to generate field names that reflect the structure of the tree instead of generic names likef0
,f1
etc.private String[]
A set of Ant-like exclusion patterns used to prevent certain files from being processing.private String[]
A set of Ant-like inclusion patterns used to select files from the source directory for processing.private File
The directory where the visitor and AST node files generated by JTB will be stored.private Boolean
Iftrue
, all generated comments will be wrapped in<pre>
tags so that they are formatted correctly in API docs.private String
This option specifies the package for the generated AST nodes.private String
The qualified name of a user-defined class from which all AST nodes will inherit.private File
The directory where the parser files generated by JavaCC will be stored.private String
This option is short fornodePackageName
=<packageName>.syntaxtree
andvisitorPackageName
=<packageName>.visitor
.private Boolean
Iftrue
, all nodes will contain fields for its parent node.private Boolean
Iftrue
, JTB will generate a syntax tree dumping visitor.private Boolean
Iftrue
, JTB will generate the following files to support the Schema programming language: Scheme records representing the grammar. A Scheme tree building visitor. Default value isfalse
.private File
The directory where the JavaCC grammar files (*.jtb
) are located.private Boolean
Iftrue
, JTB will include JavaCC "special tokens" in the AST.private int
The granularity in milliseconds of the last modification date for testing whether a grammar file needs recompilation.private Boolean
Iftrue
, JTB will suppress its semantic error checking.private String
This option specifies the package for the generated visitors.Fields inherited from interface org.apache.maven.plugin.Mojo
ROLE
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected File[]
Gets all the output directories to register with the project for compilation.protected String[]
Gets a set of Ant-like exclusion patterns used to unselect files from the source directory for processing.protected String[]
Gets a set of Ant-like inclusion patterns used to select files from the source directory for processing.private File
Gets the absolute path to the directory where the interim output from JTB will be stored.private String
Gets the effective package name for the AST node files.protected File
Gets the absolute path to the directory where the generated Java files for the parser will be stored.protected File
Gets the absolute path to the directory where the grammar files are located.protected int
Gets the granularity in milliseconds of the last modification date for testing whether a source needs recompilation.private String
Gets the effective package name for the visitor files.private JTB
newJTB()
Creates a new facade to invoke JTB.protected void
processGrammar
(GrammarInfo grammarInfo) Passes the specified grammar file through the tool.Methods inherited from class org.codehaus.mojo.javacc.AbstractJavaCCMojo
copyGrammarOutput, deleteTempDirectory, execute, getGrammarEncoding, getIsStatic, getJdkVersion, getParserPackage, getTempDirectory, isSourceRoot, newJavaCC
Methods inherited from class org.apache.maven.plugin.AbstractMojo
getLog, getPluginContext, setLog, setPluginContext
-
Field Details
-
packageName
This option is short fornodePackageName
=<packageName>.syntaxtree
andvisitorPackageName
=<packageName>.visitor
. Note that this option takes precedence overnodePackageName
andvisitorPackageName
if specified. -
nodePackageName
This option specifies the package for the generated AST nodes. This value may use a leading asterisk to reference the package of the corresponding parser. For example, if the parser package isorg.apache
and this parameter is set to*.demo
, the tree node classes will be located in the packageorg.apache.demo
. Default value is*.syntaxtree
. -
visitorPackageName
This option specifies the package for the generated visitors. This value may use a leading asterisk to reference the package of the corresponding parser. For example, if the parser package isorg.apache
and this parameter is set to*.demo
, the visitor classes will be located in the packageorg.apache.demo
. Default value is*.visitor
. -
supressErrorChecking
Iftrue
, JTB will suppress its semantic error checking. Default value isfalse
. -
javadocFriendlyComments
Iftrue
, all generated comments will be wrapped in<pre>
tags so that they are formatted correctly in API docs. Default value isfalse
. -
descriptiveFieldNames
Setting this option totrue
causes JTB to generate field names that reflect the structure of the tree instead of generic names likef0
,f1
etc. Default value isfalse
. -
nodeParentClass
The qualified name of a user-defined class from which all AST nodes will inherit. By default, AST nodes will inherit from the generated classNode
. -
parentPointers
Iftrue
, all nodes will contain fields for its parent node. Default value isfalse
. -
specialTokens
Iftrue
, JTB will include JavaCC "special tokens" in the AST. Default value isfalse
. -
scheme
Iftrue
, JTB will generate the following files to support the Schema programming language:- Scheme records representing the grammar.
- A Scheme tree building visitor.
false
. -
printer
Iftrue
, JTB will generate a syntax tree dumping visitor. Default value isfalse
. -
sourceDirectory
The directory where the JavaCC grammar files (*.jtb
) are located. It will be recursively scanned for input files to pass to JTB. The parametersincludes
andexcludes
can be used to select a subset of files. -
interimDirectory
The directory where the visitor and AST node files generated by JTB will be stored. The directory will be registered as a compile source root of the project such that the generated files will participate in later build phases like compiling and packaging. -
outputDirectory
The directory where the parser files generated by JavaCC will be stored. The directory will be registered as a compile source root of the project such that the generated files will participate in later build phases like compiling and packaging. -
includes
A set of Ant-like inclusion patterns used to select files from the source directory for processing. By default, the patterns**/*.jj
,**/*.JJ
,**/*.jtb
and**/*.JTB
are used to select grammar files. -
excludes
A set of Ant-like exclusion patterns used to prevent certain files from being processing. By default, this set is empty such that no files are excluded. -
staleMillis
private int staleMillisThe granularity in milliseconds of the last modification date for testing whether a grammar file needs recompilation.
-
-
Constructor Details
-
JTBJavaCCMojo
public JTBJavaCCMojo()
-
-
Method Details
-
getSourceDirectory
Gets the absolute path to the directory where the grammar files are located.- Specified by:
getSourceDirectory
in classAbstractJavaCCMojo
- Returns:
- The absolute path to the directory where the grammar files are located, never
null
.
-
getIncludes
Gets a set of Ant-like inclusion patterns used to select files from the source directory for processing.- Specified by:
getIncludes
in classAbstractJavaCCMojo
- Returns:
- A set of Ant-like inclusion patterns used to select files from the source directory for processing, can
be
null
if all files should be included.
-
getExcludes
Gets a set of Ant-like exclusion patterns used to unselect files from the source directory for processing.- Specified by:
getExcludes
in classAbstractJavaCCMojo
- Returns:
- A set of Ant-like inclusion patterns used to unselect files from the source directory for processing, can
be
null
if no files should be excluded.
-
getOutputDirectory
Gets the absolute path to the directory where the generated Java files for the parser will be stored.- Specified by:
getOutputDirectory
in classAbstractJavaCCMojo
- Returns:
- The absolute path to the directory where the generated Java files for the parser will be stored, never
null
.
-
getStaleMillis
protected int getStaleMillis()Gets the granularity in milliseconds of the last modification date for testing whether a source needs recompilation.- Specified by:
getStaleMillis
in classAbstractJavaCCMojo
- Returns:
- The granularity in milliseconds of the last modification date for testing whether a source needs recompilation.
-
getInterimDirectory
Gets the absolute path to the directory where the interim output from JTB will be stored.- Returns:
- The absolute path to the directory where the interim output from JTB will be stored.
-
getCompileSourceRoots
Gets all the output directories to register with the project for compilation.- Specified by:
getCompileSourceRoots
in classAbstractJavaCCMojo
- Returns:
- The compile source roots to register with the project, never
null
.
-
processGrammar
protected void processGrammar(GrammarInfo grammarInfo) throws org.apache.maven.plugin.MojoExecutionException, org.apache.maven.plugin.MojoFailureException Passes the specified grammar file through the tool.- Specified by:
processGrammar
in classAbstractJavaCCMojo
- Parameters:
grammarInfo
- The grammar info describing the grammar file to process, must not benull
.- Throws:
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.
-
getNodePackageName
Gets the effective package name for the AST node files.- Returns:
- The effective package name for the AST node files, never
null
.
-
getVisitorPackageName
Gets the effective package name for the visitor files.- Returns:
- The effective package name for the visitor files, never
null
.
-
newJTB
Creates a new facade to invoke JTB. Most options for the invocation are derived from the current values of the corresponding mojo parameters. The caller is responsible to set the input file, output directories and packages on the returned facade.- Returns:
- The facade for the tool invocation, never
null
.
-