<?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 (taglib:tag)</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 specifies grammars to add to an <a href="antlr_antlr.html">antlr</a> tag
        for it's processing.
      </p>
      <p>
        The body of this tag must be a file name to be found in the parent tag's source directory.
      </p>
    </section>
    
    <section name="Attributes">
      <p>None</p>
    </section>
    
    <section name="Nested Elements">
      <p>None</p>
    </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:grammar>file2.antlr</antlr:grammar>
  </antlr:antlr>

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