Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

langium

Package Overview
Dependencies
Maintainers
1
Versions
49
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

langium - npm Package Compare versions

Comparing version 0.1.0-next.b687a8a to 0.1.0

2

lib/grammar/generated/ast.d.ts
/******************************************************************************
* This file was generated by langium-cli 0.0.0.
* This file was generated by langium-cli 0.1.0.
* DO NOT EDIT MANUALLY!

@@ -4,0 +4,0 @@ ******************************************************************************/

"use strict";
/******************************************************************************
* This file was generated by langium-cli 0.0.0.
* This file was generated by langium-cli 0.1.0.
* DO NOT EDIT MANUALLY!

@@ -5,0 +5,0 @@ ******************************************************************************/

/******************************************************************************
* This file was generated by langium-cli 0.0.0.
* This file was generated by langium-cli 0.1.0.
* DO NOT EDIT MANUALLY!

@@ -4,0 +4,0 @@ ******************************************************************************/

"use strict";
/******************************************************************************
* This file was generated by langium-cli 0.0.0.
* This file was generated by langium-cli 0.1.0.
* DO NOT EDIT MANUALLY!

@@ -5,0 +5,0 @@ ******************************************************************************/

@@ -1,1 +0,1 @@

{"$type":"Grammar","name":"LangiumGrammar","definesHiddenTokens":true,"hiddenTokens":[{"$refName":"WS"},{"$refName":"SL_COMMENT"},{"$refName":"ML_COMMENT"}],"rules":[{"$type":"TerminalRule","name":"WS","regex":"/\\s+/"},{"$type":"TerminalRule","name":"ID","type":"string","regex":"/\\^?[_a-zA-Z][\\w_]*/"},{"$type":"TerminalRule","name":"INT","type":"number","regex":"/[0-9]+/"},{"$type":"TerminalRule","name":"string","regex":"/\"[^\"]*\"|'[^']*'/"},{"$type":"TerminalRule","name":"ML_COMMENT","regex":"/\\/\\*[\\s\\S]*?\\*\\//"},{"$type":"TerminalRule","name":"SL_COMMENT","regex":"/\\/\\/[^\\n\\r]*/"},{"$type":"ParserRule","name":"Grammar","alternatives":{"$type":"Group","elements":[{"$type":"Keyword","value":"grammar"},{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"RuleCall","rule":{"$refName":"ID"}}},{"$type":"Group","elements":[{"$type":"Keyword","value":"with"},{"$type":"Assignment","feature":"usedGrammars","operator":"+=","terminal":{"$type":"CrossReference","type":{"$refName":"Grammar"},"terminal":{"$type":"RuleCall","rule":{"$refName":"ID"}}}},{"$type":"Group","elements":[{"$type":"Keyword","value":","},{"$type":"Assignment","feature":"usedGrammars","operator":"+=","terminal":{"$type":"CrossReference","type":{"$refName":"Grammar"},"terminal":{"$type":"RuleCall","rule":{"$refName":"ID"}}}}],"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":{"$refName":"AbstractRule"},"terminal":{"$type":"RuleCall","rule":{"$refName":"ID"}}}},{"$type":"Group","elements":[{"$type":"Keyword","value":","},{"$type":"Assignment","feature":"hiddenTokens","operator":"+=","terminal":{"$type":"CrossReference","type":{"$refName":"AbstractRule"},"terminal":{"$type":"RuleCall","rule":{"$refName":"ID"}}}}],"cardinality":"*"}],"cardinality":"?"},{"$type":"Keyword","value":")"}],"cardinality":"?"},{"$type":"Assignment","feature":"metamodelDeclarations","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$refName":"AbstractMetamodelDeclaration"}},"cardinality":"*"},{"$type":"Assignment","feature":"rules","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$refName":"AbstractRule"}},"cardinality":"+"}]}},{"$type":"ParserRule","name":"AbstractRule","alternatives":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$refName":"ParserRule"}},{"$type":"RuleCall","rule":{"$refName":"TerminalRule"}}]}},{"$type":"ParserRule","name":"AbstractMetamodelDeclaration","alternatives":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$refName":"GeneratedMetamodel"}},{"$type":"RuleCall","rule":{"$refName":"ReferencedMetamodel"}}]}},{"$type":"ParserRule","name":"GeneratedMetamodel","alternatives":{"$type":"Group","elements":[{"$type":"Keyword","value":"generate"},{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"RuleCall","rule":{"$refName":"ID"}}},{"$type":"Assignment","feature":"ePackage","operator":"=","terminal":{"$type":"RuleCall","rule":{"$refName":"string"}}},{"$type":"Group","elements":[{"$type":"Keyword","value":"as"},{"$type":"Assignment","feature":"alias","operator":"=","terminal":{"$type":"RuleCall","rule":{"$refName":"ID"}}}],"cardinality":"?"}]}},{"$type":"ParserRule","name":"ReferencedMetamodel","alternatives":{"$type":"Group","elements":[{"$type":"Keyword","value":"import"},{"$type":"Assignment","feature":"ePackage","operator":"=","terminal":{"$type":"RuleCall","rule":{"$refName":"string"}}},{"$type":"Group","elements":[{"$type":"Keyword","value":"as"},{"$type":"Assignment","feature":"alias","operator":"=","terminal":{"$type":"RuleCall","rule":{"$refName":"ID"}}}],"cardinality":"?"}]}},{"$type":"ParserRule","name":"Annotation","alternatives":{"$type":"Group","elements":[{"$type":"Keyword","value":"@"},{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"RuleCall","rule":{"$refName":"ID"}}}]}},{"$type":"ParserRule","name":"ParserRule","alternatives":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"Assignment","feature":"fragment","operator":"?=","terminal":{"$type":"Keyword","value":"fragment"}},{"$type":"RuleCall","rule":{"$refName":"RuleNameAndParams"}},{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"wildcard","operator":"?=","terminal":{"$type":"Keyword","value":"*"}},{"$type":"Group","elements":[{"$type":"Keyword","value":"returns"},{"$type":"Assignment","feature":"type","operator":"=","terminal":{"$type":"RuleCall","rule":{"$refName":"ID"}}}],"cardinality":"?"}]}]},{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$refName":"RuleNameAndParams"}},{"$type":"Group","elements":[{"$type":"Keyword","value":"returns"},{"$type":"Assignment","feature":"type","operator":"=","terminal":{"$type":"RuleCall","rule":{"$refName":"ID"}}}],"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":{"$refName":"AbstractRule"},"terminal":{"$type":"RuleCall","rule":{"$refName":"ID"}}}},{"$type":"Group","elements":[{"$type":"Keyword","value":","},{"$type":"Assignment","feature":"hiddenTokens","operator":"+=","terminal":{"$type":"CrossReference","type":{"$refName":"AbstractRule"},"terminal":{"$type":"RuleCall","rule":{"$refName":"ID"}}}}],"cardinality":"*"}],"cardinality":"?"},{"$type":"Keyword","value":")"}],"cardinality":"?"},{"$type":"Keyword","value":":"},{"$type":"Assignment","feature":"alternatives","operator":"=","terminal":{"$type":"RuleCall","rule":{"$refName":"Alternatives"}}},{"$type":"Keyword","value":";"}]}},{"$type":"ParserRule","name":"RuleNameAndParams","fragment":true,"alternatives":{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"RuleCall","rule":{"$refName":"ID"}}},{"$type":"Group","elements":[{"$type":"Keyword","value":"<"},{"$type":"Group","elements":[{"$type":"Assignment","feature":"parameters","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$refName":"Parameter"}}},{"$type":"Group","elements":[{"$type":"Keyword","value":","},{"$type":"Assignment","feature":"parameters","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$refName":"Parameter"}}}],"cardinality":"*"}],"cardinality":"?"},{"$type":"Keyword","value":">"}],"cardinality":"?"}]}},{"$type":"ParserRule","name":"Parameter","alternatives":{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"RuleCall","rule":{"$refName":"ID"}}}},{"$type":"ParserRule","name":"Alternatives","type":"AbstractElement","alternatives":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$refName":"UnorderedGroup"}},{"$type":"Group","elements":[{"$type":"Action","type":"Alternatives","feature":"elements","operator":"+="},{"$type":"Group","elements":[{"$type":"Keyword","value":"|"},{"$type":"Assignment","feature":"elements","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$refName":"UnorderedGroup"}}}],"cardinality":"+"}],"cardinality":"?"}]}},{"$type":"ParserRule","name":"UnorderedGroup","type":"AbstractElement","alternatives":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$refName":"Group"}},{"$type":"Group","elements":[{"$type":"Action","type":"UnorderedGroup","feature":"elements","operator":"+="},{"$type":"Group","elements":[{"$type":"Keyword","value":"&"},{"$type":"Assignment","feature":"elements","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$refName":"Group"}}}],"cardinality":"+"}],"cardinality":"?"}]}},{"$type":"ParserRule","name":"Group","type":"AbstractElement","alternatives":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$refName":"AbstractToken"}},{"$type":"Group","elements":[{"$type":"Action","type":"Group","feature":"elements","operator":"+="},{"$type":"Assignment","feature":"elements","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$refName":"AbstractToken"}},"cardinality":"+"}],"cardinality":"?"}]}},{"$type":"ParserRule","name":"AbstractToken","type":"AbstractElement","alternatives":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$refName":"AbstractTokenWithCardinality"}},{"$type":"RuleCall","rule":{"$refName":"Action"}}]}},{"$type":"ParserRule","name":"AbstractTokenWithCardinality","type":"AbstractElement","alternatives":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$refName":"Assignment"}},{"$type":"RuleCall","rule":{"$refName":"AbstractTerminal"}}]},{"$type":"Assignment","feature":"cardinality","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"?"},{"$type":"Keyword","value":"*"},{"$type":"Keyword","value":"+"}]},"cardinality":"?"}]}},{"$type":"ParserRule","name":"Action","type":"AbstractElement","alternatives":{"$type":"Group","elements":[{"$type":"Action","type":"Action"},{"$type":"Keyword","value":"{"},{"$type":"Assignment","feature":"type","operator":"=","terminal":{"$type":"RuleCall","rule":{"$refName":"ID"}}},{"$type":"Group","elements":[{"$type":"Keyword","value":"."},{"$type":"Assignment","feature":"feature","operator":"=","terminal":{"$type":"RuleCall","rule":{"$refName":"ID"}}},{"$type":"Assignment","feature":"operator","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"="},{"$type":"Keyword","value":"+="}]}},{"$type":"Keyword","value":"current"}],"cardinality":"?"},{"$type":"Keyword","value":"}"}]}},{"$type":"ParserRule","name":"AbstractTerminal","type":"AbstractElement","alternatives":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$refName":"Keyword"}},{"$type":"RuleCall","rule":{"$refName":"RuleCall"}},{"$type":"RuleCall","rule":{"$refName":"ParenthesizedElement"}},{"$type":"RuleCall","rule":{"$refName":"PredicatedKeyword"}},{"$type":"RuleCall","rule":{"$refName":"PredicatedRuleCall"}},{"$type":"RuleCall","rule":{"$refName":"PredicatedGroup"}}]}},{"$type":"ParserRule","name":"Keyword","alternatives":{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$refName":"string"}}}},{"$type":"ParserRule","name":"RuleCall","alternatives":{"$type":"Group","elements":[{"$type":"Assignment","feature":"rule","operator":"=","terminal":{"$type":"CrossReference","type":{"$refName":"AbstractRule"},"terminal":{"$type":"RuleCall","rule":{"$refName":"ID"}}}},{"$type":"Group","elements":[{"$type":"Keyword","value":"<"},{"$type":"Assignment","feature":"arguments","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$refName":"NamedArgument"}}},{"$type":"Group","elements":[{"$type":"Keyword","value":","},{"$type":"Assignment","feature":"arguments","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$refName":"NamedArgument"}}}],"cardinality":"*"},{"$type":"Keyword","value":">"}],"cardinality":"?"}]}},{"$type":"ParserRule","name":"NamedArgument","alternatives":{"$type":"Group","elements":[{"$type":"Group","elements":[{"$type":"Assignment","feature":"parameter","operator":"=","terminal":{"$type":"CrossReference","type":{"$refName":"Parameter"},"terminal":{"$type":"RuleCall","rule":{"$refName":"ID"}}}},{"$type":"Assignment","feature":"calledByName","operator":"?=","terminal":{"$type":"Keyword","value":"="}}],"cardinality":"?"},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$refName":"Disjunction"}}}]}},{"$type":"ParserRule","name":"LiteralCondition","alternatives":{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"true","operator":"?=","terminal":{"$type":"Keyword","value":"true"}},{"$type":"Keyword","value":"false"}]}},{"$type":"ParserRule","name":"Disjunction","type":"Condition","alternatives":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$refName":"Conjunction"}},{"$type":"Group","elements":[{"$type":"Action","type":"Disjunction","feature":"left","operator":"="},{"$type":"Keyword","value":"|"},{"$type":"Assignment","feature":"right","operator":"=","terminal":{"$type":"RuleCall","rule":{"$refName":"Conjunction"}}}],"cardinality":"?"}]}},{"$type":"ParserRule","name":"Conjunction","type":"Condition","alternatives":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$refName":"Negation"}},{"$type":"Group","elements":[{"$type":"Action","type":"Conjunction","feature":"left","operator":"="},{"$type":"Keyword","value":"&"},{"$type":"Assignment","feature":"right","operator":"=","terminal":{"$type":"RuleCall","rule":{"$refName":"Negation"}}}],"cardinality":"?"}]}},{"$type":"ParserRule","name":"Negation","type":"Condition","alternatives":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$refName":"Atom"}},{"$type":"Group","elements":[{"$type":"Action","type":"Negation"},{"$type":"Keyword","value":"!"},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$refName":"Negation"}}}]}]}},{"$type":"ParserRule","name":"Atom","type":"Condition","alternatives":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$refName":"ParameterReference"}},{"$type":"RuleCall","rule":{"$refName":"ParenthesizedCondition"}},{"$type":"RuleCall","rule":{"$refName":"LiteralCondition"}}]}},{"$type":"ParserRule","name":"ParenthesizedCondition","type":"Condition","alternatives":{"$type":"Group","elements":[{"$type":"Keyword","value":"("},{"$type":"RuleCall","rule":{"$refName":"Disjunction"}},{"$type":"Keyword","value":")"}]}},{"$type":"ParserRule","name":"ParameterReference","alternatives":{"$type":"Assignment","feature":"parameter","operator":"=","terminal":{"$type":"CrossReference","type":{"$refName":"Parameter"},"terminal":{"$type":"RuleCall","rule":{"$refName":"ID"}}}}},{"$type":"ParserRule","name":"TerminalRuleCall","alternatives":{"$type":"Assignment","feature":"rule","operator":"=","terminal":{"$type":"CrossReference","type":{"$refName":"AbstractRule"},"terminal":{"$type":"RuleCall","rule":{"$refName":"ID"}}}}},{"$type":"ParserRule","name":"PredicatedKeyword","type":"Keyword","alternatives":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"predicated","operator":"?=","terminal":{"$type":"Keyword","value":"=>"}},{"$type":"Assignment","feature":"firstSetPredicated","operator":"?=","terminal":{"$type":"Keyword","value":"->"}}]},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$refName":"string"}}}]}},{"$type":"ParserRule","name":"PredicatedRuleCall","type":"RuleCall","alternatives":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"predicated","operator":"?=","terminal":{"$type":"Keyword","value":"=>"}},{"$type":"Assignment","feature":"firstSetPredicated","operator":"?=","terminal":{"$type":"Keyword","value":"->"}}]},{"$type":"Assignment","feature":"rule","operator":"=","terminal":{"$type":"CrossReference","type":{"$refName":"AbstractRule"},"terminal":{"$type":"RuleCall","rule":{"$refName":"ID"}}}},{"$type":"Group","elements":[{"$type":"Keyword","value":"<"},{"$type":"Assignment","feature":"arguments","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$refName":"NamedArgument"}}},{"$type":"Group","elements":[{"$type":"Keyword","value":","},{"$type":"Assignment","feature":"arguments","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$refName":"NamedArgument"}}}],"cardinality":"*"},{"$type":"Keyword","value":">"}],"cardinality":"?"}]}},{"$type":"ParserRule","name":"Assignment","type":"AbstractElement","alternatives":{"$type":"Group","elements":[{"$type":"Action","type":"Assignment"},{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"predicated","operator":"?=","terminal":{"$type":"Keyword","value":"=>"}},{"$type":"Assignment","feature":"firstSetPredicated","operator":"?=","terminal":{"$type":"Keyword","value":"->"}}],"cardinality":"?"},{"$type":"Assignment","feature":"feature","operator":"=","terminal":{"$type":"RuleCall","rule":{"$refName":"ID"}}},{"$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":{"$refName":"AssignableTerminal"}}}]}},{"$type":"ParserRule","name":"AssignableTerminal","type":"AbstractElement","alternatives":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$refName":"Keyword"}},{"$type":"RuleCall","rule":{"$refName":"RuleCall"}},{"$type":"RuleCall","rule":{"$refName":"ParenthesizedAssignableElement"}},{"$type":"RuleCall","rule":{"$refName":"CrossReference"}}]}},{"$type":"ParserRule","name":"ParenthesizedAssignableElement","type":"AbstractElement","alternatives":{"$type":"Group","elements":[{"$type":"Keyword","value":"("},{"$type":"RuleCall","rule":{"$refName":"AssignableAlternatives"}},{"$type":"Keyword","value":")"}]}},{"$type":"ParserRule","name":"AssignableAlternatives","type":"AbstractElement","alternatives":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$refName":"AssignableTerminal"}},{"$type":"Group","elements":[{"$type":"Action","type":"Alternatives","feature":"elements","operator":"+="},{"$type":"Group","elements":[{"$type":"Keyword","value":"|"},{"$type":"Assignment","feature":"elements","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$refName":"AssignableTerminal"}}}],"cardinality":"+"}],"cardinality":"?"}]}},{"$type":"ParserRule","name":"CrossReference","type":"AbstractElement","alternatives":{"$type":"Group","elements":[{"$type":"Action","type":"CrossReference"},{"$type":"Keyword","value":"["},{"$type":"Assignment","feature":"type","operator":"=","terminal":{"$type":"CrossReference","type":{"$refName":"ParserRule"},"terminal":{"$type":"RuleCall","rule":{"$refName":"ID"}}}},{"$type":"Group","elements":[{"$type":"Keyword","value":"|"},{"$type":"Assignment","feature":"terminal","operator":"=","terminal":{"$type":"RuleCall","rule":{"$refName":"CrossReferenceableTerminal"}}}],"cardinality":"?"},{"$type":"Keyword","value":"]"}]}},{"$type":"ParserRule","name":"CrossReferenceableTerminal","type":"AbstractElement","alternatives":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$refName":"Keyword"}},{"$type":"RuleCall","rule":{"$refName":"RuleCall"}}]}},{"$type":"ParserRule","name":"ParenthesizedElement","type":"AbstractElement","alternatives":{"$type":"Group","elements":[{"$type":"Keyword","value":"("},{"$type":"RuleCall","rule":{"$refName":"Alternatives"}},{"$type":"Keyword","value":")"}]}},{"$type":"ParserRule","name":"PredicatedGroup","type":"Group","alternatives":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"predicated","operator":"?=","terminal":{"$type":"Keyword","value":"=>"}},{"$type":"Assignment","feature":"firstSetPredicated","operator":"?=","terminal":{"$type":"Keyword","value":"->"}}]},{"$type":"Keyword","value":"("},{"$type":"Assignment","feature":"elements","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$refName":"Alternatives"}}},{"$type":"Keyword","value":")"}]}},{"$type":"ParserRule","name":"TerminalRule","alternatives":{"$type":"Group","elements":[{"$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":{"$refName":"ID"}}}]},{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"RuleCall","rule":{"$refName":"ID"}}},{"$type":"Group","elements":[{"$type":"Keyword","value":"returns"},{"$type":"Assignment","feature":"type","operator":"=","terminal":{"$type":"RuleCall","rule":{"$refName":"ID"}}}],"cardinality":"?"}]}]},{"$type":"Keyword","value":":"},{"$type":"Assignment","feature":"regex","operator":"=","terminal":{"$type":"RuleCall","rule":{"$refName":"RegexLiteral"}}},{"$type":"Keyword","value":";"}]}},{"$type":"TerminalRule","name":"RegexLiteral","type":"string","regex":"/\\/(?![*+?])(?:[^\\r\\n\\[/\\\\]|\\\\.|\\[(?:[^\\r\\n\\]\\\\]|\\\\.)*\\])+\\//"},{"$type":"ParserRule","name":"TerminalAlternatives","alternatives":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$refName":"TerminalGroup"}},{"$type":"Group","elements":[{"$type":"Action","type":"TerminalAlternatives","feature":"elements","operator":"+="},{"$type":"Keyword","value":"|"},{"$type":"Assignment","feature":"elements","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$refName":"TerminalGroup"}}}],"cardinality":"*"}]}},{"$type":"ParserRule","name":"TerminalGroup","alternatives":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$refName":"TerminalToken"}},{"$type":"Group","elements":[{"$type":"Action","type":"TerminalGroup","feature":"elements","operator":"+="},{"$type":"Assignment","feature":"elements","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$refName":"TerminalToken"}},"cardinality":"+"}],"cardinality":"?"}]}},{"$type":"ParserRule","name":"TerminalToken","alternatives":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$refName":"TerminalTokenElement"}},{"$type":"Assignment","feature":"cardinality","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"?"},{"$type":"Keyword","value":"*"},{"$type":"Keyword","value":"+"}]},"cardinality":"?"}]}},{"$type":"ParserRule","name":"TerminalTokenElement","alternatives":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$refName":"CharacterRange"}},{"$type":"RuleCall","rule":{"$refName":"TerminalRuleCall"}},{"$type":"RuleCall","rule":{"$refName":"ParenthesizedTerminalElement"}},{"$type":"RuleCall","rule":{"$refName":"AbstractNegatedToken"}},{"$type":"RuleCall","rule":{"$refName":"Wildcard"}}]}},{"$type":"ParserRule","name":"ParenthesizedTerminalElement","type":"TerminalAlternatives","alternatives":{"$type":"Group","elements":[{"$type":"Keyword","value":"("},{"$type":"RuleCall","rule":{"$refName":"TerminalAlternatives"}},{"$type":"Keyword","value":")"}]}},{"$type":"ParserRule","name":"AbstractNegatedToken","alternatives":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$refName":"NegatedToken"}},{"$type":"RuleCall","rule":{"$refName":"UntilToken"}}]}},{"$type":"ParserRule","name":"NegatedToken","alternatives":{"$type":"Group","elements":[{"$type":"Keyword","value":"!"},{"$type":"Assignment","feature":"terminal","operator":"=","terminal":{"$type":"RuleCall","rule":{"$refName":"TerminalTokenElement"}}}]}},{"$type":"ParserRule","name":"UntilToken","alternatives":{"$type":"Group","elements":[{"$type":"Keyword","value":"->"},{"$type":"Assignment","feature":"terminal","operator":"=","terminal":{"$type":"RuleCall","rule":{"$refName":"TerminalTokenElement"}}}]}},{"$type":"ParserRule","name":"Wildcard","alternatives":{"$type":"Group","elements":[{"$type":"Action","type":"Wildcard"},{"$type":"Keyword","value":"."}]}},{"$type":"ParserRule","name":"CharacterRange","alternatives":{"$type":"Group","elements":[{"$type":"Assignment","feature":"left","operator":"=","terminal":{"$type":"RuleCall","rule":{"$refName":"Keyword"}}},{"$type":"Group","elements":[{"$type":"Keyword","value":".."},{"$type":"Assignment","feature":"right","operator":"=","terminal":{"$type":"RuleCall","rule":{"$refName":"Keyword"}}}],"cardinality":"?"}]}}]}
{"$type":"Grammar","usedGrammars":[],"hiddenTokens":[{"$refName":"WS"},{"$refName":"SL_COMMENT"},{"$refName":"ML_COMMENT"}],"metamodelDeclarations":[],"rules":[{"$type":"TerminalRule","name":"WS","regex":"/\\s+/"},{"$type":"TerminalRule","name":"ID","type":"string","regex":"/\\^?[_a-zA-Z][\\w_]*/"},{"$type":"TerminalRule","name":"INT","type":"number","regex":"/[0-9]+/"},{"$type":"TerminalRule","name":"string","regex":"/\"[^\"]*\"|'[^']*'/"},{"$type":"TerminalRule","name":"ML_COMMENT","regex":"/\\/\\*[\\s\\S]*?\\*\\//"},{"$type":"TerminalRule","name":"SL_COMMENT","regex":"/\\/\\/[^\\n\\r]*/"},{"$type":"ParserRule","parameters":[],"name":"Grammar","hiddenTokens":[],"alternatives":{"$type":"Group","elements":[{"$type":"Keyword","value":"grammar","elements":[]},{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"RuleCall","arguments":[],"rule":{"$refName":"ID"}}},{"$type":"Group","elements":[{"$type":"Keyword","value":"with","elements":[]},{"$type":"Assignment","feature":"usedGrammars","operator":"+=","terminal":{"$type":"CrossReference","type":{"$refName":"Grammar"},"terminal":{"$type":"RuleCall","arguments":[],"rule":{"$refName":"ID"}}}},{"$type":"Group","elements":[{"$type":"Keyword","value":",","elements":[]},{"$type":"Assignment","feature":"usedGrammars","operator":"+=","terminal":{"$type":"CrossReference","type":{"$refName":"Grammar"},"terminal":{"$type":"RuleCall","arguments":[],"rule":{"$refName":"ID"}}}}],"cardinality":"*"}],"cardinality":"?"},{"$type":"Group","elements":[{"$type":"Assignment","feature":"definesHiddenTokens","operator":"?=","terminal":{"$type":"Keyword","value":"hidden"},"elements":[]},{"$type":"Keyword","value":"("},{"$type":"Group","elements":[{"$type":"Assignment","feature":"hiddenTokens","operator":"+=","terminal":{"$type":"CrossReference","type":{"$refName":"AbstractRule"},"terminal":{"$type":"RuleCall","arguments":[],"rule":{"$refName":"ID"}}},"elements":[]},{"$type":"Group","elements":[{"$type":"Keyword","value":",","elements":[]},{"$type":"Assignment","feature":"hiddenTokens","operator":"+=","terminal":{"$type":"CrossReference","type":{"$refName":"AbstractRule"},"terminal":{"$type":"RuleCall","arguments":[],"rule":{"$refName":"ID"}}}}],"cardinality":"*"}],"cardinality":"?"},{"$type":"Keyword","value":")"}],"cardinality":"?"},{"$type":"Assignment","feature":"metamodelDeclarations","operator":"+=","terminal":{"$type":"RuleCall","arguments":[],"rule":{"$refName":"AbstractMetamodelDeclaration"}},"cardinality":"*"},{"$type":"Assignment","feature":"rules","operator":"+=","terminal":{"$type":"RuleCall","arguments":[],"rule":{"$refName":"AbstractRule"}},"elements":[],"cardinality":"+"}]}},{"$type":"ParserRule","parameters":[],"name":"AbstractRule","hiddenTokens":[],"alternatives":{"$type":"Alternatives","elements":[{"$type":"RuleCall","arguments":[],"rule":{"$refName":"ParserRule"},"elements":[]},{"$type":"RuleCall","arguments":[],"rule":{"$refName":"TerminalRule"},"elements":[]}]}},{"$type":"ParserRule","parameters":[],"name":"AbstractMetamodelDeclaration","hiddenTokens":[],"alternatives":{"$type":"Alternatives","elements":[{"$type":"RuleCall","arguments":[],"rule":{"$refName":"GeneratedMetamodel"},"elements":[]},{"$type":"RuleCall","arguments":[],"rule":{"$refName":"ReferencedMetamodel"},"elements":[]}]}},{"$type":"ParserRule","parameters":[],"name":"GeneratedMetamodel","hiddenTokens":[],"alternatives":{"$type":"Group","elements":[{"$type":"Keyword","value":"generate","elements":[]},{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"RuleCall","arguments":[],"rule":{"$refName":"ID"}}},{"$type":"Assignment","feature":"ePackage","operator":"=","terminal":{"$type":"RuleCall","arguments":[],"rule":{"$refName":"string"}}},{"$type":"Group","elements":[{"$type":"Keyword","value":"as","elements":[]},{"$type":"Assignment","feature":"alias","operator":"=","terminal":{"$type":"RuleCall","arguments":[],"rule":{"$refName":"ID"}}}],"cardinality":"?"}]}},{"$type":"ParserRule","parameters":[],"name":"ReferencedMetamodel","hiddenTokens":[],"alternatives":{"$type":"Group","elements":[{"$type":"Keyword","value":"import","elements":[]},{"$type":"Assignment","feature":"ePackage","operator":"=","terminal":{"$type":"RuleCall","arguments":[],"rule":{"$refName":"string"}}},{"$type":"Group","elements":[{"$type":"Keyword","value":"as","elements":[]},{"$type":"Assignment","feature":"alias","operator":"=","terminal":{"$type":"RuleCall","arguments":[],"rule":{"$refName":"ID"}}}],"cardinality":"?"}]}},{"$type":"ParserRule","parameters":[],"name":"Annotation","hiddenTokens":[],"alternatives":{"$type":"Group","elements":[{"$type":"Keyword","value":"@","elements":[]},{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"RuleCall","arguments":[],"rule":{"$refName":"ID"}}}]}},{"$type":"ParserRule","parameters":[],"name":"ParserRule","hiddenTokens":[],"alternatives":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"Assignment","feature":"fragment","operator":"?=","terminal":{"$type":"Keyword","value":"fragment"},"elements":[]},{"$type":"RuleCall","arguments":[],"rule":{"$refName":"RuleNameAndParams"}},{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"wildcard","operator":"?=","terminal":{"$type":"Keyword","value":"*"},"elements":[]},{"$type":"Group","elements":[{"$type":"Keyword","value":"returns","elements":[]},{"$type":"Assignment","feature":"type","operator":"=","terminal":{"$type":"RuleCall","arguments":[],"rule":{"$refName":"ID"}}}],"cardinality":"?"}]}]},{"$type":"Group","elements":[{"$type":"RuleCall","arguments":[],"rule":{"$refName":"RuleNameAndParams"},"elements":[]},{"$type":"Group","elements":[{"$type":"Keyword","value":"returns","elements":[]},{"$type":"Assignment","feature":"type","operator":"=","terminal":{"$type":"RuleCall","arguments":[],"rule":{"$refName":"ID"}}}],"cardinality":"?"}]}]},{"$type":"Group","elements":[{"$type":"Assignment","feature":"definesHiddenTokens","operator":"?=","terminal":{"$type":"Keyword","value":"hidden"},"elements":[]},{"$type":"Keyword","value":"("},{"$type":"Group","elements":[{"$type":"Assignment","feature":"hiddenTokens","operator":"+=","terminal":{"$type":"CrossReference","type":{"$refName":"AbstractRule"},"terminal":{"$type":"RuleCall","arguments":[],"rule":{"$refName":"ID"}}},"elements":[]},{"$type":"Group","elements":[{"$type":"Keyword","value":",","elements":[]},{"$type":"Assignment","feature":"hiddenTokens","operator":"+=","terminal":{"$type":"CrossReference","type":{"$refName":"AbstractRule"},"terminal":{"$type":"RuleCall","arguments":[],"rule":{"$refName":"ID"}}}}],"cardinality":"*"}],"cardinality":"?"},{"$type":"Keyword","value":")"}],"cardinality":"?"},{"$type":"Keyword","value":":"},{"$type":"Assignment","feature":"alternatives","operator":"=","terminal":{"$type":"RuleCall","arguments":[],"rule":{"$refName":"Alternatives"}}},{"$type":"Keyword","value":";"}]}},{"$type":"ParserRule","parameters":[],"name":"RuleNameAndParams","hiddenTokens":[],"fragment":true,"alternatives":{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"RuleCall","arguments":[],"rule":{"$refName":"ID"}},"elements":[]},{"$type":"Group","elements":[{"$type":"Keyword","value":"<","elements":[]},{"$type":"Group","elements":[{"$type":"Assignment","feature":"parameters","operator":"+=","terminal":{"$type":"RuleCall","arguments":[],"rule":{"$refName":"Parameter"}},"elements":[]},{"$type":"Group","elements":[{"$type":"Keyword","value":",","elements":[]},{"$type":"Assignment","feature":"parameters","operator":"+=","terminal":{"$type":"RuleCall","arguments":[],"rule":{"$refName":"Parameter"}}}],"cardinality":"*"}],"cardinality":"?"},{"$type":"Keyword","value":">"}],"cardinality":"?"}]}},{"$type":"ParserRule","parameters":[],"name":"Parameter","hiddenTokens":[],"alternatives":{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"RuleCall","arguments":[],"rule":{"$refName":"ID"}},"elements":[]}},{"$type":"ParserRule","parameters":[],"name":"Alternatives","hiddenTokens":[],"type":"AbstractElement","alternatives":{"$type":"Group","elements":[{"$type":"RuleCall","arguments":[],"rule":{"$refName":"UnorderedGroup"},"elements":[]},{"$type":"Group","elements":[{"$type":"Action","type":"Alternatives","feature":"elements","operator":"+=","elements":[]},{"$type":"Group","elements":[{"$type":"Keyword","value":"|","elements":[]},{"$type":"Assignment","feature":"elements","operator":"+=","terminal":{"$type":"RuleCall","arguments":[],"rule":{"$refName":"UnorderedGroup"}}}],"cardinality":"+"}],"cardinality":"?"}]}},{"$type":"ParserRule","parameters":[],"name":"UnorderedGroup","hiddenTokens":[],"type":"AbstractElement","alternatives":{"$type":"Group","elements":[{"$type":"RuleCall","arguments":[],"rule":{"$refName":"Group"},"elements":[]},{"$type":"Group","elements":[{"$type":"Action","type":"UnorderedGroup","feature":"elements","operator":"+=","elements":[]},{"$type":"Group","elements":[{"$type":"Keyword","value":"&","elements":[]},{"$type":"Assignment","feature":"elements","operator":"+=","terminal":{"$type":"RuleCall","arguments":[],"rule":{"$refName":"Group"}}}],"cardinality":"+"}],"cardinality":"?"}]}},{"$type":"ParserRule","parameters":[],"name":"Group","hiddenTokens":[],"type":"AbstractElement","alternatives":{"$type":"Group","elements":[{"$type":"RuleCall","arguments":[],"rule":{"$refName":"AbstractToken"},"elements":[]},{"$type":"Group","elements":[{"$type":"Action","type":"Group","feature":"elements","operator":"+=","elements":[]},{"$type":"Assignment","feature":"elements","operator":"+=","terminal":{"$type":"RuleCall","arguments":[],"rule":{"$refName":"AbstractToken"}},"cardinality":"+"}],"cardinality":"?"}]}},{"$type":"ParserRule","parameters":[],"name":"AbstractToken","hiddenTokens":[],"type":"AbstractElement","alternatives":{"$type":"Alternatives","elements":[{"$type":"RuleCall","arguments":[],"rule":{"$refName":"AbstractTokenWithCardinality"},"elements":[]},{"$type":"RuleCall","arguments":[],"rule":{"$refName":"Action"},"elements":[]}]}},{"$type":"ParserRule","parameters":[],"name":"AbstractTokenWithCardinality","hiddenTokens":[],"type":"AbstractElement","alternatives":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"RuleCall","arguments":[],"rule":{"$refName":"Assignment"},"elements":[]},{"$type":"RuleCall","arguments":[],"rule":{"$refName":"AbstractTerminal"},"elements":[]}]},{"$type":"Assignment","feature":"cardinality","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"?","elements":[]},{"$type":"Keyword","value":"*"},{"$type":"Keyword","value":"+"}]},"cardinality":"?"}]}},{"$type":"ParserRule","parameters":[],"name":"Action","hiddenTokens":[],"type":"AbstractElement","alternatives":{"$type":"Group","elements":[{"$type":"Action","type":"Action","elements":[]},{"$type":"Keyword","value":"{"},{"$type":"Assignment","feature":"type","operator":"=","terminal":{"$type":"RuleCall","arguments":[],"rule":{"$refName":"ID"}}},{"$type":"Group","elements":[{"$type":"Keyword","value":".","elements":[]},{"$type":"Assignment","feature":"feature","operator":"=","terminal":{"$type":"RuleCall","arguments":[],"rule":{"$refName":"ID"}}},{"$type":"Assignment","feature":"operator","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"=","elements":[]},{"$type":"Keyword","value":"+="}]}},{"$type":"Keyword","value":"current"}],"cardinality":"?"},{"$type":"Keyword","value":"}"}]}},{"$type":"ParserRule","parameters":[],"name":"AbstractTerminal","hiddenTokens":[],"type":"AbstractElement","alternatives":{"$type":"Alternatives","elements":[{"$type":"RuleCall","arguments":[],"rule":{"$refName":"Keyword"},"elements":[]},{"$type":"RuleCall","arguments":[],"rule":{"$refName":"RuleCall"},"elements":[]},{"$type":"RuleCall","arguments":[],"rule":{"$refName":"ParenthesizedElement"},"elements":[]},{"$type":"RuleCall","arguments":[],"rule":{"$refName":"PredicatedKeyword"},"elements":[]},{"$type":"RuleCall","arguments":[],"rule":{"$refName":"PredicatedRuleCall"},"elements":[]},{"$type":"RuleCall","arguments":[],"rule":{"$refName":"PredicatedGroup"},"elements":[]}]}},{"$type":"ParserRule","parameters":[],"name":"Keyword","hiddenTokens":[],"alternatives":{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","arguments":[],"rule":{"$refName":"string"}},"elements":[]}},{"$type":"ParserRule","parameters":[],"name":"RuleCall","hiddenTokens":[],"alternatives":{"$type":"Group","elements":[{"$type":"Assignment","feature":"rule","operator":"=","terminal":{"$type":"CrossReference","type":{"$refName":"AbstractRule"},"terminal":{"$type":"RuleCall","arguments":[],"rule":{"$refName":"ID"}}},"elements":[]},{"$type":"Group","elements":[{"$type":"Keyword","value":"<","elements":[]},{"$type":"Assignment","feature":"arguments","operator":"+=","terminal":{"$type":"RuleCall","arguments":[],"rule":{"$refName":"NamedArgument"}}},{"$type":"Group","elements":[{"$type":"Keyword","value":",","elements":[]},{"$type":"Assignment","feature":"arguments","operator":"+=","terminal":{"$type":"RuleCall","arguments":[],"rule":{"$refName":"NamedArgument"}}}],"cardinality":"*"},{"$type":"Keyword","value":">"}],"cardinality":"?"}]}},{"$type":"ParserRule","parameters":[],"name":"NamedArgument","hiddenTokens":[],"alternatives":{"$type":"Group","elements":[{"$type":"Group","elements":[{"$type":"Assignment","feature":"parameter","operator":"=","terminal":{"$type":"CrossReference","type":{"$refName":"Parameter"},"terminal":{"$type":"RuleCall","arguments":[],"rule":{"$refName":"ID"}}},"elements":[]},{"$type":"Assignment","feature":"calledByName","operator":"?=","terminal":{"$type":"Keyword","value":"="}}],"cardinality":"?"},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","arguments":[],"rule":{"$refName":"Disjunction"}},"elements":[]}]}},{"$type":"ParserRule","parameters":[],"name":"LiteralCondition","hiddenTokens":[],"alternatives":{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"true","operator":"?=","terminal":{"$type":"Keyword","value":"true"},"elements":[]},{"$type":"Keyword","value":"false","elements":[]}]}},{"$type":"ParserRule","parameters":[],"name":"Disjunction","hiddenTokens":[],"type":"Condition","alternatives":{"$type":"Group","elements":[{"$type":"RuleCall","arguments":[],"rule":{"$refName":"Conjunction"},"elements":[]},{"$type":"Group","elements":[{"$type":"Action","type":"Disjunction","feature":"left","operator":"=","elements":[]},{"$type":"Keyword","value":"|"},{"$type":"Assignment","feature":"right","operator":"=","terminal":{"$type":"RuleCall","arguments":[],"rule":{"$refName":"Conjunction"}}}],"cardinality":"?"}]}},{"$type":"ParserRule","parameters":[],"name":"Conjunction","hiddenTokens":[],"type":"Condition","alternatives":{"$type":"Group","elements":[{"$type":"RuleCall","arguments":[],"rule":{"$refName":"Negation"},"elements":[]},{"$type":"Group","elements":[{"$type":"Action","type":"Conjunction","feature":"left","operator":"=","elements":[]},{"$type":"Keyword","value":"&"},{"$type":"Assignment","feature":"right","operator":"=","terminal":{"$type":"RuleCall","arguments":[],"rule":{"$refName":"Negation"}}}],"cardinality":"?"}]}},{"$type":"ParserRule","parameters":[],"name":"Negation","hiddenTokens":[],"type":"Condition","alternatives":{"$type":"Alternatives","elements":[{"$type":"RuleCall","arguments":[],"rule":{"$refName":"Atom"},"elements":[]},{"$type":"Group","elements":[{"$type":"Action","type":"Negation","elements":[]},{"$type":"Keyword","value":"!"},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","arguments":[],"rule":{"$refName":"Negation"}}}]}]}},{"$type":"ParserRule","parameters":[],"name":"Atom","hiddenTokens":[],"type":"Condition","alternatives":{"$type":"Alternatives","elements":[{"$type":"RuleCall","arguments":[],"rule":{"$refName":"ParameterReference"},"elements":[]},{"$type":"RuleCall","arguments":[],"rule":{"$refName":"ParenthesizedCondition"},"elements":[]},{"$type":"RuleCall","arguments":[],"rule":{"$refName":"LiteralCondition"},"elements":[]}]}},{"$type":"ParserRule","parameters":[],"name":"ParenthesizedCondition","hiddenTokens":[],"type":"Condition","alternatives":{"$type":"Group","elements":[{"$type":"Keyword","value":"(","elements":[]},{"$type":"RuleCall","arguments":[],"rule":{"$refName":"Disjunction"}},{"$type":"Keyword","value":")"}]}},{"$type":"ParserRule","parameters":[],"name":"ParameterReference","hiddenTokens":[],"alternatives":{"$type":"Assignment","feature":"parameter","operator":"=","terminal":{"$type":"CrossReference","type":{"$refName":"Parameter"},"terminal":{"$type":"RuleCall","arguments":[],"rule":{"$refName":"ID"}}},"elements":[]}},{"$type":"ParserRule","parameters":[],"name":"TerminalRuleCall","hiddenTokens":[],"alternatives":{"$type":"Assignment","feature":"rule","operator":"=","terminal":{"$type":"CrossReference","type":{"$refName":"AbstractRule"},"terminal":{"$type":"RuleCall","arguments":[],"rule":{"$refName":"ID"}}},"elements":[]}},{"$type":"ParserRule","parameters":[],"name":"PredicatedKeyword","hiddenTokens":[],"type":"Keyword","alternatives":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"predicated","operator":"?=","terminal":{"$type":"Keyword","value":"=>"},"elements":[]},{"$type":"Assignment","feature":"firstSetPredicated","operator":"?=","terminal":{"$type":"Keyword","value":"->"},"elements":[]}]},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","arguments":[],"rule":{"$refName":"string"}}}]}},{"$type":"ParserRule","parameters":[],"name":"PredicatedRuleCall","hiddenTokens":[],"type":"RuleCall","alternatives":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"predicated","operator":"?=","terminal":{"$type":"Keyword","value":"=>"},"elements":[]},{"$type":"Assignment","feature":"firstSetPredicated","operator":"?=","terminal":{"$type":"Keyword","value":"->"},"elements":[]}]},{"$type":"Assignment","feature":"rule","operator":"=","terminal":{"$type":"CrossReference","type":{"$refName":"AbstractRule"},"terminal":{"$type":"RuleCall","arguments":[],"rule":{"$refName":"ID"}}}},{"$type":"Group","elements":[{"$type":"Keyword","value":"<","elements":[]},{"$type":"Assignment","feature":"arguments","operator":"+=","terminal":{"$type":"RuleCall","arguments":[],"rule":{"$refName":"NamedArgument"}}},{"$type":"Group","elements":[{"$type":"Keyword","value":",","elements":[]},{"$type":"Assignment","feature":"arguments","operator":"+=","terminal":{"$type":"RuleCall","arguments":[],"rule":{"$refName":"NamedArgument"}}}],"cardinality":"*"},{"$type":"Keyword","value":">"}],"cardinality":"?"}]}},{"$type":"ParserRule","parameters":[],"name":"Assignment","hiddenTokens":[],"type":"AbstractElement","alternatives":{"$type":"Group","elements":[{"$type":"Action","type":"Assignment","elements":[]},{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"predicated","operator":"?=","terminal":{"$type":"Keyword","value":"=>"},"elements":[]},{"$type":"Assignment","feature":"firstSetPredicated","operator":"?=","terminal":{"$type":"Keyword","value":"->"},"elements":[]}],"cardinality":"?"},{"$type":"Assignment","feature":"feature","operator":"=","terminal":{"$type":"RuleCall","arguments":[],"rule":{"$refName":"ID"}}},{"$type":"Assignment","feature":"operator","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"+=","elements":[]},{"$type":"Keyword","value":"="},{"$type":"Keyword","value":"?="}]}},{"$type":"Assignment","feature":"terminal","operator":"=","terminal":{"$type":"RuleCall","arguments":[],"rule":{"$refName":"AssignableTerminal"}}}]}},{"$type":"ParserRule","parameters":[],"name":"AssignableTerminal","hiddenTokens":[],"type":"AbstractElement","alternatives":{"$type":"Alternatives","elements":[{"$type":"RuleCall","arguments":[],"rule":{"$refName":"Keyword"},"elements":[]},{"$type":"RuleCall","arguments":[],"rule":{"$refName":"RuleCall"},"elements":[]},{"$type":"RuleCall","arguments":[],"rule":{"$refName":"ParenthesizedAssignableElement"},"elements":[]},{"$type":"RuleCall","arguments":[],"rule":{"$refName":"CrossReference"},"elements":[]}]}},{"$type":"ParserRule","parameters":[],"name":"ParenthesizedAssignableElement","hiddenTokens":[],"type":"AbstractElement","alternatives":{"$type":"Group","elements":[{"$type":"Keyword","value":"(","elements":[]},{"$type":"RuleCall","arguments":[],"rule":{"$refName":"AssignableAlternatives"}},{"$type":"Keyword","value":")"}]}},{"$type":"ParserRule","parameters":[],"name":"AssignableAlternatives","hiddenTokens":[],"type":"AbstractElement","alternatives":{"$type":"Group","elements":[{"$type":"RuleCall","arguments":[],"rule":{"$refName":"AssignableTerminal"},"elements":[]},{"$type":"Group","elements":[{"$type":"Action","type":"Alternatives","feature":"elements","operator":"+=","elements":[]},{"$type":"Group","elements":[{"$type":"Keyword","value":"|","elements":[]},{"$type":"Assignment","feature":"elements","operator":"+=","terminal":{"$type":"RuleCall","arguments":[],"rule":{"$refName":"AssignableTerminal"}}}],"cardinality":"+"}],"cardinality":"?"}]}},{"$type":"ParserRule","parameters":[],"name":"CrossReference","hiddenTokens":[],"type":"AbstractElement","alternatives":{"$type":"Group","elements":[{"$type":"Action","type":"CrossReference","elements":[]},{"$type":"Keyword","value":"["},{"$type":"Assignment","feature":"type","operator":"=","terminal":{"$type":"CrossReference","type":{"$refName":"ParserRule"},"terminal":{"$type":"RuleCall","arguments":[],"rule":{"$refName":"ID"}}}},{"$type":"Group","elements":[{"$type":"Keyword","value":"|","elements":[]},{"$type":"Assignment","feature":"terminal","operator":"=","terminal":{"$type":"RuleCall","arguments":[],"rule":{"$refName":"CrossReferenceableTerminal"}}}],"cardinality":"?"},{"$type":"Keyword","value":"]"}]}},{"$type":"ParserRule","parameters":[],"name":"CrossReferenceableTerminal","hiddenTokens":[],"type":"AbstractElement","alternatives":{"$type":"Alternatives","elements":[{"$type":"RuleCall","arguments":[],"rule":{"$refName":"Keyword"},"elements":[]},{"$type":"RuleCall","arguments":[],"rule":{"$refName":"RuleCall"},"elements":[]}]}},{"$type":"ParserRule","parameters":[],"name":"ParenthesizedElement","hiddenTokens":[],"type":"AbstractElement","alternatives":{"$type":"Group","elements":[{"$type":"Keyword","value":"(","elements":[]},{"$type":"RuleCall","arguments":[],"rule":{"$refName":"Alternatives"}},{"$type":"Keyword","value":")"}]}},{"$type":"ParserRule","parameters":[],"name":"PredicatedGroup","hiddenTokens":[],"type":"Group","alternatives":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"predicated","operator":"?=","terminal":{"$type":"Keyword","value":"=>"},"elements":[]},{"$type":"Assignment","feature":"firstSetPredicated","operator":"?=","terminal":{"$type":"Keyword","value":"->"},"elements":[]}]},{"$type":"Keyword","value":"("},{"$type":"Assignment","feature":"elements","operator":"+=","terminal":{"$type":"RuleCall","arguments":[],"rule":{"$refName":"Alternatives"}}},{"$type":"Keyword","value":")"}]}},{"$type":"ParserRule","parameters":[],"name":"TerminalRule","hiddenTokens":[],"alternatives":{"$type":"Group","elements":[{"$type":"Keyword","value":"terminal","elements":[]},{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"Assignment","feature":"fragment","operator":"?=","terminal":{"$type":"Keyword","value":"fragment"},"elements":[]},{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"RuleCall","arguments":[],"rule":{"$refName":"ID"}}}]},{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"RuleCall","arguments":[],"rule":{"$refName":"ID"}},"elements":[]},{"$type":"Group","elements":[{"$type":"Keyword","value":"returns","elements":[]},{"$type":"Assignment","feature":"type","operator":"=","terminal":{"$type":"RuleCall","arguments":[],"rule":{"$refName":"ID"}}}],"cardinality":"?"}]}]},{"$type":"Keyword","value":":"},{"$type":"Assignment","feature":"regex","operator":"=","terminal":{"$type":"RuleCall","arguments":[],"rule":{"$refName":"RegexLiteral"}}},{"$type":"Keyword","value":";"}]}},{"$type":"TerminalRule","name":"RegexLiteral","type":"string","regex":"/\\/(?![*+?])(?:[^\\r\\n\\[/\\\\]|\\\\.|\\[(?:[^\\r\\n\\]\\\\]|\\\\.)*\\])+\\//"},{"$type":"ParserRule","parameters":[],"name":"TerminalAlternatives","hiddenTokens":[],"alternatives":{"$type":"Group","elements":[{"$type":"RuleCall","arguments":[],"rule":{"$refName":"TerminalGroup"},"elements":[]},{"$type":"Group","elements":[{"$type":"Action","type":"TerminalAlternatives","feature":"elements","operator":"+=","elements":[]},{"$type":"Keyword","value":"|"},{"$type":"Assignment","feature":"elements","operator":"+=","terminal":{"$type":"RuleCall","arguments":[],"rule":{"$refName":"TerminalGroup"}}}],"cardinality":"*"}]}},{"$type":"ParserRule","parameters":[],"name":"TerminalGroup","hiddenTokens":[],"alternatives":{"$type":"Group","elements":[{"$type":"RuleCall","arguments":[],"rule":{"$refName":"TerminalToken"},"elements":[]},{"$type":"Group","elements":[{"$type":"Action","type":"TerminalGroup","feature":"elements","operator":"+=","elements":[]},{"$type":"Assignment","feature":"elements","operator":"+=","terminal":{"$type":"RuleCall","arguments":[],"rule":{"$refName":"TerminalToken"}},"cardinality":"+"}],"cardinality":"?"}]}},{"$type":"ParserRule","parameters":[],"name":"TerminalToken","hiddenTokens":[],"alternatives":{"$type":"Group","elements":[{"$type":"RuleCall","arguments":[],"rule":{"$refName":"TerminalTokenElement"},"elements":[]},{"$type":"Assignment","feature":"cardinality","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"?","elements":[]},{"$type":"Keyword","value":"*"},{"$type":"Keyword","value":"+"}]},"cardinality":"?"}]}},{"$type":"ParserRule","parameters":[],"name":"TerminalTokenElement","hiddenTokens":[],"alternatives":{"$type":"Alternatives","elements":[{"$type":"RuleCall","arguments":[],"rule":{"$refName":"CharacterRange"},"elements":[]},{"$type":"RuleCall","arguments":[],"rule":{"$refName":"TerminalRuleCall"},"elements":[]},{"$type":"RuleCall","arguments":[],"rule":{"$refName":"ParenthesizedTerminalElement"},"elements":[]},{"$type":"RuleCall","arguments":[],"rule":{"$refName":"AbstractNegatedToken"},"elements":[]},{"$type":"RuleCall","arguments":[],"rule":{"$refName":"Wildcard"},"elements":[]}]}},{"$type":"ParserRule","parameters":[],"name":"ParenthesizedTerminalElement","hiddenTokens":[],"type":"TerminalAlternatives","alternatives":{"$type":"Group","elements":[{"$type":"Keyword","value":"(","elements":[]},{"$type":"RuleCall","arguments":[],"rule":{"$refName":"TerminalAlternatives"}},{"$type":"Keyword","value":")"}]}},{"$type":"ParserRule","parameters":[],"name":"AbstractNegatedToken","hiddenTokens":[],"alternatives":{"$type":"Alternatives","elements":[{"$type":"RuleCall","arguments":[],"rule":{"$refName":"NegatedToken"},"elements":[]},{"$type":"RuleCall","arguments":[],"rule":{"$refName":"UntilToken"},"elements":[]}]}},{"$type":"ParserRule","parameters":[],"name":"NegatedToken","hiddenTokens":[],"alternatives":{"$type":"Group","elements":[{"$type":"Keyword","value":"!","elements":[]},{"$type":"Assignment","feature":"terminal","operator":"=","terminal":{"$type":"RuleCall","arguments":[],"rule":{"$refName":"TerminalTokenElement"}}}]}},{"$type":"ParserRule","parameters":[],"name":"UntilToken","hiddenTokens":[],"alternatives":{"$type":"Group","elements":[{"$type":"Keyword","value":"->","elements":[]},{"$type":"Assignment","feature":"terminal","operator":"=","terminal":{"$type":"RuleCall","arguments":[],"rule":{"$refName":"TerminalTokenElement"}}}]}},{"$type":"ParserRule","parameters":[],"name":"Wildcard","hiddenTokens":[],"alternatives":{"$type":"Group","elements":[{"$type":"Action","type":"Wildcard","elements":[]},{"$type":"Keyword","value":"."}]}},{"$type":"ParserRule","parameters":[],"name":"CharacterRange","hiddenTokens":[],"alternatives":{"$type":"Group","elements":[{"$type":"Assignment","feature":"left","operator":"=","terminal":{"$type":"RuleCall","arguments":[],"rule":{"$refName":"Keyword"}},"elements":[]},{"$type":"Group","elements":[{"$type":"Keyword","value":"..","elements":[]},{"$type":"Assignment","feature":"right","operator":"=","terminal":{"$type":"RuleCall","arguments":[],"rule":{"$refName":"Keyword"}}}],"cardinality":"?"}]}}],"name":"LangiumGrammar","definesHiddenTokens":true}
/******************************************************************************
* This file was generated by langium-cli 0.0.0.
* This file was generated by langium-cli 0.1.0.
* DO NOT EDIT MANUALLY!

@@ -4,0 +4,0 @@ ******************************************************************************/

"use strict";
/******************************************************************************
* This file was generated by langium-cli 0.0.0.
* This file was generated by langium-cli 0.1.0.
* DO NOT EDIT MANUALLY!

@@ -5,0 +5,0 @@ ******************************************************************************/

/******************************************************************************
* This file was generated by langium-cli 0.0.0.
* This file was generated by langium-cli 0.1.0.
* DO NOT EDIT MANUALLY!

@@ -4,0 +4,0 @@ ******************************************************************************/

"use strict";
/******************************************************************************
* This file was generated by langium-cli 0.0.0.
* This file was generated by langium-cli 0.1.0.
* DO NOT EDIT MANUALLY!

@@ -5,0 +5,0 @@ ******************************************************************************/

@@ -53,4 +53,5 @@ /******************************************************************************

private buildReference;
private assignWithoutOverride;
}
export {};
//# sourceMappingURL=langium-parser.d.ts.map

@@ -100,3 +100,3 @@ "use strict";

const resultKind = result.$type;
const object = Object.assign(result, this.current);
const object = this.assignWithoutOverride(result, this.current);
if (resultKind) {

@@ -146,8 +146,7 @@ object.$type = resultKind;

if (!this.wrapper.IS_RECORDING) {
// TODO fix this by inverting the assign call in unassignedSubrule
//const item = this.current.object;
const item = this.current;
for (const element of Object.values(grammarAccessElement)) {
if (ast_1.isAssignment(element)) {
if (grammar_util_1.isArrayOperator(element.operator)) {
//item[element.feature] = [];
item[element.feature] = [];
}

@@ -230,2 +229,10 @@ }

}
assignWithoutOverride(target, source) {
for (const [name, value] of Object.entries(source)) {
if (target[name] === undefined) {
target[name] = value;
}
}
return target;
}
}

@@ -232,0 +239,0 @@ exports.LangiumParser = LangiumParser;

{
"name": "langium",
"version": "0.1.0-next.b687a8a",
"version": "0.1.0",
"description": "A language engineering tool for the Language Server Protocol",

@@ -56,3 +56,9 @@ "keywords": [

"typescript": "^4.2.2"
},
"repository": "github:langium/langium",
"bugs": "https://github.com/langium/langium/issues",
"author": {
"name": "TypeFox",
"url": "https://www.typefox.io"
}
}
/******************************************************************************
* This file was generated by langium-cli 0.0.0.
* This file was generated by langium-cli 0.1.0.
* DO NOT EDIT MANUALLY!

@@ -4,0 +4,0 @@ ******************************************************************************/

/******************************************************************************
* This file was generated by langium-cli 0.0.0.
* This file was generated by langium-cli 0.1.0.
* DO NOT EDIT MANUALLY!

@@ -4,0 +4,0 @@ ******************************************************************************/

@@ -1,1 +0,1 @@

{"$type":"Grammar","name":"LangiumGrammar","definesHiddenTokens":true,"hiddenTokens":[{"$refName":"WS"},{"$refName":"SL_COMMENT"},{"$refName":"ML_COMMENT"}],"rules":[{"$type":"TerminalRule","name":"WS","regex":"/\\s+/"},{"$type":"TerminalRule","name":"ID","type":"string","regex":"/\\^?[_a-zA-Z][\\w_]*/"},{"$type":"TerminalRule","name":"INT","type":"number","regex":"/[0-9]+/"},{"$type":"TerminalRule","name":"string","regex":"/\"[^\"]*\"|'[^']*'/"},{"$type":"TerminalRule","name":"ML_COMMENT","regex":"/\\/\\*[\\s\\S]*?\\*\\//"},{"$type":"TerminalRule","name":"SL_COMMENT","regex":"/\\/\\/[^\\n\\r]*/"},{"$type":"ParserRule","name":"Grammar","alternatives":{"$type":"Group","elements":[{"$type":"Keyword","value":"grammar"},{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"RuleCall","rule":{"$refName":"ID"}}},{"$type":"Group","elements":[{"$type":"Keyword","value":"with"},{"$type":"Assignment","feature":"usedGrammars","operator":"+=","terminal":{"$type":"CrossReference","type":{"$refName":"Grammar"},"terminal":{"$type":"RuleCall","rule":{"$refName":"ID"}}}},{"$type":"Group","elements":[{"$type":"Keyword","value":","},{"$type":"Assignment","feature":"usedGrammars","operator":"+=","terminal":{"$type":"CrossReference","type":{"$refName":"Grammar"},"terminal":{"$type":"RuleCall","rule":{"$refName":"ID"}}}}],"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":{"$refName":"AbstractRule"},"terminal":{"$type":"RuleCall","rule":{"$refName":"ID"}}}},{"$type":"Group","elements":[{"$type":"Keyword","value":","},{"$type":"Assignment","feature":"hiddenTokens","operator":"+=","terminal":{"$type":"CrossReference","type":{"$refName":"AbstractRule"},"terminal":{"$type":"RuleCall","rule":{"$refName":"ID"}}}}],"cardinality":"*"}],"cardinality":"?"},{"$type":"Keyword","value":")"}],"cardinality":"?"},{"$type":"Assignment","feature":"metamodelDeclarations","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$refName":"AbstractMetamodelDeclaration"}},"cardinality":"*"},{"$type":"Assignment","feature":"rules","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$refName":"AbstractRule"}},"cardinality":"+"}]}},{"$type":"ParserRule","name":"AbstractRule","alternatives":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$refName":"ParserRule"}},{"$type":"RuleCall","rule":{"$refName":"TerminalRule"}}]}},{"$type":"ParserRule","name":"AbstractMetamodelDeclaration","alternatives":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$refName":"GeneratedMetamodel"}},{"$type":"RuleCall","rule":{"$refName":"ReferencedMetamodel"}}]}},{"$type":"ParserRule","name":"GeneratedMetamodel","alternatives":{"$type":"Group","elements":[{"$type":"Keyword","value":"generate"},{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"RuleCall","rule":{"$refName":"ID"}}},{"$type":"Assignment","feature":"ePackage","operator":"=","terminal":{"$type":"RuleCall","rule":{"$refName":"string"}}},{"$type":"Group","elements":[{"$type":"Keyword","value":"as"},{"$type":"Assignment","feature":"alias","operator":"=","terminal":{"$type":"RuleCall","rule":{"$refName":"ID"}}}],"cardinality":"?"}]}},{"$type":"ParserRule","name":"ReferencedMetamodel","alternatives":{"$type":"Group","elements":[{"$type":"Keyword","value":"import"},{"$type":"Assignment","feature":"ePackage","operator":"=","terminal":{"$type":"RuleCall","rule":{"$refName":"string"}}},{"$type":"Group","elements":[{"$type":"Keyword","value":"as"},{"$type":"Assignment","feature":"alias","operator":"=","terminal":{"$type":"RuleCall","rule":{"$refName":"ID"}}}],"cardinality":"?"}]}},{"$type":"ParserRule","name":"Annotation","alternatives":{"$type":"Group","elements":[{"$type":"Keyword","value":"@"},{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"RuleCall","rule":{"$refName":"ID"}}}]}},{"$type":"ParserRule","name":"ParserRule","alternatives":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"Assignment","feature":"fragment","operator":"?=","terminal":{"$type":"Keyword","value":"fragment"}},{"$type":"RuleCall","rule":{"$refName":"RuleNameAndParams"}},{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"wildcard","operator":"?=","terminal":{"$type":"Keyword","value":"*"}},{"$type":"Group","elements":[{"$type":"Keyword","value":"returns"},{"$type":"Assignment","feature":"type","operator":"=","terminal":{"$type":"RuleCall","rule":{"$refName":"ID"}}}],"cardinality":"?"}]}]},{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$refName":"RuleNameAndParams"}},{"$type":"Group","elements":[{"$type":"Keyword","value":"returns"},{"$type":"Assignment","feature":"type","operator":"=","terminal":{"$type":"RuleCall","rule":{"$refName":"ID"}}}],"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":{"$refName":"AbstractRule"},"terminal":{"$type":"RuleCall","rule":{"$refName":"ID"}}}},{"$type":"Group","elements":[{"$type":"Keyword","value":","},{"$type":"Assignment","feature":"hiddenTokens","operator":"+=","terminal":{"$type":"CrossReference","type":{"$refName":"AbstractRule"},"terminal":{"$type":"RuleCall","rule":{"$refName":"ID"}}}}],"cardinality":"*"}],"cardinality":"?"},{"$type":"Keyword","value":")"}],"cardinality":"?"},{"$type":"Keyword","value":":"},{"$type":"Assignment","feature":"alternatives","operator":"=","terminal":{"$type":"RuleCall","rule":{"$refName":"Alternatives"}}},{"$type":"Keyword","value":";"}]}},{"$type":"ParserRule","name":"RuleNameAndParams","fragment":true,"alternatives":{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"RuleCall","rule":{"$refName":"ID"}}},{"$type":"Group","elements":[{"$type":"Keyword","value":"<"},{"$type":"Group","elements":[{"$type":"Assignment","feature":"parameters","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$refName":"Parameter"}}},{"$type":"Group","elements":[{"$type":"Keyword","value":","},{"$type":"Assignment","feature":"parameters","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$refName":"Parameter"}}}],"cardinality":"*"}],"cardinality":"?"},{"$type":"Keyword","value":">"}],"cardinality":"?"}]}},{"$type":"ParserRule","name":"Parameter","alternatives":{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"RuleCall","rule":{"$refName":"ID"}}}},{"$type":"ParserRule","name":"Alternatives","type":"AbstractElement","alternatives":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$refName":"UnorderedGroup"}},{"$type":"Group","elements":[{"$type":"Action","type":"Alternatives","feature":"elements","operator":"+="},{"$type":"Group","elements":[{"$type":"Keyword","value":"|"},{"$type":"Assignment","feature":"elements","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$refName":"UnorderedGroup"}}}],"cardinality":"+"}],"cardinality":"?"}]}},{"$type":"ParserRule","name":"UnorderedGroup","type":"AbstractElement","alternatives":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$refName":"Group"}},{"$type":"Group","elements":[{"$type":"Action","type":"UnorderedGroup","feature":"elements","operator":"+="},{"$type":"Group","elements":[{"$type":"Keyword","value":"&"},{"$type":"Assignment","feature":"elements","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$refName":"Group"}}}],"cardinality":"+"}],"cardinality":"?"}]}},{"$type":"ParserRule","name":"Group","type":"AbstractElement","alternatives":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$refName":"AbstractToken"}},{"$type":"Group","elements":[{"$type":"Action","type":"Group","feature":"elements","operator":"+="},{"$type":"Assignment","feature":"elements","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$refName":"AbstractToken"}},"cardinality":"+"}],"cardinality":"?"}]}},{"$type":"ParserRule","name":"AbstractToken","type":"AbstractElement","alternatives":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$refName":"AbstractTokenWithCardinality"}},{"$type":"RuleCall","rule":{"$refName":"Action"}}]}},{"$type":"ParserRule","name":"AbstractTokenWithCardinality","type":"AbstractElement","alternatives":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$refName":"Assignment"}},{"$type":"RuleCall","rule":{"$refName":"AbstractTerminal"}}]},{"$type":"Assignment","feature":"cardinality","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"?"},{"$type":"Keyword","value":"*"},{"$type":"Keyword","value":"+"}]},"cardinality":"?"}]}},{"$type":"ParserRule","name":"Action","type":"AbstractElement","alternatives":{"$type":"Group","elements":[{"$type":"Action","type":"Action"},{"$type":"Keyword","value":"{"},{"$type":"Assignment","feature":"type","operator":"=","terminal":{"$type":"RuleCall","rule":{"$refName":"ID"}}},{"$type":"Group","elements":[{"$type":"Keyword","value":"."},{"$type":"Assignment","feature":"feature","operator":"=","terminal":{"$type":"RuleCall","rule":{"$refName":"ID"}}},{"$type":"Assignment","feature":"operator","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"="},{"$type":"Keyword","value":"+="}]}},{"$type":"Keyword","value":"current"}],"cardinality":"?"},{"$type":"Keyword","value":"}"}]}},{"$type":"ParserRule","name":"AbstractTerminal","type":"AbstractElement","alternatives":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$refName":"Keyword"}},{"$type":"RuleCall","rule":{"$refName":"RuleCall"}},{"$type":"RuleCall","rule":{"$refName":"ParenthesizedElement"}},{"$type":"RuleCall","rule":{"$refName":"PredicatedKeyword"}},{"$type":"RuleCall","rule":{"$refName":"PredicatedRuleCall"}},{"$type":"RuleCall","rule":{"$refName":"PredicatedGroup"}}]}},{"$type":"ParserRule","name":"Keyword","alternatives":{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$refName":"string"}}}},{"$type":"ParserRule","name":"RuleCall","alternatives":{"$type":"Group","elements":[{"$type":"Assignment","feature":"rule","operator":"=","terminal":{"$type":"CrossReference","type":{"$refName":"AbstractRule"},"terminal":{"$type":"RuleCall","rule":{"$refName":"ID"}}}},{"$type":"Group","elements":[{"$type":"Keyword","value":"<"},{"$type":"Assignment","feature":"arguments","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$refName":"NamedArgument"}}},{"$type":"Group","elements":[{"$type":"Keyword","value":","},{"$type":"Assignment","feature":"arguments","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$refName":"NamedArgument"}}}],"cardinality":"*"},{"$type":"Keyword","value":">"}],"cardinality":"?"}]}},{"$type":"ParserRule","name":"NamedArgument","alternatives":{"$type":"Group","elements":[{"$type":"Group","elements":[{"$type":"Assignment","feature":"parameter","operator":"=","terminal":{"$type":"CrossReference","type":{"$refName":"Parameter"},"terminal":{"$type":"RuleCall","rule":{"$refName":"ID"}}}},{"$type":"Assignment","feature":"calledByName","operator":"?=","terminal":{"$type":"Keyword","value":"="}}],"cardinality":"?"},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$refName":"Disjunction"}}}]}},{"$type":"ParserRule","name":"LiteralCondition","alternatives":{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"true","operator":"?=","terminal":{"$type":"Keyword","value":"true"}},{"$type":"Keyword","value":"false"}]}},{"$type":"ParserRule","name":"Disjunction","type":"Condition","alternatives":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$refName":"Conjunction"}},{"$type":"Group","elements":[{"$type":"Action","type":"Disjunction","feature":"left","operator":"="},{"$type":"Keyword","value":"|"},{"$type":"Assignment","feature":"right","operator":"=","terminal":{"$type":"RuleCall","rule":{"$refName":"Conjunction"}}}],"cardinality":"?"}]}},{"$type":"ParserRule","name":"Conjunction","type":"Condition","alternatives":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$refName":"Negation"}},{"$type":"Group","elements":[{"$type":"Action","type":"Conjunction","feature":"left","operator":"="},{"$type":"Keyword","value":"&"},{"$type":"Assignment","feature":"right","operator":"=","terminal":{"$type":"RuleCall","rule":{"$refName":"Negation"}}}],"cardinality":"?"}]}},{"$type":"ParserRule","name":"Negation","type":"Condition","alternatives":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$refName":"Atom"}},{"$type":"Group","elements":[{"$type":"Action","type":"Negation"},{"$type":"Keyword","value":"!"},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$refName":"Negation"}}}]}]}},{"$type":"ParserRule","name":"Atom","type":"Condition","alternatives":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$refName":"ParameterReference"}},{"$type":"RuleCall","rule":{"$refName":"ParenthesizedCondition"}},{"$type":"RuleCall","rule":{"$refName":"LiteralCondition"}}]}},{"$type":"ParserRule","name":"ParenthesizedCondition","type":"Condition","alternatives":{"$type":"Group","elements":[{"$type":"Keyword","value":"("},{"$type":"RuleCall","rule":{"$refName":"Disjunction"}},{"$type":"Keyword","value":")"}]}},{"$type":"ParserRule","name":"ParameterReference","alternatives":{"$type":"Assignment","feature":"parameter","operator":"=","terminal":{"$type":"CrossReference","type":{"$refName":"Parameter"},"terminal":{"$type":"RuleCall","rule":{"$refName":"ID"}}}}},{"$type":"ParserRule","name":"TerminalRuleCall","alternatives":{"$type":"Assignment","feature":"rule","operator":"=","terminal":{"$type":"CrossReference","type":{"$refName":"AbstractRule"},"terminal":{"$type":"RuleCall","rule":{"$refName":"ID"}}}}},{"$type":"ParserRule","name":"PredicatedKeyword","type":"Keyword","alternatives":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"predicated","operator":"?=","terminal":{"$type":"Keyword","value":"=>"}},{"$type":"Assignment","feature":"firstSetPredicated","operator":"?=","terminal":{"$type":"Keyword","value":"->"}}]},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$refName":"string"}}}]}},{"$type":"ParserRule","name":"PredicatedRuleCall","type":"RuleCall","alternatives":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"predicated","operator":"?=","terminal":{"$type":"Keyword","value":"=>"}},{"$type":"Assignment","feature":"firstSetPredicated","operator":"?=","terminal":{"$type":"Keyword","value":"->"}}]},{"$type":"Assignment","feature":"rule","operator":"=","terminal":{"$type":"CrossReference","type":{"$refName":"AbstractRule"},"terminal":{"$type":"RuleCall","rule":{"$refName":"ID"}}}},{"$type":"Group","elements":[{"$type":"Keyword","value":"<"},{"$type":"Assignment","feature":"arguments","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$refName":"NamedArgument"}}},{"$type":"Group","elements":[{"$type":"Keyword","value":","},{"$type":"Assignment","feature":"arguments","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$refName":"NamedArgument"}}}],"cardinality":"*"},{"$type":"Keyword","value":">"}],"cardinality":"?"}]}},{"$type":"ParserRule","name":"Assignment","type":"AbstractElement","alternatives":{"$type":"Group","elements":[{"$type":"Action","type":"Assignment"},{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"predicated","operator":"?=","terminal":{"$type":"Keyword","value":"=>"}},{"$type":"Assignment","feature":"firstSetPredicated","operator":"?=","terminal":{"$type":"Keyword","value":"->"}}],"cardinality":"?"},{"$type":"Assignment","feature":"feature","operator":"=","terminal":{"$type":"RuleCall","rule":{"$refName":"ID"}}},{"$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":{"$refName":"AssignableTerminal"}}}]}},{"$type":"ParserRule","name":"AssignableTerminal","type":"AbstractElement","alternatives":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$refName":"Keyword"}},{"$type":"RuleCall","rule":{"$refName":"RuleCall"}},{"$type":"RuleCall","rule":{"$refName":"ParenthesizedAssignableElement"}},{"$type":"RuleCall","rule":{"$refName":"CrossReference"}}]}},{"$type":"ParserRule","name":"ParenthesizedAssignableElement","type":"AbstractElement","alternatives":{"$type":"Group","elements":[{"$type":"Keyword","value":"("},{"$type":"RuleCall","rule":{"$refName":"AssignableAlternatives"}},{"$type":"Keyword","value":")"}]}},{"$type":"ParserRule","name":"AssignableAlternatives","type":"AbstractElement","alternatives":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$refName":"AssignableTerminal"}},{"$type":"Group","elements":[{"$type":"Action","type":"Alternatives","feature":"elements","operator":"+="},{"$type":"Group","elements":[{"$type":"Keyword","value":"|"},{"$type":"Assignment","feature":"elements","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$refName":"AssignableTerminal"}}}],"cardinality":"+"}],"cardinality":"?"}]}},{"$type":"ParserRule","name":"CrossReference","type":"AbstractElement","alternatives":{"$type":"Group","elements":[{"$type":"Action","type":"CrossReference"},{"$type":"Keyword","value":"["},{"$type":"Assignment","feature":"type","operator":"=","terminal":{"$type":"CrossReference","type":{"$refName":"ParserRule"},"terminal":{"$type":"RuleCall","rule":{"$refName":"ID"}}}},{"$type":"Group","elements":[{"$type":"Keyword","value":"|"},{"$type":"Assignment","feature":"terminal","operator":"=","terminal":{"$type":"RuleCall","rule":{"$refName":"CrossReferenceableTerminal"}}}],"cardinality":"?"},{"$type":"Keyword","value":"]"}]}},{"$type":"ParserRule","name":"CrossReferenceableTerminal","type":"AbstractElement","alternatives":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$refName":"Keyword"}},{"$type":"RuleCall","rule":{"$refName":"RuleCall"}}]}},{"$type":"ParserRule","name":"ParenthesizedElement","type":"AbstractElement","alternatives":{"$type":"Group","elements":[{"$type":"Keyword","value":"("},{"$type":"RuleCall","rule":{"$refName":"Alternatives"}},{"$type":"Keyword","value":")"}]}},{"$type":"ParserRule","name":"PredicatedGroup","type":"Group","alternatives":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"predicated","operator":"?=","terminal":{"$type":"Keyword","value":"=>"}},{"$type":"Assignment","feature":"firstSetPredicated","operator":"?=","terminal":{"$type":"Keyword","value":"->"}}]},{"$type":"Keyword","value":"("},{"$type":"Assignment","feature":"elements","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$refName":"Alternatives"}}},{"$type":"Keyword","value":")"}]}},{"$type":"ParserRule","name":"TerminalRule","alternatives":{"$type":"Group","elements":[{"$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":{"$refName":"ID"}}}]},{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"RuleCall","rule":{"$refName":"ID"}}},{"$type":"Group","elements":[{"$type":"Keyword","value":"returns"},{"$type":"Assignment","feature":"type","operator":"=","terminal":{"$type":"RuleCall","rule":{"$refName":"ID"}}}],"cardinality":"?"}]}]},{"$type":"Keyword","value":":"},{"$type":"Assignment","feature":"regex","operator":"=","terminal":{"$type":"RuleCall","rule":{"$refName":"RegexLiteral"}}},{"$type":"Keyword","value":";"}]}},{"$type":"TerminalRule","name":"RegexLiteral","type":"string","regex":"/\\/(?![*+?])(?:[^\\r\\n\\[/\\\\]|\\\\.|\\[(?:[^\\r\\n\\]\\\\]|\\\\.)*\\])+\\//"},{"$type":"ParserRule","name":"TerminalAlternatives","alternatives":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$refName":"TerminalGroup"}},{"$type":"Group","elements":[{"$type":"Action","type":"TerminalAlternatives","feature":"elements","operator":"+="},{"$type":"Keyword","value":"|"},{"$type":"Assignment","feature":"elements","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$refName":"TerminalGroup"}}}],"cardinality":"*"}]}},{"$type":"ParserRule","name":"TerminalGroup","alternatives":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$refName":"TerminalToken"}},{"$type":"Group","elements":[{"$type":"Action","type":"TerminalGroup","feature":"elements","operator":"+="},{"$type":"Assignment","feature":"elements","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$refName":"TerminalToken"}},"cardinality":"+"}],"cardinality":"?"}]}},{"$type":"ParserRule","name":"TerminalToken","alternatives":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$refName":"TerminalTokenElement"}},{"$type":"Assignment","feature":"cardinality","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"?"},{"$type":"Keyword","value":"*"},{"$type":"Keyword","value":"+"}]},"cardinality":"?"}]}},{"$type":"ParserRule","name":"TerminalTokenElement","alternatives":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$refName":"CharacterRange"}},{"$type":"RuleCall","rule":{"$refName":"TerminalRuleCall"}},{"$type":"RuleCall","rule":{"$refName":"ParenthesizedTerminalElement"}},{"$type":"RuleCall","rule":{"$refName":"AbstractNegatedToken"}},{"$type":"RuleCall","rule":{"$refName":"Wildcard"}}]}},{"$type":"ParserRule","name":"ParenthesizedTerminalElement","type":"TerminalAlternatives","alternatives":{"$type":"Group","elements":[{"$type":"Keyword","value":"("},{"$type":"RuleCall","rule":{"$refName":"TerminalAlternatives"}},{"$type":"Keyword","value":")"}]}},{"$type":"ParserRule","name":"AbstractNegatedToken","alternatives":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$refName":"NegatedToken"}},{"$type":"RuleCall","rule":{"$refName":"UntilToken"}}]}},{"$type":"ParserRule","name":"NegatedToken","alternatives":{"$type":"Group","elements":[{"$type":"Keyword","value":"!"},{"$type":"Assignment","feature":"terminal","operator":"=","terminal":{"$type":"RuleCall","rule":{"$refName":"TerminalTokenElement"}}}]}},{"$type":"ParserRule","name":"UntilToken","alternatives":{"$type":"Group","elements":[{"$type":"Keyword","value":"->"},{"$type":"Assignment","feature":"terminal","operator":"=","terminal":{"$type":"RuleCall","rule":{"$refName":"TerminalTokenElement"}}}]}},{"$type":"ParserRule","name":"Wildcard","alternatives":{"$type":"Group","elements":[{"$type":"Action","type":"Wildcard"},{"$type":"Keyword","value":"."}]}},{"$type":"ParserRule","name":"CharacterRange","alternatives":{"$type":"Group","elements":[{"$type":"Assignment","feature":"left","operator":"=","terminal":{"$type":"RuleCall","rule":{"$refName":"Keyword"}}},{"$type":"Group","elements":[{"$type":"Keyword","value":".."},{"$type":"Assignment","feature":"right","operator":"=","terminal":{"$type":"RuleCall","rule":{"$refName":"Keyword"}}}],"cardinality":"?"}]}}]}
{"$type":"Grammar","usedGrammars":[],"hiddenTokens":[{"$refName":"WS"},{"$refName":"SL_COMMENT"},{"$refName":"ML_COMMENT"}],"metamodelDeclarations":[],"rules":[{"$type":"TerminalRule","name":"WS","regex":"/\\s+/"},{"$type":"TerminalRule","name":"ID","type":"string","regex":"/\\^?[_a-zA-Z][\\w_]*/"},{"$type":"TerminalRule","name":"INT","type":"number","regex":"/[0-9]+/"},{"$type":"TerminalRule","name":"string","regex":"/\"[^\"]*\"|'[^']*'/"},{"$type":"TerminalRule","name":"ML_COMMENT","regex":"/\\/\\*[\\s\\S]*?\\*\\//"},{"$type":"TerminalRule","name":"SL_COMMENT","regex":"/\\/\\/[^\\n\\r]*/"},{"$type":"ParserRule","parameters":[],"name":"Grammar","hiddenTokens":[],"alternatives":{"$type":"Group","elements":[{"$type":"Keyword","value":"grammar","elements":[]},{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"RuleCall","arguments":[],"rule":{"$refName":"ID"}}},{"$type":"Group","elements":[{"$type":"Keyword","value":"with","elements":[]},{"$type":"Assignment","feature":"usedGrammars","operator":"+=","terminal":{"$type":"CrossReference","type":{"$refName":"Grammar"},"terminal":{"$type":"RuleCall","arguments":[],"rule":{"$refName":"ID"}}}},{"$type":"Group","elements":[{"$type":"Keyword","value":",","elements":[]},{"$type":"Assignment","feature":"usedGrammars","operator":"+=","terminal":{"$type":"CrossReference","type":{"$refName":"Grammar"},"terminal":{"$type":"RuleCall","arguments":[],"rule":{"$refName":"ID"}}}}],"cardinality":"*"}],"cardinality":"?"},{"$type":"Group","elements":[{"$type":"Assignment","feature":"definesHiddenTokens","operator":"?=","terminal":{"$type":"Keyword","value":"hidden"},"elements":[]},{"$type":"Keyword","value":"("},{"$type":"Group","elements":[{"$type":"Assignment","feature":"hiddenTokens","operator":"+=","terminal":{"$type":"CrossReference","type":{"$refName":"AbstractRule"},"terminal":{"$type":"RuleCall","arguments":[],"rule":{"$refName":"ID"}}},"elements":[]},{"$type":"Group","elements":[{"$type":"Keyword","value":",","elements":[]},{"$type":"Assignment","feature":"hiddenTokens","operator":"+=","terminal":{"$type":"CrossReference","type":{"$refName":"AbstractRule"},"terminal":{"$type":"RuleCall","arguments":[],"rule":{"$refName":"ID"}}}}],"cardinality":"*"}],"cardinality":"?"},{"$type":"Keyword","value":")"}],"cardinality":"?"},{"$type":"Assignment","feature":"metamodelDeclarations","operator":"+=","terminal":{"$type":"RuleCall","arguments":[],"rule":{"$refName":"AbstractMetamodelDeclaration"}},"cardinality":"*"},{"$type":"Assignment","feature":"rules","operator":"+=","terminal":{"$type":"RuleCall","arguments":[],"rule":{"$refName":"AbstractRule"}},"elements":[],"cardinality":"+"}]}},{"$type":"ParserRule","parameters":[],"name":"AbstractRule","hiddenTokens":[],"alternatives":{"$type":"Alternatives","elements":[{"$type":"RuleCall","arguments":[],"rule":{"$refName":"ParserRule"},"elements":[]},{"$type":"RuleCall","arguments":[],"rule":{"$refName":"TerminalRule"},"elements":[]}]}},{"$type":"ParserRule","parameters":[],"name":"AbstractMetamodelDeclaration","hiddenTokens":[],"alternatives":{"$type":"Alternatives","elements":[{"$type":"RuleCall","arguments":[],"rule":{"$refName":"GeneratedMetamodel"},"elements":[]},{"$type":"RuleCall","arguments":[],"rule":{"$refName":"ReferencedMetamodel"},"elements":[]}]}},{"$type":"ParserRule","parameters":[],"name":"GeneratedMetamodel","hiddenTokens":[],"alternatives":{"$type":"Group","elements":[{"$type":"Keyword","value":"generate","elements":[]},{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"RuleCall","arguments":[],"rule":{"$refName":"ID"}}},{"$type":"Assignment","feature":"ePackage","operator":"=","terminal":{"$type":"RuleCall","arguments":[],"rule":{"$refName":"string"}}},{"$type":"Group","elements":[{"$type":"Keyword","value":"as","elements":[]},{"$type":"Assignment","feature":"alias","operator":"=","terminal":{"$type":"RuleCall","arguments":[],"rule":{"$refName":"ID"}}}],"cardinality":"?"}]}},{"$type":"ParserRule","parameters":[],"name":"ReferencedMetamodel","hiddenTokens":[],"alternatives":{"$type":"Group","elements":[{"$type":"Keyword","value":"import","elements":[]},{"$type":"Assignment","feature":"ePackage","operator":"=","terminal":{"$type":"RuleCall","arguments":[],"rule":{"$refName":"string"}}},{"$type":"Group","elements":[{"$type":"Keyword","value":"as","elements":[]},{"$type":"Assignment","feature":"alias","operator":"=","terminal":{"$type":"RuleCall","arguments":[],"rule":{"$refName":"ID"}}}],"cardinality":"?"}]}},{"$type":"ParserRule","parameters":[],"name":"Annotation","hiddenTokens":[],"alternatives":{"$type":"Group","elements":[{"$type":"Keyword","value":"@","elements":[]},{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"RuleCall","arguments":[],"rule":{"$refName":"ID"}}}]}},{"$type":"ParserRule","parameters":[],"name":"ParserRule","hiddenTokens":[],"alternatives":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"Assignment","feature":"fragment","operator":"?=","terminal":{"$type":"Keyword","value":"fragment"},"elements":[]},{"$type":"RuleCall","arguments":[],"rule":{"$refName":"RuleNameAndParams"}},{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"wildcard","operator":"?=","terminal":{"$type":"Keyword","value":"*"},"elements":[]},{"$type":"Group","elements":[{"$type":"Keyword","value":"returns","elements":[]},{"$type":"Assignment","feature":"type","operator":"=","terminal":{"$type":"RuleCall","arguments":[],"rule":{"$refName":"ID"}}}],"cardinality":"?"}]}]},{"$type":"Group","elements":[{"$type":"RuleCall","arguments":[],"rule":{"$refName":"RuleNameAndParams"},"elements":[]},{"$type":"Group","elements":[{"$type":"Keyword","value":"returns","elements":[]},{"$type":"Assignment","feature":"type","operator":"=","terminal":{"$type":"RuleCall","arguments":[],"rule":{"$refName":"ID"}}}],"cardinality":"?"}]}]},{"$type":"Group","elements":[{"$type":"Assignment","feature":"definesHiddenTokens","operator":"?=","terminal":{"$type":"Keyword","value":"hidden"},"elements":[]},{"$type":"Keyword","value":"("},{"$type":"Group","elements":[{"$type":"Assignment","feature":"hiddenTokens","operator":"+=","terminal":{"$type":"CrossReference","type":{"$refName":"AbstractRule"},"terminal":{"$type":"RuleCall","arguments":[],"rule":{"$refName":"ID"}}},"elements":[]},{"$type":"Group","elements":[{"$type":"Keyword","value":",","elements":[]},{"$type":"Assignment","feature":"hiddenTokens","operator":"+=","terminal":{"$type":"CrossReference","type":{"$refName":"AbstractRule"},"terminal":{"$type":"RuleCall","arguments":[],"rule":{"$refName":"ID"}}}}],"cardinality":"*"}],"cardinality":"?"},{"$type":"Keyword","value":")"}],"cardinality":"?"},{"$type":"Keyword","value":":"},{"$type":"Assignment","feature":"alternatives","operator":"=","terminal":{"$type":"RuleCall","arguments":[],"rule":{"$refName":"Alternatives"}}},{"$type":"Keyword","value":";"}]}},{"$type":"ParserRule","parameters":[],"name":"RuleNameAndParams","hiddenTokens":[],"fragment":true,"alternatives":{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"RuleCall","arguments":[],"rule":{"$refName":"ID"}},"elements":[]},{"$type":"Group","elements":[{"$type":"Keyword","value":"<","elements":[]},{"$type":"Group","elements":[{"$type":"Assignment","feature":"parameters","operator":"+=","terminal":{"$type":"RuleCall","arguments":[],"rule":{"$refName":"Parameter"}},"elements":[]},{"$type":"Group","elements":[{"$type":"Keyword","value":",","elements":[]},{"$type":"Assignment","feature":"parameters","operator":"+=","terminal":{"$type":"RuleCall","arguments":[],"rule":{"$refName":"Parameter"}}}],"cardinality":"*"}],"cardinality":"?"},{"$type":"Keyword","value":">"}],"cardinality":"?"}]}},{"$type":"ParserRule","parameters":[],"name":"Parameter","hiddenTokens":[],"alternatives":{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"RuleCall","arguments":[],"rule":{"$refName":"ID"}},"elements":[]}},{"$type":"ParserRule","parameters":[],"name":"Alternatives","hiddenTokens":[],"type":"AbstractElement","alternatives":{"$type":"Group","elements":[{"$type":"RuleCall","arguments":[],"rule":{"$refName":"UnorderedGroup"},"elements":[]},{"$type":"Group","elements":[{"$type":"Action","type":"Alternatives","feature":"elements","operator":"+=","elements":[]},{"$type":"Group","elements":[{"$type":"Keyword","value":"|","elements":[]},{"$type":"Assignment","feature":"elements","operator":"+=","terminal":{"$type":"RuleCall","arguments":[],"rule":{"$refName":"UnorderedGroup"}}}],"cardinality":"+"}],"cardinality":"?"}]}},{"$type":"ParserRule","parameters":[],"name":"UnorderedGroup","hiddenTokens":[],"type":"AbstractElement","alternatives":{"$type":"Group","elements":[{"$type":"RuleCall","arguments":[],"rule":{"$refName":"Group"},"elements":[]},{"$type":"Group","elements":[{"$type":"Action","type":"UnorderedGroup","feature":"elements","operator":"+=","elements":[]},{"$type":"Group","elements":[{"$type":"Keyword","value":"&","elements":[]},{"$type":"Assignment","feature":"elements","operator":"+=","terminal":{"$type":"RuleCall","arguments":[],"rule":{"$refName":"Group"}}}],"cardinality":"+"}],"cardinality":"?"}]}},{"$type":"ParserRule","parameters":[],"name":"Group","hiddenTokens":[],"type":"AbstractElement","alternatives":{"$type":"Group","elements":[{"$type":"RuleCall","arguments":[],"rule":{"$refName":"AbstractToken"},"elements":[]},{"$type":"Group","elements":[{"$type":"Action","type":"Group","feature":"elements","operator":"+=","elements":[]},{"$type":"Assignment","feature":"elements","operator":"+=","terminal":{"$type":"RuleCall","arguments":[],"rule":{"$refName":"AbstractToken"}},"cardinality":"+"}],"cardinality":"?"}]}},{"$type":"ParserRule","parameters":[],"name":"AbstractToken","hiddenTokens":[],"type":"AbstractElement","alternatives":{"$type":"Alternatives","elements":[{"$type":"RuleCall","arguments":[],"rule":{"$refName":"AbstractTokenWithCardinality"},"elements":[]},{"$type":"RuleCall","arguments":[],"rule":{"$refName":"Action"},"elements":[]}]}},{"$type":"ParserRule","parameters":[],"name":"AbstractTokenWithCardinality","hiddenTokens":[],"type":"AbstractElement","alternatives":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"RuleCall","arguments":[],"rule":{"$refName":"Assignment"},"elements":[]},{"$type":"RuleCall","arguments":[],"rule":{"$refName":"AbstractTerminal"},"elements":[]}]},{"$type":"Assignment","feature":"cardinality","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"?","elements":[]},{"$type":"Keyword","value":"*"},{"$type":"Keyword","value":"+"}]},"cardinality":"?"}]}},{"$type":"ParserRule","parameters":[],"name":"Action","hiddenTokens":[],"type":"AbstractElement","alternatives":{"$type":"Group","elements":[{"$type":"Action","type":"Action","elements":[]},{"$type":"Keyword","value":"{"},{"$type":"Assignment","feature":"type","operator":"=","terminal":{"$type":"RuleCall","arguments":[],"rule":{"$refName":"ID"}}},{"$type":"Group","elements":[{"$type":"Keyword","value":".","elements":[]},{"$type":"Assignment","feature":"feature","operator":"=","terminal":{"$type":"RuleCall","arguments":[],"rule":{"$refName":"ID"}}},{"$type":"Assignment","feature":"operator","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"=","elements":[]},{"$type":"Keyword","value":"+="}]}},{"$type":"Keyword","value":"current"}],"cardinality":"?"},{"$type":"Keyword","value":"}"}]}},{"$type":"ParserRule","parameters":[],"name":"AbstractTerminal","hiddenTokens":[],"type":"AbstractElement","alternatives":{"$type":"Alternatives","elements":[{"$type":"RuleCall","arguments":[],"rule":{"$refName":"Keyword"},"elements":[]},{"$type":"RuleCall","arguments":[],"rule":{"$refName":"RuleCall"},"elements":[]},{"$type":"RuleCall","arguments":[],"rule":{"$refName":"ParenthesizedElement"},"elements":[]},{"$type":"RuleCall","arguments":[],"rule":{"$refName":"PredicatedKeyword"},"elements":[]},{"$type":"RuleCall","arguments":[],"rule":{"$refName":"PredicatedRuleCall"},"elements":[]},{"$type":"RuleCall","arguments":[],"rule":{"$refName":"PredicatedGroup"},"elements":[]}]}},{"$type":"ParserRule","parameters":[],"name":"Keyword","hiddenTokens":[],"alternatives":{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","arguments":[],"rule":{"$refName":"string"}},"elements":[]}},{"$type":"ParserRule","parameters":[],"name":"RuleCall","hiddenTokens":[],"alternatives":{"$type":"Group","elements":[{"$type":"Assignment","feature":"rule","operator":"=","terminal":{"$type":"CrossReference","type":{"$refName":"AbstractRule"},"terminal":{"$type":"RuleCall","arguments":[],"rule":{"$refName":"ID"}}},"elements":[]},{"$type":"Group","elements":[{"$type":"Keyword","value":"<","elements":[]},{"$type":"Assignment","feature":"arguments","operator":"+=","terminal":{"$type":"RuleCall","arguments":[],"rule":{"$refName":"NamedArgument"}}},{"$type":"Group","elements":[{"$type":"Keyword","value":",","elements":[]},{"$type":"Assignment","feature":"arguments","operator":"+=","terminal":{"$type":"RuleCall","arguments":[],"rule":{"$refName":"NamedArgument"}}}],"cardinality":"*"},{"$type":"Keyword","value":">"}],"cardinality":"?"}]}},{"$type":"ParserRule","parameters":[],"name":"NamedArgument","hiddenTokens":[],"alternatives":{"$type":"Group","elements":[{"$type":"Group","elements":[{"$type":"Assignment","feature":"parameter","operator":"=","terminal":{"$type":"CrossReference","type":{"$refName":"Parameter"},"terminal":{"$type":"RuleCall","arguments":[],"rule":{"$refName":"ID"}}},"elements":[]},{"$type":"Assignment","feature":"calledByName","operator":"?=","terminal":{"$type":"Keyword","value":"="}}],"cardinality":"?"},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","arguments":[],"rule":{"$refName":"Disjunction"}},"elements":[]}]}},{"$type":"ParserRule","parameters":[],"name":"LiteralCondition","hiddenTokens":[],"alternatives":{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"true","operator":"?=","terminal":{"$type":"Keyword","value":"true"},"elements":[]},{"$type":"Keyword","value":"false","elements":[]}]}},{"$type":"ParserRule","parameters":[],"name":"Disjunction","hiddenTokens":[],"type":"Condition","alternatives":{"$type":"Group","elements":[{"$type":"RuleCall","arguments":[],"rule":{"$refName":"Conjunction"},"elements":[]},{"$type":"Group","elements":[{"$type":"Action","type":"Disjunction","feature":"left","operator":"=","elements":[]},{"$type":"Keyword","value":"|"},{"$type":"Assignment","feature":"right","operator":"=","terminal":{"$type":"RuleCall","arguments":[],"rule":{"$refName":"Conjunction"}}}],"cardinality":"?"}]}},{"$type":"ParserRule","parameters":[],"name":"Conjunction","hiddenTokens":[],"type":"Condition","alternatives":{"$type":"Group","elements":[{"$type":"RuleCall","arguments":[],"rule":{"$refName":"Negation"},"elements":[]},{"$type":"Group","elements":[{"$type":"Action","type":"Conjunction","feature":"left","operator":"=","elements":[]},{"$type":"Keyword","value":"&"},{"$type":"Assignment","feature":"right","operator":"=","terminal":{"$type":"RuleCall","arguments":[],"rule":{"$refName":"Negation"}}}],"cardinality":"?"}]}},{"$type":"ParserRule","parameters":[],"name":"Negation","hiddenTokens":[],"type":"Condition","alternatives":{"$type":"Alternatives","elements":[{"$type":"RuleCall","arguments":[],"rule":{"$refName":"Atom"},"elements":[]},{"$type":"Group","elements":[{"$type":"Action","type":"Negation","elements":[]},{"$type":"Keyword","value":"!"},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","arguments":[],"rule":{"$refName":"Negation"}}}]}]}},{"$type":"ParserRule","parameters":[],"name":"Atom","hiddenTokens":[],"type":"Condition","alternatives":{"$type":"Alternatives","elements":[{"$type":"RuleCall","arguments":[],"rule":{"$refName":"ParameterReference"},"elements":[]},{"$type":"RuleCall","arguments":[],"rule":{"$refName":"ParenthesizedCondition"},"elements":[]},{"$type":"RuleCall","arguments":[],"rule":{"$refName":"LiteralCondition"},"elements":[]}]}},{"$type":"ParserRule","parameters":[],"name":"ParenthesizedCondition","hiddenTokens":[],"type":"Condition","alternatives":{"$type":"Group","elements":[{"$type":"Keyword","value":"(","elements":[]},{"$type":"RuleCall","arguments":[],"rule":{"$refName":"Disjunction"}},{"$type":"Keyword","value":")"}]}},{"$type":"ParserRule","parameters":[],"name":"ParameterReference","hiddenTokens":[],"alternatives":{"$type":"Assignment","feature":"parameter","operator":"=","terminal":{"$type":"CrossReference","type":{"$refName":"Parameter"},"terminal":{"$type":"RuleCall","arguments":[],"rule":{"$refName":"ID"}}},"elements":[]}},{"$type":"ParserRule","parameters":[],"name":"TerminalRuleCall","hiddenTokens":[],"alternatives":{"$type":"Assignment","feature":"rule","operator":"=","terminal":{"$type":"CrossReference","type":{"$refName":"AbstractRule"},"terminal":{"$type":"RuleCall","arguments":[],"rule":{"$refName":"ID"}}},"elements":[]}},{"$type":"ParserRule","parameters":[],"name":"PredicatedKeyword","hiddenTokens":[],"type":"Keyword","alternatives":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"predicated","operator":"?=","terminal":{"$type":"Keyword","value":"=>"},"elements":[]},{"$type":"Assignment","feature":"firstSetPredicated","operator":"?=","terminal":{"$type":"Keyword","value":"->"},"elements":[]}]},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","arguments":[],"rule":{"$refName":"string"}}}]}},{"$type":"ParserRule","parameters":[],"name":"PredicatedRuleCall","hiddenTokens":[],"type":"RuleCall","alternatives":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"predicated","operator":"?=","terminal":{"$type":"Keyword","value":"=>"},"elements":[]},{"$type":"Assignment","feature":"firstSetPredicated","operator":"?=","terminal":{"$type":"Keyword","value":"->"},"elements":[]}]},{"$type":"Assignment","feature":"rule","operator":"=","terminal":{"$type":"CrossReference","type":{"$refName":"AbstractRule"},"terminal":{"$type":"RuleCall","arguments":[],"rule":{"$refName":"ID"}}}},{"$type":"Group","elements":[{"$type":"Keyword","value":"<","elements":[]},{"$type":"Assignment","feature":"arguments","operator":"+=","terminal":{"$type":"RuleCall","arguments":[],"rule":{"$refName":"NamedArgument"}}},{"$type":"Group","elements":[{"$type":"Keyword","value":",","elements":[]},{"$type":"Assignment","feature":"arguments","operator":"+=","terminal":{"$type":"RuleCall","arguments":[],"rule":{"$refName":"NamedArgument"}}}],"cardinality":"*"},{"$type":"Keyword","value":">"}],"cardinality":"?"}]}},{"$type":"ParserRule","parameters":[],"name":"Assignment","hiddenTokens":[],"type":"AbstractElement","alternatives":{"$type":"Group","elements":[{"$type":"Action","type":"Assignment","elements":[]},{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"predicated","operator":"?=","terminal":{"$type":"Keyword","value":"=>"},"elements":[]},{"$type":"Assignment","feature":"firstSetPredicated","operator":"?=","terminal":{"$type":"Keyword","value":"->"},"elements":[]}],"cardinality":"?"},{"$type":"Assignment","feature":"feature","operator":"=","terminal":{"$type":"RuleCall","arguments":[],"rule":{"$refName":"ID"}}},{"$type":"Assignment","feature":"operator","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"+=","elements":[]},{"$type":"Keyword","value":"="},{"$type":"Keyword","value":"?="}]}},{"$type":"Assignment","feature":"terminal","operator":"=","terminal":{"$type":"RuleCall","arguments":[],"rule":{"$refName":"AssignableTerminal"}}}]}},{"$type":"ParserRule","parameters":[],"name":"AssignableTerminal","hiddenTokens":[],"type":"AbstractElement","alternatives":{"$type":"Alternatives","elements":[{"$type":"RuleCall","arguments":[],"rule":{"$refName":"Keyword"},"elements":[]},{"$type":"RuleCall","arguments":[],"rule":{"$refName":"RuleCall"},"elements":[]},{"$type":"RuleCall","arguments":[],"rule":{"$refName":"ParenthesizedAssignableElement"},"elements":[]},{"$type":"RuleCall","arguments":[],"rule":{"$refName":"CrossReference"},"elements":[]}]}},{"$type":"ParserRule","parameters":[],"name":"ParenthesizedAssignableElement","hiddenTokens":[],"type":"AbstractElement","alternatives":{"$type":"Group","elements":[{"$type":"Keyword","value":"(","elements":[]},{"$type":"RuleCall","arguments":[],"rule":{"$refName":"AssignableAlternatives"}},{"$type":"Keyword","value":")"}]}},{"$type":"ParserRule","parameters":[],"name":"AssignableAlternatives","hiddenTokens":[],"type":"AbstractElement","alternatives":{"$type":"Group","elements":[{"$type":"RuleCall","arguments":[],"rule":{"$refName":"AssignableTerminal"},"elements":[]},{"$type":"Group","elements":[{"$type":"Action","type":"Alternatives","feature":"elements","operator":"+=","elements":[]},{"$type":"Group","elements":[{"$type":"Keyword","value":"|","elements":[]},{"$type":"Assignment","feature":"elements","operator":"+=","terminal":{"$type":"RuleCall","arguments":[],"rule":{"$refName":"AssignableTerminal"}}}],"cardinality":"+"}],"cardinality":"?"}]}},{"$type":"ParserRule","parameters":[],"name":"CrossReference","hiddenTokens":[],"type":"AbstractElement","alternatives":{"$type":"Group","elements":[{"$type":"Action","type":"CrossReference","elements":[]},{"$type":"Keyword","value":"["},{"$type":"Assignment","feature":"type","operator":"=","terminal":{"$type":"CrossReference","type":{"$refName":"ParserRule"},"terminal":{"$type":"RuleCall","arguments":[],"rule":{"$refName":"ID"}}}},{"$type":"Group","elements":[{"$type":"Keyword","value":"|","elements":[]},{"$type":"Assignment","feature":"terminal","operator":"=","terminal":{"$type":"RuleCall","arguments":[],"rule":{"$refName":"CrossReferenceableTerminal"}}}],"cardinality":"?"},{"$type":"Keyword","value":"]"}]}},{"$type":"ParserRule","parameters":[],"name":"CrossReferenceableTerminal","hiddenTokens":[],"type":"AbstractElement","alternatives":{"$type":"Alternatives","elements":[{"$type":"RuleCall","arguments":[],"rule":{"$refName":"Keyword"},"elements":[]},{"$type":"RuleCall","arguments":[],"rule":{"$refName":"RuleCall"},"elements":[]}]}},{"$type":"ParserRule","parameters":[],"name":"ParenthesizedElement","hiddenTokens":[],"type":"AbstractElement","alternatives":{"$type":"Group","elements":[{"$type":"Keyword","value":"(","elements":[]},{"$type":"RuleCall","arguments":[],"rule":{"$refName":"Alternatives"}},{"$type":"Keyword","value":")"}]}},{"$type":"ParserRule","parameters":[],"name":"PredicatedGroup","hiddenTokens":[],"type":"Group","alternatives":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"predicated","operator":"?=","terminal":{"$type":"Keyword","value":"=>"},"elements":[]},{"$type":"Assignment","feature":"firstSetPredicated","operator":"?=","terminal":{"$type":"Keyword","value":"->"},"elements":[]}]},{"$type":"Keyword","value":"("},{"$type":"Assignment","feature":"elements","operator":"+=","terminal":{"$type":"RuleCall","arguments":[],"rule":{"$refName":"Alternatives"}}},{"$type":"Keyword","value":")"}]}},{"$type":"ParserRule","parameters":[],"name":"TerminalRule","hiddenTokens":[],"alternatives":{"$type":"Group","elements":[{"$type":"Keyword","value":"terminal","elements":[]},{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"Assignment","feature":"fragment","operator":"?=","terminal":{"$type":"Keyword","value":"fragment"},"elements":[]},{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"RuleCall","arguments":[],"rule":{"$refName":"ID"}}}]},{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"RuleCall","arguments":[],"rule":{"$refName":"ID"}},"elements":[]},{"$type":"Group","elements":[{"$type":"Keyword","value":"returns","elements":[]},{"$type":"Assignment","feature":"type","operator":"=","terminal":{"$type":"RuleCall","arguments":[],"rule":{"$refName":"ID"}}}],"cardinality":"?"}]}]},{"$type":"Keyword","value":":"},{"$type":"Assignment","feature":"regex","operator":"=","terminal":{"$type":"RuleCall","arguments":[],"rule":{"$refName":"RegexLiteral"}}},{"$type":"Keyword","value":";"}]}},{"$type":"TerminalRule","name":"RegexLiteral","type":"string","regex":"/\\/(?![*+?])(?:[^\\r\\n\\[/\\\\]|\\\\.|\\[(?:[^\\r\\n\\]\\\\]|\\\\.)*\\])+\\//"},{"$type":"ParserRule","parameters":[],"name":"TerminalAlternatives","hiddenTokens":[],"alternatives":{"$type":"Group","elements":[{"$type":"RuleCall","arguments":[],"rule":{"$refName":"TerminalGroup"},"elements":[]},{"$type":"Group","elements":[{"$type":"Action","type":"TerminalAlternatives","feature":"elements","operator":"+=","elements":[]},{"$type":"Keyword","value":"|"},{"$type":"Assignment","feature":"elements","operator":"+=","terminal":{"$type":"RuleCall","arguments":[],"rule":{"$refName":"TerminalGroup"}}}],"cardinality":"*"}]}},{"$type":"ParserRule","parameters":[],"name":"TerminalGroup","hiddenTokens":[],"alternatives":{"$type":"Group","elements":[{"$type":"RuleCall","arguments":[],"rule":{"$refName":"TerminalToken"},"elements":[]},{"$type":"Group","elements":[{"$type":"Action","type":"TerminalGroup","feature":"elements","operator":"+=","elements":[]},{"$type":"Assignment","feature":"elements","operator":"+=","terminal":{"$type":"RuleCall","arguments":[],"rule":{"$refName":"TerminalToken"}},"cardinality":"+"}],"cardinality":"?"}]}},{"$type":"ParserRule","parameters":[],"name":"TerminalToken","hiddenTokens":[],"alternatives":{"$type":"Group","elements":[{"$type":"RuleCall","arguments":[],"rule":{"$refName":"TerminalTokenElement"},"elements":[]},{"$type":"Assignment","feature":"cardinality","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"?","elements":[]},{"$type":"Keyword","value":"*"},{"$type":"Keyword","value":"+"}]},"cardinality":"?"}]}},{"$type":"ParserRule","parameters":[],"name":"TerminalTokenElement","hiddenTokens":[],"alternatives":{"$type":"Alternatives","elements":[{"$type":"RuleCall","arguments":[],"rule":{"$refName":"CharacterRange"},"elements":[]},{"$type":"RuleCall","arguments":[],"rule":{"$refName":"TerminalRuleCall"},"elements":[]},{"$type":"RuleCall","arguments":[],"rule":{"$refName":"ParenthesizedTerminalElement"},"elements":[]},{"$type":"RuleCall","arguments":[],"rule":{"$refName":"AbstractNegatedToken"},"elements":[]},{"$type":"RuleCall","arguments":[],"rule":{"$refName":"Wildcard"},"elements":[]}]}},{"$type":"ParserRule","parameters":[],"name":"ParenthesizedTerminalElement","hiddenTokens":[],"type":"TerminalAlternatives","alternatives":{"$type":"Group","elements":[{"$type":"Keyword","value":"(","elements":[]},{"$type":"RuleCall","arguments":[],"rule":{"$refName":"TerminalAlternatives"}},{"$type":"Keyword","value":")"}]}},{"$type":"ParserRule","parameters":[],"name":"AbstractNegatedToken","hiddenTokens":[],"alternatives":{"$type":"Alternatives","elements":[{"$type":"RuleCall","arguments":[],"rule":{"$refName":"NegatedToken"},"elements":[]},{"$type":"RuleCall","arguments":[],"rule":{"$refName":"UntilToken"},"elements":[]}]}},{"$type":"ParserRule","parameters":[],"name":"NegatedToken","hiddenTokens":[],"alternatives":{"$type":"Group","elements":[{"$type":"Keyword","value":"!","elements":[]},{"$type":"Assignment","feature":"terminal","operator":"=","terminal":{"$type":"RuleCall","arguments":[],"rule":{"$refName":"TerminalTokenElement"}}}]}},{"$type":"ParserRule","parameters":[],"name":"UntilToken","hiddenTokens":[],"alternatives":{"$type":"Group","elements":[{"$type":"Keyword","value":"->","elements":[]},{"$type":"Assignment","feature":"terminal","operator":"=","terminal":{"$type":"RuleCall","arguments":[],"rule":{"$refName":"TerminalTokenElement"}}}]}},{"$type":"ParserRule","parameters":[],"name":"Wildcard","hiddenTokens":[],"alternatives":{"$type":"Group","elements":[{"$type":"Action","type":"Wildcard","elements":[]},{"$type":"Keyword","value":"."}]}},{"$type":"ParserRule","parameters":[],"name":"CharacterRange","hiddenTokens":[],"alternatives":{"$type":"Group","elements":[{"$type":"Assignment","feature":"left","operator":"=","terminal":{"$type":"RuleCall","arguments":[],"rule":{"$refName":"Keyword"}},"elements":[]},{"$type":"Group","elements":[{"$type":"Keyword","value":"..","elements":[]},{"$type":"Assignment","feature":"right","operator":"=","terminal":{"$type":"RuleCall","arguments":[],"rule":{"$refName":"Keyword"}}}],"cardinality":"?"}]}}],"name":"LangiumGrammar","definesHiddenTokens":true}
/******************************************************************************
* This file was generated by langium-cli 0.0.0.
* This file was generated by langium-cli 0.1.0.
* DO NOT EDIT MANUALLY!

@@ -4,0 +4,0 @@ ******************************************************************************/

/******************************************************************************
* This file was generated by langium-cli 0.0.0.
* This file was generated by langium-cli 0.1.0.
* DO NOT EDIT MANUALLY!

@@ -4,0 +4,0 @@ ******************************************************************************/

@@ -140,3 +140,3 @@ /******************************************************************************

const resultKind = result.$type;
const object = Object.assign(result, this.current);
const object = this.assignWithoutOverride(result, this.current);
if (resultKind) {

@@ -189,8 +189,7 @@ object.$type = resultKind;

if (!this.wrapper.IS_RECORDING) {
// TODO fix this by inverting the assign call in unassignedSubrule
//const item = this.current.object;
const item = this.current;
for (const element of Object.values(grammarAccessElement)) {
if (isAssignment(element)) {
if (isArrayOperator(element.operator)) {
//item[element.feature] = [];
item[element.feature] = [];
}

@@ -273,2 +272,11 @@ }

}
private assignWithoutOverride(target: any, source: any): any {
for (const [name, value] of Object.entries(source)) {
if (target[name] === undefined) {
target[name] = value;
}
}
return target;
}
}

@@ -275,0 +283,0 @@

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc