,ll 6.6
,cs 10
,pl 66
,lm 0.2,0.5
,pn 1
,ju
,hd
,ce
OmegaSoft 6809 Cross Pascal Language Handbook (V1.0)
,,
,ft

,ce 1
9A-##
,,
,ce
OmegaSoft 6809 Cross Pascal Language Handbook (V1.0)

,ce
APPENDIX

APPENDIX A - COMPILATION ERRORS

,in 0.6
,si -0.6
 1  Invalid token
* A character was encountered in the source that is not a valid pascal character.
,si -0.6
 2  Invalid char
* Something other than a valid integer or hex number followed the "#" character.
,si -0.6
 3  Invalid integer
,si -0.6
 4  Invalid hex
* Value exceeded $FFFF.
,si -0.6
 5  Invalid longhex
* Value exceeded $FFFFFFFF.
,si -0.6
 6  Invalid longinteger
,si -0.6
 7  Invalid real
* Real number too large.
,si -0.6
 8  . expected
* After the end of the global block or after the modend of a module there should be a period.
,si -0.6
 9  Identifier expected
* The syntax calls for an identifier, either defined or undefined.
* In a record variant declaration an identifier must be present as the tag type or variable.
* In a variable declaration or procedure parameter list at least on identifier must be provided before the colon.
,si -0.6
10  ( expected
* After the program or module name there should either be a left paren or a semicolon.
* In a record variant declaration a left paren is expected after the colon the follows the case constant.
* A left paren is expected to start the parameter list required.
,si -0.6
11  ) expected
* In a record variant declaration a right paren is expected after a field list.
* In an enumerated type declaration either a comma or a right paren was expected to close the enumeration.
* In a procedure parameter list a right paren must close the parameter list.
* A right paren was not found after the expression of a nested factor.
* A right paren was not found after the parameter of an exit statement.
* A right paren was not found after the parameter list for a standard procedure or function.
,si -0.6
12  Error in parameter list
* The program parameter list was not correctly terminated by a right paren.
,si -0.6
13  ; expected
* After the program parameters a semicolon should appear.
* In the label declaration syntax either a comma or semicolon should appear here.
* In the constant declaration syntax a semicolon should be found after each constant value.
* In the type declaration syntax a semicolon should be found after the type definition.
* In the variable declaration syntax as semicolon should be found after the type definition.
,in 0
,pg
,ce
COMPILATION ERRORS

,in 0.6
* In a procedure declaration a semicolon should be found
after the parameter list (if provided) or else after the procedure name.
* After the block of a procedure should appear a semicolon.
* A semicolon should separate statements in a compound or repeat statement.
,si -0.6
14  Invalid string
* string crosses a line boundary.
,si -0.6
15  Identifier declared twice
* In a definition an identifier was used that has already been defined and cannot be re-defined at this lex level.
* In a record variant declaration the tag variable identifier is already defined in the record.
* In an enumerated type declaration a name was repeated.
* In a procedure declaration the procedure name was already defined but was not forward.
,si -0.6
16  = expected
* In the constant declaration syntax an equal should occur after the identifier.
* In the type declaration syntax an equal should occur after the identifier.
* An equal sign was expected in the expression rather than the assign symbol found.
,si -0.6
17  Invalid constant
* In the constant syntax a valid expression was found but it was not constant.
,si -0.6
18  Undefined identifier
* The identifier referenced was not found in the symbol table.
* At the start of statement an integer was found but was not declared as a label.
* The destination integer for a GOTO was not defined as a label.
* The identifier as not valid as the start of a factor.
,si -0.6
19  Identifier not appropriate class
* In a record variant declaration the token found for the tag field type was not a type.
* A record selector was found that is not part of the record.
* The token should of been a variable but was not.
* The argument of a with statement must be a record.
* The parameter for the sizeof function must be a variable or type.
,si -0.6
20  END or ; expected
* In a compound statement either an end to terminate it or a semicolon to extend it was not found.
* In a record declaration either a new field list or end of record was expected.
* In a case statement either a new case constant list, an else/otherwise clause, or an end was expected.
,si -0.6
21  .. expected
* In a simple type declaration the ".." was not found after the first constant.
,si -0.6
22  Error in simple type
* Where a simple type was expected something else was found.
,si -0.6
23  Incompatible subrange types
* In a simple type declaration the type of the second constant did not match that of the first constant of the subrange.
,in 0
,pg
,ce
COMPILATION ERRORS

