Comparing version 0.1.0-next.b687a8a to 0.1.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 @@ ******************************************************************************/ |
/****************************************************************************** | ||
* 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
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
No contributors or author data
MaintenancePackage does not specify a list of contributors or an author in package.json.
Found 1 instance in 1 package
No bug tracker
MaintenancePackage does not have a linked bug tracker in package.json.
Found 1 instance in 1 package
No repository
Supply chain riskPackage does not have a linked source code repository. Without this field, a package will have no reference to the location of the source code use to generate the package.
Found 1 instance in 1 package
773169
11162
1