home *** CD-ROM | disk | FTP | other *** search
- $RCSfile: ErrorCodes.doc $
- Description: Error codes output by the Oberon-A compiler
-
- Created by: fjc (Frank Copeland)
- $Revision: 4.2 $
- $Author: fjc $
- $Date: 1994/08/08 21:04:13 $
- ________________________________________________________________________
-
-
- 0: Identifier invisible or not declared
- 1: Identifier declared twice
- 2: Illegal char in number
- 3: Illegal char, end of line, or end of file in string literal
- 4: Names at start and end do not match
- 5: End of file in comment
- 9: "=" equals expected
- 10: identifier expected
- 12: type specification expected
- 13: illegal symbol at start of factor
- 14: illegal symbol at start of statement
- 15: type followed by illegal symbol
- 16: MODULE expected
- 17: integer constant expected
- 18: "." period expected
- 19: "," comma expected
- 20: ":" colon expected
- 22: ")" right parenthesis expected
- 23: "]" right bracket expected
- 24: "}" right brace expected
- 25: OF expected
- 26: THEN expected
- 27: DO expected
- 28: TO expected
- 29: "(" left parenthesis expected
- 33: ":=" assignment expected
- 34: "," comma or OF expected
- 38: ";" semicolon expected
- 40: END expected
- 43: UNTIL expected
- 45: EXIT outside a LOOP statement
- 46: Non-global objects cannot be exported
- 47: Read-only export only allowed for variables and record fields
- 48: Forward declared pointer unsatisfied
- 49: Attempting to import self
- 50: Constant expression expected
- 51: Array bound type must be SHORTINT, INTEGER or LONGINT
- 52: ?? Object must be a type ??
- 53: Object must be a record or pointer to record
- 54: Illegal procedure return type
- 55: Procedure call of a function
- 56: Attempt to assign to a constant
- 57: Base type of pointer must be record or array type
- 58: ?? Something to do with types ??
- 59: Object cannot be passed as open array parameter
- 60: Illegal type for case label
- 61: Illegal type for case selector
- 62: Duplicate case label
- 63: Upper bound of case label range < lower bound
- 64: Too many actual parameters
- 65: Actual parameters missing
- 66: Actual parameter must be array or open array
- 67: Actual array dimensions does not match formal parameter
- 68: array bound out of range
- 81: Array index out of range.
- 83: Object must be a record field
- 84: Object must be a pointer
- 85: x IS T, WITH x : T DO, x (T) : x must be a basetype of T
- 86: x IS T, WITH x : T DO, x (T) : T must be a pointer type
- 87: x IS T, WITH x : T DO, x (T) : x must be a pointer or a record
- 91: x IN y : constant x is out of range
- 92: x IN y : x is not integer, or y is not set
- 93: {x} or {x .. y} : set element is not an integer
- 94: & x : operand type incompatible with operator
- 95: OR x : operand type incompatible with operator
- 96: + x : operand type incompatible with operator
- 97: - x : operand type incompatible with operator
- 98: ~ x : operand type incompatible with operator
- 100: Incompatible types in expression
- 101: Operands incompatible with "*"
- 102: Operands incompatible with "/"
- 103: Operands incompatible with "DIV"
- 104: Operands incompatible with "MOD"
- 105: Operands incompatible with "+"
- 106: Operands incompatible with "-"
- 107: Operands incompatible with "="
- 108: Operands incompatible with comparison operators
- 109: Arithmetic overflow in constant expression
- 110: Type expected as parameter
- 111: Illegal type of parameter in procedure call
- 112: ?? Object cannot be used in type guard statement ?? Illegal object
- in INC/DEC ??
- 113: Type mismatch in assignment to variable, parameter or receiver
- 114: String constant too big for variable
- 115: Type mismatch in parameters of procedure
- 116: Too few parameters in procedure
- 117: Too many parameters in procedure
- 118: Procedure results do not match
- 119: Procedure must be marked as assignable or be exported
- 120: Expression must be boolean
- 121: Object must be a procedure
- 122: Actual parameter must be a variable
- 123: Type mismatch between formal and actual parameters
- 124: Error in expression in RETURN statement
- 125: Illegal type for case expression
- 126: Illegal mode in operand
- 127: Object not addressable
- 129: Forward declared procedure not implemented
- 130: Cannot use anonymous type in type guard
- 131: Parameter must be array or dynamic array variable
- 132: Array dimension too large
- 150: Keys of imported symbol files do not match
- 151: Undefined item in symbol file
- 152: Symbol file not found
- 153: Could not create output file
- 155: Symbol file obsolete
- 156: String in symbol file
- 157: Symbol file tag illegal
- 158: Unknown module in LibCall item
- 159: Unknown library base variable
- 160: Invalid type for library base
- 202: Set element too large
- 203: ?? Exponent too large ?? Constant too big ??
- 205: Divide by zero in constant expression
- 209: Procedure variables or parameters too big
- 212: String literal too long
- 214: LOOP statements nested too deeply
- 215: Register reservation error
- 216: Object is not a register item
- 218: Integer constant expected
- 219: Constant value out of legal range
- 221: Attempt to export string literal (?)
- 224: Too many forward declared pointers
- 226: ?? Too many procedures ??
- 227: Too many imported modules
- 228: Too many types exported
- 229: Too many parameter or field lists
- 230: Constant buffer overflow
- 231: Code buffer overflow
- 233: Type descriptor buffer overflow
-
- 300: Parameter must be an exportable procedure or procedure variable
- 301: Procedure must be paramaterless and typeless
- 302: Parameter must be a procedure variable
- 303: Library procedure must have a receiver parameter.
- 304: Library procedure receiver cannot be VAR parameter.
- 305: Receiver cannot be an imported type.
- 306: Receiver type must be a pointer type.
- 307: Receiver type must be a record type.
- 308: Receiver type must be a C pointer type.
- 310: Name buffer overflow
- 311: Library procedure cannot be used in this manner
- 312: Global variables too large to zero (>260K)
- 313: Union type cannot have a base type
- 314: Control variable of FOR loop must be an integer type
- 315: Start and end values of FOR loop must be integers
- 316: Step value of FOR loop must be non-zero
- 317: Start, end or step value(s) too large for control variable of FOR
- loop
- 318: Sign of step value is wrong for given start and end values.
- 319: ASSERT (x,n): constant x evaluates to FALSE, should be HALT (n)
- 320: ASSERT (x,n): constant x evaluates to TRUE, statement is
- meaningless
- 322: Illegal mode in array index calculation
- 323: Cannot alias imported strings > 1 character
- 324: Operations that modify read-only variables are not allowed
- 325: Open arrays are restricted to pointer base types, element types of
- open arrays and formal parameter types
- 326: CPointers and BPointers to open arrays are not yet implemented
- 327: Control variable must be a simple variable local to the procedure
- or module
- 328: Integer expression expected
- 329: Type-bound procedure has the same name as a record field
- 330: Redefined procedure must be exported
- 331: Cannot assign a type-bound procedure
- 332: Super-call only allowed for receiver parameter
- 333: Super-call not defined for base type
- 334: Module name too long (limit 26 characters)
- 335: RETURN statement missing in function procedure
- 336: Vararg parameter must be a value register parameter.
- 337: Vararg parameter must be the last parameter
- 338: Parameter must be a pointer, a variable record parameter, a RECORD
- type, or a POINTER TO RECORD type
- 339: SYSTEM.NEW cannot be used to allocate this type. Use NEW instead.
- 340: Formal parameter must include a register specification.
- 341: Cannot assign a foreign procedure
- 342: Foreign procedure's symbol expected
- 343: Foreign procedures cannot be forward declared
- 344: Foreign procedure cannot be bound to a type
- 345: Cannot copy open arrays when $A switch set
-
- 900: Not implemented yet
- 901: Register parameters only allowed in LibCall procedure
- 902: Illegal type for register specification
- 903: Illegal register number
- 904: Parameter type is too big for register
- 905: LibCallSpec only allowed for library procedure
- 906: Function offset must be integer
- 907: Library base variable must be pointer type
-
- 915: Language extensions not allowed when portableCode switch is on
- 916: String constants not allowed when createObj switch is off
- 917: Tagged record types not allowed when createObj switch is off
- 918: Variables not allowed when createObj switch is off
- 919: Procedure or module body not allowed when createObj switch is off
- 920: Cannot import module with object code when createObj switch is off
- 921: Oberon-2 constructs not allowed when oberon2 switch is off
- 922: Too many search paths specified
-
- (*
- The following are internal compiler errors. If you see one of
- these, something is seriously wrong. Report the bug immediately.
- *)
-
- 217: Attempt to free an unused register
- 232: Illegal reference type
- 908: Wrong number of operands for opcode
- 910: Address alignment error
- 911: Branch too large
- 912: Addressing mode error
- 913: Data size error
- 914: Error in operand
- 923: Illegal reference size specified
- 924: Block length must be a constant
- 925: Patching past end of code buffer
- 926: Addressing string not in constant buffer
- 927: No pointer to open array descriptor
- 928: Reference name missing
- 929: Type-bound procedure missing
- 930: Dereferencing NIL pointer
- 931: Procedure return overlaps allocated registers
-
- 1000+: Internal error - unrecognised case in CASE statement
-