Preprocessor

Commands that control the preprocessor.

Description
   Preprocessor commands are sent to the compiler to control what gets 
   compiled and how. They can be used to choose to compile one block of 
   code rather than another for cross-platform compatibility, include 
   headers or other source files, define small inline functions called 
   macros, or alter how the compiler handles variables.

Conditional Compilation
   Commands that allow for branches in compilation based on conditions.
Text Replacement
   Commands that create text-replacement macros.
File Directives
   Commands that indicate to the compiler how other files relate to the 
   source file.
Control Directives
   Commands that set compile options, control compilation, and report 
   compile time information.
Metacommands
   Commands that are kept for backward compatibility.

Conditional Compilation
   #if
      Compiles the following code block based on a condition.
   #ifdef
      Compiles the following code block if a symbol is defined.
   #ifndef
      Compiles the following code block if a symbol is not defined.
   #elseif
      Compiles the following code block if a condition is true and the 
      previous conditions was false.
   #else
      Compiles the following code block if previous conditions were false.
   #endif
      Signifies the end of a code block.
   defined
      Returns "-1" if a symbol is defined, otherwise "0".

Text Replacement
   #define
      Creates a single-line text-replacement macro.
   #macro and #endmacro
      Creates a multi-line text-replacement macro.
   #undef
      Undefines a symbol.
   # Preprocessor Stringize
      Converts text into a string literal.
   ## Preprocessor Concatenate
      Concatenates two pieces of text.
   ! Escaped String Literal
      Indicates string literal immediately following must be processed for 
      escape sequences.
   $ Non-Escaped String Literal
      Indicates string literal immediately following must not be processed 
      for escape sequences.
File Directives
   #include
      Inserts text from a file.
   #inclib
      Includes a library in the linking processes.
   #libpath
      Includes a path to search for libraries in the linking process.

Control Directives
   #pragma
      Sets compiling options.
   #Pragma Reserve
      Reserves symbol name.
   #Cmdline
      Sets compiler command options from source.
   #lang
      Sets dialect from source.
   #print
      Outputs a messages to standard output while compiling.
   #error
      Outputs a messages to standard output and stops compilation.
   #assert
      Stops compilation with an error message if a given condition is 
      false.
   #line
      Sets the current line number and file name.

Metacommands
   '$Include
      Alternate form of the #include directive.
   '$Dynamic
      Alternate form of the Option Dynamic statement.
   '$Static
      Alternate form of the Option Static statement.
   '$Lang
      Alternate form of the #lang directive.

See also
   * Intrinsic Defines

