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

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)

unix.superglobalmegacorp.com

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