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. Note:
Defining your own directives, for details about defining macros.
`.AIF EXPRA CMP EXPRB'
`.AIF "STRA" CMP "STRB"'
The governing condition goes on the same line as the `.AIF'
preprocessor command. You may compare either two strings, or two
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* (Note: Arithmetic expressions in GASP.).
You can use these CMP comparison operators with expressions:
Are EXPRA and EXPRB equal? (For strings, are STRA and STRB
Are EXPRA and EXPRB different? (For strings, are STRA and
Is EXPRA less than EXPRB? (Not allowed for strings.)
Is EXPRA less than or equal to EXPRB? (Not allowed for
Is EXPRA greater than EXPRB? (Not allowed for strings.)
Is EXPRA greater than or equal to EXPRB? (Not allowed for
Marks the start of assembly code to be included if the condition
fails. Optional, and only allowed within a conditional (between
`.AIF' and `.AENDI').
Marks the end of a conditional assembly.
Next: Loops Up: Commands
[ Dokumentation lokal installierter Software ]