Next: , Up: Input file format


5.1 Preprocessing

A dotgen specification consists of one or more files that are preprocessed. The preprocessing is controlled by directives introduced by lines having # as the first character other than white space. Preprocessor directives have their own syntax (namely, the C preprocessor syntax), independent of the dotgen language and not entirely described in this document. see The C preprocessor for a comprehensive documentation.

The primary use of the preprocessing facility is to include definitions (especially type definitions) from other dotgen specifications. Directives may appear anywhere in the source file but are not seen nor interpreted by GenoM. For instance, text in files included with a #include directive is treated as if it appeared in the including file. However, some preprocessor #pragma directives are available to GenoM (see Pragmas).

The C preprocessor used by GenoM is pcpp from the pcc project (http://pcc.ludd.ltu.se/). It is invoked as a separate process from libexec/genom-pcpp by default. This can be changed by setting the environement variable GENOM_CPP, See Environment variables. However, note that if you change the default, you will loose some of the functionalities provided by genom-pcpp, like the #pragma require feature (see #pragma requires).