/****************************************************************************** * This file was generated by langium-cli 4.3.0. * DO NOT EDIT MANUALLY! ******************************************************************************/ import type { Grammar } from 'langium'; import { loadGrammarFromJson } from 'langium'; let loadedDomainModelGrammar: Grammar | undefined; export const DomainModelGrammar = (): Grammar => loadedDomainModelGrammar ?? (loadedDomainModelGrammar = loadGrammarFromJson(`{ "$type": "Grammar", "isDeclared": true, "name": "DomainModel", "rules": [ { "$type": "ParserRule", "entry": true, "name": "Domainmodel", "definition": { "$type": "Assignment", "feature": "elements", "operator": "+=", "terminal": { "$type": "RuleCall", "rule": { "$ref": "#/rules@1" }, "arguments": [] }, "cardinality": "*" }, "fragment": false, "parameters": [] }, { "$type": "ParserRule", "name": "AbstractElement", "definition": { "$type": "Alternatives", "elements": [ { "$type": "RuleCall", "rule": { "$ref": "#/rules@2" }, "arguments": [] }, { "$type": "RuleCall", "rule": { "$ref": "#/rules@3" }, "arguments": [] } ] }, "entry": false, "fragment": false, "parameters": [] }, { "$type": "ParserRule", "name": "PackageDeclaration", "definition": { "$type": "Group", "elements": [ { "$type": "Keyword", "value": "package" }, { "$type": "Assignment", "feature": "name", "operator": "=", "terminal": { "$type": "RuleCall", "rule": { "$ref": "#/rules@7" }, "arguments": [] } }, { "$type": "Keyword", "value": "{" }, { "$type": "Assignment", "feature": "elements", "operator": "+=", "terminal": { "$type": "RuleCall", "rule": { "$ref": "#/rules@1" }, "arguments": [] }, "cardinality": "*" }, { "$type": "Keyword", "value": "}" } ] }, "entry": false, "fragment": false, "parameters": [] }, { "$type": "ParserRule", "name": "Type", "definition": { "$type": "Alternatives", "elements": [ { "$type": "RuleCall", "rule": { "$ref": "#/rules@4" }, "arguments": [] }, { "$type": "RuleCall", "rule": { "$ref": "#/rules@5" }, "arguments": [] } ] }, "entry": false, "fragment": false, "parameters": [] }, { "$type": "ParserRule", "name": "DataType", "definition": { "$type": "Group", "elements": [ { "$type": "Keyword", "value": "datatype" }, { "$type": "Assignment", "feature": "name", "operator": "=", "terminal": { "$type": "RuleCall", "rule": { "$ref": "#/rules@9" }, "arguments": [] } } ] }, "entry": false, "fragment": false, "parameters": [] }, { "$type": "ParserRule", "name": "Entity", "definition": { "$type": "Group", "elements": [ { "$type": "Keyword", "value": "entity" }, { "$type": "Assignment", "feature": "name", "operator": "=", "terminal": { "$type": "RuleCall", "rule": { "$ref": "#/rules@9" }, "arguments": [] } }, { "$type": "Group", "elements": [ { "$type": "Keyword", "value": "extends" }, { "$type": "Assignment", "feature": "superType", "operator": "=", "terminal": { "$type": "CrossReference", "isMulti": true, "type": { "$ref": "#/rules@5" }, "terminal": { "$type": "RuleCall", "rule": { "$ref": "#/rules@7" }, "arguments": [] }, "deprecatedSyntax": false } } ], "cardinality": "?" }, { "$type": "Keyword", "value": "{" }, { "$type": "Assignment", "feature": "features", "operator": "+=", "terminal": { "$type": "RuleCall", "rule": { "$ref": "#/rules@6" }, "arguments": [] }, "cardinality": "*" }, { "$type": "Keyword", "value": "}" } ] }, "entry": false, "fragment": false, "parameters": [] }, { "$type": "ParserRule", "name": "Feature", "definition": { "$type": "Group", "elements": [ { "$type": "Assignment", "feature": "many", "operator": "?=", "terminal": { "$type": "Keyword", "value": "many" }, "cardinality": "?" }, { "$type": "Assignment", "feature": "name", "operator": "=", "terminal": { "$type": "RuleCall", "rule": { "$ref": "#/rules@9" }, "arguments": [] } }, { "$type": "Keyword", "value": ":" }, { "$type": "Assignment", "feature": "type", "operator": "=", "terminal": { "$type": "CrossReference", "type": { "$ref": "#/rules@3" }, "terminal": { "$type": "RuleCall", "rule": { "$ref": "#/rules@7" }, "arguments": [] }, "deprecatedSyntax": false, "isMulti": false } } ] }, "entry": false, "fragment": false, "parameters": [] }, { "$type": "ParserRule", "name": "QualifiedName", "dataType": "string", "definition": { "$type": "Group", "elements": [ { "$type": "RuleCall", "rule": { "$ref": "#/rules@9" }, "arguments": [] }, { "$type": "Group", "elements": [ { "$type": "Keyword", "value": "." }, { "$type": "RuleCall", "rule": { "$ref": "#/rules@9" }, "arguments": [] } ], "cardinality": "*" } ] }, "entry": false, "fragment": false, "parameters": [] }, { "$type": "TerminalRule", "hidden": true, "name": "WS", "definition": { "$type": "RegexToken", "regex": "/\\\\s+/", "parenthesized": false }, "fragment": false }, { "$type": "TerminalRule", "name": "ID", "definition": { "$type": "RegexToken", "regex": "/[_a-zA-Z][\\\\w_]*/", "parenthesized": false }, "fragment": false, "hidden": false }, { "$type": "TerminalRule", "hidden": true, "name": "ML_COMMENT", "definition": { "$type": "RegexToken", "regex": "/\\\\/\\\\*[\\\\s\\\\S]*?\\\\*\\\\//", "parenthesized": false }, "fragment": false }, { "$type": "TerminalRule", "hidden": true, "name": "SL_COMMENT", "definition": { "$type": "RegexToken", "regex": "/\\\\/\\\\/[^\\\\n\\\\r]*/", "parenthesized": false }, "fragment": false } ], "imports": [], "interfaces": [], "types": [] }`));