A.3 LISA+ preprocessing
according to scope
The LISA+ preprocessor treats the scopes differently.
- It never replaces or executes any
- It replaces macros only inside
behavior code, nowhere else.
- It evaluates conditional compilation everywhere and macros evaluated in
- It ignores the preprocessor constructs (
#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
Note: Use LISA+ features
rather than preprocessor macros to avoid redundancy in the code.