──SYMBOL(name)───────────────
SYMBOL returns the state of the symbol named by name. If name is not a valid REXX symbol, BAD is returned. SYMBOL returns VAR if it is the name of a variable (that is, a symbol that has been assigned a value). Otherwise, SYMBOL returns LIT, indicating that it is either a constant symbol or a symbol that has not yet been assigned a value (that is, a literal).
As with symbols in REXX expressions, lowercase characters in name are translated to uppercase and substitution in a compound name occurs if possible.
┴╓: You should specify name as a literal string (or derived from an expression) to prevent substitution before it is passed to the function.
Here are some examples:
/* following: Drop A.3; J=3 */ SYMBOL('J') -> 'VAR' SYMBOL(J) -> 'LIT' /* has tested "3" */ SYMBOL('a.j') -> 'LIT' /* has tested "A.3" */ SYMBOL(2) -> 'LIT' /* a constant symbol */ SYMBOL('*') -> 'BAD' /* not a valid symbol */