[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
The arguments are evaluated and converted to a string, if necessary. (see section 3.6.12 EXPR - Evaluate and emit an Expression) The scope of the macro is up to the matching ESAC function. Within the scope of a CASE, this string is matched against case selection macros. There are sixteen match macros that are derived from four different ways the test may be performed, plus an "always true" match. The code for each selection expression is formed as follows:
*
).
*
).
=
).
If a pattern match, use a tilde (~
).
*
).
For example:
[+ CASE <full-expression> +] [+ ~~* "[Tt]est" +]reg exp must match at start, not at end [+ == "TeSt" +]a full-string, case sensitive compare [+ = "TEST" +]a full-string, case insensitive compare [+ * +]always match - no testing [+ ESAC +] |
<full-expression>
(see section 3.3 Macro Expression Syntax) may be any expression,
including the use of apply-codes and value-names. If the expression yields
a number, it is converted to a decimal string.
These case selection codes have also been implemented as Scheme expression functions using the same codes (see section 3.5 Common Scheme Functions).
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |