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 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

blockCommentsNest

Can block comments be nested (default is false)

blockCommentStart

Start token for multi-line block comments

blockCommentEnd

End token for multi-line block comments

brackets

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

methods loadForFile

Load syntax rules for given file

loadForExt

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

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)

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)

Default constructor with it-block

strs const SyntaxStr[]? : strs

String and character literal styles

Haxall 4.0.5 ∙ 24-Feb-2026 14:33 EST