.th SNO VI 2/9/73 .sh NAME sno \*- Snobol interpreter .sh SYNOPSIS .bd sno [ file ] .sh DESCRIPTION .it Sno is a Snobol III (with slight differences) compiler and interpreter. .it Sno obtains input from the concatenation of .it 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'. .s3 .it Sno differs from Snobol III in the following ways. .s3 There are no unanchored searches. To get the same effect: .s3 a ** b unanchored search for b .br a *x* b = x c unanchored assignment .s3 There is no back referencing. .s3 x = "abc" .br a *x* x is an unanchored search for `abc' .s3 .i0 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: .s3 .lp +8 8 .bd "define f( )" .s3 .i0 or .s3 .lp +8 8 .bd "define f(a,b,c)" .s3 .i0 All labels except `define' (even `end') must have a non-empty statement. .s3 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. .s3 There are no builtin functions. .s3 Parentheses for arithmetic are not needed. Normal precedence applies. Because of this, the arithmetic operators `/' and `*' must be set off by space. .s3 The right side of assignments must be non-empty. .s3 Either \*a or " may be used for literal quotes. .s3 The pseudo-variable `sysppt' is not available. .sh "SEE ALSO" Snobol III manual. (JACM; Vol. 11 No. 1; Jan 1964; pp 21) .sh BUGS