summaryrefslogtreecommitdiff
path: root/static/unix-v10/man1/sno.1
diff options
context:
space:
mode:
authorJacob McDonnell <jacob@jacobmcdonnell.com>2026-04-26 16:38:00 -0400
committerJacob McDonnell <jacob@jacobmcdonnell.com>2026-04-26 16:38:00 -0400
commit97d5c458cfa039d857301e1ca7d5af3beb37131d (patch)
treeb460cd850d0537eb71806ba30358840377b27688 /static/unix-v10/man1/sno.1
parentb89dc2331a50c63f8b33272a5c4c61ab98abdaa3 (diff)
build: Better Build System
Diffstat (limited to 'static/unix-v10/man1/sno.1')
-rw-r--r--static/unix-v10/man1/sno.199
1 files changed, 99 insertions, 0 deletions
diff --git a/static/unix-v10/man1/sno.1 b/static/unix-v10/man1/sno.1
new file mode 100644
index 00000000..e6852120
--- /dev/null
+++ b/static/unix-v10/man1/sno.1
@@ -0,0 +1,99 @@
+.pa 1
+.he 'SNO (I)'2/9/73'SNO (I)'
+.ti 0
+NAME sno -- SNOBOL interpreter
+.sp
+.ti 0
+SYNOPSIS sno___ [ file ]
+.sp
+.ti 0
+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'.
+
+The following is a list of differences
+between sno___ and SNOBOL III:
+
+.in +3
+There are no unanchored searches.
+To get the same effect:
+
+.ti +3
+a ** b unanchored search for b
+.ti +3
+a *x* b = x c unanchored assignment
+
+No back referencing
+
+.ti +3
+x = "abc"
+.ti +3
+a *x* x unanchored search for "abc"
+
+Different function declaration.
+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.
+
+.ti +3
+define f()
+.ti +3
+ or
+.ti +3
+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
+
+Variable length patterns
+at the end of a pattern match are not treated
+specially.
+They still match the shortest rather than
+longest text.
+
+Parentheses for arithmetic are not needed.
+Normal (eg FORTRAN) 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.
+.in -3
+.sp
+.ti 0
+FILES --
+.sp
+.ti 0
+SEE ALSO SNOBOL III manual.
+(JACM____; Vol. 11 No. 1; Jan 1964; pp 21)
+.sp
+.ti 0
+DIAGNOSTICS As appropriate
+.sp
+.ti 0
+BUGS Runtime
+diagnostics give the
+last program line number
+rather than the executing statement line number.