|
78 | 78 | in the "Source-generating Targets" section and the "clean" target. --> |
79 | 79 | <property name="dynamicjava-parser" value="${src-working-dir}/parser/grammar.jj" /> |
80 | 80 | <property name="dynamicjava-parser-dir" value="${src-working-dir}/parser/impl" /> |
| 81 | + <property name="type-ast" value="${src-working-dir}/interpreter/Type.ast" /> |
| 82 | + <property name="type-ast-dir" value="${src-working-dir}/interpreter/type" /> |
81 | 83 | <property name="code-status-source" value="${src-working-dir}/CodeStatus.orig" /> |
82 | 84 | <property name="code-status-target" value="${src-working-dir}/CodeStatus.java" /> |
83 | 85 | <property name="version-source" value="${src-working-dir}/Version.orig" /> |
|
107 | 109 |
|
108 | 110 | <fileset id="libs" dir="lib" includes="*.jar" /> <!-- Only include jars that are at the top level (not in buildlib) --> |
109 | 111 |
|
| 112 | + <!-- ASTGen task, used to generate Java source representing an AST with visitors from a single .ast file --> |
| 113 | + <taskdef name="astgen" classpath="lib/buildlib/astgen.jar" classname="edu.rice.cs.astgen.AntTask" /> |
| 114 | + |
110 | 115 | <!-- Retroweaver task, used to convert Java 1.5 class files to be compatible with an earlier JVM; |
111 | 116 | also checks class references to insure that there are no dependencies on 1.5 APIs --> |
112 | 117 | <taskdef name="retroweaver" classpath="lib/buildlib/retroweaver-ex.jar" |
|
275 | 280 | <echo message="Processing ${version-source}" /> |
276 | 281 | <copy file="${version-source}" tofile="${version-target}" filtering="yes" /> |
277 | 282 |
|
| 283 | + <antcall target="generate-ast" inheritall="false"> |
| 284 | + <param name="generate-sourcefile" value="${type-ast}" /> |
| 285 | + <param name="generate-dir" value="${type-ast-dir}" /> |
| 286 | + </antcall> |
278 | 287 | <antcall target="generate-parser"> |
279 | 288 | <param name="generate-sourcefile" value="${dynamicjava-parser}" /> |
280 | 289 | <param name="generate-dir" value="${dynamicjava-parser-dir}" /> |
|
285 | 294 | already-generated has *not* been set --> |
286 | 295 | <target name="generate-parser" depends="check-generate-dir-from-file" unless="already-generated"> |
287 | 296 | <echo message="Processing ${generate-sourcefile}" /> |
288 | | - <!-- Unfortunately, dependset doesn't delete nested directories, so we have |
289 | | - to clean up the empty directories here --> |
290 | 297 | <delete dir="${generate-dir}" /> |
291 | 298 | <mkdir dir="${generate-dir}" /> |
292 | 299 | <javacc target="${generate-sourcefile}" outputdirectory="${generate-dir}" javacchome="${javacc-home}" /> |
293 | | - |
294 | 300 | <!-- Fix problems in generated code that cause compiler warnings --> |
295 | 301 | <replace file="${generate-dir}/JavaCharStream.java" |
296 | 302 | token="public int getColumn()" |
297 | 303 | value="@Deprecated public int getColumn()" /> |
298 | 304 | <replace file="${generate-dir}/JavaCharStream.java" |
299 | 305 | token="public int getLine()" |
300 | 306 | value="@Deprecated public int getLine()" /> |
301 | | - <!-- We want to replace the next two in the parser file, but we don't have easy access to its name, |
302 | | - so we just search the whole directory instead --> |
303 | | - <replace dir="${generate-dir}" |
304 | | - token="java.util.Vector jj_expentries = new java.util.Vector()" |
305 | | - value="java.util.Vector<int[]> jj_expentries = new java.util.Vector<int[]>()" /> |
306 | | - <replace dir="${generate-dir}" |
307 | | - token="java.util.Enumeration e = jj_expentries.elements()" |
308 | | - value="java.util.Enumeration<int[]> e = jj_expentries.elements()" /> |
| 307 | + </target> |
| 308 | + |
| 309 | + <!-- Assumes that the properties generate-sourcefile and generate-dir have been set, and that |
| 310 | + already-generated has *not* been set --> |
| 311 | + <target name="generate-ast" depends="check-generate-dir-from-file" unless="already-generated"> |
| 312 | + <echo message="Processing ${generate-sourcefile}" /> |
| 313 | + <delete dir="${generate-dir}" /> |
| 314 | + <mkdir dir="${generate-dir}" /> |
| 315 | + <astgen file="${generate-sourcefile}" /> |
309 | 316 | </target> |
| 317 | + |
310 | 318 |
|
311 | 319 |
|
312 | 320 | <!-- ******************* |
|
625 | 633 | <delete dir="classes" failonerror="${clean-can-fail}" /> |
626 | 634 | <delete dir="docs" failonerror="${clean-can-fail}" /> |
627 | 635 | <delete dir="${dynamicjava-parser-dir}" failonerror="${clean-can-fail}" /> |
| 636 | + <delete dir="${type-ast-dir}" failonerror="${clean-can-fail}" /> |
628 | 637 |
|
629 | 638 | <delete failonerror="${clean-can-fail}"> |
630 | 639 | <fileset dir="testFiles"> |
|
0 commit comments