# The DDL Preprocessor

> The eXtremeDB DDL compiler `mcocomp` allows limited use of the C preprocessor. Preprocessor directives are typically used to make source programs easy to change. Directives in the source file tell the compiler to perform specific actions, such as replacing tokens in the text. The eXtremeDB DDL compiler recognizes the following directives: `#define #ifdef #else #endif #include #undef`

> The number sign (`#`) must be the first nonwhite-space character in the line containing the directive; white-space characters can appear between the number sign and the first letter of the directive. Some directives include arguments or values. Preprocessor directives can appear anywhere in a source file, but they apply only to the remainder of the source file.

> Usage examples:

>         #include "inc1.h"
>         #define int1	signed<1>
>         #define int2	signed<2>
>         #define int4	signed<4>
>         #define uint4	unsigned<4>
>         #define uint2	unsigned<2>
>         #define uint1	unsigned<1>
>         #define SYMBOL_LEN	4
>         #define SYMBOL		char<SYMBOL_LEN>

>         #ifdef X_DEFINED
>             #include "inc2.h"
>         #else
>             #include "inc3.h"
>             #define   SOME_VALUE 34
>         #endif