5.12 Using the Assembler Preprocessor

In QSMM, the assembler preprocessor provides the means of encapsulating similar blocks of source code in macros reusable in an assembler program. Macros can define nested control transfer structures and produce unique location labels when expanded. The preprocessor also provides the means of including other files in an assembler source file.

The preprocessor returns a single output buffer with a preprocessed text for an assembler program and all source files it includes. Preprocessed output can contain ‘line’ directives describing locations of preprocessed text fragments in source files. The assembler includes this information in error, warning, and note messages. The preprocessor also merges (quoted) string literals separated by zero or more whitespace characters into a single string literal.

The preprocessor provides only basic features necessary to work with symbols and macros. If you need more sophisticated features to generate the source text of an assembler program, either produce input to the preprocessor using an auxiliary function, program, or script or generate an assembler program that does not require preprocessing by a function, program, or script directly.