Usage The Maven plugin for antlr is simple to use but is at its simplest when you use the default layouts for your grammars, as so: +-- src/main/ | +--- antlr3/... .g files organized in the required package structure | +--- imports/ .g files that are imported by other grammars. +-- However, if you are not able to use this structure for whatever reason, you can configure the locations of the grammar files, where library/import files are located and where the output files should be generated. * Plugin Descriptor The current version of the plugin is shown at the top of this page after the <> date. The full layout of the descriptor (at least, those parts that are not standard Maven things), showing the default values of the configuration options, is as follows: +-- org.antlr antlr3-maven-plugin 3.1.3-1 antlr 10000 false false false src/main/antlr3/imports antlr target/generated-sources/antlr3 false false false src/main/antlr3 false true +-- Note that you can create multiple executions, and thus build some grammars with different options to others (such as setting the debug option for instance). ** Configuration parameters *** report If set to true, then after the tool has processed an input grammar file it will report variaous statistics about the parser, such as information on cyclic DFAs, which rules may use backtracking, and so on. default-value="false" *** printGrammar If set to true, then the ANTLR tool will print a version of the input grammar which is devoid of any actions that may be present in the input file. default-value = "false" *** debug If set to true, then the code generated by the ANTLR code generator will be set to debug mode. This means that when run, the code will 'hang' and wait for a debug connection on a TCP port (49100 by default). default-value="false" *** profile If set to true, then then the generated parser will compute and report on profile information at runtime. default-value="false" *** nfa If set to true then the ANTLR tool will generate a description of the nfa for each rule in Dot format default-value="false" protected boolean nfa; *** dfa If set to true then the ANTLR tool will generate a description of the DFA for each decision in the grammar in Dot format default-value="false" *** trace If set to true, the generated parser code will log rule entry and exit points to stdout as an aid to debugging. default-value="false" *** messageFormat If this parameter is set, it indicates that any warning or error messages returned by ANLTR, shoould be formatted in the specified way. Currently, ANTLR supports the built-in formats of antlr, gnu and vs2005. default-value="antlr" *** verbose If this parameter is set to true, then ANTLR will report all sorts of things about what it is doing such as the names of files and the version of ANTLR and so on. default-value="true" *** conversionTimeout The number of milliseconds ANTLR will wait for analysis of each alternative in the grammar to complete before giving up. You may raise this value if ANTLR gives up on a complicated alt and tells you that there are lots of ambiguties, but you know that it just needed to spend more time on it. Note that this is an absolute time and not CPU time. default-value="10000" *** 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. Unless otherwise specified, the include list scans for and includes all files that end in ".g" in any directory beneath src/main/antlr3. Note that this version of the plugin looks for the directory antlr3 and not the directory antlr, so as to avoid clashes and confusion for projects that use both v2 and v3 grammars such as ANTLR itself. *** excludes Provides an explicit list of any grammars that should be excluded from the generate phase of the plugin. Files listed here will not be sent for processing by the ANTLR tool. *** sourceDirectory Specifies the Antlr directory containing grammar files. For antlr version 3.x we default this to a directory in the tree called antlr3 because the antlr directory is occupied by version 2.x grammars. <> Take careful note that the default location for antlr grammars is now <> and NOT <> default-value="<<<${basedir}/src/main/antlr3>>>" *** outputDirectory Location for generated Java files. For antlr version 3.x we default this to a directory in the tree called antlr3 because the antlr directory is occupied by version 2.x grammars. default-value="<<<${project.build.directory}/generated-sources/antlr3>>>" *** libDirectory Location for imported token files, e.g. .tokens and imported grammars. Note that ANTLR will not try to process grammars that it finds in this directory, but will include this directory in the search for .tokens files and import grammars. <> If you change the lib directory from the default but the directory is still under<<<${basedir}/src/main/antlr3>>>, then you will need to exclude the grammars from processing specifically, using the <<<>>> option. default-value="<<<${basedir}/src/main/antlr3/imports>>>"