|
|
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.