This mode is selected by the $MODE MACPAS switch. On the command line, this mode is selected by the -Mmacpas switch. It mainly switches on some extra features:
Support for the $SETC directive.
Support for the $IFC, $ELSEC and $ENDC directives.
Support for the UNDEFINED construct in macros.
Support for TRUE and FALSE as values in macro expressions.
Macros may be assigned hexadecimal numbers, like $2345.
The Implementation keyword can be omitted if the implementation section is empty.
The cdecl modifier keyword can be abbreviated to C.
UNIV Modifier for types in parameter lists is supported.
... (ellipsis) is allowed in procedure declarations, is functionally equal to the varargs keyword.
$MODESWITCH nestedprocvars is enabled by default.
(Note: Macros are called ’Compiler Variables’ in Mac OS dialects.)
Currently, the following Mac OS pascal extensions are not yet supported in MACPAS mode:
External procedures declared in the interface must have the directive External, unless the unit has no Implementation section.
Cycle instead of Continue.
Leave instead of Break
Exit cannot have the name of the procedure to exit as parameter. Instead, for a function the value to return can be supplied as parameter.
No propagating uses.
Compiler directives defined in interface sections are not exported.