|
|
1.1 root 1: .th SNO I 2/9/73
2: .sh NAME
3: sno \*- Snobol interpreter
4: .sh SYNOPSIS
5: .bd sno
6: [ file ]
7: .sh DESCRIPTION
8: .it Sno
9: is a Snobol III (with slight differences)
10: compiler and interpreter.
11: .it Sno
12: obtains input from the
13: concatenation of
14: .it file
15: and the standard input.
16: All input through a statement
17: containing the label `end' is
18: considered program and is compiled.
19: The rest is available to `syspit'.
20: .s3
21: .it Sno
22: differs from Snobol III in the following ways.
23: .s3
24: There are no unanchored searches.
25: To get the same effect:
26: .s3
27: a ** b unanchored search for b
28: .br
29: a *x* b = x c unanchored assignment
30: .s3
31: There is no back referencing.
32: .s3
33: x = "abc"
34: .br
35: a *x* x is an unanchored search for `abc'
36: .s3
37: .i0
38: Function declaration is different.
39: The function declaration is
40: done at compile time by the use of the label `define'.
41: Thus there is no ability to define functions at run time
42: and the use of the name `define' is preempted.
43: There is also no provision for automatic variables
44: other than the parameters.
45: For example:
46: .s3
47: .lp +5 5
48: .bd "define f( )"
49: .s3
50: .i0
51: or
52: .s3
53: .lp +5 5
54: .bd "define f(a,b,c)"
55: .s3
56: .i0
57: All labels except `define' (even `end')
58: must have a non-empty statement.
59: .s3
60: If `start' is a label in the program,
61: program execution will start there.
62: If not, execution begins with the first
63: executable statement.
64: `define' is not an executable statement.
65: .s3
66: There are no builtin functions.
67: .s3
68: Parentheses for arithmetic are not needed.
69: Normal precedence applies.
70: Because of this, the arithmetic
71: operators `/' and `*'
72: must be set off by space.
73: .s3
74: The right side of assignments
75: must be non-empty.
76: .s3
77: Either \*a or " may be used for literal quotes.
78: .s3
79: The pseudo-variable `sysppt' is not available.
80: .sh "SEE ALSO"
81: Snobol III manual.
82: (JACM;
83: Vol. 11 No. 1; Jan 1964; pp 21)
84: .sh BUGS
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.