MicroScript Error Messages
The following two types of error messages are issued by MicroScript:
- Error messages that appear when reading a script (compiling
to intermediate language)
- Error messages that appear when a script is is executed (when
the MicroScript engine executes the intermediate language)
We will respectively explain the messages that are displayed
and their causes. Please make use of them in debugging programs.
____________________
21.1 Error Messages that Appear When Reading a Script
The control structure beginning from the ~nth line is not
closed.
- There is no ENDIF statement for an IF statement.
- There is no ENDREPEAT statement for a REPEAT statement.
- There is no ENDCASE statement for a SWITCH statement.
- There is no ENDWHILE statement for a WHILE statement.
- This is also displayed when a control structure nest is incorrect.
For example, it is displayed in the following case.
- IF
- -
- -
- REPEAT
- -
- -
- ENDIF
- -
- -
- ENDREPEAT
The procedure or item ~ is not defined.
- A procedure declared in a SCRIPT statement has not been defined.
There is no ( complemented by ).
- It is necessary to make the description with ( and ) in opposition
to each other.
- This is also displayed when a control structure nest is incorrect.
There is no [ complemented by ].
- It is necessary to make the description with [ and ] in opposition
to each other.
- This is also displayed when a control structure nest is incorrect.
DEF size has exceeded the limit.
- The number of DEFINE statements is too large. Please rearrange
them and reduce the number.
- For the DEF buffer size, 8 kilobytes is the value limit.
The depth of the DEF nest expansion has exceeded the limit.
- A nest that references other macro names inside a DEFINE
statement has exceeded the value limit of 16.
- A macro name is referencing itself inside a define statement.
The DEF name is already defined.
- You are trying to define once again a macro name that has
already been defined.
Please specify DUP.
- Specify ": DUP" in setting aside the previous display.
- Specify DUP immediately after : in a MOVE statement.
The IF~ENDIF structure is illegal.
- The corresponding relations of IF~ELSEIF~ELSE~ENDIF are not
correct.
- This is also displayed when a control structure nest is incorrect
(see above).
A KEY procedure is already defined.
- It is not possible to define more than one procedure that
starts up through a KEY event.
Please specify the the character string of the MENU item.
- Specify the menu character string in the MENU event. It is
registered as a menu item of a [operation] menu.
The number of MENU procedures has exceeded the limit.
- The value limit of 8 that can be used to register menu items
of [operation] menus has been exceeded.
The REPEAT~ENDREPEAT structure is illegal.
- The REPEAT~ENDREPEAT is cut with an IF statement, etc. (see
above).
The SET format is illegal.
- Assignment in expressions cannot be done using SET.
- In assigning a character string to an array variable, we
do it as expression "array variable name [array specification]
= character string."
- This also appears when one tries to call a function in other
than the inside of a expression without using a CALL statement.
- Incorrect: setgnm ("test", 0)
- Correct: CALL setgnm ("test", 0)
The SWITCH~ENDSWITCH structure is illegal.
- A CASE statement can only be used inside SWITCH~ENDCASE.
- A DEFAULT statement cannot be described before a CASE statement.
Also, it can be used only one time inside SWITCH~ENDCASE.
- There is no SWITCH statement to complement the ENDCASE statement.
- The SWITCH~ENDCASE is cut with an IF statement, etc. (see
above).
The WHILE~ENDWHILE structure is illegal.
- The WHILE~ENDWHILE is cut with an IF statement, etc. (see
above).
The event name is illegal.
- The specification of KEYD, KEYU, KEYC, BUTD, BUTU, or BUTC
is incorrect.
This is an illegal item that cannot be interpreted.
- The argument is greater than the number that has been determined.
- It is impossible to assign array data to a variable that
cannot be be arrayed.
- It is not possible to specify an argument outside of the
final procedure in an EXECUTE statement.
Please specify a segment other than a virtual object.
- Specify a segment other than a virtual object on the right
side of the expression.
Please specify a virtual object segment or path name.
- Confirm whether a correct virtual object segment name or
path name has been specified. A path name needs to be wrapped
in double quotation marks ( " ), but a segment name is not
wrapped.
Please specify a virtual object segment.
- Confirm whether a correct virtual object segment name has
been specified. A segment name is not wrapped in double quotation
marks ( " ).
Please specify a variable segment.
- Specify a variable segment variable or a symbol variable.
The effect name is illegal.
- The effect name that specifies the display effect in an APPEAR
statement, a DISAPPEAR statement, or a SCENE statement is incorrect.
The item has already been defined.
- The name of the procedure, variable or segment has already
been used elsewhere.
- It is not possible to define a variable with the same name
as a system variable.
The item has not been defined.
- The specified item has not been defined.
- Make a declaration in advance with a SCRIPT statement in
assigning to a symbol variable a procedure name or function name
prior to the declaration of the procedure or the function.
It is not possible to set a value inside this item.
- Use the SETSEG statement to make an assignment to a segment
variable.
- Specify a writable variable in a variable for storing procedure
numbers.
- This status name can only be referenced, it cannot be set.
- This system variable can only be referenced.
The status name is illegal.
- . H, . W, . X, . X0, . Y, . Y0 cannot be specified for procedures.
- . PID cannot be specified outside of a virtual object segment
or symbol variable.
- . TBCOL, . TCGAP, . TFCOL, . TL, . TLGAP, . TSIZE, . TSTYL,
. TX, . V cannot be specified outside of a character segment.
This status name cannot be applied.
- The status name that can reference the status name of a segment
or procedure is incorrect.
The numeric formula is illegal.
- The numeric formula is incorrect. In the case of hexadecimal,
it needs to begin with 0x.
This cannot be operated on, since it is not a numeric value.
- A symbol or segment has been specified for an expression
instead of a numeric value.
Please specify a numeric item.
- It is not possible to assign a character string, symbol,
or segment to a numerical variable.
- A symbol or segment has been specified for an expression
instead of a numeric value.
Please specify a numeric array.
- An array other than a byte, character, integer, or float
fraction has been specified.
The size of the script has exceeded the limit.
- The value limit for the intermediate language that is generated
after the script is compiled is 64 kilobytes.
Since this is outside of the control structure, it is invalid.
- A BREAK statement in which there is no thread specification
is valid only in REPEAT~ENDREPEAT, SWITCH~ENDCASE, WHILE~ENDWHILE.
- A CONTINUE statement is valid only in REPEAT~ENDREPEAT, WHILE~ENDWHILE.
The depth of the control structure nest has exceeded the
limit.
- There is a value limit of 32 for the depth of the nest of
a control structure.
Since this is not an integer, it cannot be operated on.
- A float fraction, symbol, segment, etc., has been specified
in the expression.
Please specify an integer item.
- Use an integer to specify coordinates, height, width, time,
frequency, and the number of repeat times.
Please specify an integer variable.
- Specify a variable for storing an integer
A procedure to start up from a segment has already been
specified.
- A procedure corresponding to the specified segment event
has already been defined.
Because this is not a segment or procedure, . cannot be
specified.
- . H, . W, . X, . X0, . Y, . Y0 cannot be specified outside
of a segment name, symbol variable, or variable segment variable.
- . PID cannot be specified outside of a virtual object segment
or symbol variable.
- .S cannot be specified outside of a segment name, symbol
variable, variable segment variable, procedure name, or a procedure
number expression.
- . TBCOL, . TCGAP, . TFCOL, . TL, . TLGAP, . TSIZE, . TSTYL,
. TX, . V cannot be specified outside of a character segment
name, symbol variable, or variable segment variable.
Please specify a segment name.
- The specified segment has not been defined.
- A symbol variable cannot be used. Specify a direct segment
name.
Please specify a segment.
- The description of the segment that is the target of the
move or the base segment is incorrect.
The number of procedures and variables has exceeded the
limit.
- The value limit for the total number of procedures and variables
is 2,040 in 1B/V3 and 8,164 in TiPO and B-right/V.
Because this is not a procedure, ( ) cannot be specified.
- The only thing in which one can specify an argument using
( ) is a procedure.
This cannot be described outside of a procedure.
- There was a statement outside of the procedure. Place the
statement in the procedure.
There is no END at the end of the procedure.
- Use the procedure in opposition to END.
This cannot be described inside a procedure.
- There was a PROLOGUE statement, EPILOGUE statement, ACTION
statement, MACTION statement, or FUNCTION statement in a procedure.
Specify these statements outside of the procedure (as separate
statements).
The number of procedure arguments and local variables has
exceeded the limit.
- The value limit on the total number of arguments to procedures
and local variables is 256.
Please specify a procedure or procedure number.
- In specifying a thread, specify a procedure or a procedure
number.
The procedure name is illegal.
- Specify a proper procedure name.
The number of procedure call parameters is illegal.
- Confirm the number of procedure parameters.
Please specify a procedure.
- Specify a procedure name or a variable that references a
procedure.
The numeric range that can be handled has been exceeded.
- It is not possible to handle a numeric value outside of the
range.
Please specify an array, segment, or a procedure.
- A numeric value cannot be assigned to a symbol variable.
Since this is not an array, [ ] cannot be specified.
- It is only possible to use "[ ]" to declare or
reference an array variable.
The size of the array is illegal or has exceeded the limit.
- The number of array elements is illegal or has exceeded the
limit.
Please specify the size of the array with an integer.
- An integer is used in specifying the size of an array.
Please specify an array.
- Specify an array in the definition of the shared array.
The number is illegal.
- A negative value or variable cannot be specified at the debugging
level.
The necessary item is lacking.
- Confirm whether the character segment has been properly set.
- It is not possible to default an argument.
There was an array reference with an illegal index.
- The array index (element number) is outside the range.
This is an illegal instruction.
- Because an undefined variable, etc, has been used, the expression
cannot be properly evaluated.
A partial array cannot be specified.
- It is not possible to specify a partial array in an expression.
The form of the variable is illegal.
- Variable forms that can be specified are any of the following:
: B, : C, : I, : F, : S, : G.
Please specify a character segment.
- Confirm whether the character segment has been properly specified.
There is no ' at the end of the character constant.
- Confirm whether single quotation marks ( ' ) are in opposition
to each other.
- It is necessary to enclose two or more characters (a character
string) in double quotation marks ( " ).
There is no " at the end of the character string.
- Confirm whether double quotation marks ( " ) are in
opposition to each other. For example, when there is ¥"
[yen sign (escape character) plus closed quotation marks], "
and " will end up being taken for one character.
The length of the character string has exceeded the limit.
- The length of the character string has exceeded the value
limit of 1,024.
Please specify a character string or a character array.
- Specify a character string or character array for a written
expression character string.
- A numeric value, segment, partial array, etc., has been been
specified.
____________________
21.2 Errors at the Time of Execution
There was an illegal argument in the built-in function.
- A float fraction, character string, segment, etc., has been
specified in an argument that specifies an integer.
- A negative integer has been specified in an argument that
specifies a positive integer.
- An array whose array elements are not numeric has been specified
in an argument that specifies a numeric array.
- The necessary number of array elements is not sufficient
in an array that has been specified by an argument.
- An empty character string has been specified in an argument.
System resources are insufficient.
- The size of the window that has been specified is too large.
There was an illegal reference of a system variable.
- Confirm the form of the system variable and make it reference
properly.
There was an illegal setting to a system variable.
- Confirm the form of the system variable and set it properly.
There was an illegal reference of a status name.
- . H, . W, . X, . X0, . Y, . Y0 cannot be specified outside
of a segment name, symbol variable, or variable segment variable.
- . PID cannot be specified outside of a virtual object segment
or symbol variable.
- .S cannot be specified outside of a segment name, symbol
variable, variable segment variable, procedure name, or a procedure
number expression.
- . TBCOL, . TCGAP, . TFCOL, . TL, . TLGAP, . TSIZE, . TSTYL,
. TX, . V cannot be specified outside of a character segment
name, symbol variable, or variable segment variable.
There was an illegal setting to a status name.
- Confirm the status name and set it properly.
There was an item that is not a numeric value.
- A segment, array, etc., has been specified in an expression.
An attempt was made to operate on an item that is not a
numeric value.
- A symbol, segment, etc., has been has been specified in an
expression.
There was an item that is not a script.
- An item that is not a procedure has been specified at a point
that specifies a procedure name.
- An item that is not a thread has been specified at a point
that specifies a thread.
The size of the stack has exceeded the limit.
- The thread stack size has exceeded the value limit of 64
kilobytes.
An attempt was made to operate on an item that is not an
integer.
- A symbol, segment, etc., has been specified in the expression.
There was an item that is not a segment.
- Something that is not a segment has been stored in a symbol
variable.
There was an illegal array reference to an item that is
not an array.
- An array reference cannot be made to an item other than an
array.
There was an item that is not a path name.
- Specify the path name to a virtual object by wrapping it
in double quotation marks ( " ).
There was an illegal repeat count value.
- Specify a positive integer value for the number of repeat
times.
There was an array reference with an illegal index.
- There was an assignment or reference to an array that has
exceeded the defined range.
- System variable $GV [ ], $SV [ ] indices are in the range
of 0~49.
- The system variable $RS [ ] index does not exceed 511.
There was an illegal intermediate language.
- When the script was compiled into an intermediate language,
an illegal intermediate language was generated.
- Note: In the case of the above error, it is impossible to
proceed with processing. In case there is a recurrence, consult
with Personal Media Corporation's TRON Support Center.
There was an illegal procedure call.
- The symbol variable of the point that specifies a procedure
name has not referenced a procedure.
The limit on the number of parallel executions has been
exceeded.
- The threads that have started up simultaneously have exceeded
the value limit of 32.
There was an illegal setting to a variable.
- Confirm the form of the variable and make it reference properly.
There was an illegal reference of a variable.
- Confirm the form of the variable and make it reference properly.
There was an item that is not a character string or a character
array.
- Specify a character string in the argument.
The above is a translation of Chapter 21 of Maikuro sukuriputo
nyuumon [An introduction to MicroScript], pp. 385-395.
Copyright © 1999 Personal Media Corporation