term% cat index.txt SNO(1) General Commands Manual 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 function call begins
at the statement following the define. Functions cannot be de‐
fined at run time, and the use of the name define is preempted.
There is no provision for automatic variables other than parame‐
ters. Examples:
define f( )
define f(a, b, c)
All labels except define (even end) must have a non-empty state‐
ment.
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.
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.
SNO(1)