# Compile

This command creates a compiled Eduction grammar file.

    edktool c <grammarfile>

The following table lists the optional parameters for this command.

`-l <licensefile>` | The file containing a valid license key for Eduction. If you do not specify a license key, edktool attempts to load the license `licensekey.dat` in its current working directory. You must specify the license parameter if your license is in a different location.
`-i <inputfile>` | The uncompiled (source) XML Eduction grammar file to process.
`-e <entity>` | A comma-separated list of entities to include in the output file. When you include entities in the command line, Eduction includes only those entities in the output file. Otherwise, Eduction includes all entities from the input file in the output file. You can use wildcard expressions in the entity list. See Wildcard Expressions in edktool.
`-o <outputfile>` | The output file name. If you do not specify the output file name, Eduction creates an output file using the XML grammar file name with `.ecr` appended.
`-c <configfile>` | The compilation configuration file to use. See Use a Compilation Configuration File.

When you compile a grammar, the XML file must follow the Eduction syntax rules for grammar files. The ECR file is a proprietary format that is optimized for fast loading into the Eduction engine at run time. While the engine can load XML grammar files, as well as compiled ECR files, compiling a grammar file makes loading quicker.

Compiled grammar files are binary files, which you cannot read. You can use the `List` option to view the public entities in a compiled grammar file.

## Examples

To compile `mygrammar.xml` into `mygrammar.ecr`:

    edktool c mygrammar.xml

To compile all the entities in the `common` entity type in `mygrammar.xml` into `compiledgrammar.ecr`:

    edktool c -i mygrammar.xml -e common/* -o compiledgrammar.ecr

_FT_HTML5_bannerTitle.htm