Specifications
Saturn The PSYMAKE Utility 15-7
Psy-Q Development System
Directives: The following directives are available:
!if expression
!elseif expression
!else
!endif
These directives allow conditional processing of the text between the if, elseif, else
and endif. Any non-zero expression is true; zero is false.
!error message Print the message and stop.
!undef macroname Undefines a macro name.
Expressions: Expressions are evaluated to 32 bits, and consist of the following components :
Decimal Constants e.g. 1 10 1234
Hexadecimal e.g. $FF00 $123abc
Monadics - ~ !
Dyadics + - * / % > < &
| ^ && ||
> < >= <= == (or = )
!= (or <> )
The operators have the same meanings as they do in the C language, except for = and
<> ,which have been added for convenience.
Value assignment:
Macro names can be assigned a calculated value; for instance:
NUMFILES == $(NUMFILES)+1
( Note two equals signs in value assignment)
This evaluates the right hand side, converts it to a decimal ascii string and assigns the
result to the name on the left.
In the above example, if NUMFILES was currently "42", it will now be "43".
Note NUMFILE = $(NUMFILES)+1
would have resulted in NUMFILES becoming "42+1".
Undefined macro names convert to '0' in expressions and null string elsewhere.