Synopsis
typedef enum {
  NB_NO_ERROR,
  NB_PROGRAM_ENDED,
  NB_OUT_OF_MEMORY,
  NB_NO_SUCH_LINE,
  NB_SYNTAX_ERROR,
  NB_BREAKPOINT,
  NB_WATCHDOG,
  NB_IMMEDIATE_MODE_ONLY,
  NB_PROGRAM_MODE_ONLY,
  NB_ARGUMENT_ERROR,
  NB_TYPE_MISMATCH,
  NB_UNIMPLEMENTED,
  NB_DIMENSION_ERROR,
  NB_SUBSCRIPT_ERROR,
  NB_BAD_LINE_NUMBER,
  NB_STRING_TOO_LONG,
  NB_EXPRESSION_TOO_COMPLEX,
  NB_NEXT_WITHOUT_FOR,
  NB_WEND_WITHOUT_WHILE,
  NB_UNTIL_WITHOUT_REPEAT,
  NB_ENDPROC_WITHOUT_DEFPROC,
  NB_ENDFN_WITHOUT_DEFFN,
  NB_FOR_EACH_WITHOUT_NEXT,
  NB_FOR_WITHOUT_NEXT,
  NB_WHILE_WITHOUT_WEND,
  NB_REPEAT_WITHOUT_UNTIL,
  NB_DEFPROC_WITHOUT_ENDPROC,
  NB_DEFFN_WITHOUT_ENDFN,
  NB_RETURN_WITHOUT_GOSUB,
  NB_CANT_CONTINUE,
  NB_GRAPHICS_ERROR,
  NB_DRIVER_NOT_FOUND,
  NB_DEFPROC_CANNOT_NEST,
  NB_FELL_INTO_DEFPROC,
  NB_FONT_NOT_FOUND,
  NB_PROC_NOT_DEFINED,
  NB_DUPLICATE_PROC,
  NB_ENDPROC_WITHOUT_CALL,
  NB_TOO_MANY_PARAMETERS,
  NB_NOT_ENOUGH_PARAMETERS,
  NB_TOO_MANY_DRIVERS,
  NB_TOO_MANY_STREAMS,
  NB_BAD_FILENAME,
  NB_BAD_PIN_CONFIGURATION,
  NB_PROGRAM_NOT_FOUND,
  NB_OUT_OF_DATA,
  NB_UNSUPPORTED_PROPERTY,
  NB_USING_ERROR,
  NB_EXPECTED_COMMA,
  NB_EXPECTED_SEMI,
  NB_EXPECTED_EQ,
  NB_EXPECTED_LPAR,
  NB_EXPECTED_RPAR,
  NB_EXPECTED_RBRK,
  NB_EXPECTED_TO,
  NB_EXPECTED_THEN,
  NB_EXPECTED_VAR,
  NB_WHEN_WITHOUT_CASE,
  NB_OTHERWISE_WITHOUT_CASE,
  NB_ENDCASE_WITHOUT_CASE,
  NB_ELSE_WITHOUT_IF,
  NB_IF_WITHOUT_ENDIF,
  NB_CASE_WITHOUT_ENDCASE,
  NB_PAGE_DOES_NOT_EXIST,
  NB_BAD_INPUT,
  NB_BAD_STATEMENT_AFTER_TRY,
  NB_FELL_INTO_ENDFN,
  NB_TOO_MANY_VARIABLES,
  NB_PIN_CONFLICT,
  NB_EXIT_FOR_WITHOUT_FOR,
  NB_EXIT_WHILE_WITHOUT_WHILE,
  NB_EXIT_REPEAT_WITHOUT_REPEAT,
  NB_INTERNAL_ERROR
} NB_ERROR_t;
Description

Although the ordering of these error messages is essentially arbitrary, it is important to keep the WHILE, REPEAT, and FOR errors together in a group along with the tokens that these relate to because nb_check_structure expects the token numbering and error messages to have this structure.

NB_NO_ERROR
Same as CTL_NO_ERROR and has the value zero.
NB_PROGRAM_ENDED
Internal code indicating the CoreBASIC program terminated at END or for some other reason. This is silently turned into NB_NO_ERROR when caught.
NB_OUT_OF_MEMORY
Interpreter ran out of memory.
NB_NO_SUCH_LINE
Line doesn't exist in GOTO, GOSUB, or RESTORE.
NB_SYNTAX_ERROR
Generic syntax error.
NB_BREAKPOINT
User interrupted execution or program executes STOP.
NB_WATCHDOG
Watchdog fired when debugging.
NB_IMMEDIATE_MODE_ONLY
Command is available in immediate mode only.
NB_PROGRAM_MODE_ONLY
Command is available in program mode only.
NB_ARGUMENT_ERROR
Argument to standard function is in error.
NB_TYPE_MISMATCH
Wrong type in general.
NB_UNIMPLEMENTED
I haven't got there yet.
NB_DIMENSION_ERROR
Wrong shape of array.
NB_SUBSCRIPT_ERROR
Subscript out of range.
NB_BAD_LINE_NUMBER
Line 0 is not a valid line number.
NB_STRING_TOO_LONG
String is longer than maximum length allowed.
NB_EXPRESSION_TOO_COMPLEX
Too many items on the expression stack.
NB_NEXT_WITHOUT_FOR
NEXT has no matching FOR (preflight check).
NB_WEND_WITHOUT_WHILE
WEND has no matching WHILE (preflight check).
NB_UNTIL_WITHOUT_REPEAT
UNTIL has no matching REPEAT (preflight check).
NB_ENDPROC_WITHOUT_DEFPROC
ENDPROC has no matching DEFPROC (preflight check).
NB_ENDFN_WITHOUT_DEFFN
ENDFN has no matching DEFFN (preflight check).
NB_FOR_EACH_WITHOUT_NEXT
FOR EACH has no matching NEXT (preflight check).
NB_FOR_WITHOUT_NEXT
FOR has no matching NEXT (preflight check).
NB_WHILE_WITHOUT_WEND
WHILE has no matching WEND (preflight check).
NB_REPEAT_WITHOUT_UNTIL
REPEAT has no matching UNTIL (preflight check).
NB_DEFPROC_WITHOUT_ENDPROC
DEFPROC has no matching ENDPROC (preflight check).
NB_DEFFN_WITHOUT_ENDFN
DEFFN has no matching ENDFN (preflight check).
NB_RETURN_WITHOUT_GOSUB
RETURN has no matching GOSUB (runtime check).