|
|
1.1 ! root 1: .TH SPITBOL 1 ! 2: .SH NAME ! 3: spitbol \- Snobol language compiler ! 4: .SH SYNOPSIS ! 5: .B spitbol ! 6: [ ! 7: .I options ! 8: ] ! 9: .I ifile ... ! 10: .SH DESCRIPTION ! 11: .I Spitbol ! 12: is an upward compatible ! 13: dialect of SNOBOL4. ! 14: .PP ! 15: All names used in a program are normally mapped to UPPER CASE during ! 16: compilation and execution. ! 17: For strict compatibility with SNOBOL4, use the \-f ! 18: option or \-CASE control statement. ! 19: .PP ! 20: Each ! 21: .IR ifile ! 22: is read in order before the standard input. ! 23: Standard output comes only from assignments to OUTPUT and from ! 24: error messages. ! 25: .PP ! 26: Compiler options: ! 27: .TP "\w'-u string 'u" ! 28: .B \-f ! 29: don't fold lower case names to UPPER CASE ! 30: .TP ! 31: .B \-e ! 32: don't send error messages to the terminal ! 33: .TP ! 34: .B \-l ! 35: generate source listing ! 36: .TP ! 37: .B \-c ! 38: generate compilation statistics ! 39: .TP ! 40: .B \-x ! 41: generate execution statistics ! 42: .TP ! 43: .B \-a ! 44: like ! 45: .B "\-lcx" ! 46: .TP ! 47: .B \-p ! 48: long listing format; generates form feeds ! 49: .TP ! 50: .B \-z ! 51: use standard listing format ! 52: .TP ! 53: .B \-h ! 54: write ! 55: .I spitbol ! 56: header to standard output ! 57: .TP ! 58: .B \-n ! 59: suppress execution ! 60: .TP ! 61: .BI \-m dd ! 62: max size (words) of created object ! 63: (default 8192) ! 64: .TP ! 65: .BI \-s dd ! 66: maximum size (words) of stack space ! 67: (default 2048) ! 68: .TP ! 69: .BI \-i dd ! 70: size (words) of increment by which dynamic area is increased ! 71: (default 4096) ! 72: .TP ! 73: .BI \-d dd ! 74: size (words) of maximum allocated dynamic area ! 75: (default 256K) ! 76: .TP ! 77: .BI \-u " string" ! 78: executing program may retrieve string with HOST(0) ! 79: .TP ! 80: .BI \-o " ofile" ! 81: write listing, statistics and dump to ! 82: .I ofile ! 83: and OUTPUT to standard output ! 84: .PP ! 85: Note: ! 86: .I dd ! 87: can be followed by a ! 88: .B k ! 89: to indicate units of 1024. ! 90: .PP ! 91: .PP ! 92: .I Spitbol ! 93: has two input-output modes, ! 94: .I line mode, ! 95: where records are delimited by new-line characters, and ! 96: .I "raw mode" ! 97: where a predetermined number of bytes ! 98: is transferred. ! 99: Modes are specified in INPUT or OUTPUT function calls. ! 100: The maximum length of an input record is set by the ! 101: .B \-l ! 102: or ! 103: .B \-r ! 104: argument. ! 105: The form of the INPUT/OUTPUT function call is ! 106: .IP ! 107: INPUT/OUTPUT(.name,channel,file_name args) ! 108: .PP ! 109: where ! 110: .I name ! 111: is the variable name to be input/output associated and ! 112: .I "channel" ! 113: is an integer or string that identifies the association ! 114: to be used in subsequent calls for EJECT, ENDFILE, ! 115: INPUT, OUTPUT, REWIND, and SET. ! 116: If the ! 117: .I channel ! 118: is omitted or the null string, the association is ! 119: made to the system's standard input or output stream. ! 120: .I "file_name args" ! 121: specifies the source/destination of the ! 122: input/output and any IO processing arguments. The ! 123: .I file_name ! 124: can be either a path name to a file or a ! 125: command string. Command strings are distinguished from ! 126: file names by a leading "!". The character following the ! 127: "!" is the delimiter used to separate the command string ! 128: from any IO processing arguments. The ending delimiter ! 129: may be omitted if there are no IO processing arguments. ! 130: There must always be at least one space between the ! 131: .I file_name ! 132: and ! 133: .I args, ! 134: even if the ! 135: .I file_name ! 136: is null. ! 137: .PP ! 138: .PP ! 139: Input/output arguments are: ! 140: .TP ! 141: .B \-a ! 142: Append output to existing file. If file doesn't exist ! 143: then it is created. ! 144: If ! 145: .B \-a ! 146: is not specified then file ! 147: is created. ! 148: .TP ! 149: .BI \-b dd ! 150: Set internal buffer size to ! 151: .I dd ! 152: characters. This value ! 153: is the byte count used on all input/output transfers ! 154: except for the last write to an output file ! 155: (default 4096). ! 156: .TP ! 157: .B \-c ! 158: Like ! 159: .BI \-r 1 ! 160: .TP ! 161: .BI \-f dd ! 162: Use ! 163: .I dd ! 164: as file desciptor for IO. ! 165: .I spitbol ! 166: assumes that ! 167: .I dd ! 168: has been opened by the shell. File names and ! 169: .BI \-f dd ! 170: arguments are mutually exclusive. ! 171: File descriptors ! 172: 0, 1, and 2 ! 173: may ! 174: be accessed in this manner. ! 175: .TP ! 176: .BI \-l dd ! 177: Line mode: maximum input record length is ! 178: .I dd ! 179: characters (default 4096). ! 180: .TP ! 181: .BI \-r dd ! 182: Raw mode: input record length is ! 183: .I dd ! 184: characters. ! 185: .TP ! 186: .B \-w ! 187: On output, each record is directly written to the ! 188: file without any intermediate buffering (default for terminals). ! 189: On input, each input operation uses exactly one ! 190: .IR read (2), ! 191: and fails if ! 192: .I read ! 193: returns 0. ! 194: .PP ! 195: More than one type of transfer may be associated with a channel. ! 196: This is accomplished by calling INPUT/OUTPUT after the initial ! 197: call with the name, channel, and file arguments. The ! 198: file name or ! 199: .B \-f ! 200: argument must not be specified on calls subsequent ! 201: to the first. ! 202: .PP ! 203: Standard functions: ! 204: .RI SET( channel,integer,integer ) ! 205: The arguments are same as those to the ! 206: .IR lseek (2), ! 207: escept that ! 208: the first argument identifies a spitbol channel instead of ! 209: a file descriptor. ! 210: .TP ! 211: EXIT(\fIcommand-string\fP) ! 212: causes the value of ! 213: .I command-string ! 214: to be handed to the Shell to be executed after ! 215: .I spitbol ! 216: terminates. ! 217: .TP ! 218: EXIT(\fIn\fP) ! 219: If ! 220: .I n ! 221: is greater than 0, a load module will be written in ! 222: .I a.out ! 223: before termination. ! 224: Executing this load module will restore the state of the ! 225: .I spitbol ! 226: system to what it was when EXIT was called, except that ! 227: any files other than the standard input, output, and error ! 228: will have been closed. ! 229: To the SNOBOL4 program, it will appear as if ! 230: EXIT had returned a null string. ! 231: If ! 232: .I n ! 233: is exactly 1, ! 234: the generated load module will identify ! 235: the version of ! 236: .I spitbol ! 237: that created it in a message when it ! 238: begins execution. ! 239: If ! 240: .I n ! 241: is greater than 1, ! 242: it will resume quietly. ! 243: .TP ! 244: HOST() ! 245: returns the host string read from /usr/lib/spithost. ! 246: .TP ! 247: HOST(0) ! 248: returns the string specified with the ! 249: .B \-u ! 250: option ! 251: on the command line. ! 252: If ! 253: .B \-u ! 254: was not specified the ! 255: null string is returned. ! 256: .TP ! 257: HOST(1,"command string") ! 258: executes the command string ! 259: and continues. ! 260: .TP ! 261: HOST(2,\fIn\fP) ! 262: returns argument number ! 263: .I n ! 264: from the command line. ! 265: It fails if ! 266: .I n ! 267: is out of range or not an integer. ! 268: .TP ! 269: HOST(3) ! 270: returns the index of the first command line argument ! 271: that was not examined by ! 272: .IR spitbol . ! 273: .TP ! 274: HOST(4,"var") ! 275: returns the value of the environment variable ! 276: .IR var . ! 277: If the value is too long for an internal buffer ! 278: (presently 512 bytes) it is quietly truncated. ! 279: .TP ! 280: HOST(5,n) ! 281: sets (if n > 0) or resets (if n < 0) a trap for ! 282: signal number \|n\| ! 283: (see ! 284: .IR signal (2)). ! 285: It returns 0 if no trap was previously set for that signal, ! 286: 1 if a trap has been previously set but the signal has not occurred since ! 287: the last call, or 2 if the signal has occurred. ! 288: .SH "MISCELLANY" ! 289: A file is not actually opened until the first attempt ! 290: to read, write, SET, or REWIND it. ! 291: .PP ! 292: Folding of names to UPPER CASE can be controlled during compilation ! 293: by the \-CASE control statement and during execution by the &CASE keyword. ! 294: A value of 0 prevents folding to UPPER CASE and a value of 1 ! 295: forces folding to UPPER CASE. ! 296: .PP ! 297: Integers are represented by 32-bit quantities. ! 298: Real numbers are implemented in single precision. ! 299: .PP ! 300: Setting &STLIMIT = \-1 inhibits statement limit checking and provides ! 301: a way to execute arbitrarily many statements. ! 302: .PP ! 303: The name TERMINAL is available with default associations for input and ! 304: output to the terminal. ! 305: .PP ! 306: If the first line of the first input file begins with ! 307: .B #! ! 308: then that line is ignored. ! 309: This meshes with the way that ! 310: .IR exec (2) ! 311: treats files beginning with ! 312: .BR #! . ! 313: .PP ! 314: Setting &PROFILE = 1 causes ! 315: .I spitbol ! 316: to accumulate profile information during program execution ! 317: and print this information after the program terminates. ! 318: .SH "FILES" ! 319: /usr/lib/vaxspitv35.err \- Error text. ! 320: .br ! 321: /usr/lib/spithost \- Host computer and operating system identifier. ! 322: .SH "SEE ALSO" ! 323: .I "Macro SPITBOL Program Reference Manual" ! 324: by R. B. K. Dewar, A. P. McCann, R. E. Goldberg, and Steven G. Duff ! 325: .br ! 326: .I "The SNOBOL4 Programming Language, Second Edition" ! 327: by R. E. Griswold, J. F. Poage and I. P. Polonsky ! 328: .br ! 329: .IR sno (1), ! 330: .IR snocone (1)
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.