9

Thus, if you try to assign an integer value to a char variable, you receive a diagnostic as follows:

Mon Feb 13 13:16:20 1995 inchar.p:

E 25190 line 6 - Type clash: integer is incompatible with char

... 25560: Type of expression clashed with type of variable in assignment

In this case, one error produces a two-line error message. If the same error occurs more than once, the same explanatory diagnostic is given each time.

The scalar Class

The only class whose meaning is not self-explanatory is scalar. It has a precise meaning in the Pascal standard where it refers to char, integer, and boolean types as well as the enumerated types. For the purposes of the Pascal compiler, scalar in an error message refers to a user-defined enumerated type, such as color in:

type color = (red, green, blue)

For integers, the more precise denotation integer is used.

Procedure and Function Type Errors

For built-in procedures and functions, two kinds of errors may occur. If a routine is called with the wrong number of arguments, a message similar to the following is displayed:

Mon Feb 13 13:21:26 1995 sin.p:

E 10010 line 6 - Builtin function SIN takes exactly 1 argument

If the type of an argument is wrong, you receive a message similar to the following:

Mon Feb 13 13:31:14 1995 abs.p:

E 10180 line 8 - Argument to ABS must be of type integer or real, not char

Error Diagnostics

211