Ant Task¶
Initiate CookCC Ant Task¶
To use CookCC Ant Task, first add the following line (and modify the
class path) to your build.xml so that Ant recognizes <cookcc>.
<target name="initcookcc">
    <taskdef name="cookcc" classname="org.yuanheng.cookcc.ant.Task" classpath="${basedir}/tool/cookcc-0.3.jar"/>
</target>
Generic CookCC Input¶
For input files such as *.xcc, the typical setup is.
<target name="TokenParser.java" depends="initcookcc">
    <cookcc src="${basedir}/src/org/yuanheng/cookcc/util/TokenParser.xcc">
        <option name="-class" value="org.yuanheng.cookcc.util.TokenParser"/>
        <option name="-d" value="${basedir}/src"/>
    </cookcc>
</target>
The attributes of <cookcc> are the following:
| Attribute | Description | 
|---|---|
| src | the input file. | 
| lang | Same as -langcommand line option. Select the
output language. The default isjava | 
| analysis | Same as -analysiscommand line option. | 
| lexertable | Same as -lexertablecommand line option. | 
| parsertable | Same as -parsertablecommand line option. | 
| defaultreduce | Same as -defaultreducecommand line option. | 
Additional language specific options can be specified using the nested
<option> tag.
Annotation Processing Tool (APT)¶
If the input file specified in the src attribute has the .java
extension, APT mode is assumed.
The annotation processing API changed from 1.5 to 1.6+. As the result CookCC 0.3.3 only supports JDK1.5 and 1.6, while CookCC 0.4.0 and later supports JDK1.6+.
The typical setup is the following.
<target name="FileHeaderLexer.java" depends="initcookcc">
    <cookcc srcdir="${basedir}/javaap_src" src="org/yuanheng/cookcc/input/javaap/FileHeaderScanner.java"/>
</target>
| Attribute | Description | 
|---|---|
| srcdir | the source directory. It is required. | 
| destdir | the output directory. If not specified, it would be
the same as srcdir. | 
| src | a list of java files separated by space. Note that
the path is relative to the directory specified by srcdirattribute. | 
| lang | Same as -langcommand line option. Select the
output language. The default isjava | 
| analysis | Same as -analysiscommand line option. | 
| lexertable | Same as -lexertablecommand line option. | 
| parsertable | Same as -parsertablecommand line option. | 
| defaultreduce | Same as -defaultreducecommand line option. | 
Additional language specific options can be specified using the nested
<option> tag.
Nested Option Tag¶
<option> is used to specify additional language specific command
line options. It has two attributes.
| Attribute | Description | 
|---|---|
| name | the option name, such as -class,-detc | 
| value | the option value. It is optional. |