Command Line Options

CookCC jar can be directly executed. The general usage is the following.

java -jar cookcc-0.4.3.jar [options] [files]

Command Line Options

Option Description
-help Display available command line options.
-lang <language> Select the output language. Default is java.
-quiet Suppress console messages.
-debug Generate debugging code. The effect depends on the target language code generator.
-analysis Generate an analysis file for the parser grammar. The file name is fixed to cookcc_parser_analysis.txt.
-defaultreduce Generate a compact parser table (for compressed table format) by assuming that entries would be reduced by default, even in cases of unwanted look ahead.
-lexertable <format> Select lexer DFA table format. Available choices are ecs, full, and compressed. This option will override the table choice specified in the input file. The default choice is ecs.
-parsertable <format> Select parser DFA table format. Available choices are ecs, and compressed. This option will override the table choice specified in the input file. The default choice is ecs.

Language specific options can be found by specifying the language along with -help. For example:

java -jar cookcc.jar -help -lang java

Annotation Processing

It is far easier simply using the Ant task, which has a lot of things taken cared. The documentation here is just for people have to run it on command line.

Java Compiler

CookCC 0.4+ supports annotation processing API in Java compiler, which is in JDK 1.6+.

javac -proc:only -processor org.yuanheng.cookcc.input.ap.CookCCProcessor -cp cookcc-0.4.1.jar:src -s src org.example/


Only CookCC 0.3.x supports Java APT, which is a tool that comes with JDK 1.5 and JDK 1.6.

The basic command line execution is like the following.

apt -nocompile -cp tool/cookcc-0.3.jar:src -s src org.example/


In both examples above, it is necessary to add CookCC jar file to the class path since it contains CookCC annotation classes, CookCCByte, etc. It also contains the CookCC annotation processing tool. It is not necessary to specify the CookCC annotation processor factory since this information is embedded in the jar file.

src directory in this case should be the source code directory where is located in. It is necessary to specify this directory both the class path and as the source directory (-s option).

Multiple Java files can be specified. CookCC annotation processor can deal with multiple input files at a time.

To specify CookCC specific options, it requires an approach that serves not to confuse the APT, which has its own set of options.

Examples of specifying CookCC options using APT or Java Compiler:

CookCC Option Command line using APT
-d src -Ad=src
-defaultreduce -Adefaultreduce
-lang xml -Alang=xml