Readonly
types 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" ] ; } ; } = ...
An abstract implementation of the AstReflection interface. Serves to cache subtype computation results to improve performance throughout different parts of Langium.