Error Messages
WHEN you compile a ViviFire program, errors can occur. What follows is a list of error messages and how you can correct your code.
- Argument BEGIN must be last one in list
- Argument list must be between parentheses ('(' ')') because of @OPTION
- Bad assignment operator
- Bad escaped name or character literal - usually caused by missing backtick ('`')
- Bad fixed constant
- Bad floating-point literal
- Bad integer literal
- Bad modifier
- Bad string constant. Possibly you want two quotes ('\
- Bad string literal - usually caused by missing quote(s) ('\
- Bad symbol
- BEGIN without NEW or WHEN
- Bit field not permitted here
- CALL BASE is available only in a CONSTRUCTOR
- CALL CONSTRUCTOR is available only in a CONSTRUCTOR
- Cannot have expression after TOL clause
- Cannot have GET with @WriteOnly
- Cannot have more than one statement after THEN or ELSE
- Cannot have SET with @Iterator or @ReadOnly
- Cannot have SET with dictionary access
- Cannot use @OPTION after @OPTION LAST
- Cannot use @WRITEONLY with default property
- Cannot use a constant value here
- Cannot use ANSI with UTF16
- Cannot use BEGIN in procedure call
- Cannot use BYREFwith OPTIONAL
- Cannot use CASE after SELECT because of @OPTION
- Cannot use DIM/VAR with default property
- Cannot use EXIT in FINALLY
- Cannot use EXIT PROGRAM in LIBRARY
- Cannot use GOTO CASE in FINALLY
- Cannot use METHOD in PROGRAM module
- Cannot use UTF16 with ANSI
- Cannot use WHERE after a list
- Cannot use YIELD in CATCH or FINALLY
- Cannot use YIELD without @ITERATOR on procedure
- CASE cannot follow CASE ELSE in SELECT
- CASE ELSE cannot be first CASE in SELECT
- CASE without SELECT
- CATCH without TRY
- CLASS without END
- CONSTRUCTOR DIM/VAR must have a parameter list
- CONSTRUCTOR without CLASS or STRUCT
- CONSTRUCTOR without END
- DECLARE without END
- Declared element is missing generic type parameter(s)
- DESTRUCTOR without CLASS
- DESTRUCTOR without END
- Dictionary-access property must have one parameter
- DO WHILE/UNTIL cannot have LOOP WHILE/UNTIL
- DO without LOOP
- ELSE or ELSE IF cannot follow ELSE
- ELSE without IF
- END cannot have block type because of @OPTION
- END cannot have type name because of @OPTION
- END cannot have block type because of @OPTION
- END FOR cannot have name because of @OPTION
- END FOR must have name because of @OPTION
- END must have block type because of @OPTION
- END type name must be the same as NEW type name
- END without block. Possibly you want EXIT PROGRAM.
- ENUM without END
- Enumeration constant must have an initializer because of @OPTION
- Enumeration must have a base type (IS) because of @FLAGS or @OPTION
- Enumeration must have a name because of @FLAGS, @OPEN, or @OPTION
- Event handlers cannot have a return type
- EXIT cannot be first statement in loop. Possibly you want EXIT WHEN.
- EXIT CONSTRUCTOR without CONSTRUCTOR
- EXIT DO without DO
- EXIT FOR without FOR
- EXIT FUNCTION without FUNCTION
- EXIT label without EXIT WHEN
- EXIT list can use only DO or FOR or WHILE
- EXIT METHOD without METHOD
- EXIT PROPERTY without PROPERTY
- EXIT SUB without SUB
- EXIT WHEN cannot have two of the same label
- EXIT WHILE without WHILE
- External library must be a string constant
- FINALLY without TRY
- First argument is missing
- FOR without END
- FUNCTION must have a return type
- FUNCTION without END
- GET without PROPERTY
- GOTO CASE without SELECT
- IF cannot have THEN because of @OPTION
- IF must have THEN because of @OPTION
- IF must use block construct because of @OPTION
- IF without END
- IF-THEN-ELSE must be between parentheses
- IN and OUT are permitted only with EVENT and TRAIT
- Invalid Constraint
- Invalid directive or modifier
- Invalid name caused by incorrect file encoding. Write the file again as "UTF-8 with BOM"
- Last argument is missing
- Loop cannot have more than one WHEN BEGIN
- Loop cannot have more than one WHEN EACH/ELSE
- Loop cannot have more than one WHEN with the same label
- LOOP without DO
- Method must have return type because of modifier(s)
- METHOD without END
- More left braces than right
- More left parentheses than right
- More right braces than left
- More right parentheses than left
- Must use backslash because of @OPTION
- Must use DIM because of @OPTION
- Must use EACH because of @OPTION
- Must use ELSE because of @OPTION
- Must use SELECT CASE because of @OPTION
- Must use slash because of @OPTION
- Must use VAR because of @OPTION
- Namespace or type name expected
- NEW...BEGIN without END
- Newline or inline comment must follow line continuation
- Number before unit name must be 0, 1, or 2
- Object BASE is available only in a child class
- OBJECT cannot have CONSTRUCTOR
- OBJECT cannot have DESTRUCTOR
- OBJECT without END
- Optional parameter must have initializer because of @OPTION
- PROPERTY without END
- RAISE expression is mandatory here
- REM is not a comment. Possibly you want ' or //
- REQUIRE must be before statements
- SELECT must have a minimum of one CASE
- SELECT without END
- SELF constraint only available in CLASS and TRAIT
- SET must have one parameter
- SET without PROPERTY
- Statement not permitted in collection initializer
- STRUCT cannot have CLASS member
- STRUCT cannot have DESTRUCTOR
- STRUCT without END
- SUB must have return type because of modifier(s)
- SUB without END
- THEN without IF
- This statement not permitted with one-line IF...ELSE
- Too many arguments for MOD or REM
- TRAIT without END
- TRY without END
- Unit name cannot have a plural part after 1 or 2
- Unknown identifier. After @SI only BINARY, LARGE, and SMALL are available.
- Unknown identifier. After @TEST, only IGNORE is available.
- Unknown identifier. After DECLARE only ANSI, CDECL, and UTF16 are available.
- Unknown or missing option
- UNTIL without DO or LOOP
- WHEN label must be declared at EXIT WHEN because of @OPTION
- WHEN without EXIT WHEN
- WHERE is not permitted here
- WHERE must be on the same logical line as REQUIRE
- WHILE without END