mirror of
https://github.com/vishapoberon/compiler.git
synced 2026-04-06 19:12:25 +00:00
voc compiler first commit
This commit is contained in:
parent
4a7dc4b549
commit
760d826948
119 changed files with 30394 additions and 0 deletions
213
src/voc/errors.Mod
Normal file
213
src/voc/errors.Mod
Normal file
|
|
@ -0,0 +1,213 @@
|
|||
MODULE errors;
|
||||
|
||||
TYPE string* = ARRAY 128 OF CHAR;
|
||||
|
||||
VAR errors- : ARRAY 350 OF string;
|
||||
|
||||
|
||||
BEGIN
|
||||
(* Incorroct use of the language Oberon *)
|
||||
errors[0] := "undeclared identifier";
|
||||
errors[1] := "multiply defined identifier";
|
||||
errors[2] := "illegal character in number";
|
||||
errors[3] := "illegal character in string";
|
||||
errors[4] := "identifier does not match procedure name";
|
||||
errors[5] := "comment not closed";
|
||||
errors[6] := "";
|
||||
errors[6] := "";
|
||||
errors[6] := "";
|
||||
errors[9] := "'=' expected";
|
||||
errors[10] :="";
|
||||
errors[11] :="";
|
||||
errors[12] := "type definition starts with incorrect symbol";
|
||||
errors[13] := "factor starts with incorrect symbol";
|
||||
errors[14] := "statement starts with incorrect symbol";
|
||||
errors[15] := "declaration followed by incorrect symbol";
|
||||
errors[16] := "MODULE expected";
|
||||
errors[17] := "";
|
||||
errors[18] := "'.' missing";
|
||||
errors[19] := "',' missing";
|
||||
errors[20] := "':' missing";
|
||||
errors[21] := "";
|
||||
errors[22] := "')' missing";
|
||||
errors[23] := "']' missing";
|
||||
errors[24] := "'}' missing";
|
||||
errors[25] := "OF missing";
|
||||
errors[26] := "THEN missing";
|
||||
errors[27] := "DO missing";
|
||||
errors[28] := "TO missing";
|
||||
errors[29] := "";
|
||||
errors[30] := "'(' missing";
|
||||
errors[31] := "";
|
||||
errors[32] := "";
|
||||
errors[33] := "";
|
||||
errors[34] := "':=' missing";
|
||||
errors[35] := "',' or OF expected";
|
||||
errors[36] := "";
|
||||
errors[37] := "";
|
||||
errors[38] := "identifier expected";
|
||||
errors[39] := "';' missing";
|
||||
errors[40] := "";
|
||||
errors[41] := "END missing";
|
||||
errors[42] := "";
|
||||
errors[43] := "";
|
||||
errors[44] := "UNTIL missing";
|
||||
errors[45] := "";
|
||||
errors[46] := "EXIT not within loop statement";
|
||||
errors[47] := "illegally marked identifier";
|
||||
errors[48] := "";
|
||||
errors[49] := "";
|
||||
errors[50] := "expression should be constant";
|
||||
errors[51] := "constant not an integer";
|
||||
errors[52] := "identifier does not denote a type";
|
||||
errors[53] := "identifier does not denote a record type";
|
||||
errors[54] := "result type of procedure is not a basic type";
|
||||
errors[55] := "procedure call of a function";
|
||||
errors[56] := "assignment to non-variable";
|
||||
errors[57] := "pointer not bound to record or array type";
|
||||
errors[58] := "recursive type definition";
|
||||
errors[59] := "illegal open array parameter";
|
||||
errors[60] := "wrong type of case label";
|
||||
errors[61] := "inadmissible type of case label";
|
||||
errors[62] := "case label defined more than once";
|
||||
errors[63] := "illegal value of constant";
|
||||
errors[64] := "more actual than formal parameters";
|
||||
errors[65] := "fewer actual than formal parameters";
|
||||
errors[66] := "element types of actual array and formal open array differ";
|
||||
errors[67] := "actual parameter corresponding to open array is not an array";
|
||||
errors[68] := "control variable must be integer";
|
||||
errors[69] := "parameter must be an integer constant";
|
||||
errors[70] := "pointer or VAR record required as formal receiver";
|
||||
errors[71] := "pointer expected as actual receiver";
|
||||
errors[72] := "procedure must be bound to a record of the same scope";
|
||||
errors[73] := "procedure must have level 0";
|
||||
errors[74] := "procedure unknown in base type";
|
||||
errors[75] := "invalid call of base procedure";
|
||||
errors[76] := "this variable (field) is read only";
|
||||
errors[77] := "object is not a record";
|
||||
errors[78] := "dereferenced object is not a variable";
|
||||
errors[79] := "indexed object is not a variable";
|
||||
errors[80] := "index expression is not an integer";
|
||||
errors[81] := "index out of specified bounds";
|
||||
errors[82] := "indexed variable is not an array";
|
||||
errors[83] := "undefined record field";
|
||||
errors[84] := "dereferenced variable is not a pointer";
|
||||
errors[85] := "guard or test type is not an extension of variable type";
|
||||
errors[86] := "guard or testtype is not a pointer";
|
||||
errors[87] := "guarded or tested variable is neither a pointer nor a VAR-parameter record";
|
||||
errors[88] := "open array not allowed as variable, record field or array element";
|
||||
errors[89] := "";
|
||||
errors[90] := "";
|
||||
errors[91] := "";
|
||||
errors[92] := "operand of IN not an integer, or not a set";
|
||||
errors[93] := "set element type is not an integer";
|
||||
errors[94] := "operand of & is not of type BOOLEAN";
|
||||
errors[95] := "operand of OR is not of type BOOLEAN";
|
||||
errors[96] := "operand not applicable to (unary) +";
|
||||
errors[97] := "operand not applicable to (unary) -";
|
||||
errors[98] := "operand of ~ is not of type BOOLEAN";
|
||||
errors[99] := "ASSERT fault";
|
||||
errors[100] := "incompatible operands of dyadic operator";
|
||||
errors[101] := "operand type inapplicable to *";
|
||||
errors[102] := "operand type inapplicable to /";
|
||||
errors[103] := "operand type inapplicable to DIV";
|
||||
errors[104] := "operand type inapplicable to MOD";
|
||||
errors[105] := "operand type inapplicable to +";
|
||||
errors[106] := "operand type inapplicable to -";
|
||||
errors[107] := "operand type inapplicable to = or #";
|
||||
errors[108] := "operand type inapplicable to relation";
|
||||
errors[109] := "overriding method must be exported";
|
||||
errors[110] := "operand is not a type";
|
||||
errors[111] := "operand inapplicable to (this) function";
|
||||
errors[112] := "operand is not a variable";
|
||||
errors[113] := "incompatible assignment";
|
||||
errors[114] := "string too long to be assigned";
|
||||
errors[115] := "parameter doesn't match";
|
||||
errors[116] := "number of parameters doesn't match";
|
||||
errors[117] := "result type doesn't match";
|
||||
errors[118] := "export mark doesn't match with forward declaration";
|
||||
errors[119] := "redefinition textually precedes procedure bound to base type";
|
||||
errors[120] := "type of expression following IF, WHILE, UNTIL or ASSERT is not BOOLEAN";
|
||||
errors[121] := "called object is not a procedure (or is an interrupt procedure)";
|
||||
errors[122] := "actual VAR-parameter is not a variable";
|
||||
errors[123] := "type of actual parameter is not identical with that of formal VAR-parameter";
|
||||
errors[124] := "type of result expression differs from that of procedure";
|
||||
errors[125] := "type of case expression is neither INTEGER nor CHAR";
|
||||
errors[126] := "this expression cannot be a type or a procedure";
|
||||
errors[127] := "illegal use of object";
|
||||
errors[128] := "unsatisfied forward reference";
|
||||
errors[129] := "unsatisfied forward procedure";
|
||||
errors[130] := "WITH clause does not specify a variable";
|
||||
errors[131] := "LEN not applied to array";
|
||||
errors[132] := "dimension in LEN too large or negative";
|
||||
errors[135] := "SYSTEM not imported";
|
||||
errors[150] := "key inconsistency of imported module";
|
||||
errors[151] := "incorrect symbol file";
|
||||
errors[152] := "symbol file of imported module not found";
|
||||
errors[153] := "object or symbol file not opened (disk full?)";
|
||||
errors[154] := "recursive import not allowed";
|
||||
errors[155] := "generation of new symbol file not allowed";
|
||||
errors[156] := "parameter file not found";
|
||||
errors[157] := "syntax error in parameter file";
|
||||
(* Limitations of implementation*)
|
||||
errors[200] := "not yet implemented";
|
||||
errors[201] := "lower bound of set range greater than higher bound";
|
||||
errors[202] := "set element greater than MAX(SET) or less than 0";
|
||||
errors[203] := "number too large";
|
||||
errors[204] := "product too large";
|
||||
errors[205] := "division by zero";
|
||||
errors[206] := "sum too large";
|
||||
errors[207] := "difference too large";
|
||||
errors[208] := "overflow in arithmetic shift";
|
||||
errors[209] := "case range too large";
|
||||
errors[213] := "too many cases in case statement";
|
||||
errors[218] := "illegal value of parameter (0 <= p < 256)";
|
||||
errors[219] := "machine registers cannot be accessed";
|
||||
errors[220] := "illegal value of parameter";
|
||||
errors[221] := "too many pointers in a record";
|
||||
errors[222] := "too many global pointers";
|
||||
errors[223] := "too many record types";
|
||||
errors[224] := "too many pointer types";
|
||||
errors[225] := "address of pointer variable too large (move forward in text)";
|
||||
errors[226] := "too many exported procedures";
|
||||
errors[227] := "too many imported modules";
|
||||
errors[228] := "too many exported structures";
|
||||
errors[229] := "too many nested records for import";
|
||||
errors[230] := "too many constants (strings) in module";
|
||||
errors[231] := "too many link table entries (external procedures)";
|
||||
errors[232] := "too many commands in module";
|
||||
errors[233] := "record extension hierarchy too high";
|
||||
errors[234] := "export of recursive type not allowed";
|
||||
errors[240] := "identifier too long";
|
||||
errors[241] := "string too long";
|
||||
errors[242] := "address overflow";
|
||||
errors[244] := "cyclic type definition not allowed";
|
||||
errors[245] := "guarded pointer variable may be manipulated by non-local operations; use auxiliary pointer variable";
|
||||
(* Compiler Warnings *)
|
||||
|
||||
errors[301] := "implicit type cast";
|
||||
errors[306] := "inappropriate symbol file ignored";
|
||||
|
||||
END errors.
|
||||
(*
|
||||
Run-time Error Messages
|
||||
SYSTEM_halt
|
||||
0 silent HALT(0)
|
||||
1..255 HALT(n), cf. SYSTEM_halt
|
||||
-1 assertion failed, cf. SYSTEM_assert
|
||||
-2 invalid array index
|
||||
-3 function procedure without RETURN statement
|
||||
-4 invalid case in CASE statement
|
||||
-5 type guard failed
|
||||
-6 implicit type guard in record assignment failed
|
||||
-7 invalid case in WITH statement
|
||||
-8 value out of range
|
||||
-9 (delayed) interrupt
|
||||
-10 NIL access
|
||||
-11 alignment error
|
||||
-12 zero divide
|
||||
-13 arithmetic overflow/underflow
|
||||
-14 invalid function argument
|
||||
-15 internal error
|
||||
*)
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue