跳转到内容

Oberon/ETH Oberon/OP2.Errors

来自 Wikibooks,一个开放世界的开放书籍
Incorrect use of language Oberon

0	undeclared identifier
1	multiply defined identifier
2	illegal character in number
3	illegal character in string
4	identifier does not match procedure name
5	comment not closed
6	
7	
8	
9	"=" expected
10	
11	
12	type definition starts with incorrect symbol
13	value starts with incorrect symbol
14	statement starts with incorrect symbol
15	declaration followed by incorrect symbol
16	MODULE expected
17	
18	"." missing
19	"," missing
20	":" missing
21	
22	")" missing
23	"]" missing
24	"}" missing
25	OF missing
26	THEN missing
27	DO missing
28	TO missing
29	
30	"(" missing
31	
32	
33	
34	":=" missing
35	"," or OF expected
36	
37	
38	EXIT not within loop statement
39	
40	identifier expected
41	";" missing
42	
43	END missing
44	
45	
46	UNTIL missing
47	illegally marked identifier
48	
49	
50	expression should be constant
51	constant not an integer
52	identifier does not denote a type
53	identifier does not denote a record type
54	result type of procedure is not a basic type
55	procedure call of a function
56	assignment to non-variable
57	pointer not bound to record or array type
58	recursive type definition
59	illegal open array parameter
60	wrong type of case label
61	inadmissible type of case label
62	case label defined more than once
63	illegal value of constant
64	more actual than formal parameters
65	fewer actual than formal parameters
66	element types of actual array and formal open array differ
67	actual parameter corresponding to open array is not an array
68	control variable must be integer
69	parameter must be an integer constant
70	pointer or VAR record required as formal receiver
71	pointer expected as actual receiver
72	procedure must be bound to a record of the same scope
73	procedure must be of level 0
74	procedure unknown in base type
75	invalid call of base procedure
76	this variable (field) is read only
77	object is not a record
78	dereferenced object is not a variable
79	indexed object is not a variable
80	index expression is not an integer
81	index out of specified bounds
82	indexed variable is not an array
83	undefined record field
84	dereferenced variable is not a pointer
85	guard or test type is not an extension of variable type
86	guard or testtype is not a pointer
87	guarded or tested variable is neither a pointer nor a VAR-parameter record
88	open array not allowed as variable, record field or array element
89	open lower bound not bound to procedure parameter
90	semi-dynamic array not allowed in a record
91	
92	operand of IN not an integer, or not a set
93	set element type is not an integer
94	operand of & is not of type BOOLEAN
95	operand of OR is not of type BOOLEAN
96	operand not applicable to (unary) +
97	operand not applicable to (unary) -
98	operand of ~ is not of type BOOLEAN
99	ASSERT fault
100	incompatible operands of dyadic operator
101	operand type inapplicable to *
102	operand type inapplicable to /
103	operand type inapplicable to DIV
104	operand type inapplicable to MOD
105	operand type inapplicable to +
106	operand type inapplicable to -
107	operand type inapplicable to = or #
108	operand type inapplicable to relation
109	overriding method must be exported
110	operand is not a type
111	operand inapplicable to (this) function
112	operand is not a variable
113	incompatible assignment
114	string too long to be assigned
115	parameter does not match
116	number of parameters do not match
117	result type does not match
118	export mark does not match with forward declaration
119	redefinition textually precedes procedure bound to base type
120	type of expression following IF, WHILE, UNTIL or ASSERT is not BOOLEAN
121	called object is not a procedure (or is an interrupt procedure)
122	actual VAR-parameter is not a variable
123	type of actual parameter is not identical with that of formal VAR-parameter
124	type of result expression differs from that of procedure
125	type of case expression is neither INTEGER nor CHAR
126	this expression must not be a type or a procedure
127	illegal use of object
128	unsatisfied forward reference
129	unsatisfied forward procedure
130	WITH clause does not specify a variable
131	LEN not applied to array
132	dimension in LEN too large or negative
134	initialiser can not return a value
135	SYSTEM not imported
136	recursive call of operator
137	operator not defined
138	VAR-parameter not allowed
139	multiply-defined operator
140	operator not allowed in record scope
141	operator type missing
142	name does not denote an operator
143	invalid number of formal parameters
144	only one initializer allowed in a record
145	forward declaration not allowed
146	operator must use one locally declared argument type
147	:= operator: cannot be a function
148	:= operator: first parameter must be VAR

150	key inconsistency of imported module
151	incorrect symbol file
152	symbol file of imported module not found
153	object or symbol file not opened (disk full?)
154	recursive import not allowed
155	generation of new symbol file not allowed

170	incompatible assignment (declare the record as POINTER TO RECORD)

Limitations of implementation

200	not yet implemented
201	lower bound of set range greater than higher bound
202	set element greater than MAX(SET) or less than 0
203	number too large
204	product too large
205	division by zero
206	sum too large
207	difference too large
208	overflow in arithmetic shift
209	case range too large
210	code too long ( > 64 KB)
211	procedure too large (reduce procedure size)
212	operator should precede procedure declaration
213	too many cases in case statement
214	
215	not enough registers: simplify expression
216	not enough floating-point registers: simplify expression
217	
218	illegal value of parameter  "(20 <= p < 256)"
219	illegal value of parameter  "(0 <= p < 16)"
220	illegal value of parameter
221	too many pointers in a record
222	too many global pointers
223	too many record types
224	too many pointer types
225	address of pointer variable too large (move forward in text)
226	too many exported and/or type-bound procedures
227	too many imported modules
228	too many exported structures
229	too many nested records for import
230	too many constants (strings) in module
231	too many external and/or type-bound procedures
232	too many commands in module
233	record extension hierarchy too high
234	export of recursive type not allowed
235	too many accesses to global variables or constants
236	too many exported variables
240	identifier too long
241	string too long
242	address overflow
243	too many imported variables

246	already inside an exclusive statement block
247	local variables not allowed in inlined assembler procedure
248	PASSIVATE with global condition
249	only allowed for POINTER TO RECORDs
250	inlined oberon procedures can not be exported
251	too many nested function calls
252	pointer to this record required
253	initialiser must belong to a record
254	can not define a static instance of an active object
260	Active Oberon forward reference
261	Active Oberon method
262	Active Oberon relaxed declaration order
270	Oberon X structured return type
271	Oberon X array
272	allowed only in active objects
280	duplicate fingerprint

Compiler Warnings

301	implicit type cast
302	guarded variable can be side-effected
303	SYSTEM.PTR var parameter output-only
304	SYSTEM.VAL size mismatch
305	only open arrays and named types can be used
306	possible size mismatch
310	ambigous operator
311	dynamic array deep copy
312	implicit reference to heap object via VAR

Incorrect use of i80386 Assembly Language

500	undeclared identifier
501	addressing mode not allowed
502	undefined instruction
503	number to large
504	max one segment override allowed
505	register expected
506	32-Bit register expected
507	"[" expected
508	scale factor expected (2, 4, 8)
509	index already defined
510	Carriage Return expected
511	Operand missing
512	Undefined operand size
513	string expected
514	Object Type not supported
515	Instruction not supported on target
516	no target specified
517	access to non-local variables not allowed in exported inlined procedure
518	inlined procedure: procedure activation frame does not exist

Analyzer Warnings

900	never used
901	never set
902	used before set
903	set but never used
904	used as varpar, possibly not set
905	also declared in outer scope
906	access/assignment to intermediate
907	redefinition
908	new definition
909	statement after RETURN/EXIT
910	for loop variable set
911	implied type guard in record assignment
912	call might depend on evaluation sequence of params
913	parameter never used
华夏公益教科书