sno(1) DG/UX 4.30 sno(1)
NAME
sno - SNOBOL interpreter and compiler
SYNOPSIS
sno [files ]
DESCRIPTION
Sno is a SNOBOL compiler and interpreter (with slight
differences). 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 SNOBOL in the following ways:
There are no unanchored searches. To get the same
effect:
a ** b unanchored search for b.
a *x* b = x c unanchored 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 defined at run time, and
the use of the name define is preempted. There is no
provision for automatic variables other than
parameters. Examples:
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 built-in functions.
Parentheses for arithmetic are not needed. Normal
Licensed material--property of copyright holder(s) Page 1
sno(1) DG/UX 4.30 sno(1)
precedence applies. Because of this, the arithmetic
operators / and * must be set off by spaces.
The right side of assignments must not be empty.
Either ' or " may be used for literal quotes.
The pseudo-variable sysppt is not available.
SEE ALSO
awk(1).
Licensed material--property of copyright holder(s) Page 2