,in 0.6
,si -0.6
24  Low bound exceeds high bound
* In a simple type subrange declaration the first constant had a higher value than the second constant.
,si -0.6
25  Invalid subrange type
* In a simple type declaration a constant of a type that cannot have a subrange was found.
* The two expression types found in a subrange set constructor do not match.
* The constant type is not valid for a subrange case constant.
,si -0.6
26  OF expected
* OF expected in record variant declaration.
* In a set declaration OF was expected.
* In a device declaration OF was expected.
* In an array declaration OF was expected.
* An OF is expected after the selector in a case statement.
,si -0.6
27  [ expected
* In an array declaration a left paren was expected to start an indices declaration.
,si -0.6
28  ] expected
* In a device declaration a right paren was expected after the extra stack space specification.
* In an array declaration a right paren was expected after the indices declaration.
* In a string declaration a right paren was expected after the size specification.
* In array indexing a right bracket was not found to terminate the indexing.
* A right bracket was not found after the expression in string indexing.
* A right bracket was expected to close a set constructor.
,si -0.6
29  Error in type
,si -0.6
30  Integer expected
* In a device declaration either an integer or hex number was expected for a extra stack space specification.
* In a device declaration either an integer, longinteger, longhex, or hex number was expected for the absolute init address.
* In a string declaration an integer was expected as a size specification.
* The token following a GOTO must be an integer.
* The expression for string indexing must be an integer.
* The parameter of an exit statement must be an integer.
,si -0.6
31  : expected
* In a record variant declaration a colon is expected after the case constant.
* In a variable declaration or a procedure parameter list a colon is expected after the variable list and before the type definition.
* In a function declaration a colon is required after the parameter list and before the function return type definition.
* A colon must appear after the constant list in a case statement.
,si -0.6
32  Stack allocation overflow
* While allocating stack space for a variable the allocation counter overflowed. The limit is 32K bytes.
,in 0
,pg
,ce
COMPILATION ERRORS

,in 0.6
,si -0.6
33  Wrong index type
* The array index expression type does not match the declaration.
,si -0.6
34  Invalid index type
* The type declared as an array indices type cannot be used.
,si -0.6
35  Error in variable
,si -0.6
36  := expected
* An assignment symbol should appear after the variable specification in an assignment or for statement.
,si -0.6
37  Type conflict
* The expression found does not have an acceptable type.
* The expression type is not compatible with the variable type of an assignment or for statement.
* The two sides of an expression do not have matching types.
* The constant type does not match the selector type in a case statement.
* The parameter for the mark or release procedure must be longinteger or longhex.
* The parameter for a read or write procedure to a non-text device does not match the device declaration.
* The parameter of the random function must be a real.
,si -0.6
38  Value is out of bounds
,si -0.6
39  Invalid type of operand
* The not operation was applied to an incorrect type.
* An incorrect type was used for set constuction.
* The operand(s) type cannot be used with the specified operator.
,si -0.6
40  Incorrect type for address
* In a variable or procedure declaration the constant following the "at" was not integer, hex, longinteger, or longhex.
,si -0.6
41  Zero string not allowed
* In a string declaration a size of zero was specified.
,si -0.6
42  Operator expected
,si -0.6
43  , expected
* In array indexing neither a comma or a right bracket were found after the index expression.
* In a parameter list more elements are in the declaration and a comma is expected to separate the next expression.
,si -0.6
44  Error in type of standard procedure parameter
* This is general catch-all for errors in the parameter lists of standard procedures. Re-read the documentation for the procedure where this error occurs.
,si -0.6
45  Undeclared or incorrect standard I/O device
* A default device was used for a standard procedure or function and the default device was not declared in the program parameter list.
,si -0.6
46  Error in type of standard function parameter
* This is general catch-all for errors in the parameter lists of standard functions. Re-read the documentation for the function where this error occurs.
,si -0.6
47  Invalid type of expression
* A boolean expression must be used for the while, repeat, and if statements.
* The expression type is invalid for a for statement.
* The expression type is invalid for a case statement selector.
,in 0
,pg
,ce
COMPILATION ERRORS

