Directives are special comments that change compiler code generation. The syntax is standard Pascal syntax:
directive =
"{$" directive-item [ comment ] "}" |
"(*$" directive-item [ comment ] "*)" .
directive-item = directive-tag { directive-toggle | directive-parameters } .
directive-toggle = directive-switch-on | directive-switch-off .
directive-switch-on = ON | "+" .
directive-switch-off = OFF | "-" .
In addition, for some directives, PMP allows to group several items, separated by commas; if several items are specified, no embedded comment is allowed:
multiple-directive =
"{$" directive-item { "," directive-item } "}" |
"(*$" directive-item { "," directive-item } "*)" .
A space may be inserted after the $ sign (not standard Pascal).
Spaces are not significant in directive items.
In the definitions above, <comment> is to specify that any text after the directive parameters (if any) is considered as comment and ignored.
Directives may be inserted between constant array values.
In the directives descriptions in the following chapters, some directives or arguments have synonyms, they are separated by a BNF OR operator "|".