Annotation of researchv10dc/man/mana/sno.1, revision 1.1.1.1

1.1       root        1: .TH SNO 1
                      2: .SH NAME
                      3: sno \- Snobol language interpreter
                      4: .SH SYNOPSIS
                      5: .B sno
                      6: [
                      7: .I file ...
                      8: ]
                      9: .SH DESCRIPTION
                     10: .I Sno\^
                     11: is a
                     12: .SM SNOBOL\*S3
                     13: (with slight differences)
                     14: compiler and interpreter.
                     15: .I Sno\^
                     16: obtains input from the
                     17: concatenation of the named
                     18: .IR file s
                     19: and the standard input.
                     20: All input through a statement
                     21: containing the label
                     22: .B end
                     23: is considered program and is compiled.
                     24: The rest is available to
                     25: .BR syspit .
                     26: .PP
                     27: .I Sno\^
                     28: differs from
                     29: .SM SNOBOL\*S3
                     30: in the following ways:
                     31: .PP
                     32: There are no unanchored searches.
                     33: To get the same effect:
                     34: .IP 
                     35: .LR "a ** b" "    unanchored search"
                     36: .br
                     37: .LR "a *x* b = x c" "    unanchored assignment"
                     38: .PP
                     39: There is no back referencing.
                     40: .IP
                     41: .L x = \&"abc"
                     42: .br
                     43: .LR "a *x* x" "    unanchored search for
                     44: .L \&"abc"
                     45: .PP
                     46: Function declaration is
                     47: done at compile time by the use of the (non-unique) label
                     48: .BR define .
                     49: Execution of a function call begins at the
                     50: statement following the
                     51: .BR define .
                     52: Functions cannot be defined at run time,
                     53: and the use of the name
                     54: .B define
                     55: is preempted.
                     56: There is no provision for automatic variables
                     57: other than parameters.
                     58: Examples:
                     59: .IP
                     60: .EX
                     61: define f( )
                     62: define f(a, b, c)
                     63: .EE
                     64: .PP
                     65: All labels except
                     66: .B define
                     67: (even
                     68: .BR end )
                     69: must have a non-empty statement.
                     70: .PP
                     71: Labels, functions and variables must all have
                     72: distinct names.
                     73: In particular, the non-empty statement on
                     74: .B end
                     75: cannot merely name a label.
                     76: .PP
                     77: If
                     78: .B start
                     79: is a label in the program,
                     80: program execution will start there.
                     81: If not, execution begins with the first
                     82: executable statement;
                     83: .B define
                     84: is not an executable statement.
                     85: .PP
                     86: There are no builtin functions.
                     87: .PP
                     88: Parentheses for arithmetic are not needed.
                     89: Normal precedence applies.
                     90: Because of this, the arithmetic
                     91: operators
                     92: .B /
                     93: and
                     94: .B *
                     95: must be set off by spaces.
                     96: .PP
                     97: The right side of assignments
                     98: must be non-empty.
                     99: .PP
                    100: Either
                    101: .L '
                    102: or
                    103: .L \&"
                    104: may be used for literal quotes.
                    105: .PP
                    106: The pseudo-variable
                    107: .B sysppt
                    108: is not available.
                    109: .SH SEE ALSO
                    110: .IR spitbol (1), 
                    111: .IR snocone (1), 
                    112: .IR awk (1)
                    113: .br
                    114: .I \s-1SNOBOL\s+1, a String Manipulation Language,
                    115: by D.\ J. Farber, R.\ E. Griswold, and I.\ P. Polonsky,
                    116: .I JACM\^
                    117: .B 11
                    118: (1964), pp.\ 21-30.
                    119: .DT

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.