class

SyntaxRules

@Js
@Serializable
const class SyntaxRules : Obj

SyntaxRules defines the syntax rules used to parse a specific programming language.

constructors make

Default constructor with it-block

fields blockCommentEnd

End token for multi-line block comments

blockCommentStart

Start token for multi-line block comments

blockCommentsNest

Can block comments be nested (default is false)

brackets

Bracket characters defaults to "()[]{}"

comments

Start tokens for single line comments to end of line (list of strings)

keywords

List of the keywords

strs

String and character literal styles

methods loadForExt

Load syntax rules for given file extension using "etc/syntax/ext.props"

loadForFile

Load syntax rules for given file

blockCommentEnd const Str? : blockCommentEnd

End token for multi-line block comments

blockCommentStart const Str? : blockCommentStart

Start token for multi-line block comments

blockCommentsNest const Bool : blockCommentsNest

Can block comments be nested (default is false).

brackets const Str : brackets

Bracket characters defaults to "()[]{}".

comments const Str[]? : comments

Start tokens for single line comments to end of line (list of strings).

keywords const Str[]? : keywords

List of the keywords.

loadForExt static SyntaxRules? loadForExt(Str ext)

Load syntax rules for given file extension using "etc/syntax/ext.props". If no rules defined for extension return null.

loadForFile static SyntaxRules? loadForFile(File file, Str? firstLine := null)

Load syntax rules for given file. If the file has already been parse then pass the first line to avoid re-reading the file to check the "#!" shebang. First we attempt to map the file extension to rules. If that fails, then we check the first line to see if defines a "#!" shebang. Return null if no rules can be determined.

make new make(|This|? f := null)

Default constructor with it-block

strs const SyntaxStr[]? : strs

String and character literal styles

Haxall 4.0.6 ∙ 21-Jul-2026 09:48 EDT