/****************************************************************************** * This file was generated by langium-cli 3.3.0. * DO NOT EDIT MANUALLY! ******************************************************************************/ import { loadGrammarFromJson } from '../../utils/grammar-loader.js'; let loadedLangiumGrammarGrammar; export const LangiumGrammarGrammar = () => loadedLangiumGrammarGrammar !== null && loadedLangiumGrammarGrammar !== void 0 ? loadedLangiumGrammarGrammar : (loadedLangiumGrammarGrammar = loadGrammarFromJson(`{ "$type": "Grammar", "isDeclared": true, "name": "LangiumGrammar", "rules": [ { "$type": "ParserRule", "entry": true, "name": "Grammar", "definition": { "$type": "Group", "elements": [ { "$type": "Group", "elements": [ { "$type": "Assignment", "feature": "isDeclared", "operator": "?=", "terminal": { "$type": "Keyword", "value": "grammar" } }, { "$type": "Assignment", "feature": "name", "operator": "=", "terminal": { "$type": "RuleCall", "rule": { "$ref": "#/rules@63" }, "arguments": [] } }, { "$type": "Group", "elements": [ { "$type": "Keyword", "value": "with" }, { "$type": "Assignment", "feature": "usedGrammars", "operator": "+=", "terminal": { "$type": "CrossReference", "type": { "$ref": "#/rules@0" }, "terminal": { "$type": "RuleCall", "rule": { "$ref": "#/rules@63" }, "arguments": [] }, "deprecatedSyntax": false } }, { "$type": "Group", "elements": [ { "$type": "Keyword", "value": "," }, { "$type": "Assignment", "feature": "usedGrammars", "operator": "+=", "terminal": { "$type": "CrossReference", "type": { "$ref": "#/rules@0" }, "terminal": { "$type": "RuleCall", "rule": { "$ref": "#/rules@63" }, "arguments": [] }, "deprecatedSyntax": false } } ], "cardinality": "*" } ], "cardinality": "?" }, { "$type": "Group", "elements": [ { "$type": "Assignment", "feature": "definesHiddenTokens", "operator": "?=", "terminal": { "$type": "Keyword", "value": "hidden" } }, { "$type": "Keyword", "value": "(" }, { "$type": "Group", "elements": [ { "$type": "Assignment", "feature": "hiddenTokens", "operator": "+=", "terminal": { "$type": "CrossReference", "type": { "$ref": "#/rules@15" }, "terminal": { "$type": "RuleCall", "rule": { "$ref": "#/rules@63" }, "arguments": [] }, "deprecatedSyntax": false } }, { "$type": "Group", "elements": [ { "$type": "Keyword", "value": "," }, { "$type": "Assignment", "feature": "hiddenTokens", "operator": "+=", "terminal": { "$type": "CrossReference", "type": { "$ref": "#/rules@15" }, "terminal": { "$type": "RuleCall", "rule": { "$ref": "#/rules@63" }, "arguments": [] }, "deprecatedSyntax": false } } ], "cardinality": "*" } ], "cardinality": "?" }, { "$type": "Keyword", "value": ")" } ], "cardinality": "?" } ], "cardinality": "?" }, { "$type": "Assignment", "feature": "imports", "operator": "+=", "terminal": { "$type": "RuleCall", "rule": { "$ref": "#/rules@16" }, "arguments": [] }, "cardinality": "*" }, { "$type": "Alternatives", "elements": [ { "$type": "Assignment", "feature": "rules", "operator": "+=", "terminal": { "$type": "RuleCall", "rule": { "$ref": "#/rules@15" }, "arguments": [] } }, { "$type": "Assignment", "feature": "interfaces", "operator": "+=", "terminal": { "$type": "RuleCall", "rule": { "$ref": "#/rules@1" }, "arguments": [] } }, { "$type": "Assignment", "feature": "types", "operator": "+=", "terminal": { "$type": "RuleCall", "rule": { "$ref": "#/rules@14" }, "arguments": [] } } ], "cardinality": "+" } ] }, "definesHiddenTokens": false, "fragment": false, "hiddenTokens": [], "parameters": [], "wildcard": false }, { "$type": "ParserRule", "name": "Interface", "definition": { "$type": "Group", "elements": [ { "$type": "Keyword", "value": "interface" }, { "$type": "Assignment", "feature": "name", "operator": "=", "terminal": { "$type": "RuleCall", "rule": { "$ref": "#/rules@63" }, "arguments": [] } }, { "$type": "Group", "elements": [ { "$type": "Keyword", "value": "extends" }, { "$type": "Assignment", "feature": "superTypes", "operator": "+=", "terminal": { "$type": "CrossReference", "type": { "$ref": "#/types@0" }, "terminal": { "$type": "RuleCall", "rule": { "$ref": "#/rules@63" }, "arguments": [] }, "deprecatedSyntax": false } }, { "$type": "Group", "elements": [ { "$type": "Keyword", "value": "," }, { "$type": "Assignment", "feature": "superTypes", "operator": "+=", "terminal": { "$type": "CrossReference", "type": { "$ref": "#/types@0" }, "terminal": { "$type": "RuleCall", "rule": { "$ref": "#/rules@63" }, "arguments": [] }, "deprecatedSyntax": false } } ], "cardinality": "*" } ], "cardinality": "?" }, { "$type": "Keyword", "value": "{" }, { "$type": "Assignment", "feature": "attributes", "operator": "+=", "terminal": { "$type": "RuleCall", "rule": { "$ref": "#/rules@2" }, "arguments": [] }, "cardinality": "*" }, { "$type": "Keyword", "value": "}" }, { "$type": "Keyword", "value": ";", "cardinality": "?" } ] }, "definesHiddenTokens": false, "entry": false, "fragment": false, "hiddenTokens": [], "parameters": [], "wildcard": false }, { "$type": "ParserRule", "name": "TypeAttribute", "definition": { "$type": "Group", "elements": [ { "$type": "Assignment", "feature": "name", "operator": "=", "terminal": { "$type": "RuleCall", "rule": { "$ref": "#/rules@62" }, "arguments": [] } }, { "$type": "Assignment", "feature": "isOptional", "operator": "?=", "terminal": { "$type": "Keyword", "value": "?" }, "cardinality": "?" }, { "$type": "Keyword", "value": ":" }, { "$type": "Assignment", "feature": "type", "operator": "=", "terminal": { "$type": "RuleCall", "rule": { "$ref": "#/rules@8" }, "arguments": [] } }, { "$type": "Group", "elements": [ { "$type": "Keyword", "value": "=" }, { "$type": "Assignment", "feature": "defaultValue", "operator": "=", "terminal": { "$type": "RuleCall", "rule": { "$ref": "#/rules@3" }, "arguments": [] } } ], "cardinality": "?" }, { "$type": "Keyword", "value": ";", "cardinality": "?" } ] }, "definesHiddenTokens": false, "entry": false, "fragment": false, "hiddenTokens": [], "parameters": [], "wildcard": false }, { "$type": "ParserRule", "name": "ValueLiteral", "definition": { "$type": "Alternatives", "elements": [ { "$type": "RuleCall", "rule": { "$ref": "#/rules@4" }, "arguments": [] }, { "$type": "RuleCall", "rule": { "$ref": "#/rules@5" }, "arguments": [] }, { "$type": "RuleCall", "rule": { "$ref": "#/rules@6" }, "arguments": [] }, { "$type": "RuleCall", "rule": { "$ref": "#/rules@7" }, "arguments": [] } ] }, "definesHiddenTokens": false, "entry": false, "fragment": false, "hiddenTokens": [], "parameters": [], "wildcard": false }, { "$type": "ParserRule", "name": "StringLiteral", "definition": { "$type": "Assignment", "feature": "value", "operator": "=", "terminal": { "$type": "RuleCall", "rule": { "$ref": "#/rules@64" }, "arguments": [] } }, "definesHiddenTokens": false, "entry": false, "fragment": false, "hiddenTokens": [], "parameters": [], "wildcard": false }, { "$type": "ParserRule", "name": "NumberLiteral", "definition": { "$type": "Assignment", "feature": "value", "operator": "=", "terminal": { "$type": "RuleCall", "rule": { "$ref": "#/rules@65" }, "arguments": [] } }, "definesHiddenTokens": false, "entry": false, "fragment": false, "hiddenTokens": [], "parameters": [], "wildcard": false }, { "$type": "ParserRule", "name": "BooleanLiteral", "definition": { "$type": "Alternatives", "elements": [ { "$type": "Assignment", "feature": "true", "operator": "?=", "terminal": { "$type": "Keyword", "value": "true" } }, { "$type": "Keyword", "value": "false" } ] }, "definesHiddenTokens": false, "entry": false, "fragment": false, "hiddenTokens": [], "parameters": [], "wildcard": false }, { "$type": "ParserRule", "name": "ArrayLiteral", "definition": { "$type": "Group", "elements": [ { "$type": "Keyword", "value": "[" }, { "$type": "Group", "elements": [ { "$type": "Assignment", "feature": "elements", "operator": "+=", "terminal": { "$type": "RuleCall", "rule": { "$ref": "#/rules@3" }, "arguments": [] } }, { "$type": "Group", "elements": [ { "$type": "Keyword", "value": "," }, { "$type": "Assignment", "feature": "elements", "operator": "+=", "terminal": { "$type": "RuleCall", "rule": { "$ref": "#/rules@3" }, "arguments": [] } } ], "cardinality": "*" } ], "cardinality": "?" }, { "$type": "Keyword", "value": "]" } ] }, "definesHiddenTokens": false, "entry": false, "fragment": false, "hiddenTokens": [], "parameters": [], "wildcard": false }, { "$type": "ParserRule", "name": "TypeDefinition", "definition": { "$type": "RuleCall", "rule": { "$ref": "#/rules@9" }, "arguments": [] }, "definesHiddenTokens": false, "entry": false, "fragment": false, "hiddenTokens": [], "parameters": [], "wildcard": false }, { "$type": "ParserRule", "name": "UnionType", "inferredType": { "$type": "InferredType", "name": "TypeDefinition" }, "definition": { "$type": "Group", "elements": [ { "$type": "RuleCall", "rule": { "$ref": "#/rules@10" }, "arguments": [] }, { "$type": "Group", "elements": [ { "$type": "Action", "inferredType": { "$type": "InferredType", "name": "UnionType" }, "feature": "types", "operator": "+=" }, { "$type": "Group", "elements": [ { "$type": "Keyword", "value": "|" }, { "$type": "Assignment", "feature": "types", "operator": "+=", "terminal": { "$type": "RuleCall", "rule": { "$ref": "#/rules@10" }, "arguments": [] } } ], "cardinality": "+" } ], "cardinality": "?" } ] }, "definesHiddenTokens": false, "entry": false, "fragment": false, "hiddenTokens": [], "parameters": [], "wildcard": false }, { "$type": "ParserRule", "name": "ArrayType", "inferredType": { "$type": "InferredType", "name": "TypeDefinition" }, "definition": { "$type": "Group", "elements": [ { "$type": "RuleCall", "rule": { "$ref": "#/rules@11" }, "arguments": [] }, { "$type": "Group", "elements": [ { "$type": "Action", "inferredType": { "$type": "InferredType", "name": "ArrayType" }, "feature": "elementType", "operator": "=" }, { "$type": "Keyword", "value": "[" }, { "$type": "Keyword", "value": "]" } ], "cardinality": "?" } ] }, "definesHiddenTokens": false, "entry": false, "fragment": false, "hiddenTokens": [], "parameters": [], "wildcard": false }, { "$type": "ParserRule", "name": "ReferenceType", "inferredType": { "$type": "InferredType", "name": "TypeDefinition" }, "definition": { "$type": "Alternatives", "elements": [ { "$type": "RuleCall", "rule": { "$ref": "#/rules@12" }, "arguments": [] }, { "$type": "Group", "elements": [ { "$type": "Action", "inferredType": { "$type": "InferredType", "name": "ReferenceType" } }, { "$type": "Keyword", "value": "@" }, { "$type": "Assignment", "feature": "referenceType", "operator": "=", "terminal": { "$type": "RuleCall", "rule": { "$ref": "#/rules@12" }, "arguments": [] } } ] } ] }, "definesHiddenTokens": false, "entry": false, "fragment": false, "hiddenTokens": [], "parameters": [], "wildcard": false }, { "$type": "ParserRule", "name": "SimpleType", "inferredType": { "$type": "InferredType", "name": "TypeDefinition" }, "definition": { "$type": "Alternatives", "elements": [ { "$type": "Group", "elements": [ { "$type": "Keyword", "value": "(" }, { "$type": "RuleCall", "rule": { "$ref": "#/rules@8" }, "arguments": [] }, { "$type": "Keyword", "value": ")" } ] }, { "$type": "Group", "elements": [ { "$type": "Action", "inferredType": { "$type": "InferredType", "name": "SimpleType" } }, { "$type": "Alternatives", "elements": [ { "$type": "Assignment", "feature": "typeRef", "operator": "=", "terminal": { "$type": "CrossReference", "type": { "$ref": "#/types@0" }, "terminal": { "$type": "RuleCall", "rule": { "$ref": "#/rules@63" }, "arguments": [] }, "deprecatedSyntax": false } }, { "$type": "Assignment", "feature": "primitiveType", "operator": "=", "terminal": { "$type": "RuleCall", "rule": { "$ref": "#/rules@13" }, "arguments": [] } }, { "$type": "Assignment", "feature": "stringType", "operator": "=", "terminal": { "$type": "RuleCall", "rule": { "$ref": "#/rules@64" }, "arguments": [] } } ] } ] } ] }, "definesHiddenTokens": false, "entry": false, "fragment": false, "hiddenTokens": [], "parameters": [], "wildcard": false }, { "$type": "ParserRule", "name": "PrimitiveType", "dataType": "string", "definition": { "$type": "Alternatives", "elements": [ { "$type": "Keyword", "value": "string" }, { "$type": "Keyword", "value": "number" }, { "$type": "Keyword", "value": "boolean" }, { "$type": "Keyword", "value": "Date" }, { "$type": "Keyword", "value": "bigint" } ] }, "definesHiddenTokens": false, "entry": false, "fragment": false, "hiddenTokens": [], "parameters": [], "wildcard": false }, { "$type": "ParserRule", "name": "Type", "definition": { "$type": "Group", "elements": [ { "$type": "Keyword", "value": "type" }, { "$type": "Assignment", "feature": "name", "operator": "=", "terminal": { "$type": "RuleCall", "rule": { "$ref": "#/rules@63" }, "arguments": [] } }, { "$type": "Keyword", "value": "=" }, { "$type": "Assignment", "feature": "type", "operator": "=", "terminal": { "$type": "RuleCall", "rule": { "$ref": "#/rules@8" }, "arguments": [] } }, { "$type": "Keyword", "value": ";", "cardinality": "?" } ] }, "definesHiddenTokens": false, "entry": false, "fragment": false, "hiddenTokens": [], "parameters": [], "wildcard": false }, { "$type": "ParserRule", "name": "AbstractRule", "definition": { "$type": "Alternatives", "elements": [ { "$type": "RuleCall", "rule": { "$ref": "#/rules@17" }, "arguments": [] }, { "$type": "RuleCall", "rule": { "$ref": "#/rules@50" }, "arguments": [] } ] }, "definesHiddenTokens": false, "entry": false, "fragment": false, "hiddenTokens": [], "parameters": [], "wildcard": false }, { "$type": "ParserRule", "name": "GrammarImport", "definition": { "$type": "Group", "elements": [ { "$type": "Keyword", "value": "import" }, { "$type": "Assignment", "feature": "path", "operator": "=", "terminal": { "$type": "RuleCall", "rule": { "$ref": "#/rules@64" }, "arguments": [] } }, { "$type": "Keyword", "value": ";", "cardinality": "?" } ] }, "definesHiddenTokens": false, "entry": false, "fragment": false, "hiddenTokens": [], "parameters": [], "wildcard": false }, { "$type": "ParserRule", "name": "ParserRule", "definition": { "$type": "Group", "elements": [ { "$type": "Alternatives", "elements": [ { "$type": "Assignment", "feature": "entry", "operator": "?=", "terminal": { "$type": "Keyword", "value": "entry" } }, { "$type": "Assignment", "feature": "fragment", "operator": "?=", "terminal": { "$type": "Keyword", "value": "fragment" } } ], "cardinality": "?" }, { "$type": "RuleCall", "rule": { "$ref": "#/rules@19" }, "arguments": [] }, { "$type": "Alternatives", "elements": [ { "$type": "Assignment", "feature": "wildcard", "operator": "?=", "terminal": { "$type": "Keyword", "value": "*" } }, { "$type": "Group", "elements": [ { "$type": "Keyword", "value": "returns" }, { "$type": "Alternatives", "elements": [ { "$type": "Assignment", "feature": "returnType", "operator": "=", "terminal": { "$type": "CrossReference", "type": { "$ref": "#/types@0" }, "terminal": { "$type": "RuleCall", "rule": { "$ref": "#/rules@63" }, "arguments": [] }, "deprecatedSyntax": false } }, { "$type": "Assignment", "feature": "dataType", "operator": "=", "terminal": { "$type": "RuleCall", "rule": { "$ref": "#/rules@13" }, "arguments": [] } } ] } ] }, { "$type": "Assignment", "feature": "inferredType", "operator": "=", "terminal": { "$type": "RuleCall", "rule": { "$ref": "#/rules@18" }, "arguments": [ { "$type": "NamedArgument", "value": { "$type": "BooleanLiteral", "true": false }, "calledByName": false } ] } } ], "cardinality": "?" }, { "$type": "Group", "elements": [ { "$type": "Assignment", "feature": "definesHiddenTokens", "operator": "?=", "terminal": { "$type": "Keyword", "value": "hidden" } }, { "$type": "Keyword", "value": "(" }, { "$type": "Group", "elements": [ { "$type": "Assignment", "feature": "hiddenTokens", "operator": "+=", "terminal": { "$type": "CrossReference", "type": { "$ref": "#/rules@15" }, "terminal": { "$type": "RuleCall", "rule": { "$ref": "#/rules@63" }, "arguments": [] }, "deprecatedSyntax": false } }, { "$type": "Group", "elements": [ { "$type": "Keyword", "value": "," }, { "$type": "Assignment", "feature": "hiddenTokens", "operator": "+=", "terminal": { "$type": "CrossReference", "type": { "$ref": "#/rules@15" }, "terminal": { "$type": "RuleCall", "rule": { "$ref": "#/rules@63" }, "arguments": [] }, "deprecatedSyntax": false } } ], "cardinality": "*" } ], "cardinality": "?" }, { "$type": "Keyword", "value": ")" } ], "cardinality": "?" }, { "$type": "Keyword", "value": ":" }, { "$type": "Assignment", "feature": "definition", "operator": "=", "terminal": { "$type": "RuleCall", "rule": { "$ref": "#/rules@21" }, "arguments": [] } }, { "$type": "Keyword", "value": ";" } ] }, "definesHiddenTokens": false, "entry": false, "fragment": false, "hiddenTokens": [], "parameters": [], "wildcard": false }, { "$type": "ParserRule", "name": "InferredType", "parameters": [ { "$type": "Parameter", "name": "imperative" } ], "definition": { "$type": "Group", "elements": [ { "$type": "Alternatives", "elements": [ { "$type": "Group", "guardCondition": { "$type": "ParameterReference", "parameter": { "$ref": "#/rules@18/parameters@0" } }, "elements": [ { "$type": "Keyword", "value": "infer" } ] }, { "$type": "Group", "guardCondition": { "$type": "Negation", "value": { "$type": "ParameterReference", "parameter": { "$ref": "#/rules@18/parameters@0" } } }, "elements": [ { "$type": "Keyword", "value": "infers" } ] } ] }, { "$type": "Assignment", "feature": "name", "operator": "=", "terminal": { "$type": "RuleCall", "rule": { "$ref": "#/rules@63" }, "arguments": [] } } ] }, "definesHiddenTokens": false, "entry": false, "fragment": false, "hiddenTokens": [], "wildcard": false }, { "$type": "ParserRule", "fragment": true, "name": "RuleNameAndParams", "definition": { "$type": "Group", "elements": [ { "$type": "Assignment", "feature": "name", "operator": "=", "terminal": { "$type": "RuleCall", "rule": { "$ref": "#/rules@63" }, "arguments": [] } }, { "$type": "Group", "elements": [ { "$type": "Keyword", "value": "<" }, { "$type": "Group", "elements": [ { "$type": "Assignment", "feature": "parameters", "operator": "+=", "terminal": { "$type": "RuleCall", "rule": { "$ref": "#/rules@20" }, "arguments": [] } }, { "$type": "Group", "elements": [ { "$type": "Keyword", "value": "," }, { "$type": "Assignment", "feature": "parameters", "operator": "+=", "terminal": { "$type": "RuleCall", "rule": { "$ref": "#/rules@20" }, "arguments": [] } } ], "cardinality": "*" } ], "cardinality": "?" }, { "$type": "Keyword", "value": ">" } ], "cardinality": "?" } ] }, "definesHiddenTokens": false, "entry": false, "hiddenTokens": [], "parameters": [], "wildcard": false }, { "$type": "ParserRule", "name": "Parameter", "definition": { "$type": "Assignment", "feature": "name", "operator": "=", "terminal": { "$type": "RuleCall", "rule": { "$ref": "#/rules@63" }, "arguments": [] } }, "definesHiddenTokens": false, "entry": false, "fragment": false, "hiddenTokens": [], "parameters": [], "wildcard": false }, { "$type": "ParserRule", "name": "Alternatives", "inferredType": { "$type": "InferredType", "name": "AbstractElement" }, "definition": { "$type": "Group", "elements": [ { "$type": "RuleCall", "rule": { "$ref": "#/rules@22" }, "arguments": [] }, { "$type": "Group", "elements": [ { "$type": "Action", "inferredType": { "$type": "InferredType", "name": "Alternatives" }, "feature": "elements", "operator": "+=" }, { "$type": "Group", "elements": [ { "$type": "Keyword", "value": "|" }, { "$type": "Assignment", "feature": "elements", "operator": "+=", "terminal": { "$type": "RuleCall", "rule": { "$ref": "#/rules@22" }, "arguments": [] } } ], "cardinality": "+" } ], "cardinality": "?" } ] }, "definesHiddenTokens": false, "entry": false, "fragment": false, "hiddenTokens": [], "parameters": [], "wildcard": false }, { "$type": "ParserRule", "name": "ConditionalBranch", "inferredType": { "$type": "InferredType", "name": "AbstractElement" }, "definition": { "$type": "Alternatives", "elements": [ { "$type": "RuleCall", "rule": { "$ref": "#/rules@23" }, "arguments": [] }, { "$type": "Group", "elements": [ { "$type": "Action", "inferredType": { "$type": "InferredType", "name": "Group" } }, { "$type": "Keyword", "value": "<" }, { "$type": "Assignment", "feature": "guardCondition", "operator": "=", "terminal": { "$type": "RuleCall", "rule": { "$ref": "#/rules@33" }, "arguments": [] } }, { "$type": "Keyword", "value": ">" }, { "$type": "Assignment", "feature": "elements", "operator": "+=", "terminal": { "$type": "RuleCall", "rule": { "$ref": "#/rules@25" }, "arguments": [] }, "cardinality": "+" } ] } ] }, "definesHiddenTokens": false, "entry": false, "fragment": false, "hiddenTokens": [], "parameters": [], "wildcard": false }, { "$type": "ParserRule", "name": "UnorderedGroup", "inferredType": { "$type": "InferredType", "name": "AbstractElement" }, "definition": { "$type": "Group", "elements": [ { "$type": "RuleCall", "rule": { "$ref": "#/rules@24" }, "arguments": [] }, { "$type": "Group", "elements": [ { "$type": "Action", "inferredType": { "$type": "InferredType", "name": "UnorderedGroup" }, "feature": "elements", "operator": "+=" }, { "$type": "Group", "elements": [ { "$type": "Keyword", "value": "&" }, { "$type": "Assignment", "feature": "elements", "operator": "+=", "terminal": { "$type": "RuleCall", "rule": { "$ref": "#/rules@24" }, "arguments": [] } } ], "cardinality": "+" } ], "cardinality": "?" } ] }, "definesHiddenTokens": false, "entry": false, "fragment": false, "hiddenTokens": [], "parameters": [], "wildcard": false }, { "$type": "ParserRule", "name": "Group", "inferredType": { "$type": "InferredType", "name": "AbstractElement" }, "definition": { "$type": "Group", "elements": [ { "$type": "RuleCall", "rule": { "$ref": "#/rules@25" }, "arguments": [] }, { "$type": "Group", "elements": [ { "$type": "Action", "inferredType": { "$type": "InferredType", "name": "Group" }, "feature": "elements", "operator": "+=" }, { "$type": "Assignment", "feature": "elements", "operator": "+=", "terminal": { "$type": "RuleCall", "rule": { "$ref": "#/rules@25" }, "arguments": [] }, "cardinality": "+" } ], "cardinality": "?" } ] }, "definesHiddenTokens": false, "entry": false, "fragment": false, "hiddenTokens": [], "parameters": [], "wildcard": false }, { "$type": "ParserRule", "name": "AbstractToken", "inferredType": { "$type": "InferredType", "name": "AbstractElement" }, "definition": { "$type": "Alternatives", "elements": [ { "$type": "RuleCall", "rule": { "$ref": "#/rules@26" }, "arguments": [] }, { "$type": "RuleCall", "rule": { "$ref": "#/rules@27" }, "arguments": [] } ] }, "definesHiddenTokens": false, "entry": false, "fragment": false, "hiddenTokens": [], "parameters": [], "wildcard": false }, { "$type": "ParserRule", "name": "AbstractTokenWithCardinality", "inferredType": { "$type": "InferredType", "name": "AbstractElement" }, "definition": { "$type": "Group", "elements": [ { "$type": "Alternatives", "elements": [ { "$type": "RuleCall", "rule": { "$ref": "#/rules@41" }, "arguments": [] }, { "$type": "RuleCall", "rule": { "$ref": "#/rules@28" }, "arguments": [] } ] }, { "$type": "Assignment", "feature": "cardinality", "operator": "=", "terminal": { "$type": "Alternatives", "elements": [ { "$type": "Keyword", "value": "?" }, { "$type": "Keyword", "value": "*" }, { "$type": "Keyword", "value": "+" } ] }, "cardinality": "?" } ] }, "definesHiddenTokens": false, "entry": false, "fragment": false, "hiddenTokens": [], "parameters": [], "wildcard": false }, { "$type": "ParserRule", "name": "Action", "inferredType": { "$type": "InferredType", "name": "AbstractElement" }, "definition": { "$type": "Group", "elements": [ { "$type": "Action", "inferredType": { "$type": "InferredType", "name": "Action" } }, { "$type": "Keyword", "value": "{" }, { "$type": "Alternatives", "elements": [ { "$type": "Assignment", "feature": "type", "operator": "=", "terminal": { "$type": "CrossReference", "type": { "$ref": "#/types@0" }, "terminal": { "$type": "RuleCall", "rule": { "$ref": "#/rules@63" }, "arguments": [] }, "deprecatedSyntax": false } }, { "$type": "Assignment", "feature": "inferredType", "operator": "=", "terminal": { "$type": "RuleCall", "rule": { "$ref": "#/rules@18" }, "arguments": [ { "$type": "NamedArgument", "value": { "$type": "BooleanLiteral", "true": true }, "calledByName": false } ] } } ] }, { "$type": "Group", "elements": [ { "$type": "Keyword", "value": "." }, { "$type": "Assignment", "feature": "feature", "operator": "=", "terminal": { "$type": "RuleCall", "rule": { "$ref": "#/rules@62" }, "arguments": [] } }, { "$type": "Assignment", "feature": "operator", "operator": "=", "terminal": { "$type": "Alternatives", "elements": [ { "$type": "Keyword", "value": "=" }, { "$type": "Keyword", "value": "+=" } ] } }, { "$type": "Keyword", "value": "current" } ], "cardinality": "?" }, { "$type": "Keyword", "value": "}" } ] }, "definesHiddenTokens": false, "entry": false, "fragment": false, "hiddenTokens": [], "parameters": [], "wildcard": false }, { "$type": "ParserRule", "name": "AbstractTerminal", "inferredType": { "$type": "InferredType", "name": "AbstractElement" }, "definition": { "$type": "Alternatives", "elements": [ { "$type": "RuleCall", "rule": { "$ref": "#/rules@30" }, "arguments": [] }, { "$type": "RuleCall", "rule": { "$ref": "#/rules@31" }, "arguments": [] }, { "$type": "RuleCall", "rule": { "$ref": "#/rules@47" }, "arguments": [] }, { "$type": "RuleCall", "rule": { "$ref": "#/rules@39" }, "arguments": [] }, { "$type": "RuleCall", "rule": { "$ref": "#/rules@40" }, "arguments": [] }, { "$type": "RuleCall", "rule": { "$ref": "#/rules@48" }, "arguments": [] }, { "$type": "RuleCall", "rule": { "$ref": "#/rules@29" }, "arguments": [] } ] }, "definesHiddenTokens": false, "entry": false, "fragment": false, "hiddenTokens": [], "parameters": [], "wildcard": false }, { "$type": "ParserRule", "name": "EndOfFile", "definition": { "$type": "Group", "elements": [ { "$type": "Action", "inferredType": { "$type": "InferredType", "name": "EndOfFile" } }, { "$type": "Keyword", "value": "EOF" } ] }, "definesHiddenTokens": false, "entry": false, "fragment": false, "hiddenTokens": [], "parameters": [], "wildcard": false }, { "$type": "ParserRule", "name": "Keyword", "definition": { "$type": "Assignment", "feature": "value", "operator": "=", "terminal": { "$type": "RuleCall", "rule": { "$ref": "#/rules@64" }, "arguments": [] } }, "definesHiddenTokens": false, "entry": false, "fragment": false, "hiddenTokens": [], "parameters": [], "wildcard": false }, { "$type": "ParserRule", "name": "RuleCall", "definition": { "$type": "Group", "elements": [ { "$type": "Assignment", "feature": "rule", "operator": "=", "terminal": { "$type": "CrossReference", "type": { "$ref": "#/rules@15" }, "terminal": { "$type": "RuleCall", "rule": { "$ref": "#/rules@63" }, "arguments": [] }, "deprecatedSyntax": false } }, { "$type": "Group", "elements": [ { "$type": "Keyword", "value": "<" }, { "$type": "Assignment", "feature": "arguments", "operator": "+=", "terminal": { "$type": "RuleCall", "rule": { "$ref": "#/rules@32" }, "arguments": [] } }, { "$type": "Group", "elements": [ { "$type": "Keyword", "value": "," }, { "$type": "Assignment", "feature": "arguments", "operator": "+=", "terminal": { "$type": "RuleCall", "rule": { "$ref": "#/rules@32" }, "arguments": [] } } ], "cardinality": "*" }, { "$type": "Keyword", "value": ">" } ], "cardinality": "?" } ] }, "definesHiddenTokens": false, "entry": false, "fragment": false, "hiddenTokens": [], "parameters": [], "wildcard": false }, { "$type": "ParserRule", "name": "NamedArgument", "definition": { "$type": "Group", "elements": [ { "$type": "Group", "elements": [ { "$type": "Assignment", "feature": "parameter", "operator": "=", "terminal": { "$type": "CrossReference", "type": { "$ref": "#/rules@20" }, "terminal": { "$type": "RuleCall", "rule": { "$ref": "#/rules@63" }, "arguments": [] }, "deprecatedSyntax": false } }, { "$type": "Assignment", "feature": "calledByName", "operator": "?=", "terminal": { "$type": "Keyword", "value": "=" } } ], "cardinality": "?" }, { "$type": "Assignment", "feature": "value", "operator": "=", "terminal": { "$type": "RuleCall", "rule": { "$ref": "#/rules@33" }, "arguments": [] } } ] }, "definesHiddenTokens": false, "entry": false, "fragment": false, "hiddenTokens": [], "parameters": [], "wildcard": false }, { "$type": "ParserRule", "name": "Disjunction", "inferredType": { "$type": "InferredType", "name": "Condition" }, "definition": { "$type": "Group", "elements": [ { "$type": "RuleCall", "rule": { "$ref": "#/rules@34" }, "arguments": [] }, { "$type": "Group", "elements": [ { "$type": "Action", "inferredType": { "$type": "InferredType", "name": "Disjunction" }, "feature": "left", "operator": "=" }, { "$type": "Keyword", "value": "|" }, { "$type": "Assignment", "feature": "right", "operator": "=", "terminal": { "$type": "RuleCall", "rule": { "$ref": "#/rules@34" }, "arguments": [] } } ], "cardinality": "*" } ] }, "definesHiddenTokens": false, "entry": false, "fragment": false, "hiddenTokens": [], "parameters": [], "wildcard": false }, { "$type": "ParserRule", "name": "Conjunction", "inferredType": { "$type": "InferredType", "name": "Condition" }, "definition": { "$type": "Group", "elements": [ { "$type": "RuleCall", "rule": { "$ref": "#/rules@35" }, "arguments": [] }, { "$type": "Group", "elements": [ { "$type": "Action", "inferredType": { "$type": "InferredType", "name": "Conjunction" }, "feature": "left", "operator": "=" }, { "$type": "Keyword", "value": "&" }, { "$type": "Assignment", "feature": "right", "operator": "=", "terminal": { "$type": "RuleCall", "rule": { "$ref": "#/rules@35" }, "arguments": [] } } ], "cardinality": "*" } ] }, "definesHiddenTokens": false, "entry": false, "fragment": false, "hiddenTokens": [], "parameters": [], "wildcard": false }, { "$type": "ParserRule", "name": "Negation", "inferredType": { "$type": "InferredType", "name": "Condition" }, "definition": { "$type": "Alternatives", "elements": [ { "$type": "RuleCall", "rule": { "$ref": "#/rules@36" }, "arguments": [] }, { "$type": "Group", "elements": [ { "$type": "Action", "inferredType": { "$type": "InferredType", "name": "Negation" } }, { "$type": "Keyword", "value": "!" }, { "$type": "Assignment", "feature": "value", "operator": "=", "terminal": { "$type": "RuleCall", "rule": { "$ref": "#/rules@35" }, "arguments": [] } } ] } ] }, "definesHiddenTokens": false, "entry": false, "fragment": false, "hiddenTokens": [], "parameters": [], "wildcard": false }, { "$type": "ParserRule", "name": "Atom", "inferredType": { "$type": "InferredType", "name": "Condition" }, "definition": { "$type": "Alternatives", "elements": [ { "$type": "RuleCall", "rule": { "$ref": "#/rules@38" }, "arguments": [] }, { "$type": "RuleCall", "rule": { "$ref": "#/rules@37" }, "arguments": [] }, { "$type": "RuleCall", "rule": { "$ref": "#/rules@6" }, "arguments": [] } ] }, "definesHiddenTokens": false, "entry": false, "fragment": false, "hiddenTokens": [], "parameters": [], "wildcard": false }, { "$type": "ParserRule", "name": "ParenthesizedCondition", "inferredType": { "$type": "InferredType", "name": "Condition" }, "definition": { "$type": "Group", "elements": [ { "$type": "Keyword", "value": "(" }, { "$type": "RuleCall", "rule": { "$ref": "#/rules@33" }, "arguments": [] }, { "$type": "Keyword", "value": ")" } ] }, "definesHiddenTokens": false, "entry": false, "fragment": false, "hiddenTokens": [], "parameters": [], "wildcard": false }, { "$type": "ParserRule", "name": "ParameterReference", "definition": { "$type": "Assignment", "feature": "parameter", "operator": "=", "terminal": { "$type": "CrossReference", "type": { "$ref": "#/rules@20" }, "terminal": { "$type": "RuleCall", "rule": { "$ref": "#/rules@63" }, "arguments": [] }, "deprecatedSyntax": false } }, "definesHiddenTokens": false, "entry": false, "fragment": false, "hiddenTokens": [], "parameters": [], "wildcard": false }, { "$type": "ParserRule", "name": "PredicatedKeyword", "inferredType": { "$type": "InferredType", "name": "Keyword" }, "definition": { "$type": "Group", "elements": [ { "$type": "Alternatives", "elements": [ { "$type": "Keyword", "value": "=>" }, { "$type": "Keyword", "value": "->" } ] }, { "$type": "Assignment", "feature": "value", "operator": "=", "terminal": { "$type": "RuleCall", "rule": { "$ref": "#/rules@64" }, "arguments": [] } } ] }, "definesHiddenTokens": false, "entry": false, "fragment": false, "hiddenTokens": [], "parameters": [], "wildcard": false }, { "$type": "ParserRule", "name": "PredicatedRuleCall", "inferredType": { "$type": "InferredType", "name": "RuleCall" }, "definition": { "$type": "Group", "elements": [ { "$type": "Alternatives", "elements": [ { "$type": "Keyword", "value": "=>" }, { "$type": "Keyword", "value": "->" } ] }, { "$type": "Assignment", "feature": "rule", "operator": "=", "terminal": { "$type": "CrossReference", "type": { "$ref": "#/rules@15" }, "terminal": { "$type": "RuleCall", "rule": { "$ref": "#/rules@63" }, "arguments": [] }, "deprecatedSyntax": false } }, { "$type": "Group", "elements": [ { "$type": "Keyword", "value": "<" }, { "$type": "Assignment", "feature": "arguments", "operator": "+=", "terminal": { "$type": "RuleCall", "rule": { "$ref": "#/rules@32" }, "arguments": [] } }, { "$type": "Group", "elements": [ { "$type": "Keyword", "value": "," }, { "$type": "Assignment", "feature": "arguments", "operator": "+=", "terminal": { "$type": "RuleCall", "rule": { "$ref": "#/rules@32" }, "arguments": [] } } ], "cardinality": "*" }, { "$type": "Keyword", "value": ">" } ], "cardinality": "?" } ] }, "definesHiddenTokens": false, "entry": false, "fragment": false, "hiddenTokens": [], "parameters": [], "wildcard": false }, { "$type": "ParserRule", "name": "Assignment", "inferredType": { "$type": "InferredType", "name": "AbstractElement" }, "definition": { "$type": "Group", "elements": [ { "$type": "Action", "inferredType": { "$type": "InferredType", "name": "Assignment" } }, { "$type": "Alternatives", "elements": [ { "$type": "Keyword", "value": "=>" }, { "$type": "Keyword", "value": "->" } ], "cardinality": "?" }, { "$type": "Assignment", "feature": "feature", "operator": "=", "terminal": { "$type": "RuleCall", "rule": { "$ref": "#/rules@62" }, "arguments": [] } }, { "$type": "Assignment", "feature": "operator", "operator": "=", "terminal": { "$type": "Alternatives", "elements": [ { "$type": "Keyword", "value": "+=" }, { "$type": "Keyword", "value": "=" }, { "$type": "Keyword", "value": "?=" } ] } }, { "$type": "Assignment", "feature": "terminal", "operator": "=", "terminal": { "$type": "RuleCall", "rule": { "$ref": "#/rules@42" }, "arguments": [] } } ] }, "definesHiddenTokens": false, "entry": false, "fragment": false, "hiddenTokens": [], "parameters": [], "wildcard": false }, { "$type": "ParserRule", "name": "AssignableTerminal", "inferredType": { "$type": "InferredType", "name": "AbstractElement" }, "definition": { "$type": "Alternatives", "elements": [ { "$type": "RuleCall", "rule": { "$ref": "#/rules@30" }, "arguments": [] }, { "$type": "RuleCall", "rule": { "$ref": "#/rules@31" }, "arguments": [] }, { "$type": "RuleCall", "rule": { "$ref": "#/rules@43" }, "arguments": [] }, { "$type": "RuleCall", "rule": { "$ref": "#/rules@45" }, "arguments": [] } ] }, "definesHiddenTokens": false, "entry": false, "fragment": false, "hiddenTokens": [], "parameters": [], "wildcard": false }, { "$type": "ParserRule", "name": "ParenthesizedAssignableElement", "inferredType": { "$type": "InferredType", "name": "AbstractElement" }, "definition": { "$type": "Group", "elements": [ { "$type": "Keyword", "value": "(" }, { "$type": "RuleCall", "rule": { "$ref": "#/rules@44" }, "arguments": [] }, { "$type": "Keyword", "value": ")" } ] }, "definesHiddenTokens": false, "entry": false, "fragment": false, "hiddenTokens": [], "parameters": [], "wildcard": false }, { "$type": "ParserRule", "name": "AssignableAlternatives", "inferredType": { "$type": "InferredType", "name": "AbstractElement" }, "definition": { "$type": "Group", "elements": [ { "$type": "RuleCall", "rule": { "$ref": "#/rules@42" }, "arguments": [] }, { "$type": "Group", "elements": [ { "$type": "Action", "inferredType": { "$type": "InferredType", "name": "Alternatives" }, "feature": "elements", "operator": "+=" }, { "$type": "Group", "elements": [ { "$type": "Keyword", "value": "|" }, { "$type": "Assignment", "feature": "elements", "operator": "+=", "terminal": { "$type": "RuleCall", "rule": { "$ref": "#/rules@42" }, "arguments": [] } } ], "cardinality": "+" } ], "cardinality": "?" } ] }, "definesHiddenTokens": false, "entry": false, "fragment": false, "hiddenTokens": [], "parameters": [], "wildcard": false }, { "$type": "ParserRule", "name": "CrossReference", "inferredType": { "$type": "InferredType", "name": "AbstractElement" }, "definition": { "$type": "Group", "elements": [ { "$type": "Action", "inferredType": { "$type": "InferredType", "name": "CrossReference" } }, { "$type": "Keyword", "value": "[" }, { "$type": "Assignment", "feature": "type", "operator": "=", "terminal": { "$type": "CrossReference", "type": { "$ref": "#/types@0" }, "deprecatedSyntax": false } }, { "$type": "Group", "elements": [ { "$type": "Alternatives", "elements": [ { "$type": "Assignment", "feature": "deprecatedSyntax", "operator": "?=", "terminal": { "$type": "Keyword", "value": "|" } }, { "$type": "Keyword", "value": ":" } ] }, { "$type": "Assignment", "feature": "terminal", "operator": "=", "terminal": { "$type": "RuleCall", "rule": { "$ref": "#/rules@46" }, "arguments": [] } } ], "cardinality": "?" }, { "$type": "Keyword", "value": "]" } ] }, "definesHiddenTokens": false, "entry": false, "fragment": false, "hiddenTokens": [], "parameters": [], "wildcard": false }, { "$type": "ParserRule", "name": "CrossReferenceableTerminal", "inferredType": { "$type": "InferredType", "name": "AbstractElement" }, "definition": { "$type": "Alternatives", "elements": [ { "$type": "RuleCall", "rule": { "$ref": "#/rules@30" }, "arguments": [] }, { "$type": "RuleCall", "rule": { "$ref": "#/rules@31" }, "arguments": [] } ] }, "definesHiddenTokens": false, "entry": false, "fragment": false, "hiddenTokens": [], "parameters": [], "wildcard": false }, { "$type": "ParserRule", "name": "ParenthesizedElement", "inferredType": { "$type": "InferredType", "name": "AbstractElement" }, "definition": { "$type": "Group", "elements": [ { "$type": "Keyword", "value": "(" }, { "$type": "RuleCall", "rule": { "$ref": "#/rules@21" }, "arguments": [] }, { "$type": "Keyword", "value": ")" } ] }, "definesHiddenTokens": false, "entry": false, "fragment": false, "hiddenTokens": [], "parameters": [], "wildcard": false }, { "$type": "ParserRule", "name": "PredicatedGroup", "inferredType": { "$type": "InferredType", "name": "Group" }, "definition": { "$type": "Group", "elements": [ { "$type": "Alternatives", "elements": [ { "$type": "Keyword", "value": "=>" }, { "$type": "Keyword", "value": "->" } ] }, { "$type": "Keyword", "value": "(" }, { "$type": "Assignment", "feature": "elements", "operator": "+=", "terminal": { "$type": "RuleCall", "rule": { "$ref": "#/rules@21" }, "arguments": [] } }, { "$type": "Keyword", "value": ")" } ] }, "definesHiddenTokens": false, "entry": false, "fragment": false, "hiddenTokens": [], "parameters": [], "wildcard": false }, { "$type": "ParserRule", "name": "ReturnType", "definition": { "$type": "Assignment", "feature": "name", "operator": "=", "terminal": { "$type": "Alternatives", "elements": [ { "$type": "RuleCall", "rule": { "$ref": "#/rules@13" }, "arguments": [] }, { "$type": "RuleCall", "rule": { "$ref": "#/rules@63" }, "arguments": [] } ] } }, "definesHiddenTokens": false, "entry": false, "fragment": false, "hiddenTokens": [], "parameters": [], "wildcard": false }, { "$type": "ParserRule", "name": "TerminalRule", "definition": { "$type": "Group", "elements": [ { "$type": "Assignment", "feature": "hidden", "operator": "?=", "terminal": { "$type": "Keyword", "value": "hidden" }, "cardinality": "?" }, { "$type": "Keyword", "value": "terminal" }, { "$type": "Alternatives", "elements": [ { "$type": "Group", "elements": [ { "$type": "Assignment", "feature": "fragment", "operator": "?=", "terminal": { "$type": "Keyword", "value": "fragment" } }, { "$type": "Assignment", "feature": "name", "operator": "=", "terminal": { "$type": "RuleCall", "rule": { "$ref": "#/rules@63" }, "arguments": [] } } ] }, { "$type": "Group", "elements": [ { "$type": "Assignment", "feature": "name", "operator": "=", "terminal": { "$type": "RuleCall", "rule": { "$ref": "#/rules@63" }, "arguments": [] } }, { "$type": "Group", "elements": [ { "$type": "Keyword", "value": "returns" }, { "$type": "Assignment", "feature": "type", "operator": "=", "terminal": { "$type": "RuleCall", "rule": { "$ref": "#/rules@49" }, "arguments": [] } } ], "cardinality": "?" } ] } ] }, { "$type": "Keyword", "value": ":" }, { "$type": "Assignment", "feature": "definition", "operator": "=", "terminal": { "$type": "RuleCall", "rule": { "$ref": "#/rules@51" }, "arguments": [] } }, { "$type": "Keyword", "value": ";" } ] }, "definesHiddenTokens": false, "entry": false, "fragment": false, "hiddenTokens": [], "parameters": [], "wildcard": false }, { "$type": "ParserRule", "name": "TerminalAlternatives", "inferredType": { "$type": "InferredType", "name": "AbstractElement" }, "definition": { "$type": "Group", "elements": [ { "$type": "RuleCall", "rule": { "$ref": "#/rules@52" }, "arguments": [] }, { "$type": "Group", "elements": [ { "$type": "Action", "inferredType": { "$type": "InferredType", "name": "TerminalAlternatives" }, "feature": "elements", "operator": "+=" }, { "$type": "Keyword", "value": "|" }, { "$type": "Assignment", "feature": "elements", "operator": "+=", "terminal": { "$type": "RuleCall", "rule": { "$ref": "#/rules@52" }, "arguments": [] } } ], "cardinality": "*" } ] }, "definesHiddenTokens": false, "entry": false, "fragment": false, "hiddenTokens": [], "parameters": [], "wildcard": false }, { "$type": "ParserRule", "name": "TerminalGroup", "inferredType": { "$type": "InferredType", "name": "AbstractElement" }, "definition": { "$type": "Group", "elements": [ { "$type": "RuleCall", "rule": { "$ref": "#/rules@53" }, "arguments": [] }, { "$type": "Group", "elements": [ { "$type": "Action", "inferredType": { "$type": "InferredType", "name": "TerminalGroup" }, "feature": "elements", "operator": "+=" }, { "$type": "Assignment", "feature": "elements", "operator": "+=", "terminal": { "$type": "RuleCall", "rule": { "$ref": "#/rules@53" }, "arguments": [] }, "cardinality": "+" } ], "cardinality": "?" } ] }, "definesHiddenTokens": false, "entry": false, "fragment": false, "hiddenTokens": [], "parameters": [], "wildcard": false }, { "$type": "ParserRule", "name": "TerminalToken", "inferredType": { "$type": "InferredType", "name": "AbstractElement" }, "definition": { "$type": "Group", "elements": [ { "$type": "RuleCall", "rule": { "$ref": "#/rules@54" }, "arguments": [] }, { "$type": "Assignment", "feature": "cardinality", "operator": "=", "terminal": { "$type": "Alternatives", "elements": [ { "$type": "Keyword", "value": "?" }, { "$type": "Keyword", "value": "*" }, { "$type": "Keyword", "value": "+" } ] }, "cardinality": "?" } ] }, "definesHiddenTokens": false, "entry": false, "fragment": false, "hiddenTokens": [], "parameters": [], "wildcard": false }, { "$type": "ParserRule", "name": "TerminalTokenElement", "inferredType": { "$type": "InferredType", "name": "AbstractElement" }, "definition": { "$type": "Alternatives", "elements": [ { "$type": "RuleCall", "rule": { "$ref": "#/rules@61" }, "arguments": [] }, { "$type": "RuleCall", "rule": { "$ref": "#/rules@56" }, "arguments": [] }, { "$type": "RuleCall", "rule": { "$ref": "#/rules@55" }, "arguments": [] }, { "$type": "RuleCall", "rule": { "$ref": "#/rules@57" }, "arguments": [] }, { "$type": "RuleCall", "rule": { "$ref": "#/rules@58" }, "arguments": [] }, { "$type": "RuleCall", "rule": { "$ref": "#/rules@59" }, "arguments": [] }, { "$type": "RuleCall", "rule": { "$ref": "#/rules@60" }, "arguments": [] } ] }, "definesHiddenTokens": false, "entry": false, "fragment": false, "hiddenTokens": [], "parameters": [], "wildcard": false }, { "$type": "ParserRule", "name": "ParenthesizedTerminalElement", "inferredType": { "$type": "InferredType", "name": "AbstractElement" }, "definition": { "$type": "Group", "elements": [ { "$type": "Keyword", "value": "(" }, { "$type": "Assignment", "feature": "lookahead", "operator": "=", "terminal": { "$type": "Alternatives", "elements": [ { "$type": "Keyword", "value": "?=" }, { "$type": "Keyword", "value": "?!" }, { "$type": "Keyword", "value": "?<=" }, { "$type": "Keyword", "value": "?" }, { "$type": "Assignment", "feature": "terminal", "operator": "=", "terminal": { "$type": "RuleCall", "rule": { "$ref": "#/rules@54" }, "arguments": [] } } ] }, "definesHiddenTokens": false, "entry": false, "fragment": false, "hiddenTokens": [], "parameters": [], "wildcard": false }, { "$type": "ParserRule", "name": "RegexToken", "inferredType": { "$type": "InferredType", "name": "AbstractElement" }, "definition": { "$type": "Group", "elements": [ { "$type": "Action", "inferredType": { "$type": "InferredType", "name": "RegexToken" } }, { "$type": "Assignment", "feature": "regex", "operator": "=", "terminal": { "$type": "RuleCall", "rule": { "$ref": "#/rules@66" }, "arguments": [] } } ] }, "definesHiddenTokens": false, "entry": false, "fragment": false, "hiddenTokens": [], "parameters": [], "wildcard": false }, { "$type": "ParserRule", "name": "Wildcard", "inferredType": { "$type": "InferredType", "name": "AbstractElement" }, "definition": { "$type": "Group", "elements": [ { "$type": "Action", "inferredType": { "$type": "InferredType", "name": "Wildcard" } }, { "$type": "Keyword", "value": "." } ] }, "definesHiddenTokens": false, "entry": false, "fragment": false, "hiddenTokens": [], "parameters": [], "wildcard": false }, { "$type": "ParserRule", "name": "CharacterRange", "inferredType": { "$type": "InferredType", "name": "AbstractElement" }, "definition": { "$type": "Group", "elements": [ { "$type": "Action", "inferredType": { "$type": "InferredType", "name": "CharacterRange" } }, { "$type": "Assignment", "feature": "left", "operator": "=", "terminal": { "$type": "RuleCall", "rule": { "$ref": "#/rules@30" }, "arguments": [] } }, { "$type": "Group", "elements": [ { "$type": "Keyword", "value": ".." }, { "$type": "Assignment", "feature": "right", "operator": "=", "terminal": { "$type": "RuleCall", "rule": { "$ref": "#/rules@30" }, "arguments": [] } } ], "cardinality": "?" } ] }, "definesHiddenTokens": false, "entry": false, "fragment": false, "hiddenTokens": [], "parameters": [], "wildcard": false }, { "$type": "ParserRule", "name": "FeatureName", "dataType": "string", "definition": { "$type": "Alternatives", "elements": [ { "$type": "Keyword", "value": "current" }, { "$type": "Keyword", "value": "entry" }, { "$type": "Keyword", "value": "extends" }, { "$type": "Keyword", "value": "false" }, { "$type": "Keyword", "value": "fragment" }, { "$type": "Keyword", "value": "grammar" }, { "$type": "Keyword", "value": "hidden" }, { "$type": "Keyword", "value": "import" }, { "$type": "Keyword", "value": "interface" }, { "$type": "Keyword", "value": "returns" }, { "$type": "Keyword", "value": "terminal" }, { "$type": "Keyword", "value": "true" }, { "$type": "Keyword", "value": "type" }, { "$type": "Keyword", "value": "infer" }, { "$type": "Keyword", "value": "infers" }, { "$type": "Keyword", "value": "with" }, { "$type": "RuleCall", "rule": { "$ref": "#/rules@13" }, "arguments": [] }, { "$type": "RuleCall", "rule": { "$ref": "#/rules@63" }, "arguments": [] } ] }, "definesHiddenTokens": false, "entry": false, "fragment": false, "hiddenTokens": [], "parameters": [], "wildcard": false }, { "$type": "TerminalRule", "name": "ID", "definition": { "$type": "RegexToken", "regex": "/\\\\^?[_a-zA-Z][\\\\w_]*/" }, "fragment": false, "hidden": false }, { "$type": "TerminalRule", "name": "STRING", "definition": { "$type": "RegexToken", "regex": "/\\"(\\\\\\\\.|[^\\"\\\\\\\\])*\\"|'(\\\\\\\\.|[^'\\\\\\\\])*'/" }, "fragment": false, "hidden": false }, { "$type": "TerminalRule", "name": "NUMBER", "type": { "$type": "ReturnType", "name": "number" }, "definition": { "$type": "RegexToken", "regex": "/NaN|-?((\\\\d*\\\\.\\\\d+|\\\\d+)([Ee][+-]?\\\\d+)?|Infinity)/" }, "fragment": false, "hidden": false }, { "$type": "TerminalRule", "name": "RegexLiteral", "type": { "$type": "ReturnType", "name": "string" }, "definition": { "$type": "RegexToken", "regex": "/\\\\/(?![*+?])(?:[^\\\\r\\\\n\\\\[/\\\\\\\\]|\\\\\\\\.|\\\\[(?:[^\\\\r\\\\n\\\\]\\\\\\\\]|\\\\\\\\.)*\\\\])+\\\\/[a-z]*/" }, "fragment": false, "hidden": false }, { "$type": "TerminalRule", "hidden": true, "name": "WS", "definition": { "$type": "RegexToken", "regex": "/\\\\s+/" }, "fragment": false }, { "$type": "TerminalRule", "hidden": true, "name": "ML_COMMENT", "definition": { "$type": "RegexToken", "regex": "/\\\\/\\\\*[\\\\s\\\\S]*?\\\\*\\\\//" }, "fragment": false }, { "$type": "TerminalRule", "hidden": true, "name": "SL_COMMENT", "definition": { "$type": "RegexToken", "regex": "/\\\\/\\\\/[^\\\\n\\\\r]*/" }, "fragment": false } ], "types": [ { "$type": "Type", "name": "AbstractType", "type": { "$type": "UnionType", "types": [ { "$type": "SimpleType", "typeRef": { "$ref": "#/rules@1" } }, { "$type": "SimpleType", "typeRef": { "$ref": "#/rules@14" } }, { "$type": "SimpleType", "typeRef": { "$ref": "#/rules@17" } }, { "$type": "SimpleType", "typeRef": { "$ref": "#/rules@18" } } ] } } ], "definesHiddenTokens": false, "hiddenTokens": [], "imports": [], "interfaces": [], "usedGrammars": [] }`)); //# sourceMappingURL=grammar.js.map