number of type errors are found in the procedure, but "124" indicates that only the type "boolean" is acceptable for the multiplying operator "and".
Another type error in the same procedure is "123", which indicates that the type "£nteger" is expected.
C.2.1 Pass Two Errors.
1. Too Many Labels - Compilation Aborted.
When too many labels are generated for jumps, procedure labels, vari-able labels, etc, the compiler must abort as Pass Three's label tvari-ables are too small to accept so many labels. ("MaxLabels" is 1000.) 2. Too Many Levels - Compilation Aborted.
The block table only makes provision for "Max Level" block records.
I.e. there may only be "M axLevel" levels of nesting in a specification.
("MaxLevel" is 10.) 3. Ambiguous Identifier.
An identifier which has already be defined for that block is redefined.
4. Types Incompatible in Assignment.
The expression on the right hand side of the assignment- statement can not be assigned to the variable on the left hand side.
5. Invalid Non-local Control Variable.
A loop variable of a for-statement is not declared in the block closest containing the for-statement.
6. Invalid Control Variable.
A loop variable of a for-statement is not a entire variable, i.e. the control variable is not indicated by a variable identifier.
7. Incompatible Types.
Two types in an expression are not compatible.
8. Invalid Exported Variable.
An invalid exported variable reference is attempted.
9. Redefinition of Function's Parameters.
A function which was first defined with the "forward" directive is redefined with parameters.
169
10. Invalid Assignment to Function Variable.
A function is assigned a value from outside the function's block.
11. Too Many Case Indices.
A case-statement or variant record has more than "MaxCaselndices"
(500) case constants.
12. Invalid Identifier Kind.
An identifier is of the wrong kind, e.g. it a type identifier, while a variable identifier was expected.
13. Invalid Label Reference.
A goto-statement referenced a label which has not been defined.
14. Invalid Assignment to Control Variable.
An assignment was made to the control variable of a for- statement.
15. Missing Queue Discipline - No Default.
No queue discipline was specified, and no default value has been de-fined.
16. Invalid Ordinal Type.
An ordinal type was expected.
17. Invalid Pointer Type.
A pointer type was expected.
18. Directive for Partial Definition.
A procedure or function which has already been defined with a direc-tive is defined with a direcdirec-tive again.
19. Redefinition of Procedure's Parameters.
A procedure which was first defined with the "forward" directive is redefined with parameters.
20. Invalid Index Range.
A value outside the range of an index range has been found.
21. Case Constant Repeated.
A case constant in a case-statement or variant record has been re-peated.
22. Role Repeated in Role List.
A role identifier has been repeated in a role list.
170
23. Invalid Type for Selector.
The selector for a case-statement or variant record is of the wrong type.
24. Set Element Out of Range.
An element of a set outside the range permissible for a set.
25. Invalid Signed Constant.
A constant which may not be signed has been signed.
26. State Definition Repeated.
More than one state definition part has been encountered in a module block.
27. Invalid Syntax.
The current input symbol does not conform to the grammar of the language.
28. Missing System Class.
A system class was needed for the module.
29. Invalid Time Unit.
A time unit other than the standard units has been used.
30. Invalid Type.
The type of an object is not of the type which was expected.
31. Undefined Identifier.
An identifier which is accessed in a block has not been defined.
32. Label Reference Unresolved in Block.
A label which was declared in a block and used in a goto-statement has not been resolved.
C.2.2 Pass Two Warnings.
1. "any" Clause Not Implemented.
The any-clause has not been implemented in this version of the com-piler. (I.e. no code is generated.)
2. "any Constant" Found - No Code Generated.
The "any" form of constant definition was used. The specification is therefore not adequately specified.
171
3. "···" Found - No Code Generated.
The " ... " form of type definition was used. The specification is there-fore not adequately specified.
4. Field Designators Not Implemented.
As a result of with-statements not having been implemented, function designators were not implemented.
5. "dispose" with Tags Not Implemented.
The standard procedure "dispose" was not implemented in the tag form. {The tagless form was implemented.)
6. "external" Not Implemented.
This version of the compiler does not provide the directive "external"
and therefore separate compilation.
7. Functional Parameters Not Implemented.
Functional parameters for procedures and functions were not imple-mented for this version of the compiler.
8. "new" with Tags Not Implemented.
The standard procedure "new" was not implemented in the tag form.
(The tagless form was implemented.) 9. "pack" Not Implemented.
The standard procedure "pack" was not implemented. A "pack"
procedure has no effect.
10. "packed" Not Implemented.
Packed types were not implemented.
11. "primitive" Not Implemented.
This version of the compiler does not provide the directive "primi-tive".
12. Procedural Parameters Not Implemented.
Procedural parameters for procedures and functions were not imple-mented for this version of the compiler.
13. "unpack" Not Implemented.
The standard procedure "unpack" was not implemented. An "un-pack" procedure has no effect.
172
14. "wi~h" Statement Not Implemented.
With-statements were not implemented.