| <?xml version="1.0"?> |
| |
| <project name="antlr-test" basedir="." default="test1"> |
| |
| <property name="tmp.dir" location="antlr.tmp"/> |
| |
| |
| <target name="setup"> |
| <mkdir dir="${tmp.dir}"/> |
| </target> |
| |
| <target name="test1"> |
| <antlr/> |
| </target> |
| |
| <target name="test2"> |
| <antlr target="antlr.g" outputdirectory="${tmp.dir}"/> |
| </target> |
| |
| <target name="test3" depends="setup"> |
| <antlr target="antlr.g" outputdirectory="${tmp.dir}"/> |
| <fail> |
| <condition> |
| <!-- to prove each of these files exists; |
| ANTLR >= 2.7.6 leaves behind new (.smap) files as well. --> |
| <resourcecount when="ne" count="5"> |
| <fileset dir="${tmp.dir}"> |
| <include name="CalcParserTokenTypes.txt" /> |
| <include name="CalcParserTokenTypes.java" /> |
| <include name="CalcLexer.java" /> |
| <include name="CalcParser.java" /> |
| <include name="CalcTreeWalker.java" /> |
| </fileset> |
| </resourcecount> |
| </condition> |
| </fail> |
| </target> |
| |
| <target name="test4" depends="setup"> |
| <antlr target="java.g" outputdirectory="${tmp.dir}"/> |
| <antlr dir="${tmp.dir}" target="java.tree.g" outputdirectory="${tmp.dir}"/> |
| </target> |
| |
| <target name="test5" depends="setup"> |
| <antlr target="java.tree.g" outputdirectory="${tmp.dir}" fork="yes"/> |
| </target> |
| |
| <target name="test6" depends="setup"> |
| <antlr target="java.g" outputdirectory="${tmp.dir}" /> |
| <antlr dir="${tmp.dir}" |
| target="java.tree.g" |
| outputdirectory="${tmp.dir}" |
| fork="yes"/> |
| </target> |
| |
| <target name="test7"> |
| <antlr target="antlr.xml"/> |
| </target> |
| |
| <target name="test8" depends="setup"> |
| <antlr target="extended.calc.g" outputdirectory="${tmp.dir}" glib="non-existant-file.g"/> |
| </target> |
| |
| <target name="test9" depends="setup"> |
| <!-- Note that I had to copy the grammars over to the temporary directory. --> |
| <!-- This is because ANTLR expects the super grammar and its generated java --> |
| <!-- files to be in the same directory, which won't be the case if I use --> |
| <!-- the output directory option. --> |
| <copy file="antlr.g" todir="${tmp.dir}"/> |
| <copy file="extended.calc.g" todir="${tmp.dir}"/> |
| <antlr target="${tmp.dir}/antlr.g"/> |
| <antlr target="${tmp.dir}/extended.calc.g" glib="${tmp.dir}/antlr.g"/> |
| </target> |
| |
| <target name="test10" depends="setup"> |
| <antlr target="antlr.g" outputdirectory="${tmp.dir}" html="yes"/> |
| </target> |
| |
| <target name="test11" depends="setup"> |
| <antlr target="antlr.g" outputdirectory="${tmp.dir}" diagnostic="yes"/> |
| </target> |
| |
| <target name="test12" depends="setup"> |
| <antlr target="antlr.g" outputdirectory="${tmp.dir}" trace="yes"/> |
| </target> |
| |
| <target name="test13" depends="setup"> |
| <antlr target="antlr.g" outputdirectory="${tmp.dir}" traceLexer="yes" traceParser="yes" traceTreeWalker="yes"/> |
| </target> |
| |
| <!-- test9 will have been run before that --> |
| <target name="noRecompile"> |
| <antlr target="${tmp.dir}/extended.calc.g" glib="${tmp.dir}/antlr.g"/> |
| </target> |
| |
| <!-- test9 will have been run before that --> |
| <target name="normalRecompile"> |
| <sleep seconds="2"/> |
| <touch file="${tmp.dir}/extended.calc.g"/> |
| <antlr target="${tmp.dir}/extended.calc.g" glib="${tmp.dir}/antlr.g"/> |
| </target> |
| |
| <!-- test9 will have been run before that --> |
| <target name="supergrammarChangeRecompile"> |
| <sleep seconds="2"/> |
| <touch file="${tmp.dir}/antlr.g"/> |
| <antlr target="${tmp.dir}/extended.calc.g" glib="${tmp.dir}/antlr.g"/> |
| </target> |
| |
| <target name="cleanup"> |
| <delete dir="${tmp.dir}" /> |
| <delete file="../../../../../../CalcParserTokenTypes.txt"/> |
| </target> |
| |
| </project> |