The error numbers produced by syntax errors during the processing of Rexx programs are all in the range 1 to 99. Errors are raised in response to conditions, for example, SYNTAX, NOMETHOD, and PROPAGATE. When the condition is SYNTAX, the value of the error number is placed in the variable RC when SIGNAL ON SYNTAX is trapped.
You can use the ERRORTEXT built-in function to return the text of an error message.
Some errors have associated subcodes. A subcode is a one- to three-digit decimal extension to the error number, for example, 115
in 40.115
. When an error subcode is available, additional information that further defines the source of the error is given. The ERRORTEXT built-in function cannot retrieve the secondary message, but it is available from the condition object created when SIGNAL ON SYNTAX traps an error.
C.1.1. Error 3 - Failure during initialization
Explanation:
The REXX program could not be read from the disk.
The associated subcodes are:
- 001
Failure during initialization: File "filename" is unreadable
- 900
message
- 901
Failure during initialization: Program "program" was not found
- 902
Error writing output file "file"
- 903
Program "program_name" cannot be run by this version of the REXX interpreter
- 904
Failure during initialization: Program "program" needs to be tokenized. To run untokenized scripts you need a full version of Object REXX.
C.1.2. Error 4 - Program interrupted
Explanation:
The system interrupted the execution of your program because of an error or a user request.
The associated subcodes are:
- 001
Program interrupted with condition condition
- 900
message
C.1.3. Error 5 - System resources exhausted
Explanation:
While trying to execute a program, the language processor was unable to get the resources it needed to continue. For example, it could not get the space needed for its work areas or variables. The program that called the language processor might itself have already used up most of the available storage. Or a request for storage might have been for more than the implementation maximum.
The associated subcodes are:
C.1.4. Error 6 - Unmatched "/*" or quote
Explanation:
A comment or literal string was started but never finished. This could be because the language processor detected:
The end of the program (or the end of the string in an INTERPRET instruction) without finding the ending "*/" for a comment or the ending quotation mark for a literal string
The end of the line for a literal string.
The associated subcodes are:
- 001
Unmatched comment delimiter ("/*") on line line_number
- 002
Unmatched single quote (')
- 003
Unmatched double quote (")
- 900
message
C.1.5. Error 7 - WHEN or OTHERWISE expected
Explanation:
At least one WHEN construct (and possibly an OTHERWISE clause) is expected within a SELECT instruction. This message is issued if any other instruction is found or there is no WHEN construct before the OTHERWISE or all WHEN expressions are false and an OTHERWISE is not present. A common cause of this error is if you forget the DO and END around the list of instructions following a WHEN. For example:
WRONG RIGHT
Select Select
When a=c then When a=c then DO
Say 'A equals C' Say 'A equals C'
exit exit
Otherwise nop end
end Otherwise nop
end
The associated subcodes are:
- 001
SELECT on line line_number requires WHEN
- 002
SELECT on line line_number requires WHEN, OTHERWISE, or END
- 003
All WHEN expressions of SELECT are false; OTHERWISE expected
C.1.6. Error 8 - Unexpected THEN or ELSE
Explanation:
A THEN or an ELSE clause was found that does not match a corresponding IF or WHEN clause. This often occurs because of a missing END or DO...END in the THEN part of a complex IF...THEN...ELSE construction. For example:
WRONG RIGHT
If a=c then do; If a=c then do;
Say EQUALS Say EQUALS
exit exit
else end
Say NOT EQUALS else
Say NOT EQUALS
The associated subcodes are:
- 001
THEN has no corresponding IF or WHEN clause
- 002
ELSE has no corresponding THEN clause
C.1.7. Error 9 - Unexpected WHEN or OTHERWISE
Explanation:
A WHEN or OTHERWISE was found outside of a SELECT construction. You might have accidentally enclosed the instruction in a DO...END construction by leaving out an END, or you might have tried to branch to it with a SIGNAL instruction (which does not work because the SELECT is then ended).
The associated subcodes are:
- 001
WHEN has no corresponding SELECT
- 002
OTHERWISE has no corresponding SELECT
C.1.8. Error 10 - Unexpected or unmatched END
Explanation:
More ENDs were found in your program than DO, LOOP, or SELECT instructions, or the ENDs did not match the DO, LOOP, or SELECT instructions. This message also occurs if you try to transfer control into the middle of a loop using SIGNAL. In this case, the language processor does not expect the END because it did not process the previous DO instruction. Remember also that SIGNAL deactivates any current loops, so it cannot transfer control from one place inside a loop to another.
Another cause for this message is placing an END immediately after a THEN or ELSE subkeyword or specifying a name on the END keyword that does not match the name following DO or LOOP. Putting the name of the control variable on ENDs that close repetitive loops can also help locate this kind of error.
The associated subcodes are:
- 001
END has no corresponding DO, LOOP, or SELECT
- 002
Symbol following END ("symbol") must match block specification name ("control_variable") on line line_number or be omitted
- 003
END corresponding to block on line symbol must not have a symbol following it because there is no LABEL or control variable; found "line_number"
- 004
Symbol following END ("symbol") must match LABEL of SELECT specification ("control_variable") on line line_number or be omitted
- 005
END must not immediately follow THEN
- 006
END must not immediately follow ELSE
- 007
END corresponding to SELECT on line symbol must not have a symbol following it because there is no LABEL; found "line_number"
C.1.9. Error 11 - Control stack full
Explanation:
Your program exceeds the nesting level limit for control structures (for example, DO...END and IF...THEN...ELSE). This could be because of a looping INTERPRET instruction, such as:
line='INTERPRET line'
INTERPRET line
These lines loop until they exceed the nesting level limit and the language processor issues this message. Similarly, a recursive subroutine or internal function that does not end correctly can loop until it causes this message.
The associated subcodes are:
- 001
Insufficient control stack space; cannot continue execution
- 900
message
C.1.10. Error 13 - Invalid character in program
Explanation:
A character was found outside a literal (quoted) string that is not a whitespace character or one of the valid alphanumeric and special characters.
The associated subcodes are:
- 001
Incorrect character in program "character" ('hex_character'X)
- 900
message
C.1.11. Error 14 - Incomplete DO/LOOP/SELECT/IF
Explanation:
At the end of the program or the string for an INTERPRET instruction, a DO, LOOP, or SELECT instruction was found without a matching END or an IF clause that is not followed by a THEN clause. Putting the name of the control variable on each END closing a controlled loop can help locate this kind of error.
The associated subcodes are:
- 001
DO instruction on line line_number requires matching END
- 002
SELECT instruction on line line_number requires matching END
- 003
THEN on line line_number must be followed by an instruction
- 004
ELSE on line line_number must be followed by an instruction
- 005
LOOP instruction on line line_number requires matching END
- 901
OTHERWISE on line line_number requires matching END
C.1.12. Error 15 - Invalid hexadecimal or binary string
Explanation:
Hexadecimal strings must not have leading or trailing whitespace characters and whitespace can only be embedded at byte boundaries. Only the digits 0-9 and the letters a-f and A-F are allowed. The following are valid hexadecimal strings:
'13'x
'A3C2 1c34'x
'1de8'x
Binary strings can have whitespace only at the boundaries of groups of four binary digits. Only the digits 0 and 1 are allowed. These are valid binary strings:
'1011'b
'110 1101'b
'101101 11010011'b
You might have mistyped one of the digits, for example, typing a letter O instead of the number 0. Or you might have used the one-character symbol X or B (the name of the variable X or B, respectively) after a literal string when the string is not intended as a hexadecimal or binary specification. In this case, use the explicit concatenation operator (||) to concatenate the string to the value of the symbol.
The associated subcodes are:
- 001
Incorrect location of whitespace character in position position in hexadecimal string
- 002
Incorrect location of whitespace character in position position in binary string
- 003
Only 0-9, a-f, A-F, and whitespace characters are valid in a hexadecimal string; found "character"
- 004
Only 0, 1, and whitespace characters are valid in a binary string; found "character"
C.1.13. Error 16 - Label not found
Explanation:
A SIGNAL instruction has been executed or an event for which a trap was set with SIGNAL ON has occurred, and the language processor could not find the label specified. You might have mistyped the label or forgotten to include it.
The associated subcodes are:
- 001
Label "label_name" not found
C.1.14. Error 17 - Unexpected PROCEDURE
Explanation:
A PROCEDURE instruction was encountered at an incorrect position. This could occur because no internal routines are active or because the PROCEDURE instruction was not the first instruction processed after the CALL instruction or function call. One cause for this error is dropping through to an internal routine, rather than calling it with a CALL instruction or a function call.
The associated subcodes are:
- 001
PROCEDURE is valid only when it is the first instruction executed after an internal CALL or function invocation
- 901
INTERPRET data must not contain PROCEDURE
C.1.15. Error 18 - THEN expected
Explanation:
A THEN clause must follow each REXX IF or WHEN clause. The language processor found another clause before it found a THEN clause.
The associated subcodes are:
- 001
IF instruction on line line_number requires matching THEN clause
- 002
WHEN instruction on line line_number requires matching THEN clause
C.1.16. Error 19 - String or symbol expected
Explanation:
A symbol or string was expected after the CALL or SIGNAL keywords but none was found. You might have omitted the string or symbol or inserted a special character (such as a parenthesis).
The associated subcodes are:
- 001
String or symbol expected after ADDRESS keyword
- 002
String or symbol expected after CALL keyword
- 003
String or symbol expected after NAME keyword
- 004
String or symbol expected after SIGNAL keyword
- 006
String or symbol expected after TRACE keyword
- 007
String or symbol expected after PARSE keyword
- 900
message
- 901
String or symbol expected after ::CLASS keyword
- 902
String or symbol expected after ::METHOD keyword
- 903
String or symbol expected after ::ROUTINE keyword
- 904
String or symbol expected after ::REQUIRES keyword
- 905
String expected after EXTERNAL keyword
- 906
String or symbol expected after METACLASS keyword
- 907
String or symbol expected after SUBCLASS keyword
- 908
String or symbol expected after INHERIT keyword
- 909
String or symbol expected after tilde (~)
- 911
String or symbol expected after superclass colon (:)
- 912
String or symbol expected after STREAM keyword
- 913
String or symbol expected after MIXINCLASS keyword
- 914
String or symbol expected as ::ATTRIBUTE directive name
- 915
String or symbol expected as ::CONSTANT directive name
- 916
String or symbol expected as ::CONSTANT value
- 917
String or symbol expected as DIGITS value
- 918
String or symbol expected as FUZZ value
- 919
String or symbol expected as TRACE value
C.1.17. Error 20 - Symbol expected
Explanation:
A symbol is expected after CALL ON, CALL OFF, END, ITERATE, LEAVE, NUMERIC, PARSE, SIGNAL ON, or SIGNAL OFF. Also, a list of symbols or variable references is expected after DROP, EXPOSE, and PROCEDURE EXPOSE. Either there was no symbol when one was required or the language processor found another token.
The associated subcodes are:
- 900
message
- 901
Symbol expected after DROP keyword
- 902
Symbol expected after EXPOSE keyword
- 903
Symbol expected after PARSE keyword
- 904
Symbol expected after PARSE VAR
- 905
NUMERIC must be followed by one of the keywords DIGITS, FORM, or FUZZ; found "symbol"
- 906
Symbol expected after "(" of a variable reference
- 907
Symbol expected after LEAVE keyword
- 908
Symbol expected after ITERATE keyword
- 909
Symbol expected after END keyword
- 911
Symbol expected after ON keyword
- 912
Symbol expected after OFF keyword
- 913
Symbol expected after USE ARG
- 914
Symbol expected after RAISE keyword
- 915
Symbol expected after USER keyword
- 916
Symbol expected after ::
- 917
Symbol expected after superclass colon (:)
- 918
Symbol expected after LABEL keyword
C.1.18. Error 21 - Invalid data on end of clause
Explanation:
A clause such as SELECT or NOP is followed by a token other than a comment.
The associated subcodes are:
- 900
message
- 901
Data must not follow the NOP keyword; found "data"
- 902
Data must not follow the SELECT keyword; found "data"
- 903
Data must not follow the NAME keyword; found "data"
- 904
Data must not follow the condition name; found "data"
- 905
Data must not follow the SIGNAL label name; found "data"
- 906
Data must not follow the TRACE setting; found "data"
- 907
Data must not follow the LEAVE control variable name; found "data"
- 908
Data must not follow the ITERATE control variable name; found "data"
- 909
Data must not follow the END control variable name; found "data"
- 911
Data must not follow the NUMERIC FORM specification; found "data"
- 912
Data must not follow the GUARD OFF specification; found "data"
- 913
Data must not follow the ::CONSTANT value; found "data"
C.1.19. Error 22 - Invalid character string
Explanation:
A literal string contains character codes that are not valid. This might be because some characters are not possible, or because the character set is extended and certain character combinations are not allowed.
The associated subcodes are:
- 001
Incorrect character string "character_string" ('hex_string'X)
- 900
message
- 901
Incorrect double-byte character
C.1.20. Error 23 - Invalid data string
Explanation:
A data string (that is, the result of an expression) contains character codes that are not valid. This might be because some characters are not possible, or because the character set is extended and certain character combinations are not allowed.
The associated subcodes are:
- 001
Incorrect data string "string" ('hex_string'X)
- 900
message
C.1.21. Error 24 - Invalid TRACE request
Explanation:
This message is issued when:
The option on a TRACE instruction or the argument to the built-in function does not start with A, C, E, F, I, L, N, O, or R.
In interactive debugging, you entered a number that is not a whole number.
The associated subcodes are:
- 001
TRACE request letter must be one of "ACEFILNOR"; found "value"
- 901
Numeric TRACE requests are valid only from interactive debugging
C.1.22. Error 25 - Invalid subkeyword found
Explanation:
An unexpected token was found at his position of an instruction where a particular subkeyword was expected. For example, in a NUMERIC instruction, the second token must be DIGITS, FUZZ, or FORM.
The associated subcodes are:
- 001
CALL ON must be followed by one of the keywords ERROR, FAILURE, HALT, NOTREADY, USER, or ANY; found "word"
- 002
CALL OFF must be followed by one of the keywords ERROR, FAILURE, HALT, NOTREADY, USER, or ANY; found "word"
- 003
SIGNAL ON must be followed by one of the keywords ERROR, FAILURE, HALT, LOSTDIGITS, NOTREADY, NOMETHOD, NOSTRING, NOVALUE, SYNTAX, USER, or ANY; found "word"
- 004
SIGNAL OFF must be followed by one of the keywords ERROR, FAILURE, HALT, LOSTDIGITS, NOTREADY, NOMETHOD, NOSTRING, NOVALUE, SYNTAX, USER, or ANY; found "word"
- 011
NUMERIC FORM must be followed by one of the keywords SCIENTIFIC or ENGINEERING; found "word"
- 012
PARSE must be followed by one of the keywords ARG, LINEIN, PULL, SOURCE, VALUE, VAR, or VERSION; found "word"
- 015
NUMERIC must be followed by one of the keywords DIGITS, FORM, or FUZZ; found "word"
- 017
PROCEDURE must be followed by the keyword EXPOSE or nothing; found "word"
- 900
message
- 901
Unknown keyword on ::CLASS directive; found "word"
- 902
Unknown keyword on ::METHOD directive; found "word"
- 903
Unknown keyword on ::ROUTINE directive; found "word"
- 904
Unknown keyword on ::REQUIRES directive; found "word"
- 905
USE must be followed by the keyword ARG; found "word"
- 906
RAISE must be followed by one of the keywords ERROR, FAILURE, HALT, LOSTDIGITS, NOMETHOD, NOSTRING, NOTREADY, NOVALUE, SYNTAX, or USER; found "word"
- 907
Unknown keyword on RAISE instruction; found "word"
- 908
Duplicate DESCRIPTION keyword found
- 909
Duplicate ADDITIONAL or ARRAY keyword found
- 911
Duplicate RETURN or EXIT keyword found
- 912
GUARD ON or GUARD OFF must be followed by the keyword WHEN; found "word"
- 913
GUARD must be followed by the keyword ON or OFF; found "word"
- 914
CALL ON condition must be followed by the keyword NAME; found "word"
- 915
SIGNAL ON condition must be followed by the keyword NAME; found "word"
- 916
Unknown keyword on FORWARD instruction; found "keyword"
- 917
Duplicate TO keyword found
- 918
Duplicate ARGUMENTS or ARRAY keyword found
- 919
Duplicate RETURN or CONTINUE keyword found
- 921
Duplicate CLASS keyword found
- 922
Duplicate MESSAGE keyword found
- 923
SELECT must be followed by the keyword LABEL; found "word"
- 924
Unknown keyword on ::OPTIONS directive; found "word"
- 925
Unknown keyword on ::ATTRIBUTE directive; found "word"
C.1.23. Error 26 - Invalid whole number
Explanation:
An expression was found that did not evaluate to a whole number or is greater than the limit (the default is 999,999,999 for 32-bit system and 999,999,999,999,999,999 for 64-bit systems):
The positional patterns in parsing templates (including variable positional patterns)
The operand to the right of the power operator
The values of exprr and exprf in the DO instruction
The values given for DIGITS or FUZZ in the NUMERIC instruction
The number used in the option of the TRACE setting This error is also raised if the value is not permitted (for example, a negative repetition count in a DO instruction), or the division performed during an integer divide or remainder operation does not result in a whole number.
The associated subcodes are:
- 002
Value of repetition count expression in DO instruction must be zero or a positive whole number; found "value"
- 003
Value of FOR expression in DO instruction must be zero or a positive whole number; found "value"
- 004
Positional pattern of PARSE template must be a whole number; found "value"
- 005
DIGITS value must be a positive whole number; found "value"
- 006
FUZZ value must be zero or a positive whole number; found "value"
- 007
Number used in TRACE setting must be a whole number; found "value"
- 008
Operand to the right of the power operator (**) must be a whole number; found "value"
- 011
Result of % operation did not result in a whole number
- 012
Result of // operation did not result in a whole number
- 900
message
- 901
Result of a method call did not result in a whole number; found "value"
- 902
Result of a COMPARETO method call did not result in a whole number; found "value"
- 903
Result of a COMPARE method call did not result in a whole number; found "value"
C.1.24. Error 27 - Invalid DO syntax
Explanation:
A syntax error was found in the DO instruction. You probably used BY, TO, FOR, WHILE, or UNTIL twice, used a WHILE and an UNTIL, or used BY, TO, or FOR when there is no control variable specified.
The associated subcodes are:
- 001
WHILE and UNTIL keywords cannot be used on the same DO loop
- 901
Incorrect data following FOREVER keyword on the DO loop; found "data"
- 902
DO keyword keyword can be specified only once
C.1.25. Error 28 - Invalid LEAVE or ITERATE
Explanation:
A LEAVE or ITERATE instruction was found at an incorrect position. Either no loop was active, or the name specified on the instruction did not match the control variable of any active loop. Note that internal routine calls and the INTERPRET instruction protect DO loops by making them inactive. Therefore, for example, a LEAVE instruction in a subroutine cannot affect a DO loop in the calling routine. You probably tried to use the SIGNAL instruction to transfer control within or into a loop. Because a SIGNAL instruction ends all active loops, any ITERATE or LEAVE instruction causes this message.
The associated subcodes are:
- 001
LEAVE is valid only within a repetitive loop or labeled block instruction
- 002
ITERATE is valid only within a repetitive loop
- 003
Symbol following LEAVE ("symbol") must either match the label of a current loop or block instruction.
- 004
Symbol following ITERATE ("symbol") must either match the label of a current loop or be omitted
- 005
Symbol following ITERATE ("symbol") does not match a repetitive block instruction
C.1.26. Error 29 - Environment name too long
Explanation:
The environment name specified on the ADDRESS instruction is longer than permitted for the system under which the interpreter is running.
The associated subcodes are:
- 001
Environment name exceeds limit characters; found "environment_name"
C.1.27. Error 30 - Name or string too long
Explanation:
A variable name, label name, literal (quoted) string has exceeded the allowed limit of 250 characters. The limit for names includes any substitutions. A possible cause of this error is if you use a period (.) in a name, causing an unexpected substitution. Leaving off an ending quotation mark for a literal string, or putting a single quotation mark in a string, can cause this error because several clauses can be included in the string. For example, write the string 'don't' as 'don't' or "don't".
The associated subcodes are:
- 001
Name exceeds 250 characters: "name"
- 002
Literal string exceeds 250 characters: "string"
- 900
message
- 901
Hexadecimal literal string exceeds 250 characters "string"
- 902
Binary literal string exceeds 250 characters "string"
C.1.28. Error 31 - Name starts with number or "."
Explanation:
A variable was found whose name begins with a numeric digit or a period. You cannot assign a value to such a variable because you could then redefine numeric constants.
The associated subcodes are:
- 001
A value cannot be assigned to a number; found "number"
- 002
Variable symbol must not start with a number; found "symbol"
- 003
Variable symbol must not start with a "."; found "symbol"
- 900
message
C.1.29. Error 33 - Invalid expression result
Explanation:
The result of an expression was found not to be valid in the context in which it was used.
The associated subcodes are:
- 001
Value of NUMERIC DIGITS ("value") must exceed value of NUMERIC FUZZ ("value")
- 002
Value of NUMERIC DIGITS ("value") must not exceed value
- 900
message
- 901
Incorrect expression result following VALUE keyword of ADDRESS instruction
- 902
Incorrect expression result following VALUE keyword of SIGNAL instruction
- 903
Incorrect expression result following VALUE keyword of TRACE instruction
- 904
Incorrect expression result following SYNTAX keyword of RAISE instruction
C.1.30. Error 34 - Logical value not 0 or 1
Explanation:
An expression was found in an IF, WHEN, DO WHILE, or DO UNTIL phrase that did not result in a 0 or 1. Any value operated on by a logical operator must result in a 0 or 1. For example, the phrase If result then exit rc fails if result has a value other than 0 or 1.
The associated subcodes are:
- 001
Value of expression following IF keyword must be exactly "0" or "1"; found "value"
- 002
Value of expression following WHEN keyword must be exactly "0" or "1"; found "value"
- 003
Value of expression following WHILE keyword must be exactly "0" or "1"; found "value"
- 004
Value of expression following UNTIL keyword must be exactly "0" or "1"; found "value"
- 005
Value of expression to the left of the logical operator "operator" must be exactly "0" or "1"; found "value"
- 006
Value of logical list expression element must be exactly "0" or "1"; found "value"
- 900
message
- 901
Logical value must be exactly "0" or "1"; found "value"
- 902
Value of expression following GUARD keyword must be exactly "0" or "1"; found "value"
- 903
Authorization return value must be exactly "0" or "1"; found "value"
- 904
Property logical value must be exactly "0", "1", "true", or "false"; found "value"
C.1.31. Error 35 - Invalid expression
Explanation:
An expression contains a grammatical error. Possible causes:
An expression is missing when one is required
You ended an expression with an operator
You specified, in an expression, two operators next to one another with nothing in between them
You did not specify a right parenthesis when one was required
You used special characters (such as operators) in an intended character expression without enclosing them in quotation marks
The associated subcodes are:
- 001
Incorrect expression detected at "token"
- 900
message
- 901
Prefix operator "operator" is not followed by an expression term
- 902
Missing conditional expression following IF keyword
- 903
Missing conditional expression following WHEN keyword
- 904
Missing initial expression for DO control variable
- 905
Missing expression following BY keyword
- 906
Missing expression following TO keyword
- 907
Missing expression following FOR keyword
- 908
Missing expression following WHILE keyword
- 909
Missing expression following UNTIL keyword
- 911
Missing expression following OVER keyword
- 912
Missing expression following INTERPRET keyword
- 913
Missing expression following OPTIONS keyword
- 914
Missing expression following VALUE keyword of an ADDRESS instruction
- 915
Missing expression following VALUE keyword of a SIGNAL instruction
- 916
Missing expression following VALUE keyword of a TRACE instruction
- 917
Missing expression following VALUE keyword of a NUMERIC FORM instruction
- 918
Missing expression following assignment instruction
- 919
Operator "operator" is not followed by an expression term
- 921
Missing expression following GUARD keyword
- 922
Missing expression following DESCRIPTION keyword of a RAISE instruction
- 923
Missing expression following ADDITIONAL keyword of a RAISE instruction
- 924
Missing "(" on expression list of the ARRAY keyword
- 925
Missing expression following TO keyword of a FORWARD instruction
- 926
Missing expression following ARGUMENTS keyword of a FORWARD instruction
- 927
Missing expression following MESSAGE keyword of a FORWARD instruction
- 928
Missing expression following CLASS keyword of a FORWARD instruction
- 929
Missing expression in logical expression list
- 930
Missing expression following "=" token of a USE STRICT ARG instruction
- 931
Missing expression following ( of parse template
- 932
Missing expression for calculated CALL name
C.1.32. Error 36 - Unmatched "(" or "[" in expression
Explanation:
A matched parenthesis or bracket was found within an expression. There are more left parentheses than right parentheses or more left brackets than right brackets. To include a single parenthesis in a command, enclose it in quotation marks.
The associated subcodes are:
- 900
message
- 901
Left parenthesis "(" in position position on line line_number requires a corresponding right parenthesis ")"
- 902
Square bracket "[" in position position on line line_number requires a corresponding right square bracket "]"
C.1.33. Error 37 - Unexpected ",", ")", or "]"
Explanation:
Either a comma was found outside a function invocation, or there are too many right parentheses or right square brackets in an expression. To include a comma in a character expression, enclose it in quotation marks. For example, write the instruction:
Say Enter A, B, or C
as follows:
Say 'Enter A, B, or C'
The associated subcodes are:
- 001
Unexpected ","
- 002
Unmatched ")" in expression
- 900
message
- 901
Unexpected "]"
C.1.34. Error 38 - Invalid template or pattern
Explanation:
A special character that is not allowed within a parsing template (for example, "%") has been found, or the syntax of a variable pattern is incorrect (that is, no symbol was found after a left parenthesis). This message is also issued if you omit the WITH subkeyword in a PARSE VALUE instruction.
The associated subcodes are:
- 001
Incorrect PARSE template detected at "column_position"
- 002
Incorrect PARSE position detected at "column_position"
- 003
PARSE VALUE instruction requires WITH keyword
- 900
message
- 901
Missing PARSE relative position
C.1.35. Error 39 - Evaluation stack overflow
Explanation:
The expression is too complex to be evaluated by the language processor.
C.1.36. Error 40 - Incorrect call to routine
Explanation:
An incorrect call to a routine was found. Possible causes:
You passed incorrect data (arguments) to the built-in or external routine.
You passed too many arguments to the built-in, external, or internal routine.
The external routine called was not compatible with the language processor.
If you did not try to call a routine, you might have a symbol or a string adjacent to a "(" when you meant it to be separated by a blank or other operator. The language processor would treat this as a function call. For example, write TIME(4+5) as follows: TIME*(4+5)
The associated subcodes are:
- 001
External routine "routine" failed
- 003
Not enough arguments in invocation of routine; minimum expected is number
- 004
Too many arguments in invocation of routine; maximum expected is number
- 005
Missing argument in invocation of routine; argument argument_number is required
- 011
function_name argument argument_number must be a number; found "value"
- 012
function_name argument argument_number must be a whole number; found "value"
- 013
function_name argument argument_number must be zero or positive; found "value"
- 014
function_name argument argument_number must be positive; found "value"
- 019
function_name argument 2, "value", is not in the format described by argument 3, "value"
- 021
function_name argument argument_number must not be a null string
- 022
function_name argument argument_number must be a single character or null; found "value"
- 023
function_name argument argument_number must be a single character; found "value"
- 024
function_name argument argument_number must be a binary string; found "value"
- 025
function_name argument argument_number must be a hexadecimal string; found "value"
- 026
function_name argument argument_number must be a valid symbol; found "value"
- 027
function_name argument 1 must be a valid stream name; found "value"
- 029
function_name conversion to format "value" is not allowed
- 032
RANDOM difference between argument 1 ("value") and argument 2 ("value") must not exceed 999,999,999
- 033
RANDOM argument 1 ("argument") must be less than or equal to argument 2 ("argument")
- 034
SOURCELINE argument 1 ("argument") must be less than or equal to the number of lines in the program (argument)
- 035
X2D argument 1 cannot be expressed as a whole number; found "value"
- 043
function_name argument number must be a single non-alphanumeric character or the null string; found "value"
- 044
function_name argument number, "value", is a format incompatible with the separator specified in argument number
- 900
message
- 901
Result returned by routine is longer than length: "value"
- 902
function_name argument argument_number must not exceed the whole number limit.
- 903
function_name argument argument_number must be in the range 0-99; found "value"
- 904
function_name argument argument_number must be one of values; found "value"
- 905
TRACE setting letter must be one of "ACEFILNOR"; found "value"
- 912
function_name argument argument_number must be a single-dimensional array; found "value"
- 913
function_name argument argument_number must have a string value; found "value"
- 914
Unknown VALUE function variable environment selector; found "value"
- 915
function_name cannot be used with QUEUE:
- 916
Cannot read from a write-only property.
- 917
Cannot write to a read-only property or typelib element.
- 918
Invalid native function signature specification
- 919
Argument argument must have a stem object or stem name value; found "value"
C.1.37. Error 41 - Bad arithmetic conversion
Explanation:
A term in an arithmetic expression is not a valid number or has an exponent outside the allowed range of whole number range.
You might have mistyped a variable name, or included an arithmetic operator in a character expression without putting it in quotation marks.
The associated subcodes are:
- 001
Nonnumeric value ("value") used in arithmetic operation
- 003
Nonnumeric value ("value") used with prefix operator
- 004
Value of TO expression of DO instruction must be numeric; found "value"
- 005
Value of BY expression of DO instruction must be numeric; found "value"
- 006
Value of control variable expression of DO instruction must be numeric; found "value"
- 007
Exponent exceeds number digits; found "value"
- 900
message
- 901
Value of RAISE instruction SYNTAX expression must be numeric; found "value"
C.1.38. Error 42 - Arithmetic overflow/underflow
Explanation:
The result of an arithmetic operation requires an exponent that is greater than the platform limit of nine digits.
This error can occur during the evaluation of an expression (often as a result of trying to divide a number by 0) or while stepping a DO loop control variable.
The associated subcodes are:
- 001
Arithmetic overflow detected at: "valueoperatorvalue"
- 002
Arithmetic underflow detected at: "valueoperatorvalue"
- 003
Arithmetic overflow; divisor must not be zero
- 900
message
- 901
Arithmetic overflow; exponent ("exponent") exceeds number digits
- 902
Arithmetic underflow; exponent ("exponent") exceeds number digits
- 903
Arithmetic underflow; zero raised to a negative power
C.1.39. Error 43 - Routine not found
Explanation:
A function has been invoked within an expression or a subroutine has been invoked by a CALL, but it cannot be found. Possible reasons:
The specified label is not in the program
It is not the name of a built-in function
The language processor could not locate it externally
Check if you mistyped the name.
If you did not try to call a routine, you might have put a symbol or string adjacent to a "(" when you meant it to be separated by a blank or another operator. The language processor then treats it as a function call. For example, write the string 3(4+5) as 3*(4+5).
The associated subcodes are:
- 001
Could not find routine "routine"
- 900
message
- 901
Could not find routine "routine" for ::REQUIRES
C.1.40. Error 44 - Function or message did not return data
Explanation:
The language processor called an external routine within an expression. The routine seemed to end without error, but it did not return data for use in the expression.
You might have specified the name of a program that is not intended for use as a REXX function. Call it as a command or subroutine instead.
The associated subcodes are:
- 001
No data returned from function "function"
- 900
message
C.1.41. Error 45 - No data specified on function RETURN
Explanation:
A REXX program has been called as a function, but returned without passing back any data.
The associated subcodes are:
- 001
Data expected on RETURN instruction because routine "routine" was called as a function
C.1.42. Error 46 - Invalid variable reference
Explanation:
Within an ARG, DROP, EXPOSE, PARSE, PULL, or PROCEDURE instruction, the syntax of a variable reference (a variable whose value is to be used, indicated by its name being enclosed in parentheses) is incorrect. The right parenthesis that must immediately follow the variable name might be missing or the variable name might be misspelled.
The associated subcodes are:
- 001
Extra token ("token") found in variable reference list; ")" expected
- 900
message
- 901
Missing ")" in variable reference
- 902
Extra token ("token") found in USE ARG variable reference; "," or end of instruction expected
C.1.43. Error 47 - Unexpected label
Explanation:
A label was used in the expression being evaluated for an INTERPRET instruction or in an expression entered during interactive debugging.
The associated subcodes are:
- 001
INTERPRET data must not contain labels; found "label"
C.1.44. Error 48 - Failure in system service
Explanation:
The language processor stopped processing the program because a system service, such as stream input or output or the manipulation of the external data queue, has failed to work correctly.
The associated subcodes are:
- 001
Failure in system service: service
- 900
message
C.1.45. Error 49 - Interpretation error
Explanation:
A severe error was detected in the language processor or execution process during internal self-consistency checks.
The associated subcodes are:
- 001
Interpretation error: unexpected failure initializing the interpreter
- 900
message
C.1.46. Error 88 - Invalid argument
Explanation:
An argument passed to a method, function, or routine was not valid.
The associated subcodes are:
- 900
message
- 901
Missing argument; argument argument is required
- 902
Argument argument must be a number; found "value"
- 903
Argument argument must be a whole number; found "value"
- 904
Argument argument must be zero or a positive whole number; found "value"
- 905
Argument argument must be a positive whole number; found "value"
- 906
Argument argument must not exceed limit; found "value"
- 907
Argument argument must be in the range min to max; found "value"
- 908
Argument argument must not be a null string
- 909
Argument argument must have a string value
- 910
Argument argument is an incorrect pad or character argument; found "value"
- 911
Argument argument is an incorrect length argument; found "value"
- 912
Argument argument is an incorrect position argument; found "value"
- 913
Argument argument must have a single-dimensional array value
- 914
Argument argument must be of the class class
- 915
Argument argument could not be converted to type type
- 916
Argument argument must be one of values; found "value"
- 917
Argument argument reason
- 918
Argument argument is not in a valid format; found "value"
- 919
Argument argument is not in valid pointer format; found "value"
- 920
Argument argument must have a stem object or stem name value; found "value"
- 921
Argument argument must be a valid double value; found "value"
- 922
Too many arguments in invocation; number expected
C.1.47. Error 89 - Variable or message term expected
Explanation:
An instruction was expecting either a single Rexx variable symbol or a message term to be used for an assignment.
The associated subcodes are:
- 001
The USE instruction requires a comma-separated list of variables or assignment message terms
- 002
The PARSE was expecting a variable or a message term.
C.1.48. Error 90 - External name not found
Explanation:
An external class, method, or routine (specified with the EXTERNAL option on a ::CLASS, ::METHOD, or ::ROUTINE directive, or as a second argument on a NEW message to the Method class) cannot be found.
The associated subcodes are:
- 900
message
- 997
Unable to find external class "class"
- 998
Unable to find external method "method"
- 999
Unable to find external routine "routine"
C.1.49. Error 91 - No result object
Explanation:
A message term requires a result object, but the method did not return one.
The associated subcodes are:
- 900
message
- 999
Message "message" did not return a result
C.1.50. Error 92 - OLE error
The associated subcodes are:
- 900
message
- 901
An unknown OLE error occurred (HRESULT=hresult).
- 902
Cannot convert OLE VARIANT to REXX object: The conversion of the VARIANT type varianttype into a REXX object failed.
- 903
Cannot convert REXX object to OLE VARIANT: The conversion of rexx_object into a VARIANT failed.
- 904
The number of elements provided to the method or property is different from the number of parameters accepted by it.
- 905
One of the parameters is not a valid VARIANT type.
- 906
OLE exception: exc_name
- 907
The requested method does not exist, or you tried to set the value of a read-only property.
- 908
One of the parameters could not be coerced to the desired type.
- 909
One or more of the parameters could not be coerced to the desired type. The first parameter with incorrect type is argument index.
- 910
A required parameter was omitted.
- 911
Could not create OLE instance.
- 912
The object invoked has disconnected from its clients.
C.1.51. Error 93 - Incorrect call to method
Explanation:
The specified method, built-in function, or external routine exists, but you used it incorrectly.
The associated subcodes are:
- 900
message
- 901
Not enough arguments for method; number expected
- 902
Too many arguments in invocation of method; number expected
- 903
Missing argument in method; argument argument is required
- 904
Method argument argument must be a number; found "value"
- 905
Method argument argument must be a whole number; found "value"
- 906
Method argument argument must be zero or a positive whole number; found "value"
- 907
Method argument argument must be a positive whole number; found "value"
- 908
Method argument argument must not exceed limit; found "value"
- 909
Method argument argument must be in the range 0-99; found "value"
- 911
Method argument argument must not be null
- 912
Method argument argument must be a hexadecimal string; found "value"
- 913
Method argument argument must be a valid symbol; found "value"
- 914
Method argument argument must be one of arguments; found "value"
- 915
Method option must be one of "arguments"; found "value"
- 916
Method argument argument must have a string value
- 917
Method method does not exist
- 918
Incorrect list index "index"
- 919
Incorrect array position "position"
- 921
Argument missing on binary operator
- 922
Incorrect pad or character argument specified; found "value"
- 923
Incorrect length argument specified; found "value"
- 924
Incorrect position argument specified; found "value"
- 925
Not enough subscripts for array; number expected
- 926
Too many subscripts for array; number expected
- 927
Length must be specified to convert a negative value
- 928
D2X value must be a valid whole number; found "value"
- 929
D2C value must be a valid whole number; found "value"
- 931
Incorrect location of whitespace character in position position in hexadecimal string
- 932
Incorrect location of whitespace character in position position in binary string
- 933
Only 0-9, a-f, A-F, and whitespace characters are valid in a hexadecimal string; character found "character"
- 934
Only 0, 1, and whitespace characters are valid in a binary string; character found "character"
- 935
X2D result is not a valid whole number with NUMERIC DIGITS digits
- 936
C2D result is not a valid whole number with NUMERIC DIGITS digits
- 937
No more supplier items available
- 938
Method argument argument must have a string value
- 939
Method argument argument must have a single-dimensional array value
- 941
Exponent "exponent" is too large for number spaces
- 942
Integer part "integer" is too large for number spaces
- 943
method method target must be a number; found "value"
- 944
Method argument argument must be a message object
- 945
Missing argument in message array; argument argument is required
- 946
A message array must be a single-dimensional array with 2 elements
- 947
Method SECTION can be used only on single-dimensional arrays
- 948
Method argument argument must be of the class class
- 949
The index and value objects must be the same for PUT to an index-only collection
- 951
Incorrect alarm time; found "time"
- 952
Method argument argument is an array and does not contain all string values
- 953
Method argument argument could not be converted to type type
- 954
Method "method" can be used only on a single-dimensional array
- 956
Element element of the array must be a string
- 957
Element element of the array must be a subclass of the target object
- 958
Positioning of transient streams is not valid
- 959
An array cannot contain more than 99,999,999 elements
- 961
Method argument argument must have a string value or an array value
- 962
Invalid Base 64 encoded string.
- 963
Call to unsupported or unimplemented method
- 964
Application error: message
- 965
Method name is ABSTRACT and cannot be directly invoked
- 966
Incorrect queue index "index"
- 967
NEW method is not supported for the name class
- 968
Invalid native method signature specification
- 969
Method argument argument must have a stem object value; found "value"
- 970
COPY method is not supported for object object
- 971
Method argument argument cannot have more than a single dimension
C.1.52. Error 97 - Object method not found
Explanation:
The object does not have a method with the given name. A frequent cause of this error is an uninitialized variable.
The associated subcodes are:
- 001
Object "object" does not understand message "message"
- 900
message
C.1.53. Error 98 - Execution error
Explanation:
The language processor detected a specific error during execution. The associated error gives the reason for the error.
The associated subcodes are:
- 900
message
- 902
Unable to convert object "object" to a double-float value
- 903
Unable to load library "name"
- 904
Abnormal termination occurred
- 905
Deadlock detected on a guarded method
- 906
Incorrect object reference detected
- 907
Object of type "type" was required
- 908
Metaclass "metaclass" not found
- 909
Class "class" not found
- 911
Cyclic inheritance in program "program"
- 913
Unable to convert object "object" to a single-dimensional array value
- 914
Unable to convert object "object" to a string value
- 915
A message object cannot be sent more than one SEND or START message
- 916
Message object "object" received an error from message "message"
- 917
Incorrect condition object received for RAISE OBJECT; found "value"
- 918
No active condition available for PROPAGATE
- 919
Unable to convert object "object" to a method
- 935
REPLY can be issued only once per method invocation
- 936
RETURN cannot return a value after a REPLY
- 937
EXIT cannot return a value after a REPLY
- 938
Message search overrides can be used only from methods of the target object
- 939
Additional information for SYNTAX errors must be a single-dimensional array of values
- 941
Unknown error number specified on RAISE SYNTAX; found "number"
- 942
Class "class" must be a MIXINCLASS for INHERIT
- 943
Class "class" is not a subclass of "class" base class "class"
- 944
Class "class" cannot inherit from itself, a superclass, or a subclass ("class")
- 945
Class "class" has not inherited class "class"
- 946
FORWARD arguments must be a single-dimensional array of values
- 947
FORWARD can only be issued in an object method invocation
- 948
Authorization failure: value
- 951
Concurrency not supported
- 975
Missing array element at position position
- 976
Stem object default value cannot be another stem object
- 978
Unable to load method "name" from library "library"
- 979
Unable to load routine "name" from library "library"
- 980
Unable to load native routine "name"
- 981
Target RexxContext is no longer active
- 982
Library "name" is not compatible with current interpreter version.
- 983
Execution thread does not match API thread context.
C.1.54. Error 99 - Translation error
Explanation:
An error was detected in the language syntax. The associated error subcode identifies the syntax error.
The associated subcodes are:
- 900
message
- 901
Duplicate ::CLASS directive instruction
- 902
Duplicate ::METHOD directive instruction
- 903
Duplicate ::ROUTINE directive instruction
- 904
Duplicate ::REQUIRES directive instruction
- 905
CLASS keyword on ::METHOD directive requires a matching ::CLASS directive
- 907
EXPOSE must be the first instruction executed after a method invocation
- 908
INTERPRET data must not contain EXPOSE
- 909
GUARD must be the first instruction executed after EXPOSE or USE
- 911
GUARD can only be issued in an object method invocation
- 912
INTERPRET data must not contain GUARD
- 913
GUARD instruction did not include references to exposed variables
- 914
INTERPRET data must not contain directive instructions
- 915
INTERPRET data must not contain USE
- 916
Unrecognized directive instruction
- 917
Incorrect external directive name "method"
- 918
USE ARG requires a "," between variable names; found "token"
- 919
REPLY can only be issued in an object method invocation
- 921
Incorrect program line in method source array
- 922
::REQUIRES directives must appear before other directive instructions
- 923
INTERPRET data must not contain FORWARD
- 924
INTERPRET data must not contain REPLY
- 925
An ATTRIBUTE method name must be a valid variable name; found "name"
- 926
Incorrect class external; too many parameters
- 927
"classname" is not a valid metaclass
- 928
Incorrect class external; class name missing or invalid
- 929
Incorrect class external; invalid class server "servername"
- 930
The "..." argument marker can only appear at the end of the argument list
- 931
Duplicate ::ATTRIBUTE directive instruction
- 932
Duplicate ::CONSTANT directive instruction
- 933
Abstract methods cannot have a method body
- 934
Attribute methods cannot have a method body
- 935
External attributes cannot have a method body
- 936
External methods cannot have a method body
- 937
Attribute methods without a SET or GET designation cannot have a method body
- 938
Constant methods cannot have a method body
- 939
External routines cannot have a method body
- 940
Abstract attributes cannot have a method body