Options
All
  • Public
  • Public/Protected
  • All
Menu

Interface ParseTree<NT>

Represents an immutable parse tree.

Each node represents the application of a production rule from the grammar, name ::= expr.

The node's name() is the nonterminal on the left side of the production rule, and the node's children() are the production rules that were matched for each nonterminal used in the righthand side (expr).

A node also has text() representing the substring matched by this node's subtree, and start()/end() indicating where that substring is relative to the entire string parsed.

If the grammar used @skip to skip over some nonterminals automatically, then the skipped subtrees do not appear among this node's children(), but can be found by using allChildren() or childrenByName().

Type parameters

  • NT

    a Typescript Enum with one symbol for each nonterminal used in the grammar, matching the nonterminals when compared case-insensitively (so ROOT and Root and root are the same).

Hierarchy

  • ParseTree

Index

Properties

Readonly allChildren

allChildren: ParseTree<NT>[]

Get all of this node's children, including @skip rules.

returns

a frozen list of all the children of this node, in order, including @skipped subtrees

Readonly children

children: ParseTree<NT>[]

Get this node's children.

returns

a frozen list of the children of this node, in order, excluding @skipped subtrees

Readonly end

end: number

Get the offset where this subtree ends in the entire parsed string.

returns

the offset [0,...length-1] in the entire parsed string where this subtree ends

Readonly isSkipped

isSkipped: boolean

Test if this node is in a subtree that was @skipped.

returns

true iff this node is part of a subtree that was automatically skipped over by a @skip rule.

Readonly name

name: NT

Get this node's name.

returns

the nonterminal corresponding to this node in the parse tree.

Readonly start

start: number

Get the offset where this subtree starts in the entire parsed string.

returns

the offset [0,...length-1] in the entire parsed string where this subtree started to match

Readonly text

text: string

Get this subtree's text.

returns

the substring of the entire parsed string that this subtree matched

Methods

childrenByName

  • Get the children that correspond to a particular production rule

    Parameters

    • name: NT

      Name of the nonterminal corresponding to the desired production rule.

    Returns ParseTree<NT>[]

    a frozen list of the children that represent matches of name's production rule.

Generated using TypeDoc