# SNOBOL4KEY(1) | CSNOBOL4B 2.3.2 | Janurary 1, 2024

## NAME

snobol4key – SNOBOL4 keywords

## DESCRIPTION

&ABEND
  Unprotected, INTEGER: Setting to a non-zero value causes a call to abort(3) (causes a core dump) instead of “exit” when snobol4(1) finishes program execution. A relic of when “ABEND” meant program memory would be dumped on the line printer on “abnormal ending” of a batch job! Standard.

&ABORT
  Protected, PATTERN: Initial value of ABORT variable. Standard.

&ALPHABET
  Protected, STRING: Native character set (always 255 characters long). Standard.

&ANCHOR
  Unprotected, INTEGER: When set to a non-zero value, pattern matching is done in “anchored mode” (pattern matches will not be retried skipping successive numbers of leading subject characters), and patterns must match the initial part of the subject. NOTE! Anchored matching is faster, but portable code should not depend on (or modify) the value of &ANCHOR!! Individual patterns can be anchored using POS(0), and use of BREAKX() avoids repeated match failures that occur in non-anchored scanning. Standard.

&ARB
  Protected, PATTERN: Initial value of ARB variable. Standard.

&BAL
  Protected, PATTERN: Initial value of BAL pattern variable. Standard.

&CASE
  Unprotected, INTEGER: Zero disables case folding in a running program, non-zero value reenables. See snobol4(1) and -CASE in snobol4ctrl(1). Extension from SPITBOL, added in CSNOBOL4 version 0.91

&CODE
  Unprotected, INTEGER: Controls the status code when snobol4(1) exits – defaults to zero. Standard.

&COMPNO
  Protected, INTEGER: Number of compiled statements. Extension from SNOBOL4B, SITBOL, added in CSNOBOL4 version 2.0

&DIGITS
  Protected, STRING: Digits “0123456789”. Extension from Icon!, added in CSNOBOL4 version 1.5

&DUMP
  Unprotected, INTEGER: If non-zero dump variables (to stderr) on termination. Standard.

&ERRLIMIT
  Unprotected, INTEGER: Positive number of (otherwise fatal) errors to allow/trap, decremented on each error. Standard.

&ERRTEXT
  Protected, STRING: Contains description of last error after a statement with an error has been handled due to a non-zero value in &ERRLIMIT, see snobol4error(1). SPITBOL Extension, added in CSNOBOL4 0.98.2.

&ERRTYPE
  Protected, INTEGER: Contains last error code after a statement with an error has been handled due to a non-zero value in &ERRLIMIT, see snobol4error(1). Standard, Traceable.

&FAIL
  Protected: Initial value of FAIL pattern variable. Standard.

&FATAL
  Protected, INTEGER: Set to one when an otherwise fatal error has been trapped via SETEXIT (because FATALLIMIT was positive). Fatal errors cannot be resumed via CONTINUE or SCONTINUE. CSNOBOL4 Extension, added in version 2.2.

&FATALLIMIT
  Unprotected, INTEGER: Positive number of (otherwise fatal in standard SNOBOL4) errors to trap via SETEXIT; decremented on each error. CSNOBOL4 Extension, added in version 2.2.

&FENCE
  Protected, PATTERN: Initial value of FENCE pattern variable. Standard.

&FILE
  Protected, STRING: Name of source file. Extension from SPITBOL?, added in CSNOBOL4 version 0.98.2.

&FILL
  Unprotected, STRING: Extension from BLOCKS, added in CSNOBOL4 version 2.0.

&FNCLEVEL
  Protected, INTEGER: Depth of function call stack. Standard, Traceable.

&FTRACE
  Unprotected, INTEGER: Non-zero to enable function call tracing. Decremented after each trace event. Standard.

&FULLSCAN
  Unprotected, INTEGER: Non-zero to enable “fullscan” heuristic. Standard.

