Interface Grammar

A node in the Abstract Syntax Tree (AST).

interface Grammar {
    $container?: AstNode;
    $containerIndex?: number;
    $containerProperty?: string;
    $cstNode?: CstNode;
    $document?: LangiumDocument<AstNode>;
    $type: "Grammar";
    definesHiddenTokens: boolean;
    hiddenTokens: Reference<GrammarAST.AbstractRule>[];
    imports: GrammarAST.GrammarImport[];
    interfaces: GrammarAST.Interface[];
    isDeclared: boolean;
    name?: string;
    rules: GrammarAST.AbstractRule[];
    types: GrammarAST.Type[];
    usedGrammars: Reference<Grammar>[];
}

Hierarchy (view full)

Properties

$container?: AstNode

The container node in the AST; every node except the root node has a container.

$containerIndex?: number

In case $containerProperty is an array, the array index is stored here.

$containerProperty?: string

The property of the $container node that contains this node. This is either a direct reference or an array.

$cstNode?: CstNode

The Concrete Syntax Tree (CST) node of the text range from which this node was parsed.

The document containing the AST; only the root node has a direct reference to the document.

$type: "Grammar"

Every AST node has a type corresponding to what was specified in the grammar declaration.

definesHiddenTokens: boolean
interfaces: GrammarAST.Interface[]
isDeclared: boolean
name?: string
types: GrammarAST.Type[]
usedGrammars: Reference<Grammar>[]