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)