SNO(VI)                      2/9/73                       SNO(VI)







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  label  `end'  is  considered program and is

     compiled.  The rest is available to `syspit'.



     Sno differs from Snobol III 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 different.  The function declaration

     is  done  at  compile time by the use of the label `define'.

     Thus there is no ability 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.

     For example:



     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.



     Parentheses  for  arithmetic   are   not   needed.    Normal

     precedence   applies.    Because  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.







SEE ALSO

     Snobol III manual.  (JACM; Vol. 11 No. 1; Jan 1964; pp 21)



BUGS