List of error codes generated by the compiler
---------------------------------------------

The following error codes appear in the "splat" column of the compiler's
listing. Only the first "splat" encountered in a statement is listed.

000	Something wrong, for which there isn't a more specific splat code
072	Label number out of range (less than 1 or greater than 65535); also
	attempt to use computed label in a context which forbids it.
081	Missing "DO" or "PLEASE"
084	Invalid gerund.
093	Missing "<-" in something which would otherwise look like an assignment
100	Double-oh-seven value out of range (greater than 100)
112	Missing bits after "ENSLAVE"
116	Missing bits after "FREE"
199	Syntax error in constant, or out of range (greater than 65535)
201	Incorrect (American) spelling of "ENROL" frowned upon by the compiler.
202	Missing bits after "ENROL".
218	Statement template error in postprocessor directive
241	Mixing arrays and values (e.g. dimensioning a scalar register, or
	using an array without subscripts etc.)
242	Incomplete worm (missing "-" after "+")
252	Missing bits after "STUDY"
299	Invalid register syntax, or number out of range (greater than 65535,
	or less than 1 - except for the special case of @0 inside overloading)
398	Odd number of sparks in an expression
399	One-eared rabbit
458	Label defined multiple times
499	Politeness error
999	No lectures before 1000 please

The following are fatal compiler errors - the compiler terminates, and the
code generation is aborted.

012	Cannot open output file
013	Wrong syntax in the Perl compiler call
015	Cannot do horrible things to your Perl namespace
109	Invalid character in string
110	Cannot open input file
111	Compiler cannot guess input character set (or file type)
444	Perl program attempted to remove INTERCAL compiler
666	Problem with black magic inside the compiler

In addition, a 458 (label defined multiple times) can be detected during
linking, in which case it becomes fatal.


List of errors generated by the runtime
---------------------------------------

The following are fatal errors, and cause the current thread to terminate.
The code is available to other threads using the "splat" expression.

003	Too many command-line argument (max is usually 2), or invalid switch
012	Cannot open output file
013	Wrong syntax calling the runtime library
015	Cannot do horrible things to your Perl namespace
109	Invalid character in string
110	Cannot open input file
111	Character set not supported
129	Label not defined in NEXT or STUDY
241	Assignment of arrays to expressions (during overloading)
241	Mixing arrays, scalars, and classes in unsupported ways
241	Subscript out of range or other subscript errors
275	Assignment to constant (this happens when assigning to an overloaded
	register, if there is a constant somewhere in the overload expression)
275	Assignment to a register which is too small to hold the value
275	Assignment to an expression leads to an unsolvable equation
401	Deprecated feature used (e.g. NEXT, which is just like an old-fashioned
	GOTO and should therefore be avoided); see the compiler's and runtime's
	documentation for ways around this.
436	Attempting to RETRIEVE something which wasn't STASHed
456	No splat - using "*" before it contains a value.
512	Attempting to treat a free register as a slave
533	One of the two values to interleave does not fit in 16 bits
555	Multiple "COME FROM"s with the same label (if the ThreadedINTERCAL
	parser was used, the runtime automatically traps this error and
	creates new threads instead)
603	Class war
621	FORGET or RESUME with a value of 0 is a bit pointless
623	FORGET or RESUME with a value larger than the stack size
633	Falling off the edge of the program.
774	Compiler error (aka Random Bug)
774	Genetic error (problem during the internal function "clone")
799	Attending lectures during holidays (or asking for a subject which is
	not taught)
801	FINISH LECTURE outside a lecture
822	Attempting to ask a non-student to learn something
823	Attempting to ask a student to learn something not in his curriculum
997	Input record too long during string input.

In addition, running a program with compile errors can generate the
corresponding error at runtime.

Errors 072 and 999 can be generated at runtime if the label was not constant.

