| <!DOCTYPE html> |
| <!-- |
| Licensed to the Apache Software Foundation (ASF) under one or more |
| contributor license agreements. See the NOTICE file distributed with |
| this work for additional information regarding copyright ownership. |
| The ASF licenses this file to You under the Apache License, Version 2.0 |
| (the "License"); you may not use this file except in compliance with |
| the License. You may obtain a copy of the License at |
| |
| https://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, software |
| distributed under the License is distributed on an "AS IS" BASIS, |
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| See the License for the specific language governing permissions and |
| limitations under the License. |
| --> |
| <html lang="en"> |
| |
| <head> |
| <link rel="stylesheet" type="text/css" href="../stylesheets/style.css"> |
| <title>ANTLR Task</title> |
| </head> |
| |
| <body> |
| |
| <h2 id="antlr">ANTLR</h2> |
| <h3>Description</h3> |
| <p>Invokes the <a href="https://www.antlr.org/" target="_top">ANTLR</a> Translator generator on a |
| grammar file.</p> |
| <p>To use the ANTLR task, set the <var>target</var> attribute to the name of the grammar file to |
| process. Optionally, you can also set the <var>outputdirectory</var> to write the generated file to |
| a specific directory. Otherwise ANTLR writes the generated files to the directory containing the |
| grammar file.</p> |
| <p>This task only invokes ANTLR if the grammar file (or the supergrammar specified by |
| the <var>glib</var> attribute) is newer than the generated files.</p> |
| <p><strong>Note</strong>: This task depends on external libraries not included in the Apache Ant |
| distribution. See <a href="../install.html#librarydependencies">Library Dependencies</a> for more |
| information.</p> |
| <p>Antlr 2.7.2 Note: <em>You will need <samp>antlrall.jar</samp> that can be created by |
| the <q>antlr-all.jar</q> target of the Makefile provided with the download.</em></p> |
| |
| <h3>Parameters</h3> |
| <table class="attr"> |
| <tr> |
| <th scope="col">Attribute</th> |
| <th scope="col">Description</th> |
| <th scope="col">Required</th> |
| </tr> |
| <tr> |
| <td>target</td> |
| <td>The grammar file to process.</td> |
| <td>Yes</td> |
| </tr> |
| <tr> |
| <td>outputdirectory</td> |
| <td>The directory to write the generated files to.</td> |
| <td>No; defaults to the directory containing the grammar file</td> |
| </tr> |
| <tr> |
| <td>glib</td> |
| <td>An optional super grammar file that the target grammar overrides. This feature is only |
| needed for advanced vocabularies.</td> |
| <td>No</td> |
| </tr> |
| <tr> |
| <td>debug</td> |
| <td>When set to <q>yes</q>, this flag adds code to the generated parser that will launch the |
| ParseView debugger upon invocation.<br/> Note: ParseView is a separate component that needs |
| to be installed or your grammar will have compilation errors.</td> |
| <td>No; default is <q>no</q></td> |
| </tr> |
| <tr> |
| <td>html</td> |
| <td>Emit an HTML version of the grammar with hyperlinked actions if set to <q>yes</q>.</td> |
| <td>No; default is <q>no</q></td> |
| </tr> |
| <tr> |
| <td>diagnostic</td> |
| <td>Generate a text file with debugging information based on the target grammar if set |
| to <q>yes</q>.</td> |
| <td>No; default is <q>no</q></td> |
| </tr> |
| <tr> |
| <td>trace</td> |
| <td>Force <strong>all</strong> rules to call traceIn/traceOut if set to <q>yes</q>.</td> |
| <td>No; default is <q>no</q></td> |
| </tr> |
| <tr> |
| <td>traceParser</td> |
| <td>Only force parser rules to call traceIn/traceOut if set to <q>yes</q>.</td> |
| <td>No; default is <q>no</q></td> |
| </tr> |
| <tr> |
| <td>traceLexer</td> |
| <td>Only force lexer rules to call traceIn/traceOut if set to <q>yes</q>.</td> |
| <td>No; default is <q>no</q></td> |
| </tr> |
| <tr> |
| <td>traceTreeWalker</td> |
| <td>Only force tree walker rules to call traceIn/traceOut if set to <q>yes</q>.</td> |
| <td>No; default is <q>no</q></td> |
| </tr> |
| <!--tr> |
| <td>fork</td> |
| <td>Run ANTLR in a separate JVM.</td> |
| <td>No; default is <q>off</q></td> |
| </tr--> |
| <tr> |
| <td>dir</td> |
| <td>The directory to invoke JVM in.<!--(ignored if fork is disabled)--></td> |
| <td>No</td> |
| </tr> |
| </table> |
| |
| <h3 id="nested">Parameters specified as nested elements</h3> |
| |
| <p>The task supports a nested <code><classpath></code> element, that represents |
| a <a href="../using.html#path">path-like structure</a>. It is given as a convenience if you have to |
| specify the original ANTLR directory. In most cases, dropping the appropriate ANTLR jar in the |
| normal Ant lib repository will be enough.</p> |
| |
| <h4>jvmarg</h4> |
| |
| <p><!--If fork is enabled, -->Additional parameters may be passed to the new JVM via |
| nested <code><jvmarg></code> attributes, for example:</p> |
| |
| <pre> |
| <antlr target="..."> |
| <jvmarg value="-Djava.compiler=NONE"/> |
| ... |
| </antlr></pre> |
| |
| <p>would run ANTLR in a JVM without JIT.</p> |
| |
| <p><code><jvmarg></code> allows all attributes described |
| in <a href="../using.html#arg">Command line arguments</a>.</p> |
| |
| <h3>Example</h3> |
| <p>Invoke ANTLR on grammar file <samp>etc/java.g</samp>, writing the generated files |
| to <samp>build/src</samp>:</p> |
| <pre> |
| <antlr |
| target="etc/java.g" |
| outputdirectory="build/src"/></pre> |
| |
| </body> |
| </html> |