SNO (I) 2/9/73 SNO (I)
NAME sno -- SNOBOL interpreter
SYNOPSIS sno [ file ]
DESCRIPTION sno is a SNOBOL III (with slight differences)
compiler and interpreter. sno obtains input from
the concatenation of file and the standard input.
All input through a statement containing the la-
bel 'end' is considered program and is compiled.
The rest is available to 'syspit'.
The following is a list of differences between
sno and SNOBOL III:
There are no unanchored searches. To get the
same effect:
a ** b unanchored search for b
a *x* b = x c unanchored assignment
No back referencing
x = "abc"
a *x* x unanchored search for "abc"
Different function declaration. The function
declaration is done at compile time by the use
of the label 'define'. Thus there is no abil-
ity to define functions at run time and the
use of the name 'define' is preempted. There
is also no provision for 'automatic' variables
other than the parameters.
define f()
or
define f(a,b,c)
All labels except 'define' (even 'end') must
have a non-empty statement.
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
Variable length patterns at the end of a pat-
tern match are not treated specially. They
still match the shortest rather than longest
text.
Parentheses for arithmetic are not needed.
Normal (eg FORTRAN) precedence applies. Be-
cause of this, the arithmetic operators '/'
and '*' must be set off by space.
The right side of assignments must be non-
empty.
Either ' or " may be used for literal quotes.
The pseudo-variable 'sysppt' is not available.
FILES --
SEE ALSO SNOBOL III manual. (JACM; Vol. 11 No. 1; Jan
1964; pp 21)
DIAGNOSTICS As appropriate
BUGS Runtime diagnostics give the last program line
number rather than the executing statement line
number.