SNO(1) SNO(1) NAME sno - Snobol language interpreter SYNOPSIS sno [ files ] DESCRIPTION Sno is a SNOBOL3 (with slight differences) compiler and interpreter. Sno obtains input from the concatenation of the named files and the standard input. All input through a statement containing the label end is considered program and is compiled. The rest is available to syspit. Sno differs from SNOBOL3 in the following ways: There are no unanchored searches. To get the same effect: a ** b unanchored search for b. a *x* b = x cunanchored assignment There is no back referencing. x = "abc" a *x* x is an unanchored search for abc. Function declaration is done at compile time by the use of the (non-unique) label define. Execution of a func- tion call begins at the statement following the define. Functions cannot be defined at run time, and the use of the name define is preempted. There is no provision for automatic variables other than parameters. Exam- ples: define f( ) define f(a, b, c) All labels except define (even end) must have a non- empty statement. Labels, functions and variables must all have distinct names. In particular, the non-empty statement on end cannot merely name a label. If start is a label in the program, program execution will start there. If not, execution begins with the first executable statement; define is not an executable statement. There are no builtin functions. SNO(1) SNO(1) Parentheses for arithmetic are not needed. Normal precedence applies. Because of this, the arithmetic operators / and * must be set off by spaces. The right side of assignments must be non-empty. Either ' or " may be used for literal quotes. The pseudo-variable sysppt is not available. SEE ALSO spitbol(1), snocone(1), awk(1) ``SNOBOL, a String Manipulation Language,'' by D. J. Farber, R. E. Griswold, and I. P. Polonsky, JACM 11 (1964), pp. 21- 30.