Menu

antbuild

Tom Harwood

Building JBurg BURMs with Apache Ant

Ant macrodef

This macro makes invocation of JBurg less intrusive in the main build sequence.

    <!--
        Define a <jburg input="..." output="..."> macro
        for using JBurg to generate a Java-based BURM from a .jbg file.
    -->
    <macrodef name="jburg">
        <attribute name="input"/>
        <attribute name="output"/>
        <sequential>
            <dirname property="jburg.dirname.@{input}" file="@{input}"/>
            <dirname property="jburg.dirname.@{output}" file="@{output}"/>
            <basename property="jburg.basename.@{output}" file="@{output}"/>
            <mkdir dir="${jburg.dirname.@{output}}"/>
            <java jar="${jburg.jar}"
                  fork="true" failonerror="true" >
                <arg value="@{input}"/>
                <arg value="-outputdir"/>
                <arg value="${jburg.dirname.@{output}}"/>
                <arg value="-outputfile"/>
                <arg value="${jburg.basename.@{output}}"/>
                <arg value="-g"/>
                <classpath>
                    <pathelement path="${antlr.jar}"/>
                    <pathelement path="${jburg.jar}"/>
                </classpath>
            </java>
        </sequential>
    </macrodef>

Using the macro

<jburg input="src/jburg/tutorial/second/second.jbg" output="gensrc/SecondTreeParser.java"/>

Related

Wiki: JBurg Reference
Wiki: JBurg2 Reference
Wiki: JBurg2 Syntax