This mode is selected by the $MODE MAC switch. On the command line, this mode is selected by the
-MMAC 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 modifer for types in parameter lists is accepted, but is otherwise ignored.
- ... (ellipsis) is allowed in procedure declarations, is functionally equal to the varargs
keyword.
(Note: Macros are called ’Compiler Variables’ in Mac OS dialects.)
Currently, the following Mac OS pascal extensions are not yet supported in MAC mode:
- A nested procedure cannot be an actual parameter to a procedure.
- No anonymous procedure types in formal parameters.
- External procedures declared in the interface must have the directive External.
- Continue instead of Cycle.
- Break instead of Leave
- Exit should not 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.