Errors and Current Support
This page is a quick checklist for what the parser supports today and what kinds of mistakes it commonly reports.
Back to Language Reference
Common Parse Errors
- Missing statement where one is required
- Unexpected standalone terminators such as Wend, Loop, Case, End If, End Select, End Function, End Sub, Next, Until
- Missing required conditions after If, While, Do While, Do Until, Loop While, Loop Until, Until
- Malformed declaration syntax
- Malformed enum syntax such as an invalid member line or a missing
End Enum
- Malformed type syntax such as a missing field name, a missing End Type, or a Field line outside a Type block
- Malformed postfix syntax such as foo. or foo[]
- Unterminated blocks such as missing End If, Loop, End Select, End Function, End Sub, End Type, End Enum, Next, Until, or Wend
Current Language Summary
The parser currently supports:
- Array declarations with
Dim dimensions
- Enum declarations and enum member access with
EnumName.MemberName
- Expressions and calls
- Member and index access
- Assignments
- Labels and Goto
- Const and Dim
- Type declarations and object allocation with New
- Object release with
Free
- If
- While
- Do / Loop
- For
- Repeat / Until
- Select / Case
- Function and Sub
- Array reference parameters in Function and Sub
- Return
For a beginner-friendly walkthrough of array declarations, index syntax, array reference parameters, and sub-array passing, see Arrays.
User-defined types currently support data fields, nested user-defined field types, and array fields declared with positive integer literal dimensions. One-dimensional array fields can be resized with Resize and measured with ArrayLen, including through nested member chains. Methods, constructors, and inheritance are not currently supported.
This guide describes the implemented language surface as it exists today.