<html>

<head>
<meta http-equiv="Content-Language" content="en-us">
<title>ANTLR Task</title>
</head>

<body>

<h2><a name="antlr">ANTLR</a></h2>
<h3>Description</h3>
<p>
  Invokes the <a HREF="http://www.antlr.org/">ANTLR</a> Translator generator
  on a grammar file.
</p>
<p>
  To use the ANTLR task, set the <i>target</i> attribute to the name of the
  grammar file to process.  Optionally, you can also set the
  <i>outputdirectory</i> 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 is newer than the generated
  files.
</p>

<h3>Parameters</h3>
<table border="1" cellpadding="2" cellspacing="0">
  <tr>
    <td valign="top"><b>Attribute</b></td>
    <td valign="top"><b>Description</b></td>
    <td align="center" valign="top"><b>Required</b></td>
  </tr>
  <tr>
    <td valign="top">target</td>
    <td valign="top">The grammar file to process.</td>
    <td valign="top" align="center">Yes</td>
  </tr>
  <tr>
    <td valign="top">outputdirectory</td>
    <td valign="top">
      The directory to write the generated files to.  If not set, the files
      are written to the directory containing the grammar file.
    </td>
    <td valign="top" align="center">No</td>
  </tr>
  <tr>
    <td valign="top">fork</td>
    <td valign="top">Run ANTLR in a separate VM.</td>
    <td align="center" valign="top">No, default is "off"</td>
  </tr>
  <tr>
    <td valign="top">dir</td>
    <td valign="top">The directory to invoke the VM in. (ignored if
      fork is disabled)</td>
    <td align="center" valign="top">No</td>
  </tr>
</table>
<h3>Example</h3>
<blockquote><pre>
&lt;antlr
    target=&quot;etc/java.g&quot;
    outputdirectory=&quot;build/src&quot;
/&gt;
</pre></blockquote>
<p>
  This invokes ANTLR on grammar file etc/java.g, writing the generated
  files to build/src.
</p>
<hr>

