The conditional-assembly directives allow you to include or exclude portions of an assembly depending on how a pair of expressions, or a pair of strings, compare.
The overall structure of conditionals is familiar from many other
contexts. .AIF
marks the start of a conditional, and precedes
assembly for the case when the condition is true. An optional
.AELSE
precedes assembly for the converse case, and an
.AENDI
marks the end of the condition.
You may nest conditionals up to a depth of 100; GASP rejects nesting beyond that, because it may indicate a bug in your macro structure.
Conditionals are primarily useful inside macro definitions, where you often need different effects depending on argument values. See section Defining your own directives, for details about defining macros.
.AIF expra cmp exprb
.AIF "stra" cmp "strb"
.AIF
preprocessor command. You may compare either two strings, or two
expressions.
When you compare strings, only two conditional cmp comparison
operators are available: `EQ' (true if stra and strb
are identical), and `NE' (the opposite).
When you compare two expressions, both expressions must be
absolute (see section Arithmetic expressions in GASP). You
can use these cmp comparison operators with expressions:
EQ
NE
LT
LE
GT
GE
.AELSE
.AIF
and
.AENDI
).
.AENDI