Cabezon version 0.08 ships with compiler error messages in Japanese language only. This is a showstopper, if you don't know that language. That includes me. So I started translating to English in January 2020.
Error codes 60 to 64 are currently not used in Cabezon, so corresponding error messages are undefined.
Error | Description |
0 | No error |
1 | Use = instead of := |
2 | Use := instead of = |
3 | Identifier not declared |
4 | Identifier duplicated* |
5 | Variable or function name required |
6 | Expression must not contain procedures* |
7 | The preceding factor cannot be followed by this symbol* |
8 | Incorrect number of procedure / function arguments |
9 | Declaration or begin required* |
10 | Something other than simple auto variable after for* |
11 | String constant length is too large |
12 | String or array name in illegal position* |
13 | The second byte of the kanji code is invalid |
14 | Constants, procedures and functions are not lvalues* |
15 | Label required |
16 | Not enough memory for symbol table |
17 | Argument type mismatch |
18 | Label value is over 0-9999 |
19 | Array or string size is invalid |
20 | There is a duplicate case label* |
21 | Label definition is invalid in interface part* |
22 | End of file detected before program exit* |
23 | End of file detected in the middle of the string* |
24 | End of file detected in the middle of a comment |
25 | For floating point numbers. A number is required after or E* |
26 | Integer constant is too large |
27 | Illegal character in hexadecimal constant |
28 | Expected constant* |
29 | Inappropriate constant for upper / lower limit of range type |
30 | Upper and lower limit types of range type are different |
31 | Lower bound value is greater than upper bound of range type |
32 | Sign can only be attached to a number* |
33 | Unit name and file name are incompatible* |
34 | Type is different from declaration |
35 | Duplicate case constants |
36 | Function procedure argument differs from forward declaration* |
37 | Function / procedure declared forward is undefined |
38 | Left and right types do not match |
39 | This type cannot appear in context* |
40 | Procedure or function name required |
41 | Calling a function as a procedure |
42 | Record field not found |
43 | You cannot assign the return value of this function* |
44 | Cannot cast these types* |
45 | Only local variables can be used as control variables in for statement* |
46 | The expression in the with statement must be record type* |
47 | Label definition is duplicated* |
48 | You cannot jump into a structural sentence with goto* |
49 | Label not defined |
50 | Type of for statement does not match* |
51 | new / dispose argument must be a pointer* |
52 | Referencing undefined tag in variable record* |
53 | String is too long. Truncated* |
54 | Constant (expression) value is out of range* |
55 | Unable to open input file |
56 | packed or huge appeared in wrong place* |
57 | huge arrays cannot be specified as return type for local variables or functions* |
58 | Cannot assign entire huge array* |
59 | huge array cannot be a record or array element* |
60 | undefined |
61 | undefined |
62 | undefined |
63 | undefined |
64 | undefined |
65 | leave statement can only be used inside a loop* |