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.