Функция SYMBOL в качестве результата возвращает состояние символа с указанным именем. Если имя не является действительным символом языка REXX, то в качестве результата возвращается значение BAD. Функция SYMBOL возвращает значение VAR, если указанное имя является именем переменной (т.е. символом, которому присвоено некоторое значение). В противном случае функция SYMBOL возвращает значение LIT, свидетельствующее о том, что указанный символ либо является константой, либо символом, которому еще не присвоено никакое значение (т.е. литералом).
Что касается символов, используемых в выражениях REXX, то строчные буквы указанного имени переводятся в прописные и по возможности выполняются подстановки для составных имен.
Прим. | Чтобы предотвратить подстановку значений перед передачей символа в функцию, в качестве имени нужно указывать текстовую строку (или выведенную из выражения). |
Ниже приведено несколько примеров: /* предшествовало: Drop A.3; J=3 */ SYMBOL('J') -> 'VAR' SYMBOL(J) -> 'LIT' /* проверяет "3" */ SYMBOL('a.j') -> 'LIT' /* проверяет "A.3" */ SYMBOL(2) -> 'LIT' /* константа */ SYMBOL('*') -> 'BAD' /* недействительный символ */