PreProcessor There is no separate preprocessor pass. The parser front-end calls Lex() which has the preprocessor built-in. The compiler looks ahead a token, most of the time, so you might throw an extra semicolon after a directive if it's not taking affect right away. Put an extra semicolon #exe {Cd("DirName");;} in case a #include follows. #include "" There is no angle bracket <> form of this directive. #exe {} Will execute code at compile-time and can be used to insert code into the stream being compiled using StreamPrint(). #define Define string const #assert Print a warning during compilation if an expression is not true. #if Include code if an expresion is true. #else #endif #ifdef,#ifndef Include code if a sym is defined. #ifaot,#ifjit Include code if in AOT compiler mode. defined() Is a function that can be used in expressions. #help_index, #help_file See Help System. See PreProcessor.