Langium - v4.0.0
    Preparing search index...

    Class LangiumGrammarAstReflection

    An abstract implementation of the AstReflection interface. Serves to cache subtype computation results to improve performance throughout different parts of Langium.

    Hierarchy (View Summary)

    Index

    Constructors

    Properties

    allSubtypes: Record<string, undefined | string[]> = {}
    subtypes: Record<string, Record<string, undefined | boolean>> = {}
    types: {
        AbstractElement: {
            name: "AbstractElement";
            properties: { cardinality: { name: "cardinality" } };
            superTypes: [];
        };
        AbstractParserRule: {
            name: "AbstractParserRule";
            properties: {};
            superTypes: ["AbstractRule", "AbstractType"];
        };
        AbstractRule: { name: "AbstractRule"; properties: {}; superTypes: [] };
        AbstractType: { name: "AbstractType"; properties: {}; superTypes: [] };
        Action: {
            name: "Action";
            properties: {
                cardinality: { name: "cardinality" };
                feature: { name: "feature" };
                inferredType: { name: "inferredType" };
                operator: { name: "operator" };
                type: { name: "type"; referenceType: "AbstractType" };
            };
            superTypes: ["AbstractElement"];
        };
        Alternatives: {
            name: "Alternatives";
            properties: {
                cardinality: { name: "cardinality" };
                elements: { defaultValue: []; name: "elements" };
            };
            superTypes: ["AbstractElement"];
        };
        ArrayLiteral: {
            name: "ArrayLiteral";
            properties: { elements: { defaultValue: []; name: "elements" } };
            superTypes: ["ValueLiteral"];
        };
        ArrayType: {
            name: "ArrayType";
            properties: { elementType: { name: "elementType" } };
            superTypes: ["TypeDefinition"];
        };
        Assignment: {
            name: "Assignment";
            properties: {
                cardinality: { name: "cardinality" };
                feature: { name: "feature" };
                operator: { name: "operator" };
                predicate: { name: "predicate" };
                terminal: { name: "terminal" };
            };
            superTypes: ["AbstractElement"];
        };
        BooleanLiteral: {
            name: "BooleanLiteral";
            properties: { true: { defaultValue: false; name: "true" } };
            superTypes: ["Condition", "ValueLiteral"];
        };
        CharacterRange: {
            name: "CharacterRange";
            properties: {
                cardinality: { name: "cardinality" };
                left: { name: "left" };
                lookahead: { name: "lookahead" };
                parenthesized: { defaultValue: false; name: "parenthesized" };
                right: { name: "right" };
            };
            superTypes: ["TerminalElement"];
        };
        Condition: { name: "Condition"; properties: {}; superTypes: [] };
        Conjunction: {
            name: "Conjunction";
            properties: { left: { name: "left" }; right: { name: "right" } };
            superTypes: ["Condition"];
        };
        CrossReference: {
            name: "CrossReference";
            properties: {
                cardinality: { name: "cardinality" };
                deprecatedSyntax: { defaultValue: false; name: "deprecatedSyntax" };
                isMulti: { defaultValue: false; name: "isMulti" };
                terminal: { name: "terminal" };
                type: { name: "type"; referenceType: "AbstractType" };
            };
            superTypes: ["AbstractElement"];
        };
        Disjunction: {
            name: "Disjunction";
            properties: { left: { name: "left" }; right: { name: "right" } };
            superTypes: ["Condition"];
        };
        EndOfFile: {
            name: "EndOfFile";
            properties: { cardinality: { name: "cardinality" } };
            superTypes: ["AbstractElement"];
        };
        Grammar: {
            name: "Grammar";
            properties: {
                imports: { defaultValue: []; name: "imports" };
                interfaces: { defaultValue: []; name: "interfaces" };
                isDeclared: { defaultValue: false; name: "isDeclared" };
                name: { name: "name" };
                rules: { defaultValue: []; name: "rules" };
                types: { defaultValue: []; name: "types" };
            };
            superTypes: [];
        };
        GrammarImport: {
            name: "GrammarImport";
            properties: { path: { name: "path" } };
            superTypes: [];
        };
        Group: {
            name: "Group";
            properties: {
                cardinality: { name: "cardinality" };
                elements: { defaultValue: []; name: "elements" };
                guardCondition: { name: "guardCondition" };
                predicate: { name: "predicate" };
            };
            superTypes: ["AbstractElement"];
        };
        InferredType: {
            name: "InferredType";
            properties: { name: { name: "name" } };
            superTypes: ["AbstractType"];
        };
        InfixRule: {
            name: "InfixRule";
            properties: {
                call: { name: "call" };
                dataType: { name: "dataType" };
                inferredType: { name: "inferredType" };
                name: { name: "name" };
                operators: { name: "operators" };
                parameters: { defaultValue: []; name: "parameters" };
                returnType: { name: "returnType"; referenceType: "AbstractType" };
            };
            superTypes: ["AbstractParserRule"];
        };
        InfixRuleOperatorList: {
            name: "InfixRuleOperatorList";
            properties: {
                associativity: { name: "associativity" };
                operators: { defaultValue: []; name: "operators" };
            };
            superTypes: [];
        };
        InfixRuleOperators: {
            name: "InfixRuleOperators";
            properties: { precedences: { defaultValue: []; name: "precedences" } };
            superTypes: [];
        };
        Interface: {
            name: "Interface";
            properties: {
                attributes: { defaultValue: []; name: "attributes" };
                name: { name: "name" };
                superTypes: {
                    defaultValue: [];
                    name: "superTypes";
                    referenceType: "AbstractType";
                };
            };
            superTypes: ["AbstractType"];
        };
        Keyword: {
            name: "Keyword";
            properties: {
                cardinality: { name: "cardinality" };
                predicate: { name: "predicate" };
                value: { name: "value" };
            };
            superTypes: ["AbstractElement"];
        };
        NamedArgument: {
            name: "NamedArgument";
            properties: {
                calledByName: { defaultValue: false; name: "calledByName" };
                parameter: { name: "parameter"; referenceType: "Parameter" };
                value: { name: "value" };
            };
            superTypes: [];
        };
        NegatedToken: {
            name: "NegatedToken";
            properties: {
                cardinality: { name: "cardinality" };
                lookahead: { name: "lookahead" };
                parenthesized: { defaultValue: false; name: "parenthesized" };
                terminal: { name: "terminal" };
            };
            superTypes: ["TerminalElement"];
        };
        Negation: {
            name: "Negation";
            properties: { value: { name: "value" } };
            superTypes: ["Condition"];
        };
        NumberLiteral: {
            name: "NumberLiteral";
            properties: { value: { name: "value" } };
            superTypes: ["ValueLiteral"];
        };
        Parameter: {
            name: "Parameter";
            properties: { name: { name: "name" } };
            superTypes: [];
        };
        ParameterReference: {
            name: "ParameterReference";
            properties: {
                parameter: { name: "parameter"; referenceType: "Parameter" };
            };
            superTypes: ["Condition"];
        };
        ParserRule: {
            name: "ParserRule";
            properties: {
                dataType: { name: "dataType" };
                definition: { name: "definition" };
                entry: { defaultValue: false; name: "entry" };
                fragment: { defaultValue: false; name: "fragment" };
                inferredType: { name: "inferredType" };
                name: { name: "name" };
                parameters: { defaultValue: []; name: "parameters" };
                returnType: { name: "returnType"; referenceType: "AbstractType" };
            };
            superTypes: ["AbstractParserRule"];
        };
        ReferenceType: {
            name: "ReferenceType";
            properties: {
                isMulti: { defaultValue: false; name: "isMulti" };
                referenceType: { name: "referenceType" };
            };
            superTypes: ["TypeDefinition"];
        };
        RegexToken: {
            name: "RegexToken";
            properties: {
                cardinality: { name: "cardinality" };
                lookahead: { name: "lookahead" };
                parenthesized: { defaultValue: false; name: "parenthesized" };
                regex: { name: "regex" };
            };
            superTypes: ["TerminalElement"];
        };
        ReturnType: {
            name: "ReturnType";
            properties: { name: { name: "name" } };
            superTypes: [];
        };
        RuleCall: {
            name: "RuleCall";
            properties: {
                arguments: { defaultValue: []; name: "arguments" };
                cardinality: { name: "cardinality" };
                predicate: { name: "predicate" };
                rule: { name: "rule"; referenceType: "AbstractRule" };
            };
            superTypes: ["AbstractElement"];
        };
        SimpleType: {
            name: "SimpleType";
            properties: {
                primitiveType: { name: "primitiveType" };
                stringType: { name: "stringType" };
                typeRef: { name: "typeRef"; referenceType: "AbstractType" };
            };
            superTypes: ["TypeDefinition"];
        };
        StringLiteral: {
            name: "StringLiteral";
            properties: { value: { name: "value" } };
            superTypes: ["ValueLiteral"];
        };
        TerminalAlternatives: {
            name: "TerminalAlternatives";
            properties: {
                cardinality: { name: "cardinality" };
                elements: { defaultValue: []; name: "elements" };
                lookahead: { name: "lookahead" };
                parenthesized: { defaultValue: false; name: "parenthesized" };
            };
            superTypes: ["TerminalElement"];
        };
        TerminalElement: {
            name: "TerminalElement";
            properties: {
                cardinality: { name: "cardinality" };
                lookahead: { name: "lookahead" };
                parenthesized: { defaultValue: false; name: "parenthesized" };
            };
            superTypes: ["AbstractElement"];
        };
        TerminalGroup: {
            name: "TerminalGroup";
            properties: {
                cardinality: { name: "cardinality" };
                elements: { defaultValue: []; name: "elements" };
                lookahead: { name: "lookahead" };
                parenthesized: { defaultValue: false; name: "parenthesized" };
            };
            superTypes: ["TerminalElement"];
        };
        TerminalRule: {
            name: "TerminalRule";
            properties: {
                definition: { name: "definition" };
                fragment: { defaultValue: false; name: "fragment" };
                hidden: { defaultValue: false; name: "hidden" };
                name: { name: "name" };
                type: { name: "type" };
            };
            superTypes: ["AbstractRule"];
        };
        TerminalRuleCall: {
            name: "TerminalRuleCall";
            properties: {
                cardinality: { name: "cardinality" };
                lookahead: { name: "lookahead" };
                parenthesized: { defaultValue: false; name: "parenthesized" };
                rule: { name: "rule"; referenceType: "TerminalRule" };
            };
            superTypes: ["TerminalElement"];
        };
        Type: {
            name: "Type";
            properties: { name: { name: "name" }; type: { name: "type" } };
            superTypes: ["AbstractType"];
        };
        TypeAttribute: {
            name: "TypeAttribute";
            properties: {
                defaultValue: { name: "defaultValue" };
                isOptional: { defaultValue: false; name: "isOptional" };
                name: { name: "name" };
                type: { name: "type" };
            };
            superTypes: [];
        };
        TypeDefinition: { name: "TypeDefinition"; properties: {}; superTypes: [] };
        UnionType: {
            name: "UnionType";
            properties: { types: { defaultValue: []; name: "types" } };
            superTypes: ["TypeDefinition"];
        };
        UnorderedGroup: {
            name: "UnorderedGroup";
            properties: {
                cardinality: { name: "cardinality" };
                elements: { defaultValue: []; name: "elements" };
            };
            superTypes: ["AbstractElement"];
        };
        UntilToken: {
            name: "UntilToken";
            properties: {
                cardinality: { name: "cardinality" };
                lookahead: { name: "lookahead" };
                parenthesized: { defaultValue: false; name: "parenthesized" };
                terminal: { name: "terminal" };
            };
            superTypes: ["TerminalElement"];
        };
        ValueLiteral: { name: "ValueLiteral"; properties: {}; superTypes: [] };
        Wildcard: {
            name: "Wildcard";
            properties: {
                cardinality: { name: "cardinality" };
                lookahead: { name: "lookahead" };
                parenthesized: { defaultValue: false; name: "parenthesized" };
            };
            superTypes: ["TerminalElement"];
        };
    } = ...

    Methods