,in 0.6
,si -0.6
48  DO expected
* DO should be after the expression of a while statement.
* DO should be after the second expression of a for statement.
* DO should be after the argument list of a with statement.
,si -0.6
49  THEN expected
* After the expression of an IF statement a THEN should be found.
,si -0.6
50  Number of parameters incorrect
* A user defined procedure was called with the incorrect number of parameters.
,si -0.6
51  Invalid parameter substitution
* A user defined procedure call encountered a parameter that does not match the definition.
,si -0.6
52  Backtrack error
* Error in symbol table management - contact CSC if you ever get this error.
,si -0.6
53  Device value parameter not allowed
,si -0.6
54  TO/DOWNTO expected
* A TO or DOWNTO is expected after the first expression in a for statement.
,si -0.6
55  Max string length is 126
* A string was defined with a length in excess of 126 characters. The length was set to 126.
,si -0.6
56  Too many set elements
* The maximum ordinal value for a base element is 1007.
,si -0.6
57  Invalid base type
* A pointer was declared to an invalid base type.
* A set was declared with an invalid base type.
,si -0.6
58  HEAP OVERFLOW
* Expressions, declarations, or statements are nested too deep.
,si -0.6
59  SYMBOL TABLE OVERFLOW
* Too many user defined identifiers or excessive expression or statement nesting for the amount of memory made available to the compiler.
,si -0.6
60  PROGRAM expected
* The words program or module must be the first non-comment token in the file.
,si -0.6
61  Case constant type conflict
* In a record variant declaration the case constant does not match the selector type.
,si -0.6
62  Exit outside of loop
* Not nested deep enough in loops to exit the number of loops specified.
,si -0.6
63  Forward pointer reference not defined
* At the end of a type declaration, variable declaration, or procedure parameter declaration there was a reference to but no declaration for the named identifier as a pointer base type.
,si -0.6
64  Compiler out of sync or no "."
* End of file was encountered before the compiler expected it. Either the period was left off of the end of the program or the compiler has gotten out of sync due to a syntax error and not been able to restore itself to proper parsing.
,si -0.6
65  Wrong lexical level
* In a variable declaration either external or entry addressing was specified at a non-global level.
* In a procedure declaration either absolute, external, or entry addressing was specified at a non-global level.
,in 0
,pg
,ce
COMPILATION ERRORS

,in 0.6
,si -0.6
66  Invalid GOTO to label
* Cannot jump into a syntax that has temporary values on the data stack (such as a for loop).
,si -0.6
67  Constant out of range
* The value to be assigned to a subrange variable is out of range.
* The index expression for a variable was beyond the range of the declaration.
,si -0.6
68  VARIABLE CODE BUFFER OVERFLOW
* Code in excess of what the buffer would allow was generated to access the variable of an assignment statement. 
,si -0.6
69  Forward buffer overflow
* Too many pointer type declarations in this declaration section.
* Too many variables or procedure parameters defined to be pointer types in this declaration.
* Too many GOTO statements with destination declared after the GOTO in this block.
,si -0.6
70  Variable buffer overflow
* In a variable declaration or a procedure parameter list too many variable names were listed before the type definition.
* Too many arguments for or nested with statements.
,si -0.6
71  Program parameter buffer overflow
* There are too many identifiers in the program parameter declaration for the compiler to handle.
,si -0.6
72  Statement expected
* Where a statement was expected the token found does not represent a valid start of statement.
,si -0.6
73  Invalid function return type
* The type specified cannot be returned from a function.
,si -0.6
74  BEGIN expected
* The block syntax expected a begin to start a compound statement.
,si -0.6
75  NOT USED
,si -0.6
76  Interrupt/Firq procedure cannot be called
* Interrupt and Firq procedures have special stack handling and cannot be called like normal procedures, they can only be invoked from a processor interrupt.
,si -0.6
77  WARNING - type conversion made
* This indicates that the line has an implicit constant type conversion, this error is only generated if the compiler W command line option is enabled.
,si -0.6
78  Interrupt/Firq functions not allowed
* Only Interrupt and Firq procedures are allowed.
,si -0.6
79  Relocatable buffer overflow
* The file generates too much object code to be held in the internal buffer, use the command line option to increase the buffer size.
,in 0
,pg
,ce
COMPILATION ERRORS

,in 0.6
,si -0.6
80  NOT USED
,si -0.6
81  Internal label table overflow
* This is an error in the relocatable object code generation. Since the size of this table is a percentage of the relocatable object buffer, use the command line option to increase the relocatable buffer size.
,si -0.6
82  External label table overflow
* Same symptom and correction as error 81.
,si -0.6
83  Multiply defined external symbol
* There is a multiple definition of an external symbol. This would indicate that two or more entry procedures or entry variables are not unique within the first 8 characters.
,si -0.6
84  Invalid opcode
* There is an invalid opcode in an inline assembly language statement.

