<?xml version="1.0"?>
<!--
  Copyright 2002,2004 The Apache Software Foundation.
  
  Licensed 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
  
       http://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.
-->

<document>

 <properties>
  <title>Jelly Tag Reference (antlr:antlr)</title>
 </properties>

  <body>

    <section name="Home Page">
      <p>See 
        <a href="http://jakarta.apache.org/commons/jelly/libs/antlr/">http://jakarta.apache.org/commons/jelly/libs/antlr/</a>
      </p>
    </section>

    <section name="Description">
      <p>
        This tag generates java code based on <a href="http://www.antlr.org/">Antlr</a>
        grammar files. 
      </p>
      <p>
        The grammars to generate are specified using nested <a href="antlr_grammar.html">grammar</a>
        tags.
      </p>
      <p>
        <strong>Warning</strong>: The grammar files must be placed in the directory
        specified by the <code>maven.antlr.src.dir</code> variable. This hard coding
        should be removed in a future release.
      </p>
    </section>
    
    <section name="Attributes">
      <table>
        <tr>
          <th>Name</th>
          <th>Description</th>
          <th>Required</th>
        </tr>
        <tr>
          <td>outputDir</td>
          <td>The directory to place generated code into.</td>
          <td>Yes</td>
        </tr>
      </table>
    </section>
    
    <section name="Nested Elements">
      <table>
        <tr>
          <th>Name</th>
          <th>Description</th>
          <th>Required</th>
        </tr>
        <tr>
          <td>grammar</td>
          <td>
            The file name (within <code>maven.antlr.src.dir</code>) to use
            in code generation.
          .</td>
          <td>No</td>
        </tr>
      </table>
    </section>

    <section name="Examples">
      <source><![CDATA[
<j:jelly xmlns:j="jelly:core" xmlns:antlr="jelly:antlr">
  <j:set var="maven.antlr.src.dir" value="${basedir}/grammars"/>

  <antlr:antlr outputDir="${maven.antlr.target.dir}">
    <antlr:grammar>file1.antlr</antlr:grammar>
  </antlr:antlr>

</j:jelly>
      ]]></source>
    </section>
    
  </body>
</document>