glenda.party
term% ls -F
term% pwd
$home/manuals/unix_v8/1/sno
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)