agentlang
Version:
The easiest way to build the most reliable AI agents - enterprise-grade teams of AI agents that collaborate with each other and humans
2,014 lines (2,013 loc) • 171 kB
JavaScript
/******************************************************************************
* This file was generated by langium-cli 3.5.2.
* DO NOT EDIT MANUALLY!
******************************************************************************/
import { loadGrammarFromJson } from 'langium';
let loadedAgentlangGrammar;
export const AgentlangGrammar = () => loadedAgentlangGrammar !== null && loadedAgentlangGrammar !== void 0 ? loadedAgentlangGrammar : (loadedAgentlangGrammar = loadGrammarFromJson(`{
"$type": "Grammar",
"isDeclared": true,
"name": "Agentlang",
"rules": [
{
"$type": "ParserRule",
"entry": true,
"name": "ModuleDefinition",
"definition": {
"$type": "Group",
"elements": [
{
"$type": "Keyword",
"value": "module"
},
{
"$type": "Assignment",
"feature": "name",
"operator": "=",
"terminal": {
"$type": "RuleCall",
"rule": {
"$ref": "#/rules@113"
},
"arguments": []
}
},
{
"$type": "Assignment",
"feature": "imports",
"operator": "+=",
"terminal": {
"$type": "RuleCall",
"rule": {
"$ref": "#/rules@1"
},
"arguments": []
},
"cardinality": "*"
},
{
"$type": "Assignment",
"feature": "defs",
"operator": "+=",
"terminal": {
"$type": "RuleCall",
"rule": {
"$ref": "#/rules@2"
},
"arguments": []
},
"cardinality": "*"
}
]
},
"definesHiddenTokens": false,
"fragment": false,
"hiddenTokens": [],
"parameters": [],
"wildcard": false
},
{
"$type": "ParserRule",
"name": "Import",
"definition": {
"$type": "Group",
"elements": [
{
"$type": "Keyword",
"value": "import"
},
{
"$type": "Assignment",
"feature": "path",
"operator": "=",
"terminal": {
"$type": "RuleCall",
"rule": {
"$ref": "#/rules@117"
},
"arguments": []
}
},
{
"$type": "Keyword",
"value": "@as"
},
{
"$type": "Assignment",
"feature": "name",
"operator": "=",
"terminal": {
"$type": "RuleCall",
"rule": {
"$ref": "#/rules@115"
},
"arguments": []
}
}
]
},
"definesHiddenTokens": false,
"entry": false,
"fragment": false,
"hiddenTokens": [],
"parameters": [],
"wildcard": false
},
{
"$type": "ParserRule",
"name": "Definition",
"definition": {
"$type": "Alternatives",
"elements": [
{
"$type": "RuleCall",
"rule": {
"$ref": "#/rules@4"
},
"arguments": []
},
{
"$type": "RuleCall",
"rule": {
"$ref": "#/rules@16"
},
"arguments": []
},
{
"$type": "RuleCall",
"rule": {
"$ref": "#/rules@47"
},
"arguments": []
},
{
"$type": "RuleCall",
"rule": {
"$ref": "#/rules@51"
},
"arguments": []
},
{
"$type": "RuleCall",
"rule": {
"$ref": "#/rules@3"
},
"arguments": []
},
{
"$type": "RuleCall",
"rule": {
"$ref": "#/rules@65"
},
"arguments": []
},
{
"$type": "RuleCall",
"rule": {
"$ref": "#/rules@66"
},
"arguments": []
},
{
"$type": "RuleCall",
"rule": {
"$ref": "#/rules@84"
},
"arguments": []
},
{
"$type": "RuleCall",
"rule": {
"$ref": "#/rules@69"
},
"arguments": []
},
{
"$type": "RuleCall",
"rule": {
"$ref": "#/rules@74"
},
"arguments": []
},
{
"$type": "RuleCall",
"rule": {
"$ref": "#/rules@79"
},
"arguments": []
},
{
"$type": "RuleCall",
"rule": {
"$ref": "#/rules@80"
},
"arguments": []
},
{
"$type": "RuleCall",
"rule": {
"$ref": "#/rules@81"
},
"arguments": []
},
{
"$type": "RuleCall",
"rule": {
"$ref": "#/rules@82"
},
"arguments": []
}
]
},
"definesHiddenTokens": false,
"entry": false,
"fragment": false,
"hiddenTokens": [],
"parameters": [],
"wildcard": false
},
{
"$type": "ParserRule",
"name": "StandaloneStatement",
"definition": {
"$type": "Assignment",
"feature": "stmt",
"operator": "=",
"terminal": {
"$type": "RuleCall",
"rule": {
"$ref": "#/rules@53"
},
"arguments": []
}
},
"definesHiddenTokens": false,
"entry": false,
"fragment": false,
"hiddenTokens": [],
"parameters": [],
"wildcard": false
},
{
"$type": "ParserRule",
"name": "SchemaDefinition",
"definition": {
"$type": "Alternatives",
"elements": [
{
"$type": "RuleCall",
"rule": {
"$ref": "#/rules@11"
},
"arguments": []
},
{
"$type": "RuleCall",
"rule": {
"$ref": "#/rules@12"
},
"arguments": []
},
{
"$type": "RuleCall",
"rule": {
"$ref": "#/rules@13"
},
"arguments": []
},
{
"$type": "RuleCall",
"rule": {
"$ref": "#/rules@14"
},
"arguments": []
}
]
},
"definesHiddenTokens": false,
"entry": false,
"fragment": false,
"hiddenTokens": [],
"parameters": [],
"wildcard": false
},
{
"$type": "ParserRule",
"name": "PropertyDefinition",
"definition": {
"$type": "Alternatives",
"elements": [
{
"$type": "Group",
"elements": [
{
"$type": "Assignment",
"feature": "name",
"operator": "=",
"terminal": {
"$type": "RuleCall",
"rule": {
"$ref": "#/rules@111"
},
"arguments": []
}
},
{
"$type": "Keyword",
"value": "("
},
{
"$type": "Assignment",
"feature": "value",
"operator": "=",
"terminal": {
"$type": "RuleCall",
"rule": {
"$ref": "#/rules@7"
},
"arguments": []
}
},
{
"$type": "Keyword",
"value": ")"
}
]
},
{
"$type": "Assignment",
"feature": "name",
"operator": "=",
"terminal": {
"$type": "RuleCall",
"rule": {
"$ref": "#/rules@111"
},
"arguments": []
}
}
]
},
"definesHiddenTokens": false,
"entry": false,
"fragment": false,
"hiddenTokens": [],
"parameters": [],
"wildcard": false
},
{
"$type": "ParserRule",
"name": "KvPair",
"definition": {
"$type": "Alternatives",
"elements": [
{
"$type": "Assignment",
"feature": "value",
"operator": "=",
"terminal": {
"$type": "RuleCall",
"rule": {
"$ref": "#/rules@45"
},
"arguments": []
}
},
{
"$type": "Group",
"elements": [
{
"$type": "Assignment",
"feature": "key",
"operator": "=",
"terminal": {
"$type": "RuleCall",
"rule": {
"$ref": "#/rules@115"
},
"arguments": []
}
},
{
"$type": "Keyword",
"value": ":"
},
{
"$type": "Assignment",
"feature": "value",
"operator": "=",
"terminal": {
"$type": "RuleCall",
"rule": {
"$ref": "#/rules@45"
},
"arguments": []
}
}
]
}
]
},
"definesHiddenTokens": false,
"entry": false,
"fragment": false,
"hiddenTokens": [],
"parameters": [],
"wildcard": false
},
{
"$type": "ParserRule",
"name": "KvPairs",
"definition": {
"$type": "Alternatives",
"elements": [
{
"$type": "Assignment",
"feature": "pairs",
"operator": "+=",
"terminal": {
"$type": "RuleCall",
"rule": {
"$ref": "#/rules@6"
},
"arguments": []
}
},
{
"$type": "Group",
"elements": [
{
"$type": "Assignment",
"feature": "pairs",
"operator": "+=",
"terminal": {
"$type": "RuleCall",
"rule": {
"$ref": "#/rules@6"
},
"arguments": []
}
},
{
"$type": "Keyword",
"value": ","
},
{
"$type": "Assignment",
"feature": "pairs",
"operator": "+=",
"terminal": {
"$type": "RuleCall",
"rule": {
"$ref": "#/rules@6"
},
"arguments": []
}
}
]
}
]
},
"definesHiddenTokens": false,
"entry": false,
"fragment": false,
"hiddenTokens": [],
"parameters": [],
"wildcard": false
},
{
"$type": "ParserRule",
"name": "RecordSchemaDefinition",
"definition": {
"$type": "Alternatives",
"elements": [
{
"$type": "Group",
"elements": [
{
"$type": "Keyword",
"value": "{"
},
{
"$type": "Keyword",
"value": "}"
}
]
},
{
"$type": "Group",
"elements": [
{
"$type": "Keyword",
"value": "{"
},
{
"$type": "Group",
"elements": [
{
"$type": "Assignment",
"feature": "attributes",
"operator": "+=",
"terminal": {
"$type": "RuleCall",
"rule": {
"$ref": "#/rules@19"
},
"arguments": []
}
},
{
"$type": "Group",
"elements": [
{
"$type": "Keyword",
"value": ","
},
{
"$type": "Assignment",
"feature": "attributes",
"operator": "+=",
"terminal": {
"$type": "RuleCall",
"rule": {
"$ref": "#/rules@19"
},
"arguments": []
}
}
],
"cardinality": "*"
}
],
"cardinality": "+"
},
{
"$type": "Group",
"elements": [
{
"$type": "Keyword",
"value": ","
},
{
"$type": "Assignment",
"feature": "extras",
"operator": "+=",
"terminal": {
"$type": "RuleCall",
"rule": {
"$ref": "#/rules@9"
},
"arguments": []
}
},
{
"$type": "Group",
"elements": [
{
"$type": "Keyword",
"value": ","
},
{
"$type": "Assignment",
"feature": "extras",
"operator": "+=",
"terminal": {
"$type": "RuleCall",
"rule": {
"$ref": "#/rules@9"
},
"arguments": []
}
}
],
"cardinality": "*"
}
],
"cardinality": "?"
},
{
"$type": "Keyword",
"value": "}"
}
]
}
]
},
"definesHiddenTokens": false,
"entry": false,
"fragment": false,
"hiddenTokens": [],
"parameters": [],
"wildcard": false
},
{
"$type": "ParserRule",
"name": "RecordExtraDefinition",
"definition": {
"$type": "Alternatives",
"elements": [
{
"$type": "Assignment",
"feature": "rbacSpec",
"operator": "=",
"terminal": {
"$type": "RuleCall",
"rule": {
"$ref": "#/rules@23"
},
"arguments": []
}
},
{
"$type": "Assignment",
"feature": "meta",
"operator": "=",
"terminal": {
"$type": "RuleCall",
"rule": {
"$ref": "#/rules@30"
},
"arguments": []
}
},
{
"$type": "Assignment",
"feature": "prePost",
"operator": "=",
"terminal": {
"$type": "RuleCall",
"rule": {
"$ref": "#/rules@31"
},
"arguments": []
}
},
{
"$type": "Assignment",
"feature": "uq",
"operator": "=",
"terminal": {
"$type": "RuleCall",
"rule": {
"$ref": "#/rules@36"
},
"arguments": []
}
},
{
"$type": "Assignment",
"feature": "actions",
"operator": "=",
"terminal": {
"$type": "RuleCall",
"rule": {
"$ref": "#/rules@37"
},
"arguments": []
}
}
]
},
"definesHiddenTokens": false,
"entry": false,
"fragment": false,
"hiddenTokens": [],
"parameters": [],
"wildcard": false
},
{
"$type": "ParserRule",
"fragment": true,
"name": "RecDef",
"definition": {
"$type": "Group",
"elements": [
{
"$type": "Assignment",
"feature": "name",
"operator": "=",
"terminal": {
"$type": "RuleCall",
"rule": {
"$ref": "#/rules@113"
},
"arguments": []
}
},
{
"$type": "Assignment",
"feature": "extends",
"operator": "=",
"terminal": {
"$type": "RuleCall",
"rule": {
"$ref": "#/rules@15"
},
"arguments": []
},
"cardinality": "?"
},
{
"$type": "Assignment",
"feature": "schema",
"operator": "=",
"terminal": {
"$type": "RuleCall",
"rule": {
"$ref": "#/rules@8"
},
"arguments": []
}
}
]
},
"definesHiddenTokens": false,
"entry": false,
"hiddenTokens": [],
"parameters": [],
"wildcard": false
},
{
"$type": "ParserRule",
"name": "EntityDefinition",
"definition": {
"$type": "Group",
"elements": [
{
"$type": "Keyword",
"value": "entity"
},
{
"$type": "RuleCall",
"rule": {
"$ref": "#/rules@10"
},
"arguments": []
}
]
},
"definesHiddenTokens": false,
"entry": false,
"fragment": false,
"hiddenTokens": [],
"parameters": [],
"wildcard": false
},
{
"$type": "ParserRule",
"name": "EventDefinition",
"definition": {
"$type": "Group",
"elements": [
{
"$type": "Keyword",
"value": "event"
},
{
"$type": "RuleCall",
"rule": {
"$ref": "#/rules@10"
},
"arguments": []
}
]
},
"definesHiddenTokens": false,
"entry": false,
"fragment": false,
"hiddenTokens": [],
"parameters": [],
"wildcard": false
},
{
"$type": "ParserRule",
"name": "PublicEventDefinition",
"definition": {
"$type": "Group",
"elements": [
{
"$type": "Keyword",
"value": "@public"
},
{
"$type": "Assignment",
"feature": "def",
"operator": "=",
"terminal": {
"$type": "RuleCall",
"rule": {
"$ref": "#/rules@12"
},
"arguments": []
}
}
]
},
"definesHiddenTokens": false,
"entry": false,
"fragment": false,
"hiddenTokens": [],
"parameters": [],
"wildcard": false
},
{
"$type": "ParserRule",
"name": "RecordDefinition",
"definition": {
"$type": "Group",
"elements": [
{
"$type": "Keyword",
"value": "record"
},
{
"$type": "RuleCall",
"rule": {
"$ref": "#/rules@10"
},
"arguments": []
}
]
},
"definesHiddenTokens": false,
"entry": false,
"fragment": false,
"hiddenTokens": [],
"parameters": [],
"wildcard": false
},
{
"$type": "ParserRule",
"name": "ExtendsClause",
"definition": {
"$type": "Group",
"elements": [
{
"$type": "Keyword",
"value": "extends"
},
{
"$type": "Assignment",
"feature": "parentName",
"operator": "=",
"terminal": {
"$type": "RuleCall",
"rule": {
"$ref": "#/rules@113"
},
"arguments": []
}
}
]
},
"definesHiddenTokens": false,
"entry": false,
"fragment": false,
"hiddenTokens": [],
"parameters": [],
"wildcard": false
},
{
"$type": "ParserRule",
"name": "RelationshipDefinition",
"definition": {
"$type": "Group",
"elements": [
{
"$type": "Keyword",
"value": "relationship"
},
{
"$type": "Assignment",
"feature": "name",
"operator": "=",
"terminal": {
"$type": "RuleCall",
"rule": {
"$ref": "#/rules@113"
},
"arguments": []
}
},
{
"$type": "Assignment",
"feature": "type",
"operator": "=",
"terminal": {
"$type": "Alternatives",
"elements": [
{
"$type": "Keyword",
"value": "contains"
},
{
"$type": "Keyword",
"value": "between"
}
]
}
},
{
"$type": "Assignment",
"feature": "nodes",
"operator": "=",
"terminal": {
"$type": "RuleCall",
"rule": {
"$ref": "#/rules@18"
},
"arguments": []
}
},
{
"$type": "Assignment",
"feature": "properties",
"operator": "+=",
"terminal": {
"$type": "RuleCall",
"rule": {
"$ref": "#/rules@5"
},
"arguments": []
},
"cardinality": "*"
},
{
"$type": "Assignment",
"feature": "schema",
"operator": "=",
"terminal": {
"$type": "RuleCall",
"rule": {
"$ref": "#/rules@8"
},
"arguments": []
},
"cardinality": "?"
}
]
},
"definesHiddenTokens": false,
"entry": false,
"fragment": false,
"hiddenTokens": [],
"parameters": [],
"wildcard": false
},
{
"$type": "ParserRule",
"name": "NodeDefinition",
"definition": {
"$type": "Alternatives",
"elements": [
{
"$type": "Assignment",
"feature": "name",
"operator": "=",
"terminal": {
"$type": "RuleCall",
"rule": {
"$ref": "#/rules@113"
},
"arguments": []
}
},
{
"$type": "Group",
"elements": [
{
"$type": "Assignment",
"feature": "name",
"operator": "=",
"terminal": {
"$type": "RuleCall",
"rule": {
"$ref": "#/rules@113"
},
"arguments": []
}
},
{
"$type": "Keyword",
"value": "@as"
},
{
"$type": "Assignment",
"feature": "alias",
"operator": "=",
"terminal": {
"$type": "RuleCall",
"rule": {
"$ref": "#/rules@115"
},
"arguments": []
}
}
]
}
]
},
"definesHiddenTokens": false,
"entry": false,
"fragment": false,
"hiddenTokens": [],
"parameters": [],
"wildcard": false
},
{
"$type": "ParserRule",
"name": "RelNodes",
"definition": {
"$type": "Group",
"elements": [
{
"$type": "Keyword",
"value": "("
},
{
"$type": "Assignment",
"feature": "node1",
"operator": "=",
"terminal": {
"$type": "RuleCall",
"rule": {
"$ref": "#/rules@17"
},
"arguments": []
}
},
{
"$type": "Keyword",
"value": ","
},
{
"$type": "Assignment",
"feature": "node2",
"operator": "=",
"terminal": {
"$type": "RuleCall",
"rule": {
"$ref": "#/rules@17"
},
"arguments": []
}
},
{
"$type": "Keyword",
"value": ")"
}
]
},
"definesHiddenTokens": false,
"entry": false,
"fragment": false,
"hiddenTokens": [],
"parameters": [],
"wildcard": false
},
{
"$type": "ParserRule",
"name": "AttributeDefinition",
"definition": {
"$type": "Group",
"elements": [
{
"$type": "Assignment",
"feature": "name",
"operator": "=",
"terminal": {
"$type": "RuleCall",
"rule": {
"$ref": "#/rules@115"
},
"arguments": []
}
},
{
"$type": "Alternatives",
"elements": [
{
"$type": "Assignment",
"feature": "type",
"operator": "=",
"terminal": {
"$type": "RuleCall",
"rule": {
"$ref": "#/rules@113"
},
"arguments": []
}
},
{
"$type": "Group",
"elements": [
{
"$type": "Assignment",
"feature": "arrayType",
"operator": "=",
"terminal": {
"$type": "RuleCall",
"rule": {
"$ref": "#/rules@113"
},
"arguments": []
}
},
{
"$type": "Keyword",
"value": "["
},
{
"$type": "Keyword",
"value": "]"
}
]
},
{
"$type": "Assignment",
"feature": "oneOfSpec",
"operator": "=",
"terminal": {
"$type": "RuleCall",
"rule": {
"$ref": "#/rules@21"
},
"arguments": []
}
},
{
"$type": "Assignment",
"feature": "enumSpec",
"operator": "=",
"terminal": {
"$type": "RuleCall",
"rule": {
"$ref": "#/rules@20"
},
"arguments": []
}
},
{
"$type": "Assignment",
"feature": "refSpec",
"operator": "=",
"terminal": {
"$type": "RuleCall",
"rule": {
"$ref": "#/rules@22"
},
"arguments": []
}
}
]
},
{
"$type": "Group",
"elements": [
{
"$type": "Keyword",
"value": "@expr"
},
{
"$type": "Keyword",
"value": "("
},
{
"$type": "Assignment",
"feature": "expr",
"operator": "=",
"terminal": {
"$type": "RuleCall",
"rule": {
"$ref": "#/rules@99"
},
"arguments": []
}
},
{
"$type": "Keyword",
"value": ")"
}
],
"cardinality": "?"
},
{
"$type": "Assignment",
"feature": "properties",
"operator": "+=",
"terminal": {
"$type": "RuleCall",
"rule": {
"$ref": "#/rules@5"
},
"arguments": []
},
"cardinality": "*"
}
]
},
"definesHiddenTokens": false,
"entry": false,
"fragment": false,
"hiddenTokens": [],
"parameters": [],
"wildcard": false
},
{
"$type": "ParserRule",
"name": "EnumSpec",
"definition": {
"$type": "Group",
"elements": [
{
"$type": "Assignment",
"feature": "type",
"operator": "=",
"terminal": {
"$type": "RuleCall",
"rule": {
"$ref": "#/rules@113"
},
"arguments": []
},
"cardinality": "?"
},
{
"$type": "Keyword",
"value": "@enum"
},
{
"$type": "Keyword",
"value": "("
},
{
"$type": "Assignment",
"feature": "values",
"operator": "+=",
"terminal": {
"$type": "RuleCall",
"rule": {
"$ref": "#/rules@117"
},
"arguments": []
}
},
{
"$type": "Group",
"elements": [
{
"$type": "Keyword",
"value": ","
},
{
"$type": "Assignment",
"feature": "values",
"operator": "+=",
"terminal": {
"$type": "RuleCall",
"rule": {
"$ref": "#/rules@117"
},
"arguments": []
}
}
],
"cardinality": "*"
},
{
"$type": "Keyword",
"value": ")"
}
]
},
"definesHiddenTokens": false,
"entry": false,
"fragment": false,
"hiddenTokens": [],
"parameters": [],
"wildcard": false
},
{
"$type": "ParserRule",
"name": "OneOfSpec",
"definition": {
"$type": "Group",
"elements": [
{
"$type": "Keyword",
"value": "@oneof"
},
{
"$type": "Keyword",
"value": "("
},
{
"$type": "Assignment",
"feature": "ref",
"operator": "=",
"terminal": {
"$type": "RuleCall",
"rule": {
"$ref": "#/rules@112"
},
"arguments": []
}
},
{
"$type": "Keyword",
"value": ")"
}
]
},
"definesHiddenTokens": false,
"entry": false,
"fragment": false,
"hiddenTokens": [],
"parameters": [],
"wildcard": false
},
{
"$type": "ParserRule",
"name": "RefSpec",
"definition": {
"$type": "Group",
"elements": [
{
"$type": "Assignment",
"feature": "type",
"operator": "=",
"terminal": {
"$type": "RuleCall",
"rule": {
"$ref": "#/rules@113"
},
"arguments": []
},
"cardinality": "?"
},
{
"$type": "Keyword",
"value": "@ref"
},
{
"$type": "Keyword",
"value": "("
},
{
"$type": "Assignment",
"feature": "ref",
"operator": "=",
"terminal": {
"$type": "RuleCall",
"rule": {
"$ref": "#/rules@113"
},
"arguments": []
}
},
{
"$type": "Keyword",
"value": ")"
}
]
},
"definesHiddenTokens": false,
"entry": false,
"fragment": false,
"hiddenTokens": [],
"parameters": [],
"wildcard": false
},
{
"$type": "ParserRule",
"name": "RbacSpecDefinition",
"definition": {
"$type": "Group",
"elements": [
{
"$type": "Keyword",
"value": "@rbac"
},
{
"$type": "Keyword",
"value": "["
},
{
"$type": "Group",
"elements": [
{
"$type": "Assignment",
"feature": "specEntries",
"operator": "+=",
"terminal": {
"$type": "RuleCall",
"rule": {
"$ref": "#/rules@25"
},
"arguments": []
}
},
{
"$type": "Group",
"elements": [
{
"$type": "Keyword",
"value": ","
},
{
"$type": "Assignment",
"feature": "specEntries",
"operator": "+=",
"terminal": {
"$type": "RuleCall",
"rule": {
"$ref": "#/rules@25"
},
"arguments": []
}
}
],
"cardinality": "*"
}
],
"cardinality": "+"
},
{
"$type": "Keyword",
"value": "]"
}
]
},
"definesHiddenTokens": false,
"entry": false,
"fragment": false,
"hiddenTokens": [],
"parameters": [],
"wildcard": false
},
{
"$type": "ParserRule",
"name": "RbacSpecEntry",
"definition": {
"$type": "Alternatives",
"elements": [
{
"$type": "Assignment",
"feature": "role",
"operator": "=",
"terminal": {
"$type": "RuleCall",
"rule": {
"$ref": "#/rules@26"
},
"arguments": []
}
},
{
"$type": "Assignment",
"feature": "allow",
"operator": "=",
"terminal": {
"$type": "RuleCall",
"rule": {
"$ref": "#/rules@27"
},
"arguments": []
}
},
{
"$type": "Assignment",
"feature": "expr",
"operator": "=",
"terminal": {
"$type": "RuleCall",
"rule": {
"$ref": "#/rules@29"
},
"arguments": []
}
}
]
},
"definesHiddenTokens": false,
"entry": false,
"fragment": false,
"hiddenTokens": [],
"parameters": [],
"wildcard": false
},
{
"$type": "ParserRule",
"name": "RbacSpecEntries",
"definition": {
"$type": "Group",
"elements": [
{
"$type": "Keyword",
"value": "("
},
{
"$type": "Group",
"elements": [
{
"$type": "Assignment",
"feature": "entries",
"operator": "+=",
"terminal": {
"$type": "RuleCall",
"rule": {
"$ref": "#/rules@24"
},
"arguments": []
}
},
{
"$type": "Group",
"elements": [
{
"$type": "Keyword",
"value": ","
},
{
"$type": "Assignment",
"feature": "entries",
"operator": "+=",
"terminal": {
"$type": "RuleCall",
"rule": {
"$ref": "#/rules@24"
},
"arguments": []
}
}
],
"cardinality": "*"
}
],
"cardinality": "+"
},
{
"$type": "Keyword",
"value": ")"
}
]
},
"definesHiddenTokens": false,
"entry": false,
"fragment": false,
"hiddenTokens": [],
"parameters": [],
"wildcard": false
},
{
"$type": "ParserRule",
"name": "RbacRolesSpec",
"definition": {
"$type": "Group",
"elements": [
{
"$type": "Keyword",
"value": "roles"
},
{
"$type": "Keyword",
"value": ":"
},
{
"$type": "Keyword",
"value": "["
},
{
"$type": "Group",
"elements": [
{
"$type": "Assignment",
"feature": "roles",
"operator": "+=",
"terminal": {
"$type": "Alternatives",
"elements": [
{
"$type": "RuleCall",
"rule": {
"$ref": "#/rules@115"
},
"arguments": []
},
{
"$type": "Keyword",
"value": "*"
}
]
}
},
{
"$type": "Group",
"elements": [
{
"$type": "Keyword",
"value": ","
},
{
"$type": "Assignment",
"feature": "roles",
"operator": "+=",
"terminal": {
"$type": "Alternatives",
"elements": [
{
"$type": "RuleCall",
"rule": {
"$ref": "#/rules@115"
},
"arguments": []
},
{
"$type": "Keyword",
"value": "*"
}
]
}
}
],
"cardinality": "*"
}
],
"cardinality": "+"
},
{
"$type": "Keyword",
"value": "]"
}
]
},
"definesHiddenTokens": false,
"entry": false,
"fragment": false,
"hiddenTokens": [],
"parameters": [],
"wildcard": false
},
{
"$type": "ParserRule",
"name": "RbacAllowSpec",
"definition": {
"$type": "Group",
"elements": [
{
"$type": "Keyword",
"value": "allow"
},
{
"$type": "Keyword",
"value": ":"
},
{
"$type": "Keyword",
"value": "["
},
{
"$type": "Group",
"elements": [
{
"$type": "Assignment",
"feature": "oprs",
"operator": "+=",
"terminal": {
"$type": "RuleCall",
"rule": {
"$ref": "#/rules@28"
},
"arguments": []
}
},
{
"$type": "Group",
"elements": [
{
"$type": "Keyword",
"value": ","
},
{
"$type": "Assignment",
"feature": "oprs",
"operator": "+=",
"terminal": {
"$type": "RuleCall",
"rule": {
"$ref": "#/rules@28"
},
"arguments": []
}
}
],
"cardinality": "*"
}
],
"cardinality": "+"
},
{
"$type": "Keyword",
"value": "]"
}
]
},
"definesHiddenTokens": false,
"entry": false,
"fragment": false,
"hiddenTokens": [],
"parameters": [],
"wildcard": false
},
{
"$type": "ParserRule",
"name": "RbacOpr",
"definition": {
"$type": "Assignment",
"feature": "value",
"operator": "=",
"terminal": {
"$type": "Alternatives",
"elements": [
{
"$type": "Keyword",
"value": "create"
},
{
"$type": "Keyword",
"value": "delete"
},
{
"$type": "Keyword",
"value": "update"
},
{
"$type": "Keyword",
"value": "read"
}
]
}
},
"definesHiddenTokens": false,
"entry": false,
"fragment": false,
"hiddenTokens": [],
"parameters": [],
"wildcard": false
},
{
"$type": "ParserRule",
"name": "RbacExpressionSpec",
"definition": {
"$type": "Group",
"elements": [
{
"$type": "Keyword",
"value": "where"
},
{
"$type": "Keyword",
"value": ":"
},
{
"$type": "Assignment",
"feature": "lhs",
"operator": "=",
"terminal": {
"$type": "RuleCall",
"rule": {
"$ref": "#/rules@112"
},
"arguments": []
}
},
{
"$type": "Keyword",
"value": "="
},
{
"$type": "Assignment",
"feature": "rhs",
"operator": "=",
"terminal": {
"$type": "RuleCall",
"rule": {
"$ref": "#/rules@112"
},
"arguments": []
}
}
]
},
"definesHiddenTokens": false,
"entry": false,
"fragment": false,
"hiddenTokens": [],
"parameters": [],
"wildcard": false
},
{
"$type": "ParserRule",
"name": "MetaDefinition",
"definition": {
"$type": "Group",
"elements": [
{
"$type": "Keyword",
"value": "@meta"
},
{
"$type": "Assignment",
"feature": "spec",
"operator": "=",
"terminal": {
"$type": "RuleCall",
"rule": {
"$ref": "#/rules@40"
},
"arguments": []
}
}
]
},
"definesHiddenTokens": false,
"entry": false,
"fragment": false,
"hiddenTokens": [],
"parameters": [],
"wildcard": false
},
{
"$type": "ParserRule",
"name": "PrePostTriggerDefinition",
"definition": {
"$type": "Alternatives",
"elements": [
{
"$type": "Assignment",
"feature": "after",
"operator": "=",
"terminal": {
"$type": "RuleCall",
"rule": {
"$ref": "#/rules@32"
},
"arguments": []
}
},
{
"$type": "Assignment",
"feature": "before",
"operator": "=",
"terminal": {
"$type": "RuleCall",
"rule": {
"$ref": "#/rules@33"
},
"arguments": []
}
}
]
},
"definesHiddenTokens": false,
"entry": false,
"fragment": false,
"hiddenTokens": [],
"parameters": [],
"wildcard": false
},
{
"$type": "ParserRule",
"name": "AfterTriggerDefinition",
"definition": {
"$type": "Group",
"elements": [
{
"$type": "Keyword",
"value": "@after"
},
{
"$type": "Assignment",
"feature": "triggers",
"operator": "=",
"terminal": {
"$type": "RuleCall",
"rule": {
"$ref": "#/rules@34"
},
"arguments": []
}
}
]
},
"definesHiddenTokens": false,
"entry": false,
"fragment": false,
"hiddenTokens": [],
"parameters": [],
"wildcard": false
},
{
"$type": "ParserRule",
"name": "BeforeTriggerDefinition",
"definition": {
"$type": "Group",
"elements": [
{
"$type": "Keyword",
"value": "@before"
},
{
"$type": "Assignment",
"feature": "triggers",
"operator": "=",
"terminal": {
"$type": "RuleCall",
"rule": {
"$ref": "#/rules@34"
},
"arguments": []
}
}
]
},
"definesHiddenTokens": false,
"entry": false,
"fragment": false,
"hiddenTokens": [],
"parameters": [],
"wildcard": false
},
{
"$type": "ParserRule",
"name": "TriggerDefinition",
"definition": {
"$type": "Group",
"elements": [
{
"$type": "Keyword",
"value": "{"
},
{
"$type": "Assignment",
"feature": "entries",
"operator": "+=",
"terminal": {
"$type": "RuleCall",
"rule": {
"$ref": "#/rules@35"
},
"arguments": []
}
},
{
"$type": "Group",
"elements": [
{
"$type": "Keyword",
"value": ","
},
{
"$type": "Assignment",
"feature": "entries",
"operator": "+=",
"terminal": {
"$type": "RuleCall",
"rule": {
"$ref": "#/rules@35"
},
"arguments": []
}
}
],
"cardinality": "*"
},
{
"$type": "Keyword",
"value": "}"
}
]
},
"definesHiddenTokens": false,
"entry": false,
"fragment": false,
"hiddenTokens": [],
"parameters": [],
"wildcard": false
},
{
"$type": "ParserRule",
"name": "TriggerEntry",
"definition": {
"$type": "Group",
"elements": [
{
"$type": "Assignment",
"feature": "on",
"operator": "=",
"terminal": {
"$type": "Alternatives",
"elements": [
{
"$type": "Keyword",
"value": "create"