Once a file has been lexically analyzed, several different kinds of source preprocessing are done. The most important is conditional compilation, which affects which source is processed by the syntactic grammar. There are also two types of directives – external source directives and region directives – that provide meta-information about the source.