| <?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. |
| --> |
| |
| <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> |