class

BlockParser

@Js
abstract class BlockParser : Obj

A block parser is able to parse a specific block node.

methods canContain

Return true if the this block may contain the child block

addLine

Default implementation does nothing with the source line

addSourceSpan

Add a source span of the currently parsed block

canHaveLazyContinuationLines

Return true if the block can have lazy continuation lines

closeBlock

Do any processing when the block is closed

isContainer

Return true if the block that is parsed is a container (i.e

block

Get the parsed block

tryContinue

Attempt to continue parsing the block from the given state

definitions

Return the definitions parsed by this parser

parseInlines

Callback to parse inline content

addLine virtual Void addLine(SourceLine line)

Default implementation does nothing with the source line

addSourceSpan virtual Void addSourceSpan(SourceSpan sourceSpan)

Add a source span of the currently parsed block. The default implementation adds it to the block. Unless you have some complicated parsing where you need to check source positions, you don't need to override this.

block abstract Block block()

Get the parsed block

canContain virtual Bool canContain(Block childBlock)

Return true if the this block may contain the child block; false otherwise (default)

canHaveLazyContinuationLines virtual Bool canHaveLazyContinuationLines()

Return true if the block can have lazy continuation lines.

Lazy continuation lines are lines that were rejected by this tryContinue but didn't match any other block parser either.

If true is returned here, those lines will get added via addLine. For false (default), the block is closed instead.

closeBlock virtual Void closeBlock()

Do any processing when the block is closed

definitions virtual DefinitionMap[] definitions()

Return the definitions parsed by this parser. The definitions returned here can later be accessed during inline parsing.

isContainer virtual Bool isContainer()

Return true if the block that is parsed is a container (i.e. contains other blocks), or false (default) if it's a leaf.

parseInlines virtual Void parseInlines(InlineParser inlineParser)

Callback to parse inline content

tryContinue abstract BlockContinue? tryContinue(ParserState state)

Attempt to continue parsing the block from the given state

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