Fatal errors cause immediate termination of the compilation. These errors normally occur as the result of invalid options specified in the project options. Fatal errors are also generated when the compiler cannot access a specified source include file.
Fatal error messages conform to one of the following formats:
C51 FATAL-ERROR -
ACTION:
<current action>
LINE:
<line in which the error is detected>
ERROR:
<corresponding error message>
C51 TERMINATED.
C51 FATAL-ERROR -
ACTION:
<current action>
FILE:
<file in which the error is detected>
ERROR:
<corresponding error message>
C51 TERMINATED.
The following are descriptions of the possible text for the Action and Error fields in the above messages.
PARSING INVOKE-/#PRAGMA-LINE.
An error was detected while evaluating arguments on the
command line or while evaluating parameters in a #pragma statement.
OPENING INPUT-FILE
The compiler failed to find or open the selected source or
include file.
CREATING LIST-FILE /
OBJECT-FILE / WORKFILE
The compiler could not create the list file, object file, or
work file. This error may occur if the disk is full or
write-protected, or if the file already exists and is read-only.
PARSING SOURCEFILE / ANALYZING DECLARATIONS
The source file contains too many external references. Reduce
the number of external variables and functions accessed by the
source file.
GENERATING INTERMEDIATE
CODE
The source file contains a function that is too large to be
translated into pseudo-code by the compiler. Try breaking the
function into smaller functions and re-compiling.
WRITING TO FILE
An error was encountered while writing to the list file,
object file, or work file.
FILE DOES NOT EXIST
The filename defined on the FILE
line, cannot be found.
CAN'T CREATE FILE
The filename defined on the FILE
line cannot be created.
SOURCE MUST COME FROM A
DISKFILE
The source and include files must exist on either a hard disk
or diskette. The console CON:, :CI:, or similar
devices are not allowed as input files.
MORE THAN 256
SEGMENTS/EXTERNALS
More than 256 total references were encountered in a source
file. A single source file cannot contain more than 256 functions
or external references. This is a historical restriction mandated
by the Intel Object Module Format (OMF-51). Functions which
contain scalar and/or bit declarations will produce two
and sometimes three segment definitions in the object file.
FILE WRITEERROR
An error occurred while writing to the list, preprint, work
or object file because of insufficient disk space.
NONNULL ARGUMENT EXPECTED
The selected control parameter needs an argument (e.g., a
filename or a number) enclosed in parentheses.
UNKNOWN CONTROL
The selected control parameter is unrecognized by the
compiler.
'(' AFTER CONTROL
EXPECTED
Some control parameters need an argument enclosed in
parentheses. This message is displayed when the left parenthesis
is missing.
')' AFTER PARAMETER
EXPECTED
This message indicates that the right parenthesis of the
enclosed argument is missing.
RESPECIFIED OR
CONFLICTING CONTROL
A command-line parameter was specified twice or conflicting
command-line parameters were specified.
BAD DECIMAL NUMBER
The numerical argument of a control parameter contains
invalid characters. Only decimal digits are acceptable.
OUT OF RANGE DECIMAL
NUMBER
The numerical argument of a control parameter is out of
range. For instance, the OPTIMIZE control allows only
the numbers 0 through 5. A value of 6 would generate this error
message.
IDENTIFIER EXPECTED
This message is generated when the DEFINE control
has no arguments. DEFINE requires an identifier
as its argument. This is the same convention as in the C
language.
PARSE STACK OVERFLOW
The parse stack has overflowed. This can occur if the source
program contains extremely complex expressions or if blocks are
nested more than 15 levels deep.
MORE THAN 100 ERRORS IN
SOURCEFILE
During the compilation more than 100 errors were detected.
This causes the termination of the compiler.
PREPROCESSOR: MACROS TOO
NESTED
During macro expansion the stack consumption of the
preprocessor became too large to continue. This message usually
indicates a recursive macro definition, but can also indicate a
macro with too many levels of nesting.
PREPROCESSOR: LINE TOO
LONG (32K)
An intermediate expansion exceeded 32k characters in length
CAN'T HAVE GENERAL
CONTROL IN INVOCATION LINE
General controls (e.g., EJECT) cannot be included on
the command line. Place these controls in the source file using
the #pragma statement.