&GCTIME
  Protected, REAL: Milliseconds of execution time spent in the garbage collector. CSNOBOL4 Extension, added in version 1.5.

&GTRACE
  Unprotected, INTEGER: If set to a non-zero value, each time a garbage collection is run, a trace message is output indicating the source file and line number of the current statement, how long the GC took, and how many units of storage are now free. If positive, the value of &GTRACE will be decremented after it is tested. CSNOBOL4 Extension, added in version 1.1.

&INPUT
  Unprotected, INTEGER: If zero, disables checking for input associations for variables. Standard.

&LASTFILE
  Protected, STRING: Source file name for last statement executed; useful in TRACE() and SETEXIT() handlers. Extension from SPITBOL, added in CSNOBOL4 version 0.98.2.

&LASTLINE
  Protected, INTEGER: Source file line number for last statement executed; useful in TRACE() and SETEXIT() handlers. Extension from SPITBOL, added in CSNOBOL4 version 0.98.2.

&LASTNO
  Protected, INTEGER: Statement number for last statement executed; useful in TRACE() and SETEXIT() handlers. Standard.

&LCASE
  Protected, STRING: Lower case (english) letters, in alphabetical order. Extension from SPITBOL, added in CSNOBOL4 version 0.91

&LINE
  Protected, INTEGER: Extension from SPITBOL, added in CSNOBOL4 version 0.98.2.

&MAXINT
  Protected, INTEGER: The largest positive integer value that can be represented by the INTEGER data type. CSNOBOL4 Extension added in version 1.5.

&MAXLNGTH
  Unprotected, INTEGER: Standard (unlimited since CSNOBOL4 version 0.99.44).

&OUTPUT
  Unprotected: If zero, disables checking for output associations for variables. Standard.

&PARM
  Protected, STRING: The entire command line. Use of the SPITBOL compatible HOST() function is preferable, as it makes it possible to tell if a positional parameter containing spaces was passed in using shell quote characters. SNOBOL4+ Extension, added in CSNOBOL4 version 0.98.3.

&PI
  Protected, REAL: The transcendental number π. CSNOBOL4 Extension, added in version 1.5.

&REM
  Protected, PATTERN: Initial value of REM variable. Standard.

&RTNTYPE
  Protected, STRING: One of RETURN, FRETURN, NRETURN. Standard.

&STCOUNT
  Protected, INTEGER: Count of the number of statements executed (extension: not incremented when &STLIMIT is less than zero). Standard, Traceable.

&STEXEC
  Protected, INTEGER: Count of the number of statements executed (regardless of the value of &STLIMIT). CSNOBOL4 Extension, added in version 1.5.

&STFCOUNT
  Protected, INTEGER: Count of the number of statements executed that failed. Standard, Traceable.

&STLIMIT
  Unprotected: Number of (remaining) statements to be executed. CSNOBOL4 implements the XXX extension that values less than zero remove the statement limit. When less than zero, &STCOUNT is not incremented. Standard, Defaults to -1 since CSNOBOL4 version 0.98.

&STNO
  Protected, INTEGER: Current statement number. Standard.

&SUCCEED
  Protected, PATTERN: Initial value of SUCCEED variable. Standard.

&TRACE
  Unprotected, INTEGER: Positive values enable TRACE functionality (other than FUNCTION trace). Decremented after each TRACE event. Standard.

&TRIM
  Unprotected, INTEGER: If non-zero, trailing spaces are removed from input from files. A relic of fixed record length (eg; card reader) input. Standard, disabled by default since CSNOBOL4 version 0.91.

&UCASE
  Protected, STRING: Upper case (english) letters, in alphabetical order. Extension from SPITBOL, added in CSNOBOL4 version 0.91.

## BUGS

Need to research origins SPITBOL extensions.

Note which keywords can be traced (and whether this is an extension).

## SEE ALSO

snobol4(1), snobol4ctrl(1), snobol4ext(1).