


      SNO(1)                      (bsd 5.2)                      SNO(1)



      NAME
           sno - SNOBOL interpreter

      SYNTAX
           sno [ files ]

      DESCRIPTION
           Sno is a SNOBOL3 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 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 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



      Page 1                                          (73 A2 02MT REV1)






      SNO(1)                      (bsd 5.2)                      SNO(1)



                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
           awk(1).












































      Page 2                                          (73 A2 02MT REV1)



