2.2.2.1.1 ADM Conditional Directive

In addition to the ABNF syntax specified, the ADM file allows a conditional directive to include or exclude portions of the file depending on the version of the ADM file.

The following specifies the syntax of the conditional directive.

  
 AdmIf = TokIf TokVersion AdmOperator TokDigits <enclosed text> TokEndif
 AdmOperator = (TokGT / TokLT / TokEQ / TokNE / TokGE / TokLE)
 TokDigits =         WhiteSpace 1*DIGIT               SpaceDelimiter
 TokEQ =             WhiteSpace "=="                  SpaceDelimiter
 TokEndif =          WhiteSpace "#endif"              SpaceDelimiter
 TokGE =             WhiteSpace ">="                  SpaceDelimiter
 TokGT =             WhiteSpace ">"                   SpaceDelimiter
 TokIf =             WhiteSpace "#if"                 SpaceDelimiter
 TokLE =             WhiteSpace "<="                  SpaceDelimiter
 TokLT =             WhiteSpace "<"                   SpaceDelimiter
 TokNE =             WhiteSpace "!="                  SpaceDelimiter
 TokVersion =        WhiteSpace "version"             SpaceDelimiter
  

The ADM Conditional Directive is broad enough that it is best understood as a "pre-processing" directive. The enclosed text is either included or excluded from parsing depending on the condition specified. Conditional directives can appear anywhere in the ADM file and they can be nested.

The TokDigits are interpreted as a version number corresponding to the operating system version at the time the ADM was released.<4>