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.