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 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).