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