!TITLE MACROS The upper-case letters 'A' to 'W' and the punctuation symbols have a fixed significance to ECCE. All the lower-case letters, and the upper-case letters 'X' to 'Z', are available for definition as macros, that is as abbreviations for sequences of characters. So also are the control keys. ! ! ! ! ! F/basically/S/actually/ M-10 x T/y/ I/,/ -> M-10 F/basically/ T/y/ I/,/ ycomment/ -> MR*I/ :comment/ A command macro letter may abbreviate any initial part of a command sequence; the last example illustrates a case where it includes the opening delimiter for a text string and a fixed initial part. The effect of typing a macro character (letter or control key) is always literal substitution of the sequence of characters for which it stands. !PAGE Where a macro letter is defined to be a complete group of two or more commands it is always sensible to include parentheses in the definition, as in "%K z=(F.error.I.**.)" rather than just "%K z=F.error.I.**.", so that if a repetition count is attached to the macro letter, it will apply to the whole sequence and not just the last component (see next Section). The definition of one macro may include a reference to another, but any form of circular definition is invalid and an occurrence of any of the macro letters within text delimiters always stands for itself. !PAGE One common case where temporary macros can be useful is when some but not all occurrences of a text string, say "max", have to be changed to something else, say "count", inspection being required to determine which. With the two definitions %K x=F/max/ %K y=S/count/x "x" can be used to find the first occurrence of "max" and thereafter "y" or "x" depending on whether a change is required or not. Macro definitions persevere until the end of the editing session or until the relevant key is re-defined. !> !>