|
|
1.1 root 1: .pa 1
2: .he 'SNO (I)'2/9/73'SNO (I)'
3: .ti 0
4: NAME sno -- SNOBOL interpreter
5: .sp
6: .ti 0
7: SYNOPSIS sno___ [ file ]
8: .sp
9: .ti 0
10: DESCRIPTION sno___
11: is a SNOBOL III (with slight differences)
12: compiler and interpreter.
13: sno___ obtains input from the
14: concatenation of file____ and the standard input.
15: All input through a statement
16: containing the label 'end' is
17: considered program and is compiled.
18: The rest is available to 'syspit'.
19:
20: The following is a list of differences
21: between sno___ and SNOBOL III:
22:
23: .in +3
24: There are no unanchored searches.
25: To get the same effect:
26:
27: .ti +3
28: a ** b unanchored search for b
29: .ti +3
30: a *x* b = x c unanchored assignment
31:
32: No back referencing
33:
34: .ti +3
35: x = "abc"
36: .ti +3
37: a *x* x unanchored search for "abc"
38:
39: Different function declaration.
40: The function declaration is
41: done at compile time by the use of the label 'define'.
42: Thus there is no ability to define functions at run time
43: and the use of the name 'define' is preempted.
44: There is also no provision for 'automatic' variables
45: other than the parameters.
46:
47: .ti +3
48: define f()
49: .ti +3
50: or
51: .ti +3
52: define f(a,b,c)
53:
54: All labels except 'define' (even 'end')
55: must have a non-empty statement.
56:
57: If 'start' is a label in the program,
58: program execution will start there.
59: If not, execution begins with the first
60: executable statement.
61: ('define' is not an executable statement)
62:
63: There are no builtin functions
64:
65: Variable length patterns
66: at the end of a pattern match are not treated
67: specially.
68: They still match the shortest rather than
69: longest text.
70:
71: Parentheses for arithmetic are not needed.
72: Normal (eg FORTRAN) precedence applies.
73: Because of this, the arithmetic
74: operators '/' and '*'
75: must be set off by space.
76:
77: The right side of assignments
78: must be non-empty.
79:
80: Either ' or " may be used for literal quotes.
81:
82: The pseudo-variable 'sysppt' is not available.
83: .in -3
84: .sp
85: .ti 0
86: FILES --
87: .sp
88: .ti 0
89: SEE ALSO SNOBOL III manual.
90: (JACM____; Vol. 11 No. 1; Jan 1964; pp 21)
91: .sp
92: .ti 0
93: DIAGNOSTICS As appropriate
94: .sp
95: .ti 0
96: BUGS Runtime
97: diagnostics give the
98: last program line number
99: rather than the executing statement line number.
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.