A.3 LISA+ preprocessing
according to scope
The LISA+ preprocessor treats the scopes differently.
- It never replaces or executes any
#includes
.
- It replaces macros only inside
behavior
code, nowhere else.
- It evaluates conditional compilation everywhere and macros evaluated in
#if
expressions.
- It ignores the preprocessor constructs (
#include
, #define
,
#if
) in non-behavior
sections, passing them on
intact to the C++ compiler, which deals with them. It makes sure that the C++
compiler sees the same set of preprocessor symbols that it saw, so that the LISA+
preprocessor and the C++ compiler perform this conditional compilation in the same
way.
Note:
Use LISA+ features
rather than preprocessor macros to avoid redundancy in the code.