SNO(1)
НАЗВАНИЕ
sno - интерпретатор СНОБОЛа
СИНТАКСИС
sno [ файлы ]
ОПИСАНИЕ
Команда sno - это компилятор и интерпретатор СНОБОЛа (с
незначительными отличиями). На вход команде sno подается конкатенация названных файлов и стандартного ввода.
Весь входной текст вплоть до оператора, содержащего
метку end, считается программой и компилируется. Доступ
к остальной части текста можно получить через псевдопеременную syspit.
Sno имеет следующие отличия от СНОБОЛа:
Отсутствует незакрепленный поиск. Тот же самый результат можно получить с помощью следующих конструкций:
a ** b незакрепленный поиск b.
a *x* b = x c незакрепленное присваивание
Отсутствуют обратные ссылки.
x = "abc"
a *x* x незакрепленный поиск abc.
Определение функций осуществляется в режиме компиляции при помощи (неуникальной) метки define. Выполнение вызова функции начинается с оператора,
который следует за define. Функции не могут быть
определены в режиме выполнения программы, имя
define зарезервировано. Кроме формальных параметров, других автоматических переменных не предусмотрено. Примеры:
define f( )
define f(a, b, c)
Все метки за исключением define (даже end) должны
помечать непустой оператор.
Все метки, функции и переменные должны иметь различные имена. В частности, непустой оператор, помеченный end'ом, не может просто называть метку.
Если начало - это метка программы, то стартует выполнение этой программы. В противном случае, выполнение начинается с первого выполняемого оператора; define не является выполняемым оператором.
Встроенные функции отсутствуют.
Скобки в арифметических выражениях необязательны.
Поддерживается обычное соглашение о приоритетах.
По этой причине арифметические операции / и *
должны окаймляться пробелами.
Правая часть присваиваний должна быть непустой.
Для выделения литералов можно использовать как ',
так и ".
Псевдопеременная sysppt недоступна.
СМ. ТАКЖЕ
awk(1).
SNOBOL, A String Manipulation Language, by D. J. Farber, R. E. Griswold, and I. P. Polonsky, JACM 11 (1964), pp. 21-30.