<?xml version="1.0"?>
<!--
  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
  
       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://commons.apache.org/jelly/libs/antlr/">http://commons.apache.org/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>