3934 lines
102 KiB
JavaScript
3934 lines
102 KiB
JavaScript
/******************************************************************************
|
|
* 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": "?<!"
|
|
}
|
|
]
|
|
},
|
|
"cardinality": "?"
|
|
},
|
|
{
|
|
"$type": "RuleCall",
|
|
"rule": {
|
|
"$ref": "#/rules@51"
|
|
},
|
|
"arguments": []
|
|
},
|
|
{
|
|
"$type": "Keyword",
|
|
"value": ")"
|
|
}
|
|
]
|
|
},
|
|
"definesHiddenTokens": false,
|
|
"entry": false,
|
|
"fragment": false,
|
|
"hiddenTokens": [],
|
|
"parameters": [],
|
|
"wildcard": false
|
|
},
|
|
{
|
|
"$type": "ParserRule",
|
|
"name": "TerminalRuleCall",
|
|
"inferredType": {
|
|
"$type": "InferredType",
|
|
"name": "AbstractElement"
|
|
},
|
|
"definition": {
|
|
"$type": "Group",
|
|
"elements": [
|
|
{
|
|
"$type": "Action",
|
|
"inferredType": {
|
|
"$type": "InferredType",
|
|
"name": "TerminalRuleCall"
|
|
}
|
|
},
|
|
{
|
|
"$type": "Assignment",
|
|
"feature": "rule",
|
|
"operator": "=",
|
|
"terminal": {
|
|
"$type": "CrossReference",
|
|
"type": {
|
|
"$ref": "#/rules@50"
|
|
},
|
|
"terminal": {
|
|
"$type": "RuleCall",
|
|
"rule": {
|
|
"$ref": "#/rules@63"
|
|
},
|
|
"arguments": []
|
|
},
|
|
"deprecatedSyntax": false
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"definesHiddenTokens": false,
|
|
"entry": false,
|
|
"fragment": false,
|
|
"hiddenTokens": [],
|
|
"parameters": [],
|
|
"wildcard": false
|
|
},
|
|
{
|
|
"$type": "ParserRule",
|
|
"name": "NegatedToken",
|
|
"inferredType": {
|
|
"$type": "InferredType",
|
|
"name": "AbstractElement"
|
|
},
|
|
"definition": {
|
|
"$type": "Group",
|
|
"elements": [
|
|
{
|
|
"$type": "Action",
|
|
"inferredType": {
|
|
"$type": "InferredType",
|
|
"name": "NegatedToken"
|
|
}
|
|
},
|
|
{
|
|
"$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": "UntilToken",
|
|
"inferredType": {
|
|
"$type": "InferredType",
|
|
"name": "AbstractElement"
|
|
},
|
|
"definition": {
|
|
"$type": "Group",
|
|
"elements": [
|
|
{
|
|
"$type": "Action",
|
|
"inferredType": {
|
|
"$type": "InferredType",
|
|
"name": "UntilToken"
|
|
}
|
|
},
|
|
{
|
|
"$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
|