[4] | 1 | <?xml version="1.0" encoding="UTF-8"?> |
---|
| 2 | |
---|
| 3 | <!-- |
---|
| 4 | ANT file for generating JFlex/CUP parsers. |
---|
| 5 | |
---|
| 6 | If you want to add a new parser, you basically only need to do the |
---|
| 7 | following two things: |
---|
| 8 | - write JFlex and CUP files, i.e., Parser.cup and Scanner.jflex, for your |
---|
| 9 | parser and place them in a separated sub-package |
---|
| 10 | - add an "antcall" to the "parsers" target, with the sub-package as parameter |
---|
| 11 | (the sub-package your parser files reside in) |
---|
| 12 | |
---|
| 13 | For an example, please refer to the "weka.core.mathematicalexpression" parser. |
---|
| 14 | |
---|
| 15 | URLs: |
---|
| 16 | - JFlex |
---|
| 17 | http://jflex.de/ |
---|
| 18 | - CUP |
---|
| 19 | http://www2.cs.tum.edu/projects/cup/ |
---|
| 20 | |
---|
| 21 | Author: FracPete (fracpete at waikato dot ac dot nz) |
---|
| 22 | Version: $Revision: 1.2 $ |
---|
| 23 | --> |
---|
| 24 | |
---|
| 25 | <project name="weka-parsers" default="compile" basedir="."> |
---|
| 26 | <property name="build.compiler" value="modern" /> |
---|
| 27 | <property name="debug" value="on" /> |
---|
| 28 | <property name="deprecation" value="off" /> |
---|
| 29 | <property name="optimization" value="off" /> |
---|
| 30 | <property name="build" value="build"/> |
---|
| 31 | <property name="lib" value="lib"/> |
---|
| 32 | <property name="parserpkg" value="" /> |
---|
| 33 | <property name="src" value="src/main/java" /> |
---|
| 34 | |
---|
| 35 | <path id="project.class.path"> |
---|
| 36 | <fileset dir="${lib}"> |
---|
| 37 | <include name="*.jar"/> |
---|
| 38 | <include name="*.zip"/> |
---|
| 39 | </fileset> |
---|
| 40 | <pathelement location="${build}/classes"/> |
---|
| 41 | <pathelement path="${java.class.path}" /> |
---|
| 42 | </path> |
---|
| 43 | |
---|
| 44 | <target name="init" description="Initializes the build environment."> |
---|
| 45 | <!-- initialize Weka --> |
---|
| 46 | <ant antfile="build.xml" target="init_compile"/> |
---|
| 47 | </target> |
---|
| 48 | |
---|
| 49 | <target name="compile" depends="init" description="Compiles Weka."> |
---|
| 50 | <!-- compile Weka --> |
---|
| 51 | <ant antfile="build.xml" target="compile"/> |
---|
| 52 | <!-- generate parsers --> |
---|
| 53 | <antcall target="parsers"/> |
---|
| 54 | <!-- recompile Weka --> |
---|
| 55 | <ant antfile="build.xml" target="compile"/> |
---|
| 56 | </target> |
---|
| 57 | |
---|
| 58 | <!-- central target for calling the parser targets --> |
---|
| 59 | <target name="parsers" depends="init" description="Generates all the parsers subsequently."> |
---|
| 60 | <antcall target="parser"> |
---|
| 61 | <param name="parserpkg" value="weka/core/mathematicalexpression"/> |
---|
| 62 | </antcall> |
---|
| 63 | <antcall target="parser"> |
---|
| 64 | <param name="parserpkg" value="weka/filters/unsupervised/instance/subsetbyexpression"/> |
---|
| 65 | </antcall> |
---|
| 66 | <antcall target="parser"> |
---|
| 67 | <param name="parserpkg" value="weka/core/json"/> |
---|
| 68 | </antcall> |
---|
| 69 | <!-- add calls for more parsers here --> |
---|
| 70 | </target> |
---|
| 71 | |
---|
| 72 | <!-- generates a parser situated in the ${parserpkg} sub-package |
---|
| 73 | (using Parser.cup and Scanner.jflex). --> |
---|
| 74 | <target name="parser" description="Generates the parser ${parserpkg}."> |
---|
| 75 | <echo message="Generating lexer (${parserpkg})."/> |
---|
| 76 | <java classname="JFlex.Main"> |
---|
| 77 | <classpath refid="project.class.path"/> |
---|
| 78 | <arg value="--jlex"/> |
---|
| 79 | <arg value="--quiet"/> |
---|
| 80 | <arg value="--nobak"/> |
---|
| 81 | <arg value="--outdir"/> |
---|
| 82 | <arg value="${src}/${parserpkg}"/> |
---|
| 83 | <arg value="${src}/${parserpkg}/Scanner.jflex"/> |
---|
| 84 | </java> |
---|
| 85 | <echo message="Generating parser (${parserpkg})."/> |
---|
| 86 | <java classname="java_cup.Main"> |
---|
| 87 | <classpath refid="project.class.path"/> |
---|
| 88 | <arg value="-parser"/> |
---|
| 89 | <arg value="Parser"/> |
---|
| 90 | <arg value="-interface"/> |
---|
| 91 | <arg value="-destdir"/> |
---|
| 92 | <arg value="${src}/${parserpkg}"/> |
---|
| 93 | <arg value="${src}/${parserpkg}/Parser.cup"/> |
---|
| 94 | </java> |
---|
| 95 | </target> |
---|
| 96 | </project> |
---|