From 42c58bbeead1dae09c51f47abc8e10dfbb9c3f9f Mon Sep 17 00:00:00 2001 From: Kristóf Marussy Date: Tue, 23 Jun 2020 15:17:00 +0200 Subject: New configuration language parser WIP --- .../AbstractSolverLanguageRuntimeModule.java | 7 + .../viatra/solver/language/SolverLanguage.xtextbin | Bin 13021 -> 14135 bytes .../antlr/internal/InternalSolverLanguageParser.g | 2941 +++--- .../internal/InternalSolverLanguageParser.java | 9569 ++++++++++++-------- .../internal/InternalSolverLanguageParser.tokens | 139 +- .../antlr/lexer/InternalSolverLanguageLexer.g | 30 +- .../antlr/lexer/InternalSolverLanguageLexer.java | 1325 +-- .../antlr/lexer/InternalSolverLanguageLexer.tokens | 139 +- .../SolverLanguageSemanticSequencer.java | 1375 +-- .../SolverLanguageSyntacticSequencer.java | 87 +- .../services/SolverLanguageGrammarAccess.java | 2840 +++--- 11 files changed, 10720 insertions(+), 7732 deletions(-) (limited to 'Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver') diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/AbstractSolverLanguageRuntimeModule.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/AbstractSolverLanguageRuntimeModule.java index 4bf254b2..a02b3ab2 100644 --- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/AbstractSolverLanguageRuntimeModule.java +++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/AbstractSolverLanguageRuntimeModule.java @@ -28,9 +28,11 @@ import org.eclipse.xtext.parser.antlr.AntlrTokenDefProvider; import org.eclipse.xtext.parser.antlr.AntlrTokenToStringConverter; import org.eclipse.xtext.parser.antlr.IAntlrTokenFileProvider; import org.eclipse.xtext.parser.antlr.ITokenDefProvider; +import org.eclipse.xtext.parser.antlr.IUnorderedGroupHelper; import org.eclipse.xtext.parser.antlr.Lexer; import org.eclipse.xtext.parser.antlr.LexerBindings; import org.eclipse.xtext.parser.antlr.LexerProvider; +import org.eclipse.xtext.parser.antlr.UnorderedGroupHelper; import org.eclipse.xtext.resource.IContainer; import org.eclipse.xtext.resource.IResourceDescriptions; import org.eclipse.xtext.resource.containers.IAllContainersState; @@ -137,6 +139,11 @@ public abstract class AbstractSolverLanguageRuntimeModule extends DefaultRuntime .to(InternalSolverLanguageLexer.class); } + // contributed by org.eclipse.xtext.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment2 + public Class bindIUnorderedGroupHelper() { + return UnorderedGroupHelper.class; + } + // contributed by org.eclipse.xtext.xtext.generator.validation.ValidatorFragment2 @SingletonBinding(eager=true) public Class bindSolverLanguageValidator() { diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/SolverLanguage.xtextbin b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/SolverLanguage.xtextbin index da513ba9..0fa5d0d7 100644 Binary files a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/SolverLanguage.xtextbin and b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/SolverLanguage.xtextbin differ diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/parser/antlr/internal/InternalSolverLanguageParser.g b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/parser/antlr/internal/InternalSolverLanguageParser.g index 8ec69aaa..eb6f05c7 100644 --- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/parser/antlr/internal/InternalSolverLanguageParser.g +++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/parser/antlr/internal/InternalSolverLanguageParser.g @@ -71,23 +71,73 @@ ruleProblem returns [EObject current=null] }: ( ( + otherlv_0=Problem { - newCompositeNode(grammarAccess.getProblemAccess().getStatementsStatementParserRuleCall_0()); + newLeafNode(otherlv_0, grammarAccess.getProblemAccess().getProblemKeyword_0_0()); } - lv_statements_0_0=ruleStatement + ( + ( + { + newCompositeNode(grammarAccess.getProblemAccess().getNameQualifiedNameParserRuleCall_0_1_0()); + } + lv_name_1_0=ruleQualifiedName + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getProblemRule()); + } + set( + $current, + "name", + lv_name_1_0, + "org.eclipse.viatra.solver.language.SolverLanguage.QualifiedName"); + afterParserOrEnumRuleCall(); + } + ) + ) + this_FULL_STOP_2=RULE_FULL_STOP { - if ($current==null) { - $current = createModelElementForParent(grammarAccess.getProblemRule()); - } - add( - $current, - "statements", - lv_statements_0_0, - "org.eclipse.viatra.solver.language.SolverLanguage.Statement"); - afterParserOrEnumRuleCall(); + newLeafNode(this_FULL_STOP_2, grammarAccess.getProblemAccess().getFULL_STOPTerminalRuleCall_0_2()); } - ) - )* + )? + ( + ( + { + newCompositeNode(grammarAccess.getProblemAccess().getImportsImportParserRuleCall_1_0()); + } + lv_imports_3_0=ruleImport + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getProblemRule()); + } + add( + $current, + "imports", + lv_imports_3_0, + "org.eclipse.viatra.solver.language.SolverLanguage.Import"); + afterParserOrEnumRuleCall(); + } + ) + )* + ( + ( + { + newCompositeNode(grammarAccess.getProblemAccess().getStatementsStatementParserRuleCall_2_0()); + } + lv_statements_4_0=ruleStatement + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getProblemRule()); + } + add( + $current, + "statements", + lv_statements_4_0, + "org.eclipse.viatra.solver.language.SolverLanguage.Statement"); + afterParserOrEnumRuleCall(); + } + ) + )* + ) ; // Entry rule entryRuleStatement @@ -106,118 +156,280 @@ ruleStatement returns [EObject current=null] leaveRule(); }: ( + { + newCompositeNode(grammarAccess.getStatementAccess().getAssertionOrDefinitionParserRuleCall_0()); + } + this_AssertionOrDefinition_0=ruleAssertionOrDefinition + { + $current = $this_AssertionOrDefinition_0.current; + afterParserOrEnumRuleCall(); + } + | + { + newCompositeNode(grammarAccess.getStatementAccess().getPredicateDefinitionParserRuleCall_1()); + } + this_PredicateDefinition_1=rulePredicateDefinition + { + $current = $this_PredicateDefinition_1.current; + afterParserOrEnumRuleCall(); + } + | + { + newCompositeNode(grammarAccess.getStatementAccess().getUnnamedErrorPredicateDefintionParserRuleCall_2()); + } + this_UnnamedErrorPredicateDefintion_2=ruleUnnamedErrorPredicateDefintion + { + $current = $this_UnnamedErrorPredicateDefintion_2.current; + afterParserOrEnumRuleCall(); + } + | + { + newCompositeNode(grammarAccess.getStatementAccess().getDefaultAssertionParserRuleCall_3()); + } + this_DefaultAssertion_3=ruleDefaultAssertion + { + $current = $this_DefaultAssertion_3.current; + afterParserOrEnumRuleCall(); + } + | + { + newCompositeNode(grammarAccess.getStatementAccess().getFunctionDefinitionParserRuleCall_4()); + } + this_FunctionDefinition_4=ruleFunctionDefinition + { + $current = $this_FunctionDefinition_4.current; + afterParserOrEnumRuleCall(); + } + | + { + newCompositeNode(grammarAccess.getStatementAccess().getAttributeParserRuleCall_5()); + } + this_Attribute_5=ruleAttribute + { + $current = $this_Attribute_5.current; + afterParserOrEnumRuleCall(); + } + | + { + newCompositeNode(grammarAccess.getStatementAccess().getExternDeclarationParserRuleCall_6()); + } + this_ExternDeclaration_6=ruleExternDeclaration + { + $current = $this_ExternDeclaration_6.current; + afterParserOrEnumRuleCall(); + } + | + { + newCompositeNode(grammarAccess.getStatementAccess().getScopeDeclarationParserRuleCall_7()); + } + this_ScopeDeclaration_7=ruleScopeDeclaration + { + $current = $this_ScopeDeclaration_7.current; + afterParserOrEnumRuleCall(); + } + | + { + newCompositeNode(grammarAccess.getStatementAccess().getObjectiveDeclarationParserRuleCall_8()); + } + this_ObjectiveDeclaration_8=ruleObjectiveDeclaration + { + $current = $this_ObjectiveDeclaration_8.current; + afterParserOrEnumRuleCall(); + } + | + { + newCompositeNode(grammarAccess.getStatementAccess().getClassDeclarationParserRuleCall_9()); + } + this_ClassDeclaration_9=ruleClassDeclaration + { + $current = $this_ClassDeclaration_9.current; + afterParserOrEnumRuleCall(); + } + | + { + newCompositeNode(grammarAccess.getStatementAccess().getEnumDeclarationParserRuleCall_10()); + } + this_EnumDeclaration_10=ruleEnumDeclaration + { + $current = $this_EnumDeclaration_10.current; + afterParserOrEnumRuleCall(); + } + ) +; + +// Entry rule entryRuleImport +entryRuleImport returns [EObject current=null]: + { newCompositeNode(grammarAccess.getImportRule()); } + iv_ruleImport=ruleImport + { $current=$iv_ruleImport.current; } + EOF; + +// Rule Import +ruleImport returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + { + newCompositeNode(grammarAccess.getImportAccess().getUriImportParserRuleCall_0()); + } + this_UriImport_0=ruleUriImport + { + $current = $this_UriImport_0.current; + afterParserOrEnumRuleCall(); + } + | + { + newCompositeNode(grammarAccess.getImportAccess().getNamespaceImportParserRuleCall_1()); + } + this_NamespaceImport_1=ruleNamespaceImport + { + $current = $this_NamespaceImport_1.current; + afterParserOrEnumRuleCall(); + } + ) +; + +// Entry rule entryRuleUriImport +entryRuleUriImport returns [EObject current=null]: + { newCompositeNode(grammarAccess.getUriImportRule()); } + iv_ruleUriImport=ruleUriImport + { $current=$iv_ruleUriImport.current; } + EOF; + +// Rule UriImport +ruleUriImport returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + otherlv_0=Import + { + newLeafNode(otherlv_0, grammarAccess.getUriImportAccess().getImportKeyword_0()); + } ( + ( + lv_uri_1_0=RULE_STRING + { + newLeafNode(lv_uri_1_0, grammarAccess.getUriImportAccess().getUriSTRINGTerminalRuleCall_1_0()); + } + { + if ($current==null) { + $current = createModelElement(grammarAccess.getUriImportRule()); + } + setWithLastConsumed( + $current, + "uri", + lv_uri_1_0, + "org.eclipse.viatra.solver.language.SolverLanguage.STRING"); + } + ) + ) + ( + otherlv_2=As { - newCompositeNode(grammarAccess.getStatementAccess().getAssertionOrDefinitionParserRuleCall_0_0()); - } - this_AssertionOrDefinition_0=ruleAssertionOrDefinition - { - $current = $this_AssertionOrDefinition_0.current; - afterParserOrEnumRuleCall(); - } - | - { - newCompositeNode(grammarAccess.getStatementAccess().getPredicateDefinitionParserRuleCall_0_1()); - } - this_PredicateDefinition_1=rulePredicateDefinition - { - $current = $this_PredicateDefinition_1.current; - afterParserOrEnumRuleCall(); - } - | - { - newCompositeNode(grammarAccess.getStatementAccess().getUnnamedErrorPrediateDefinitionParserRuleCall_0_2()); - } - this_UnnamedErrorPrediateDefinition_2=ruleUnnamedErrorPrediateDefinition - { - $current = $this_UnnamedErrorPrediateDefinition_2.current; - afterParserOrEnumRuleCall(); - } - | - { - newCompositeNode(grammarAccess.getStatementAccess().getDefaultDefinitionParserRuleCall_0_3()); - } - this_DefaultDefinition_3=ruleDefaultDefinition - { - $current = $this_DefaultDefinition_3.current; - afterParserOrEnumRuleCall(); - } - | - { - newCompositeNode(grammarAccess.getStatementAccess().getMetricDefinitionParserRuleCall_0_4()); - } - this_MetricDefinition_4=ruleMetricDefinition - { - $current = $this_MetricDefinition_4.current; - afterParserOrEnumRuleCall(); - } - | - { - newCompositeNode(grammarAccess.getStatementAccess().getExternPredicateDefinitionParserRuleCall_0_5()); - } - this_ExternPredicateDefinition_5=ruleExternPredicateDefinition - { - $current = $this_ExternPredicateDefinition_5.current; - afterParserOrEnumRuleCall(); - } - | - { - newCompositeNode(grammarAccess.getStatementAccess().getExternMetricDefinitionParserRuleCall_0_6()); - } - this_ExternMetricDefinition_6=ruleExternMetricDefinition - { - $current = $this_ExternMetricDefinition_6.current; - afterParserOrEnumRuleCall(); - } - | - { - newCompositeNode(grammarAccess.getStatementAccess().getExternAggregatorDefinitionParserRuleCall_0_7()); - } - this_ExternAggregatorDefinition_7=ruleExternAggregatorDefinition - { - $current = $this_ExternAggregatorDefinition_7.current; - afterParserOrEnumRuleCall(); - } - | - { - newCompositeNode(grammarAccess.getStatementAccess().getExternDatatypeDefinitionParserRuleCall_0_8()); - } - this_ExternDatatypeDefinition_8=ruleExternDatatypeDefinition - { - $current = $this_ExternDatatypeDefinition_8.current; - afterParserOrEnumRuleCall(); - } - | - { - newCompositeNode(grammarAccess.getStatementAccess().getClassDefinitionParserRuleCall_0_9()); - } - this_ClassDefinition_9=ruleClassDefinition - { - $current = $this_ClassDefinition_9.current; - afterParserOrEnumRuleCall(); - } - | - { - newCompositeNode(grammarAccess.getStatementAccess().getScopeDefinitionParserRuleCall_0_10()); - } - this_ScopeDefinition_10=ruleScopeDefinition - { - $current = $this_ScopeDefinition_10.current; - afterParserOrEnumRuleCall(); - } - | - { - newCompositeNode(grammarAccess.getStatementAccess().getObjectiveDefinitionParserRuleCall_0_11()); + newLeafNode(otherlv_2, grammarAccess.getUriImportAccess().getAsKeyword_2_0()); } - this_ObjectiveDefinition_11=ruleObjectiveDefinition + ( + ( + { + newCompositeNode(grammarAccess.getUriImportAccess().getAliasQualifiedNameParserRuleCall_2_1_0()); + } + lv_alias_3_0=ruleQualifiedName + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getUriImportRule()); + } + set( + $current, + "alias", + lv_alias_3_0, + "org.eclipse.viatra.solver.language.SolverLanguage.QualifiedName"); + afterParserOrEnumRuleCall(); + } + ) + ) + ) + this_FULL_STOP_4=RULE_FULL_STOP + { + newLeafNode(this_FULL_STOP_4, grammarAccess.getUriImportAccess().getFULL_STOPTerminalRuleCall_3()); + } + ) +; + +// Entry rule entryRuleNamespaceImport +entryRuleNamespaceImport returns [EObject current=null]: + { newCompositeNode(grammarAccess.getNamespaceImportRule()); } + iv_ruleNamespaceImport=ruleNamespaceImport + { $current=$iv_ruleNamespaceImport.current; } + EOF; + +// Rule NamespaceImport +ruleNamespaceImport returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + otherlv_0=Import + { + newLeafNode(otherlv_0, grammarAccess.getNamespaceImportAccess().getImportKeyword_0()); + } + ( + ( + { + newCompositeNode(grammarAccess.getNamespaceImportAccess().getImportedNamespaceQualifiedNameParserRuleCall_1_0()); + } + lv_importedNamespace_1_0=ruleQualifiedName + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getNamespaceImportRule()); + } + set( + $current, + "importedNamespace", + lv_importedNamespace_1_0, + "org.eclipse.viatra.solver.language.SolverLanguage.QualifiedName"); + afterParserOrEnumRuleCall(); + } + ) + ) + ( + otherlv_2=As { - $current = $this_ObjectiveDefinition_11.current; - afterParserOrEnumRuleCall(); + newLeafNode(otherlv_2, grammarAccess.getNamespaceImportAccess().getAsKeyword_2_0()); } + ( + ( + { + newCompositeNode(grammarAccess.getNamespaceImportAccess().getAliasQualifiedNameParserRuleCall_2_1_0()); + } + lv_alias_3_0=ruleQualifiedName + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getNamespaceImportRule()); + } + set( + $current, + "alias", + lv_alias_3_0, + "org.eclipse.viatra.solver.language.SolverLanguage.QualifiedName"); + afterParserOrEnumRuleCall(); + } + ) + ) ) - this_FULL_STOP_12=RULE_FULL_STOP + this_FULL_STOP_4=RULE_FULL_STOP { - newLeafNode(this_FULL_STOP_12, grammarAccess.getStatementAccess().getFULL_STOPTerminalRuleCall_1()); + newLeafNode(this_FULL_STOP_4, grammarAccess.getNamespaceImportAccess().getFULL_STOPTerminalRuleCall_3()); } ) ; @@ -251,33 +463,35 @@ ruleAssertionOrDefinition returns [EObject current=null] ( { $current = forceCreateModelElementAndSet( - grammarAccess.getAssertionOrDefinitionAccess().getInterpretationBodyAction_1_0_0(), + grammarAccess.getAssertionOrDefinitionAccess().getAssertionExpressionAction_1_0_0(), $current); } ) - otherlv_2=Colon - { - newLeafNode(otherlv_2, grammarAccess.getAssertionOrDefinitionAccess().getColonKeyword_1_0_1()); - } ( + otherlv_2=Colon + { + newLeafNode(otherlv_2, grammarAccess.getAssertionOrDefinitionAccess().getColonKeyword_1_0_1_0()); + } ( - { - newCompositeNode(grammarAccess.getAssertionOrDefinitionAccess().getRangeExpressionParserRuleCall_1_0_2_0()); - } - lv_range_3_0=ruleExpression - { - if ($current==null) { - $current = createModelElementForParent(grammarAccess.getAssertionOrDefinitionRule()); + ( + { + newCompositeNode(grammarAccess.getAssertionOrDefinitionAccess().getRangeExpressionParserRuleCall_1_0_1_1_0()); } - set( - $current, - "range", - lv_range_3_0, - "org.eclipse.viatra.solver.language.SolverLanguage.Expression"); - afterParserOrEnumRuleCall(); - } + lv_range_3_0=ruleExpression + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getAssertionOrDefinitionRule()); + } + set( + $current, + "range", + lv_range_3_0, + "org.eclipse.viatra.solver.language.SolverLanguage.Expression"); + afterParserOrEnumRuleCall(); + } + ) ) - ) + )? ) | ( @@ -317,13 +531,13 @@ ruleAssertionOrDefinition returns [EObject current=null] ( { $current = forceCreateModelElementAndSet( - grammarAccess.getAssertionOrDefinitionAccess().getMetricDefinitionHeadAction_1_2_0(), + grammarAccess.getAssertionOrDefinitionAccess().getFunctionDefinitionHeadAction_1_2_0(), $current); } ) - otherlv_8=EqualsSign + otherlv_8=ColonEqualsSign { - newLeafNode(otherlv_8, grammarAccess.getAssertionOrDefinitionAccess().getEqualsSignKeyword_1_2_1()); + newLeafNode(otherlv_8, grammarAccess.getAssertionOrDefinitionAccess().getColonEqualsSignKeyword_1_2_1()); } ( ( @@ -345,7 +559,11 @@ ruleAssertionOrDefinition returns [EObject current=null] ) ) ) - )? + ) + this_FULL_STOP_10=RULE_FULL_STOP + { + newLeafNode(this_FULL_STOP_10, grammarAccess.getAssertionOrDefinitionAccess().getFULL_STOPTerminalRuleCall_2()); + } ) ; @@ -470,18 +688,22 @@ rulePredicateDefinition returns [EObject current=null] } ) ) + this_FULL_STOP_7=RULE_FULL_STOP + { + newLeafNode(this_FULL_STOP_7, grammarAccess.getPredicateDefinitionAccess().getFULL_STOPTerminalRuleCall_4()); + } ) ; -// Entry rule entryRuleUnnamedErrorPrediateDefinition -entryRuleUnnamedErrorPrediateDefinition returns [EObject current=null]: - { newCompositeNode(grammarAccess.getUnnamedErrorPrediateDefinitionRule()); } - iv_ruleUnnamedErrorPrediateDefinition=ruleUnnamedErrorPrediateDefinition - { $current=$iv_ruleUnnamedErrorPrediateDefinition.current; } +// Entry rule entryRuleUnnamedErrorPredicateDefintion +entryRuleUnnamedErrorPredicateDefintion returns [EObject current=null]: + { newCompositeNode(grammarAccess.getUnnamedErrorPredicateDefintionRule()); } + iv_ruleUnnamedErrorPredicateDefintion=ruleUnnamedErrorPredicateDefintion + { $current=$iv_ruleUnnamedErrorPredicateDefintion.current; } EOF; -// Rule UnnamedErrorPrediateDefinition -ruleUnnamedErrorPrediateDefinition returns [EObject current=null] +// Rule UnnamedErrorPredicateDefintion +ruleUnnamedErrorPredicateDefintion returns [EObject current=null] @init { enterRule(); } @@ -491,62 +713,137 @@ ruleUnnamedErrorPrediateDefinition returns [EObject current=null] ( otherlv_0=Error { - newLeafNode(otherlv_0, grammarAccess.getUnnamedErrorPrediateDefinitionAccess().getErrorKeyword_0()); + newLeafNode(otherlv_0, grammarAccess.getUnnamedErrorPredicateDefintionAccess().getErrorKeyword_0()); + } + ( + ( + { + newCompositeNode(grammarAccess.getUnnamedErrorPredicateDefintionAccess().getArgumentListArgumentListParserRuleCall_1_0()); + } + lv_argumentList_1_0=ruleArgumentList + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getUnnamedErrorPredicateDefintionRule()); + } + set( + $current, + "argumentList", + lv_argumentList_1_0, + "org.eclipse.viatra.solver.language.SolverLanguage.ArgumentList"); + afterParserOrEnumRuleCall(); + } + ) + ) + otherlv_2=ColonHyphenMinus + { + newLeafNode(otherlv_2, grammarAccess.getUnnamedErrorPredicateDefintionAccess().getColonHyphenMinusKeyword_2()); + } + ( + ( + { + newCompositeNode(grammarAccess.getUnnamedErrorPredicateDefintionAccess().getBodyExpressionParserRuleCall_3_0()); + } + lv_body_3_0=ruleExpression + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getUnnamedErrorPredicateDefintionRule()); + } + set( + $current, + "body", + lv_body_3_0, + "org.eclipse.viatra.solver.language.SolverLanguage.Expression"); + afterParserOrEnumRuleCall(); + } + ) + ) + this_FULL_STOP_4=RULE_FULL_STOP + { + newLeafNode(this_FULL_STOP_4, grammarAccess.getUnnamedErrorPredicateDefintionAccess().getFULL_STOPTerminalRuleCall_4()); + } + ) +; + +// Entry rule entryRuleDefaultAssertion +entryRuleDefaultAssertion returns [EObject current=null]: + { newCompositeNode(grammarAccess.getDefaultAssertionRule()); } + iv_ruleDefaultAssertion=ruleDefaultAssertion + { $current=$iv_ruleDefaultAssertion.current; } + EOF; + +// Rule DefaultAssertion +ruleDefaultAssertion returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + otherlv_0=Default + { + newLeafNode(otherlv_0, grammarAccess.getDefaultAssertionAccess().getDefaultKeyword_0()); } ( ( { - newCompositeNode(grammarAccess.getUnnamedErrorPrediateDefinitionAccess().getArgumentListArgumentListParserRuleCall_1_0()); + newCompositeNode(grammarAccess.getDefaultAssertionAccess().getExpressionCallParserRuleCall_1_0()); } - lv_argumentList_1_0=ruleArgumentList + lv_expression_1_0=ruleCall { if ($current==null) { - $current = createModelElementForParent(grammarAccess.getUnnamedErrorPrediateDefinitionRule()); + $current = createModelElementForParent(grammarAccess.getDefaultAssertionRule()); } set( $current, - "argumentList", - lv_argumentList_1_0, - "org.eclipse.viatra.solver.language.SolverLanguage.ArgumentList"); + "expression", + lv_expression_1_0, + "org.eclipse.viatra.solver.language.SolverLanguage.Call"); afterParserOrEnumRuleCall(); } ) ) - otherlv_2=ColonHyphenMinus - { - newLeafNode(otherlv_2, grammarAccess.getUnnamedErrorPrediateDefinitionAccess().getColonHyphenMinusKeyword_2()); - } ( + otherlv_2=Colon + { + newLeafNode(otherlv_2, grammarAccess.getDefaultAssertionAccess().getColonKeyword_2_0()); + } ( - { - newCompositeNode(grammarAccess.getUnnamedErrorPrediateDefinitionAccess().getBodyExpressionParserRuleCall_3_0()); - } - lv_body_3_0=ruleExpression - { - if ($current==null) { - $current = createModelElementForParent(grammarAccess.getUnnamedErrorPrediateDefinitionRule()); + ( + { + newCompositeNode(grammarAccess.getDefaultAssertionAccess().getRangeExpressionParserRuleCall_2_1_0()); } - set( - $current, - "body", - lv_body_3_0, - "org.eclipse.viatra.solver.language.SolverLanguage.Expression"); - afterParserOrEnumRuleCall(); - } + lv_range_3_0=ruleExpression + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getDefaultAssertionRule()); + } + set( + $current, + "range", + lv_range_3_0, + "org.eclipse.viatra.solver.language.SolverLanguage.Expression"); + afterParserOrEnumRuleCall(); + } + ) ) - ) + )? + this_FULL_STOP_4=RULE_FULL_STOP + { + newLeafNode(this_FULL_STOP_4, grammarAccess.getDefaultAssertionAccess().getFULL_STOPTerminalRuleCall_3()); + } ) ; -// Entry rule entryRuleDefaultDefinition -entryRuleDefaultDefinition returns [EObject current=null]: - { newCompositeNode(grammarAccess.getDefaultDefinitionRule()); } - iv_ruleDefaultDefinition=ruleDefaultDefinition - { $current=$iv_ruleDefaultDefinition.current; } +// Entry rule entryRuleFunctionDefinition +entryRuleFunctionDefinition returns [EObject current=null]: + { newCompositeNode(grammarAccess.getFunctionDefinitionRule()); } + iv_ruleFunctionDefinition=ruleFunctionDefinition + { $current=$iv_ruleFunctionDefinition.current; } EOF; -// Rule DefaultDefinition -ruleDefaultDefinition returns [EObject current=null] +// Rule FunctionDefinition +ruleFunctionDefinition returns [EObject current=null] @init { enterRule(); } @@ -554,19 +851,31 @@ ruleDefaultDefinition returns [EObject current=null] leaveRule(); }: ( - otherlv_0=Default - { - newLeafNode(otherlv_0, grammarAccess.getDefaultDefinitionAccess().getDefaultKeyword_0()); - } ( ( { - newCompositeNode(grammarAccess.getDefaultDefinitionAccess().getHeadCallParserRuleCall_1_0()); + if ($current==null) { + $current = createModelElement(grammarAccess.getFunctionDefinitionRule()); + } + } + { + newCompositeNode(grammarAccess.getFunctionDefinitionAccess().getResultTypeSymbolCrossReference_0_0()); + } + ruleQualifiedName + { + afterParserOrEnumRuleCall(); + } + ) + ) + ( + ( + { + newCompositeNode(grammarAccess.getFunctionDefinitionAccess().getHeadCallParserRuleCall_1_0()); } lv_head_1_0=ruleCall { if ($current==null) { - $current = createModelElementForParent(grammarAccess.getDefaultDefinitionRule()); + $current = createModelElementForParent(grammarAccess.getFunctionDefinitionRule()); } set( $current, @@ -577,41 +886,45 @@ ruleDefaultDefinition returns [EObject current=null] } ) ) - otherlv_2=Colon + otherlv_2=ColonEqualsSign { - newLeafNode(otherlv_2, grammarAccess.getDefaultDefinitionAccess().getColonKeyword_2()); + newLeafNode(otherlv_2, grammarAccess.getFunctionDefinitionAccess().getColonEqualsSignKeyword_2()); } ( ( { - newCompositeNode(grammarAccess.getDefaultDefinitionAccess().getRangeExpressionParserRuleCall_3_0()); + newCompositeNode(grammarAccess.getFunctionDefinitionAccess().getBodyExpressionParserRuleCall_3_0()); } - lv_range_3_0=ruleExpression + lv_body_3_0=ruleExpression { if ($current==null) { - $current = createModelElementForParent(grammarAccess.getDefaultDefinitionRule()); + $current = createModelElementForParent(grammarAccess.getFunctionDefinitionRule()); } set( $current, - "range", - lv_range_3_0, + "body", + lv_body_3_0, "org.eclipse.viatra.solver.language.SolverLanguage.Expression"); afterParserOrEnumRuleCall(); } ) ) + this_FULL_STOP_4=RULE_FULL_STOP + { + newLeafNode(this_FULL_STOP_4, grammarAccess.getFunctionDefinitionAccess().getFULL_STOPTerminalRuleCall_4()); + } ) ; -// Entry rule entryRuleMetricDefinition -entryRuleMetricDefinition returns [EObject current=null]: - { newCompositeNode(grammarAccess.getMetricDefinitionRule()); } - iv_ruleMetricDefinition=ruleMetricDefinition - { $current=$iv_ruleMetricDefinition.current; } +// Entry rule entryRuleTypeReference +entryRuleTypeReference returns [EObject current=null]: + { newCompositeNode(grammarAccess.getTypeReferenceRule()); } + iv_ruleTypeReference=ruleTypeReference + { $current=$iv_ruleTypeReference.current; } EOF; -// Rule MetricDefinition -ruleMetricDefinition returns [EObject current=null] +// Rule TypeReference +ruleTypeReference returns [EObject current=null] @init { enterRule(); } @@ -623,11 +936,11 @@ ruleMetricDefinition returns [EObject current=null] ( { if ($current==null) { - $current = createModelElement(grammarAccess.getMetricDefinitionRule()); + $current = createModelElement(grammarAccess.getTypeReferenceRule()); } } { - newCompositeNode(grammarAccess.getMetricDefinitionAccess().getTypeNamedElementCrossReference_0_0()); + newCompositeNode(grammarAccess.getTypeReferenceAccess().getTypeSymbolCrossReference_0_0()); } ruleQualifiedName { @@ -637,58 +950,142 @@ ruleMetricDefinition returns [EObject current=null] ) ( ( + lv_forceObjectType_1_0=Object { - newCompositeNode(grammarAccess.getMetricDefinitionAccess().getHeadCallParserRuleCall_1_0()); + newLeafNode(lv_forceObjectType_1_0, grammarAccess.getTypeReferenceAccess().getForceObjectTypeObjectKeyword_1_0()); } - lv_head_1_0=ruleCall { if ($current==null) { - $current = createModelElementForParent(grammarAccess.getMetricDefinitionRule()); + $current = createModelElement(grammarAccess.getTypeReferenceRule()); } - set( - $current, - "head", - lv_head_1_0, - "org.eclipse.viatra.solver.language.SolverLanguage.Call"); - afterParserOrEnumRuleCall(); + setWithLastConsumed($current, "forceObjectType", true, "object"); } ) - ) - otherlv_2=EqualsSign - { - newLeafNode(otherlv_2, grammarAccess.getMetricDefinitionAccess().getEqualsSignKeyword_2()); - } + )? + ) +; + +// Entry rule entryRuleAttribute +entryRuleAttribute returns [EObject current=null]: + { newCompositeNode(grammarAccess.getAttributeRule()); } + iv_ruleAttribute=ruleAttribute + { $current=$iv_ruleAttribute.current; } + EOF; + +// Rule Attribute +ruleAttribute returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( ( ( { - newCompositeNode(grammarAccess.getMetricDefinitionAccess().getBodyExpressionParserRuleCall_3_0()); + newCompositeNode(grammarAccess.getAttributeAccess().getKindAttributeKindEnumRuleCall_0_0()); } - lv_body_3_0=ruleExpression + lv_kind_0_0=ruleAttributeKind { if ($current==null) { - $current = createModelElementForParent(grammarAccess.getMetricDefinitionRule()); + $current = createModelElementForParent(grammarAccess.getAttributeRule()); } set( $current, - "body", - lv_body_3_0, - "org.eclipse.viatra.solver.language.SolverLanguage.Expression"); + "kind", + lv_kind_0_0, + "org.eclipse.viatra.solver.language.SolverLanguage.AttributeKind"); + afterParserOrEnumRuleCall(); + } + ) + ) + ( + ( + { + if ($current==null) { + $current = createModelElement(grammarAccess.getAttributeRule()); + } + } + { + newCompositeNode(grammarAccess.getAttributeAccess().getTargetSymbolCrossReference_1_0()); + } + ruleQualifiedName + { afterParserOrEnumRuleCall(); } ) ) + this_FULL_STOP_2=RULE_FULL_STOP + { + newLeafNode(this_FULL_STOP_2, grammarAccess.getAttributeAccess().getFULL_STOPTerminalRuleCall_2()); + } + ) +; + +// Entry rule entryRuleExternDeclaration +entryRuleExternDeclaration returns [EObject current=null]: + { newCompositeNode(grammarAccess.getExternDeclarationRule()); } + iv_ruleExternDeclaration=ruleExternDeclaration + { $current=$iv_ruleExternDeclaration.current; } + EOF; + +// Rule ExternDeclaration +ruleExternDeclaration returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + { + newCompositeNode(grammarAccess.getExternDeclarationAccess().getExternPredicateDeclarationParserRuleCall_0()); + } + this_ExternPredicateDeclaration_0=ruleExternPredicateDeclaration + { + $current = $this_ExternPredicateDeclaration_0.current; + afterParserOrEnumRuleCall(); + } + | + { + newCompositeNode(grammarAccess.getExternDeclarationAccess().getExternFunctionDeclarationParserRuleCall_1()); + } + this_ExternFunctionDeclaration_1=ruleExternFunctionDeclaration + { + $current = $this_ExternFunctionDeclaration_1.current; + afterParserOrEnumRuleCall(); + } + | + { + newCompositeNode(grammarAccess.getExternDeclarationAccess().getExternAggregationOperatorDeclarationParserRuleCall_2()); + } + this_ExternAggregationOperatorDeclaration_2=ruleExternAggregationOperatorDeclaration + { + $current = $this_ExternAggregationOperatorDeclaration_2.current; + afterParserOrEnumRuleCall(); + } + | + { + newCompositeNode(grammarAccess.getExternDeclarationAccess().getExternDatatypeDeclarationParserRuleCall_3()); + } + this_ExternDatatypeDeclaration_3=ruleExternDatatypeDeclaration + { + $current = $this_ExternDatatypeDeclaration_3.current; + afterParserOrEnumRuleCall(); + } ) ; -// Entry rule entryRuleExternPredicateDefinition -entryRuleExternPredicateDefinition returns [EObject current=null]: - { newCompositeNode(grammarAccess.getExternPredicateDefinitionRule()); } - iv_ruleExternPredicateDefinition=ruleExternPredicateDefinition - { $current=$iv_ruleExternPredicateDefinition.current; } +// Entry rule entryRuleExternPredicateDeclaration +entryRuleExternPredicateDeclaration returns [EObject current=null]: + { newCompositeNode(grammarAccess.getExternPredicateDeclarationRule()); } + iv_ruleExternPredicateDeclaration=ruleExternPredicateDeclaration + { $current=$iv_ruleExternPredicateDeclaration.current; } EOF; -// Rule ExternPredicateDefinition -ruleExternPredicateDefinition returns [EObject current=null] +// Rule ExternPredicateDeclaration +ruleExternPredicateDeclaration returns [EObject current=null] @init { enterRule(); } @@ -698,22 +1095,82 @@ ruleExternPredicateDefinition returns [EObject current=null] ( otherlv_0=Extern { - newLeafNode(otherlv_0, grammarAccess.getExternPredicateDefinitionAccess().getExternKeyword_0()); + newLeafNode(otherlv_0, grammarAccess.getExternPredicateDeclarationAccess().getExternKeyword_0()); } + ( + ( + { + getUnorderedGroupHelper().enter(grammarAccess.getExternPredicateDeclarationAccess().getUnorderedGroup_1()); + } + ( + ( + ( + {getUnorderedGroupHelper().canSelect(grammarAccess.getExternPredicateDeclarationAccess().getUnorderedGroup_1(), 0)}?=>( + { + getUnorderedGroupHelper().select(grammarAccess.getExternPredicateDeclarationAccess().getUnorderedGroup_1(), 0); + } + ({true}?=>(( + lv_functional_2_0=Functional + { + newLeafNode(lv_functional_2_0, grammarAccess.getExternPredicateDeclarationAccess().getFunctionalFunctionalKeyword_1_0_0()); + } + { + if ($current==null) { + $current = createModelElement(grammarAccess.getExternPredicateDeclarationRule()); + } + setWithLastConsumed($current, "functional", true, "functional"); + } + ) + )) + { + getUnorderedGroupHelper().returnFromSelection(grammarAccess.getExternPredicateDeclarationAccess().getUnorderedGroup_1()); + } + ) + )| + ( + {getUnorderedGroupHelper().canSelect(grammarAccess.getExternPredicateDeclarationAccess().getUnorderedGroup_1(), 1)}?=>( + { + getUnorderedGroupHelper().select(grammarAccess.getExternPredicateDeclarationAccess().getUnorderedGroup_1(), 1); + } + ({true}?=>(( + lv_error_3_0=Error + { + newLeafNode(lv_error_3_0, grammarAccess.getExternPredicateDeclarationAccess().getErrorErrorKeyword_1_1_0()); + } + { + if ($current==null) { + $current = createModelElement(grammarAccess.getExternPredicateDeclarationRule()); + } + setWithLastConsumed($current, "error", true, "error"); + } + ) + )) + { + getUnorderedGroupHelper().returnFromSelection(grammarAccess.getExternPredicateDeclarationAccess().getUnorderedGroup_1()); + } + ) + ) + )* + ) + ) + { + getUnorderedGroupHelper().leave(grammarAccess.getExternPredicateDeclarationAccess().getUnorderedGroup_1()); + } + ) ( ( { - newCompositeNode(grammarAccess.getExternPredicateDefinitionAccess().getNameQualifiedNameParserRuleCall_1_0()); + newCompositeNode(grammarAccess.getExternPredicateDeclarationAccess().getNameQualifiedNameParserRuleCall_2_0()); } - lv_name_1_0=ruleQualifiedName + lv_name_4_0=ruleQualifiedName { if ($current==null) { - $current = createModelElementForParent(grammarAccess.getExternPredicateDefinitionRule()); + $current = createModelElementForParent(grammarAccess.getExternPredicateDeclarationRule()); } set( $current, "name", - lv_name_1_0, + lv_name_4_0, "org.eclipse.viatra.solver.language.SolverLanguage.QualifiedName"); afterParserOrEnumRuleCall(); } @@ -722,34 +1179,38 @@ ruleExternPredicateDefinition returns [EObject current=null] ( ( { - newCompositeNode(grammarAccess.getExternPredicateDefinitionAccess().getArgumentListArgumentListParserRuleCall_2_0()); + newCompositeNode(grammarAccess.getExternPredicateDeclarationAccess().getArgumentListArgumentListParserRuleCall_3_0()); } - lv_argumentList_2_0=ruleArgumentList + lv_argumentList_5_0=ruleArgumentList { if ($current==null) { - $current = createModelElementForParent(grammarAccess.getExternPredicateDefinitionRule()); + $current = createModelElementForParent(grammarAccess.getExternPredicateDeclarationRule()); } set( $current, "argumentList", - lv_argumentList_2_0, + lv_argumentList_5_0, "org.eclipse.viatra.solver.language.SolverLanguage.ArgumentList"); afterParserOrEnumRuleCall(); } ) ) + this_FULL_STOP_6=RULE_FULL_STOP + { + newLeafNode(this_FULL_STOP_6, grammarAccess.getExternPredicateDeclarationAccess().getFULL_STOPTerminalRuleCall_4()); + } ) ; -// Entry rule entryRuleExternMetricDefinition -entryRuleExternMetricDefinition returns [EObject current=null]: - { newCompositeNode(grammarAccess.getExternMetricDefinitionRule()); } - iv_ruleExternMetricDefinition=ruleExternMetricDefinition - { $current=$iv_ruleExternMetricDefinition.current; } +// Entry rule entryRuleExternFunctionDeclaration +entryRuleExternFunctionDeclaration returns [EObject current=null]: + { newCompositeNode(grammarAccess.getExternFunctionDeclarationRule()); } + iv_ruleExternFunctionDeclaration=ruleExternFunctionDeclaration + { $current=$iv_ruleExternFunctionDeclaration.current; } EOF; -// Rule ExternMetricDefinition -ruleExternMetricDefinition returns [EObject current=null] +// Rule ExternFunctionDeclaration +ruleExternFunctionDeclaration returns [EObject current=null] @init { enterRule(); } @@ -759,17 +1220,17 @@ ruleExternMetricDefinition returns [EObject current=null] ( otherlv_0=Extern { - newLeafNode(otherlv_0, grammarAccess.getExternMetricDefinitionAccess().getExternKeyword_0()); + newLeafNode(otherlv_0, grammarAccess.getExternFunctionDeclarationAccess().getExternKeyword_0()); } ( ( { if ($current==null) { - $current = createModelElement(grammarAccess.getExternMetricDefinitionRule()); + $current = createModelElement(grammarAccess.getExternFunctionDeclarationRule()); } } { - newCompositeNode(grammarAccess.getExternMetricDefinitionAccess().getTypeNamedElementCrossReference_1_0()); + newCompositeNode(grammarAccess.getExternFunctionDeclarationAccess().getResultTypeSymbolCrossReference_1_0()); } ruleQualifiedName { @@ -780,12 +1241,12 @@ ruleExternMetricDefinition returns [EObject current=null] ( ( { - newCompositeNode(grammarAccess.getExternMetricDefinitionAccess().getNameQualifiedNameParserRuleCall_2_0()); + newCompositeNode(grammarAccess.getExternFunctionDeclarationAccess().getNameQualifiedNameParserRuleCall_2_0()); } lv_name_2_0=ruleQualifiedName { if ($current==null) { - $current = createModelElementForParent(grammarAccess.getExternMetricDefinitionRule()); + $current = createModelElementForParent(grammarAccess.getExternFunctionDeclarationRule()); } set( $current, @@ -799,12 +1260,12 @@ ruleExternMetricDefinition returns [EObject current=null] ( ( { - newCompositeNode(grammarAccess.getExternMetricDefinitionAccess().getArgumentListArgumentListParserRuleCall_3_0()); + newCompositeNode(grammarAccess.getExternFunctionDeclarationAccess().getArgumentListArgumentListParserRuleCall_3_0()); } lv_argumentList_3_0=ruleArgumentList { if ($current==null) { - $current = createModelElementForParent(grammarAccess.getExternMetricDefinitionRule()); + $current = createModelElementForParent(grammarAccess.getExternFunctionDeclarationRule()); } set( $current, @@ -815,18 +1276,22 @@ ruleExternMetricDefinition returns [EObject current=null] } ) ) + this_FULL_STOP_4=RULE_FULL_STOP + { + newLeafNode(this_FULL_STOP_4, grammarAccess.getExternFunctionDeclarationAccess().getFULL_STOPTerminalRuleCall_4()); + } ) ; -// Entry rule entryRuleExternAggregatorDefinition -entryRuleExternAggregatorDefinition returns [EObject current=null]: - { newCompositeNode(grammarAccess.getExternAggregatorDefinitionRule()); } - iv_ruleExternAggregatorDefinition=ruleExternAggregatorDefinition - { $current=$iv_ruleExternAggregatorDefinition.current; } +// Entry rule entryRuleExternAggregationOperatorDeclaration +entryRuleExternAggregationOperatorDeclaration returns [EObject current=null]: + { newCompositeNode(grammarAccess.getExternAggregationOperatorDeclarationRule()); } + iv_ruleExternAggregationOperatorDeclaration=ruleExternAggregationOperatorDeclaration + { $current=$iv_ruleExternAggregationOperatorDeclaration.current; } EOF; -// Rule ExternAggregatorDefinition -ruleExternAggregatorDefinition returns [EObject current=null] +// Rule ExternAggregationOperatorDeclaration +ruleExternAggregationOperatorDeclaration returns [EObject current=null] @init { enterRule(); } @@ -836,17 +1301,17 @@ ruleExternAggregatorDefinition returns [EObject current=null] ( otherlv_0=Extern { - newLeafNode(otherlv_0, grammarAccess.getExternAggregatorDefinitionAccess().getExternKeyword_0()); + newLeafNode(otherlv_0, grammarAccess.getExternAggregationOperatorDeclarationAccess().getExternKeyword_0()); } ( ( { if ($current==null) { - $current = createModelElement(grammarAccess.getExternAggregatorDefinitionRule()); + $current = createModelElement(grammarAccess.getExternAggregationOperatorDeclarationRule()); } } { - newCompositeNode(grammarAccess.getExternAggregatorDefinitionAccess().getTypeNamedElementCrossReference_1_0()); + newCompositeNode(grammarAccess.getExternAggregationOperatorDeclarationAccess().getResultTypeSymbolCrossReference_1_0()); } ruleQualifiedName { @@ -857,12 +1322,12 @@ ruleExternAggregatorDefinition returns [EObject current=null] ( ( { - newCompositeNode(grammarAccess.getExternAggregatorDefinitionAccess().getNameQualifiedNameParserRuleCall_2_0()); + newCompositeNode(grammarAccess.getExternAggregationOperatorDeclarationAccess().getNameQualifiedNameParserRuleCall_2_0()); } lv_name_2_0=ruleQualifiedName { if ($current==null) { - $current = createModelElementForParent(grammarAccess.getExternAggregatorDefinitionRule()); + $current = createModelElementForParent(grammarAccess.getExternAggregationOperatorDeclarationRule()); } set( $current, @@ -875,17 +1340,17 @@ ruleExternAggregatorDefinition returns [EObject current=null] ) otherlv_3=LeftCurlyBracket { - newLeafNode(otherlv_3, grammarAccess.getExternAggregatorDefinitionAccess().getLeftCurlyBracketKeyword_3()); + newLeafNode(otherlv_3, grammarAccess.getExternAggregationOperatorDeclarationAccess().getLeftCurlyBracketKeyword_3()); } ( ( { if ($current==null) { - $current = createModelElement(grammarAccess.getExternAggregatorDefinitionRule()); + $current = createModelElement(grammarAccess.getExternAggregationOperatorDeclarationRule()); } } { - newCompositeNode(grammarAccess.getExternAggregatorDefinitionAccess().getInputTypeNamedElementCrossReference_4_0()); + newCompositeNode(grammarAccess.getExternAggregationOperatorDeclarationAccess().getArgumentTypeSymbolCrossReference_4_0()); } ruleQualifiedName { @@ -895,24 +1360,28 @@ ruleExternAggregatorDefinition returns [EObject current=null] ) otherlv_5=FullStopFullStopFullStop { - newLeafNode(otherlv_5, grammarAccess.getExternAggregatorDefinitionAccess().getFullStopFullStopFullStopKeyword_5()); + newLeafNode(otherlv_5, grammarAccess.getExternAggregationOperatorDeclarationAccess().getFullStopFullStopFullStopKeyword_5()); } otherlv_6=RightCurlyBracket { - newLeafNode(otherlv_6, grammarAccess.getExternAggregatorDefinitionAccess().getRightCurlyBracketKeyword_6()); + newLeafNode(otherlv_6, grammarAccess.getExternAggregationOperatorDeclarationAccess().getRightCurlyBracketKeyword_6()); + } + this_FULL_STOP_7=RULE_FULL_STOP + { + newLeafNode(this_FULL_STOP_7, grammarAccess.getExternAggregationOperatorDeclarationAccess().getFULL_STOPTerminalRuleCall_7()); } ) ; -// Entry rule entryRuleExternDatatypeDefinition -entryRuleExternDatatypeDefinition returns [EObject current=null]: - { newCompositeNode(grammarAccess.getExternDatatypeDefinitionRule()); } - iv_ruleExternDatatypeDefinition=ruleExternDatatypeDefinition - { $current=$iv_ruleExternDatatypeDefinition.current; } +// Entry rule entryRuleExternDatatypeDeclaration +entryRuleExternDatatypeDeclaration returns [EObject current=null]: + { newCompositeNode(grammarAccess.getExternDatatypeDeclarationRule()); } + iv_ruleExternDatatypeDeclaration=ruleExternDatatypeDeclaration + { $current=$iv_ruleExternDatatypeDeclaration.current; } EOF; -// Rule ExternDatatypeDefinition -ruleExternDatatypeDefinition returns [EObject current=null] +// Rule ExternDatatypeDeclaration +ruleExternDatatypeDeclaration returns [EObject current=null] @init { enterRule(); } @@ -922,21 +1391,21 @@ ruleExternDatatypeDefinition returns [EObject current=null] ( otherlv_0=Extern { - newLeafNode(otherlv_0, grammarAccess.getExternDatatypeDefinitionAccess().getExternKeyword_0()); + newLeafNode(otherlv_0, grammarAccess.getExternDatatypeDeclarationAccess().getExternKeyword_0()); } otherlv_1=Datatype { - newLeafNode(otherlv_1, grammarAccess.getExternDatatypeDefinitionAccess().getDatatypeKeyword_1()); + newLeafNode(otherlv_1, grammarAccess.getExternDatatypeDeclarationAccess().getDatatypeKeyword_1()); } ( ( { - newCompositeNode(grammarAccess.getExternDatatypeDefinitionAccess().getNameQualifiedNameParserRuleCall_2_0()); + newCompositeNode(grammarAccess.getExternDatatypeDeclarationAccess().getNameQualifiedNameParserRuleCall_2_0()); } lv_name_2_0=ruleQualifiedName { if ($current==null) { - $current = createModelElementForParent(grammarAccess.getExternDatatypeDefinitionRule()); + $current = createModelElementForParent(grammarAccess.getExternDatatypeDeclarationRule()); } set( $current, @@ -947,103 +1416,10 @@ ruleExternDatatypeDefinition returns [EObject current=null] } ) ) - ( - otherlv_3=Extends - { - newLeafNode(otherlv_3, grammarAccess.getExternDatatypeDefinitionAccess().getExtendsKeyword_3_0()); - } - ( - ( - { - if ($current==null) { - $current = createModelElement(grammarAccess.getExternDatatypeDefinitionRule()); - } - } - { - newCompositeNode(grammarAccess.getExternDatatypeDefinitionAccess().getSupertypesNamedElementCrossReference_3_1_0()); - } - ruleQualifiedName - { - afterParserOrEnumRuleCall(); - } - ) - ) - ( - otherlv_5=Comma - { - newLeafNode(otherlv_5, grammarAccess.getExternDatatypeDefinitionAccess().getCommaKeyword_3_2_0()); - } - ( - ( - { - if ($current==null) { - $current = createModelElement(grammarAccess.getExternDatatypeDefinitionRule()); - } - } - { - newCompositeNode(grammarAccess.getExternDatatypeDefinitionAccess().getSupertypesNamedElementCrossReference_3_2_1_0()); - } - ruleQualifiedName - { - afterParserOrEnumRuleCall(); - } - ) - ) - )* - ) - ) -; - -// Entry rule entryRuleVariable -entryRuleVariable returns [EObject current=null]: - { newCompositeNode(grammarAccess.getVariableRule()); } - iv_ruleVariable=ruleVariable - { $current=$iv_ruleVariable.current; } - EOF; - -// Rule Variable -ruleVariable returns [EObject current=null] -@init { - enterRule(); -} -@after { - leaveRule(); -}: - ( - ( - ( - { - if ($current==null) { - $current = createModelElement(grammarAccess.getVariableRule()); - } - } - { - newCompositeNode(grammarAccess.getVariableAccess().getTypeNamedElementCrossReference_0_0()); - } - ruleQualifiedName - { - afterParserOrEnumRuleCall(); - } - ) - )? - ( - ( - lv_name_1_0=RULE_ID - { - newLeafNode(lv_name_1_0, grammarAccess.getVariableAccess().getNameIDTerminalRuleCall_1_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getVariableRule()); - } - setWithLastConsumed( - $current, - "name", - lv_name_1_0, - "org.eclipse.xtext.common.Terminals.ID"); - } - ) - ) + this_FULL_STOP_3=RULE_FULL_STOP + { + newLeafNode(this_FULL_STOP_3, grammarAccess.getExternDatatypeDeclarationAccess().getFULL_STOPTerminalRuleCall_3()); + } ) ; @@ -1064,43 +1440,77 @@ ruleExpression returns [EObject current=null] }: ( { - newCompositeNode(grammarAccess.getExpressionAccess().getIfElseParserRuleCall_0()); + newCompositeNode(grammarAccess.getExpressionAccess().getConditionalExpressionParserRuleCall_0()); } - this_IfElse_0=ruleIfElse + this_ConditionalExpression_0=ruleConditionalExpression { - $current = $this_IfElse_0.current; + $current = $this_ConditionalExpression_0.current; afterParserOrEnumRuleCall(); } | { - newCompositeNode(grammarAccess.getExpressionAccess().getLetParserRuleCall_1()); + newCompositeNode(grammarAccess.getExpressionAccess().getLetExpressionParserRuleCall_1()); } - this_Let_1=ruleLet + this_LetExpression_1=ruleLetExpression { - $current = $this_Let_1.current; + $current = $this_LetExpression_1.current; afterParserOrEnumRuleCall(); } | - { - newCompositeNode(grammarAccess.getExpressionAccess().getImplicationExpressionParserRuleCall_2()); - } - this_ImplicationExpression_2=ruleImplicationExpression - { - $current = $this_ImplicationExpression_2.current; - afterParserOrEnumRuleCall(); - } + ( + { + newCompositeNode(grammarAccess.getExpressionAccess().getDisjunctiveExpressionParserRuleCall_2_0()); + } + this_DisjunctiveExpression_2=ruleDisjunctiveExpression + { + $current = $this_DisjunctiveExpression_2.current; + afterParserOrEnumRuleCall(); + } + ( + ( + { + $current = forceCreateModelElementAndSet( + grammarAccess.getExpressionAccess().getForallConditionAction_2_1_0(), + $current); + } + ) + otherlv_4=EqualsSignGreaterThanSign + { + newLeafNode(otherlv_4, grammarAccess.getExpressionAccess().getEqualsSignGreaterThanSignKeyword_2_1_1()); + } + ( + ( + { + newCompositeNode(grammarAccess.getExpressionAccess().getBodyDisjunctiveExpressionParserRuleCall_2_1_2_0()); + } + lv_body_5_0=ruleDisjunctiveExpression + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getExpressionRule()); + } + set( + $current, + "body", + lv_body_5_0, + "org.eclipse.viatra.solver.language.SolverLanguage.DisjunctiveExpression"); + afterParserOrEnumRuleCall(); + } + ) + ) + )? + ) ) ; -// Entry rule entryRuleIfElse -entryRuleIfElse returns [EObject current=null]: - { newCompositeNode(grammarAccess.getIfElseRule()); } - iv_ruleIfElse=ruleIfElse - { $current=$iv_ruleIfElse.current; } +// Entry rule entryRuleConditionalExpression +entryRuleConditionalExpression returns [EObject current=null]: + { newCompositeNode(grammarAccess.getConditionalExpressionRule()); } + iv_ruleConditionalExpression=ruleConditionalExpression + { $current=$iv_ruleConditionalExpression.current; } EOF; -// Rule IfElse -ruleIfElse returns [EObject current=null] +// Rule ConditionalExpression +ruleConditionalExpression returns [EObject current=null] @init { enterRule(); } @@ -1110,40 +1520,40 @@ ruleIfElse returns [EObject current=null] ( otherlv_0=If { - newLeafNode(otherlv_0, grammarAccess.getIfElseAccess().getIfKeyword_0()); + newLeafNode(otherlv_0, grammarAccess.getConditionalExpressionAccess().getIfKeyword_0()); } ( ( { - newCompositeNode(grammarAccess.getIfElseAccess().getConditionExpressionParserRuleCall_1_0()); + newCompositeNode(grammarAccess.getConditionalExpressionAccess().getConditionDisjunctiveExpressionParserRuleCall_1_0()); } - lv_condition_1_0=ruleExpression + lv_condition_1_0=ruleDisjunctiveExpression { if ($current==null) { - $current = createModelElementForParent(grammarAccess.getIfElseRule()); + $current = createModelElementForParent(grammarAccess.getConditionalExpressionRule()); } set( $current, "condition", lv_condition_1_0, - "org.eclipse.viatra.solver.language.SolverLanguage.Expression"); + "org.eclipse.viatra.solver.language.SolverLanguage.DisjunctiveExpression"); afterParserOrEnumRuleCall(); } ) ) otherlv_2=Then { - newLeafNode(otherlv_2, grammarAccess.getIfElseAccess().getThenKeyword_2()); + newLeafNode(otherlv_2, grammarAccess.getConditionalExpressionAccess().getThenKeyword_2()); } ( ( { - newCompositeNode(grammarAccess.getIfElseAccess().getThenExpressionParserRuleCall_3_0()); + newCompositeNode(grammarAccess.getConditionalExpressionAccess().getThenExpressionParserRuleCall_3_0()); } lv_then_3_0=ruleExpression { if ($current==null) { - $current = createModelElementForParent(grammarAccess.getIfElseRule()); + $current = createModelElementForParent(grammarAccess.getConditionalExpressionRule()); } set( $current, @@ -1156,17 +1566,17 @@ ruleIfElse returns [EObject current=null] ) otherlv_4=Else { - newLeafNode(otherlv_4, grammarAccess.getIfElseAccess().getElseKeyword_4()); + newLeafNode(otherlv_4, grammarAccess.getConditionalExpressionAccess().getElseKeyword_4()); } ( ( { - newCompositeNode(grammarAccess.getIfElseAccess().getElseExpressionParserRuleCall_5_0()); + newCompositeNode(grammarAccess.getConditionalExpressionAccess().getElseExpressionParserRuleCall_5_0()); } lv_else_5_0=ruleExpression { if ($current==null) { - $current = createModelElementForParent(grammarAccess.getIfElseRule()); + $current = createModelElementForParent(grammarAccess.getConditionalExpressionRule()); } set( $current, @@ -1180,15 +1590,15 @@ ruleIfElse returns [EObject current=null] ) ; -// Entry rule entryRuleLet -entryRuleLet returns [EObject current=null]: - { newCompositeNode(grammarAccess.getLetRule()); } - iv_ruleLet=ruleLet - { $current=$iv_ruleLet.current; } +// Entry rule entryRuleLetExpression +entryRuleLetExpression returns [EObject current=null]: + { newCompositeNode(grammarAccess.getLetExpressionRule()); } + iv_ruleLetExpression=ruleLetExpression + { $current=$iv_ruleLetExpression.current; } EOF; -// Rule Let -ruleLet returns [EObject current=null] +// Rule LetExpression +ruleLetExpression returns [EObject current=null] @init { enterRule(); } @@ -1198,17 +1608,17 @@ ruleLet returns [EObject current=null] ( otherlv_0=Let { - newLeafNode(otherlv_0, grammarAccess.getLetAccess().getLetKeyword_0()); + newLeafNode(otherlv_0, grammarAccess.getLetExpressionAccess().getLetKeyword_0()); } ( ( { - newCompositeNode(grammarAccess.getLetAccess().getBindingsLetBindingParserRuleCall_1_0()); + newCompositeNode(grammarAccess.getLetExpressionAccess().getBindingsLetBindingParserRuleCall_1_0()); } lv_bindings_1_0=ruleLetBinding { if ($current==null) { - $current = createModelElementForParent(grammarAccess.getLetRule()); + $current = createModelElementForParent(grammarAccess.getLetExpressionRule()); } add( $current, @@ -1222,17 +1632,17 @@ ruleLet returns [EObject current=null] ( otherlv_2=Comma { - newLeafNode(otherlv_2, grammarAccess.getLetAccess().getCommaKeyword_2_0()); + newLeafNode(otherlv_2, grammarAccess.getLetExpressionAccess().getCommaKeyword_2_0()); } ( ( { - newCompositeNode(grammarAccess.getLetAccess().getBindingsLetBindingParserRuleCall_2_1_0()); + newCompositeNode(grammarAccess.getLetExpressionAccess().getBindingsLetBindingParserRuleCall_2_1_0()); } lv_bindings_3_0=ruleLetBinding { if ($current==null) { - $current = createModelElementForParent(grammarAccess.getLetRule()); + $current = createModelElementForParent(grammarAccess.getLetExpressionRule()); } add( $current, @@ -1246,17 +1656,17 @@ ruleLet returns [EObject current=null] )* otherlv_4=In { - newLeafNode(otherlv_4, grammarAccess.getLetAccess().getInKeyword_3()); + newLeafNode(otherlv_4, grammarAccess.getLetExpressionAccess().getInKeyword_3()); } ( ( { - newCompositeNode(grammarAccess.getLetAccess().getBodyExpressionParserRuleCall_4_0()); + newCompositeNode(grammarAccess.getLetExpressionAccess().getBodyExpressionParserRuleCall_4_0()); } lv_body_5_0=ruleExpression { if ($current==null) { - $current = createModelElementForParent(grammarAccess.getLetRule()); + $current = createModelElementForParent(grammarAccess.getLetExpressionRule()); } set( $current, @@ -1289,32 +1699,47 @@ ruleLetBinding returns [EObject current=null] ( ( { - newCompositeNode(grammarAccess.getLetBindingAccess().getVariableVariableParserRuleCall_0_0()); + if ($current==null) { + $current = createModelElement(grammarAccess.getLetBindingRule()); + } + } + { + newCompositeNode(grammarAccess.getLetBindingAccess().getTypeSymbolCrossReference_0_0()); + } + ruleQualifiedName + { + afterParserOrEnumRuleCall(); + } + ) + )? + ( + ( + lv_name_1_0=RULE_ID + { + newLeafNode(lv_name_1_0, grammarAccess.getLetBindingAccess().getNameIDTerminalRuleCall_1_0()); } - lv_variable_0_0=ruleVariable { if ($current==null) { - $current = createModelElementForParent(grammarAccess.getLetBindingRule()); + $current = createModelElement(grammarAccess.getLetBindingRule()); } - set( + setWithLastConsumed( $current, - "variable", - lv_variable_0_0, - "org.eclipse.viatra.solver.language.SolverLanguage.Variable"); - afterParserOrEnumRuleCall(); + "name", + lv_name_1_0, + "org.eclipse.xtext.common.Terminals.ID"); } ) ) - otherlv_1=EqualsSign + otherlv_2=EqualsSign { - newLeafNode(otherlv_1, grammarAccess.getLetBindingAccess().getEqualsSignKeyword_1()); + newLeafNode(otherlv_2, grammarAccess.getLetBindingAccess().getEqualsSignKeyword_2()); } ( ( { - newCompositeNode(grammarAccess.getLetBindingAccess().getValueAdditiveExpressionParserRuleCall_2_0()); + newCompositeNode(grammarAccess.getLetBindingAccess().getValueAdditiveExpressionParserRuleCall_3_0()); } - lv_value_2_0=ruleAdditiveExpression + lv_value_3_0=ruleAdditiveExpression { if ($current==null) { $current = createModelElementForParent(grammarAccess.getLetBindingRule()); @@ -1322,7 +1747,7 @@ ruleLetBinding returns [EObject current=null] set( $current, "value", - lv_value_2_0, + lv_value_3_0, "org.eclipse.viatra.solver.language.SolverLanguage.AdditiveExpression"); afterParserOrEnumRuleCall(); } @@ -1331,80 +1756,6 @@ ruleLetBinding returns [EObject current=null] ) ; -// Entry rule entryRuleImplicationExpression -entryRuleImplicationExpression returns [EObject current=null]: - { newCompositeNode(grammarAccess.getImplicationExpressionRule()); } - iv_ruleImplicationExpression=ruleImplicationExpression - { $current=$iv_ruleImplicationExpression.current; } - EOF; - -// Rule ImplicationExpression -ruleImplicationExpression returns [EObject current=null] -@init { - enterRule(); -} -@after { - leaveRule(); -}: - ( - { - newCompositeNode(grammarAccess.getImplicationExpressionAccess().getDisjunctiveExpressionParserRuleCall_0()); - } - this_DisjunctiveExpression_0=ruleDisjunctiveExpression - { - $current = $this_DisjunctiveExpression_0.current; - afterParserOrEnumRuleCall(); - } - ( - ( - { - $current = forceCreateModelElementAndSet( - grammarAccess.getImplicationExpressionAccess().getBinaryExpressionLeftAction_1_0(), - $current); - } - ) - ( - ( - { - newCompositeNode(grammarAccess.getImplicationExpressionAccess().getOpImplicationOperatorEnumRuleCall_1_1_0()); - } - lv_op_2_0=ruleImplicationOperator - { - if ($current==null) { - $current = createModelElementForParent(grammarAccess.getImplicationExpressionRule()); - } - set( - $current, - "op", - lv_op_2_0, - "org.eclipse.viatra.solver.language.SolverLanguage.ImplicationOperator"); - afterParserOrEnumRuleCall(); - } - ) - ) - ( - ( - { - newCompositeNode(grammarAccess.getImplicationExpressionAccess().getRightImplicationExpressionParserRuleCall_1_2_0()); - } - lv_right_3_0=ruleImplicationExpression - { - if ($current==null) { - $current = createModelElementForParent(grammarAccess.getImplicationExpressionRule()); - } - set( - $current, - "right", - lv_right_3_0, - "org.eclipse.viatra.solver.language.SolverLanguage.ImplicationExpression"); - afterParserOrEnumRuleCall(); - } - ) - ) - )? - ) -; - // Entry rule entryRuleDisjunctiveExpression entryRuleDisjunctiveExpression returns [EObject current=null]: { newCompositeNode(grammarAccess.getDisjunctiveExpressionRule()); } @@ -1683,7 +2034,7 @@ ruleComparisonExpression returns [EObject current=null] ( { $current = forceCreateModelElementAndSet( - grammarAccess.getComparisonExpressionAccess().getComparisonLeftAction_1_0(), + grammarAccess.getComparisonExpressionAccess().getBinaryExpressionLeftAction_1_0(), $current); } ) @@ -1995,7 +2346,7 @@ ruleCastExpression returns [EObject current=null] } } { - newCompositeNode(grammarAccess.getCastExpressionAccess().getTypeNamedElementCrossReference_1_2_0()); + newCompositeNode(grammarAccess.getCastExpressionAccess().getTargetTypeSymbolCrossReference_1_2_0()); } ruleQualifiedName { @@ -2024,11 +2375,11 @@ ruleUnaryExpression returns [EObject current=null] }: ( { - newCompositeNode(grammarAccess.getUnaryExpressionAccess().getAggregationExpressionParserRuleCall_0()); + newCompositeNode(grammarAccess.getUnaryExpressionAccess().getBracedAggregateExpressionParserRuleCall_0()); } - this_AggregationExpression_0=ruleAggregationExpression + this_BracedAggregateExpression_0=ruleBracedAggregateExpression { - $current = $this_AggregationExpression_0.current; + $current = $this_BracedAggregateExpression_0.current; afterParserOrEnumRuleCall(); } | @@ -2043,9 +2394,9 @@ ruleUnaryExpression returns [EObject current=null] ( ( { - newCompositeNode(grammarAccess.getUnaryExpressionAccess().getOpUnaryOpEnumRuleCall_1_1_0()); + newCompositeNode(grammarAccess.getUnaryExpressionAccess().getOpUnaryOperatorEnumRuleCall_1_1_0()); } - lv_op_2_0=ruleUnaryOp + lv_op_2_0=ruleUnaryOperator { if ($current==null) { $current = createModelElementForParent(grammarAccess.getUnaryExpressionRule()); @@ -2054,7 +2405,7 @@ ruleUnaryExpression returns [EObject current=null] $current, "op", lv_op_2_0, - "org.eclipse.viatra.solver.language.SolverLanguage.UnaryOp"); + "org.eclipse.viatra.solver.language.SolverLanguage.UnaryOperator"); afterParserOrEnumRuleCall(); } ) @@ -2062,9 +2413,9 @@ ruleUnaryExpression returns [EObject current=null] ( ( { - newCompositeNode(grammarAccess.getUnaryExpressionAccess().getBodyAggregationExpressionParserRuleCall_1_2_0()); + newCompositeNode(grammarAccess.getUnaryExpressionAccess().getBodyBracedAggregateExpressionParserRuleCall_1_2_0()); } - lv_body_3_0=ruleAggregationExpression + lv_body_3_0=ruleBracedAggregateExpression { if ($current==null) { $current = createModelElementForParent(grammarAccess.getUnaryExpressionRule()); @@ -2073,7 +2424,7 @@ ruleUnaryExpression returns [EObject current=null] $current, "body", lv_body_3_0, - "org.eclipse.viatra.solver.language.SolverLanguage.AggregationExpression"); + "org.eclipse.viatra.solver.language.SolverLanguage.BracedAggregateExpression"); afterParserOrEnumRuleCall(); } ) @@ -2082,15 +2433,15 @@ ruleUnaryExpression returns [EObject current=null] ) ; -// Entry rule entryRuleAggregationExpression -entryRuleAggregationExpression returns [EObject current=null]: - { newCompositeNode(grammarAccess.getAggregationExpressionRule()); } - iv_ruleAggregationExpression=ruleAggregationExpression - { $current=$iv_ruleAggregationExpression.current; } +// Entry rule entryRuleBracedAggregateExpression +entryRuleBracedAggregateExpression returns [EObject current=null]: + { newCompositeNode(grammarAccess.getBracedAggregateExpressionRule()); } + iv_ruleBracedAggregateExpression=ruleBracedAggregateExpression + { $current=$iv_ruleBracedAggregateExpression.current; } EOF; -// Rule AggregationExpression -ruleAggregationExpression returns [EObject current=null] +// Rule BracedAggregateExpression +ruleBracedAggregateExpression returns [EObject current=null] @init { enterRule(); } @@ -2099,7 +2450,7 @@ ruleAggregationExpression returns [EObject current=null] }: ( { - newCompositeNode(grammarAccess.getAggregationExpressionAccess().getAtomicExpressionParserRuleCall_0()); + newCompositeNode(grammarAccess.getBracedAggregateExpressionAccess().getAtomicExpressionParserRuleCall_0()); } this_AtomicExpression_0=ruleAtomicExpression { @@ -2108,34 +2459,34 @@ ruleAggregationExpression returns [EObject current=null] } | { - newCompositeNode(grammarAccess.getAggregationExpressionAccess().getQuantifiedExpressionParserRuleCall_1()); + newCompositeNode(grammarAccess.getBracedAggregateExpressionAccess().getAggregationParserRuleCall_1()); } - this_QuantifiedExpression_1=ruleQuantifiedExpression + this_Aggregation_1=ruleAggregation { - $current = $this_QuantifiedExpression_1.current; + $current = $this_Aggregation_1.current; afterParserOrEnumRuleCall(); } | { - newCompositeNode(grammarAccess.getAggregationExpressionAccess().getAggregationParserRuleCall_2()); + newCompositeNode(grammarAccess.getBracedAggregateExpressionAccess().getCountParserRuleCall_2()); } - this_Aggregation_2=ruleAggregation + this_Count_2=ruleCount { - $current = $this_Aggregation_2.current; + $current = $this_Count_2.current; afterParserOrEnumRuleCall(); } ) ; -// Entry rule entryRuleLocalVariables -entryRuleLocalVariables returns [EObject current=null]: - { newCompositeNode(grammarAccess.getLocalVariablesRule()); } - iv_ruleLocalVariables=ruleLocalVariables - { $current=$iv_ruleLocalVariables.current; } +// Entry rule entryRuleAggregation +entryRuleAggregation returns [EObject current=null]: + { newCompositeNode(grammarAccess.getAggregationRule()); } + iv_ruleAggregation=ruleAggregation + { $current=$iv_ruleAggregation.current; } EOF; -// Rule LocalVariables -ruleLocalVariables returns [EObject current=null] +// Rule Aggregation +ruleAggregation returns [EObject current=null] @init { enterRule(); } @@ -2144,162 +2495,83 @@ ruleLocalVariables returns [EObject current=null] }: ( ( - { - $current = forceCreateModelElement( - grammarAccess.getLocalVariablesAccess().getLocalVariablesAction_0(), - $current); - } - ) - otherlv_1=LeftSquareBracket - { - newLeafNode(otherlv_1, grammarAccess.getLocalVariablesAccess().getLeftSquareBracketKeyword_1()); - } - ( - ( - ( - { - newCompositeNode(grammarAccess.getLocalVariablesAccess().getVariablesVariableParserRuleCall_2_0_0()); - } - lv_variables_2_0=ruleVariable - { - if ($current==null) { - $current = createModelElementForParent(grammarAccess.getLocalVariablesRule()); - } - add( - $current, - "variables", - lv_variables_2_0, - "org.eclipse.viatra.solver.language.SolverLanguage.Variable"); - afterParserOrEnumRuleCall(); - } - ) - ) ( - otherlv_3=Comma { - newLeafNode(otherlv_3, grammarAccess.getLocalVariablesAccess().getCommaKeyword_2_1_0()); + if ($current==null) { + $current = createModelElement(grammarAccess.getAggregationRule()); + } } - ( - ( - { - newCompositeNode(grammarAccess.getLocalVariablesAccess().getVariablesVariableParserRuleCall_2_1_1_0()); - } - lv_variables_4_0=ruleVariable - { - if ($current==null) { - $current = createModelElementForParent(grammarAccess.getLocalVariablesRule()); - } - add( - $current, - "variables", - lv_variables_4_0, - "org.eclipse.viatra.solver.language.SolverLanguage.Variable"); - afterParserOrEnumRuleCall(); - } - ) - ) - )* - )? - otherlv_5=RightSquareBracket - { - newLeafNode(otherlv_5, grammarAccess.getLocalVariablesAccess().getRightSquareBracketKeyword_3()); - } - ) -; - -// Entry rule entryRuleQuantifiedExpression -entryRuleQuantifiedExpression returns [EObject current=null]: - { newCompositeNode(grammarAccess.getQuantifiedExpressionRule()); } - iv_ruleQuantifiedExpression=ruleQuantifiedExpression - { $current=$iv_ruleQuantifiedExpression.current; } - EOF; - -// Rule QuantifiedExpression -ruleQuantifiedExpression returns [EObject current=null] -@init { - enterRule(); -} -@after { - leaveRule(); -}: - ( - ( - ( { - newCompositeNode(grammarAccess.getQuantifiedExpressionAccess().getQuantifierQuantifierEnumRuleCall_0_0()); + newCompositeNode(grammarAccess.getAggregationAccess().getOpSymbolCrossReference_0_0()); } - lv_quantifier_0_0=ruleQuantifier + ruleQualifiedName { - if ($current==null) { - $current = createModelElementForParent(grammarAccess.getQuantifiedExpressionRule()); - } - set( - $current, - "quantifier", - lv_quantifier_0_0, - "org.eclipse.viatra.solver.language.SolverLanguage.Quantifier"); afterParserOrEnumRuleCall(); } ) ) + otherlv_1=LeftCurlyBracket + { + newLeafNode(otherlv_1, grammarAccess.getAggregationAccess().getLeftCurlyBracketKeyword_1()); + } ( ( { - newCompositeNode(grammarAccess.getQuantifiedExpressionAccess().getLocalVariablesLocalVariablesParserRuleCall_1_0()); + newCompositeNode(grammarAccess.getAggregationAccess().getValueExpressionParserRuleCall_2_0()); } - lv_localVariables_1_0=ruleLocalVariables + lv_value_2_0=ruleExpression { if ($current==null) { - $current = createModelElementForParent(grammarAccess.getQuantifiedExpressionRule()); + $current = createModelElementForParent(grammarAccess.getAggregationRule()); } set( $current, - "localVariables", - lv_localVariables_1_0, - "org.eclipse.viatra.solver.language.SolverLanguage.LocalVariables"); + "value", + lv_value_2_0, + "org.eclipse.viatra.solver.language.SolverLanguage.Expression"); afterParserOrEnumRuleCall(); } ) - )? - otherlv_2=LeftCurlyBracket + ) + otherlv_3=VerticalLine { - newLeafNode(otherlv_2, grammarAccess.getQuantifiedExpressionAccess().getLeftCurlyBracketKeyword_2()); + newLeafNode(otherlv_3, grammarAccess.getAggregationAccess().getVerticalLineKeyword_3()); } ( ( { - newCompositeNode(grammarAccess.getQuantifiedExpressionAccess().getBodyExpressionParserRuleCall_3_0()); + newCompositeNode(grammarAccess.getAggregationAccess().getConditionExpressionParserRuleCall_4_0()); } - lv_body_3_0=ruleExpression + lv_condition_4_0=ruleExpression { if ($current==null) { - $current = createModelElementForParent(grammarAccess.getQuantifiedExpressionRule()); + $current = createModelElementForParent(grammarAccess.getAggregationRule()); } set( $current, - "body", - lv_body_3_0, + "condition", + lv_condition_4_0, "org.eclipse.viatra.solver.language.SolverLanguage.Expression"); afterParserOrEnumRuleCall(); } ) ) - otherlv_4=RightCurlyBracket + otherlv_5=RightCurlyBracket { - newLeafNode(otherlv_4, grammarAccess.getQuantifiedExpressionAccess().getRightCurlyBracketKeyword_4()); + newLeafNode(otherlv_5, grammarAccess.getAggregationAccess().getRightCurlyBracketKeyword_5()); } ) ; -// Entry rule entryRuleAggregation -entryRuleAggregation returns [EObject current=null]: - { newCompositeNode(grammarAccess.getAggregationRule()); } - iv_ruleAggregation=ruleAggregation - { $current=$iv_ruleAggregation.current; } +// Entry rule entryRuleCount +entryRuleCount returns [EObject current=null]: + { newCompositeNode(grammarAccess.getCountRule()); } + iv_ruleCount=ruleCount + { $current=$iv_ruleCount.current; } EOF; -// Rule Aggregation -ruleAggregation returns [EObject current=null] +// Rule Count +ruleCount returns [EObject current=null] @init { enterRule(); } @@ -2307,92 +2579,36 @@ ruleAggregation returns [EObject current=null] leaveRule(); }: ( - ( - ( - { - if ($current==null) { - $current = createModelElement(grammarAccess.getAggregationRule()); - } - } - { - newCompositeNode(grammarAccess.getAggregationAccess().getOpNamedElementCrossReference_0_0()); - } - ruleQualifiedName - { - afterParserOrEnumRuleCall(); - } - ) - ) - ( - ( - { - newCompositeNode(grammarAccess.getAggregationAccess().getLocalVariablesLocalVariablesParserRuleCall_1_0()); - } - lv_localVariables_1_0=ruleLocalVariables - { - if ($current==null) { - $current = createModelElementForParent(grammarAccess.getAggregationRule()); - } - set( - $current, - "localVariables", - lv_localVariables_1_0, - "org.eclipse.viatra.solver.language.SolverLanguage.LocalVariables"); - afterParserOrEnumRuleCall(); - } - ) - )? - otherlv_2=LeftCurlyBracket + otherlv_0=Count { - newLeafNode(otherlv_2, grammarAccess.getAggregationAccess().getLeftCurlyBracketKeyword_2()); + newLeafNode(otherlv_0, grammarAccess.getCountAccess().getCountKeyword_0()); } - ( - ( - { - newCompositeNode(grammarAccess.getAggregationAccess().getBodyExpressionParserRuleCall_3_0()); - } - lv_body_3_0=ruleExpression - { - if ($current==null) { - $current = createModelElementForParent(grammarAccess.getAggregationRule()); - } - set( - $current, - "body", - lv_body_3_0, - "org.eclipse.viatra.solver.language.SolverLanguage.Expression"); - afterParserOrEnumRuleCall(); - } - ) - ) - ( - otherlv_4=VerticalLine - { - newLeafNode(otherlv_4, grammarAccess.getAggregationAccess().getVerticalLineKeyword_4_0()); - } - ( - ( - { - newCompositeNode(grammarAccess.getAggregationAccess().getConditionExpressionParserRuleCall_4_1_0()); - } - lv_condition_5_0=ruleExpression - { - if ($current==null) { - $current = createModelElementForParent(grammarAccess.getAggregationRule()); - } - set( - $current, - "condition", - lv_condition_5_0, - "org.eclipse.viatra.solver.language.SolverLanguage.Expression"); - afterParserOrEnumRuleCall(); + otherlv_1=LeftCurlyBracket + { + newLeafNode(otherlv_1, grammarAccess.getCountAccess().getLeftCurlyBracketKeyword_1()); + } + ( + ( + { + newCompositeNode(grammarAccess.getCountAccess().getConditionExpressionParserRuleCall_2_0()); + } + lv_condition_2_0=ruleExpression + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getCountRule()); } - ) + set( + $current, + "condition", + lv_condition_2_0, + "org.eclipse.viatra.solver.language.SolverLanguage.Expression"); + afterParserOrEnumRuleCall(); + } ) - )? - otherlv_6=RightCurlyBracket + ) + otherlv_3=RightCurlyBracket { - newLeafNode(otherlv_6, grammarAccess.getAggregationAccess().getRightCurlyBracketKeyword_5()); + newLeafNode(otherlv_3, grammarAccess.getCountAccess().getRightCurlyBracketKeyword_3()); } ) ; @@ -2505,51 +2721,12 @@ ruleCall returns [EObject current=null] } ) ) - ( - ( - ( - lv_transitiveClosure_1_0=RULE_TRANSITIVE_CLOSURE - { - newLeafNode(lv_transitiveClosure_1_0, grammarAccess.getCallAccess().getTransitiveClosureTRANSITIVE_CLOSURETerminalRuleCall_1_0_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getCallRule()); - } - setWithLastConsumed( - $current, - "transitiveClosure", - true, - "org.eclipse.viatra.solver.language.SolverLanguage.TRANSITIVE_CLOSURE"); - } - ) - ) - | - ( - ( - lv_reflexiveTransitiveClosure_2_0=RULE_REFLEXIVE_TRANSITIVE_CLOSURE - { - newLeafNode(lv_reflexiveTransitiveClosure_2_0, grammarAccess.getCallAccess().getReflexiveTransitiveClosureREFLEXIVE_TRANSITIVE_CLOSURETerminalRuleCall_1_1_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getCallRule()); - } - setWithLastConsumed( - $current, - "reflexiveTransitiveClosure", - true, - "org.eclipse.viatra.solver.language.SolverLanguage.REFLEXIVE_TRANSITIVE_CLOSURE"); - } - ) - ) - )? ( ( { - newCompositeNode(grammarAccess.getCallAccess().getArgumentListArgumentListParserRuleCall_2_0()); + newCompositeNode(grammarAccess.getCallAccess().getArgumentListArgumentListParserRuleCall_1_0()); } - lv_argumentList_3_0=ruleArgumentList + lv_argumentList_1_0=ruleArgumentList { if ($current==null) { $current = createModelElementForParent(grammarAccess.getCallRule()); @@ -2557,7 +2734,7 @@ ruleCall returns [EObject current=null] set( $current, "argumentList", - lv_argumentList_3_0, + lv_argumentList_1_0, "org.eclipse.viatra.solver.language.SolverLanguage.ArgumentList"); afterParserOrEnumRuleCall(); } @@ -2681,11 +2858,11 @@ ruleArgument returns [EObject current=null] } | { - newCompositeNode(grammarAccess.getArgumentAccess().getTypedArgumentParserRuleCall_2()); + newCompositeNode(grammarAccess.getArgumentAccess().getTypedVariableArgumentParserRuleCall_2()); } - this_TypedArgument_2=ruleTypedArgument + this_TypedVariableArgument_2=ruleTypedVariableArgument { - $current = $this_TypedArgument_2.current; + $current = $this_TypedVariableArgument_2.current; afterParserOrEnumRuleCall(); } | @@ -2718,17 +2895,17 @@ ruleExpressionArgument returns [EObject current=null] ( ( { - newCompositeNode(grammarAccess.getExpressionArgumentAccess().getBodyComparisonExpressionParserRuleCall_0()); + newCompositeNode(grammarAccess.getExpressionArgumentAccess().getExpressionComparisonExpressionParserRuleCall_0()); } - lv_body_0_0=ruleComparisonExpression + lv_expression_0_0=ruleComparisonExpression { if ($current==null) { $current = createModelElementForParent(grammarAccess.getExpressionArgumentRule()); } set( $current, - "body", - lv_body_0_0, + "expression", + lv_expression_0_0, "org.eclipse.viatra.solver.language.SolverLanguage.ComparisonExpression"); afterParserOrEnumRuleCall(); } @@ -2766,15 +2943,15 @@ ruleStarArgument returns [EObject current=null] ) ; -// Entry rule entryRuleTypedArgument -entryRuleTypedArgument returns [EObject current=null]: - { newCompositeNode(grammarAccess.getTypedArgumentRule()); } - iv_ruleTypedArgument=ruleTypedArgument - { $current=$iv_ruleTypedArgument.current; } +// Entry rule entryRuleTypedVariableArgument +entryRuleTypedVariableArgument returns [EObject current=null]: + { newCompositeNode(grammarAccess.getTypedVariableArgumentRule()); } + iv_ruleTypedVariableArgument=ruleTypedVariableArgument + { $current=$iv_ruleTypedVariableArgument.current; } EOF; -// Rule TypedArgument -ruleTypedArgument returns [EObject current=null] +// Rule TypedVariableArgument +ruleTypedVariableArgument returns [EObject current=null] @init { enterRule(); } @@ -2785,32 +2962,37 @@ ruleTypedArgument returns [EObject current=null] ( ( { - if ($current==null) { - $current = createModelElement(grammarAccess.getTypedArgumentRule()); - } - } - { - newCompositeNode(grammarAccess.getTypedArgumentAccess().getTypeNamedElementCrossReference_0_0()); + newCompositeNode(grammarAccess.getTypedVariableArgumentAccess().getTypeReferenceTypeReferenceParserRuleCall_0_0()); } - ruleQualifiedName + lv_typeReference_0_0=ruleTypeReference { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getTypedVariableArgumentRule()); + } + set( + $current, + "typeReference", + lv_typeReference_0_0, + "org.eclipse.viatra.solver.language.SolverLanguage.TypeReference"); afterParserOrEnumRuleCall(); } ) ) ( ( + lv_name_1_0=RULE_ID { - if ($current==null) { - $current = createModelElement(grammarAccess.getTypedArgumentRule()); - } - } - { - newCompositeNode(grammarAccess.getTypedArgumentAccess().getVariableNamedElementCrossReference_1_0()); + newLeafNode(lv_name_1_0, grammarAccess.getTypedVariableArgumentAccess().getNameIDTerminalRuleCall_1_0()); } - ruleQualifiedName { - afterParserOrEnumRuleCall(); + if ($current==null) { + $current = createModelElement(grammarAccess.getTypedVariableArgumentRule()); + } + setWithLastConsumed( + $current, + "name", + lv_name_1_0, + "org.eclipse.xtext.common.Terminals.ID"); } ) ) @@ -2836,15 +3018,18 @@ ruleTypedStarArgument returns [EObject current=null] ( ( { - if ($current==null) { - $current = createModelElement(grammarAccess.getTypedStarArgumentRule()); - } - } - { - newCompositeNode(grammarAccess.getTypedStarArgumentAccess().getTypeNamedElementCrossReference_0_0()); + newCompositeNode(grammarAccess.getTypedStarArgumentAccess().getTypeReferenceTypeReferenceParserRuleCall_0_0()); } - ruleQualifiedName + lv_typeReference_0_0=ruleTypeReference { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getTypedStarArgumentRule()); + } + set( + $current, + "typeReference", + lv_typeReference_0_0, + "org.eclipse.viatra.solver.language.SolverLanguage.TypeReference"); afterParserOrEnumRuleCall(); } ) @@ -2873,19 +3058,137 @@ ruleReference returns [EObject current=null] }: ( ( - { - if ($current==null) { - $current = createModelElement(grammarAccess.getReferenceRule()); + ( + { + newCompositeNode(grammarAccess.getReferenceAccess().getComponentsPathComponentParserRuleCall_0_0()); } - } - { - newCompositeNode(grammarAccess.getReferenceAccess().getReferredNamedElementCrossReference_0()); - } - ruleQualifiedName + lv_components_0_0=rulePathComponent + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getReferenceRule()); + } + add( + $current, + "components", + lv_components_0_0, + "org.eclipse.viatra.solver.language.SolverLanguage.PathComponent"); + afterParserOrEnumRuleCall(); + } + ) + ) + ( + otherlv_1=FullStop { - afterParserOrEnumRuleCall(); + newLeafNode(otherlv_1, grammarAccess.getReferenceAccess().getFullStopKeyword_1_0()); } + ( + ( + { + newCompositeNode(grammarAccess.getReferenceAccess().getComponentsPathComponentParserRuleCall_1_1_0()); + } + lv_components_2_0=rulePathComponent + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getReferenceRule()); + } + add( + $current, + "components", + lv_components_2_0, + "org.eclipse.viatra.solver.language.SolverLanguage.PathComponent"); + afterParserOrEnumRuleCall(); + } + ) + ) + )* + ) +; + +// Entry rule entryRulePathComponent +entryRulePathComponent returns [EObject current=null]: + { newCompositeNode(grammarAccess.getPathComponentRule()); } + iv_rulePathComponent=rulePathComponent + { $current=$iv_rulePathComponent.current; } + EOF; + +// Rule PathComponent +rulePathComponent returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + ( + ( + lv_inverse_0_0=Tilde + { + newLeafNode(lv_inverse_0_0, grammarAccess.getPathComponentAccess().getInverseTildeKeyword_0_0()); + } + { + if ($current==null) { + $current = createModelElement(grammarAccess.getPathComponentRule()); + } + setWithLastConsumed($current, "inverse", true, "~"); + } + ) + )? + ( + ( + { + if ($current==null) { + $current = createModelElement(grammarAccess.getPathComponentRule()); + } + } + { + newCompositeNode(grammarAccess.getPathComponentAccess().getSymbolSymbolCrossReference_1_0()); + } + ruleQualifiedName + { + afterParserOrEnumRuleCall(); + } + ) ) + ( + ( + ( + lv_transitiveClosure_2_0=RULE_TRANSITIVE_CLOSURE + { + newLeafNode(lv_transitiveClosure_2_0, grammarAccess.getPathComponentAccess().getTransitiveClosureTRANSITIVE_CLOSURETerminalRuleCall_2_0_0()); + } + { + if ($current==null) { + $current = createModelElement(grammarAccess.getPathComponentRule()); + } + setWithLastConsumed( + $current, + "transitiveClosure", + true, + "org.eclipse.viatra.solver.language.SolverLanguage.TRANSITIVE_CLOSURE"); + } + ) + ) + | + ( + ( + lv_reflexiveTransitiveClosure_3_0=RULE_REFLEXIVE_TRANSITIVE_CLOSURE + { + newLeafNode(lv_reflexiveTransitiveClosure_3_0, grammarAccess.getPathComponentAccess().getReflexiveTransitiveClosureREFLEXIVE_TRANSITIVE_CLOSURETerminalRuleCall_2_1_0()); + } + { + if ($current==null) { + $current = createModelElement(grammarAccess.getPathComponentRule()); + } + setWithLastConsumed( + $current, + "reflexiveTransitiveClosure", + true, + "org.eclipse.viatra.solver.language.SolverLanguage.REFLEXIVE_TRANSITIVE_CLOSURE"); + } + ) + ) + )? ) ; @@ -2912,9 +3215,9 @@ ruleInterval returns [EObject current=null] ( ( { - newCompositeNode(grammarAccess.getIntervalAccess().getLowerBoundExpressionParserRuleCall_1_0()); + newCompositeNode(grammarAccess.getIntervalAccess().getLowerBoundAdditiveExpressionParserRuleCall_1_0()); } - lv_lowerBound_1_0=ruleExpression + lv_lowerBound_1_0=ruleAdditiveExpression { if ($current==null) { $current = createModelElementForParent(grammarAccess.getIntervalRule()); @@ -2923,21 +3226,21 @@ ruleInterval returns [EObject current=null] $current, "lowerBound", lv_lowerBound_1_0, - "org.eclipse.viatra.solver.language.SolverLanguage.Expression"); + "org.eclipse.viatra.solver.language.SolverLanguage.AdditiveExpression"); afterParserOrEnumRuleCall(); } ) ) - otherlv_2=FullStopFullStop + otherlv_2=Comma { - newLeafNode(otherlv_2, grammarAccess.getIntervalAccess().getFullStopFullStopKeyword_2()); + newLeafNode(otherlv_2, grammarAccess.getIntervalAccess().getCommaKeyword_2()); } ( ( { - newCompositeNode(grammarAccess.getIntervalAccess().getUpperBoundExpressionParserRuleCall_3_0()); + newCompositeNode(grammarAccess.getIntervalAccess().getUpperBoundAdditiveExpressionParserRuleCall_3_0()); } - lv_upperBound_3_0=ruleExpression + lv_upperBound_3_0=ruleAdditiveExpression { if ($current==null) { $current = createModelElementForParent(grammarAccess.getIntervalRule()); @@ -2946,7 +3249,7 @@ ruleInterval returns [EObject current=null] $current, "upperBound", lv_upperBound_3_0, - "org.eclipse.viatra.solver.language.SolverLanguage.Expression"); + "org.eclipse.viatra.solver.language.SolverLanguage.AdditiveExpression"); afterParserOrEnumRuleCall(); } ) @@ -2984,38 +3287,47 @@ ruleLiteral returns [EObject current=null] } | { - newCompositeNode(grammarAccess.getLiteralAccess().getNumericLiteralParserRuleCall_1()); + newCompositeNode(grammarAccess.getLiteralAccess().getIntLiteralParserRuleCall_1()); + } + this_IntLiteral_1=ruleIntLiteral + { + $current = $this_IntLiteral_1.current; + afterParserOrEnumRuleCall(); + } + | + { + newCompositeNode(grammarAccess.getLiteralAccess().getRealLiteralParserRuleCall_2()); } - this_NumericLiteral_1=ruleNumericLiteral + this_RealLiteral_2=ruleRealLiteral { - $current = $this_NumericLiteral_1.current; + $current = $this_RealLiteral_2.current; afterParserOrEnumRuleCall(); } | { - newCompositeNode(grammarAccess.getLiteralAccess().getInfinityLiteralParserRuleCall_2()); + newCompositeNode(grammarAccess.getLiteralAccess().getInfinityLiteralParserRuleCall_3()); } - this_InfinityLiteral_2=ruleInfinityLiteral + this_InfinityLiteral_3=ruleInfinityLiteral { - $current = $this_InfinityLiteral_2.current; + $current = $this_InfinityLiteral_3.current; afterParserOrEnumRuleCall(); } | { - newCompositeNode(grammarAccess.getLiteralAccess().getEmptyIntervalLiteralParserRuleCall_3()); + newCompositeNode(grammarAccess.getLiteralAccess().getEmptyLiteralParserRuleCall_4()); } - this_EmptyIntervalLiteral_3=ruleEmptyIntervalLiteral + this_EmptyLiteral_4=ruleEmptyLiteral { - $current = $this_EmptyIntervalLiteral_3.current; + $current = $this_EmptyLiteral_4.current; afterParserOrEnumRuleCall(); } | { - newCompositeNode(grammarAccess.getLiteralAccess().getStringLiteralParserRuleCall_4()); + newCompositeNode(grammarAccess.getLiteralAccess().getStringLiteralParserRuleCall_5()); } - this_StringLiteral_4=ruleStringLiteral + this_StringLiteral_5=ruleStringLiteral { - $current = $this_StringLiteral_4.current; + $current = $this_StringLiteral_5.current; afterParserOrEnumRuleCall(); } ) @@ -3057,15 +3369,50 @@ ruleLogicLiteral returns [EObject current=null] ) ; -// Entry rule entryRuleNumericLiteral -entryRuleNumericLiteral returns [EObject current=null]: - { newCompositeNode(grammarAccess.getNumericLiteralRule()); } - iv_ruleNumericLiteral=ruleNumericLiteral - { $current=$iv_ruleNumericLiteral.current; } +// Entry rule entryRuleIntLiteral +entryRuleIntLiteral returns [EObject current=null]: + { newCompositeNode(grammarAccess.getIntLiteralRule()); } + iv_ruleIntLiteral=ruleIntLiteral + { $current=$iv_ruleIntLiteral.current; } + EOF; + +// Rule IntLiteral +ruleIntLiteral returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + ( + lv_value_0_0=RULE_INT + { + newLeafNode(lv_value_0_0, grammarAccess.getIntLiteralAccess().getValueINTTerminalRuleCall_0()); + } + { + if ($current==null) { + $current = createModelElement(grammarAccess.getIntLiteralRule()); + } + setWithLastConsumed( + $current, + "value", + lv_value_0_0, + "org.eclipse.xtext.common.Terminals.INT"); + } + ) + ) +; + +// Entry rule entryRuleRealLiteral +entryRuleRealLiteral returns [EObject current=null]: + { newCompositeNode(grammarAccess.getRealLiteralRule()); } + iv_ruleRealLiteral=ruleRealLiteral + { $current=$iv_ruleRealLiteral.current; } EOF; -// Rule NumericLiteral -ruleNumericLiteral returns [EObject current=null] +// Rule RealLiteral +ruleRealLiteral returns [EObject current=null] @init { enterRule(); } @@ -3075,12 +3422,12 @@ ruleNumericLiteral returns [EObject current=null] ( ( { - newCompositeNode(grammarAccess.getNumericLiteralAccess().getValueRealParserRuleCall_0()); + newCompositeNode(grammarAccess.getRealLiteralAccess().getValueRealParserRuleCall_0()); } lv_value_0_0=ruleReal { if ($current==null) { - $current = createModelElementForParent(grammarAccess.getNumericLiteralRule()); + $current = createModelElementForParent(grammarAccess.getRealLiteralRule()); } set( $current, @@ -3123,15 +3470,15 @@ ruleInfinityLiteral returns [EObject current=null] ) ; -// Entry rule entryRuleEmptyIntervalLiteral -entryRuleEmptyIntervalLiteral returns [EObject current=null]: - { newCompositeNode(grammarAccess.getEmptyIntervalLiteralRule()); } - iv_ruleEmptyIntervalLiteral=ruleEmptyIntervalLiteral - { $current=$iv_ruleEmptyIntervalLiteral.current; } +// Entry rule entryRuleEmptyLiteral +entryRuleEmptyLiteral returns [EObject current=null]: + { newCompositeNode(grammarAccess.getEmptyLiteralRule()); } + iv_ruleEmptyLiteral=ruleEmptyLiteral + { $current=$iv_ruleEmptyLiteral.current; } EOF; -// Rule EmptyIntervalLiteral -ruleEmptyIntervalLiteral returns [EObject current=null] +// Rule EmptyLiteral +ruleEmptyLiteral returns [EObject current=null] @init { enterRule(); } @@ -3142,13 +3489,13 @@ ruleEmptyIntervalLiteral returns [EObject current=null] ( { $current = forceCreateModelElement( - grammarAccess.getEmptyIntervalLiteralAccess().getEmptyIntervalLiteralAction_0(), + grammarAccess.getEmptyLiteralAccess().getEmptyLiteralAction_0(), $current); } ) otherlv_1=Empty { - newLeafNode(otherlv_1, grammarAccess.getEmptyIntervalLiteralAccess().getEmptyKeyword_1()); + newLeafNode(otherlv_1, grammarAccess.getEmptyLiteralAccess().getEmptyKeyword_1()); } ) ; @@ -3188,15 +3535,15 @@ ruleStringLiteral returns [EObject current=null] ) ; -// Entry rule entryRuleClassDefinition -entryRuleClassDefinition returns [EObject current=null]: - { newCompositeNode(grammarAccess.getClassDefinitionRule()); } - iv_ruleClassDefinition=ruleClassDefinition - { $current=$iv_ruleClassDefinition.current; } +// Entry rule entryRuleClassDeclaration +entryRuleClassDeclaration returns [EObject current=null]: + { newCompositeNode(grammarAccess.getClassDeclarationRule()); } + iv_ruleClassDeclaration=ruleClassDeclaration + { $current=$iv_ruleClassDeclaration.current; } EOF; -// Rule ClassDefinition -ruleClassDefinition returns [EObject current=null] +// Rule ClassDeclaration +ruleClassDeclaration returns [EObject current=null] @init { enterRule(); } @@ -3206,54 +3553,100 @@ ruleClassDefinition returns [EObject current=null] ( ( ( - lv_abstract_0_0=Abstract - { - newLeafNode(lv_abstract_0_0, grammarAccess.getClassDefinitionAccess().getAbstractAbstractKeyword_0_0()); + { + getUnorderedGroupHelper().enter(grammarAccess.getClassDeclarationAccess().getUnorderedGroup_0()); } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getClassDefinitionRule()); + ( + ( + ( + {getUnorderedGroupHelper().canSelect(grammarAccess.getClassDeclarationAccess().getUnorderedGroup_0(), 0)}?=>( + { + getUnorderedGroupHelper().select(grammarAccess.getClassDeclarationAccess().getUnorderedGroup_0(), 0); } - setWithLastConsumed($current, "abstract", true, "abstract"); - } + ({true}?=>(( + lv_abstract_1_0=Abstract + { + newLeafNode(lv_abstract_1_0, grammarAccess.getClassDeclarationAccess().getAbstractAbstractKeyword_0_0_0()); + } + { + if ($current==null) { + $current = createModelElement(grammarAccess.getClassDeclarationRule()); + } + setWithLastConsumed($current, "abstract", true, "abstract"); + } + ) + )) + { + getUnorderedGroupHelper().returnFromSelection(grammarAccess.getClassDeclarationAccess().getUnorderedGroup_0()); + } + ) + )| + ( + {getUnorderedGroupHelper().canSelect(grammarAccess.getClassDeclarationAccess().getUnorderedGroup_0(), 1)}?=>( + { + getUnorderedGroupHelper().select(grammarAccess.getClassDeclarationAccess().getUnorderedGroup_0(), 1); + } + ({true}?=>(( + lv_root_2_0=Root + { + newLeafNode(lv_root_2_0, grammarAccess.getClassDeclarationAccess().getRootRootKeyword_0_1_0()); + } + { + if ($current==null) { + $current = createModelElement(grammarAccess.getClassDeclarationRule()); + } + setWithLastConsumed($current, "root", true, "root"); + } + ) + )) + { + getUnorderedGroupHelper().returnFromSelection(grammarAccess.getClassDeclarationAccess().getUnorderedGroup_0()); + } + ) ) - )? - otherlv_1=Class + )* + ) + ) + { + getUnorderedGroupHelper().leave(grammarAccess.getClassDeclarationAccess().getUnorderedGroup_0()); + } + ) + otherlv_3=Class { - newLeafNode(otherlv_1, grammarAccess.getClassDefinitionAccess().getClassKeyword_1()); + newLeafNode(otherlv_3, grammarAccess.getClassDeclarationAccess().getClassKeyword_1()); } ( ( - lv_name_2_0=RULE_ID + lv_name_4_0=RULE_ID { - newLeafNode(lv_name_2_0, grammarAccess.getClassDefinitionAccess().getNameIDTerminalRuleCall_2_0()); + newLeafNode(lv_name_4_0, grammarAccess.getClassDeclarationAccess().getNameIDTerminalRuleCall_2_0()); } { if ($current==null) { - $current = createModelElement(grammarAccess.getClassDefinitionRule()); + $current = createModelElement(grammarAccess.getClassDeclarationRule()); } setWithLastConsumed( $current, "name", - lv_name_2_0, + lv_name_4_0, "org.eclipse.xtext.common.Terminals.ID"); } ) ) ( - otherlv_3=Extends + otherlv_5=Extends { - newLeafNode(otherlv_3, grammarAccess.getClassDefinitionAccess().getExtendsKeyword_3_0()); + newLeafNode(otherlv_5, grammarAccess.getClassDeclarationAccess().getExtendsKeyword_3_0()); } ( ( { if ($current==null) { - $current = createModelElement(grammarAccess.getClassDefinitionRule()); + $current = createModelElement(grammarAccess.getClassDeclarationRule()); } } { - newCompositeNode(grammarAccess.getClassDefinitionAccess().getSuperclassesNamedElementCrossReference_3_1_0()); + newCompositeNode(grammarAccess.getClassDeclarationAccess().getSupertypesSymbolCrossReference_3_1_0()); } ruleQualifiedName { @@ -3262,19 +3655,19 @@ ruleClassDefinition returns [EObject current=null] ) ) ( - otherlv_5=Comma + otherlv_7=Comma { - newLeafNode(otherlv_5, grammarAccess.getClassDefinitionAccess().getCommaKeyword_3_2_0()); + newLeafNode(otherlv_7, grammarAccess.getClassDeclarationAccess().getCommaKeyword_3_2_0()); } ( ( { if ($current==null) { - $current = createModelElement(grammarAccess.getClassDefinitionRule()); + $current = createModelElement(grammarAccess.getClassDeclarationRule()); } } { - newCompositeNode(grammarAccess.getClassDefinitionAccess().getSuperclassesNamedElementCrossReference_3_2_1_0()); + newCompositeNode(grammarAccess.getClassDeclarationAccess().getSupertypesSymbolCrossReference_3_2_1_0()); } ruleQualifiedName { @@ -3284,45 +3677,54 @@ ruleClassDefinition returns [EObject current=null] ) )* )? - otherlv_7=LeftCurlyBracket - { - newLeafNode(otherlv_7, grammarAccess.getClassDefinitionAccess().getLeftCurlyBracketKeyword_4()); - } ( ( + otherlv_9=LeftCurlyBracket { - newCompositeNode(grammarAccess.getClassDefinitionAccess().getMembersMemberDefinitionParserRuleCall_5_0()); + newLeafNode(otherlv_9, grammarAccess.getClassDeclarationAccess().getLeftCurlyBracketKeyword_4_0_0()); } - lv_members_8_0=ruleMemberDefinition + ( + ( + { + newCompositeNode(grammarAccess.getClassDeclarationAccess().getFieldsFieldParserRuleCall_4_0_1_0()); + } + lv_fields_10_0=ruleField + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getClassDeclarationRule()); + } + add( + $current, + "fields", + lv_fields_10_0, + "org.eclipse.viatra.solver.language.SolverLanguage.Field"); + afterParserOrEnumRuleCall(); + } + ) + )* + otherlv_11=RightCurlyBracket { - if ($current==null) { - $current = createModelElementForParent(grammarAccess.getClassDefinitionRule()); - } - add( - $current, - "members", - lv_members_8_0, - "org.eclipse.viatra.solver.language.SolverLanguage.MemberDefinition"); - afterParserOrEnumRuleCall(); + newLeafNode(otherlv_11, grammarAccess.getClassDeclarationAccess().getRightCurlyBracketKeyword_4_0_2()); } ) - )* - otherlv_9=RightCurlyBracket - { - newLeafNode(otherlv_9, grammarAccess.getClassDefinitionAccess().getRightCurlyBracketKeyword_6()); - } + | + this_FULL_STOP_12=RULE_FULL_STOP + { + newLeafNode(this_FULL_STOP_12, grammarAccess.getClassDeclarationAccess().getFULL_STOPTerminalRuleCall_4_1()); + } + ) ) ; -// Entry rule entryRuleMemberDefinition -entryRuleMemberDefinition returns [EObject current=null]: - { newCompositeNode(grammarAccess.getMemberDefinitionRule()); } - iv_ruleMemberDefinition=ruleMemberDefinition - { $current=$iv_ruleMemberDefinition.current; } +// Entry rule entryRuleField +entryRuleField returns [EObject current=null]: + { newCompositeNode(grammarAccess.getFieldRule()); } + iv_ruleField=ruleField + { $current=$iv_ruleField.current; } EOF; -// Rule MemberDefinition -ruleMemberDefinition returns [EObject current=null] +// Rule Field +ruleField returns [EObject current=null] @init { enterRule(); } @@ -3332,27 +3734,44 @@ ruleMemberDefinition returns [EObject current=null] ( ( ( - lv_containment_0_0=Contains - { - newLeafNode(lv_containment_0_0, grammarAccess.getMemberDefinitionAccess().getContainmentContainsKeyword_0_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getMemberDefinitionRule()); + ( + lv_containment_0_0=Contains + { + newLeafNode(lv_containment_0_0, grammarAccess.getFieldAccess().getContainmentContainsKeyword_0_0_0()); } - setWithLastConsumed($current, "containment", true, "contains"); - } + { + if ($current==null) { + $current = createModelElement(grammarAccess.getFieldRule()); + } + setWithLastConsumed($current, "containment", true, "contains"); + } + ) + ) + | + ( + ( + lv_crossReference_1_0=Refers + { + newLeafNode(lv_crossReference_1_0, grammarAccess.getFieldAccess().getCrossReferenceRefersKeyword_0_1_0()); + } + { + if ($current==null) { + $current = createModelElement(grammarAccess.getFieldRule()); + } + setWithLastConsumed($current, "crossReference", true, "refers"); + } + ) ) )? ( ( { if ($current==null) { - $current = createModelElement(grammarAccess.getMemberDefinitionRule()); + $current = createModelElement(grammarAccess.getFieldRule()); } } { - newCompositeNode(grammarAccess.getMemberDefinitionAccess().getTypeNamedElementCrossReference_1_0()); + newCompositeNode(grammarAccess.getFieldAccess().getTypeSymbolCrossReference_1_0()); } ruleQualifiedName { @@ -3363,17 +3782,17 @@ ruleMemberDefinition returns [EObject current=null] ( ( { - newCompositeNode(grammarAccess.getMemberDefinitionAccess().getMultiplicityMultiplicityParserRuleCall_2_0()); + newCompositeNode(grammarAccess.getFieldAccess().getMultiplicityMultiplicityParserRuleCall_2_0()); } - lv_multiplicity_2_0=ruleMultiplicity + lv_multiplicity_3_0=ruleMultiplicity { if ($current==null) { - $current = createModelElementForParent(grammarAccess.getMemberDefinitionRule()); + $current = createModelElementForParent(grammarAccess.getFieldRule()); } set( $current, "multiplicity", - lv_multiplicity_2_0, + lv_multiplicity_3_0, "org.eclipse.viatra.solver.language.SolverLanguage.Multiplicity"); afterParserOrEnumRuleCall(); } @@ -3381,36 +3800,36 @@ ruleMemberDefinition returns [EObject current=null] )? ( ( - lv_name_3_0=RULE_ID + lv_name_4_0=RULE_ID { - newLeafNode(lv_name_3_0, grammarAccess.getMemberDefinitionAccess().getNameIDTerminalRuleCall_3_0()); + newLeafNode(lv_name_4_0, grammarAccess.getFieldAccess().getNameIDTerminalRuleCall_3_0()); } { if ($current==null) { - $current = createModelElement(grammarAccess.getMemberDefinitionRule()); + $current = createModelElement(grammarAccess.getFieldRule()); } setWithLastConsumed( $current, "name", - lv_name_3_0, + lv_name_4_0, "org.eclipse.xtext.common.Terminals.ID"); } ) ) ( - otherlv_4=Opposite + otherlv_5=Opposite { - newLeafNode(otherlv_4, grammarAccess.getMemberDefinitionAccess().getOppositeKeyword_4_0()); + newLeafNode(otherlv_5, grammarAccess.getFieldAccess().getOppositeKeyword_4_0()); } ( ( { if ($current==null) { - $current = createModelElement(grammarAccess.getMemberDefinitionRule()); + $current = createModelElement(grammarAccess.getFieldRule()); } } { - newCompositeNode(grammarAccess.getMemberDefinitionAccess().getOppositeNamedElementCrossReference_4_1_0()); + newCompositeNode(grammarAccess.getFieldAccess().getOppositeSymbolCrossReference_4_1_0()); } ruleQualifiedName { @@ -3420,9 +3839,9 @@ ruleMemberDefinition returns [EObject current=null] ) )? ( - otherlv_6=Semicolon + otherlv_7=Semicolon { - newLeafNode(otherlv_6, grammarAccess.getMemberDefinitionAccess().getSemicolonKeyword_5()); + newLeafNode(otherlv_7, grammarAccess.getFieldAccess().getSemicolonKeyword_5()); } )? ) @@ -3445,11 +3864,11 @@ ruleMultiplicity returns [EObject current=null] }: ( { - newCompositeNode(grammarAccess.getMultiplicityAccess().getManyMultiplicityParserRuleCall_0()); + newCompositeNode(grammarAccess.getMultiplicityAccess().getUnboundedMultiplicityParserRuleCall_0()); } - this_ManyMultiplicity_0=ruleManyMultiplicity + this_UnboundedMultiplicity_0=ruleUnboundedMultiplicity { - $current = $this_ManyMultiplicity_0.current; + $current = $this_UnboundedMultiplicity_0.current; afterParserOrEnumRuleCall(); } | @@ -3473,15 +3892,15 @@ ruleMultiplicity returns [EObject current=null] ) ; -// Entry rule entryRuleManyMultiplicity -entryRuleManyMultiplicity returns [EObject current=null]: - { newCompositeNode(grammarAccess.getManyMultiplicityRule()); } - iv_ruleManyMultiplicity=ruleManyMultiplicity - { $current=$iv_ruleManyMultiplicity.current; } +// Entry rule entryRuleUnboundedMultiplicity +entryRuleUnboundedMultiplicity returns [EObject current=null]: + { newCompositeNode(grammarAccess.getUnboundedMultiplicityRule()); } + iv_ruleUnboundedMultiplicity=ruleUnboundedMultiplicity + { $current=$iv_ruleUnboundedMultiplicity.current; } EOF; -// Rule ManyMultiplicity -ruleManyMultiplicity returns [EObject current=null] +// Rule UnboundedMultiplicity +ruleUnboundedMultiplicity returns [EObject current=null] @init { enterRule(); } @@ -3492,17 +3911,17 @@ ruleManyMultiplicity returns [EObject current=null] ( { $current = forceCreateModelElement( - grammarAccess.getManyMultiplicityAccess().getManyMultiplicityAction_0(), + grammarAccess.getUnboundedMultiplicityAccess().getUnboundedMultiplicityAction_0(), $current); } ) otherlv_1=LeftSquareBracket { - newLeafNode(otherlv_1, grammarAccess.getManyMultiplicityAccess().getLeftSquareBracketKeyword_1()); + newLeafNode(otherlv_1, grammarAccess.getUnboundedMultiplicityAccess().getLeftSquareBracketKeyword_1()); } otherlv_2=RightSquareBracket { - newLeafNode(otherlv_2, grammarAccess.getManyMultiplicityAccess().getRightSquareBracketKeyword_2()); + newLeafNode(otherlv_2, grammarAccess.getUnboundedMultiplicityAccess().getRightSquareBracketKeyword_2()); } ) ; @@ -3530,17 +3949,17 @@ ruleExactMultiplicity returns [EObject current=null] ( ( { - newCompositeNode(grammarAccess.getExactMultiplicityAccess().getMultiplicityUpperMultiplictyParserRuleCall_1_0()); + newCompositeNode(grammarAccess.getExactMultiplicityAccess().getValueUpperMultiplictyParserRuleCall_1_0()); } - lv_multiplicity_1_0=ruleUpperMultiplicty + lv_value_1_0=ruleUpperMultiplicty { if ($current==null) { $current = createModelElementForParent(grammarAccess.getExactMultiplicityRule()); } set( $current, - "multiplicity", - lv_multiplicity_1_0, + "value", + lv_value_1_0, "org.eclipse.viatra.solver.language.SolverLanguage.UpperMultiplicty"); afterParserOrEnumRuleCall(); } @@ -3591,9 +4010,9 @@ ruleBoundedMultiplicity returns [EObject current=null] } ) ) - otherlv_2=FullStopFullStop + otherlv_2=Comma { - newLeafNode(otherlv_2, grammarAccess.getBoundedMultiplicityAccess().getFullStopFullStopKeyword_2()); + newLeafNode(otherlv_2, grammarAccess.getBoundedMultiplicityAccess().getCommaKeyword_2()); } ( ( @@ -3621,15 +4040,156 @@ ruleBoundedMultiplicity returns [EObject current=null] ) ; -// Entry rule entryRuleScopeDefinition -entryRuleScopeDefinition returns [EObject current=null]: - { newCompositeNode(grammarAccess.getScopeDefinitionRule()); } - iv_ruleScopeDefinition=ruleScopeDefinition - { $current=$iv_ruleScopeDefinition.current; } +// Entry rule entryRuleEnumDeclaration +entryRuleEnumDeclaration returns [EObject current=null]: + { newCompositeNode(grammarAccess.getEnumDeclarationRule()); } + iv_ruleEnumDeclaration=ruleEnumDeclaration + { $current=$iv_ruleEnumDeclaration.current; } + EOF; + +// Rule EnumDeclaration +ruleEnumDeclaration returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + otherlv_0=Enum + { + newLeafNode(otherlv_0, grammarAccess.getEnumDeclarationAccess().getEnumKeyword_0()); + } + ( + ( + lv_name_1_0=RULE_ID + { + newLeafNode(lv_name_1_0, grammarAccess.getEnumDeclarationAccess().getNameIDTerminalRuleCall_1_0()); + } + { + if ($current==null) { + $current = createModelElement(grammarAccess.getEnumDeclarationRule()); + } + setWithLastConsumed( + $current, + "name", + lv_name_1_0, + "org.eclipse.xtext.common.Terminals.ID"); + } + ) + ) + ( + ( + otherlv_2=LeftCurlyBracket + { + newLeafNode(otherlv_2, grammarAccess.getEnumDeclarationAccess().getLeftCurlyBracketKeyword_2_0_0()); + } + ( + ( + ( + { + newCompositeNode(grammarAccess.getEnumDeclarationAccess().getLiteralsEnumLiteralParserRuleCall_2_0_1_0_0()); + } + lv_literals_3_0=ruleEnumLiteral + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getEnumDeclarationRule()); + } + add( + $current, + "literals", + lv_literals_3_0, + "org.eclipse.viatra.solver.language.SolverLanguage.EnumLiteral"); + afterParserOrEnumRuleCall(); + } + ) + ) + ( + ( + otherlv_4=Comma + { + newLeafNode(otherlv_4, grammarAccess.getEnumDeclarationAccess().getCommaKeyword_2_0_1_1_0()); + } + )? + ( + ( + { + newCompositeNode(grammarAccess.getEnumDeclarationAccess().getLiteralsEnumLiteralParserRuleCall_2_0_1_1_1_0()); + } + lv_literals_5_0=ruleEnumLiteral + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getEnumDeclarationRule()); + } + add( + $current, + "literals", + lv_literals_5_0, + "org.eclipse.viatra.solver.language.SolverLanguage.EnumLiteral"); + afterParserOrEnumRuleCall(); + } + ) + ) + )* + )? + otherlv_6=RightCurlyBracket + { + newLeafNode(otherlv_6, grammarAccess.getEnumDeclarationAccess().getRightCurlyBracketKeyword_2_0_2()); + } + ) + | + this_FULL_STOP_7=RULE_FULL_STOP + { + newLeafNode(this_FULL_STOP_7, grammarAccess.getEnumDeclarationAccess().getFULL_STOPTerminalRuleCall_2_1()); + } + ) + ) +; + +// Entry rule entryRuleEnumLiteral +entryRuleEnumLiteral returns [EObject current=null]: + { newCompositeNode(grammarAccess.getEnumLiteralRule()); } + iv_ruleEnumLiteral=ruleEnumLiteral + { $current=$iv_ruleEnumLiteral.current; } + EOF; + +// Rule EnumLiteral +ruleEnumLiteral returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + ( + lv_name_0_0=RULE_ID + { + newLeafNode(lv_name_0_0, grammarAccess.getEnumLiteralAccess().getNameIDTerminalRuleCall_0()); + } + { + if ($current==null) { + $current = createModelElement(grammarAccess.getEnumLiteralRule()); + } + setWithLastConsumed( + $current, + "name", + lv_name_0_0, + "org.eclipse.xtext.common.Terminals.ID"); + } + ) + ) +; + +// Entry rule entryRuleScopeDeclaration +entryRuleScopeDeclaration returns [EObject current=null]: + { newCompositeNode(grammarAccess.getScopeDeclarationRule()); } + iv_ruleScopeDeclaration=ruleScopeDeclaration + { $current=$iv_ruleScopeDeclaration.current; } EOF; -// Rule ScopeDefinition -ruleScopeDefinition returns [EObject current=null] +// Rule ScopeDeclaration +ruleScopeDeclaration returns [EObject current=null] @init { enterRule(); } @@ -3638,43 +4198,43 @@ ruleScopeDefinition returns [EObject current=null] }: ( { - newCompositeNode(grammarAccess.getScopeDefinitionAccess().getExactScopeDefinitionParserRuleCall_0()); + newCompositeNode(grammarAccess.getScopeDeclarationAccess().getExactScopeParserRuleCall_0()); } - this_ExactScopeDefinition_0=ruleExactScopeDefinition + this_ExactScope_0=ruleExactScope { - $current = $this_ExactScopeDefinition_0.current; + $current = $this_ExactScope_0.current; afterParserOrEnumRuleCall(); } | { - newCompositeNode(grammarAccess.getScopeDefinitionAccess().getBoundedScopeDefinitionParserRuleCall_1()); + newCompositeNode(grammarAccess.getScopeDeclarationAccess().getBoundedScopeParserRuleCall_1()); } - this_BoundedScopeDefinition_1=ruleBoundedScopeDefinition + this_BoundedScope_1=ruleBoundedScope { - $current = $this_BoundedScopeDefinition_1.current; + $current = $this_BoundedScope_1.current; afterParserOrEnumRuleCall(); } | { - newCompositeNode(grammarAccess.getScopeDefinitionAccess().getLowerBoundedScopeDefinitionParserRuleCall_2()); + newCompositeNode(grammarAccess.getScopeDeclarationAccess().getLowerBoundedScopeParserRuleCall_2()); } - this_LowerBoundedScopeDefinition_2=ruleLowerBoundedScopeDefinition + this_LowerBoundedScope_2=ruleLowerBoundedScope { - $current = $this_LowerBoundedScopeDefinition_2.current; + $current = $this_LowerBoundedScope_2.current; afterParserOrEnumRuleCall(); } ) ; -// Entry rule entryRuleExactScopeDefinition -entryRuleExactScopeDefinition returns [EObject current=null]: - { newCompositeNode(grammarAccess.getExactScopeDefinitionRule()); } - iv_ruleExactScopeDefinition=ruleExactScopeDefinition - { $current=$iv_ruleExactScopeDefinition.current; } +// Entry rule entryRuleExactScope +entryRuleExactScope returns [EObject current=null]: + { newCompositeNode(grammarAccess.getExactScopeRule()); } + iv_ruleExactScope=ruleExactScope + { $current=$iv_ruleExactScope.current; } EOF; -// Rule ExactScopeDefinition -ruleExactScopeDefinition returns [EObject current=null] +// Rule ExactScope +ruleExactScope returns [EObject current=null] @init { enterRule(); } @@ -3684,17 +4244,17 @@ ruleExactScopeDefinition returns [EObject current=null] ( otherlv_0=Scope { - newLeafNode(otherlv_0, grammarAccess.getExactScopeDefinitionAccess().getScopeKeyword_0()); + newLeafNode(otherlv_0, grammarAccess.getExactScopeAccess().getScopeKeyword_0()); } ( ( { if ($current==null) { - $current = createModelElement(grammarAccess.getExactScopeDefinitionRule()); + $current = createModelElement(grammarAccess.getExactScopeRule()); } } { - newCompositeNode(grammarAccess.getExactScopeDefinitionAccess().getTypeNamedElementCrossReference_1_0()); + newCompositeNode(grammarAccess.getExactScopeAccess().getTypeSymbolCrossReference_1_0()); } ruleQualifiedName { @@ -3704,38 +4264,42 @@ ruleExactScopeDefinition returns [EObject current=null] ) otherlv_2=EqualsSignEqualsSign { - newLeafNode(otherlv_2, grammarAccess.getExactScopeDefinitionAccess().getEqualsSignEqualsSignKeyword_2()); + newLeafNode(otherlv_2, grammarAccess.getExactScopeAccess().getEqualsSignEqualsSignKeyword_2()); } ( ( - lv_exactScope_3_0=RULE_INT + lv_size_3_0=RULE_INT { - newLeafNode(lv_exactScope_3_0, grammarAccess.getExactScopeDefinitionAccess().getExactScopeINTTerminalRuleCall_3_0()); + newLeafNode(lv_size_3_0, grammarAccess.getExactScopeAccess().getSizeINTTerminalRuleCall_3_0()); } { if ($current==null) { - $current = createModelElement(grammarAccess.getExactScopeDefinitionRule()); + $current = createModelElement(grammarAccess.getExactScopeRule()); } setWithLastConsumed( $current, - "exactScope", - lv_exactScope_3_0, + "size", + lv_size_3_0, "org.eclipse.xtext.common.Terminals.INT"); } ) ) + this_FULL_STOP_4=RULE_FULL_STOP + { + newLeafNode(this_FULL_STOP_4, grammarAccess.getExactScopeAccess().getFULL_STOPTerminalRuleCall_4()); + } ) ; -// Entry rule entryRuleBoundedScopeDefinition -entryRuleBoundedScopeDefinition returns [EObject current=null]: - { newCompositeNode(grammarAccess.getBoundedScopeDefinitionRule()); } - iv_ruleBoundedScopeDefinition=ruleBoundedScopeDefinition - { $current=$iv_ruleBoundedScopeDefinition.current; } +// Entry rule entryRuleBoundedScope +entryRuleBoundedScope returns [EObject current=null]: + { newCompositeNode(grammarAccess.getBoundedScopeRule()); } + iv_ruleBoundedScope=ruleBoundedScope + { $current=$iv_ruleBoundedScope.current; } EOF; -// Rule BoundedScopeDefinition -ruleBoundedScopeDefinition returns [EObject current=null] +// Rule BoundedScope +ruleBoundedScope returns [EObject current=null] @init { enterRule(); } @@ -3745,7 +4309,7 @@ ruleBoundedScopeDefinition returns [EObject current=null] ( otherlv_0=Scope { - newLeafNode(otherlv_0, grammarAccess.getBoundedScopeDefinitionAccess().getScopeKeyword_0()); + newLeafNode(otherlv_0, grammarAccess.getBoundedScopeAccess().getScopeKeyword_0()); } ( ( @@ -3754,11 +4318,11 @@ ruleBoundedScopeDefinition returns [EObject current=null] ( lv_lowerBound_1_0=RULE_INT { - newLeafNode(lv_lowerBound_1_0, grammarAccess.getBoundedScopeDefinitionAccess().getLowerBoundINTTerminalRuleCall_1_0_0_0_0()); + newLeafNode(lv_lowerBound_1_0, grammarAccess.getBoundedScopeAccess().getLowerBoundINTTerminalRuleCall_1_0_0_0_0()); } { if ($current==null) { - $current = createModelElement(grammarAccess.getBoundedScopeDefinitionRule()); + $current = createModelElement(grammarAccess.getBoundedScopeRule()); } setWithLastConsumed( $current, @@ -3770,18 +4334,18 @@ ruleBoundedScopeDefinition returns [EObject current=null] ) otherlv_2=LessThanSignEqualsSign { - newLeafNode(otherlv_2, grammarAccess.getBoundedScopeDefinitionAccess().getLessThanSignEqualsSignKeyword_1_0_0_1()); + newLeafNode(otherlv_2, grammarAccess.getBoundedScopeAccess().getLessThanSignEqualsSignKeyword_1_0_0_1()); } )? ( ( { if ($current==null) { - $current = createModelElement(grammarAccess.getBoundedScopeDefinitionRule()); + $current = createModelElement(grammarAccess.getBoundedScopeRule()); } } { - newCompositeNode(grammarAccess.getBoundedScopeDefinitionAccess().getTypeNamedElementCrossReference_1_0_1_0()); + newCompositeNode(grammarAccess.getBoundedScopeAccess().getTypeSymbolCrossReference_1_0_1_0()); } ruleQualifiedName { @@ -3791,17 +4355,17 @@ ruleBoundedScopeDefinition returns [EObject current=null] ) otherlv_4=LessThanSignEqualsSign { - newLeafNode(otherlv_4, grammarAccess.getBoundedScopeDefinitionAccess().getLessThanSignEqualsSignKeyword_1_0_2()); + newLeafNode(otherlv_4, grammarAccess.getBoundedScopeAccess().getLessThanSignEqualsSignKeyword_1_0_2()); } ( ( lv_upperBound_5_0=RULE_INT { - newLeafNode(lv_upperBound_5_0, grammarAccess.getBoundedScopeDefinitionAccess().getUpperBoundINTTerminalRuleCall_1_0_3_0()); + newLeafNode(lv_upperBound_5_0, grammarAccess.getBoundedScopeAccess().getUpperBoundINTTerminalRuleCall_1_0_3_0()); } { if ($current==null) { - $current = createModelElement(grammarAccess.getBoundedScopeDefinitionRule()); + $current = createModelElement(grammarAccess.getBoundedScopeRule()); } setWithLastConsumed( $current, @@ -3818,11 +4382,11 @@ ruleBoundedScopeDefinition returns [EObject current=null] ( lv_upperBound_6_0=RULE_INT { - newLeafNode(lv_upperBound_6_0, grammarAccess.getBoundedScopeDefinitionAccess().getUpperBoundINTTerminalRuleCall_1_1_0_0()); + newLeafNode(lv_upperBound_6_0, grammarAccess.getBoundedScopeAccess().getUpperBoundINTTerminalRuleCall_1_1_0_0()); } { if ($current==null) { - $current = createModelElement(grammarAccess.getBoundedScopeDefinitionRule()); + $current = createModelElement(grammarAccess.getBoundedScopeRule()); } setWithLastConsumed( $current, @@ -3834,17 +4398,17 @@ ruleBoundedScopeDefinition returns [EObject current=null] ) otherlv_7=GreaterThanSignEqualsSign { - newLeafNode(otherlv_7, grammarAccess.getBoundedScopeDefinitionAccess().getGreaterThanSignEqualsSignKeyword_1_1_1()); + newLeafNode(otherlv_7, grammarAccess.getBoundedScopeAccess().getGreaterThanSignEqualsSignKeyword_1_1_1()); } ( ( { if ($current==null) { - $current = createModelElement(grammarAccess.getBoundedScopeDefinitionRule()); + $current = createModelElement(grammarAccess.getBoundedScopeRule()); } } { - newCompositeNode(grammarAccess.getBoundedScopeDefinitionAccess().getTypeNamedElementCrossReference_1_1_2_0()); + newCompositeNode(grammarAccess.getBoundedScopeAccess().getTypeSymbolCrossReference_1_1_2_0()); } ruleQualifiedName { @@ -3855,17 +4419,17 @@ ruleBoundedScopeDefinition returns [EObject current=null] ( otherlv_9=GreaterThanSignEqualsSign { - newLeafNode(otherlv_9, grammarAccess.getBoundedScopeDefinitionAccess().getGreaterThanSignEqualsSignKeyword_1_1_3_0()); + newLeafNode(otherlv_9, grammarAccess.getBoundedScopeAccess().getGreaterThanSignEqualsSignKeyword_1_1_3_0()); } ( ( lv_lowerBound_10_0=RULE_INT { - newLeafNode(lv_lowerBound_10_0, grammarAccess.getBoundedScopeDefinitionAccess().getLowerBoundINTTerminalRuleCall_1_1_3_1_0()); + newLeafNode(lv_lowerBound_10_0, grammarAccess.getBoundedScopeAccess().getLowerBoundINTTerminalRuleCall_1_1_3_1_0()); } { if ($current==null) { - $current = createModelElement(grammarAccess.getBoundedScopeDefinitionRule()); + $current = createModelElement(grammarAccess.getBoundedScopeRule()); } setWithLastConsumed( $current, @@ -3878,18 +4442,22 @@ ruleBoundedScopeDefinition returns [EObject current=null] )? ) ) + this_FULL_STOP_11=RULE_FULL_STOP + { + newLeafNode(this_FULL_STOP_11, grammarAccess.getBoundedScopeAccess().getFULL_STOPTerminalRuleCall_2()); + } ) ; -// Entry rule entryRuleLowerBoundedScopeDefinition -entryRuleLowerBoundedScopeDefinition returns [EObject current=null]: - { newCompositeNode(grammarAccess.getLowerBoundedScopeDefinitionRule()); } - iv_ruleLowerBoundedScopeDefinition=ruleLowerBoundedScopeDefinition - { $current=$iv_ruleLowerBoundedScopeDefinition.current; } +// Entry rule entryRuleLowerBoundedScope +entryRuleLowerBoundedScope returns [EObject current=null]: + { newCompositeNode(grammarAccess.getLowerBoundedScopeRule()); } + iv_ruleLowerBoundedScope=ruleLowerBoundedScope + { $current=$iv_ruleLowerBoundedScope.current; } EOF; -// Rule LowerBoundedScopeDefinition -ruleLowerBoundedScopeDefinition returns [EObject current=null] +// Rule LowerBoundedScope +ruleLowerBoundedScope returns [EObject current=null] @init { enterRule(); } @@ -3899,7 +4467,7 @@ ruleLowerBoundedScopeDefinition returns [EObject current=null] ( otherlv_0=Scope { - newLeafNode(otherlv_0, grammarAccess.getLowerBoundedScopeDefinitionAccess().getScopeKeyword_0()); + newLeafNode(otherlv_0, grammarAccess.getLowerBoundedScopeAccess().getScopeKeyword_0()); } ( ( @@ -3907,11 +4475,11 @@ ruleLowerBoundedScopeDefinition returns [EObject current=null] ( lv_lowerBound_1_0=RULE_INT { - newLeafNode(lv_lowerBound_1_0, grammarAccess.getLowerBoundedScopeDefinitionAccess().getLowerBoundINTTerminalRuleCall_1_0_0_0()); + newLeafNode(lv_lowerBound_1_0, grammarAccess.getLowerBoundedScopeAccess().getLowerBoundINTTerminalRuleCall_1_0_0_0()); } { if ($current==null) { - $current = createModelElement(grammarAccess.getLowerBoundedScopeDefinitionRule()); + $current = createModelElement(grammarAccess.getLowerBoundedScopeRule()); } setWithLastConsumed( $current, @@ -3923,17 +4491,17 @@ ruleLowerBoundedScopeDefinition returns [EObject current=null] ) otherlv_2=LessThanSignEqualsSign { - newLeafNode(otherlv_2, grammarAccess.getLowerBoundedScopeDefinitionAccess().getLessThanSignEqualsSignKeyword_1_0_1()); + newLeafNode(otherlv_2, grammarAccess.getLowerBoundedScopeAccess().getLessThanSignEqualsSignKeyword_1_0_1()); } ( ( { if ($current==null) { - $current = createModelElement(grammarAccess.getLowerBoundedScopeDefinitionRule()); + $current = createModelElement(grammarAccess.getLowerBoundedScopeRule()); } } { - newCompositeNode(grammarAccess.getLowerBoundedScopeDefinitionAccess().getTypeNamedElementCrossReference_1_0_2_0()); + newCompositeNode(grammarAccess.getLowerBoundedScopeAccess().getTypeSymbolCrossReference_1_0_2_0()); } ruleQualifiedName { @@ -3948,11 +4516,11 @@ ruleLowerBoundedScopeDefinition returns [EObject current=null] ( { if ($current==null) { - $current = createModelElement(grammarAccess.getLowerBoundedScopeDefinitionRule()); + $current = createModelElement(grammarAccess.getLowerBoundedScopeRule()); } } { - newCompositeNode(grammarAccess.getLowerBoundedScopeDefinitionAccess().getTypeNamedElementCrossReference_1_1_0_0()); + newCompositeNode(grammarAccess.getLowerBoundedScopeAccess().getTypeSymbolCrossReference_1_1_0_0()); } ruleQualifiedName { @@ -3962,17 +4530,17 @@ ruleLowerBoundedScopeDefinition returns [EObject current=null] ) otherlv_5=GreaterThanSignEqualsSign { - newLeafNode(otherlv_5, grammarAccess.getLowerBoundedScopeDefinitionAccess().getGreaterThanSignEqualsSignKeyword_1_1_1()); + newLeafNode(otherlv_5, grammarAccess.getLowerBoundedScopeAccess().getGreaterThanSignEqualsSignKeyword_1_1_1()); } ( ( lv_lowerBound_6_0=RULE_INT { - newLeafNode(lv_lowerBound_6_0, grammarAccess.getLowerBoundedScopeDefinitionAccess().getLowerBoundINTTerminalRuleCall_1_1_2_0()); + newLeafNode(lv_lowerBound_6_0, grammarAccess.getLowerBoundedScopeAccess().getLowerBoundINTTerminalRuleCall_1_1_2_0()); } { if ($current==null) { - $current = createModelElement(grammarAccess.getLowerBoundedScopeDefinitionRule()); + $current = createModelElement(grammarAccess.getLowerBoundedScopeRule()); } setWithLastConsumed( $current, @@ -3984,18 +4552,22 @@ ruleLowerBoundedScopeDefinition returns [EObject current=null] ) ) ) + this_FULL_STOP_7=RULE_FULL_STOP + { + newLeafNode(this_FULL_STOP_7, grammarAccess.getLowerBoundedScopeAccess().getFULL_STOPTerminalRuleCall_2()); + } ) ; -// Entry rule entryRuleObjectiveDefinition -entryRuleObjectiveDefinition returns [EObject current=null]: - { newCompositeNode(grammarAccess.getObjectiveDefinitionRule()); } - iv_ruleObjectiveDefinition=ruleObjectiveDefinition - { $current=$iv_ruleObjectiveDefinition.current; } +// Entry rule entryRuleObjectiveDeclaration +entryRuleObjectiveDeclaration returns [EObject current=null]: + { newCompositeNode(grammarAccess.getObjectiveDeclarationRule()); } + iv_ruleObjectiveDeclaration=ruleObjectiveDeclaration + { $current=$iv_ruleObjectiveDeclaration.current; } EOF; -// Rule ObjectiveDefinition -ruleObjectiveDefinition returns [EObject current=null] +// Rule ObjectiveDeclaration +ruleObjectiveDeclaration returns [EObject current=null] @init { enterRule(); } @@ -4006,12 +4578,12 @@ ruleObjectiveDefinition returns [EObject current=null] ( ( { - newCompositeNode(grammarAccess.getObjectiveDefinitionAccess().getKindObjectiveKindEnumRuleCall_0_0()); + newCompositeNode(grammarAccess.getObjectiveDeclarationAccess().getKindObjectiveKindEnumRuleCall_0_0()); } lv_kind_0_0=ruleObjectiveKind { if ($current==null) { - $current = createModelElementForParent(grammarAccess.getObjectiveDefinitionRule()); + $current = createModelElementForParent(grammarAccess.getObjectiveDeclarationRule()); } set( $current, @@ -4025,12 +4597,12 @@ ruleObjectiveDefinition returns [EObject current=null] ( ( { - newCompositeNode(grammarAccess.getObjectiveDefinitionAccess().getObjectiveExpressionParserRuleCall_1_0()); + newCompositeNode(grammarAccess.getObjectiveDeclarationAccess().getObjectiveExpressionParserRuleCall_1_0()); } lv_objective_1_0=ruleExpression { if ($current==null) { - $current = createModelElementForParent(grammarAccess.getObjectiveDefinitionRule()); + $current = createModelElementForParent(grammarAccess.getObjectiveDeclarationRule()); } set( $current, @@ -4041,6 +4613,10 @@ ruleObjectiveDefinition returns [EObject current=null] } ) ) + this_FULL_STOP_2=RULE_FULL_STOP + { + newLeafNode(this_FULL_STOP_2, grammarAccess.getObjectiveDeclarationAccess().getFULL_STOPTerminalRuleCall_2()); + } ) ; @@ -4105,26 +4681,64 @@ ruleReal returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] { newLeafNode(this_INT_0, grammarAccess.getRealAccess().getINTTerminalRuleCall_0()); } - ( - kw=FullStop - { - $current.merge(kw); - newLeafNode(kw, grammarAccess.getRealAccess().getFullStopKeyword_1_0()); - } - this_INT_2=RULE_INT - { - $current.merge(this_INT_2); - } - { - newLeafNode(this_INT_2, grammarAccess.getRealAccess().getINTTerminalRuleCall_1_1()); - } - )? + kw=FullStop + { + $current.merge(kw); + newLeafNode(kw, grammarAccess.getRealAccess().getFullStopKeyword_1()); + } + this_INT_2=RULE_INT + { + $current.merge(this_INT_2); + } + { + newLeafNode(this_INT_2, grammarAccess.getRealAccess().getINTTerminalRuleCall_2()); + } ) ; finally { myHiddenTokenState.restore(); } +// Entry rule entryRuleQualifiedNameSegment +entryRuleQualifiedNameSegment returns [String current=null]: + { newCompositeNode(grammarAccess.getQualifiedNameSegmentRule()); } + iv_ruleQualifiedNameSegment=ruleQualifiedNameSegment + { $current=$iv_ruleQualifiedNameSegment.current.getText(); } + EOF; + +// Rule QualifiedNameSegment +ruleQualifiedNameSegment returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + this_ID_0=RULE_ID + { + $current.merge(this_ID_0); + } + { + newLeafNode(this_ID_0, grammarAccess.getQualifiedNameSegmentAccess().getIDTerminalRuleCall_0()); + } + | + this_QUOTED_ID_1=RULE_QUOTED_ID + { + $current.merge(this_QUOTED_ID_1); + } + { + newLeafNode(this_QUOTED_ID_1, grammarAccess.getQualifiedNameSegmentAccess().getQUOTED_IDTerminalRuleCall_1()); + } + | + kw=Object + { + $current.merge(kw); + newLeafNode(kw, grammarAccess.getQualifiedNameSegmentAccess().getObjectKeyword_2()); + } + ) +; + // Entry rule entryRuleQualifiedName entryRuleQualifiedName returns [String current=null]@init { HiddenTokens myHiddenTokenState = ((XtextTokenStream)input).setHiddenTokens(); @@ -4147,45 +4761,41 @@ ruleQualifiedName returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleT leaveRule(); }: ( + { + newCompositeNode(grammarAccess.getQualifiedNameAccess().getQualifiedNameSegmentParserRuleCall_0()); + } + this_QualifiedNameSegment_0=ruleQualifiedNameSegment + { + $current.merge(this_QualifiedNameSegment_0); + } + { + afterParserOrEnumRuleCall(); + } ( - this_ID_0=RULE_ID + kw=ColonColon { - $current.merge(this_ID_0); + $current.merge(kw); + newLeafNode(kw, grammarAccess.getQualifiedNameAccess().getColonColonKeyword_1_0()); } { - newLeafNode(this_ID_0, grammarAccess.getQualifiedNameAccess().getIDTerminalRuleCall_0_0()); + newCompositeNode(grammarAccess.getQualifiedNameAccess().getQualifiedNameSegmentParserRuleCall_1_1()); } - ( - kw=FullStop - { - $current.merge(kw); - newLeafNode(kw, grammarAccess.getQualifiedNameAccess().getFullStopKeyword_0_1_0()); - } - this_ID_2=RULE_ID - { - $current.merge(this_ID_2); - } - { - newLeafNode(this_ID_2, grammarAccess.getQualifiedNameAccess().getIDTerminalRuleCall_0_1_1()); - } - )* - ) - | - this_QUOTED_ID_3=RULE_QUOTED_ID - { - $current.merge(this_QUOTED_ID_3); - } - { - newLeafNode(this_QUOTED_ID_3, grammarAccess.getQualifiedNameAccess().getQUOTED_IDTerminalRuleCall_1()); - } + this_QualifiedNameSegment_2=ruleQualifiedNameSegment + { + $current.merge(this_QualifiedNameSegment_2); + } + { + afterParserOrEnumRuleCall(); + } + )* ) ; finally { myHiddenTokenState.restore(); } -// Rule ImplicationOperator -ruleImplicationOperator returns [Enumerator current=null] +// Rule AttributeKind +ruleAttributeKind returns [Enumerator current=null] @init { enterRule(); } @@ -4193,11 +4803,37 @@ ruleImplicationOperator returns [Enumerator current=null] leaveRule(); }: ( - enumLiteral_0=EqualsSignGreaterThanSign - { - $current = grammarAccess.getImplicationOperatorAccess().getIMPLIESEnumLiteralDeclaration().getEnumLiteral().getInstance(); - newLeafNode(enumLiteral_0, grammarAccess.getImplicationOperatorAccess().getIMPLIESEnumLiteralDeclaration()); - } + ( + enumLiteral_0=Functional + { + $current = grammarAccess.getAttributeKindAccess().getFUNCTIONALEnumLiteralDeclaration_0().getEnumLiteral().getInstance(); + newLeafNode(enumLiteral_0, grammarAccess.getAttributeKindAccess().getFUNCTIONALEnumLiteralDeclaration_0()); + } + ) + | + ( + enumLiteral_1=Error + { + $current = grammarAccess.getAttributeKindAccess().getERROREnumLiteralDeclaration_1().getEnumLiteral().getInstance(); + newLeafNode(enumLiteral_1, grammarAccess.getAttributeKindAccess().getERROREnumLiteralDeclaration_1()); + } + ) + | + ( + enumLiteral_2=Root + { + $current = grammarAccess.getAttributeKindAccess().getROOTEnumLiteralDeclaration_2().getEnumLiteral().getInstance(); + newLeafNode(enumLiteral_2, grammarAccess.getAttributeKindAccess().getROOTEnumLiteralDeclaration_2()); + } + ) + | + ( + enumLiteral_3=Containment + { + $current = grammarAccess.getAttributeKindAccess().getCONTAINMENTEnumLiteralDeclaration_3().getEnumLiteral().getInstance(); + newLeafNode(enumLiteral_3, grammarAccess.getAttributeKindAccess().getCONTAINMENTEnumLiteralDeclaration_3()); + } + ) ) ; @@ -4213,16 +4849,16 @@ ruleComparisonOperator returns [Enumerator current=null] ( enumLiteral_0=EqualsSignEqualsSign { - $current = grammarAccess.getComparisonOperatorAccess().getEQEnumLiteralDeclaration_0().getEnumLiteral().getInstance(); - newLeafNode(enumLiteral_0, grammarAccess.getComparisonOperatorAccess().getEQEnumLiteralDeclaration_0()); + $current = grammarAccess.getComparisonOperatorAccess().getEQUALSEnumLiteralDeclaration_0().getEnumLiteral().getInstance(); + newLeafNode(enumLiteral_0, grammarAccess.getComparisonOperatorAccess().getEQUALSEnumLiteralDeclaration_0()); } ) | ( enumLiteral_1=ExclamationMarkEqualsSign { - $current = grammarAccess.getComparisonOperatorAccess().getNOT_EQEnumLiteralDeclaration_1().getEnumLiteral().getInstance(); - newLeafNode(enumLiteral_1, grammarAccess.getComparisonOperatorAccess().getNOT_EQEnumLiteralDeclaration_1()); + $current = grammarAccess.getComparisonOperatorAccess().getNOT_EQUALSEnumLiteralDeclaration_1().getEnumLiteral().getInstance(); + newLeafNode(enumLiteral_1, grammarAccess.getComparisonOperatorAccess().getNOT_EQUALSEnumLiteralDeclaration_1()); } ) | @@ -4237,8 +4873,8 @@ ruleComparisonOperator returns [Enumerator current=null] ( enumLiteral_3=LessThanSignEqualsSign { - $current = grammarAccess.getComparisonOperatorAccess().getLESS_EQEnumLiteralDeclaration_3().getEnumLiteral().getInstance(); - newLeafNode(enumLiteral_3, grammarAccess.getComparisonOperatorAccess().getLESS_EQEnumLiteralDeclaration_3()); + $current = grammarAccess.getComparisonOperatorAccess().getLESS_EQUALSEnumLiteralDeclaration_3().getEnumLiteral().getInstance(); + newLeafNode(enumLiteral_3, grammarAccess.getComparisonOperatorAccess().getLESS_EQUALSEnumLiteralDeclaration_3()); } ) | @@ -4253,8 +4889,8 @@ ruleComparisonOperator returns [Enumerator current=null] ( enumLiteral_5=GreaterThanSignEqualsSign { - $current = grammarAccess.getComparisonOperatorAccess().getGREATER_EQEnumLiteralDeclaration_5().getEnumLiteral().getInstance(); - newLeafNode(enumLiteral_5, grammarAccess.getComparisonOperatorAccess().getGREATER_EQEnumLiteralDeclaration_5()); + $current = grammarAccess.getComparisonOperatorAccess().getGREATER_EQUALSEnumLiteralDeclaration_5().getEnumLiteral().getInstance(); + newLeafNode(enumLiteral_5, grammarAccess.getComparisonOperatorAccess().getGREATER_EQUALSEnumLiteralDeclaration_5()); } ) | @@ -4280,16 +4916,16 @@ ruleAdditiveBinaryOperator returns [Enumerator current=null] ( enumLiteral_0=PlusSign { - $current = grammarAccess.getAdditiveBinaryOperatorAccess().getADDEnumLiteralDeclaration_0().getEnumLiteral().getInstance(); - newLeafNode(enumLiteral_0, grammarAccess.getAdditiveBinaryOperatorAccess().getADDEnumLiteralDeclaration_0()); + $current = grammarAccess.getAdditiveBinaryOperatorAccess().getPLUSEnumLiteralDeclaration_0().getEnumLiteral().getInstance(); + newLeafNode(enumLiteral_0, grammarAccess.getAdditiveBinaryOperatorAccess().getPLUSEnumLiteralDeclaration_0()); } ) | ( enumLiteral_1=HyphenMinus { - $current = grammarAccess.getAdditiveBinaryOperatorAccess().getSUBEnumLiteralDeclaration_1().getEnumLiteral().getInstance(); - newLeafNode(enumLiteral_1, grammarAccess.getAdditiveBinaryOperatorAccess().getSUBEnumLiteralDeclaration_1()); + $current = grammarAccess.getAdditiveBinaryOperatorAccess().getMINUSEnumLiteralDeclaration_1().getEnumLiteral().getInstance(); + newLeafNode(enumLiteral_1, grammarAccess.getAdditiveBinaryOperatorAccess().getMINUSEnumLiteralDeclaration_1()); } ) ) @@ -4307,16 +4943,16 @@ ruleMultiplicativeBinaryOperator returns [Enumerator current=null] ( enumLiteral_0=Asterisk { - $current = grammarAccess.getMultiplicativeBinaryOperatorAccess().getMULEnumLiteralDeclaration_0().getEnumLiteral().getInstance(); - newLeafNode(enumLiteral_0, grammarAccess.getMultiplicativeBinaryOperatorAccess().getMULEnumLiteralDeclaration_0()); + $current = grammarAccess.getMultiplicativeBinaryOperatorAccess().getMULTIPLYEnumLiteralDeclaration_0().getEnumLiteral().getInstance(); + newLeafNode(enumLiteral_0, grammarAccess.getMultiplicativeBinaryOperatorAccess().getMULTIPLYEnumLiteralDeclaration_0()); } ) | ( enumLiteral_1=Solidus { - $current = grammarAccess.getMultiplicativeBinaryOperatorAccess().getDIVEnumLiteralDeclaration_1().getEnumLiteral().getInstance(); - newLeafNode(enumLiteral_1, grammarAccess.getMultiplicativeBinaryOperatorAccess().getDIVEnumLiteralDeclaration_1()); + $current = grammarAccess.getMultiplicativeBinaryOperatorAccess().getDIVIDEEnumLiteralDeclaration_1().getEnumLiteral().getInstance(); + newLeafNode(enumLiteral_1, grammarAccess.getMultiplicativeBinaryOperatorAccess().getDIVIDEEnumLiteralDeclaration_1()); } ) ) @@ -4339,8 +4975,8 @@ ruleExponentialOp returns [Enumerator current=null] ) ; -// Rule UnaryOp -ruleUnaryOp returns [Enumerator current=null] +// Rule UnaryOperator +ruleUnaryOperator returns [Enumerator current=null] @init { enterRule(); } @@ -4351,83 +4987,32 @@ ruleUnaryOp returns [Enumerator current=null] ( enumLiteral_0=ExclamationMark { - $current = grammarAccess.getUnaryOpAccess().getNEGEnumLiteralDeclaration_0().getEnumLiteral().getInstance(); - newLeafNode(enumLiteral_0, grammarAccess.getUnaryOpAccess().getNEGEnumLiteralDeclaration_0()); + $current = grammarAccess.getUnaryOperatorAccess().getNOTEnumLiteralDeclaration_0().getEnumLiteral().getInstance(); + newLeafNode(enumLiteral_0, grammarAccess.getUnaryOperatorAccess().getNOTEnumLiteralDeclaration_0()); } ) | ( enumLiteral_1=PlusSign { - $current = grammarAccess.getUnaryOpAccess().getPLUSEnumLiteralDeclaration_1().getEnumLiteral().getInstance(); - newLeafNode(enumLiteral_1, grammarAccess.getUnaryOpAccess().getPLUSEnumLiteralDeclaration_1()); + $current = grammarAccess.getUnaryOperatorAccess().getPLUSEnumLiteralDeclaration_1().getEnumLiteral().getInstance(); + newLeafNode(enumLiteral_1, grammarAccess.getUnaryOperatorAccess().getPLUSEnumLiteralDeclaration_1()); } ) | ( enumLiteral_2=HyphenMinus { - $current = grammarAccess.getUnaryOpAccess().getMINUSEnumLiteralDeclaration_2().getEnumLiteral().getInstance(); - newLeafNode(enumLiteral_2, grammarAccess.getUnaryOpAccess().getMINUSEnumLiteralDeclaration_2()); - } - ) - | - ( - enumLiteral_3=May - { - $current = grammarAccess.getUnaryOpAccess().getMAYEnumLiteralDeclaration_3().getEnumLiteral().getInstance(); - newLeafNode(enumLiteral_3, grammarAccess.getUnaryOpAccess().getMAYEnumLiteralDeclaration_3()); - } - ) - | - ( - enumLiteral_4=Must - { - $current = grammarAccess.getUnaryOpAccess().getMUSTEnumLiteralDeclaration_4().getEnumLiteral().getInstance(); - newLeafNode(enumLiteral_4, grammarAccess.getUnaryOpAccess().getMUSTEnumLiteralDeclaration_4()); - } - ) - | - ( - enumLiteral_5=Current - { - $current = grammarAccess.getUnaryOpAccess().getCURRENTEnumLiteralDeclaration_5().getEnumLiteral().getInstance(); - newLeafNode(enumLiteral_5, grammarAccess.getUnaryOpAccess().getCURRENTEnumLiteralDeclaration_5()); - } - ) - ) -; - -// Rule Quantifier -ruleQuantifier returns [Enumerator current=null] -@init { - enterRule(); -} -@after { - leaveRule(); -}: - ( - ( - enumLiteral_0=Exists - { - $current = grammarAccess.getQuantifierAccess().getEXISTSEnumLiteralDeclaration_0().getEnumLiteral().getInstance(); - newLeafNode(enumLiteral_0, grammarAccess.getQuantifierAccess().getEXISTSEnumLiteralDeclaration_0()); - } - ) - | - ( - enumLiteral_1=Forall - { - $current = grammarAccess.getQuantifierAccess().getFORALLEnumLiteralDeclaration_1().getEnumLiteral().getInstance(); - newLeafNode(enumLiteral_1, grammarAccess.getQuantifierAccess().getFORALLEnumLiteralDeclaration_1()); + $current = grammarAccess.getUnaryOperatorAccess().getMINUSEnumLiteralDeclaration_2().getEnumLiteral().getInstance(); + newLeafNode(enumLiteral_2, grammarAccess.getUnaryOperatorAccess().getMINUSEnumLiteralDeclaration_2()); } ) | ( - enumLiteral_2=Count + enumLiteral_3=QuestionMark { - $current = grammarAccess.getQuantifierAccess().getCOUNTEnumLiteralDeclaration_2().getEnumLiteral().getInstance(); - newLeafNode(enumLiteral_2, grammarAccess.getQuantifierAccess().getCOUNTEnumLiteralDeclaration_2()); + $current = grammarAccess.getUnaryOperatorAccess().getMAYBEEnumLiteralDeclaration_3().getEnumLiteral().getInstance(); + newLeafNode(enumLiteral_3, grammarAccess.getUnaryOperatorAccess().getMAYBEEnumLiteralDeclaration_3()); } ) ) @@ -4488,16 +5073,16 @@ ruleObjectiveKind returns [Enumerator current=null] ( enumLiteral_0=Minimize { - $current = grammarAccess.getObjectiveKindAccess().getMINIMIZEEnumLiteralDeclaration_0().getEnumLiteral().getInstance(); - newLeafNode(enumLiteral_0, grammarAccess.getObjectiveKindAccess().getMINIMIZEEnumLiteralDeclaration_0()); + $current = grammarAccess.getObjectiveKindAccess().getMINIMIZATIONEnumLiteralDeclaration_0().getEnumLiteral().getInstance(); + newLeafNode(enumLiteral_0, grammarAccess.getObjectiveKindAccess().getMINIMIZATIONEnumLiteralDeclaration_0()); } ) | ( enumLiteral_1=Maximize { - $current = grammarAccess.getObjectiveKindAccess().getMAXIMIZEEnumLiteralDeclaration_1().getEnumLiteral().getInstance(); - newLeafNode(enumLiteral_1, grammarAccess.getObjectiveKindAccess().getMAXIMIZEEnumLiteralDeclaration_1()); + $current = grammarAccess.getObjectiveKindAccess().getMAXIMIZATIONEnumLiteralDeclaration_1().getEnumLiteral().getInstance(); + newLeafNode(enumLiteral_1, grammarAccess.getObjectiveKindAccess().getMAXIMIZATIONEnumLiteralDeclaration_1()); } ) ) diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/parser/antlr/internal/InternalSolverLanguageParser.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/parser/antlr/internal/InternalSolverLanguageParser.java index 3e25746c..37223f5c 100644 --- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/parser/antlr/internal/InternalSolverLanguageParser.java +++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/parser/antlr/internal/InternalSolverLanguageParser.java @@ -22,79 +22,84 @@ import java.util.ArrayList; @SuppressWarnings("all") public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { public static final String[] tokenNames = new String[] { - "", "", "", "", "Functional", "Abstract", "Contains", "Datatype", "Maximize", "Minimize", "Opposite", "Current", "Default", "Extends", "Unknown", "Exists", "Extern", "Forall", "Class", "Count", "Empty", "Error", "False", "Scope", "Else", "Must", "Then", "True", "FullStopFullStopFullStop", "Inf", "Let", "May", "ExclamationMarkEqualsSign", "HyphenMinusGreaterThanSign", "FullStopFullStop", "ColonHyphenMinus", "LessThanSignEqualsSign", "EqualsSignEqualsSign", "EqualsSignGreaterThanSign", "GreaterThanSignEqualsSign", "As", "If", "In", "ExclamationMark", "LeftParenthesis", "RightParenthesis", "Asterisk", "PlusSign", "Comma", "HyphenMinus", "FullStop", "Solidus", "Colon", "Semicolon", "LessThanSign", "EqualsSign", "GreaterThanSign", "LeftSquareBracket", "RightSquareBracket", "CircumflexAccent", "LeftCurlyBracket", "VerticalLine", "RightCurlyBracket", "RULE_STRING", "RULE_QUOTED_ID", "RULE_SL_COMMENT", "RULE_TRANSITIVE_CLOSURE", "RULE_REFLEXIVE_TRANSITIVE_CLOSURE", "RULE_FULL_STOP", "RULE_ID", "RULE_INT", "RULE_ML_COMMENT", "RULE_WS", "RULE_ANY_OTHER" + "", "", "", "", "Containment", "Functional", "Abstract", "Contains", "Datatype", "Maximize", "Minimize", "Opposite", "Default", "Extends", "Problem", "Unknown", "Extern", "Import", "Object", "Refers", "Class", "Count", "Empty", "Error", "False", "Scope", "Else", "Enum", "Root", "Then", "True", "FullStopFullStopFullStop", "Inf", "Let", "ExclamationMarkEqualsSign", "HyphenMinusGreaterThanSign", "ColonHyphenMinus", "ColonColon", "ColonEqualsSign", "LessThanSignEqualsSign", "EqualsSignEqualsSign", "EqualsSignGreaterThanSign", "GreaterThanSignEqualsSign", "As", "If", "In", "ExclamationMark", "LeftParenthesis", "RightParenthesis", "Asterisk", "PlusSign", "Comma", "HyphenMinus", "FullStop", "Solidus", "Colon", "Semicolon", "LessThanSign", "EqualsSign", "GreaterThanSign", "QuestionMark", "LeftSquareBracket", "RightSquareBracket", "CircumflexAccent", "LeftCurlyBracket", "VerticalLine", "RightCurlyBracket", "Tilde", "RULE_STRING", "RULE_QUOTED_ID", "RULE_SL_COMMENT", "RULE_TRANSITIVE_CLOSURE", "RULE_REFLEXIVE_TRANSITIVE_CLOSURE", "RULE_FULL_STOP", "RULE_ID", "RULE_INT", "RULE_ML_COMMENT", "RULE_WS", "RULE_ANY_OTHER" }; - public static final int EqualsSignGreaterThanSign=38; - public static final int True=27; - public static final int Count=19; - public static final int False=22; - public static final int Must=25; - public static final int FullStopFullStopFullStop=28; - public static final int LessThanSign=54; - public static final int Datatype=7; - public static final int LeftParenthesis=44; - public static final int Unknown=14; - public static final int RULE_REFLEXIVE_TRANSITIVE_CLOSURE=67; - public static final int FullStopFullStop=34; - public static final int Then=26; + public static final int Enum=27; + public static final int Import=17; + public static final int EqualsSignGreaterThanSign=41; + public static final int True=30; + public static final int Count=21; + public static final int False=24; + public static final int FullStopFullStopFullStop=31; + public static final int LessThanSign=57; + public static final int Datatype=8; + public static final int LeftParenthesis=47; + public static final int Unknown=15; + public static final int RULE_REFLEXIVE_TRANSITIVE_CLOSURE=72; + public static final int Then=29; public static final int Extends=13; - public static final int Forall=17; - public static final int RightSquareBracket=58; - public static final int ExclamationMark=43; - public static final int Opposite=10; - public static final int GreaterThanSign=56; - public static final int RULE_ID=69; - public static final int RULE_QUOTED_ID=64; - public static final int RightParenthesis=45; - public static final int GreaterThanSignEqualsSign=39; - public static final int Functional=4; - public static final int EqualsSignEqualsSign=37; - public static final int VerticalLine=61; - public static final int PlusSign=47; - public static final int RULE_INT=70; - public static final int Contains=6; - public static final int RULE_ML_COMMENT=71; - public static final int RULE_TRANSITIVE_CLOSURE=66; - public static final int Class=18; - public static final int LeftSquareBracket=57; - public static final int RULE_FULL_STOP=68; - public static final int Current=11; - public static final int If=41; - public static final int Inf=29; - public static final int May=31; - public static final int In=42; - public static final int RULE_STRING=63; + public static final int RightSquareBracket=62; + public static final int ExclamationMark=46; + public static final int Opposite=11; + public static final int GreaterThanSign=59; + public static final int Root=28; + public static final int RULE_ID=74; + public static final int RULE_QUOTED_ID=69; + public static final int RightParenthesis=48; + public static final int ColonEqualsSign=38; + public static final int GreaterThanSignEqualsSign=42; + public static final int Functional=5; + public static final int ColonColon=37; + public static final int EqualsSignEqualsSign=40; + public static final int VerticalLine=65; + public static final int PlusSign=50; + public static final int RULE_INT=75; + public static final int Contains=7; + public static final int RULE_ML_COMMENT=76; + public static final int RULE_TRANSITIVE_CLOSURE=71; + public static final int Problem=14; + public static final int Object=18; + public static final int Class=20; + public static final int LeftSquareBracket=61; + public static final int RULE_FULL_STOP=73; + public static final int If=44; + public static final int Refers=19; + public static final int Inf=32; + public static final int In=45; + public static final int RULE_STRING=68; public static final int Extern=16; - public static final int RULE_SL_COMMENT=65; - public static final int Comma=48; - public static final int EqualsSign=55; - public static final int Empty=20; - public static final int As=40; - public static final int HyphenMinus=49; - public static final int Maximize=8; - public static final int LessThanSignEqualsSign=36; - public static final int Solidus=51; - public static final int Colon=52; - public static final int RightCurlyBracket=62; + public static final int RULE_SL_COMMENT=70; + public static final int Comma=51; + public static final int EqualsSign=58; + public static final int Empty=22; + public static final int As=43; + public static final int HyphenMinus=52; + public static final int Maximize=9; + public static final int LessThanSignEqualsSign=39; + public static final int Solidus=54; + public static final int Colon=55; + public static final int RightCurlyBracket=66; public static final int EOF=-1; - public static final int Asterisk=46; - public static final int FullStop=50; - public static final int RULE_WS=72; - public static final int Abstract=5; - public static final int Minimize=9; - public static final int LeftCurlyBracket=60; - public static final int Error=21; - public static final int RULE_ANY_OTHER=73; + public static final int Asterisk=49; + public static final int Containment=4; + public static final int FullStop=53; + public static final int RULE_WS=77; + public static final int Abstract=6; + public static final int Minimize=10; + public static final int LeftCurlyBracket=64; + public static final int Error=23; + public static final int Tilde=67; + public static final int RULE_ANY_OTHER=78; public static final int Default=12; - public static final int ColonHyphenMinus=35; - public static final int CircumflexAccent=59; - public static final int Semicolon=53; - public static final int Scope=23; - public static final int Exists=15; - public static final int Else=24; - public static final int Let=30; - public static final int ExclamationMarkEqualsSign=32; - public static final int HyphenMinusGreaterThanSign=33; + public static final int ColonHyphenMinus=36; + public static final int CircumflexAccent=63; + public static final int Semicolon=56; + public static final int Scope=25; + public static final int QuestionMark=60; + public static final int Else=26; + public static final int Let=33; + public static final int ExclamationMarkEqualsSign=34; + public static final int HyphenMinusGreaterThanSign=35; // delegates // delegators @@ -172,57 +177,171 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { // $ANTLR start "ruleProblem" - // InternalSolverLanguageParser.g:65:1: ruleProblem returns [EObject current=null] : ( (lv_statements_0_0= ruleStatement ) )* ; + // InternalSolverLanguageParser.g:65:1: ruleProblem returns [EObject current=null] : ( (otherlv_0= Problem ( (lv_name_1_0= ruleQualifiedName ) ) this_FULL_STOP_2= RULE_FULL_STOP )? ( (lv_imports_3_0= ruleImport ) )* ( (lv_statements_4_0= ruleStatement ) )* ) ; public final EObject ruleProblem() throws RecognitionException { EObject current = null; - EObject lv_statements_0_0 = null; + Token otherlv_0=null; + Token this_FULL_STOP_2=null; + AntlrDatatypeRuleToken lv_name_1_0 = null; + + EObject lv_imports_3_0 = null; + + EObject lv_statements_4_0 = null; enterRule(); try { - // InternalSolverLanguageParser.g:71:2: ( ( (lv_statements_0_0= ruleStatement ) )* ) - // InternalSolverLanguageParser.g:72:2: ( (lv_statements_0_0= ruleStatement ) )* + // InternalSolverLanguageParser.g:71:2: ( ( (otherlv_0= Problem ( (lv_name_1_0= ruleQualifiedName ) ) this_FULL_STOP_2= RULE_FULL_STOP )? ( (lv_imports_3_0= ruleImport ) )* ( (lv_statements_4_0= ruleStatement ) )* ) ) + // InternalSolverLanguageParser.g:72:2: ( (otherlv_0= Problem ( (lv_name_1_0= ruleQualifiedName ) ) this_FULL_STOP_2= RULE_FULL_STOP )? ( (lv_imports_3_0= ruleImport ) )* ( (lv_statements_4_0= ruleStatement ) )* ) { - // InternalSolverLanguageParser.g:72:2: ( (lv_statements_0_0= ruleStatement ) )* - loop1: + // InternalSolverLanguageParser.g:72:2: ( (otherlv_0= Problem ( (lv_name_1_0= ruleQualifiedName ) ) this_FULL_STOP_2= RULE_FULL_STOP )? ( (lv_imports_3_0= ruleImport ) )* ( (lv_statements_4_0= ruleStatement ) )* ) + // InternalSolverLanguageParser.g:73:3: (otherlv_0= Problem ( (lv_name_1_0= ruleQualifiedName ) ) this_FULL_STOP_2= RULE_FULL_STOP )? ( (lv_imports_3_0= ruleImport ) )* ( (lv_statements_4_0= ruleStatement ) )* + { + // InternalSolverLanguageParser.g:73:3: (otherlv_0= Problem ( (lv_name_1_0= ruleQualifiedName ) ) this_FULL_STOP_2= RULE_FULL_STOP )? + int alt1=2; + int LA1_0 = input.LA(1); + + if ( (LA1_0==Problem) ) { + alt1=1; + } + switch (alt1) { + case 1 : + // InternalSolverLanguageParser.g:74:4: otherlv_0= Problem ( (lv_name_1_0= ruleQualifiedName ) ) this_FULL_STOP_2= RULE_FULL_STOP + { + otherlv_0=(Token)match(input,Problem,FOLLOW_3); + + newLeafNode(otherlv_0, grammarAccess.getProblemAccess().getProblemKeyword_0_0()); + + // InternalSolverLanguageParser.g:78:4: ( (lv_name_1_0= ruleQualifiedName ) ) + // InternalSolverLanguageParser.g:79:5: (lv_name_1_0= ruleQualifiedName ) + { + // InternalSolverLanguageParser.g:79:5: (lv_name_1_0= ruleQualifiedName ) + // InternalSolverLanguageParser.g:80:6: lv_name_1_0= ruleQualifiedName + { + + newCompositeNode(grammarAccess.getProblemAccess().getNameQualifiedNameParserRuleCall_0_1_0()); + + pushFollow(FOLLOW_4); + lv_name_1_0=ruleQualifiedName(); + + state._fsp--; + + + if (current==null) { + current = createModelElementForParent(grammarAccess.getProblemRule()); + } + set( + current, + "name", + lv_name_1_0, + "org.eclipse.viatra.solver.language.SolverLanguage.QualifiedName"); + afterParserOrEnumRuleCall(); + + + } + + + } + + this_FULL_STOP_2=(Token)match(input,RULE_FULL_STOP,FOLLOW_5); + + newLeafNode(this_FULL_STOP_2, grammarAccess.getProblemAccess().getFULL_STOPTerminalRuleCall_0_2()); + + + } + break; + + } + + // InternalSolverLanguageParser.g:102:3: ( (lv_imports_3_0= ruleImport ) )* + loop2: do { - int alt1=2; - int LA1_0 = input.LA(1); + int alt2=2; + int LA2_0 = input.LA(1); - if ( ((LA1_0>=Functional && LA1_0<=Abstract)||(LA1_0>=Maximize && LA1_0<=Minimize)||(LA1_0>=Current && LA1_0<=Default)||(LA1_0>=Unknown && LA1_0<=False)||LA1_0==Scope||LA1_0==Must||LA1_0==True||(LA1_0>=Inf && LA1_0<=May)||LA1_0==If||(LA1_0>=ExclamationMark && LA1_0<=LeftParenthesis)||LA1_0==PlusSign||LA1_0==HyphenMinus||LA1_0==LeftSquareBracket||(LA1_0>=RULE_STRING && LA1_0<=RULE_QUOTED_ID)||(LA1_0>=RULE_ID && LA1_0<=RULE_INT)) ) { - alt1=1; + if ( (LA2_0==Import) ) { + alt2=1; } - switch (alt1) { + switch (alt2) { case 1 : - // InternalSolverLanguageParser.g:73:3: (lv_statements_0_0= ruleStatement ) + // InternalSolverLanguageParser.g:103:4: (lv_imports_3_0= ruleImport ) { - // InternalSolverLanguageParser.g:73:3: (lv_statements_0_0= ruleStatement ) - // InternalSolverLanguageParser.g:74:4: lv_statements_0_0= ruleStatement + // InternalSolverLanguageParser.g:103:4: (lv_imports_3_0= ruleImport ) + // InternalSolverLanguageParser.g:104:5: lv_imports_3_0= ruleImport { - newCompositeNode(grammarAccess.getProblemAccess().getStatementsStatementParserRuleCall_0()); - - pushFollow(FOLLOW_3); - lv_statements_0_0=ruleStatement(); + newCompositeNode(grammarAccess.getProblemAccess().getImportsImportParserRuleCall_1_0()); + + pushFollow(FOLLOW_5); + lv_imports_3_0=ruleImport(); state._fsp--; - if (current==null) { - current = createModelElementForParent(grammarAccess.getProblemRule()); - } - add( - current, - "statements", - lv_statements_0_0, - "org.eclipse.viatra.solver.language.SolverLanguage.Statement"); - afterParserOrEnumRuleCall(); - + if (current==null) { + current = createModelElementForParent(grammarAccess.getProblemRule()); + } + add( + current, + "imports", + lv_imports_3_0, + "org.eclipse.viatra.solver.language.SolverLanguage.Import"); + afterParserOrEnumRuleCall(); + + + } + + + } + break; + + default : + break loop2; + } + } while (true); + + // InternalSolverLanguageParser.g:121:3: ( (lv_statements_4_0= ruleStatement ) )* + loop3: + do { + int alt3=2; + int LA3_0 = input.LA(1); + + if ( ((LA3_0>=Containment && LA3_0<=Abstract)||(LA3_0>=Maximize && LA3_0<=Minimize)||LA3_0==Default||(LA3_0>=Unknown && LA3_0<=Extern)||LA3_0==Object||(LA3_0>=Class && LA3_0<=Scope)||(LA3_0>=Enum && LA3_0<=Root)||LA3_0==True||(LA3_0>=Inf && LA3_0<=Let)||LA3_0==If||(LA3_0>=ExclamationMark && LA3_0<=LeftParenthesis)||LA3_0==PlusSign||LA3_0==HyphenMinus||(LA3_0>=QuestionMark && LA3_0<=LeftSquareBracket)||(LA3_0>=Tilde && LA3_0<=RULE_QUOTED_ID)||(LA3_0>=RULE_ID && LA3_0<=RULE_INT)) ) { + alt3=1; + } + + + switch (alt3) { + case 1 : + // InternalSolverLanguageParser.g:122:4: (lv_statements_4_0= ruleStatement ) + { + // InternalSolverLanguageParser.g:122:4: (lv_statements_4_0= ruleStatement ) + // InternalSolverLanguageParser.g:123:5: lv_statements_4_0= ruleStatement + { + + newCompositeNode(grammarAccess.getProblemAccess().getStatementsStatementParserRuleCall_2_0()); + + pushFollow(FOLLOW_6); + lv_statements_4_0=ruleStatement(); + + state._fsp--; + + + if (current==null) { + current = createModelElementForParent(grammarAccess.getProblemRule()); + } + add( + current, + "statements", + lv_statements_4_0, + "org.eclipse.viatra.solver.language.SolverLanguage.Statement"); + afterParserOrEnumRuleCall(); + } @@ -231,11 +350,14 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { break; default : - break loop1; + break loop3; } } while (true); + } + + } @@ -255,7 +377,7 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { // $ANTLR start "entryRuleStatement" - // InternalSolverLanguageParser.g:94:1: entryRuleStatement returns [EObject current=null] : iv_ruleStatement= ruleStatement EOF ; + // InternalSolverLanguageParser.g:144:1: entryRuleStatement returns [EObject current=null] : iv_ruleStatement= ruleStatement EOF ; public final EObject entryRuleStatement() throws RecognitionException { EObject current = null; @@ -263,8 +385,8 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { try { - // InternalSolverLanguageParser.g:94:50: (iv_ruleStatement= ruleStatement EOF ) - // InternalSolverLanguageParser.g:95:2: iv_ruleStatement= ruleStatement EOF + // InternalSolverLanguageParser.g:144:50: (iv_ruleStatement= ruleStatement EOF ) + // InternalSolverLanguageParser.g:145:2: iv_ruleStatement= ruleStatement EOF { newCompositeNode(grammarAccess.getStatementRule()); pushFollow(FOLLOW_1); @@ -291,276 +413,245 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { // $ANTLR start "ruleStatement" - // InternalSolverLanguageParser.g:101:1: ruleStatement returns [EObject current=null] : ( (this_AssertionOrDefinition_0= ruleAssertionOrDefinition | this_PredicateDefinition_1= rulePredicateDefinition | this_UnnamedErrorPrediateDefinition_2= ruleUnnamedErrorPrediateDefinition | this_DefaultDefinition_3= ruleDefaultDefinition | this_MetricDefinition_4= ruleMetricDefinition | this_ExternPredicateDefinition_5= ruleExternPredicateDefinition | this_ExternMetricDefinition_6= ruleExternMetricDefinition | this_ExternAggregatorDefinition_7= ruleExternAggregatorDefinition | this_ExternDatatypeDefinition_8= ruleExternDatatypeDefinition | this_ClassDefinition_9= ruleClassDefinition | this_ScopeDefinition_10= ruleScopeDefinition | this_ObjectiveDefinition_11= ruleObjectiveDefinition ) this_FULL_STOP_12= RULE_FULL_STOP ) ; + // InternalSolverLanguageParser.g:151:1: ruleStatement returns [EObject current=null] : (this_AssertionOrDefinition_0= ruleAssertionOrDefinition | this_PredicateDefinition_1= rulePredicateDefinition | this_UnnamedErrorPredicateDefintion_2= ruleUnnamedErrorPredicateDefintion | this_DefaultAssertion_3= ruleDefaultAssertion | this_FunctionDefinition_4= ruleFunctionDefinition | this_Attribute_5= ruleAttribute | this_ExternDeclaration_6= ruleExternDeclaration | this_ScopeDeclaration_7= ruleScopeDeclaration | this_ObjectiveDeclaration_8= ruleObjectiveDeclaration | this_ClassDeclaration_9= ruleClassDeclaration | this_EnumDeclaration_10= ruleEnumDeclaration ) ; public final EObject ruleStatement() throws RecognitionException { EObject current = null; - Token this_FULL_STOP_12=null; EObject this_AssertionOrDefinition_0 = null; EObject this_PredicateDefinition_1 = null; - EObject this_UnnamedErrorPrediateDefinition_2 = null; - - EObject this_DefaultDefinition_3 = null; + EObject this_UnnamedErrorPredicateDefintion_2 = null; - EObject this_MetricDefinition_4 = null; + EObject this_DefaultAssertion_3 = null; - EObject this_ExternPredicateDefinition_5 = null; + EObject this_FunctionDefinition_4 = null; - EObject this_ExternMetricDefinition_6 = null; + EObject this_Attribute_5 = null; - EObject this_ExternAggregatorDefinition_7 = null; + EObject this_ExternDeclaration_6 = null; - EObject this_ExternDatatypeDefinition_8 = null; + EObject this_ScopeDeclaration_7 = null; - EObject this_ClassDefinition_9 = null; + EObject this_ObjectiveDeclaration_8 = null; - EObject this_ScopeDefinition_10 = null; + EObject this_ClassDeclaration_9 = null; - EObject this_ObjectiveDefinition_11 = null; + EObject this_EnumDeclaration_10 = null; enterRule(); try { - // InternalSolverLanguageParser.g:107:2: ( ( (this_AssertionOrDefinition_0= ruleAssertionOrDefinition | this_PredicateDefinition_1= rulePredicateDefinition | this_UnnamedErrorPrediateDefinition_2= ruleUnnamedErrorPrediateDefinition | this_DefaultDefinition_3= ruleDefaultDefinition | this_MetricDefinition_4= ruleMetricDefinition | this_ExternPredicateDefinition_5= ruleExternPredicateDefinition | this_ExternMetricDefinition_6= ruleExternMetricDefinition | this_ExternAggregatorDefinition_7= ruleExternAggregatorDefinition | this_ExternDatatypeDefinition_8= ruleExternDatatypeDefinition | this_ClassDefinition_9= ruleClassDefinition | this_ScopeDefinition_10= ruleScopeDefinition | this_ObjectiveDefinition_11= ruleObjectiveDefinition ) this_FULL_STOP_12= RULE_FULL_STOP ) ) - // InternalSolverLanguageParser.g:108:2: ( (this_AssertionOrDefinition_0= ruleAssertionOrDefinition | this_PredicateDefinition_1= rulePredicateDefinition | this_UnnamedErrorPrediateDefinition_2= ruleUnnamedErrorPrediateDefinition | this_DefaultDefinition_3= ruleDefaultDefinition | this_MetricDefinition_4= ruleMetricDefinition | this_ExternPredicateDefinition_5= ruleExternPredicateDefinition | this_ExternMetricDefinition_6= ruleExternMetricDefinition | this_ExternAggregatorDefinition_7= ruleExternAggregatorDefinition | this_ExternDatatypeDefinition_8= ruleExternDatatypeDefinition | this_ClassDefinition_9= ruleClassDefinition | this_ScopeDefinition_10= ruleScopeDefinition | this_ObjectiveDefinition_11= ruleObjectiveDefinition ) this_FULL_STOP_12= RULE_FULL_STOP ) + // InternalSolverLanguageParser.g:157:2: ( (this_AssertionOrDefinition_0= ruleAssertionOrDefinition | this_PredicateDefinition_1= rulePredicateDefinition | this_UnnamedErrorPredicateDefintion_2= ruleUnnamedErrorPredicateDefintion | this_DefaultAssertion_3= ruleDefaultAssertion | this_FunctionDefinition_4= ruleFunctionDefinition | this_Attribute_5= ruleAttribute | this_ExternDeclaration_6= ruleExternDeclaration | this_ScopeDeclaration_7= ruleScopeDeclaration | this_ObjectiveDeclaration_8= ruleObjectiveDeclaration | this_ClassDeclaration_9= ruleClassDeclaration | this_EnumDeclaration_10= ruleEnumDeclaration ) ) + // InternalSolverLanguageParser.g:158:2: (this_AssertionOrDefinition_0= ruleAssertionOrDefinition | this_PredicateDefinition_1= rulePredicateDefinition | this_UnnamedErrorPredicateDefintion_2= ruleUnnamedErrorPredicateDefintion | this_DefaultAssertion_3= ruleDefaultAssertion | this_FunctionDefinition_4= ruleFunctionDefinition | this_Attribute_5= ruleAttribute | this_ExternDeclaration_6= ruleExternDeclaration | this_ScopeDeclaration_7= ruleScopeDeclaration | this_ObjectiveDeclaration_8= ruleObjectiveDeclaration | this_ClassDeclaration_9= ruleClassDeclaration | this_EnumDeclaration_10= ruleEnumDeclaration ) { - // InternalSolverLanguageParser.g:108:2: ( (this_AssertionOrDefinition_0= ruleAssertionOrDefinition | this_PredicateDefinition_1= rulePredicateDefinition | this_UnnamedErrorPrediateDefinition_2= ruleUnnamedErrorPrediateDefinition | this_DefaultDefinition_3= ruleDefaultDefinition | this_MetricDefinition_4= ruleMetricDefinition | this_ExternPredicateDefinition_5= ruleExternPredicateDefinition | this_ExternMetricDefinition_6= ruleExternMetricDefinition | this_ExternAggregatorDefinition_7= ruleExternAggregatorDefinition | this_ExternDatatypeDefinition_8= ruleExternDatatypeDefinition | this_ClassDefinition_9= ruleClassDefinition | this_ScopeDefinition_10= ruleScopeDefinition | this_ObjectiveDefinition_11= ruleObjectiveDefinition ) this_FULL_STOP_12= RULE_FULL_STOP ) - // InternalSolverLanguageParser.g:109:3: (this_AssertionOrDefinition_0= ruleAssertionOrDefinition | this_PredicateDefinition_1= rulePredicateDefinition | this_UnnamedErrorPrediateDefinition_2= ruleUnnamedErrorPrediateDefinition | this_DefaultDefinition_3= ruleDefaultDefinition | this_MetricDefinition_4= ruleMetricDefinition | this_ExternPredicateDefinition_5= ruleExternPredicateDefinition | this_ExternMetricDefinition_6= ruleExternMetricDefinition | this_ExternAggregatorDefinition_7= ruleExternAggregatorDefinition | this_ExternDatatypeDefinition_8= ruleExternDatatypeDefinition | this_ClassDefinition_9= ruleClassDefinition | this_ScopeDefinition_10= ruleScopeDefinition | this_ObjectiveDefinition_11= ruleObjectiveDefinition ) this_FULL_STOP_12= RULE_FULL_STOP - { - // InternalSolverLanguageParser.g:109:3: (this_AssertionOrDefinition_0= ruleAssertionOrDefinition | this_PredicateDefinition_1= rulePredicateDefinition | this_UnnamedErrorPrediateDefinition_2= ruleUnnamedErrorPrediateDefinition | this_DefaultDefinition_3= ruleDefaultDefinition | this_MetricDefinition_4= ruleMetricDefinition | this_ExternPredicateDefinition_5= ruleExternPredicateDefinition | this_ExternMetricDefinition_6= ruleExternMetricDefinition | this_ExternAggregatorDefinition_7= ruleExternAggregatorDefinition | this_ExternDatatypeDefinition_8= ruleExternDatatypeDefinition | this_ClassDefinition_9= ruleClassDefinition | this_ScopeDefinition_10= ruleScopeDefinition | this_ObjectiveDefinition_11= ruleObjectiveDefinition ) - int alt2=12; - alt2 = dfa2.predict(input); - switch (alt2) { + // InternalSolverLanguageParser.g:158:2: (this_AssertionOrDefinition_0= ruleAssertionOrDefinition | this_PredicateDefinition_1= rulePredicateDefinition | this_UnnamedErrorPredicateDefintion_2= ruleUnnamedErrorPredicateDefintion | this_DefaultAssertion_3= ruleDefaultAssertion | this_FunctionDefinition_4= ruleFunctionDefinition | this_Attribute_5= ruleAttribute | this_ExternDeclaration_6= ruleExternDeclaration | this_ScopeDeclaration_7= ruleScopeDeclaration | this_ObjectiveDeclaration_8= ruleObjectiveDeclaration | this_ClassDeclaration_9= ruleClassDeclaration | this_EnumDeclaration_10= ruleEnumDeclaration ) + int alt4=11; + alt4 = dfa4.predict(input); + switch (alt4) { case 1 : - // InternalSolverLanguageParser.g:110:4: this_AssertionOrDefinition_0= ruleAssertionOrDefinition + // InternalSolverLanguageParser.g:159:3: this_AssertionOrDefinition_0= ruleAssertionOrDefinition { - newCompositeNode(grammarAccess.getStatementAccess().getAssertionOrDefinitionParserRuleCall_0_0()); - - pushFollow(FOLLOW_4); + newCompositeNode(grammarAccess.getStatementAccess().getAssertionOrDefinitionParserRuleCall_0()); + + pushFollow(FOLLOW_2); this_AssertionOrDefinition_0=ruleAssertionOrDefinition(); state._fsp--; - current = this_AssertionOrDefinition_0; - afterParserOrEnumRuleCall(); - + current = this_AssertionOrDefinition_0; + afterParserOrEnumRuleCall(); + } break; case 2 : - // InternalSolverLanguageParser.g:119:4: this_PredicateDefinition_1= rulePredicateDefinition + // InternalSolverLanguageParser.g:168:3: this_PredicateDefinition_1= rulePredicateDefinition { - newCompositeNode(grammarAccess.getStatementAccess().getPredicateDefinitionParserRuleCall_0_1()); - - pushFollow(FOLLOW_4); + newCompositeNode(grammarAccess.getStatementAccess().getPredicateDefinitionParserRuleCall_1()); + + pushFollow(FOLLOW_2); this_PredicateDefinition_1=rulePredicateDefinition(); state._fsp--; - current = this_PredicateDefinition_1; - afterParserOrEnumRuleCall(); - + current = this_PredicateDefinition_1; + afterParserOrEnumRuleCall(); + } break; case 3 : - // InternalSolverLanguageParser.g:128:4: this_UnnamedErrorPrediateDefinition_2= ruleUnnamedErrorPrediateDefinition + // InternalSolverLanguageParser.g:177:3: this_UnnamedErrorPredicateDefintion_2= ruleUnnamedErrorPredicateDefintion { - newCompositeNode(grammarAccess.getStatementAccess().getUnnamedErrorPrediateDefinitionParserRuleCall_0_2()); - - pushFollow(FOLLOW_4); - this_UnnamedErrorPrediateDefinition_2=ruleUnnamedErrorPrediateDefinition(); + newCompositeNode(grammarAccess.getStatementAccess().getUnnamedErrorPredicateDefintionParserRuleCall_2()); + + pushFollow(FOLLOW_2); + this_UnnamedErrorPredicateDefintion_2=ruleUnnamedErrorPredicateDefintion(); state._fsp--; - current = this_UnnamedErrorPrediateDefinition_2; - afterParserOrEnumRuleCall(); - + current = this_UnnamedErrorPredicateDefintion_2; + afterParserOrEnumRuleCall(); + } break; case 4 : - // InternalSolverLanguageParser.g:137:4: this_DefaultDefinition_3= ruleDefaultDefinition + // InternalSolverLanguageParser.g:186:3: this_DefaultAssertion_3= ruleDefaultAssertion { - newCompositeNode(grammarAccess.getStatementAccess().getDefaultDefinitionParserRuleCall_0_3()); - - pushFollow(FOLLOW_4); - this_DefaultDefinition_3=ruleDefaultDefinition(); + newCompositeNode(grammarAccess.getStatementAccess().getDefaultAssertionParserRuleCall_3()); + + pushFollow(FOLLOW_2); + this_DefaultAssertion_3=ruleDefaultAssertion(); state._fsp--; - current = this_DefaultDefinition_3; - afterParserOrEnumRuleCall(); - + current = this_DefaultAssertion_3; + afterParserOrEnumRuleCall(); + } break; case 5 : - // InternalSolverLanguageParser.g:146:4: this_MetricDefinition_4= ruleMetricDefinition + // InternalSolverLanguageParser.g:195:3: this_FunctionDefinition_4= ruleFunctionDefinition { - newCompositeNode(grammarAccess.getStatementAccess().getMetricDefinitionParserRuleCall_0_4()); - - pushFollow(FOLLOW_4); - this_MetricDefinition_4=ruleMetricDefinition(); + newCompositeNode(grammarAccess.getStatementAccess().getFunctionDefinitionParserRuleCall_4()); + + pushFollow(FOLLOW_2); + this_FunctionDefinition_4=ruleFunctionDefinition(); state._fsp--; - current = this_MetricDefinition_4; - afterParserOrEnumRuleCall(); - + current = this_FunctionDefinition_4; + afterParserOrEnumRuleCall(); + } break; case 6 : - // InternalSolverLanguageParser.g:155:4: this_ExternPredicateDefinition_5= ruleExternPredicateDefinition + // InternalSolverLanguageParser.g:204:3: this_Attribute_5= ruleAttribute { - newCompositeNode(grammarAccess.getStatementAccess().getExternPredicateDefinitionParserRuleCall_0_5()); - - pushFollow(FOLLOW_4); - this_ExternPredicateDefinition_5=ruleExternPredicateDefinition(); + newCompositeNode(grammarAccess.getStatementAccess().getAttributeParserRuleCall_5()); + + pushFollow(FOLLOW_2); + this_Attribute_5=ruleAttribute(); state._fsp--; - current = this_ExternPredicateDefinition_5; - afterParserOrEnumRuleCall(); - + current = this_Attribute_5; + afterParserOrEnumRuleCall(); + } break; case 7 : - // InternalSolverLanguageParser.g:164:4: this_ExternMetricDefinition_6= ruleExternMetricDefinition + // InternalSolverLanguageParser.g:213:3: this_ExternDeclaration_6= ruleExternDeclaration { - newCompositeNode(grammarAccess.getStatementAccess().getExternMetricDefinitionParserRuleCall_0_6()); - - pushFollow(FOLLOW_4); - this_ExternMetricDefinition_6=ruleExternMetricDefinition(); + newCompositeNode(grammarAccess.getStatementAccess().getExternDeclarationParserRuleCall_6()); + + pushFollow(FOLLOW_2); + this_ExternDeclaration_6=ruleExternDeclaration(); state._fsp--; - current = this_ExternMetricDefinition_6; - afterParserOrEnumRuleCall(); - + current = this_ExternDeclaration_6; + afterParserOrEnumRuleCall(); + } break; case 8 : - // InternalSolverLanguageParser.g:173:4: this_ExternAggregatorDefinition_7= ruleExternAggregatorDefinition + // InternalSolverLanguageParser.g:222:3: this_ScopeDeclaration_7= ruleScopeDeclaration { - newCompositeNode(grammarAccess.getStatementAccess().getExternAggregatorDefinitionParserRuleCall_0_7()); - - pushFollow(FOLLOW_4); - this_ExternAggregatorDefinition_7=ruleExternAggregatorDefinition(); + newCompositeNode(grammarAccess.getStatementAccess().getScopeDeclarationParserRuleCall_7()); + + pushFollow(FOLLOW_2); + this_ScopeDeclaration_7=ruleScopeDeclaration(); state._fsp--; - current = this_ExternAggregatorDefinition_7; - afterParserOrEnumRuleCall(); - + current = this_ScopeDeclaration_7; + afterParserOrEnumRuleCall(); + } break; case 9 : - // InternalSolverLanguageParser.g:182:4: this_ExternDatatypeDefinition_8= ruleExternDatatypeDefinition + // InternalSolverLanguageParser.g:231:3: this_ObjectiveDeclaration_8= ruleObjectiveDeclaration { - newCompositeNode(grammarAccess.getStatementAccess().getExternDatatypeDefinitionParserRuleCall_0_8()); - - pushFollow(FOLLOW_4); - this_ExternDatatypeDefinition_8=ruleExternDatatypeDefinition(); + newCompositeNode(grammarAccess.getStatementAccess().getObjectiveDeclarationParserRuleCall_8()); + + pushFollow(FOLLOW_2); + this_ObjectiveDeclaration_8=ruleObjectiveDeclaration(); state._fsp--; - current = this_ExternDatatypeDefinition_8; - afterParserOrEnumRuleCall(); - + current = this_ObjectiveDeclaration_8; + afterParserOrEnumRuleCall(); + } break; case 10 : - // InternalSolverLanguageParser.g:191:4: this_ClassDefinition_9= ruleClassDefinition + // InternalSolverLanguageParser.g:240:3: this_ClassDeclaration_9= ruleClassDeclaration { - newCompositeNode(grammarAccess.getStatementAccess().getClassDefinitionParserRuleCall_0_9()); - - pushFollow(FOLLOW_4); - this_ClassDefinition_9=ruleClassDefinition(); + newCompositeNode(grammarAccess.getStatementAccess().getClassDeclarationParserRuleCall_9()); + + pushFollow(FOLLOW_2); + this_ClassDeclaration_9=ruleClassDeclaration(); state._fsp--; - current = this_ClassDefinition_9; - afterParserOrEnumRuleCall(); - + current = this_ClassDeclaration_9; + afterParserOrEnumRuleCall(); + } break; case 11 : - // InternalSolverLanguageParser.g:200:4: this_ScopeDefinition_10= ruleScopeDefinition - { - - newCompositeNode(grammarAccess.getStatementAccess().getScopeDefinitionParserRuleCall_0_10()); - - pushFollow(FOLLOW_4); - this_ScopeDefinition_10=ruleScopeDefinition(); - - state._fsp--; - - - current = this_ScopeDefinition_10; - afterParserOrEnumRuleCall(); - - - } - break; - case 12 : - // InternalSolverLanguageParser.g:209:4: this_ObjectiveDefinition_11= ruleObjectiveDefinition + // InternalSolverLanguageParser.g:249:3: this_EnumDeclaration_10= ruleEnumDeclaration { - newCompositeNode(grammarAccess.getStatementAccess().getObjectiveDefinitionParserRuleCall_0_11()); - - pushFollow(FOLLOW_4); - this_ObjectiveDefinition_11=ruleObjectiveDefinition(); + newCompositeNode(grammarAccess.getStatementAccess().getEnumDeclarationParserRuleCall_10()); + + pushFollow(FOLLOW_2); + this_EnumDeclaration_10=ruleEnumDeclaration(); state._fsp--; - current = this_ObjectiveDefinition_11; - afterParserOrEnumRuleCall(); - + current = this_EnumDeclaration_10; + afterParserOrEnumRuleCall(); + } break; } - this_FULL_STOP_12=(Token)match(input,RULE_FULL_STOP,FOLLOW_2); - - newLeafNode(this_FULL_STOP_12, grammarAccess.getStatementAccess().getFULL_STOPTerminalRuleCall_1()); - - - } - } @@ -580,25 +671,25 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { // $ANTLR end "ruleStatement" - // $ANTLR start "entryRuleAssertionOrDefinition" - // InternalSolverLanguageParser.g:226:1: entryRuleAssertionOrDefinition returns [EObject current=null] : iv_ruleAssertionOrDefinition= ruleAssertionOrDefinition EOF ; - public final EObject entryRuleAssertionOrDefinition() throws RecognitionException { + // $ANTLR start "entryRuleImport" + // InternalSolverLanguageParser.g:261:1: entryRuleImport returns [EObject current=null] : iv_ruleImport= ruleImport EOF ; + public final EObject entryRuleImport() throws RecognitionException { EObject current = null; - EObject iv_ruleAssertionOrDefinition = null; + EObject iv_ruleImport = null; try { - // InternalSolverLanguageParser.g:226:62: (iv_ruleAssertionOrDefinition= ruleAssertionOrDefinition EOF ) - // InternalSolverLanguageParser.g:227:2: iv_ruleAssertionOrDefinition= ruleAssertionOrDefinition EOF + // InternalSolverLanguageParser.g:261:47: (iv_ruleImport= ruleImport EOF ) + // InternalSolverLanguageParser.g:262:2: iv_ruleImport= ruleImport EOF { - newCompositeNode(grammarAccess.getAssertionOrDefinitionRule()); + newCompositeNode(grammarAccess.getImportRule()); pushFollow(FOLLOW_1); - iv_ruleAssertionOrDefinition=ruleAssertionOrDefinition(); + iv_ruleImport=ruleImport(); state._fsp--; - current =iv_ruleAssertionOrDefinition; + current =iv_ruleImport; match(input,EOF,FOLLOW_2); } @@ -613,118 +704,596 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } return current; } - // $ANTLR end "entryRuleAssertionOrDefinition" + // $ANTLR end "entryRuleImport" - // $ANTLR start "ruleAssertionOrDefinition" - // InternalSolverLanguageParser.g:233:1: ruleAssertionOrDefinition returns [EObject current=null] : (this_Expression_0= ruleExpression ( ( () otherlv_2= Colon ( (lv_range_3_0= ruleExpression ) ) ) | ( () otherlv_5= ColonHyphenMinus ( (lv_body_6_0= ruleExpression ) ) ) | ( () otherlv_8= EqualsSign ( (lv_body_9_0= ruleExpression ) ) ) )? ) ; - public final EObject ruleAssertionOrDefinition() throws RecognitionException { + // $ANTLR start "ruleImport" + // InternalSolverLanguageParser.g:268:1: ruleImport returns [EObject current=null] : (this_UriImport_0= ruleUriImport | this_NamespaceImport_1= ruleNamespaceImport ) ; + public final EObject ruleImport() throws RecognitionException { EObject current = null; - Token otherlv_2=null; - Token otherlv_5=null; - Token otherlv_8=null; - EObject this_Expression_0 = null; - - EObject lv_range_3_0 = null; - - EObject lv_body_6_0 = null; + EObject this_UriImport_0 = null; - EObject lv_body_9_0 = null; + EObject this_NamespaceImport_1 = null; enterRule(); try { - // InternalSolverLanguageParser.g:239:2: ( (this_Expression_0= ruleExpression ( ( () otherlv_2= Colon ( (lv_range_3_0= ruleExpression ) ) ) | ( () otherlv_5= ColonHyphenMinus ( (lv_body_6_0= ruleExpression ) ) ) | ( () otherlv_8= EqualsSign ( (lv_body_9_0= ruleExpression ) ) ) )? ) ) - // InternalSolverLanguageParser.g:240:2: (this_Expression_0= ruleExpression ( ( () otherlv_2= Colon ( (lv_range_3_0= ruleExpression ) ) ) | ( () otherlv_5= ColonHyphenMinus ( (lv_body_6_0= ruleExpression ) ) ) | ( () otherlv_8= EqualsSign ( (lv_body_9_0= ruleExpression ) ) ) )? ) - { - // InternalSolverLanguageParser.g:240:2: (this_Expression_0= ruleExpression ( ( () otherlv_2= Colon ( (lv_range_3_0= ruleExpression ) ) ) | ( () otherlv_5= ColonHyphenMinus ( (lv_body_6_0= ruleExpression ) ) ) | ( () otherlv_8= EqualsSign ( (lv_body_9_0= ruleExpression ) ) ) )? ) - // InternalSolverLanguageParser.g:241:3: this_Expression_0= ruleExpression ( ( () otherlv_2= Colon ( (lv_range_3_0= ruleExpression ) ) ) | ( () otherlv_5= ColonHyphenMinus ( (lv_body_6_0= ruleExpression ) ) ) | ( () otherlv_8= EqualsSign ( (lv_body_9_0= ruleExpression ) ) ) )? + // InternalSolverLanguageParser.g:274:2: ( (this_UriImport_0= ruleUriImport | this_NamespaceImport_1= ruleNamespaceImport ) ) + // InternalSolverLanguageParser.g:275:2: (this_UriImport_0= ruleUriImport | this_NamespaceImport_1= ruleNamespaceImport ) { + // InternalSolverLanguageParser.g:275:2: (this_UriImport_0= ruleUriImport | this_NamespaceImport_1= ruleNamespaceImport ) + int alt5=2; + int LA5_0 = input.LA(1); - newCompositeNode(grammarAccess.getAssertionOrDefinitionAccess().getExpressionParserRuleCall_0()); - - pushFollow(FOLLOW_5); - this_Expression_0=ruleExpression(); - - state._fsp--; + if ( (LA5_0==Import) ) { + int LA5_1 = input.LA(2); + if ( (LA5_1==RULE_STRING) ) { + alt5=1; + } + else if ( (LA5_1==Object||LA5_1==RULE_QUOTED_ID||LA5_1==RULE_ID) ) { + alt5=2; + } + else { + NoViableAltException nvae = + new NoViableAltException("", 5, 1, input); - current = this_Expression_0; - afterParserOrEnumRuleCall(); - - // InternalSolverLanguageParser.g:249:3: ( ( () otherlv_2= Colon ( (lv_range_3_0= ruleExpression ) ) ) | ( () otherlv_5= ColonHyphenMinus ( (lv_body_6_0= ruleExpression ) ) ) | ( () otherlv_8= EqualsSign ( (lv_body_9_0= ruleExpression ) ) ) )? - int alt3=4; - switch ( input.LA(1) ) { - case Colon: - { - alt3=1; - } - break; - case ColonHyphenMinus: - { - alt3=2; - } - break; - case EqualsSign: - { - alt3=3; - } - break; + throw nvae; + } } + else { + NoViableAltException nvae = + new NoViableAltException("", 5, 0, input); - switch (alt3) { + throw nvae; + } + switch (alt5) { case 1 : - // InternalSolverLanguageParser.g:250:4: ( () otherlv_2= Colon ( (lv_range_3_0= ruleExpression ) ) ) - { - // InternalSolverLanguageParser.g:250:4: ( () otherlv_2= Colon ( (lv_range_3_0= ruleExpression ) ) ) - // InternalSolverLanguageParser.g:251:5: () otherlv_2= Colon ( (lv_range_3_0= ruleExpression ) ) + // InternalSolverLanguageParser.g:276:3: this_UriImport_0= ruleUriImport { - // InternalSolverLanguageParser.g:251:5: () - // InternalSolverLanguageParser.g:252:6: - { - - current = forceCreateModelElementAndSet( - grammarAccess.getAssertionOrDefinitionAccess().getInterpretationBodyAction_1_0_0(), - current); - - } + newCompositeNode(grammarAccess.getImportAccess().getUriImportParserRuleCall_0()); + + pushFollow(FOLLOW_2); + this_UriImport_0=ruleUriImport(); - otherlv_2=(Token)match(input,Colon,FOLLOW_6); + state._fsp--; - newLeafNode(otherlv_2, grammarAccess.getAssertionOrDefinitionAccess().getColonKeyword_1_0_1()); - - // InternalSolverLanguageParser.g:262:5: ( (lv_range_3_0= ruleExpression ) ) - // InternalSolverLanguageParser.g:263:6: (lv_range_3_0= ruleExpression ) - { - // InternalSolverLanguageParser.g:263:6: (lv_range_3_0= ruleExpression ) - // InternalSolverLanguageParser.g:264:7: lv_range_3_0= ruleExpression - { - newCompositeNode(grammarAccess.getAssertionOrDefinitionAccess().getRangeExpressionParserRuleCall_1_0_2_0()); - + current = this_UriImport_0; + afterParserOrEnumRuleCall(); + + + } + break; + case 2 : + // InternalSolverLanguageParser.g:285:3: this_NamespaceImport_1= ruleNamespaceImport + { + + newCompositeNode(grammarAccess.getImportAccess().getNamespaceImportParserRuleCall_1()); + pushFollow(FOLLOW_2); - lv_range_3_0=ruleExpression(); + this_NamespaceImport_1=ruleNamespaceImport(); state._fsp--; - if (current==null) { - current = createModelElementForParent(grammarAccess.getAssertionOrDefinitionRule()); - } - set( - current, - "range", - lv_range_3_0, - "org.eclipse.viatra.solver.language.SolverLanguage.Expression"); - afterParserOrEnumRuleCall(); - + current = this_NamespaceImport_1; + afterParserOrEnumRuleCall(); + + + } + break; + + } + + + } + + + leaveRule(); + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleImport" + + + // $ANTLR start "entryRuleUriImport" + // InternalSolverLanguageParser.g:297:1: entryRuleUriImport returns [EObject current=null] : iv_ruleUriImport= ruleUriImport EOF ; + public final EObject entryRuleUriImport() throws RecognitionException { + EObject current = null; + + EObject iv_ruleUriImport = null; + + + try { + // InternalSolverLanguageParser.g:297:50: (iv_ruleUriImport= ruleUriImport EOF ) + // InternalSolverLanguageParser.g:298:2: iv_ruleUriImport= ruleUriImport EOF + { + newCompositeNode(grammarAccess.getUriImportRule()); + pushFollow(FOLLOW_1); + iv_ruleUriImport=ruleUriImport(); + + state._fsp--; + + current =iv_ruleUriImport; + match(input,EOF,FOLLOW_2); + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleUriImport" + + + // $ANTLR start "ruleUriImport" + // InternalSolverLanguageParser.g:304:1: ruleUriImport returns [EObject current=null] : (otherlv_0= Import ( (lv_uri_1_0= RULE_STRING ) ) (otherlv_2= As ( (lv_alias_3_0= ruleQualifiedName ) ) ) this_FULL_STOP_4= RULE_FULL_STOP ) ; + public final EObject ruleUriImport() throws RecognitionException { + EObject current = null; + + Token otherlv_0=null; + Token lv_uri_1_0=null; + Token otherlv_2=null; + Token this_FULL_STOP_4=null; + AntlrDatatypeRuleToken lv_alias_3_0 = null; + + + + enterRule(); + + try { + // InternalSolverLanguageParser.g:310:2: ( (otherlv_0= Import ( (lv_uri_1_0= RULE_STRING ) ) (otherlv_2= As ( (lv_alias_3_0= ruleQualifiedName ) ) ) this_FULL_STOP_4= RULE_FULL_STOP ) ) + // InternalSolverLanguageParser.g:311:2: (otherlv_0= Import ( (lv_uri_1_0= RULE_STRING ) ) (otherlv_2= As ( (lv_alias_3_0= ruleQualifiedName ) ) ) this_FULL_STOP_4= RULE_FULL_STOP ) + { + // InternalSolverLanguageParser.g:311:2: (otherlv_0= Import ( (lv_uri_1_0= RULE_STRING ) ) (otherlv_2= As ( (lv_alias_3_0= ruleQualifiedName ) ) ) this_FULL_STOP_4= RULE_FULL_STOP ) + // InternalSolverLanguageParser.g:312:3: otherlv_0= Import ( (lv_uri_1_0= RULE_STRING ) ) (otherlv_2= As ( (lv_alias_3_0= ruleQualifiedName ) ) ) this_FULL_STOP_4= RULE_FULL_STOP + { + otherlv_0=(Token)match(input,Import,FOLLOW_7); + + newLeafNode(otherlv_0, grammarAccess.getUriImportAccess().getImportKeyword_0()); + + // InternalSolverLanguageParser.g:316:3: ( (lv_uri_1_0= RULE_STRING ) ) + // InternalSolverLanguageParser.g:317:4: (lv_uri_1_0= RULE_STRING ) + { + // InternalSolverLanguageParser.g:317:4: (lv_uri_1_0= RULE_STRING ) + // InternalSolverLanguageParser.g:318:5: lv_uri_1_0= RULE_STRING + { + lv_uri_1_0=(Token)match(input,RULE_STRING,FOLLOW_8); + + newLeafNode(lv_uri_1_0, grammarAccess.getUriImportAccess().getUriSTRINGTerminalRuleCall_1_0()); + + + if (current==null) { + current = createModelElement(grammarAccess.getUriImportRule()); + } + setWithLastConsumed( + current, + "uri", + lv_uri_1_0, + "org.eclipse.viatra.solver.language.SolverLanguage.STRING"); + + + } + + + } + + // InternalSolverLanguageParser.g:334:3: (otherlv_2= As ( (lv_alias_3_0= ruleQualifiedName ) ) ) + // InternalSolverLanguageParser.g:335:4: otherlv_2= As ( (lv_alias_3_0= ruleQualifiedName ) ) + { + otherlv_2=(Token)match(input,As,FOLLOW_3); + + newLeafNode(otherlv_2, grammarAccess.getUriImportAccess().getAsKeyword_2_0()); + + // InternalSolverLanguageParser.g:339:4: ( (lv_alias_3_0= ruleQualifiedName ) ) + // InternalSolverLanguageParser.g:340:5: (lv_alias_3_0= ruleQualifiedName ) + { + // InternalSolverLanguageParser.g:340:5: (lv_alias_3_0= ruleQualifiedName ) + // InternalSolverLanguageParser.g:341:6: lv_alias_3_0= ruleQualifiedName + { + + newCompositeNode(grammarAccess.getUriImportAccess().getAliasQualifiedNameParserRuleCall_2_1_0()); + + pushFollow(FOLLOW_4); + lv_alias_3_0=ruleQualifiedName(); + + state._fsp--; + + + if (current==null) { + current = createModelElementForParent(grammarAccess.getUriImportRule()); + } + set( + current, + "alias", + lv_alias_3_0, + "org.eclipse.viatra.solver.language.SolverLanguage.QualifiedName"); + afterParserOrEnumRuleCall(); + + + } + + + } + + + } + + this_FULL_STOP_4=(Token)match(input,RULE_FULL_STOP,FOLLOW_2); + + newLeafNode(this_FULL_STOP_4, grammarAccess.getUriImportAccess().getFULL_STOPTerminalRuleCall_3()); + + + } + + + } + + + leaveRule(); + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleUriImport" + + + // $ANTLR start "entryRuleNamespaceImport" + // InternalSolverLanguageParser.g:367:1: entryRuleNamespaceImport returns [EObject current=null] : iv_ruleNamespaceImport= ruleNamespaceImport EOF ; + public final EObject entryRuleNamespaceImport() throws RecognitionException { + EObject current = null; + + EObject iv_ruleNamespaceImport = null; + + + try { + // InternalSolverLanguageParser.g:367:56: (iv_ruleNamespaceImport= ruleNamespaceImport EOF ) + // InternalSolverLanguageParser.g:368:2: iv_ruleNamespaceImport= ruleNamespaceImport EOF + { + newCompositeNode(grammarAccess.getNamespaceImportRule()); + pushFollow(FOLLOW_1); + iv_ruleNamespaceImport=ruleNamespaceImport(); + + state._fsp--; + + current =iv_ruleNamespaceImport; + match(input,EOF,FOLLOW_2); + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleNamespaceImport" + + + // $ANTLR start "ruleNamespaceImport" + // InternalSolverLanguageParser.g:374:1: ruleNamespaceImport returns [EObject current=null] : (otherlv_0= Import ( (lv_importedNamespace_1_0= ruleQualifiedName ) ) (otherlv_2= As ( (lv_alias_3_0= ruleQualifiedName ) ) ) this_FULL_STOP_4= RULE_FULL_STOP ) ; + public final EObject ruleNamespaceImport() throws RecognitionException { + EObject current = null; + + Token otherlv_0=null; + Token otherlv_2=null; + Token this_FULL_STOP_4=null; + AntlrDatatypeRuleToken lv_importedNamespace_1_0 = null; + + AntlrDatatypeRuleToken lv_alias_3_0 = null; + + + + enterRule(); + + try { + // InternalSolverLanguageParser.g:380:2: ( (otherlv_0= Import ( (lv_importedNamespace_1_0= ruleQualifiedName ) ) (otherlv_2= As ( (lv_alias_3_0= ruleQualifiedName ) ) ) this_FULL_STOP_4= RULE_FULL_STOP ) ) + // InternalSolverLanguageParser.g:381:2: (otherlv_0= Import ( (lv_importedNamespace_1_0= ruleQualifiedName ) ) (otherlv_2= As ( (lv_alias_3_0= ruleQualifiedName ) ) ) this_FULL_STOP_4= RULE_FULL_STOP ) + { + // InternalSolverLanguageParser.g:381:2: (otherlv_0= Import ( (lv_importedNamespace_1_0= ruleQualifiedName ) ) (otherlv_2= As ( (lv_alias_3_0= ruleQualifiedName ) ) ) this_FULL_STOP_4= RULE_FULL_STOP ) + // InternalSolverLanguageParser.g:382:3: otherlv_0= Import ( (lv_importedNamespace_1_0= ruleQualifiedName ) ) (otherlv_2= As ( (lv_alias_3_0= ruleQualifiedName ) ) ) this_FULL_STOP_4= RULE_FULL_STOP + { + otherlv_0=(Token)match(input,Import,FOLLOW_3); + + newLeafNode(otherlv_0, grammarAccess.getNamespaceImportAccess().getImportKeyword_0()); + + // InternalSolverLanguageParser.g:386:3: ( (lv_importedNamespace_1_0= ruleQualifiedName ) ) + // InternalSolverLanguageParser.g:387:4: (lv_importedNamespace_1_0= ruleQualifiedName ) + { + // InternalSolverLanguageParser.g:387:4: (lv_importedNamespace_1_0= ruleQualifiedName ) + // InternalSolverLanguageParser.g:388:5: lv_importedNamespace_1_0= ruleQualifiedName + { + + newCompositeNode(grammarAccess.getNamespaceImportAccess().getImportedNamespaceQualifiedNameParserRuleCall_1_0()); + + pushFollow(FOLLOW_8); + lv_importedNamespace_1_0=ruleQualifiedName(); + + state._fsp--; + + + if (current==null) { + current = createModelElementForParent(grammarAccess.getNamespaceImportRule()); + } + set( + current, + "importedNamespace", + lv_importedNamespace_1_0, + "org.eclipse.viatra.solver.language.SolverLanguage.QualifiedName"); + afterParserOrEnumRuleCall(); + + + } + + + } + + // InternalSolverLanguageParser.g:405:3: (otherlv_2= As ( (lv_alias_3_0= ruleQualifiedName ) ) ) + // InternalSolverLanguageParser.g:406:4: otherlv_2= As ( (lv_alias_3_0= ruleQualifiedName ) ) + { + otherlv_2=(Token)match(input,As,FOLLOW_3); + + newLeafNode(otherlv_2, grammarAccess.getNamespaceImportAccess().getAsKeyword_2_0()); + + // InternalSolverLanguageParser.g:410:4: ( (lv_alias_3_0= ruleQualifiedName ) ) + // InternalSolverLanguageParser.g:411:5: (lv_alias_3_0= ruleQualifiedName ) + { + // InternalSolverLanguageParser.g:411:5: (lv_alias_3_0= ruleQualifiedName ) + // InternalSolverLanguageParser.g:412:6: lv_alias_3_0= ruleQualifiedName + { + + newCompositeNode(grammarAccess.getNamespaceImportAccess().getAliasQualifiedNameParserRuleCall_2_1_0()); + + pushFollow(FOLLOW_4); + lv_alias_3_0=ruleQualifiedName(); + + state._fsp--; + + + if (current==null) { + current = createModelElementForParent(grammarAccess.getNamespaceImportRule()); + } + set( + current, + "alias", + lv_alias_3_0, + "org.eclipse.viatra.solver.language.SolverLanguage.QualifiedName"); + afterParserOrEnumRuleCall(); + + + } + + + } + + + } + + this_FULL_STOP_4=(Token)match(input,RULE_FULL_STOP,FOLLOW_2); + + newLeafNode(this_FULL_STOP_4, grammarAccess.getNamespaceImportAccess().getFULL_STOPTerminalRuleCall_3()); + + + } + + + } + + + leaveRule(); + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleNamespaceImport" + + + // $ANTLR start "entryRuleAssertionOrDefinition" + // InternalSolverLanguageParser.g:438:1: entryRuleAssertionOrDefinition returns [EObject current=null] : iv_ruleAssertionOrDefinition= ruleAssertionOrDefinition EOF ; + public final EObject entryRuleAssertionOrDefinition() throws RecognitionException { + EObject current = null; + + EObject iv_ruleAssertionOrDefinition = null; + + + try { + // InternalSolverLanguageParser.g:438:62: (iv_ruleAssertionOrDefinition= ruleAssertionOrDefinition EOF ) + // InternalSolverLanguageParser.g:439:2: iv_ruleAssertionOrDefinition= ruleAssertionOrDefinition EOF + { + newCompositeNode(grammarAccess.getAssertionOrDefinitionRule()); + pushFollow(FOLLOW_1); + iv_ruleAssertionOrDefinition=ruleAssertionOrDefinition(); + + state._fsp--; + + current =iv_ruleAssertionOrDefinition; + match(input,EOF,FOLLOW_2); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleAssertionOrDefinition" + + + // $ANTLR start "ruleAssertionOrDefinition" + // InternalSolverLanguageParser.g:445:1: ruleAssertionOrDefinition returns [EObject current=null] : (this_Expression_0= ruleExpression ( ( () (otherlv_2= Colon ( (lv_range_3_0= ruleExpression ) ) )? ) | ( () otherlv_5= ColonHyphenMinus ( (lv_body_6_0= ruleExpression ) ) ) | ( () otherlv_8= ColonEqualsSign ( (lv_body_9_0= ruleExpression ) ) ) ) this_FULL_STOP_10= RULE_FULL_STOP ) ; + public final EObject ruleAssertionOrDefinition() throws RecognitionException { + EObject current = null; + + Token otherlv_2=null; + Token otherlv_5=null; + Token otherlv_8=null; + Token this_FULL_STOP_10=null; + EObject this_Expression_0 = null; + + EObject lv_range_3_0 = null; + + EObject lv_body_6_0 = null; + + EObject lv_body_9_0 = null; + + + + enterRule(); + + try { + // InternalSolverLanguageParser.g:451:2: ( (this_Expression_0= ruleExpression ( ( () (otherlv_2= Colon ( (lv_range_3_0= ruleExpression ) ) )? ) | ( () otherlv_5= ColonHyphenMinus ( (lv_body_6_0= ruleExpression ) ) ) | ( () otherlv_8= ColonEqualsSign ( (lv_body_9_0= ruleExpression ) ) ) ) this_FULL_STOP_10= RULE_FULL_STOP ) ) + // InternalSolverLanguageParser.g:452:2: (this_Expression_0= ruleExpression ( ( () (otherlv_2= Colon ( (lv_range_3_0= ruleExpression ) ) )? ) | ( () otherlv_5= ColonHyphenMinus ( (lv_body_6_0= ruleExpression ) ) ) | ( () otherlv_8= ColonEqualsSign ( (lv_body_9_0= ruleExpression ) ) ) ) this_FULL_STOP_10= RULE_FULL_STOP ) + { + // InternalSolverLanguageParser.g:452:2: (this_Expression_0= ruleExpression ( ( () (otherlv_2= Colon ( (lv_range_3_0= ruleExpression ) ) )? ) | ( () otherlv_5= ColonHyphenMinus ( (lv_body_6_0= ruleExpression ) ) ) | ( () otherlv_8= ColonEqualsSign ( (lv_body_9_0= ruleExpression ) ) ) ) this_FULL_STOP_10= RULE_FULL_STOP ) + // InternalSolverLanguageParser.g:453:3: this_Expression_0= ruleExpression ( ( () (otherlv_2= Colon ( (lv_range_3_0= ruleExpression ) ) )? ) | ( () otherlv_5= ColonHyphenMinus ( (lv_body_6_0= ruleExpression ) ) ) | ( () otherlv_8= ColonEqualsSign ( (lv_body_9_0= ruleExpression ) ) ) ) this_FULL_STOP_10= RULE_FULL_STOP + { + + newCompositeNode(grammarAccess.getAssertionOrDefinitionAccess().getExpressionParserRuleCall_0()); + + pushFollow(FOLLOW_9); + this_Expression_0=ruleExpression(); + + state._fsp--; + + + current = this_Expression_0; + afterParserOrEnumRuleCall(); + + // InternalSolverLanguageParser.g:461:3: ( ( () (otherlv_2= Colon ( (lv_range_3_0= ruleExpression ) ) )? ) | ( () otherlv_5= ColonHyphenMinus ( (lv_body_6_0= ruleExpression ) ) ) | ( () otherlv_8= ColonEqualsSign ( (lv_body_9_0= ruleExpression ) ) ) ) + int alt7=3; + switch ( input.LA(1) ) { + case Colon: + case RULE_FULL_STOP: + { + alt7=1; + } + break; + case ColonHyphenMinus: + { + alt7=2; + } + break; + case ColonEqualsSign: + { + alt7=3; + } + break; + default: + NoViableAltException nvae = + new NoViableAltException("", 7, 0, input); + + throw nvae; + } + + switch (alt7) { + case 1 : + // InternalSolverLanguageParser.g:462:4: ( () (otherlv_2= Colon ( (lv_range_3_0= ruleExpression ) ) )? ) + { + // InternalSolverLanguageParser.g:462:4: ( () (otherlv_2= Colon ( (lv_range_3_0= ruleExpression ) ) )? ) + // InternalSolverLanguageParser.g:463:5: () (otherlv_2= Colon ( (lv_range_3_0= ruleExpression ) ) )? + { + // InternalSolverLanguageParser.g:463:5: () + // InternalSolverLanguageParser.g:464:6: + { + + current = forceCreateModelElementAndSet( + grammarAccess.getAssertionOrDefinitionAccess().getAssertionExpressionAction_1_0_0(), + current); + + + } + + // InternalSolverLanguageParser.g:470:5: (otherlv_2= Colon ( (lv_range_3_0= ruleExpression ) ) )? + int alt6=2; + int LA6_0 = input.LA(1); + + if ( (LA6_0==Colon) ) { + alt6=1; } + switch (alt6) { + case 1 : + // InternalSolverLanguageParser.g:471:6: otherlv_2= Colon ( (lv_range_3_0= ruleExpression ) ) + { + otherlv_2=(Token)match(input,Colon,FOLLOW_10); + + newLeafNode(otherlv_2, grammarAccess.getAssertionOrDefinitionAccess().getColonKeyword_1_0_1_0()); + + // InternalSolverLanguageParser.g:475:6: ( (lv_range_3_0= ruleExpression ) ) + // InternalSolverLanguageParser.g:476:7: (lv_range_3_0= ruleExpression ) + { + // InternalSolverLanguageParser.g:476:7: (lv_range_3_0= ruleExpression ) + // InternalSolverLanguageParser.g:477:8: lv_range_3_0= ruleExpression + { + + newCompositeNode(grammarAccess.getAssertionOrDefinitionAccess().getRangeExpressionParserRuleCall_1_0_1_1_0()); + + pushFollow(FOLLOW_4); + lv_range_3_0=ruleExpression(); + state._fsp--; + + + if (current==null) { + current = createModelElementForParent(grammarAccess.getAssertionOrDefinitionRule()); + } + set( + current, + "range", + lv_range_3_0, + "org.eclipse.viatra.solver.language.SolverLanguage.Expression"); + afterParserOrEnumRuleCall(); + + + } + + + } + + + } + break; } @@ -735,13 +1304,13 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } break; case 2 : - // InternalSolverLanguageParser.g:283:4: ( () otherlv_5= ColonHyphenMinus ( (lv_body_6_0= ruleExpression ) ) ) + // InternalSolverLanguageParser.g:497:4: ( () otherlv_5= ColonHyphenMinus ( (lv_body_6_0= ruleExpression ) ) ) { - // InternalSolverLanguageParser.g:283:4: ( () otherlv_5= ColonHyphenMinus ( (lv_body_6_0= ruleExpression ) ) ) - // InternalSolverLanguageParser.g:284:5: () otherlv_5= ColonHyphenMinus ( (lv_body_6_0= ruleExpression ) ) + // InternalSolverLanguageParser.g:497:4: ( () otherlv_5= ColonHyphenMinus ( (lv_body_6_0= ruleExpression ) ) ) + // InternalSolverLanguageParser.g:498:5: () otherlv_5= ColonHyphenMinus ( (lv_body_6_0= ruleExpression ) ) { - // InternalSolverLanguageParser.g:284:5: () - // InternalSolverLanguageParser.g:285:6: + // InternalSolverLanguageParser.g:498:5: () + // InternalSolverLanguageParser.g:499:6: { current = forceCreateModelElementAndSet( @@ -751,20 +1320,20 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } - otherlv_5=(Token)match(input,ColonHyphenMinus,FOLLOW_6); + otherlv_5=(Token)match(input,ColonHyphenMinus,FOLLOW_10); newLeafNode(otherlv_5, grammarAccess.getAssertionOrDefinitionAccess().getColonHyphenMinusKeyword_1_1_1()); - // InternalSolverLanguageParser.g:295:5: ( (lv_body_6_0= ruleExpression ) ) - // InternalSolverLanguageParser.g:296:6: (lv_body_6_0= ruleExpression ) + // InternalSolverLanguageParser.g:509:5: ( (lv_body_6_0= ruleExpression ) ) + // InternalSolverLanguageParser.g:510:6: (lv_body_6_0= ruleExpression ) { - // InternalSolverLanguageParser.g:296:6: (lv_body_6_0= ruleExpression ) - // InternalSolverLanguageParser.g:297:7: lv_body_6_0= ruleExpression + // InternalSolverLanguageParser.g:510:6: (lv_body_6_0= ruleExpression ) + // InternalSolverLanguageParser.g:511:7: lv_body_6_0= ruleExpression { newCompositeNode(grammarAccess.getAssertionOrDefinitionAccess().getBodyExpressionParserRuleCall_1_1_2_0()); - pushFollow(FOLLOW_2); + pushFollow(FOLLOW_4); lv_body_6_0=ruleExpression(); state._fsp--; @@ -793,36 +1362,36 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } break; case 3 : - // InternalSolverLanguageParser.g:316:4: ( () otherlv_8= EqualsSign ( (lv_body_9_0= ruleExpression ) ) ) + // InternalSolverLanguageParser.g:530:4: ( () otherlv_8= ColonEqualsSign ( (lv_body_9_0= ruleExpression ) ) ) { - // InternalSolverLanguageParser.g:316:4: ( () otherlv_8= EqualsSign ( (lv_body_9_0= ruleExpression ) ) ) - // InternalSolverLanguageParser.g:317:5: () otherlv_8= EqualsSign ( (lv_body_9_0= ruleExpression ) ) + // InternalSolverLanguageParser.g:530:4: ( () otherlv_8= ColonEqualsSign ( (lv_body_9_0= ruleExpression ) ) ) + // InternalSolverLanguageParser.g:531:5: () otherlv_8= ColonEqualsSign ( (lv_body_9_0= ruleExpression ) ) { - // InternalSolverLanguageParser.g:317:5: () - // InternalSolverLanguageParser.g:318:6: + // InternalSolverLanguageParser.g:531:5: () + // InternalSolverLanguageParser.g:532:6: { current = forceCreateModelElementAndSet( - grammarAccess.getAssertionOrDefinitionAccess().getMetricDefinitionHeadAction_1_2_0(), + grammarAccess.getAssertionOrDefinitionAccess().getFunctionDefinitionHeadAction_1_2_0(), current); } - otherlv_8=(Token)match(input,EqualsSign,FOLLOW_6); + otherlv_8=(Token)match(input,ColonEqualsSign,FOLLOW_10); - newLeafNode(otherlv_8, grammarAccess.getAssertionOrDefinitionAccess().getEqualsSignKeyword_1_2_1()); + newLeafNode(otherlv_8, grammarAccess.getAssertionOrDefinitionAccess().getColonEqualsSignKeyword_1_2_1()); - // InternalSolverLanguageParser.g:328:5: ( (lv_body_9_0= ruleExpression ) ) - // InternalSolverLanguageParser.g:329:6: (lv_body_9_0= ruleExpression ) + // InternalSolverLanguageParser.g:542:5: ( (lv_body_9_0= ruleExpression ) ) + // InternalSolverLanguageParser.g:543:6: (lv_body_9_0= ruleExpression ) { - // InternalSolverLanguageParser.g:329:6: (lv_body_9_0= ruleExpression ) - // InternalSolverLanguageParser.g:330:7: lv_body_9_0= ruleExpression + // InternalSolverLanguageParser.g:543:6: (lv_body_9_0= ruleExpression ) + // InternalSolverLanguageParser.g:544:7: lv_body_9_0= ruleExpression { newCompositeNode(grammarAccess.getAssertionOrDefinitionAccess().getBodyExpressionParserRuleCall_1_2_2_0()); - pushFollow(FOLLOW_2); + pushFollow(FOLLOW_4); lv_body_9_0=ruleExpression(); state._fsp--; @@ -853,6 +1422,10 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } + this_FULL_STOP_10=(Token)match(input,RULE_FULL_STOP,FOLLOW_2); + + newLeafNode(this_FULL_STOP_10, grammarAccess.getAssertionOrDefinitionAccess().getFULL_STOPTerminalRuleCall_2()); + } @@ -876,7 +1449,7 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { // $ANTLR start "entryRulePredicateDefinition" - // InternalSolverLanguageParser.g:353:1: entryRulePredicateDefinition returns [EObject current=null] : iv_rulePredicateDefinition= rulePredicateDefinition EOF ; + // InternalSolverLanguageParser.g:571:1: entryRulePredicateDefinition returns [EObject current=null] : iv_rulePredicateDefinition= rulePredicateDefinition EOF ; public final EObject entryRulePredicateDefinition() throws RecognitionException { EObject current = null; @@ -884,8 +1457,8 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { try { - // InternalSolverLanguageParser.g:353:60: (iv_rulePredicateDefinition= rulePredicateDefinition EOF ) - // InternalSolverLanguageParser.g:354:2: iv_rulePredicateDefinition= rulePredicateDefinition EOF + // InternalSolverLanguageParser.g:571:60: (iv_rulePredicateDefinition= rulePredicateDefinition EOF ) + // InternalSolverLanguageParser.g:572:2: iv_rulePredicateDefinition= rulePredicateDefinition EOF { newCompositeNode(grammarAccess.getPredicateDefinitionRule()); pushFollow(FOLLOW_1); @@ -912,7 +1485,7 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { // $ANTLR start "rulePredicateDefinition" - // InternalSolverLanguageParser.g:360:1: rulePredicateDefinition returns [EObject current=null] : ( ( ( ( (lv_functional_0_0= Functional ) ) ( (lv_error_1_0= Error ) )? ) | ( ( (lv_error_2_0= Error ) ) ( (lv_functional_3_0= Functional ) )? ) ) ( (lv_head_4_0= ruleCall ) ) otherlv_5= ColonHyphenMinus ( (lv_body_6_0= ruleExpression ) ) ) ; + // InternalSolverLanguageParser.g:578:1: rulePredicateDefinition returns [EObject current=null] : ( ( ( ( (lv_functional_0_0= Functional ) ) ( (lv_error_1_0= Error ) )? ) | ( ( (lv_error_2_0= Error ) ) ( (lv_functional_3_0= Functional ) )? ) ) ( (lv_head_4_0= ruleCall ) ) otherlv_5= ColonHyphenMinus ( (lv_body_6_0= ruleExpression ) ) this_FULL_STOP_7= RULE_FULL_STOP ) ; public final EObject rulePredicateDefinition() throws RecognitionException { EObject current = null; @@ -921,6 +1494,7 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { Token lv_error_2_0=null; Token lv_functional_3_0=null; Token otherlv_5=null; + Token this_FULL_STOP_7=null; EObject lv_head_4_0 = null; EObject lv_body_6_0 = null; @@ -930,42 +1504,42 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { enterRule(); try { - // InternalSolverLanguageParser.g:366:2: ( ( ( ( ( (lv_functional_0_0= Functional ) ) ( (lv_error_1_0= Error ) )? ) | ( ( (lv_error_2_0= Error ) ) ( (lv_functional_3_0= Functional ) )? ) ) ( (lv_head_4_0= ruleCall ) ) otherlv_5= ColonHyphenMinus ( (lv_body_6_0= ruleExpression ) ) ) ) - // InternalSolverLanguageParser.g:367:2: ( ( ( ( (lv_functional_0_0= Functional ) ) ( (lv_error_1_0= Error ) )? ) | ( ( (lv_error_2_0= Error ) ) ( (lv_functional_3_0= Functional ) )? ) ) ( (lv_head_4_0= ruleCall ) ) otherlv_5= ColonHyphenMinus ( (lv_body_6_0= ruleExpression ) ) ) + // InternalSolverLanguageParser.g:584:2: ( ( ( ( ( (lv_functional_0_0= Functional ) ) ( (lv_error_1_0= Error ) )? ) | ( ( (lv_error_2_0= Error ) ) ( (lv_functional_3_0= Functional ) )? ) ) ( (lv_head_4_0= ruleCall ) ) otherlv_5= ColonHyphenMinus ( (lv_body_6_0= ruleExpression ) ) this_FULL_STOP_7= RULE_FULL_STOP ) ) + // InternalSolverLanguageParser.g:585:2: ( ( ( ( (lv_functional_0_0= Functional ) ) ( (lv_error_1_0= Error ) )? ) | ( ( (lv_error_2_0= Error ) ) ( (lv_functional_3_0= Functional ) )? ) ) ( (lv_head_4_0= ruleCall ) ) otherlv_5= ColonHyphenMinus ( (lv_body_6_0= ruleExpression ) ) this_FULL_STOP_7= RULE_FULL_STOP ) { - // InternalSolverLanguageParser.g:367:2: ( ( ( ( (lv_functional_0_0= Functional ) ) ( (lv_error_1_0= Error ) )? ) | ( ( (lv_error_2_0= Error ) ) ( (lv_functional_3_0= Functional ) )? ) ) ( (lv_head_4_0= ruleCall ) ) otherlv_5= ColonHyphenMinus ( (lv_body_6_0= ruleExpression ) ) ) - // InternalSolverLanguageParser.g:368:3: ( ( ( (lv_functional_0_0= Functional ) ) ( (lv_error_1_0= Error ) )? ) | ( ( (lv_error_2_0= Error ) ) ( (lv_functional_3_0= Functional ) )? ) ) ( (lv_head_4_0= ruleCall ) ) otherlv_5= ColonHyphenMinus ( (lv_body_6_0= ruleExpression ) ) + // InternalSolverLanguageParser.g:585:2: ( ( ( ( (lv_functional_0_0= Functional ) ) ( (lv_error_1_0= Error ) )? ) | ( ( (lv_error_2_0= Error ) ) ( (lv_functional_3_0= Functional ) )? ) ) ( (lv_head_4_0= ruleCall ) ) otherlv_5= ColonHyphenMinus ( (lv_body_6_0= ruleExpression ) ) this_FULL_STOP_7= RULE_FULL_STOP ) + // InternalSolverLanguageParser.g:586:3: ( ( ( (lv_functional_0_0= Functional ) ) ( (lv_error_1_0= Error ) )? ) | ( ( (lv_error_2_0= Error ) ) ( (lv_functional_3_0= Functional ) )? ) ) ( (lv_head_4_0= ruleCall ) ) otherlv_5= ColonHyphenMinus ( (lv_body_6_0= ruleExpression ) ) this_FULL_STOP_7= RULE_FULL_STOP { - // InternalSolverLanguageParser.g:368:3: ( ( ( (lv_functional_0_0= Functional ) ) ( (lv_error_1_0= Error ) )? ) | ( ( (lv_error_2_0= Error ) ) ( (lv_functional_3_0= Functional ) )? ) ) - int alt6=2; - int LA6_0 = input.LA(1); + // InternalSolverLanguageParser.g:586:3: ( ( ( (lv_functional_0_0= Functional ) ) ( (lv_error_1_0= Error ) )? ) | ( ( (lv_error_2_0= Error ) ) ( (lv_functional_3_0= Functional ) )? ) ) + int alt10=2; + int LA10_0 = input.LA(1); - if ( (LA6_0==Functional) ) { - alt6=1; + if ( (LA10_0==Functional) ) { + alt10=1; } - else if ( (LA6_0==Error) ) { - alt6=2; + else if ( (LA10_0==Error) ) { + alt10=2; } else { NoViableAltException nvae = - new NoViableAltException("", 6, 0, input); + new NoViableAltException("", 10, 0, input); throw nvae; } - switch (alt6) { + switch (alt10) { case 1 : - // InternalSolverLanguageParser.g:369:4: ( ( (lv_functional_0_0= Functional ) ) ( (lv_error_1_0= Error ) )? ) + // InternalSolverLanguageParser.g:587:4: ( ( (lv_functional_0_0= Functional ) ) ( (lv_error_1_0= Error ) )? ) { - // InternalSolverLanguageParser.g:369:4: ( ( (lv_functional_0_0= Functional ) ) ( (lv_error_1_0= Error ) )? ) - // InternalSolverLanguageParser.g:370:5: ( (lv_functional_0_0= Functional ) ) ( (lv_error_1_0= Error ) )? + // InternalSolverLanguageParser.g:587:4: ( ( (lv_functional_0_0= Functional ) ) ( (lv_error_1_0= Error ) )? ) + // InternalSolverLanguageParser.g:588:5: ( (lv_functional_0_0= Functional ) ) ( (lv_error_1_0= Error ) )? { - // InternalSolverLanguageParser.g:370:5: ( (lv_functional_0_0= Functional ) ) - // InternalSolverLanguageParser.g:371:6: (lv_functional_0_0= Functional ) + // InternalSolverLanguageParser.g:588:5: ( (lv_functional_0_0= Functional ) ) + // InternalSolverLanguageParser.g:589:6: (lv_functional_0_0= Functional ) { - // InternalSolverLanguageParser.g:371:6: (lv_functional_0_0= Functional ) - // InternalSolverLanguageParser.g:372:7: lv_functional_0_0= Functional + // InternalSolverLanguageParser.g:589:6: (lv_functional_0_0= Functional ) + // InternalSolverLanguageParser.g:590:7: lv_functional_0_0= Functional { - lv_functional_0_0=(Token)match(input,Functional,FOLLOW_7); + lv_functional_0_0=(Token)match(input,Functional,FOLLOW_11); newLeafNode(lv_functional_0_0, grammarAccess.getPredicateDefinitionAccess().getFunctionalFunctionalKeyword_0_0_0_0()); @@ -981,21 +1555,21 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } - // InternalSolverLanguageParser.g:384:5: ( (lv_error_1_0= Error ) )? - int alt4=2; - int LA4_0 = input.LA(1); + // InternalSolverLanguageParser.g:602:5: ( (lv_error_1_0= Error ) )? + int alt8=2; + int LA8_0 = input.LA(1); - if ( (LA4_0==Error) ) { - alt4=1; + if ( (LA8_0==Error) ) { + alt8=1; } - switch (alt4) { + switch (alt8) { case 1 : - // InternalSolverLanguageParser.g:385:6: (lv_error_1_0= Error ) + // InternalSolverLanguageParser.g:603:6: (lv_error_1_0= Error ) { - // InternalSolverLanguageParser.g:385:6: (lv_error_1_0= Error ) - // InternalSolverLanguageParser.g:386:7: lv_error_1_0= Error + // InternalSolverLanguageParser.g:603:6: (lv_error_1_0= Error ) + // InternalSolverLanguageParser.g:604:7: lv_error_1_0= Error { - lv_error_1_0=(Token)match(input,Error,FOLLOW_8); + lv_error_1_0=(Token)match(input,Error,FOLLOW_12); newLeafNode(lv_error_1_0, grammarAccess.getPredicateDefinitionAccess().getErrorErrorKeyword_0_0_1_0()); @@ -1021,18 +1595,18 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } break; case 2 : - // InternalSolverLanguageParser.g:400:4: ( ( (lv_error_2_0= Error ) ) ( (lv_functional_3_0= Functional ) )? ) + // InternalSolverLanguageParser.g:618:4: ( ( (lv_error_2_0= Error ) ) ( (lv_functional_3_0= Functional ) )? ) { - // InternalSolverLanguageParser.g:400:4: ( ( (lv_error_2_0= Error ) ) ( (lv_functional_3_0= Functional ) )? ) - // InternalSolverLanguageParser.g:401:5: ( (lv_error_2_0= Error ) ) ( (lv_functional_3_0= Functional ) )? + // InternalSolverLanguageParser.g:618:4: ( ( (lv_error_2_0= Error ) ) ( (lv_functional_3_0= Functional ) )? ) + // InternalSolverLanguageParser.g:619:5: ( (lv_error_2_0= Error ) ) ( (lv_functional_3_0= Functional ) )? { - // InternalSolverLanguageParser.g:401:5: ( (lv_error_2_0= Error ) ) - // InternalSolverLanguageParser.g:402:6: (lv_error_2_0= Error ) + // InternalSolverLanguageParser.g:619:5: ( (lv_error_2_0= Error ) ) + // InternalSolverLanguageParser.g:620:6: (lv_error_2_0= Error ) { - // InternalSolverLanguageParser.g:402:6: (lv_error_2_0= Error ) - // InternalSolverLanguageParser.g:403:7: lv_error_2_0= Error + // InternalSolverLanguageParser.g:620:6: (lv_error_2_0= Error ) + // InternalSolverLanguageParser.g:621:7: lv_error_2_0= Error { - lv_error_2_0=(Token)match(input,Error,FOLLOW_9); + lv_error_2_0=(Token)match(input,Error,FOLLOW_13); newLeafNode(lv_error_2_0, grammarAccess.getPredicateDefinitionAccess().getErrorErrorKeyword_0_1_0_0()); @@ -1048,71 +1622,226 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } - // InternalSolverLanguageParser.g:415:5: ( (lv_functional_3_0= Functional ) )? - int alt5=2; - int LA5_0 = input.LA(1); + // InternalSolverLanguageParser.g:633:5: ( (lv_functional_3_0= Functional ) )? + int alt9=2; + int LA9_0 = input.LA(1); - if ( (LA5_0==Functional) ) { - alt5=1; + if ( (LA9_0==Functional) ) { + alt9=1; } - switch (alt5) { + switch (alt9) { case 1 : - // InternalSolverLanguageParser.g:416:6: (lv_functional_3_0= Functional ) + // InternalSolverLanguageParser.g:634:6: (lv_functional_3_0= Functional ) { - // InternalSolverLanguageParser.g:416:6: (lv_functional_3_0= Functional ) - // InternalSolverLanguageParser.g:417:7: lv_functional_3_0= Functional + // InternalSolverLanguageParser.g:634:6: (lv_functional_3_0= Functional ) + // InternalSolverLanguageParser.g:635:7: lv_functional_3_0= Functional { - lv_functional_3_0=(Token)match(input,Functional,FOLLOW_8); + lv_functional_3_0=(Token)match(input,Functional,FOLLOW_12); + + newLeafNode(lv_functional_3_0, grammarAccess.getPredicateDefinitionAccess().getFunctionalFunctionalKeyword_0_1_1_0()); + + + if (current==null) { + current = createModelElement(grammarAccess.getPredicateDefinitionRule()); + } + setWithLastConsumed(current, "functional", true, "functional"); + + + } + + + } + break; + + } + + + } + + + } + break; + + } + + // InternalSolverLanguageParser.g:649:3: ( (lv_head_4_0= ruleCall ) ) + // InternalSolverLanguageParser.g:650:4: (lv_head_4_0= ruleCall ) + { + // InternalSolverLanguageParser.g:650:4: (lv_head_4_0= ruleCall ) + // InternalSolverLanguageParser.g:651:5: lv_head_4_0= ruleCall + { + + newCompositeNode(grammarAccess.getPredicateDefinitionAccess().getHeadCallParserRuleCall_1_0()); + + pushFollow(FOLLOW_14); + lv_head_4_0=ruleCall(); + + state._fsp--; + + + if (current==null) { + current = createModelElementForParent(grammarAccess.getPredicateDefinitionRule()); + } + set( + current, + "head", + lv_head_4_0, + "org.eclipse.viatra.solver.language.SolverLanguage.Call"); + afterParserOrEnumRuleCall(); + + + } + + + } + + otherlv_5=(Token)match(input,ColonHyphenMinus,FOLLOW_10); + + newLeafNode(otherlv_5, grammarAccess.getPredicateDefinitionAccess().getColonHyphenMinusKeyword_2()); + + // InternalSolverLanguageParser.g:672:3: ( (lv_body_6_0= ruleExpression ) ) + // InternalSolverLanguageParser.g:673:4: (lv_body_6_0= ruleExpression ) + { + // InternalSolverLanguageParser.g:673:4: (lv_body_6_0= ruleExpression ) + // InternalSolverLanguageParser.g:674:5: lv_body_6_0= ruleExpression + { + + newCompositeNode(grammarAccess.getPredicateDefinitionAccess().getBodyExpressionParserRuleCall_3_0()); + + pushFollow(FOLLOW_4); + lv_body_6_0=ruleExpression(); + + state._fsp--; + + + if (current==null) { + current = createModelElementForParent(grammarAccess.getPredicateDefinitionRule()); + } + set( + current, + "body", + lv_body_6_0, + "org.eclipse.viatra.solver.language.SolverLanguage.Expression"); + afterParserOrEnumRuleCall(); + + + } + + + } + + this_FULL_STOP_7=(Token)match(input,RULE_FULL_STOP,FOLLOW_2); + + newLeafNode(this_FULL_STOP_7, grammarAccess.getPredicateDefinitionAccess().getFULL_STOPTerminalRuleCall_4()); + + + } + + + } + + + leaveRule(); + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "rulePredicateDefinition" + + + // $ANTLR start "entryRuleUnnamedErrorPredicateDefintion" + // InternalSolverLanguageParser.g:699:1: entryRuleUnnamedErrorPredicateDefintion returns [EObject current=null] : iv_ruleUnnamedErrorPredicateDefintion= ruleUnnamedErrorPredicateDefintion EOF ; + public final EObject entryRuleUnnamedErrorPredicateDefintion() throws RecognitionException { + EObject current = null; + + EObject iv_ruleUnnamedErrorPredicateDefintion = null; + + + try { + // InternalSolverLanguageParser.g:699:71: (iv_ruleUnnamedErrorPredicateDefintion= ruleUnnamedErrorPredicateDefintion EOF ) + // InternalSolverLanguageParser.g:700:2: iv_ruleUnnamedErrorPredicateDefintion= ruleUnnamedErrorPredicateDefintion EOF + { + newCompositeNode(grammarAccess.getUnnamedErrorPredicateDefintionRule()); + pushFollow(FOLLOW_1); + iv_ruleUnnamedErrorPredicateDefintion=ruleUnnamedErrorPredicateDefintion(); + + state._fsp--; + + current =iv_ruleUnnamedErrorPredicateDefintion; + match(input,EOF,FOLLOW_2); - newLeafNode(lv_functional_3_0, grammarAccess.getPredicateDefinitionAccess().getFunctionalFunctionalKeyword_0_1_1_0()); - + } - if (current==null) { - current = createModelElement(grammarAccess.getPredicateDefinitionRule()); - } - setWithLastConsumed(current, "functional", true, "functional"); - + } - } + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleUnnamedErrorPredicateDefintion" - } - break; + // $ANTLR start "ruleUnnamedErrorPredicateDefintion" + // InternalSolverLanguageParser.g:706:1: ruleUnnamedErrorPredicateDefintion returns [EObject current=null] : (otherlv_0= Error ( (lv_argumentList_1_0= ruleArgumentList ) ) otherlv_2= ColonHyphenMinus ( (lv_body_3_0= ruleExpression ) ) this_FULL_STOP_4= RULE_FULL_STOP ) ; + public final EObject ruleUnnamedErrorPredicateDefintion() throws RecognitionException { + EObject current = null; - } + Token otherlv_0=null; + Token otherlv_2=null; + Token this_FULL_STOP_4=null; + EObject lv_argumentList_1_0 = null; + EObject lv_body_3_0 = null; - } - } - break; + enterRule(); - } + try { + // InternalSolverLanguageParser.g:712:2: ( (otherlv_0= Error ( (lv_argumentList_1_0= ruleArgumentList ) ) otherlv_2= ColonHyphenMinus ( (lv_body_3_0= ruleExpression ) ) this_FULL_STOP_4= RULE_FULL_STOP ) ) + // InternalSolverLanguageParser.g:713:2: (otherlv_0= Error ( (lv_argumentList_1_0= ruleArgumentList ) ) otherlv_2= ColonHyphenMinus ( (lv_body_3_0= ruleExpression ) ) this_FULL_STOP_4= RULE_FULL_STOP ) + { + // InternalSolverLanguageParser.g:713:2: (otherlv_0= Error ( (lv_argumentList_1_0= ruleArgumentList ) ) otherlv_2= ColonHyphenMinus ( (lv_body_3_0= ruleExpression ) ) this_FULL_STOP_4= RULE_FULL_STOP ) + // InternalSolverLanguageParser.g:714:3: otherlv_0= Error ( (lv_argumentList_1_0= ruleArgumentList ) ) otherlv_2= ColonHyphenMinus ( (lv_body_3_0= ruleExpression ) ) this_FULL_STOP_4= RULE_FULL_STOP + { + otherlv_0=(Token)match(input,Error,FOLLOW_15); - // InternalSolverLanguageParser.g:431:3: ( (lv_head_4_0= ruleCall ) ) - // InternalSolverLanguageParser.g:432:4: (lv_head_4_0= ruleCall ) + newLeafNode(otherlv_0, grammarAccess.getUnnamedErrorPredicateDefintionAccess().getErrorKeyword_0()); + + // InternalSolverLanguageParser.g:718:3: ( (lv_argumentList_1_0= ruleArgumentList ) ) + // InternalSolverLanguageParser.g:719:4: (lv_argumentList_1_0= ruleArgumentList ) { - // InternalSolverLanguageParser.g:432:4: (lv_head_4_0= ruleCall ) - // InternalSolverLanguageParser.g:433:5: lv_head_4_0= ruleCall + // InternalSolverLanguageParser.g:719:4: (lv_argumentList_1_0= ruleArgumentList ) + // InternalSolverLanguageParser.g:720:5: lv_argumentList_1_0= ruleArgumentList { - newCompositeNode(grammarAccess.getPredicateDefinitionAccess().getHeadCallParserRuleCall_1_0()); + newCompositeNode(grammarAccess.getUnnamedErrorPredicateDefintionAccess().getArgumentListArgumentListParserRuleCall_1_0()); - pushFollow(FOLLOW_10); - lv_head_4_0=ruleCall(); + pushFollow(FOLLOW_14); + lv_argumentList_1_0=ruleArgumentList(); state._fsp--; if (current==null) { - current = createModelElementForParent(grammarAccess.getPredicateDefinitionRule()); + current = createModelElementForParent(grammarAccess.getUnnamedErrorPredicateDefintionRule()); } set( current, - "head", - lv_head_4_0, - "org.eclipse.viatra.solver.language.SolverLanguage.Call"); + "argumentList", + lv_argumentList_1_0, + "org.eclipse.viatra.solver.language.SolverLanguage.ArgumentList"); afterParserOrEnumRuleCall(); @@ -1121,32 +1850,32 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } - otherlv_5=(Token)match(input,ColonHyphenMinus,FOLLOW_6); + otherlv_2=(Token)match(input,ColonHyphenMinus,FOLLOW_10); - newLeafNode(otherlv_5, grammarAccess.getPredicateDefinitionAccess().getColonHyphenMinusKeyword_2()); + newLeafNode(otherlv_2, grammarAccess.getUnnamedErrorPredicateDefintionAccess().getColonHyphenMinusKeyword_2()); - // InternalSolverLanguageParser.g:454:3: ( (lv_body_6_0= ruleExpression ) ) - // InternalSolverLanguageParser.g:455:4: (lv_body_6_0= ruleExpression ) + // InternalSolverLanguageParser.g:741:3: ( (lv_body_3_0= ruleExpression ) ) + // InternalSolverLanguageParser.g:742:4: (lv_body_3_0= ruleExpression ) { - // InternalSolverLanguageParser.g:455:4: (lv_body_6_0= ruleExpression ) - // InternalSolverLanguageParser.g:456:5: lv_body_6_0= ruleExpression + // InternalSolverLanguageParser.g:742:4: (lv_body_3_0= ruleExpression ) + // InternalSolverLanguageParser.g:743:5: lv_body_3_0= ruleExpression { - newCompositeNode(grammarAccess.getPredicateDefinitionAccess().getBodyExpressionParserRuleCall_3_0()); + newCompositeNode(grammarAccess.getUnnamedErrorPredicateDefintionAccess().getBodyExpressionParserRuleCall_3_0()); - pushFollow(FOLLOW_2); - lv_body_6_0=ruleExpression(); + pushFollow(FOLLOW_4); + lv_body_3_0=ruleExpression(); state._fsp--; if (current==null) { - current = createModelElementForParent(grammarAccess.getPredicateDefinitionRule()); + current = createModelElementForParent(grammarAccess.getUnnamedErrorPredicateDefintionRule()); } set( current, "body", - lv_body_6_0, + lv_body_3_0, "org.eclipse.viatra.solver.language.SolverLanguage.Expression"); afterParserOrEnumRuleCall(); @@ -1156,6 +1885,10 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } + this_FULL_STOP_4=(Token)match(input,RULE_FULL_STOP,FOLLOW_2); + + newLeafNode(this_FULL_STOP_4, grammarAccess.getUnnamedErrorPredicateDefintionAccess().getFULL_STOPTerminalRuleCall_4()); + } @@ -1175,28 +1908,28 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } return current; } - // $ANTLR end "rulePredicateDefinition" + // $ANTLR end "ruleUnnamedErrorPredicateDefintion" - // $ANTLR start "entryRuleUnnamedErrorPrediateDefinition" - // InternalSolverLanguageParser.g:477:1: entryRuleUnnamedErrorPrediateDefinition returns [EObject current=null] : iv_ruleUnnamedErrorPrediateDefinition= ruleUnnamedErrorPrediateDefinition EOF ; - public final EObject entryRuleUnnamedErrorPrediateDefinition() throws RecognitionException { + // $ANTLR start "entryRuleDefaultAssertion" + // InternalSolverLanguageParser.g:768:1: entryRuleDefaultAssertion returns [EObject current=null] : iv_ruleDefaultAssertion= ruleDefaultAssertion EOF ; + public final EObject entryRuleDefaultAssertion() throws RecognitionException { EObject current = null; - EObject iv_ruleUnnamedErrorPrediateDefinition = null; + EObject iv_ruleDefaultAssertion = null; try { - // InternalSolverLanguageParser.g:477:71: (iv_ruleUnnamedErrorPrediateDefinition= ruleUnnamedErrorPrediateDefinition EOF ) - // InternalSolverLanguageParser.g:478:2: iv_ruleUnnamedErrorPrediateDefinition= ruleUnnamedErrorPrediateDefinition EOF + // InternalSolverLanguageParser.g:768:57: (iv_ruleDefaultAssertion= ruleDefaultAssertion EOF ) + // InternalSolverLanguageParser.g:769:2: iv_ruleDefaultAssertion= ruleDefaultAssertion EOF { - newCompositeNode(grammarAccess.getUnnamedErrorPrediateDefinitionRule()); + newCompositeNode(grammarAccess.getDefaultAssertionRule()); pushFollow(FOLLOW_1); - iv_ruleUnnamedErrorPrediateDefinition=ruleUnnamedErrorPrediateDefinition(); + iv_ruleDefaultAssertion=ruleDefaultAssertion(); state._fsp--; - current =iv_ruleUnnamedErrorPrediateDefinition; + current =iv_ruleDefaultAssertion; match(input,EOF,FOLLOW_2); } @@ -1211,58 +1944,59 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } return current; } - // $ANTLR end "entryRuleUnnamedErrorPrediateDefinition" + // $ANTLR end "entryRuleDefaultAssertion" - // $ANTLR start "ruleUnnamedErrorPrediateDefinition" - // InternalSolverLanguageParser.g:484:1: ruleUnnamedErrorPrediateDefinition returns [EObject current=null] : (otherlv_0= Error ( (lv_argumentList_1_0= ruleArgumentList ) ) otherlv_2= ColonHyphenMinus ( (lv_body_3_0= ruleExpression ) ) ) ; - public final EObject ruleUnnamedErrorPrediateDefinition() throws RecognitionException { + // $ANTLR start "ruleDefaultAssertion" + // InternalSolverLanguageParser.g:775:1: ruleDefaultAssertion returns [EObject current=null] : (otherlv_0= Default ( (lv_expression_1_0= ruleCall ) ) (otherlv_2= Colon ( (lv_range_3_0= ruleExpression ) ) )? this_FULL_STOP_4= RULE_FULL_STOP ) ; + public final EObject ruleDefaultAssertion() throws RecognitionException { EObject current = null; Token otherlv_0=null; Token otherlv_2=null; - EObject lv_argumentList_1_0 = null; + Token this_FULL_STOP_4=null; + EObject lv_expression_1_0 = null; - EObject lv_body_3_0 = null; + EObject lv_range_3_0 = null; enterRule(); try { - // InternalSolverLanguageParser.g:490:2: ( (otherlv_0= Error ( (lv_argumentList_1_0= ruleArgumentList ) ) otherlv_2= ColonHyphenMinus ( (lv_body_3_0= ruleExpression ) ) ) ) - // InternalSolverLanguageParser.g:491:2: (otherlv_0= Error ( (lv_argumentList_1_0= ruleArgumentList ) ) otherlv_2= ColonHyphenMinus ( (lv_body_3_0= ruleExpression ) ) ) + // InternalSolverLanguageParser.g:781:2: ( (otherlv_0= Default ( (lv_expression_1_0= ruleCall ) ) (otherlv_2= Colon ( (lv_range_3_0= ruleExpression ) ) )? this_FULL_STOP_4= RULE_FULL_STOP ) ) + // InternalSolverLanguageParser.g:782:2: (otherlv_0= Default ( (lv_expression_1_0= ruleCall ) ) (otherlv_2= Colon ( (lv_range_3_0= ruleExpression ) ) )? this_FULL_STOP_4= RULE_FULL_STOP ) { - // InternalSolverLanguageParser.g:491:2: (otherlv_0= Error ( (lv_argumentList_1_0= ruleArgumentList ) ) otherlv_2= ColonHyphenMinus ( (lv_body_3_0= ruleExpression ) ) ) - // InternalSolverLanguageParser.g:492:3: otherlv_0= Error ( (lv_argumentList_1_0= ruleArgumentList ) ) otherlv_2= ColonHyphenMinus ( (lv_body_3_0= ruleExpression ) ) + // InternalSolverLanguageParser.g:782:2: (otherlv_0= Default ( (lv_expression_1_0= ruleCall ) ) (otherlv_2= Colon ( (lv_range_3_0= ruleExpression ) ) )? this_FULL_STOP_4= RULE_FULL_STOP ) + // InternalSolverLanguageParser.g:783:3: otherlv_0= Default ( (lv_expression_1_0= ruleCall ) ) (otherlv_2= Colon ( (lv_range_3_0= ruleExpression ) ) )? this_FULL_STOP_4= RULE_FULL_STOP { - otherlv_0=(Token)match(input,Error,FOLLOW_11); + otherlv_0=(Token)match(input,Default,FOLLOW_12); - newLeafNode(otherlv_0, grammarAccess.getUnnamedErrorPrediateDefinitionAccess().getErrorKeyword_0()); + newLeafNode(otherlv_0, grammarAccess.getDefaultAssertionAccess().getDefaultKeyword_0()); - // InternalSolverLanguageParser.g:496:3: ( (lv_argumentList_1_0= ruleArgumentList ) ) - // InternalSolverLanguageParser.g:497:4: (lv_argumentList_1_0= ruleArgumentList ) + // InternalSolverLanguageParser.g:787:3: ( (lv_expression_1_0= ruleCall ) ) + // InternalSolverLanguageParser.g:788:4: (lv_expression_1_0= ruleCall ) { - // InternalSolverLanguageParser.g:497:4: (lv_argumentList_1_0= ruleArgumentList ) - // InternalSolverLanguageParser.g:498:5: lv_argumentList_1_0= ruleArgumentList + // InternalSolverLanguageParser.g:788:4: (lv_expression_1_0= ruleCall ) + // InternalSolverLanguageParser.g:789:5: lv_expression_1_0= ruleCall { - newCompositeNode(grammarAccess.getUnnamedErrorPrediateDefinitionAccess().getArgumentListArgumentListParserRuleCall_1_0()); + newCompositeNode(grammarAccess.getDefaultAssertionAccess().getExpressionCallParserRuleCall_1_0()); - pushFollow(FOLLOW_10); - lv_argumentList_1_0=ruleArgumentList(); + pushFollow(FOLLOW_16); + lv_expression_1_0=ruleCall(); state._fsp--; if (current==null) { - current = createModelElementForParent(grammarAccess.getUnnamedErrorPrediateDefinitionRule()); + current = createModelElementForParent(grammarAccess.getDefaultAssertionRule()); } set( current, - "argumentList", - lv_argumentList_1_0, - "org.eclipse.viatra.solver.language.SolverLanguage.ArgumentList"); + "expression", + lv_expression_1_0, + "org.eclipse.viatra.solver.language.SolverLanguage.Call"); afterParserOrEnumRuleCall(); @@ -1271,41 +2005,62 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } - otherlv_2=(Token)match(input,ColonHyphenMinus,FOLLOW_6); + // InternalSolverLanguageParser.g:806:3: (otherlv_2= Colon ( (lv_range_3_0= ruleExpression ) ) )? + int alt11=2; + int LA11_0 = input.LA(1); - newLeafNode(otherlv_2, grammarAccess.getUnnamedErrorPrediateDefinitionAccess().getColonHyphenMinusKeyword_2()); - - // InternalSolverLanguageParser.g:519:3: ( (lv_body_3_0= ruleExpression ) ) - // InternalSolverLanguageParser.g:520:4: (lv_body_3_0= ruleExpression ) - { - // InternalSolverLanguageParser.g:520:4: (lv_body_3_0= ruleExpression ) - // InternalSolverLanguageParser.g:521:5: lv_body_3_0= ruleExpression - { + if ( (LA11_0==Colon) ) { + alt11=1; + } + switch (alt11) { + case 1 : + // InternalSolverLanguageParser.g:807:4: otherlv_2= Colon ( (lv_range_3_0= ruleExpression ) ) + { + otherlv_2=(Token)match(input,Colon,FOLLOW_10); - newCompositeNode(grammarAccess.getUnnamedErrorPrediateDefinitionAccess().getBodyExpressionParserRuleCall_3_0()); - - pushFollow(FOLLOW_2); - lv_body_3_0=ruleExpression(); + newLeafNode(otherlv_2, grammarAccess.getDefaultAssertionAccess().getColonKeyword_2_0()); + + // InternalSolverLanguageParser.g:811:4: ( (lv_range_3_0= ruleExpression ) ) + // InternalSolverLanguageParser.g:812:5: (lv_range_3_0= ruleExpression ) + { + // InternalSolverLanguageParser.g:812:5: (lv_range_3_0= ruleExpression ) + // InternalSolverLanguageParser.g:813:6: lv_range_3_0= ruleExpression + { - state._fsp--; + newCompositeNode(grammarAccess.getDefaultAssertionAccess().getRangeExpressionParserRuleCall_2_1_0()); + + pushFollow(FOLLOW_4); + lv_range_3_0=ruleExpression(); + state._fsp--; - if (current==null) { - current = createModelElementForParent(grammarAccess.getUnnamedErrorPrediateDefinitionRule()); - } - set( - current, - "body", - lv_body_3_0, - "org.eclipse.viatra.solver.language.SolverLanguage.Expression"); - afterParserOrEnumRuleCall(); - - } + if (current==null) { + current = createModelElementForParent(grammarAccess.getDefaultAssertionRule()); + } + set( + current, + "range", + lv_range_3_0, + "org.eclipse.viatra.solver.language.SolverLanguage.Expression"); + afterParserOrEnumRuleCall(); + + + } + + + } + + } + break; } + this_FULL_STOP_4=(Token)match(input,RULE_FULL_STOP,FOLLOW_2); + + newLeafNode(this_FULL_STOP_4, grammarAccess.getDefaultAssertionAccess().getFULL_STOPTerminalRuleCall_3()); + } @@ -1325,28 +2080,28 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } return current; } - // $ANTLR end "ruleUnnamedErrorPrediateDefinition" + // $ANTLR end "ruleDefaultAssertion" - // $ANTLR start "entryRuleDefaultDefinition" - // InternalSolverLanguageParser.g:542:1: entryRuleDefaultDefinition returns [EObject current=null] : iv_ruleDefaultDefinition= ruleDefaultDefinition EOF ; - public final EObject entryRuleDefaultDefinition() throws RecognitionException { + // $ANTLR start "entryRuleFunctionDefinition" + // InternalSolverLanguageParser.g:839:1: entryRuleFunctionDefinition returns [EObject current=null] : iv_ruleFunctionDefinition= ruleFunctionDefinition EOF ; + public final EObject entryRuleFunctionDefinition() throws RecognitionException { EObject current = null; - EObject iv_ruleDefaultDefinition = null; + EObject iv_ruleFunctionDefinition = null; try { - // InternalSolverLanguageParser.g:542:58: (iv_ruleDefaultDefinition= ruleDefaultDefinition EOF ) - // InternalSolverLanguageParser.g:543:2: iv_ruleDefaultDefinition= ruleDefaultDefinition EOF + // InternalSolverLanguageParser.g:839:59: (iv_ruleFunctionDefinition= ruleFunctionDefinition EOF ) + // InternalSolverLanguageParser.g:840:2: iv_ruleFunctionDefinition= ruleFunctionDefinition EOF { - newCompositeNode(grammarAccess.getDefaultDefinitionRule()); + newCompositeNode(grammarAccess.getFunctionDefinitionRule()); pushFollow(FOLLOW_1); - iv_ruleDefaultDefinition=ruleDefaultDefinition(); + iv_ruleFunctionDefinition=ruleFunctionDefinition(); state._fsp--; - current =iv_ruleDefaultDefinition; + current =iv_ruleFunctionDefinition; match(input,EOF,FOLLOW_2); } @@ -1361,52 +2116,76 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } return current; } - // $ANTLR end "entryRuleDefaultDefinition" + // $ANTLR end "entryRuleFunctionDefinition" - // $ANTLR start "ruleDefaultDefinition" - // InternalSolverLanguageParser.g:549:1: ruleDefaultDefinition returns [EObject current=null] : (otherlv_0= Default ( (lv_head_1_0= ruleCall ) ) otherlv_2= Colon ( (lv_range_3_0= ruleExpression ) ) ) ; - public final EObject ruleDefaultDefinition() throws RecognitionException { + // $ANTLR start "ruleFunctionDefinition" + // InternalSolverLanguageParser.g:846:1: ruleFunctionDefinition returns [EObject current=null] : ( ( ( ruleQualifiedName ) ) ( (lv_head_1_0= ruleCall ) ) otherlv_2= ColonEqualsSign ( (lv_body_3_0= ruleExpression ) ) this_FULL_STOP_4= RULE_FULL_STOP ) ; + public final EObject ruleFunctionDefinition() throws RecognitionException { EObject current = null; - Token otherlv_0=null; Token otherlv_2=null; + Token this_FULL_STOP_4=null; EObject lv_head_1_0 = null; - EObject lv_range_3_0 = null; + EObject lv_body_3_0 = null; enterRule(); try { - // InternalSolverLanguageParser.g:555:2: ( (otherlv_0= Default ( (lv_head_1_0= ruleCall ) ) otherlv_2= Colon ( (lv_range_3_0= ruleExpression ) ) ) ) - // InternalSolverLanguageParser.g:556:2: (otherlv_0= Default ( (lv_head_1_0= ruleCall ) ) otherlv_2= Colon ( (lv_range_3_0= ruleExpression ) ) ) + // InternalSolverLanguageParser.g:852:2: ( ( ( ( ruleQualifiedName ) ) ( (lv_head_1_0= ruleCall ) ) otherlv_2= ColonEqualsSign ( (lv_body_3_0= ruleExpression ) ) this_FULL_STOP_4= RULE_FULL_STOP ) ) + // InternalSolverLanguageParser.g:853:2: ( ( ( ruleQualifiedName ) ) ( (lv_head_1_0= ruleCall ) ) otherlv_2= ColonEqualsSign ( (lv_body_3_0= ruleExpression ) ) this_FULL_STOP_4= RULE_FULL_STOP ) { - // InternalSolverLanguageParser.g:556:2: (otherlv_0= Default ( (lv_head_1_0= ruleCall ) ) otherlv_2= Colon ( (lv_range_3_0= ruleExpression ) ) ) - // InternalSolverLanguageParser.g:557:3: otherlv_0= Default ( (lv_head_1_0= ruleCall ) ) otherlv_2= Colon ( (lv_range_3_0= ruleExpression ) ) + // InternalSolverLanguageParser.g:853:2: ( ( ( ruleQualifiedName ) ) ( (lv_head_1_0= ruleCall ) ) otherlv_2= ColonEqualsSign ( (lv_body_3_0= ruleExpression ) ) this_FULL_STOP_4= RULE_FULL_STOP ) + // InternalSolverLanguageParser.g:854:3: ( ( ruleQualifiedName ) ) ( (lv_head_1_0= ruleCall ) ) otherlv_2= ColonEqualsSign ( (lv_body_3_0= ruleExpression ) ) this_FULL_STOP_4= RULE_FULL_STOP { - otherlv_0=(Token)match(input,Default,FOLLOW_8); - - newLeafNode(otherlv_0, grammarAccess.getDefaultDefinitionAccess().getDefaultKeyword_0()); - - // InternalSolverLanguageParser.g:561:3: ( (lv_head_1_0= ruleCall ) ) - // InternalSolverLanguageParser.g:562:4: (lv_head_1_0= ruleCall ) + // InternalSolverLanguageParser.g:854:3: ( ( ruleQualifiedName ) ) + // InternalSolverLanguageParser.g:855:4: ( ruleQualifiedName ) { - // InternalSolverLanguageParser.g:562:4: (lv_head_1_0= ruleCall ) - // InternalSolverLanguageParser.g:563:5: lv_head_1_0= ruleCall + // InternalSolverLanguageParser.g:855:4: ( ruleQualifiedName ) + // InternalSolverLanguageParser.g:856:5: ruleQualifiedName { - newCompositeNode(grammarAccess.getDefaultDefinitionAccess().getHeadCallParserRuleCall_1_0()); + if (current==null) { + current = createModelElement(grammarAccess.getFunctionDefinitionRule()); + } + + + newCompositeNode(grammarAccess.getFunctionDefinitionAccess().getResultTypeSymbolCrossReference_0_0()); pushFollow(FOLLOW_12); + ruleQualifiedName(); + + state._fsp--; + + + afterParserOrEnumRuleCall(); + + + } + + + } + + // InternalSolverLanguageParser.g:870:3: ( (lv_head_1_0= ruleCall ) ) + // InternalSolverLanguageParser.g:871:4: (lv_head_1_0= ruleCall ) + { + // InternalSolverLanguageParser.g:871:4: (lv_head_1_0= ruleCall ) + // InternalSolverLanguageParser.g:872:5: lv_head_1_0= ruleCall + { + + newCompositeNode(grammarAccess.getFunctionDefinitionAccess().getHeadCallParserRuleCall_1_0()); + + pushFollow(FOLLOW_17); lv_head_1_0=ruleCall(); state._fsp--; if (current==null) { - current = createModelElementForParent(grammarAccess.getDefaultDefinitionRule()); + current = createModelElementForParent(grammarAccess.getFunctionDefinitionRule()); } set( current, @@ -1421,32 +2200,32 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } - otherlv_2=(Token)match(input,Colon,FOLLOW_6); + otherlv_2=(Token)match(input,ColonEqualsSign,FOLLOW_10); - newLeafNode(otherlv_2, grammarAccess.getDefaultDefinitionAccess().getColonKeyword_2()); + newLeafNode(otherlv_2, grammarAccess.getFunctionDefinitionAccess().getColonEqualsSignKeyword_2()); - // InternalSolverLanguageParser.g:584:3: ( (lv_range_3_0= ruleExpression ) ) - // InternalSolverLanguageParser.g:585:4: (lv_range_3_0= ruleExpression ) + // InternalSolverLanguageParser.g:893:3: ( (lv_body_3_0= ruleExpression ) ) + // InternalSolverLanguageParser.g:894:4: (lv_body_3_0= ruleExpression ) { - // InternalSolverLanguageParser.g:585:4: (lv_range_3_0= ruleExpression ) - // InternalSolverLanguageParser.g:586:5: lv_range_3_0= ruleExpression + // InternalSolverLanguageParser.g:894:4: (lv_body_3_0= ruleExpression ) + // InternalSolverLanguageParser.g:895:5: lv_body_3_0= ruleExpression { - newCompositeNode(grammarAccess.getDefaultDefinitionAccess().getRangeExpressionParserRuleCall_3_0()); + newCompositeNode(grammarAccess.getFunctionDefinitionAccess().getBodyExpressionParserRuleCall_3_0()); - pushFollow(FOLLOW_2); - lv_range_3_0=ruleExpression(); + pushFollow(FOLLOW_4); + lv_body_3_0=ruleExpression(); state._fsp--; if (current==null) { - current = createModelElementForParent(grammarAccess.getDefaultDefinitionRule()); + current = createModelElementForParent(grammarAccess.getFunctionDefinitionRule()); } set( current, - "range", - lv_range_3_0, + "body", + lv_body_3_0, "org.eclipse.viatra.solver.language.SolverLanguage.Expression"); afterParserOrEnumRuleCall(); @@ -1456,6 +2235,10 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } + this_FULL_STOP_4=(Token)match(input,RULE_FULL_STOP,FOLLOW_2); + + newLeafNode(this_FULL_STOP_4, grammarAccess.getFunctionDefinitionAccess().getFULL_STOPTerminalRuleCall_4()); + } @@ -1475,28 +2258,28 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } return current; } - // $ANTLR end "ruleDefaultDefinition" + // $ANTLR end "ruleFunctionDefinition" - // $ANTLR start "entryRuleMetricDefinition" - // InternalSolverLanguageParser.g:607:1: entryRuleMetricDefinition returns [EObject current=null] : iv_ruleMetricDefinition= ruleMetricDefinition EOF ; - public final EObject entryRuleMetricDefinition() throws RecognitionException { + // $ANTLR start "entryRuleTypeReference" + // InternalSolverLanguageParser.g:920:1: entryRuleTypeReference returns [EObject current=null] : iv_ruleTypeReference= ruleTypeReference EOF ; + public final EObject entryRuleTypeReference() throws RecognitionException { EObject current = null; - EObject iv_ruleMetricDefinition = null; + EObject iv_ruleTypeReference = null; try { - // InternalSolverLanguageParser.g:607:57: (iv_ruleMetricDefinition= ruleMetricDefinition EOF ) - // InternalSolverLanguageParser.g:608:2: iv_ruleMetricDefinition= ruleMetricDefinition EOF + // InternalSolverLanguageParser.g:920:54: (iv_ruleTypeReference= ruleTypeReference EOF ) + // InternalSolverLanguageParser.g:921:2: iv_ruleTypeReference= ruleTypeReference EOF { - newCompositeNode(grammarAccess.getMetricDefinitionRule()); + newCompositeNode(grammarAccess.getTypeReferenceRule()); pushFollow(FOLLOW_1); - iv_ruleMetricDefinition=ruleMetricDefinition(); + iv_ruleTypeReference=ruleTypeReference(); state._fsp--; - current =iv_ruleMetricDefinition; + current =iv_ruleTypeReference; match(input,EOF,FOLLOW_2); } @@ -1511,45 +2294,41 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } return current; } - // $ANTLR end "entryRuleMetricDefinition" + // $ANTLR end "entryRuleTypeReference" - // $ANTLR start "ruleMetricDefinition" - // InternalSolverLanguageParser.g:614:1: ruleMetricDefinition returns [EObject current=null] : ( ( ( ruleQualifiedName ) ) ( (lv_head_1_0= ruleCall ) ) otherlv_2= EqualsSign ( (lv_body_3_0= ruleExpression ) ) ) ; - public final EObject ruleMetricDefinition() throws RecognitionException { + // $ANTLR start "ruleTypeReference" + // InternalSolverLanguageParser.g:927:1: ruleTypeReference returns [EObject current=null] : ( ( ( ruleQualifiedName ) ) ( (lv_forceObjectType_1_0= Object ) )? ) ; + public final EObject ruleTypeReference() throws RecognitionException { EObject current = null; - Token otherlv_2=null; - EObject lv_head_1_0 = null; - - EObject lv_body_3_0 = null; - + Token lv_forceObjectType_1_0=null; enterRule(); try { - // InternalSolverLanguageParser.g:620:2: ( ( ( ( ruleQualifiedName ) ) ( (lv_head_1_0= ruleCall ) ) otherlv_2= EqualsSign ( (lv_body_3_0= ruleExpression ) ) ) ) - // InternalSolverLanguageParser.g:621:2: ( ( ( ruleQualifiedName ) ) ( (lv_head_1_0= ruleCall ) ) otherlv_2= EqualsSign ( (lv_body_3_0= ruleExpression ) ) ) + // InternalSolverLanguageParser.g:933:2: ( ( ( ( ruleQualifiedName ) ) ( (lv_forceObjectType_1_0= Object ) )? ) ) + // InternalSolverLanguageParser.g:934:2: ( ( ( ruleQualifiedName ) ) ( (lv_forceObjectType_1_0= Object ) )? ) { - // InternalSolverLanguageParser.g:621:2: ( ( ( ruleQualifiedName ) ) ( (lv_head_1_0= ruleCall ) ) otherlv_2= EqualsSign ( (lv_body_3_0= ruleExpression ) ) ) - // InternalSolverLanguageParser.g:622:3: ( ( ruleQualifiedName ) ) ( (lv_head_1_0= ruleCall ) ) otherlv_2= EqualsSign ( (lv_body_3_0= ruleExpression ) ) + // InternalSolverLanguageParser.g:934:2: ( ( ( ruleQualifiedName ) ) ( (lv_forceObjectType_1_0= Object ) )? ) + // InternalSolverLanguageParser.g:935:3: ( ( ruleQualifiedName ) ) ( (lv_forceObjectType_1_0= Object ) )? { - // InternalSolverLanguageParser.g:622:3: ( ( ruleQualifiedName ) ) - // InternalSolverLanguageParser.g:623:4: ( ruleQualifiedName ) + // InternalSolverLanguageParser.g:935:3: ( ( ruleQualifiedName ) ) + // InternalSolverLanguageParser.g:936:4: ( ruleQualifiedName ) { - // InternalSolverLanguageParser.g:623:4: ( ruleQualifiedName ) - // InternalSolverLanguageParser.g:624:5: ruleQualifiedName + // InternalSolverLanguageParser.g:936:4: ( ruleQualifiedName ) + // InternalSolverLanguageParser.g:937:5: ruleQualifiedName { if (current==null) { - current = createModelElement(grammarAccess.getMetricDefinitionRule()); + current = createModelElement(grammarAccess.getTypeReferenceRule()); } - newCompositeNode(grammarAccess.getMetricDefinitionAccess().getTypeNamedElementCrossReference_0_0()); + newCompositeNode(grammarAccess.getTypeReferenceAccess().getTypeSymbolCrossReference_0_0()); - pushFollow(FOLLOW_8); + pushFollow(FOLLOW_18); ruleQualifiedName(); state._fsp--; @@ -1563,29 +2342,139 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } - // InternalSolverLanguageParser.g:638:3: ( (lv_head_1_0= ruleCall ) ) - // InternalSolverLanguageParser.g:639:4: (lv_head_1_0= ruleCall ) + // InternalSolverLanguageParser.g:951:3: ( (lv_forceObjectType_1_0= Object ) )? + int alt12=2; + int LA12_0 = input.LA(1); + + if ( (LA12_0==Object) ) { + alt12=1; + } + switch (alt12) { + case 1 : + // InternalSolverLanguageParser.g:952:4: (lv_forceObjectType_1_0= Object ) + { + // InternalSolverLanguageParser.g:952:4: (lv_forceObjectType_1_0= Object ) + // InternalSolverLanguageParser.g:953:5: lv_forceObjectType_1_0= Object + { + lv_forceObjectType_1_0=(Token)match(input,Object,FOLLOW_2); + + newLeafNode(lv_forceObjectType_1_0, grammarAccess.getTypeReferenceAccess().getForceObjectTypeObjectKeyword_1_0()); + + + if (current==null) { + current = createModelElement(grammarAccess.getTypeReferenceRule()); + } + setWithLastConsumed(current, "forceObjectType", true, "object"); + + + } + + + } + break; + + } + + + } + + + } + + + leaveRule(); + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleTypeReference" + + + // $ANTLR start "entryRuleAttribute" + // InternalSolverLanguageParser.g:969:1: entryRuleAttribute returns [EObject current=null] : iv_ruleAttribute= ruleAttribute EOF ; + public final EObject entryRuleAttribute() throws RecognitionException { + EObject current = null; + + EObject iv_ruleAttribute = null; + + + try { + // InternalSolverLanguageParser.g:969:50: (iv_ruleAttribute= ruleAttribute EOF ) + // InternalSolverLanguageParser.g:970:2: iv_ruleAttribute= ruleAttribute EOF + { + newCompositeNode(grammarAccess.getAttributeRule()); + pushFollow(FOLLOW_1); + iv_ruleAttribute=ruleAttribute(); + + state._fsp--; + + current =iv_ruleAttribute; + match(input,EOF,FOLLOW_2); + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleAttribute" + + + // $ANTLR start "ruleAttribute" + // InternalSolverLanguageParser.g:976:1: ruleAttribute returns [EObject current=null] : ( ( (lv_kind_0_0= ruleAttributeKind ) ) ( ( ruleQualifiedName ) ) this_FULL_STOP_2= RULE_FULL_STOP ) ; + public final EObject ruleAttribute() throws RecognitionException { + EObject current = null; + + Token this_FULL_STOP_2=null; + Enumerator lv_kind_0_0 = null; + + + + enterRule(); + + try { + // InternalSolverLanguageParser.g:982:2: ( ( ( (lv_kind_0_0= ruleAttributeKind ) ) ( ( ruleQualifiedName ) ) this_FULL_STOP_2= RULE_FULL_STOP ) ) + // InternalSolverLanguageParser.g:983:2: ( ( (lv_kind_0_0= ruleAttributeKind ) ) ( ( ruleQualifiedName ) ) this_FULL_STOP_2= RULE_FULL_STOP ) + { + // InternalSolverLanguageParser.g:983:2: ( ( (lv_kind_0_0= ruleAttributeKind ) ) ( ( ruleQualifiedName ) ) this_FULL_STOP_2= RULE_FULL_STOP ) + // InternalSolverLanguageParser.g:984:3: ( (lv_kind_0_0= ruleAttributeKind ) ) ( ( ruleQualifiedName ) ) this_FULL_STOP_2= RULE_FULL_STOP { - // InternalSolverLanguageParser.g:639:4: (lv_head_1_0= ruleCall ) - // InternalSolverLanguageParser.g:640:5: lv_head_1_0= ruleCall + // InternalSolverLanguageParser.g:984:3: ( (lv_kind_0_0= ruleAttributeKind ) ) + // InternalSolverLanguageParser.g:985:4: (lv_kind_0_0= ruleAttributeKind ) + { + // InternalSolverLanguageParser.g:985:4: (lv_kind_0_0= ruleAttributeKind ) + // InternalSolverLanguageParser.g:986:5: lv_kind_0_0= ruleAttributeKind { - newCompositeNode(grammarAccess.getMetricDefinitionAccess().getHeadCallParserRuleCall_1_0()); + newCompositeNode(grammarAccess.getAttributeAccess().getKindAttributeKindEnumRuleCall_0_0()); - pushFollow(FOLLOW_13); - lv_head_1_0=ruleCall(); + pushFollow(FOLLOW_3); + lv_kind_0_0=ruleAttributeKind(); state._fsp--; if (current==null) { - current = createModelElementForParent(grammarAccess.getMetricDefinitionRule()); + current = createModelElementForParent(grammarAccess.getAttributeRule()); } set( current, - "head", - lv_head_1_0, - "org.eclipse.viatra.solver.language.SolverLanguage.Call"); + "kind", + lv_kind_0_0, + "org.eclipse.viatra.solver.language.SolverLanguage.AttributeKind"); afterParserOrEnumRuleCall(); @@ -1594,33 +2483,26 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } - otherlv_2=(Token)match(input,EqualsSign,FOLLOW_6); - - newLeafNode(otherlv_2, grammarAccess.getMetricDefinitionAccess().getEqualsSignKeyword_2()); - - // InternalSolverLanguageParser.g:661:3: ( (lv_body_3_0= ruleExpression ) ) - // InternalSolverLanguageParser.g:662:4: (lv_body_3_0= ruleExpression ) + // InternalSolverLanguageParser.g:1003:3: ( ( ruleQualifiedName ) ) + // InternalSolverLanguageParser.g:1004:4: ( ruleQualifiedName ) { - // InternalSolverLanguageParser.g:662:4: (lv_body_3_0= ruleExpression ) - // InternalSolverLanguageParser.g:663:5: lv_body_3_0= ruleExpression + // InternalSolverLanguageParser.g:1004:4: ( ruleQualifiedName ) + // InternalSolverLanguageParser.g:1005:5: ruleQualifiedName { - newCompositeNode(grammarAccess.getMetricDefinitionAccess().getBodyExpressionParserRuleCall_3_0()); + if (current==null) { + current = createModelElement(grammarAccess.getAttributeRule()); + } - pushFollow(FOLLOW_2); - lv_body_3_0=ruleExpression(); - state._fsp--; + newCompositeNode(grammarAccess.getAttributeAccess().getTargetSymbolCrossReference_1_0()); + + pushFollow(FOLLOW_4); + ruleQualifiedName(); + + state._fsp--; - if (current==null) { - current = createModelElementForParent(grammarAccess.getMetricDefinitionRule()); - } - set( - current, - "body", - lv_body_3_0, - "org.eclipse.viatra.solver.language.SolverLanguage.Expression"); afterParserOrEnumRuleCall(); @@ -1629,6 +2511,10 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } + this_FULL_STOP_2=(Token)match(input,RULE_FULL_STOP,FOLLOW_2); + + newLeafNode(this_FULL_STOP_2, grammarAccess.getAttributeAccess().getFULL_STOPTerminalRuleCall_2()); + } @@ -1648,28 +2534,28 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } return current; } - // $ANTLR end "ruleMetricDefinition" + // $ANTLR end "ruleAttribute" - // $ANTLR start "entryRuleExternPredicateDefinition" - // InternalSolverLanguageParser.g:684:1: entryRuleExternPredicateDefinition returns [EObject current=null] : iv_ruleExternPredicateDefinition= ruleExternPredicateDefinition EOF ; - public final EObject entryRuleExternPredicateDefinition() throws RecognitionException { + // $ANTLR start "entryRuleExternDeclaration" + // InternalSolverLanguageParser.g:1027:1: entryRuleExternDeclaration returns [EObject current=null] : iv_ruleExternDeclaration= ruleExternDeclaration EOF ; + public final EObject entryRuleExternDeclaration() throws RecognitionException { EObject current = null; - EObject iv_ruleExternPredicateDefinition = null; + EObject iv_ruleExternDeclaration = null; try { - // InternalSolverLanguageParser.g:684:66: (iv_ruleExternPredicateDefinition= ruleExternPredicateDefinition EOF ) - // InternalSolverLanguageParser.g:685:2: iv_ruleExternPredicateDefinition= ruleExternPredicateDefinition EOF + // InternalSolverLanguageParser.g:1027:58: (iv_ruleExternDeclaration= ruleExternDeclaration EOF ) + // InternalSolverLanguageParser.g:1028:2: iv_ruleExternDeclaration= ruleExternDeclaration EOF { - newCompositeNode(grammarAccess.getExternPredicateDefinitionRule()); + newCompositeNode(grammarAccess.getExternDeclarationRule()); pushFollow(FOLLOW_1); - iv_ruleExternPredicateDefinition=ruleExternPredicateDefinition(); + iv_ruleExternDeclaration=ruleExternDeclaration(); state._fsp--; - current =iv_ruleExternPredicateDefinition; + current =iv_ruleExternDeclaration; match(input,EOF,FOLLOW_2); } @@ -1684,97 +2570,107 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } return current; } - // $ANTLR end "entryRuleExternPredicateDefinition" + // $ANTLR end "entryRuleExternDeclaration" - // $ANTLR start "ruleExternPredicateDefinition" - // InternalSolverLanguageParser.g:691:1: ruleExternPredicateDefinition returns [EObject current=null] : (otherlv_0= Extern ( (lv_name_1_0= ruleQualifiedName ) ) ( (lv_argumentList_2_0= ruleArgumentList ) ) ) ; - public final EObject ruleExternPredicateDefinition() throws RecognitionException { + // $ANTLR start "ruleExternDeclaration" + // InternalSolverLanguageParser.g:1034:1: ruleExternDeclaration returns [EObject current=null] : (this_ExternPredicateDeclaration_0= ruleExternPredicateDeclaration | this_ExternFunctionDeclaration_1= ruleExternFunctionDeclaration | this_ExternAggregationOperatorDeclaration_2= ruleExternAggregationOperatorDeclaration | this_ExternDatatypeDeclaration_3= ruleExternDatatypeDeclaration ) ; + public final EObject ruleExternDeclaration() throws RecognitionException { EObject current = null; - Token otherlv_0=null; - AntlrDatatypeRuleToken lv_name_1_0 = null; + EObject this_ExternPredicateDeclaration_0 = null; + + EObject this_ExternFunctionDeclaration_1 = null; - EObject lv_argumentList_2_0 = null; + EObject this_ExternAggregationOperatorDeclaration_2 = null; + + EObject this_ExternDatatypeDeclaration_3 = null; enterRule(); try { - // InternalSolverLanguageParser.g:697:2: ( (otherlv_0= Extern ( (lv_name_1_0= ruleQualifiedName ) ) ( (lv_argumentList_2_0= ruleArgumentList ) ) ) ) - // InternalSolverLanguageParser.g:698:2: (otherlv_0= Extern ( (lv_name_1_0= ruleQualifiedName ) ) ( (lv_argumentList_2_0= ruleArgumentList ) ) ) - { - // InternalSolverLanguageParser.g:698:2: (otherlv_0= Extern ( (lv_name_1_0= ruleQualifiedName ) ) ( (lv_argumentList_2_0= ruleArgumentList ) ) ) - // InternalSolverLanguageParser.g:699:3: otherlv_0= Extern ( (lv_name_1_0= ruleQualifiedName ) ) ( (lv_argumentList_2_0= ruleArgumentList ) ) + // InternalSolverLanguageParser.g:1040:2: ( (this_ExternPredicateDeclaration_0= ruleExternPredicateDeclaration | this_ExternFunctionDeclaration_1= ruleExternFunctionDeclaration | this_ExternAggregationOperatorDeclaration_2= ruleExternAggregationOperatorDeclaration | this_ExternDatatypeDeclaration_3= ruleExternDatatypeDeclaration ) ) + // InternalSolverLanguageParser.g:1041:2: (this_ExternPredicateDeclaration_0= ruleExternPredicateDeclaration | this_ExternFunctionDeclaration_1= ruleExternFunctionDeclaration | this_ExternAggregationOperatorDeclaration_2= ruleExternAggregationOperatorDeclaration | this_ExternDatatypeDeclaration_3= ruleExternDatatypeDeclaration ) { - otherlv_0=(Token)match(input,Extern,FOLLOW_8); + // InternalSolverLanguageParser.g:1041:2: (this_ExternPredicateDeclaration_0= ruleExternPredicateDeclaration | this_ExternFunctionDeclaration_1= ruleExternFunctionDeclaration | this_ExternAggregationOperatorDeclaration_2= ruleExternAggregationOperatorDeclaration | this_ExternDatatypeDeclaration_3= ruleExternDatatypeDeclaration ) + int alt13=4; + alt13 = dfa13.predict(input); + switch (alt13) { + case 1 : + // InternalSolverLanguageParser.g:1042:3: this_ExternPredicateDeclaration_0= ruleExternPredicateDeclaration + { - newLeafNode(otherlv_0, grammarAccess.getExternPredicateDefinitionAccess().getExternKeyword_0()); - - // InternalSolverLanguageParser.g:703:3: ( (lv_name_1_0= ruleQualifiedName ) ) - // InternalSolverLanguageParser.g:704:4: (lv_name_1_0= ruleQualifiedName ) - { - // InternalSolverLanguageParser.g:704:4: (lv_name_1_0= ruleQualifiedName ) - // InternalSolverLanguageParser.g:705:5: lv_name_1_0= ruleQualifiedName - { + newCompositeNode(grammarAccess.getExternDeclarationAccess().getExternPredicateDeclarationParserRuleCall_0()); + + pushFollow(FOLLOW_2); + this_ExternPredicateDeclaration_0=ruleExternPredicateDeclaration(); - newCompositeNode(grammarAccess.getExternPredicateDefinitionAccess().getNameQualifiedNameParserRuleCall_1_0()); - - pushFollow(FOLLOW_11); - lv_name_1_0=ruleQualifiedName(); + state._fsp--; - state._fsp--; + current = this_ExternPredicateDeclaration_0; + afterParserOrEnumRuleCall(); + - if (current==null) { - current = createModelElementForParent(grammarAccess.getExternPredicateDefinitionRule()); - } - set( - current, - "name", - lv_name_1_0, - "org.eclipse.viatra.solver.language.SolverLanguage.QualifiedName"); - afterParserOrEnumRuleCall(); - + } + break; + case 2 : + // InternalSolverLanguageParser.g:1051:3: this_ExternFunctionDeclaration_1= ruleExternFunctionDeclaration + { - } + newCompositeNode(grammarAccess.getExternDeclarationAccess().getExternFunctionDeclarationParserRuleCall_1()); + + pushFollow(FOLLOW_2); + this_ExternFunctionDeclaration_1=ruleExternFunctionDeclaration(); + state._fsp--; - } - // InternalSolverLanguageParser.g:722:3: ( (lv_argumentList_2_0= ruleArgumentList ) ) - // InternalSolverLanguageParser.g:723:4: (lv_argumentList_2_0= ruleArgumentList ) - { - // InternalSolverLanguageParser.g:723:4: (lv_argumentList_2_0= ruleArgumentList ) - // InternalSolverLanguageParser.g:724:5: lv_argumentList_2_0= ruleArgumentList - { + current = this_ExternFunctionDeclaration_1; + afterParserOrEnumRuleCall(); + - newCompositeNode(grammarAccess.getExternPredicateDefinitionAccess().getArgumentListArgumentListParserRuleCall_2_0()); - - pushFollow(FOLLOW_2); - lv_argumentList_2_0=ruleArgumentList(); + } + break; + case 3 : + // InternalSolverLanguageParser.g:1060:3: this_ExternAggregationOperatorDeclaration_2= ruleExternAggregationOperatorDeclaration + { - state._fsp--; + newCompositeNode(grammarAccess.getExternDeclarationAccess().getExternAggregationOperatorDeclarationParserRuleCall_2()); + + pushFollow(FOLLOW_2); + this_ExternAggregationOperatorDeclaration_2=ruleExternAggregationOperatorDeclaration(); + state._fsp--; - if (current==null) { - current = createModelElementForParent(grammarAccess.getExternPredicateDefinitionRule()); - } - set( - current, - "argumentList", - lv_argumentList_2_0, - "org.eclipse.viatra.solver.language.SolverLanguage.ArgumentList"); - afterParserOrEnumRuleCall(); - - } + current = this_ExternAggregationOperatorDeclaration_2; + afterParserOrEnumRuleCall(); + + + } + break; + case 4 : + // InternalSolverLanguageParser.g:1069:3: this_ExternDatatypeDeclaration_3= ruleExternDatatypeDeclaration + { + newCompositeNode(grammarAccess.getExternDeclarationAccess().getExternDatatypeDeclarationParserRuleCall_3()); + + pushFollow(FOLLOW_2); + this_ExternDatatypeDeclaration_3=ruleExternDatatypeDeclaration(); - } + state._fsp--; + current = this_ExternDatatypeDeclaration_3; + afterParserOrEnumRuleCall(); + + + } + break; + } @@ -1793,28 +2689,28 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } return current; } - // $ANTLR end "ruleExternPredicateDefinition" + // $ANTLR end "ruleExternDeclaration" - // $ANTLR start "entryRuleExternMetricDefinition" - // InternalSolverLanguageParser.g:745:1: entryRuleExternMetricDefinition returns [EObject current=null] : iv_ruleExternMetricDefinition= ruleExternMetricDefinition EOF ; - public final EObject entryRuleExternMetricDefinition() throws RecognitionException { + // $ANTLR start "entryRuleExternPredicateDeclaration" + // InternalSolverLanguageParser.g:1081:1: entryRuleExternPredicateDeclaration returns [EObject current=null] : iv_ruleExternPredicateDeclaration= ruleExternPredicateDeclaration EOF ; + public final EObject entryRuleExternPredicateDeclaration() throws RecognitionException { EObject current = null; - EObject iv_ruleExternMetricDefinition = null; + EObject iv_ruleExternPredicateDeclaration = null; try { - // InternalSolverLanguageParser.g:745:63: (iv_ruleExternMetricDefinition= ruleExternMetricDefinition EOF ) - // InternalSolverLanguageParser.g:746:2: iv_ruleExternMetricDefinition= ruleExternMetricDefinition EOF + // InternalSolverLanguageParser.g:1081:67: (iv_ruleExternPredicateDeclaration= ruleExternPredicateDeclaration EOF ) + // InternalSolverLanguageParser.g:1082:2: iv_ruleExternPredicateDeclaration= ruleExternPredicateDeclaration EOF { - newCompositeNode(grammarAccess.getExternMetricDefinitionRule()); + newCompositeNode(grammarAccess.getExternPredicateDeclarationRule()); pushFollow(FOLLOW_1); - iv_ruleExternMetricDefinition=ruleExternMetricDefinition(); + iv_ruleExternPredicateDeclaration=ruleExternPredicateDeclaration(); state._fsp--; - current =iv_ruleExternMetricDefinition; + current =iv_ruleExternPredicateDeclaration; match(input,EOF,FOLLOW_2); } @@ -1829,84 +2725,220 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } return current; } - // $ANTLR end "entryRuleExternMetricDefinition" + // $ANTLR end "entryRuleExternPredicateDeclaration" - // $ANTLR start "ruleExternMetricDefinition" - // InternalSolverLanguageParser.g:752:1: ruleExternMetricDefinition returns [EObject current=null] : (otherlv_0= Extern ( ( ruleQualifiedName ) ) ( (lv_name_2_0= ruleQualifiedName ) ) ( (lv_argumentList_3_0= ruleArgumentList ) ) ) ; - public final EObject ruleExternMetricDefinition() throws RecognitionException { + // $ANTLR start "ruleExternPredicateDeclaration" + // InternalSolverLanguageParser.g:1088:1: ruleExternPredicateDeclaration returns [EObject current=null] : (otherlv_0= Extern ( ( ( ( ({...}? => ( ({...}? => ( (lv_functional_2_0= Functional ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_error_3_0= Error ) ) ) ) ) )* ) ) ) ( (lv_name_4_0= ruleQualifiedName ) ) ( (lv_argumentList_5_0= ruleArgumentList ) ) this_FULL_STOP_6= RULE_FULL_STOP ) ; + public final EObject ruleExternPredicateDeclaration() throws RecognitionException { EObject current = null; Token otherlv_0=null; - AntlrDatatypeRuleToken lv_name_2_0 = null; + Token lv_functional_2_0=null; + Token lv_error_3_0=null; + Token this_FULL_STOP_6=null; + AntlrDatatypeRuleToken lv_name_4_0 = null; - EObject lv_argumentList_3_0 = null; + EObject lv_argumentList_5_0 = null; enterRule(); try { - // InternalSolverLanguageParser.g:758:2: ( (otherlv_0= Extern ( ( ruleQualifiedName ) ) ( (lv_name_2_0= ruleQualifiedName ) ) ( (lv_argumentList_3_0= ruleArgumentList ) ) ) ) - // InternalSolverLanguageParser.g:759:2: (otherlv_0= Extern ( ( ruleQualifiedName ) ) ( (lv_name_2_0= ruleQualifiedName ) ) ( (lv_argumentList_3_0= ruleArgumentList ) ) ) + // InternalSolverLanguageParser.g:1094:2: ( (otherlv_0= Extern ( ( ( ( ({...}? => ( ({...}? => ( (lv_functional_2_0= Functional ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_error_3_0= Error ) ) ) ) ) )* ) ) ) ( (lv_name_4_0= ruleQualifiedName ) ) ( (lv_argumentList_5_0= ruleArgumentList ) ) this_FULL_STOP_6= RULE_FULL_STOP ) ) + // InternalSolverLanguageParser.g:1095:2: (otherlv_0= Extern ( ( ( ( ({...}? => ( ({...}? => ( (lv_functional_2_0= Functional ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_error_3_0= Error ) ) ) ) ) )* ) ) ) ( (lv_name_4_0= ruleQualifiedName ) ) ( (lv_argumentList_5_0= ruleArgumentList ) ) this_FULL_STOP_6= RULE_FULL_STOP ) { - // InternalSolverLanguageParser.g:759:2: (otherlv_0= Extern ( ( ruleQualifiedName ) ) ( (lv_name_2_0= ruleQualifiedName ) ) ( (lv_argumentList_3_0= ruleArgumentList ) ) ) - // InternalSolverLanguageParser.g:760:3: otherlv_0= Extern ( ( ruleQualifiedName ) ) ( (lv_name_2_0= ruleQualifiedName ) ) ( (lv_argumentList_3_0= ruleArgumentList ) ) + // InternalSolverLanguageParser.g:1095:2: (otherlv_0= Extern ( ( ( ( ({...}? => ( ({...}? => ( (lv_functional_2_0= Functional ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_error_3_0= Error ) ) ) ) ) )* ) ) ) ( (lv_name_4_0= ruleQualifiedName ) ) ( (lv_argumentList_5_0= ruleArgumentList ) ) this_FULL_STOP_6= RULE_FULL_STOP ) + // InternalSolverLanguageParser.g:1096:3: otherlv_0= Extern ( ( ( ( ({...}? => ( ({...}? => ( (lv_functional_2_0= Functional ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_error_3_0= Error ) ) ) ) ) )* ) ) ) ( (lv_name_4_0= ruleQualifiedName ) ) ( (lv_argumentList_5_0= ruleArgumentList ) ) this_FULL_STOP_6= RULE_FULL_STOP { - otherlv_0=(Token)match(input,Extern,FOLLOW_8); + otherlv_0=(Token)match(input,Extern,FOLLOW_19); - newLeafNode(otherlv_0, grammarAccess.getExternMetricDefinitionAccess().getExternKeyword_0()); + newLeafNode(otherlv_0, grammarAccess.getExternPredicateDeclarationAccess().getExternKeyword_0()); - // InternalSolverLanguageParser.g:764:3: ( ( ruleQualifiedName ) ) - // InternalSolverLanguageParser.g:765:4: ( ruleQualifiedName ) + // InternalSolverLanguageParser.g:1100:3: ( ( ( ( ({...}? => ( ({...}? => ( (lv_functional_2_0= Functional ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_error_3_0= Error ) ) ) ) ) )* ) ) ) + // InternalSolverLanguageParser.g:1101:4: ( ( ( ({...}? => ( ({...}? => ( (lv_functional_2_0= Functional ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_error_3_0= Error ) ) ) ) ) )* ) ) { - // InternalSolverLanguageParser.g:765:4: ( ruleQualifiedName ) - // InternalSolverLanguageParser.g:766:5: ruleQualifiedName + // InternalSolverLanguageParser.g:1101:4: ( ( ( ({...}? => ( ({...}? => ( (lv_functional_2_0= Functional ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_error_3_0= Error ) ) ) ) ) )* ) ) + // InternalSolverLanguageParser.g:1102:5: ( ( ({...}? => ( ({...}? => ( (lv_functional_2_0= Functional ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_error_3_0= Error ) ) ) ) ) )* ) { - - if (current==null) { - current = createModelElement(grammarAccess.getExternMetricDefinitionRule()); - } + + getUnorderedGroupHelper().enter(grammarAccess.getExternPredicateDeclarationAccess().getUnorderedGroup_1()); + // InternalSolverLanguageParser.g:1105:5: ( ( ({...}? => ( ({...}? => ( (lv_functional_2_0= Functional ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_error_3_0= Error ) ) ) ) ) )* ) + // InternalSolverLanguageParser.g:1106:6: ( ({...}? => ( ({...}? => ( (lv_functional_2_0= Functional ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_error_3_0= Error ) ) ) ) ) )* + { + // InternalSolverLanguageParser.g:1106:6: ( ({...}? => ( ({...}? => ( (lv_functional_2_0= Functional ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_error_3_0= Error ) ) ) ) ) )* + loop14: + do { + int alt14=3; + int LA14_0 = input.LA(1); - newCompositeNode(grammarAccess.getExternMetricDefinitionAccess().getTypeNamedElementCrossReference_1_0()); - - pushFollow(FOLLOW_8); - ruleQualifiedName(); + if ( LA14_0 == Functional && getUnorderedGroupHelper().canSelect(grammarAccess.getExternPredicateDeclarationAccess().getUnorderedGroup_1(), 0) ) { + alt14=1; + } + else if ( LA14_0 == Error && getUnorderedGroupHelper().canSelect(grammarAccess.getExternPredicateDeclarationAccess().getUnorderedGroup_1(), 1) ) { + alt14=2; + } - state._fsp--; + switch (alt14) { + case 1 : + // InternalSolverLanguageParser.g:1107:4: ({...}? => ( ({...}? => ( (lv_functional_2_0= Functional ) ) ) ) ) + { + // InternalSolverLanguageParser.g:1107:4: ({...}? => ( ({...}? => ( (lv_functional_2_0= Functional ) ) ) ) ) + // InternalSolverLanguageParser.g:1108:5: {...}? => ( ({...}? => ( (lv_functional_2_0= Functional ) ) ) ) + { + if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getExternPredicateDeclarationAccess().getUnorderedGroup_1(), 0) ) { + throw new FailedPredicateException(input, "ruleExternPredicateDeclaration", "getUnorderedGroupHelper().canSelect(grammarAccess.getExternPredicateDeclarationAccess().getUnorderedGroup_1(), 0)"); + } + // InternalSolverLanguageParser.g:1108:123: ( ({...}? => ( (lv_functional_2_0= Functional ) ) ) ) + // InternalSolverLanguageParser.g:1109:6: ({...}? => ( (lv_functional_2_0= Functional ) ) ) + { + + getUnorderedGroupHelper().select(grammarAccess.getExternPredicateDeclarationAccess().getUnorderedGroup_1(), 0); + + // InternalSolverLanguageParser.g:1112:9: ({...}? => ( (lv_functional_2_0= Functional ) ) ) + // InternalSolverLanguageParser.g:1112:10: {...}? => ( (lv_functional_2_0= Functional ) ) + { + if ( !((true)) ) { + throw new FailedPredicateException(input, "ruleExternPredicateDeclaration", "true"); + } + // InternalSolverLanguageParser.g:1112:19: ( (lv_functional_2_0= Functional ) ) + // InternalSolverLanguageParser.g:1112:20: (lv_functional_2_0= Functional ) + { + // InternalSolverLanguageParser.g:1112:20: (lv_functional_2_0= Functional ) + // InternalSolverLanguageParser.g:1113:10: lv_functional_2_0= Functional + { + lv_functional_2_0=(Token)match(input,Functional,FOLLOW_19); + + newLeafNode(lv_functional_2_0, grammarAccess.getExternPredicateDeclarationAccess().getFunctionalFunctionalKeyword_1_0_0()); + + + if (current==null) { + current = createModelElement(grammarAccess.getExternPredicateDeclarationRule()); + } + setWithLastConsumed(current, "functional", true, "functional"); + + + } + + + } + + + } + + + getUnorderedGroupHelper().returnFromSelection(grammarAccess.getExternPredicateDeclarationAccess().getUnorderedGroup_1()); + + + } + + + } + + + } + break; + case 2 : + // InternalSolverLanguageParser.g:1130:4: ({...}? => ( ({...}? => ( (lv_error_3_0= Error ) ) ) ) ) + { + // InternalSolverLanguageParser.g:1130:4: ({...}? => ( ({...}? => ( (lv_error_3_0= Error ) ) ) ) ) + // InternalSolverLanguageParser.g:1131:5: {...}? => ( ({...}? => ( (lv_error_3_0= Error ) ) ) ) + { + if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getExternPredicateDeclarationAccess().getUnorderedGroup_1(), 1) ) { + throw new FailedPredicateException(input, "ruleExternPredicateDeclaration", "getUnorderedGroupHelper().canSelect(grammarAccess.getExternPredicateDeclarationAccess().getUnorderedGroup_1(), 1)"); + } + // InternalSolverLanguageParser.g:1131:123: ( ({...}? => ( (lv_error_3_0= Error ) ) ) ) + // InternalSolverLanguageParser.g:1132:6: ({...}? => ( (lv_error_3_0= Error ) ) ) + { + + getUnorderedGroupHelper().select(grammarAccess.getExternPredicateDeclarationAccess().getUnorderedGroup_1(), 1); + + // InternalSolverLanguageParser.g:1135:9: ({...}? => ( (lv_error_3_0= Error ) ) ) + // InternalSolverLanguageParser.g:1135:10: {...}? => ( (lv_error_3_0= Error ) ) + { + if ( !((true)) ) { + throw new FailedPredicateException(input, "ruleExternPredicateDeclaration", "true"); + } + // InternalSolverLanguageParser.g:1135:19: ( (lv_error_3_0= Error ) ) + // InternalSolverLanguageParser.g:1135:20: (lv_error_3_0= Error ) + { + // InternalSolverLanguageParser.g:1135:20: (lv_error_3_0= Error ) + // InternalSolverLanguageParser.g:1136:10: lv_error_3_0= Error + { + lv_error_3_0=(Token)match(input,Error,FOLLOW_19); + + newLeafNode(lv_error_3_0, grammarAccess.getExternPredicateDeclarationAccess().getErrorErrorKeyword_1_1_0()); + + + if (current==null) { + current = createModelElement(grammarAccess.getExternPredicateDeclarationRule()); + } + setWithLastConsumed(current, "error", true, "error"); + + + } + + + } + + + } + + + getUnorderedGroupHelper().returnFromSelection(grammarAccess.getExternPredicateDeclarationAccess().getUnorderedGroup_1()); + + + } + + + } + + + } + break; + + default : + break loop14; + } + } while (true); + + + } - afterParserOrEnumRuleCall(); - } + + getUnorderedGroupHelper().leave(grammarAccess.getExternPredicateDeclarationAccess().getUnorderedGroup_1()); + } - // InternalSolverLanguageParser.g:780:3: ( (lv_name_2_0= ruleQualifiedName ) ) - // InternalSolverLanguageParser.g:781:4: (lv_name_2_0= ruleQualifiedName ) + // InternalSolverLanguageParser.g:1160:3: ( (lv_name_4_0= ruleQualifiedName ) ) + // InternalSolverLanguageParser.g:1161:4: (lv_name_4_0= ruleQualifiedName ) { - // InternalSolverLanguageParser.g:781:4: (lv_name_2_0= ruleQualifiedName ) - // InternalSolverLanguageParser.g:782:5: lv_name_2_0= ruleQualifiedName + // InternalSolverLanguageParser.g:1161:4: (lv_name_4_0= ruleQualifiedName ) + // InternalSolverLanguageParser.g:1162:5: lv_name_4_0= ruleQualifiedName { - newCompositeNode(grammarAccess.getExternMetricDefinitionAccess().getNameQualifiedNameParserRuleCall_2_0()); + newCompositeNode(grammarAccess.getExternPredicateDeclarationAccess().getNameQualifiedNameParserRuleCall_2_0()); - pushFollow(FOLLOW_11); - lv_name_2_0=ruleQualifiedName(); + pushFollow(FOLLOW_15); + lv_name_4_0=ruleQualifiedName(); state._fsp--; if (current==null) { - current = createModelElementForParent(grammarAccess.getExternMetricDefinitionRule()); + current = createModelElementForParent(grammarAccess.getExternPredicateDeclarationRule()); } set( current, "name", - lv_name_2_0, + lv_name_4_0, "org.eclipse.viatra.solver.language.SolverLanguage.QualifiedName"); afterParserOrEnumRuleCall(); @@ -1916,28 +2948,28 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } - // InternalSolverLanguageParser.g:799:3: ( (lv_argumentList_3_0= ruleArgumentList ) ) - // InternalSolverLanguageParser.g:800:4: (lv_argumentList_3_0= ruleArgumentList ) + // InternalSolverLanguageParser.g:1179:3: ( (lv_argumentList_5_0= ruleArgumentList ) ) + // InternalSolverLanguageParser.g:1180:4: (lv_argumentList_5_0= ruleArgumentList ) { - // InternalSolverLanguageParser.g:800:4: (lv_argumentList_3_0= ruleArgumentList ) - // InternalSolverLanguageParser.g:801:5: lv_argumentList_3_0= ruleArgumentList + // InternalSolverLanguageParser.g:1180:4: (lv_argumentList_5_0= ruleArgumentList ) + // InternalSolverLanguageParser.g:1181:5: lv_argumentList_5_0= ruleArgumentList { - newCompositeNode(grammarAccess.getExternMetricDefinitionAccess().getArgumentListArgumentListParserRuleCall_3_0()); + newCompositeNode(grammarAccess.getExternPredicateDeclarationAccess().getArgumentListArgumentListParserRuleCall_3_0()); - pushFollow(FOLLOW_2); - lv_argumentList_3_0=ruleArgumentList(); + pushFollow(FOLLOW_4); + lv_argumentList_5_0=ruleArgumentList(); state._fsp--; if (current==null) { - current = createModelElementForParent(grammarAccess.getExternMetricDefinitionRule()); + current = createModelElementForParent(grammarAccess.getExternPredicateDeclarationRule()); } set( current, "argumentList", - lv_argumentList_3_0, + lv_argumentList_5_0, "org.eclipse.viatra.solver.language.SolverLanguage.ArgumentList"); afterParserOrEnumRuleCall(); @@ -1947,6 +2979,10 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } + this_FULL_STOP_6=(Token)match(input,RULE_FULL_STOP,FOLLOW_2); + + newLeafNode(this_FULL_STOP_6, grammarAccess.getExternPredicateDeclarationAccess().getFULL_STOPTerminalRuleCall_4()); + } @@ -1966,28 +3002,28 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } return current; } - // $ANTLR end "ruleExternMetricDefinition" + // $ANTLR end "ruleExternPredicateDeclaration" - // $ANTLR start "entryRuleExternAggregatorDefinition" - // InternalSolverLanguageParser.g:822:1: entryRuleExternAggregatorDefinition returns [EObject current=null] : iv_ruleExternAggregatorDefinition= ruleExternAggregatorDefinition EOF ; - public final EObject entryRuleExternAggregatorDefinition() throws RecognitionException { + // $ANTLR start "entryRuleExternFunctionDeclaration" + // InternalSolverLanguageParser.g:1206:1: entryRuleExternFunctionDeclaration returns [EObject current=null] : iv_ruleExternFunctionDeclaration= ruleExternFunctionDeclaration EOF ; + public final EObject entryRuleExternFunctionDeclaration() throws RecognitionException { EObject current = null; - EObject iv_ruleExternAggregatorDefinition = null; + EObject iv_ruleExternFunctionDeclaration = null; try { - // InternalSolverLanguageParser.g:822:67: (iv_ruleExternAggregatorDefinition= ruleExternAggregatorDefinition EOF ) - // InternalSolverLanguageParser.g:823:2: iv_ruleExternAggregatorDefinition= ruleExternAggregatorDefinition EOF + // InternalSolverLanguageParser.g:1206:66: (iv_ruleExternFunctionDeclaration= ruleExternFunctionDeclaration EOF ) + // InternalSolverLanguageParser.g:1207:2: iv_ruleExternFunctionDeclaration= ruleExternFunctionDeclaration EOF { - newCompositeNode(grammarAccess.getExternAggregatorDefinitionRule()); + newCompositeNode(grammarAccess.getExternFunctionDeclarationRule()); pushFollow(FOLLOW_1); - iv_ruleExternAggregatorDefinition=ruleExternAggregatorDefinition(); + iv_ruleExternFunctionDeclaration=ruleExternFunctionDeclaration(); state._fsp--; - current =iv_ruleExternAggregatorDefinition; + current =iv_ruleExternFunctionDeclaration; match(input,EOF,FOLLOW_2); } @@ -2002,50 +3038,50 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } return current; } - // $ANTLR end "entryRuleExternAggregatorDefinition" + // $ANTLR end "entryRuleExternFunctionDeclaration" - // $ANTLR start "ruleExternAggregatorDefinition" - // InternalSolverLanguageParser.g:829:1: ruleExternAggregatorDefinition returns [EObject current=null] : (otherlv_0= Extern ( ( ruleQualifiedName ) ) ( (lv_name_2_0= ruleQualifiedName ) ) otherlv_3= LeftCurlyBracket ( ( ruleQualifiedName ) ) otherlv_5= FullStopFullStopFullStop otherlv_6= RightCurlyBracket ) ; - public final EObject ruleExternAggregatorDefinition() throws RecognitionException { + // $ANTLR start "ruleExternFunctionDeclaration" + // InternalSolverLanguageParser.g:1213:1: ruleExternFunctionDeclaration returns [EObject current=null] : (otherlv_0= Extern ( ( ruleQualifiedName ) ) ( (lv_name_2_0= ruleQualifiedName ) ) ( (lv_argumentList_3_0= ruleArgumentList ) ) this_FULL_STOP_4= RULE_FULL_STOP ) ; + public final EObject ruleExternFunctionDeclaration() throws RecognitionException { EObject current = null; Token otherlv_0=null; - Token otherlv_3=null; - Token otherlv_5=null; - Token otherlv_6=null; + Token this_FULL_STOP_4=null; AntlrDatatypeRuleToken lv_name_2_0 = null; + EObject lv_argumentList_3_0 = null; + enterRule(); try { - // InternalSolverLanguageParser.g:835:2: ( (otherlv_0= Extern ( ( ruleQualifiedName ) ) ( (lv_name_2_0= ruleQualifiedName ) ) otherlv_3= LeftCurlyBracket ( ( ruleQualifiedName ) ) otherlv_5= FullStopFullStopFullStop otherlv_6= RightCurlyBracket ) ) - // InternalSolverLanguageParser.g:836:2: (otherlv_0= Extern ( ( ruleQualifiedName ) ) ( (lv_name_2_0= ruleQualifiedName ) ) otherlv_3= LeftCurlyBracket ( ( ruleQualifiedName ) ) otherlv_5= FullStopFullStopFullStop otherlv_6= RightCurlyBracket ) + // InternalSolverLanguageParser.g:1219:2: ( (otherlv_0= Extern ( ( ruleQualifiedName ) ) ( (lv_name_2_0= ruleQualifiedName ) ) ( (lv_argumentList_3_0= ruleArgumentList ) ) this_FULL_STOP_4= RULE_FULL_STOP ) ) + // InternalSolverLanguageParser.g:1220:2: (otherlv_0= Extern ( ( ruleQualifiedName ) ) ( (lv_name_2_0= ruleQualifiedName ) ) ( (lv_argumentList_3_0= ruleArgumentList ) ) this_FULL_STOP_4= RULE_FULL_STOP ) { - // InternalSolverLanguageParser.g:836:2: (otherlv_0= Extern ( ( ruleQualifiedName ) ) ( (lv_name_2_0= ruleQualifiedName ) ) otherlv_3= LeftCurlyBracket ( ( ruleQualifiedName ) ) otherlv_5= FullStopFullStopFullStop otherlv_6= RightCurlyBracket ) - // InternalSolverLanguageParser.g:837:3: otherlv_0= Extern ( ( ruleQualifiedName ) ) ( (lv_name_2_0= ruleQualifiedName ) ) otherlv_3= LeftCurlyBracket ( ( ruleQualifiedName ) ) otherlv_5= FullStopFullStopFullStop otherlv_6= RightCurlyBracket + // InternalSolverLanguageParser.g:1220:2: (otherlv_0= Extern ( ( ruleQualifiedName ) ) ( (lv_name_2_0= ruleQualifiedName ) ) ( (lv_argumentList_3_0= ruleArgumentList ) ) this_FULL_STOP_4= RULE_FULL_STOP ) + // InternalSolverLanguageParser.g:1221:3: otherlv_0= Extern ( ( ruleQualifiedName ) ) ( (lv_name_2_0= ruleQualifiedName ) ) ( (lv_argumentList_3_0= ruleArgumentList ) ) this_FULL_STOP_4= RULE_FULL_STOP { - otherlv_0=(Token)match(input,Extern,FOLLOW_8); + otherlv_0=(Token)match(input,Extern,FOLLOW_3); - newLeafNode(otherlv_0, grammarAccess.getExternAggregatorDefinitionAccess().getExternKeyword_0()); + newLeafNode(otherlv_0, grammarAccess.getExternFunctionDeclarationAccess().getExternKeyword_0()); - // InternalSolverLanguageParser.g:841:3: ( ( ruleQualifiedName ) ) - // InternalSolverLanguageParser.g:842:4: ( ruleQualifiedName ) + // InternalSolverLanguageParser.g:1225:3: ( ( ruleQualifiedName ) ) + // InternalSolverLanguageParser.g:1226:4: ( ruleQualifiedName ) { - // InternalSolverLanguageParser.g:842:4: ( ruleQualifiedName ) - // InternalSolverLanguageParser.g:843:5: ruleQualifiedName + // InternalSolverLanguageParser.g:1226:4: ( ruleQualifiedName ) + // InternalSolverLanguageParser.g:1227:5: ruleQualifiedName { if (current==null) { - current = createModelElement(grammarAccess.getExternAggregatorDefinitionRule()); + current = createModelElement(grammarAccess.getExternFunctionDeclarationRule()); } - newCompositeNode(grammarAccess.getExternAggregatorDefinitionAccess().getTypeNamedElementCrossReference_1_0()); + newCompositeNode(grammarAccess.getExternFunctionDeclarationAccess().getResultTypeSymbolCrossReference_1_0()); - pushFollow(FOLLOW_8); + pushFollow(FOLLOW_3); ruleQualifiedName(); state._fsp--; @@ -2059,23 +3095,23 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } - // InternalSolverLanguageParser.g:857:3: ( (lv_name_2_0= ruleQualifiedName ) ) - // InternalSolverLanguageParser.g:858:4: (lv_name_2_0= ruleQualifiedName ) + // InternalSolverLanguageParser.g:1241:3: ( (lv_name_2_0= ruleQualifiedName ) ) + // InternalSolverLanguageParser.g:1242:4: (lv_name_2_0= ruleQualifiedName ) { - // InternalSolverLanguageParser.g:858:4: (lv_name_2_0= ruleQualifiedName ) - // InternalSolverLanguageParser.g:859:5: lv_name_2_0= ruleQualifiedName + // InternalSolverLanguageParser.g:1242:4: (lv_name_2_0= ruleQualifiedName ) + // InternalSolverLanguageParser.g:1243:5: lv_name_2_0= ruleQualifiedName { - newCompositeNode(grammarAccess.getExternAggregatorDefinitionAccess().getNameQualifiedNameParserRuleCall_2_0()); + newCompositeNode(grammarAccess.getExternFunctionDeclarationAccess().getNameQualifiedNameParserRuleCall_2_0()); - pushFollow(FOLLOW_14); + pushFollow(FOLLOW_15); lv_name_2_0=ruleQualifiedName(); state._fsp--; if (current==null) { - current = createModelElementForParent(grammarAccess.getExternAggregatorDefinitionRule()); + current = createModelElementForParent(grammarAccess.getExternFunctionDeclarationRule()); } set( current, @@ -2090,30 +3126,29 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } - otherlv_3=(Token)match(input,LeftCurlyBracket,FOLLOW_8); - - newLeafNode(otherlv_3, grammarAccess.getExternAggregatorDefinitionAccess().getLeftCurlyBracketKeyword_3()); - - // InternalSolverLanguageParser.g:880:3: ( ( ruleQualifiedName ) ) - // InternalSolverLanguageParser.g:881:4: ( ruleQualifiedName ) + // InternalSolverLanguageParser.g:1260:3: ( (lv_argumentList_3_0= ruleArgumentList ) ) + // InternalSolverLanguageParser.g:1261:4: (lv_argumentList_3_0= ruleArgumentList ) { - // InternalSolverLanguageParser.g:881:4: ( ruleQualifiedName ) - // InternalSolverLanguageParser.g:882:5: ruleQualifiedName + // InternalSolverLanguageParser.g:1261:4: (lv_argumentList_3_0= ruleArgumentList ) + // InternalSolverLanguageParser.g:1262:5: lv_argumentList_3_0= ruleArgumentList { - if (current==null) { - current = createModelElement(grammarAccess.getExternAggregatorDefinitionRule()); - } - - - newCompositeNode(grammarAccess.getExternAggregatorDefinitionAccess().getInputTypeNamedElementCrossReference_4_0()); + newCompositeNode(grammarAccess.getExternFunctionDeclarationAccess().getArgumentListArgumentListParserRuleCall_3_0()); - pushFollow(FOLLOW_15); - ruleQualifiedName(); + pushFollow(FOLLOW_4); + lv_argumentList_3_0=ruleArgumentList(); state._fsp--; + if (current==null) { + current = createModelElementForParent(grammarAccess.getExternFunctionDeclarationRule()); + } + set( + current, + "argumentList", + lv_argumentList_3_0, + "org.eclipse.viatra.solver.language.SolverLanguage.ArgumentList"); afterParserOrEnumRuleCall(); @@ -2122,13 +3157,9 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } - otherlv_5=(Token)match(input,FullStopFullStopFullStop,FOLLOW_16); - - newLeafNode(otherlv_5, grammarAccess.getExternAggregatorDefinitionAccess().getFullStopFullStopFullStopKeyword_5()); - - otherlv_6=(Token)match(input,RightCurlyBracket,FOLLOW_2); + this_FULL_STOP_4=(Token)match(input,RULE_FULL_STOP,FOLLOW_2); - newLeafNode(otherlv_6, grammarAccess.getExternAggregatorDefinitionAccess().getRightCurlyBracketKeyword_6()); + newLeafNode(this_FULL_STOP_4, grammarAccess.getExternFunctionDeclarationAccess().getFULL_STOPTerminalRuleCall_4()); } @@ -2149,28 +3180,28 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } return current; } - // $ANTLR end "ruleExternAggregatorDefinition" + // $ANTLR end "ruleExternFunctionDeclaration" - // $ANTLR start "entryRuleExternDatatypeDefinition" - // InternalSolverLanguageParser.g:908:1: entryRuleExternDatatypeDefinition returns [EObject current=null] : iv_ruleExternDatatypeDefinition= ruleExternDatatypeDefinition EOF ; - public final EObject entryRuleExternDatatypeDefinition() throws RecognitionException { + // $ANTLR start "entryRuleExternAggregationOperatorDeclaration" + // InternalSolverLanguageParser.g:1287:1: entryRuleExternAggregationOperatorDeclaration returns [EObject current=null] : iv_ruleExternAggregationOperatorDeclaration= ruleExternAggregationOperatorDeclaration EOF ; + public final EObject entryRuleExternAggregationOperatorDeclaration() throws RecognitionException { EObject current = null; - EObject iv_ruleExternDatatypeDefinition = null; + EObject iv_ruleExternAggregationOperatorDeclaration = null; try { - // InternalSolverLanguageParser.g:908:65: (iv_ruleExternDatatypeDefinition= ruleExternDatatypeDefinition EOF ) - // InternalSolverLanguageParser.g:909:2: iv_ruleExternDatatypeDefinition= ruleExternDatatypeDefinition EOF + // InternalSolverLanguageParser.g:1287:77: (iv_ruleExternAggregationOperatorDeclaration= ruleExternAggregationOperatorDeclaration EOF ) + // InternalSolverLanguageParser.g:1288:2: iv_ruleExternAggregationOperatorDeclaration= ruleExternAggregationOperatorDeclaration EOF { - newCompositeNode(grammarAccess.getExternDatatypeDefinitionRule()); + newCompositeNode(grammarAccess.getExternAggregationOperatorDeclarationRule()); pushFollow(FOLLOW_1); - iv_ruleExternDatatypeDefinition=ruleExternDatatypeDefinition(); + iv_ruleExternAggregationOperatorDeclaration=ruleExternAggregationOperatorDeclaration(); state._fsp--; - current =iv_ruleExternDatatypeDefinition; + current =iv_ruleExternAggregationOperatorDeclaration; match(input,EOF,FOLLOW_2); } @@ -2185,18 +3216,19 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } return current; } - // $ANTLR end "entryRuleExternDatatypeDefinition" + // $ANTLR end "entryRuleExternAggregationOperatorDeclaration" - // $ANTLR start "ruleExternDatatypeDefinition" - // InternalSolverLanguageParser.g:915:1: ruleExternDatatypeDefinition returns [EObject current=null] : (otherlv_0= Extern otherlv_1= Datatype ( (lv_name_2_0= ruleQualifiedName ) ) (otherlv_3= Extends ( ( ruleQualifiedName ) ) (otherlv_5= Comma ( ( ruleQualifiedName ) ) )* ) ) ; - public final EObject ruleExternDatatypeDefinition() throws RecognitionException { + // $ANTLR start "ruleExternAggregationOperatorDeclaration" + // InternalSolverLanguageParser.g:1294:1: ruleExternAggregationOperatorDeclaration returns [EObject current=null] : (otherlv_0= Extern ( ( ruleQualifiedName ) ) ( (lv_name_2_0= ruleQualifiedName ) ) otherlv_3= LeftCurlyBracket ( ( ruleQualifiedName ) ) otherlv_5= FullStopFullStopFullStop otherlv_6= RightCurlyBracket this_FULL_STOP_7= RULE_FULL_STOP ) ; + public final EObject ruleExternAggregationOperatorDeclaration() throws RecognitionException { EObject current = null; Token otherlv_0=null; - Token otherlv_1=null; Token otherlv_3=null; Token otherlv_5=null; + Token otherlv_6=null; + Token this_FULL_STOP_7=null; AntlrDatatypeRuleToken lv_name_2_0 = null; @@ -2204,43 +3236,36 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { enterRule(); try { - // InternalSolverLanguageParser.g:921:2: ( (otherlv_0= Extern otherlv_1= Datatype ( (lv_name_2_0= ruleQualifiedName ) ) (otherlv_3= Extends ( ( ruleQualifiedName ) ) (otherlv_5= Comma ( ( ruleQualifiedName ) ) )* ) ) ) - // InternalSolverLanguageParser.g:922:2: (otherlv_0= Extern otherlv_1= Datatype ( (lv_name_2_0= ruleQualifiedName ) ) (otherlv_3= Extends ( ( ruleQualifiedName ) ) (otherlv_5= Comma ( ( ruleQualifiedName ) ) )* ) ) + // InternalSolverLanguageParser.g:1300:2: ( (otherlv_0= Extern ( ( ruleQualifiedName ) ) ( (lv_name_2_0= ruleQualifiedName ) ) otherlv_3= LeftCurlyBracket ( ( ruleQualifiedName ) ) otherlv_5= FullStopFullStopFullStop otherlv_6= RightCurlyBracket this_FULL_STOP_7= RULE_FULL_STOP ) ) + // InternalSolverLanguageParser.g:1301:2: (otherlv_0= Extern ( ( ruleQualifiedName ) ) ( (lv_name_2_0= ruleQualifiedName ) ) otherlv_3= LeftCurlyBracket ( ( ruleQualifiedName ) ) otherlv_5= FullStopFullStopFullStop otherlv_6= RightCurlyBracket this_FULL_STOP_7= RULE_FULL_STOP ) { - // InternalSolverLanguageParser.g:922:2: (otherlv_0= Extern otherlv_1= Datatype ( (lv_name_2_0= ruleQualifiedName ) ) (otherlv_3= Extends ( ( ruleQualifiedName ) ) (otherlv_5= Comma ( ( ruleQualifiedName ) ) )* ) ) - // InternalSolverLanguageParser.g:923:3: otherlv_0= Extern otherlv_1= Datatype ( (lv_name_2_0= ruleQualifiedName ) ) (otherlv_3= Extends ( ( ruleQualifiedName ) ) (otherlv_5= Comma ( ( ruleQualifiedName ) ) )* ) + // InternalSolverLanguageParser.g:1301:2: (otherlv_0= Extern ( ( ruleQualifiedName ) ) ( (lv_name_2_0= ruleQualifiedName ) ) otherlv_3= LeftCurlyBracket ( ( ruleQualifiedName ) ) otherlv_5= FullStopFullStopFullStop otherlv_6= RightCurlyBracket this_FULL_STOP_7= RULE_FULL_STOP ) + // InternalSolverLanguageParser.g:1302:3: otherlv_0= Extern ( ( ruleQualifiedName ) ) ( (lv_name_2_0= ruleQualifiedName ) ) otherlv_3= LeftCurlyBracket ( ( ruleQualifiedName ) ) otherlv_5= FullStopFullStopFullStop otherlv_6= RightCurlyBracket this_FULL_STOP_7= RULE_FULL_STOP { - otherlv_0=(Token)match(input,Extern,FOLLOW_17); - - newLeafNode(otherlv_0, grammarAccess.getExternDatatypeDefinitionAccess().getExternKeyword_0()); - - otherlv_1=(Token)match(input,Datatype,FOLLOW_8); + otherlv_0=(Token)match(input,Extern,FOLLOW_3); - newLeafNode(otherlv_1, grammarAccess.getExternDatatypeDefinitionAccess().getDatatypeKeyword_1()); + newLeafNode(otherlv_0, grammarAccess.getExternAggregationOperatorDeclarationAccess().getExternKeyword_0()); - // InternalSolverLanguageParser.g:931:3: ( (lv_name_2_0= ruleQualifiedName ) ) - // InternalSolverLanguageParser.g:932:4: (lv_name_2_0= ruleQualifiedName ) + // InternalSolverLanguageParser.g:1306:3: ( ( ruleQualifiedName ) ) + // InternalSolverLanguageParser.g:1307:4: ( ruleQualifiedName ) { - // InternalSolverLanguageParser.g:932:4: (lv_name_2_0= ruleQualifiedName ) - // InternalSolverLanguageParser.g:933:5: lv_name_2_0= ruleQualifiedName + // InternalSolverLanguageParser.g:1307:4: ( ruleQualifiedName ) + // InternalSolverLanguageParser.g:1308:5: ruleQualifiedName { - newCompositeNode(grammarAccess.getExternDatatypeDefinitionAccess().getNameQualifiedNameParserRuleCall_2_0()); + if (current==null) { + current = createModelElement(grammarAccess.getExternAggregationOperatorDeclarationRule()); + } - pushFollow(FOLLOW_18); - lv_name_2_0=ruleQualifiedName(); + + newCompositeNode(grammarAccess.getExternAggregationOperatorDeclarationAccess().getResultTypeSymbolCrossReference_1_0()); + + pushFollow(FOLLOW_3); + ruleQualifiedName(); state._fsp--; - if (current==null) { - current = createModelElementForParent(grammarAccess.getExternDatatypeDefinitionRule()); - } - set( - current, - "name", - lv_name_2_0, - "org.eclipse.viatra.solver.language.SolverLanguage.QualifiedName"); afterParserOrEnumRuleCall(); @@ -2249,100 +3274,81 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } - // InternalSolverLanguageParser.g:950:3: (otherlv_3= Extends ( ( ruleQualifiedName ) ) (otherlv_5= Comma ( ( ruleQualifiedName ) ) )* ) - // InternalSolverLanguageParser.g:951:4: otherlv_3= Extends ( ( ruleQualifiedName ) ) (otherlv_5= Comma ( ( ruleQualifiedName ) ) )* - { - otherlv_3=(Token)match(input,Extends,FOLLOW_8); - - newLeafNode(otherlv_3, grammarAccess.getExternDatatypeDefinitionAccess().getExtendsKeyword_3_0()); - - // InternalSolverLanguageParser.g:955:4: ( ( ruleQualifiedName ) ) - // InternalSolverLanguageParser.g:956:5: ( ruleQualifiedName ) + // InternalSolverLanguageParser.g:1322:3: ( (lv_name_2_0= ruleQualifiedName ) ) + // InternalSolverLanguageParser.g:1323:4: (lv_name_2_0= ruleQualifiedName ) { - // InternalSolverLanguageParser.g:956:5: ( ruleQualifiedName ) - // InternalSolverLanguageParser.g:957:6: ruleQualifiedName + // InternalSolverLanguageParser.g:1323:4: (lv_name_2_0= ruleQualifiedName ) + // InternalSolverLanguageParser.g:1324:5: lv_name_2_0= ruleQualifiedName { - if (current==null) { - current = createModelElement(grammarAccess.getExternDatatypeDefinitionRule()); - } - - - newCompositeNode(grammarAccess.getExternDatatypeDefinitionAccess().getSupertypesNamedElementCrossReference_3_1_0()); - - pushFollow(FOLLOW_19); - ruleQualifiedName(); + newCompositeNode(grammarAccess.getExternAggregationOperatorDeclarationAccess().getNameQualifiedNameParserRuleCall_2_0()); + + pushFollow(FOLLOW_20); + lv_name_2_0=ruleQualifiedName(); state._fsp--; - afterParserOrEnumRuleCall(); - - - } - + if (current==null) { + current = createModelElementForParent(grammarAccess.getExternAggregationOperatorDeclarationRule()); + } + set( + current, + "name", + lv_name_2_0, + "org.eclipse.viatra.solver.language.SolverLanguage.QualifiedName"); + afterParserOrEnumRuleCall(); + } - // InternalSolverLanguageParser.g:971:4: (otherlv_5= Comma ( ( ruleQualifiedName ) ) )* - loop7: - do { - int alt7=2; - int LA7_0 = input.LA(1); - - if ( (LA7_0==Comma) ) { - alt7=1; - } - - - switch (alt7) { - case 1 : - // InternalSolverLanguageParser.g:972:5: otherlv_5= Comma ( ( ruleQualifiedName ) ) - { - otherlv_5=(Token)match(input,Comma,FOLLOW_8); - - newLeafNode(otherlv_5, grammarAccess.getExternDatatypeDefinitionAccess().getCommaKeyword_3_2_0()); - - // InternalSolverLanguageParser.g:976:5: ( ( ruleQualifiedName ) ) - // InternalSolverLanguageParser.g:977:6: ( ruleQualifiedName ) - { - // InternalSolverLanguageParser.g:977:6: ( ruleQualifiedName ) - // InternalSolverLanguageParser.g:978:7: ruleQualifiedName - { - - if (current==null) { - current = createModelElement(grammarAccess.getExternDatatypeDefinitionRule()); - } - - - newCompositeNode(grammarAccess.getExternDatatypeDefinitionAccess().getSupertypesNamedElementCrossReference_3_2_1_0()); - - pushFollow(FOLLOW_19); - ruleQualifiedName(); - state._fsp--; + } + otherlv_3=(Token)match(input,LeftCurlyBracket,FOLLOW_3); - afterParserOrEnumRuleCall(); - + newLeafNode(otherlv_3, grammarAccess.getExternAggregationOperatorDeclarationAccess().getLeftCurlyBracketKeyword_3()); + + // InternalSolverLanguageParser.g:1345:3: ( ( ruleQualifiedName ) ) + // InternalSolverLanguageParser.g:1346:4: ( ruleQualifiedName ) + { + // InternalSolverLanguageParser.g:1346:4: ( ruleQualifiedName ) + // InternalSolverLanguageParser.g:1347:5: ruleQualifiedName + { - } + if (current==null) { + current = createModelElement(grammarAccess.getExternAggregationOperatorDeclarationRule()); + } + + newCompositeNode(grammarAccess.getExternAggregationOperatorDeclarationAccess().getArgumentTypeSymbolCrossReference_4_0()); + + pushFollow(FOLLOW_21); + ruleQualifiedName(); - } + state._fsp--; - } - break; + afterParserOrEnumRuleCall(); + - default : - break loop7; - } - } while (true); + } } + otherlv_5=(Token)match(input,FullStopFullStopFullStop,FOLLOW_22); + + newLeafNode(otherlv_5, grammarAccess.getExternAggregationOperatorDeclarationAccess().getFullStopFullStopFullStopKeyword_5()); + + otherlv_6=(Token)match(input,RightCurlyBracket,FOLLOW_4); + + newLeafNode(otherlv_6, grammarAccess.getExternAggregationOperatorDeclarationAccess().getRightCurlyBracketKeyword_6()); + + this_FULL_STOP_7=(Token)match(input,RULE_FULL_STOP,FOLLOW_2); + + newLeafNode(this_FULL_STOP_7, grammarAccess.getExternAggregationOperatorDeclarationAccess().getFULL_STOPTerminalRuleCall_7()); + } @@ -2362,28 +3368,28 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } return current; } - // $ANTLR end "ruleExternDatatypeDefinition" + // $ANTLR end "ruleExternAggregationOperatorDeclaration" - // $ANTLR start "entryRuleVariable" - // InternalSolverLanguageParser.g:998:1: entryRuleVariable returns [EObject current=null] : iv_ruleVariable= ruleVariable EOF ; - public final EObject entryRuleVariable() throws RecognitionException { + // $ANTLR start "entryRuleExternDatatypeDeclaration" + // InternalSolverLanguageParser.g:1377:1: entryRuleExternDatatypeDeclaration returns [EObject current=null] : iv_ruleExternDatatypeDeclaration= ruleExternDatatypeDeclaration EOF ; + public final EObject entryRuleExternDatatypeDeclaration() throws RecognitionException { EObject current = null; - EObject iv_ruleVariable = null; + EObject iv_ruleExternDatatypeDeclaration = null; try { - // InternalSolverLanguageParser.g:998:49: (iv_ruleVariable= ruleVariable EOF ) - // InternalSolverLanguageParser.g:999:2: iv_ruleVariable= ruleVariable EOF + // InternalSolverLanguageParser.g:1377:66: (iv_ruleExternDatatypeDeclaration= ruleExternDatatypeDeclaration EOF ) + // InternalSolverLanguageParser.g:1378:2: iv_ruleExternDatatypeDeclaration= ruleExternDatatypeDeclaration EOF { - newCompositeNode(grammarAccess.getVariableRule()); + newCompositeNode(grammarAccess.getExternDatatypeDeclarationRule()); pushFollow(FOLLOW_1); - iv_ruleVariable=ruleVariable(); + iv_ruleExternDatatypeDeclaration=ruleExternDatatypeDeclaration(); state._fsp--; - current =iv_ruleVariable; + current =iv_ruleExternDatatypeDeclaration; match(input,EOF,FOLLOW_2); } @@ -2398,91 +3404,62 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } return current; } - // $ANTLR end "entryRuleVariable" + // $ANTLR end "entryRuleExternDatatypeDeclaration" - // $ANTLR start "ruleVariable" - // InternalSolverLanguageParser.g:1005:1: ruleVariable returns [EObject current=null] : ( ( ( ruleQualifiedName ) )? ( (lv_name_1_0= RULE_ID ) ) ) ; - public final EObject ruleVariable() throws RecognitionException { + // $ANTLR start "ruleExternDatatypeDeclaration" + // InternalSolverLanguageParser.g:1384:1: ruleExternDatatypeDeclaration returns [EObject current=null] : (otherlv_0= Extern otherlv_1= Datatype ( (lv_name_2_0= ruleQualifiedName ) ) this_FULL_STOP_3= RULE_FULL_STOP ) ; + public final EObject ruleExternDatatypeDeclaration() throws RecognitionException { EObject current = null; - Token lv_name_1_0=null; + Token otherlv_0=null; + Token otherlv_1=null; + Token this_FULL_STOP_3=null; + AntlrDatatypeRuleToken lv_name_2_0 = null; + enterRule(); try { - // InternalSolverLanguageParser.g:1011:2: ( ( ( ( ruleQualifiedName ) )? ( (lv_name_1_0= RULE_ID ) ) ) ) - // InternalSolverLanguageParser.g:1012:2: ( ( ( ruleQualifiedName ) )? ( (lv_name_1_0= RULE_ID ) ) ) + // InternalSolverLanguageParser.g:1390:2: ( (otherlv_0= Extern otherlv_1= Datatype ( (lv_name_2_0= ruleQualifiedName ) ) this_FULL_STOP_3= RULE_FULL_STOP ) ) + // InternalSolverLanguageParser.g:1391:2: (otherlv_0= Extern otherlv_1= Datatype ( (lv_name_2_0= ruleQualifiedName ) ) this_FULL_STOP_3= RULE_FULL_STOP ) { - // InternalSolverLanguageParser.g:1012:2: ( ( ( ruleQualifiedName ) )? ( (lv_name_1_0= RULE_ID ) ) ) - // InternalSolverLanguageParser.g:1013:3: ( ( ruleQualifiedName ) )? ( (lv_name_1_0= RULE_ID ) ) + // InternalSolverLanguageParser.g:1391:2: (otherlv_0= Extern otherlv_1= Datatype ( (lv_name_2_0= ruleQualifiedName ) ) this_FULL_STOP_3= RULE_FULL_STOP ) + // InternalSolverLanguageParser.g:1392:3: otherlv_0= Extern otherlv_1= Datatype ( (lv_name_2_0= ruleQualifiedName ) ) this_FULL_STOP_3= RULE_FULL_STOP { - // InternalSolverLanguageParser.g:1013:3: ( ( ruleQualifiedName ) )? - int alt8=2; - int LA8_0 = input.LA(1); - - if ( (LA8_0==RULE_ID) ) { - int LA8_1 = input.LA(2); - - if ( (LA8_1==FullStop||LA8_1==RULE_ID) ) { - alt8=1; - } - } - else if ( (LA8_0==RULE_QUOTED_ID) ) { - alt8=1; - } - switch (alt8) { - case 1 : - // InternalSolverLanguageParser.g:1014:4: ( ruleQualifiedName ) - { - // InternalSolverLanguageParser.g:1014:4: ( ruleQualifiedName ) - // InternalSolverLanguageParser.g:1015:5: ruleQualifiedName - { - - if (current==null) { - current = createModelElement(grammarAccess.getVariableRule()); - } - - - newCompositeNode(grammarAccess.getVariableAccess().getTypeNamedElementCrossReference_0_0()); - - pushFollow(FOLLOW_20); - ruleQualifiedName(); + otherlv_0=(Token)match(input,Extern,FOLLOW_23); - state._fsp--; - - - afterParserOrEnumRuleCall(); - - - } - - - } - break; - - } + newLeafNode(otherlv_0, grammarAccess.getExternDatatypeDeclarationAccess().getExternKeyword_0()); + + otherlv_1=(Token)match(input,Datatype,FOLLOW_3); - // InternalSolverLanguageParser.g:1029:3: ( (lv_name_1_0= RULE_ID ) ) - // InternalSolverLanguageParser.g:1030:4: (lv_name_1_0= RULE_ID ) + newLeafNode(otherlv_1, grammarAccess.getExternDatatypeDeclarationAccess().getDatatypeKeyword_1()); + + // InternalSolverLanguageParser.g:1400:3: ( (lv_name_2_0= ruleQualifiedName ) ) + // InternalSolverLanguageParser.g:1401:4: (lv_name_2_0= ruleQualifiedName ) { - // InternalSolverLanguageParser.g:1030:4: (lv_name_1_0= RULE_ID ) - // InternalSolverLanguageParser.g:1031:5: lv_name_1_0= RULE_ID + // InternalSolverLanguageParser.g:1401:4: (lv_name_2_0= ruleQualifiedName ) + // InternalSolverLanguageParser.g:1402:5: lv_name_2_0= ruleQualifiedName { - lv_name_1_0=(Token)match(input,RULE_ID,FOLLOW_2); - newLeafNode(lv_name_1_0, grammarAccess.getVariableAccess().getNameIDTerminalRuleCall_1_0()); + newCompositeNode(grammarAccess.getExternDatatypeDeclarationAccess().getNameQualifiedNameParserRuleCall_2_0()); + pushFollow(FOLLOW_4); + lv_name_2_0=ruleQualifiedName(); + + state._fsp--; + if (current==null) { - current = createModelElement(grammarAccess.getVariableRule()); + current = createModelElementForParent(grammarAccess.getExternDatatypeDeclarationRule()); } - setWithLastConsumed( + set( current, "name", - lv_name_1_0, - "org.eclipse.xtext.common.Terminals.ID"); + lv_name_2_0, + "org.eclipse.viatra.solver.language.SolverLanguage.QualifiedName"); + afterParserOrEnumRuleCall(); } @@ -2490,6 +3467,10 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } + this_FULL_STOP_3=(Token)match(input,RULE_FULL_STOP,FOLLOW_2); + + newLeafNode(this_FULL_STOP_3, grammarAccess.getExternDatatypeDeclarationAccess().getFULL_STOPTerminalRuleCall_3()); + } @@ -2509,11 +3490,11 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } return current; } - // $ANTLR end "ruleVariable" + // $ANTLR end "ruleExternDatatypeDeclaration" // $ANTLR start "entryRuleExpression" - // InternalSolverLanguageParser.g:1051:1: entryRuleExpression returns [EObject current=null] : iv_ruleExpression= ruleExpression EOF ; + // InternalSolverLanguageParser.g:1427:1: entryRuleExpression returns [EObject current=null] : iv_ruleExpression= ruleExpression EOF ; public final EObject entryRuleExpression() throws RecognitionException { EObject current = null; @@ -2521,8 +3502,8 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { try { - // InternalSolverLanguageParser.g:1051:51: (iv_ruleExpression= ruleExpression EOF ) - // InternalSolverLanguageParser.g:1052:2: iv_ruleExpression= ruleExpression EOF + // InternalSolverLanguageParser.g:1427:51: (iv_ruleExpression= ruleExpression EOF ) + // InternalSolverLanguageParser.g:1428:2: iv_ruleExpression= ruleExpression EOF { newCompositeNode(grammarAccess.getExpressionRule()); pushFollow(FOLLOW_1); @@ -2549,121 +3530,191 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { // $ANTLR start "ruleExpression" - // InternalSolverLanguageParser.g:1058:1: ruleExpression returns [EObject current=null] : (this_IfElse_0= ruleIfElse | this_Let_1= ruleLet | this_ImplicationExpression_2= ruleImplicationExpression ) ; + // InternalSolverLanguageParser.g:1434:1: ruleExpression returns [EObject current=null] : (this_ConditionalExpression_0= ruleConditionalExpression | this_LetExpression_1= ruleLetExpression | (this_DisjunctiveExpression_2= ruleDisjunctiveExpression ( () otherlv_4= EqualsSignGreaterThanSign ( (lv_body_5_0= ruleDisjunctiveExpression ) ) )? ) ) ; public final EObject ruleExpression() throws RecognitionException { EObject current = null; - EObject this_IfElse_0 = null; + Token otherlv_4=null; + EObject this_ConditionalExpression_0 = null; + + EObject this_LetExpression_1 = null; - EObject this_Let_1 = null; + EObject this_DisjunctiveExpression_2 = null; - EObject this_ImplicationExpression_2 = null; + EObject lv_body_5_0 = null; enterRule(); try { - // InternalSolverLanguageParser.g:1064:2: ( (this_IfElse_0= ruleIfElse | this_Let_1= ruleLet | this_ImplicationExpression_2= ruleImplicationExpression ) ) - // InternalSolverLanguageParser.g:1065:2: (this_IfElse_0= ruleIfElse | this_Let_1= ruleLet | this_ImplicationExpression_2= ruleImplicationExpression ) + // InternalSolverLanguageParser.g:1440:2: ( (this_ConditionalExpression_0= ruleConditionalExpression | this_LetExpression_1= ruleLetExpression | (this_DisjunctiveExpression_2= ruleDisjunctiveExpression ( () otherlv_4= EqualsSignGreaterThanSign ( (lv_body_5_0= ruleDisjunctiveExpression ) ) )? ) ) ) + // InternalSolverLanguageParser.g:1441:2: (this_ConditionalExpression_0= ruleConditionalExpression | this_LetExpression_1= ruleLetExpression | (this_DisjunctiveExpression_2= ruleDisjunctiveExpression ( () otherlv_4= EqualsSignGreaterThanSign ( (lv_body_5_0= ruleDisjunctiveExpression ) ) )? ) ) { - // InternalSolverLanguageParser.g:1065:2: (this_IfElse_0= ruleIfElse | this_Let_1= ruleLet | this_ImplicationExpression_2= ruleImplicationExpression ) - int alt9=3; + // InternalSolverLanguageParser.g:1441:2: (this_ConditionalExpression_0= ruleConditionalExpression | this_LetExpression_1= ruleLetExpression | (this_DisjunctiveExpression_2= ruleDisjunctiveExpression ( () otherlv_4= EqualsSignGreaterThanSign ( (lv_body_5_0= ruleDisjunctiveExpression ) ) )? ) ) + int alt16=3; switch ( input.LA(1) ) { case If: { - alt9=1; + alt16=1; } break; case Let: { - alt9=2; + alt16=2; } break; - case Current: case Unknown: - case Exists: - case Forall: + case Object: case Count: case Empty: case Error: case False: - case Must: case True: case Inf: - case May: case ExclamationMark: case LeftParenthesis: case PlusSign: case HyphenMinus: + case QuestionMark: case LeftSquareBracket: + case Tilde: case RULE_STRING: case RULE_QUOTED_ID: case RULE_ID: case RULE_INT: { - alt9=3; + alt16=3; } break; default: NoViableAltException nvae = - new NoViableAltException("", 9, 0, input); + new NoViableAltException("", 16, 0, input); throw nvae; } - switch (alt9) { + switch (alt16) { case 1 : - // InternalSolverLanguageParser.g:1066:3: this_IfElse_0= ruleIfElse + // InternalSolverLanguageParser.g:1442:3: this_ConditionalExpression_0= ruleConditionalExpression { - newCompositeNode(grammarAccess.getExpressionAccess().getIfElseParserRuleCall_0()); + newCompositeNode(grammarAccess.getExpressionAccess().getConditionalExpressionParserRuleCall_0()); pushFollow(FOLLOW_2); - this_IfElse_0=ruleIfElse(); + this_ConditionalExpression_0=ruleConditionalExpression(); state._fsp--; - current = this_IfElse_0; + current = this_ConditionalExpression_0; afterParserOrEnumRuleCall(); } break; case 2 : - // InternalSolverLanguageParser.g:1075:3: this_Let_1= ruleLet + // InternalSolverLanguageParser.g:1451:3: this_LetExpression_1= ruleLetExpression { - newCompositeNode(grammarAccess.getExpressionAccess().getLetParserRuleCall_1()); + newCompositeNode(grammarAccess.getExpressionAccess().getLetExpressionParserRuleCall_1()); pushFollow(FOLLOW_2); - this_Let_1=ruleLet(); + this_LetExpression_1=ruleLetExpression(); state._fsp--; - current = this_Let_1; + current = this_LetExpression_1; afterParserOrEnumRuleCall(); } break; case 3 : - // InternalSolverLanguageParser.g:1084:3: this_ImplicationExpression_2= ruleImplicationExpression + // InternalSolverLanguageParser.g:1460:3: (this_DisjunctiveExpression_2= ruleDisjunctiveExpression ( () otherlv_4= EqualsSignGreaterThanSign ( (lv_body_5_0= ruleDisjunctiveExpression ) ) )? ) + { + // InternalSolverLanguageParser.g:1460:3: (this_DisjunctiveExpression_2= ruleDisjunctiveExpression ( () otherlv_4= EqualsSignGreaterThanSign ( (lv_body_5_0= ruleDisjunctiveExpression ) ) )? ) + // InternalSolverLanguageParser.g:1461:4: this_DisjunctiveExpression_2= ruleDisjunctiveExpression ( () otherlv_4= EqualsSignGreaterThanSign ( (lv_body_5_0= ruleDisjunctiveExpression ) ) )? { - newCompositeNode(grammarAccess.getExpressionAccess().getImplicationExpressionParserRuleCall_2()); - - pushFollow(FOLLOW_2); - this_ImplicationExpression_2=ruleImplicationExpression(); + newCompositeNode(grammarAccess.getExpressionAccess().getDisjunctiveExpressionParserRuleCall_2_0()); + + pushFollow(FOLLOW_24); + this_DisjunctiveExpression_2=ruleDisjunctiveExpression(); state._fsp--; - current = this_ImplicationExpression_2; - afterParserOrEnumRuleCall(); - + current = this_DisjunctiveExpression_2; + afterParserOrEnumRuleCall(); + + // InternalSolverLanguageParser.g:1469:4: ( () otherlv_4= EqualsSignGreaterThanSign ( (lv_body_5_0= ruleDisjunctiveExpression ) ) )? + int alt15=2; + int LA15_0 = input.LA(1); + + if ( (LA15_0==EqualsSignGreaterThanSign) ) { + alt15=1; + } + switch (alt15) { + case 1 : + // InternalSolverLanguageParser.g:1470:5: () otherlv_4= EqualsSignGreaterThanSign ( (lv_body_5_0= ruleDisjunctiveExpression ) ) + { + // InternalSolverLanguageParser.g:1470:5: () + // InternalSolverLanguageParser.g:1471:6: + { + + current = forceCreateModelElementAndSet( + grammarAccess.getExpressionAccess().getForallConditionAction_2_1_0(), + current); + + + } + + otherlv_4=(Token)match(input,EqualsSignGreaterThanSign,FOLLOW_10); + + newLeafNode(otherlv_4, grammarAccess.getExpressionAccess().getEqualsSignGreaterThanSignKeyword_2_1_1()); + + // InternalSolverLanguageParser.g:1481:5: ( (lv_body_5_0= ruleDisjunctiveExpression ) ) + // InternalSolverLanguageParser.g:1482:6: (lv_body_5_0= ruleDisjunctiveExpression ) + { + // InternalSolverLanguageParser.g:1482:6: (lv_body_5_0= ruleDisjunctiveExpression ) + // InternalSolverLanguageParser.g:1483:7: lv_body_5_0= ruleDisjunctiveExpression + { + + newCompositeNode(grammarAccess.getExpressionAccess().getBodyDisjunctiveExpressionParserRuleCall_2_1_2_0()); + + pushFollow(FOLLOW_2); + lv_body_5_0=ruleDisjunctiveExpression(); + + state._fsp--; + + + if (current==null) { + current = createModelElementForParent(grammarAccess.getExpressionRule()); + } + set( + current, + "body", + lv_body_5_0, + "org.eclipse.viatra.solver.language.SolverLanguage.DisjunctiveExpression"); + afterParserOrEnumRuleCall(); + + + } + + + } + + + } + break; + + } + + + } + } break; @@ -2689,25 +3740,25 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { // $ANTLR end "ruleExpression" - // $ANTLR start "entryRuleIfElse" - // InternalSolverLanguageParser.g:1096:1: entryRuleIfElse returns [EObject current=null] : iv_ruleIfElse= ruleIfElse EOF ; - public final EObject entryRuleIfElse() throws RecognitionException { + // $ANTLR start "entryRuleConditionalExpression" + // InternalSolverLanguageParser.g:1506:1: entryRuleConditionalExpression returns [EObject current=null] : iv_ruleConditionalExpression= ruleConditionalExpression EOF ; + public final EObject entryRuleConditionalExpression() throws RecognitionException { EObject current = null; - EObject iv_ruleIfElse = null; + EObject iv_ruleConditionalExpression = null; try { - // InternalSolverLanguageParser.g:1096:47: (iv_ruleIfElse= ruleIfElse EOF ) - // InternalSolverLanguageParser.g:1097:2: iv_ruleIfElse= ruleIfElse EOF + // InternalSolverLanguageParser.g:1506:62: (iv_ruleConditionalExpression= ruleConditionalExpression EOF ) + // InternalSolverLanguageParser.g:1507:2: iv_ruleConditionalExpression= ruleConditionalExpression EOF { - newCompositeNode(grammarAccess.getIfElseRule()); + newCompositeNode(grammarAccess.getConditionalExpressionRule()); pushFollow(FOLLOW_1); - iv_ruleIfElse=ruleIfElse(); + iv_ruleConditionalExpression=ruleConditionalExpression(); state._fsp--; - current =iv_ruleIfElse; + current =iv_ruleConditionalExpression; match(input,EOF,FOLLOW_2); } @@ -2722,12 +3773,12 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } return current; } - // $ANTLR end "entryRuleIfElse" + // $ANTLR end "entryRuleConditionalExpression" - // $ANTLR start "ruleIfElse" - // InternalSolverLanguageParser.g:1103:1: ruleIfElse returns [EObject current=null] : (otherlv_0= If ( (lv_condition_1_0= ruleExpression ) ) otherlv_2= Then ( (lv_then_3_0= ruleExpression ) ) otherlv_4= Else ( (lv_else_5_0= ruleExpression ) ) ) ; - public final EObject ruleIfElse() throws RecognitionException { + // $ANTLR start "ruleConditionalExpression" + // InternalSolverLanguageParser.g:1513:1: ruleConditionalExpression returns [EObject current=null] : (otherlv_0= If ( (lv_condition_1_0= ruleDisjunctiveExpression ) ) otherlv_2= Then ( (lv_then_3_0= ruleExpression ) ) otherlv_4= Else ( (lv_else_5_0= ruleExpression ) ) ) ; + public final EObject ruleConditionalExpression() throws RecognitionException { EObject current = null; Token otherlv_0=null; @@ -2744,39 +3795,39 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { enterRule(); try { - // InternalSolverLanguageParser.g:1109:2: ( (otherlv_0= If ( (lv_condition_1_0= ruleExpression ) ) otherlv_2= Then ( (lv_then_3_0= ruleExpression ) ) otherlv_4= Else ( (lv_else_5_0= ruleExpression ) ) ) ) - // InternalSolverLanguageParser.g:1110:2: (otherlv_0= If ( (lv_condition_1_0= ruleExpression ) ) otherlv_2= Then ( (lv_then_3_0= ruleExpression ) ) otherlv_4= Else ( (lv_else_5_0= ruleExpression ) ) ) + // InternalSolverLanguageParser.g:1519:2: ( (otherlv_0= If ( (lv_condition_1_0= ruleDisjunctiveExpression ) ) otherlv_2= Then ( (lv_then_3_0= ruleExpression ) ) otherlv_4= Else ( (lv_else_5_0= ruleExpression ) ) ) ) + // InternalSolverLanguageParser.g:1520:2: (otherlv_0= If ( (lv_condition_1_0= ruleDisjunctiveExpression ) ) otherlv_2= Then ( (lv_then_3_0= ruleExpression ) ) otherlv_4= Else ( (lv_else_5_0= ruleExpression ) ) ) { - // InternalSolverLanguageParser.g:1110:2: (otherlv_0= If ( (lv_condition_1_0= ruleExpression ) ) otherlv_2= Then ( (lv_then_3_0= ruleExpression ) ) otherlv_4= Else ( (lv_else_5_0= ruleExpression ) ) ) - // InternalSolverLanguageParser.g:1111:3: otherlv_0= If ( (lv_condition_1_0= ruleExpression ) ) otherlv_2= Then ( (lv_then_3_0= ruleExpression ) ) otherlv_4= Else ( (lv_else_5_0= ruleExpression ) ) + // InternalSolverLanguageParser.g:1520:2: (otherlv_0= If ( (lv_condition_1_0= ruleDisjunctiveExpression ) ) otherlv_2= Then ( (lv_then_3_0= ruleExpression ) ) otherlv_4= Else ( (lv_else_5_0= ruleExpression ) ) ) + // InternalSolverLanguageParser.g:1521:3: otherlv_0= If ( (lv_condition_1_0= ruleDisjunctiveExpression ) ) otherlv_2= Then ( (lv_then_3_0= ruleExpression ) ) otherlv_4= Else ( (lv_else_5_0= ruleExpression ) ) { - otherlv_0=(Token)match(input,If,FOLLOW_6); + otherlv_0=(Token)match(input,If,FOLLOW_10); - newLeafNode(otherlv_0, grammarAccess.getIfElseAccess().getIfKeyword_0()); + newLeafNode(otherlv_0, grammarAccess.getConditionalExpressionAccess().getIfKeyword_0()); - // InternalSolverLanguageParser.g:1115:3: ( (lv_condition_1_0= ruleExpression ) ) - // InternalSolverLanguageParser.g:1116:4: (lv_condition_1_0= ruleExpression ) + // InternalSolverLanguageParser.g:1525:3: ( (lv_condition_1_0= ruleDisjunctiveExpression ) ) + // InternalSolverLanguageParser.g:1526:4: (lv_condition_1_0= ruleDisjunctiveExpression ) { - // InternalSolverLanguageParser.g:1116:4: (lv_condition_1_0= ruleExpression ) - // InternalSolverLanguageParser.g:1117:5: lv_condition_1_0= ruleExpression + // InternalSolverLanguageParser.g:1526:4: (lv_condition_1_0= ruleDisjunctiveExpression ) + // InternalSolverLanguageParser.g:1527:5: lv_condition_1_0= ruleDisjunctiveExpression { - newCompositeNode(grammarAccess.getIfElseAccess().getConditionExpressionParserRuleCall_1_0()); + newCompositeNode(grammarAccess.getConditionalExpressionAccess().getConditionDisjunctiveExpressionParserRuleCall_1_0()); - pushFollow(FOLLOW_21); - lv_condition_1_0=ruleExpression(); + pushFollow(FOLLOW_25); + lv_condition_1_0=ruleDisjunctiveExpression(); state._fsp--; if (current==null) { - current = createModelElementForParent(grammarAccess.getIfElseRule()); + current = createModelElementForParent(grammarAccess.getConditionalExpressionRule()); } set( current, "condition", lv_condition_1_0, - "org.eclipse.viatra.solver.language.SolverLanguage.Expression"); + "org.eclipse.viatra.solver.language.SolverLanguage.DisjunctiveExpression"); afterParserOrEnumRuleCall(); @@ -2785,27 +3836,27 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } - otherlv_2=(Token)match(input,Then,FOLLOW_6); + otherlv_2=(Token)match(input,Then,FOLLOW_10); - newLeafNode(otherlv_2, grammarAccess.getIfElseAccess().getThenKeyword_2()); + newLeafNode(otherlv_2, grammarAccess.getConditionalExpressionAccess().getThenKeyword_2()); - // InternalSolverLanguageParser.g:1138:3: ( (lv_then_3_0= ruleExpression ) ) - // InternalSolverLanguageParser.g:1139:4: (lv_then_3_0= ruleExpression ) + // InternalSolverLanguageParser.g:1548:3: ( (lv_then_3_0= ruleExpression ) ) + // InternalSolverLanguageParser.g:1549:4: (lv_then_3_0= ruleExpression ) { - // InternalSolverLanguageParser.g:1139:4: (lv_then_3_0= ruleExpression ) - // InternalSolverLanguageParser.g:1140:5: lv_then_3_0= ruleExpression + // InternalSolverLanguageParser.g:1549:4: (lv_then_3_0= ruleExpression ) + // InternalSolverLanguageParser.g:1550:5: lv_then_3_0= ruleExpression { - newCompositeNode(grammarAccess.getIfElseAccess().getThenExpressionParserRuleCall_3_0()); + newCompositeNode(grammarAccess.getConditionalExpressionAccess().getThenExpressionParserRuleCall_3_0()); - pushFollow(FOLLOW_22); + pushFollow(FOLLOW_26); lv_then_3_0=ruleExpression(); state._fsp--; if (current==null) { - current = createModelElementForParent(grammarAccess.getIfElseRule()); + current = createModelElementForParent(grammarAccess.getConditionalExpressionRule()); } set( current, @@ -2820,18 +3871,18 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } - otherlv_4=(Token)match(input,Else,FOLLOW_6); + otherlv_4=(Token)match(input,Else,FOLLOW_10); - newLeafNode(otherlv_4, grammarAccess.getIfElseAccess().getElseKeyword_4()); + newLeafNode(otherlv_4, grammarAccess.getConditionalExpressionAccess().getElseKeyword_4()); - // InternalSolverLanguageParser.g:1161:3: ( (lv_else_5_0= ruleExpression ) ) - // InternalSolverLanguageParser.g:1162:4: (lv_else_5_0= ruleExpression ) + // InternalSolverLanguageParser.g:1571:3: ( (lv_else_5_0= ruleExpression ) ) + // InternalSolverLanguageParser.g:1572:4: (lv_else_5_0= ruleExpression ) { - // InternalSolverLanguageParser.g:1162:4: (lv_else_5_0= ruleExpression ) - // InternalSolverLanguageParser.g:1163:5: lv_else_5_0= ruleExpression + // InternalSolverLanguageParser.g:1572:4: (lv_else_5_0= ruleExpression ) + // InternalSolverLanguageParser.g:1573:5: lv_else_5_0= ruleExpression { - newCompositeNode(grammarAccess.getIfElseAccess().getElseExpressionParserRuleCall_5_0()); + newCompositeNode(grammarAccess.getConditionalExpressionAccess().getElseExpressionParserRuleCall_5_0()); pushFollow(FOLLOW_2); lv_else_5_0=ruleExpression(); @@ -2840,7 +3891,7 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { if (current==null) { - current = createModelElementForParent(grammarAccess.getIfElseRule()); + current = createModelElementForParent(grammarAccess.getConditionalExpressionRule()); } set( current, @@ -2874,28 +3925,28 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } return current; } - // $ANTLR end "ruleIfElse" + // $ANTLR end "ruleConditionalExpression" - // $ANTLR start "entryRuleLet" - // InternalSolverLanguageParser.g:1184:1: entryRuleLet returns [EObject current=null] : iv_ruleLet= ruleLet EOF ; - public final EObject entryRuleLet() throws RecognitionException { + // $ANTLR start "entryRuleLetExpression" + // InternalSolverLanguageParser.g:1594:1: entryRuleLetExpression returns [EObject current=null] : iv_ruleLetExpression= ruleLetExpression EOF ; + public final EObject entryRuleLetExpression() throws RecognitionException { EObject current = null; - EObject iv_ruleLet = null; + EObject iv_ruleLetExpression = null; try { - // InternalSolverLanguageParser.g:1184:44: (iv_ruleLet= ruleLet EOF ) - // InternalSolverLanguageParser.g:1185:2: iv_ruleLet= ruleLet EOF + // InternalSolverLanguageParser.g:1594:54: (iv_ruleLetExpression= ruleLetExpression EOF ) + // InternalSolverLanguageParser.g:1595:2: iv_ruleLetExpression= ruleLetExpression EOF { - newCompositeNode(grammarAccess.getLetRule()); + newCompositeNode(grammarAccess.getLetExpressionRule()); pushFollow(FOLLOW_1); - iv_ruleLet=ruleLet(); + iv_ruleLetExpression=ruleLetExpression(); state._fsp--; - current =iv_ruleLet; + current =iv_ruleLetExpression; match(input,EOF,FOLLOW_2); } @@ -2910,12 +3961,12 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } return current; } - // $ANTLR end "entryRuleLet" + // $ANTLR end "entryRuleLetExpression" - // $ANTLR start "ruleLet" - // InternalSolverLanguageParser.g:1191:1: ruleLet returns [EObject current=null] : (otherlv_0= Let ( (lv_bindings_1_0= ruleLetBinding ) ) (otherlv_2= Comma ( (lv_bindings_3_0= ruleLetBinding ) ) )* otherlv_4= In ( (lv_body_5_0= ruleExpression ) ) ) ; - public final EObject ruleLet() throws RecognitionException { + // $ANTLR start "ruleLetExpression" + // InternalSolverLanguageParser.g:1601:1: ruleLetExpression returns [EObject current=null] : (otherlv_0= Let ( (lv_bindings_1_0= ruleLetBinding ) ) (otherlv_2= Comma ( (lv_bindings_3_0= ruleLetBinding ) ) )* otherlv_4= In ( (lv_body_5_0= ruleExpression ) ) ) ; + public final EObject ruleLetExpression() throws RecognitionException { EObject current = null; Token otherlv_0=null; @@ -2932,33 +3983,33 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { enterRule(); try { - // InternalSolverLanguageParser.g:1197:2: ( (otherlv_0= Let ( (lv_bindings_1_0= ruleLetBinding ) ) (otherlv_2= Comma ( (lv_bindings_3_0= ruleLetBinding ) ) )* otherlv_4= In ( (lv_body_5_0= ruleExpression ) ) ) ) - // InternalSolverLanguageParser.g:1198:2: (otherlv_0= Let ( (lv_bindings_1_0= ruleLetBinding ) ) (otherlv_2= Comma ( (lv_bindings_3_0= ruleLetBinding ) ) )* otherlv_4= In ( (lv_body_5_0= ruleExpression ) ) ) + // InternalSolverLanguageParser.g:1607:2: ( (otherlv_0= Let ( (lv_bindings_1_0= ruleLetBinding ) ) (otherlv_2= Comma ( (lv_bindings_3_0= ruleLetBinding ) ) )* otherlv_4= In ( (lv_body_5_0= ruleExpression ) ) ) ) + // InternalSolverLanguageParser.g:1608:2: (otherlv_0= Let ( (lv_bindings_1_0= ruleLetBinding ) ) (otherlv_2= Comma ( (lv_bindings_3_0= ruleLetBinding ) ) )* otherlv_4= In ( (lv_body_5_0= ruleExpression ) ) ) { - // InternalSolverLanguageParser.g:1198:2: (otherlv_0= Let ( (lv_bindings_1_0= ruleLetBinding ) ) (otherlv_2= Comma ( (lv_bindings_3_0= ruleLetBinding ) ) )* otherlv_4= In ( (lv_body_5_0= ruleExpression ) ) ) - // InternalSolverLanguageParser.g:1199:3: otherlv_0= Let ( (lv_bindings_1_0= ruleLetBinding ) ) (otherlv_2= Comma ( (lv_bindings_3_0= ruleLetBinding ) ) )* otherlv_4= In ( (lv_body_5_0= ruleExpression ) ) + // InternalSolverLanguageParser.g:1608:2: (otherlv_0= Let ( (lv_bindings_1_0= ruleLetBinding ) ) (otherlv_2= Comma ( (lv_bindings_3_0= ruleLetBinding ) ) )* otherlv_4= In ( (lv_body_5_0= ruleExpression ) ) ) + // InternalSolverLanguageParser.g:1609:3: otherlv_0= Let ( (lv_bindings_1_0= ruleLetBinding ) ) (otherlv_2= Comma ( (lv_bindings_3_0= ruleLetBinding ) ) )* otherlv_4= In ( (lv_body_5_0= ruleExpression ) ) { - otherlv_0=(Token)match(input,Let,FOLLOW_8); + otherlv_0=(Token)match(input,Let,FOLLOW_3); - newLeafNode(otherlv_0, grammarAccess.getLetAccess().getLetKeyword_0()); + newLeafNode(otherlv_0, grammarAccess.getLetExpressionAccess().getLetKeyword_0()); - // InternalSolverLanguageParser.g:1203:3: ( (lv_bindings_1_0= ruleLetBinding ) ) - // InternalSolverLanguageParser.g:1204:4: (lv_bindings_1_0= ruleLetBinding ) + // InternalSolverLanguageParser.g:1613:3: ( (lv_bindings_1_0= ruleLetBinding ) ) + // InternalSolverLanguageParser.g:1614:4: (lv_bindings_1_0= ruleLetBinding ) { - // InternalSolverLanguageParser.g:1204:4: (lv_bindings_1_0= ruleLetBinding ) - // InternalSolverLanguageParser.g:1205:5: lv_bindings_1_0= ruleLetBinding + // InternalSolverLanguageParser.g:1614:4: (lv_bindings_1_0= ruleLetBinding ) + // InternalSolverLanguageParser.g:1615:5: lv_bindings_1_0= ruleLetBinding { - newCompositeNode(grammarAccess.getLetAccess().getBindingsLetBindingParserRuleCall_1_0()); + newCompositeNode(grammarAccess.getLetExpressionAccess().getBindingsLetBindingParserRuleCall_1_0()); - pushFollow(FOLLOW_23); + pushFollow(FOLLOW_27); lv_bindings_1_0=ruleLetBinding(); state._fsp--; if (current==null) { - current = createModelElementForParent(grammarAccess.getLetRule()); + current = createModelElementForParent(grammarAccess.getLetExpressionRule()); } add( current, @@ -2973,42 +4024,42 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } - // InternalSolverLanguageParser.g:1222:3: (otherlv_2= Comma ( (lv_bindings_3_0= ruleLetBinding ) ) )* - loop10: + // InternalSolverLanguageParser.g:1632:3: (otherlv_2= Comma ( (lv_bindings_3_0= ruleLetBinding ) ) )* + loop17: do { - int alt10=2; - int LA10_0 = input.LA(1); + int alt17=2; + int LA17_0 = input.LA(1); - if ( (LA10_0==Comma) ) { - alt10=1; + if ( (LA17_0==Comma) ) { + alt17=1; } - switch (alt10) { + switch (alt17) { case 1 : - // InternalSolverLanguageParser.g:1223:4: otherlv_2= Comma ( (lv_bindings_3_0= ruleLetBinding ) ) + // InternalSolverLanguageParser.g:1633:4: otherlv_2= Comma ( (lv_bindings_3_0= ruleLetBinding ) ) { - otherlv_2=(Token)match(input,Comma,FOLLOW_8); + otherlv_2=(Token)match(input,Comma,FOLLOW_3); - newLeafNode(otherlv_2, grammarAccess.getLetAccess().getCommaKeyword_2_0()); + newLeafNode(otherlv_2, grammarAccess.getLetExpressionAccess().getCommaKeyword_2_0()); - // InternalSolverLanguageParser.g:1227:4: ( (lv_bindings_3_0= ruleLetBinding ) ) - // InternalSolverLanguageParser.g:1228:5: (lv_bindings_3_0= ruleLetBinding ) + // InternalSolverLanguageParser.g:1637:4: ( (lv_bindings_3_0= ruleLetBinding ) ) + // InternalSolverLanguageParser.g:1638:5: (lv_bindings_3_0= ruleLetBinding ) { - // InternalSolverLanguageParser.g:1228:5: (lv_bindings_3_0= ruleLetBinding ) - // InternalSolverLanguageParser.g:1229:6: lv_bindings_3_0= ruleLetBinding + // InternalSolverLanguageParser.g:1638:5: (lv_bindings_3_0= ruleLetBinding ) + // InternalSolverLanguageParser.g:1639:6: lv_bindings_3_0= ruleLetBinding { - newCompositeNode(grammarAccess.getLetAccess().getBindingsLetBindingParserRuleCall_2_1_0()); + newCompositeNode(grammarAccess.getLetExpressionAccess().getBindingsLetBindingParserRuleCall_2_1_0()); - pushFollow(FOLLOW_23); + pushFollow(FOLLOW_27); lv_bindings_3_0=ruleLetBinding(); state._fsp--; if (current==null) { - current = createModelElementForParent(grammarAccess.getLetRule()); + current = createModelElementForParent(grammarAccess.getLetExpressionRule()); } add( current, @@ -3028,22 +4079,22 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { break; default : - break loop10; + break loop17; } } while (true); - otherlv_4=(Token)match(input,In,FOLLOW_6); + otherlv_4=(Token)match(input,In,FOLLOW_10); - newLeafNode(otherlv_4, grammarAccess.getLetAccess().getInKeyword_3()); + newLeafNode(otherlv_4, grammarAccess.getLetExpressionAccess().getInKeyword_3()); - // InternalSolverLanguageParser.g:1251:3: ( (lv_body_5_0= ruleExpression ) ) - // InternalSolverLanguageParser.g:1252:4: (lv_body_5_0= ruleExpression ) + // InternalSolverLanguageParser.g:1661:3: ( (lv_body_5_0= ruleExpression ) ) + // InternalSolverLanguageParser.g:1662:4: (lv_body_5_0= ruleExpression ) { - // InternalSolverLanguageParser.g:1252:4: (lv_body_5_0= ruleExpression ) - // InternalSolverLanguageParser.g:1253:5: lv_body_5_0= ruleExpression + // InternalSolverLanguageParser.g:1662:4: (lv_body_5_0= ruleExpression ) + // InternalSolverLanguageParser.g:1663:5: lv_body_5_0= ruleExpression { - newCompositeNode(grammarAccess.getLetAccess().getBodyExpressionParserRuleCall_4_0()); + newCompositeNode(grammarAccess.getLetExpressionAccess().getBodyExpressionParserRuleCall_4_0()); pushFollow(FOLLOW_2); lv_body_5_0=ruleExpression(); @@ -3052,7 +4103,7 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { if (current==null) { - current = createModelElementForParent(grammarAccess.getLetRule()); + current = createModelElementForParent(grammarAccess.getLetExpressionRule()); } set( current, @@ -3086,11 +4137,11 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } return current; } - // $ANTLR end "ruleLet" + // $ANTLR end "ruleLetExpression" // $ANTLR start "entryRuleLetBinding" - // InternalSolverLanguageParser.g:1274:1: entryRuleLetBinding returns [EObject current=null] : iv_ruleLetBinding= ruleLetBinding EOF ; + // InternalSolverLanguageParser.g:1684:1: entryRuleLetBinding returns [EObject current=null] : iv_ruleLetBinding= ruleLetBinding EOF ; public final EObject entryRuleLetBinding() throws RecognitionException { EObject current = null; @@ -3098,8 +4149,8 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { try { - // InternalSolverLanguageParser.g:1274:51: (iv_ruleLetBinding= ruleLetBinding EOF ) - // InternalSolverLanguageParser.g:1275:2: iv_ruleLetBinding= ruleLetBinding EOF + // InternalSolverLanguageParser.g:1684:51: (iv_ruleLetBinding= ruleLetBinding EOF ) + // InternalSolverLanguageParser.g:1685:2: iv_ruleLetBinding= ruleLetBinding EOF { newCompositeNode(grammarAccess.getLetBindingRule()); pushFollow(FOLLOW_1); @@ -3126,271 +4177,129 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { // $ANTLR start "ruleLetBinding" - // InternalSolverLanguageParser.g:1281:1: ruleLetBinding returns [EObject current=null] : ( ( (lv_variable_0_0= ruleVariable ) ) otherlv_1= EqualsSign ( (lv_value_2_0= ruleAdditiveExpression ) ) ) ; + // InternalSolverLanguageParser.g:1691:1: ruleLetBinding returns [EObject current=null] : ( ( ( ruleQualifiedName ) )? ( (lv_name_1_0= RULE_ID ) ) otherlv_2= EqualsSign ( (lv_value_3_0= ruleAdditiveExpression ) ) ) ; public final EObject ruleLetBinding() throws RecognitionException { EObject current = null; - Token otherlv_1=null; - EObject lv_variable_0_0 = null; - - EObject lv_value_2_0 = null; - - - - enterRule(); - - try { - // InternalSolverLanguageParser.g:1287:2: ( ( ( (lv_variable_0_0= ruleVariable ) ) otherlv_1= EqualsSign ( (lv_value_2_0= ruleAdditiveExpression ) ) ) ) - // InternalSolverLanguageParser.g:1288:2: ( ( (lv_variable_0_0= ruleVariable ) ) otherlv_1= EqualsSign ( (lv_value_2_0= ruleAdditiveExpression ) ) ) - { - // InternalSolverLanguageParser.g:1288:2: ( ( (lv_variable_0_0= ruleVariable ) ) otherlv_1= EqualsSign ( (lv_value_2_0= ruleAdditiveExpression ) ) ) - // InternalSolverLanguageParser.g:1289:3: ( (lv_variable_0_0= ruleVariable ) ) otherlv_1= EqualsSign ( (lv_value_2_0= ruleAdditiveExpression ) ) - { - // InternalSolverLanguageParser.g:1289:3: ( (lv_variable_0_0= ruleVariable ) ) - // InternalSolverLanguageParser.g:1290:4: (lv_variable_0_0= ruleVariable ) - { - // InternalSolverLanguageParser.g:1290:4: (lv_variable_0_0= ruleVariable ) - // InternalSolverLanguageParser.g:1291:5: lv_variable_0_0= ruleVariable - { - - newCompositeNode(grammarAccess.getLetBindingAccess().getVariableVariableParserRuleCall_0_0()); - - pushFollow(FOLLOW_13); - lv_variable_0_0=ruleVariable(); - - state._fsp--; - - - if (current==null) { - current = createModelElementForParent(grammarAccess.getLetBindingRule()); - } - set( - current, - "variable", - lv_variable_0_0, - "org.eclipse.viatra.solver.language.SolverLanguage.Variable"); - afterParserOrEnumRuleCall(); - - - } - - - } - - otherlv_1=(Token)match(input,EqualsSign,FOLLOW_6); - - newLeafNode(otherlv_1, grammarAccess.getLetBindingAccess().getEqualsSignKeyword_1()); - - // InternalSolverLanguageParser.g:1312:3: ( (lv_value_2_0= ruleAdditiveExpression ) ) - // InternalSolverLanguageParser.g:1313:4: (lv_value_2_0= ruleAdditiveExpression ) - { - // InternalSolverLanguageParser.g:1313:4: (lv_value_2_0= ruleAdditiveExpression ) - // InternalSolverLanguageParser.g:1314:5: lv_value_2_0= ruleAdditiveExpression - { - - newCompositeNode(grammarAccess.getLetBindingAccess().getValueAdditiveExpressionParserRuleCall_2_0()); - - pushFollow(FOLLOW_2); - lv_value_2_0=ruleAdditiveExpression(); - - state._fsp--; - - - if (current==null) { - current = createModelElementForParent(grammarAccess.getLetBindingRule()); - } - set( - current, - "value", - lv_value_2_0, - "org.eclipse.viatra.solver.language.SolverLanguage.AdditiveExpression"); - afterParserOrEnumRuleCall(); - - - } - - - } - - - } - - - } - - - leaveRule(); - - } - - catch (RecognitionException re) { - recover(input,re); - appendSkippedTokens(); - } - finally { - } - return current; - } - // $ANTLR end "ruleLetBinding" - - - // $ANTLR start "entryRuleImplicationExpression" - // InternalSolverLanguageParser.g:1335:1: entryRuleImplicationExpression returns [EObject current=null] : iv_ruleImplicationExpression= ruleImplicationExpression EOF ; - public final EObject entryRuleImplicationExpression() throws RecognitionException { - EObject current = null; - - EObject iv_ruleImplicationExpression = null; - - - try { - // InternalSolverLanguageParser.g:1335:62: (iv_ruleImplicationExpression= ruleImplicationExpression EOF ) - // InternalSolverLanguageParser.g:1336:2: iv_ruleImplicationExpression= ruleImplicationExpression EOF - { - newCompositeNode(grammarAccess.getImplicationExpressionRule()); - pushFollow(FOLLOW_1); - iv_ruleImplicationExpression=ruleImplicationExpression(); - - state._fsp--; - - current =iv_ruleImplicationExpression; - match(input,EOF,FOLLOW_2); - - } - - } - - catch (RecognitionException re) { - recover(input,re); - appendSkippedTokens(); - } - finally { - } - return current; - } - // $ANTLR end "entryRuleImplicationExpression" - - - // $ANTLR start "ruleImplicationExpression" - // InternalSolverLanguageParser.g:1342:1: ruleImplicationExpression returns [EObject current=null] : (this_DisjunctiveExpression_0= ruleDisjunctiveExpression ( () ( (lv_op_2_0= ruleImplicationOperator ) ) ( (lv_right_3_0= ruleImplicationExpression ) ) )? ) ; - public final EObject ruleImplicationExpression() throws RecognitionException { - EObject current = null; - - EObject this_DisjunctiveExpression_0 = null; - - Enumerator lv_op_2_0 = null; - - EObject lv_right_3_0 = null; + Token lv_name_1_0=null; + Token otherlv_2=null; + EObject lv_value_3_0 = null; enterRule(); try { - // InternalSolverLanguageParser.g:1348:2: ( (this_DisjunctiveExpression_0= ruleDisjunctiveExpression ( () ( (lv_op_2_0= ruleImplicationOperator ) ) ( (lv_right_3_0= ruleImplicationExpression ) ) )? ) ) - // InternalSolverLanguageParser.g:1349:2: (this_DisjunctiveExpression_0= ruleDisjunctiveExpression ( () ( (lv_op_2_0= ruleImplicationOperator ) ) ( (lv_right_3_0= ruleImplicationExpression ) ) )? ) + // InternalSolverLanguageParser.g:1697:2: ( ( ( ( ruleQualifiedName ) )? ( (lv_name_1_0= RULE_ID ) ) otherlv_2= EqualsSign ( (lv_value_3_0= ruleAdditiveExpression ) ) ) ) + // InternalSolverLanguageParser.g:1698:2: ( ( ( ruleQualifiedName ) )? ( (lv_name_1_0= RULE_ID ) ) otherlv_2= EqualsSign ( (lv_value_3_0= ruleAdditiveExpression ) ) ) { - // InternalSolverLanguageParser.g:1349:2: (this_DisjunctiveExpression_0= ruleDisjunctiveExpression ( () ( (lv_op_2_0= ruleImplicationOperator ) ) ( (lv_right_3_0= ruleImplicationExpression ) ) )? ) - // InternalSolverLanguageParser.g:1350:3: this_DisjunctiveExpression_0= ruleDisjunctiveExpression ( () ( (lv_op_2_0= ruleImplicationOperator ) ) ( (lv_right_3_0= ruleImplicationExpression ) ) )? + // InternalSolverLanguageParser.g:1698:2: ( ( ( ruleQualifiedName ) )? ( (lv_name_1_0= RULE_ID ) ) otherlv_2= EqualsSign ( (lv_value_3_0= ruleAdditiveExpression ) ) ) + // InternalSolverLanguageParser.g:1699:3: ( ( ruleQualifiedName ) )? ( (lv_name_1_0= RULE_ID ) ) otherlv_2= EqualsSign ( (lv_value_3_0= ruleAdditiveExpression ) ) { + // InternalSolverLanguageParser.g:1699:3: ( ( ruleQualifiedName ) )? + int alt18=2; + int LA18_0 = input.LA(1); - newCompositeNode(grammarAccess.getImplicationExpressionAccess().getDisjunctiveExpressionParserRuleCall_0()); - - pushFollow(FOLLOW_24); - this_DisjunctiveExpression_0=ruleDisjunctiveExpression(); - - state._fsp--; - - - current = this_DisjunctiveExpression_0; - afterParserOrEnumRuleCall(); - - // InternalSolverLanguageParser.g:1358:3: ( () ( (lv_op_2_0= ruleImplicationOperator ) ) ( (lv_right_3_0= ruleImplicationExpression ) ) )? - int alt11=2; - int LA11_0 = input.LA(1); - - if ( (LA11_0==EqualsSignGreaterThanSign) ) { - alt11=1; + if ( (LA18_0==RULE_ID) ) { + int LA18_1 = input.LA(2); + + if ( (LA18_1==ColonColon||LA18_1==RULE_ID) ) { + alt18=1; + } } - switch (alt11) { + else if ( (LA18_0==Object||LA18_0==RULE_QUOTED_ID) ) { + alt18=1; + } + switch (alt18) { case 1 : - // InternalSolverLanguageParser.g:1359:4: () ( (lv_op_2_0= ruleImplicationOperator ) ) ( (lv_right_3_0= ruleImplicationExpression ) ) + // InternalSolverLanguageParser.g:1700:4: ( ruleQualifiedName ) { - // InternalSolverLanguageParser.g:1359:4: () - // InternalSolverLanguageParser.g:1360:5: + // InternalSolverLanguageParser.g:1700:4: ( ruleQualifiedName ) + // InternalSolverLanguageParser.g:1701:5: ruleQualifiedName { - current = forceCreateModelElementAndSet( - grammarAccess.getImplicationExpressionAccess().getBinaryExpressionLeftAction_1_0(), - current); + if (current==null) { + current = createModelElement(grammarAccess.getLetBindingRule()); + } - } - - // InternalSolverLanguageParser.g:1366:4: ( (lv_op_2_0= ruleImplicationOperator ) ) - // InternalSolverLanguageParser.g:1367:5: (lv_op_2_0= ruleImplicationOperator ) - { - // InternalSolverLanguageParser.g:1367:5: (lv_op_2_0= ruleImplicationOperator ) - // InternalSolverLanguageParser.g:1368:6: lv_op_2_0= ruleImplicationOperator - { - - newCompositeNode(grammarAccess.getImplicationExpressionAccess().getOpImplicationOperatorEnumRuleCall_1_1_0()); - - pushFollow(FOLLOW_6); - lv_op_2_0=ruleImplicationOperator(); + newCompositeNode(grammarAccess.getLetBindingAccess().getTypeSymbolCrossReference_0_0()); + + pushFollow(FOLLOW_28); + ruleQualifiedName(); state._fsp--; - if (current==null) { - current = createModelElementForParent(grammarAccess.getImplicationExpressionRule()); - } - set( - current, - "op", - lv_op_2_0, - "org.eclipse.viatra.solver.language.SolverLanguage.ImplicationOperator"); - afterParserOrEnumRuleCall(); - + afterParserOrEnumRuleCall(); + } } + break; - // InternalSolverLanguageParser.g:1385:4: ( (lv_right_3_0= ruleImplicationExpression ) ) - // InternalSolverLanguageParser.g:1386:5: (lv_right_3_0= ruleImplicationExpression ) - { - // InternalSolverLanguageParser.g:1386:5: (lv_right_3_0= ruleImplicationExpression ) - // InternalSolverLanguageParser.g:1387:6: lv_right_3_0= ruleImplicationExpression - { + } - newCompositeNode(grammarAccess.getImplicationExpressionAccess().getRightImplicationExpressionParserRuleCall_1_2_0()); - - pushFollow(FOLLOW_2); - lv_right_3_0=ruleImplicationExpression(); + // InternalSolverLanguageParser.g:1715:3: ( (lv_name_1_0= RULE_ID ) ) + // InternalSolverLanguageParser.g:1716:4: (lv_name_1_0= RULE_ID ) + { + // InternalSolverLanguageParser.g:1716:4: (lv_name_1_0= RULE_ID ) + // InternalSolverLanguageParser.g:1717:5: lv_name_1_0= RULE_ID + { + lv_name_1_0=(Token)match(input,RULE_ID,FOLLOW_29); - state._fsp--; + newLeafNode(lv_name_1_0, grammarAccess.getLetBindingAccess().getNameIDTerminalRuleCall_1_0()); + + if (current==null) { + current = createModelElement(grammarAccess.getLetBindingRule()); + } + setWithLastConsumed( + current, + "name", + lv_name_1_0, + "org.eclipse.xtext.common.Terminals.ID"); + - if (current==null) { - current = createModelElementForParent(grammarAccess.getImplicationExpressionRule()); - } - set( - current, - "right", - lv_right_3_0, - "org.eclipse.viatra.solver.language.SolverLanguage.ImplicationExpression"); - afterParserOrEnumRuleCall(); - + } - } + } - } + otherlv_2=(Token)match(input,EqualsSign,FOLLOW_10); + newLeafNode(otherlv_2, grammarAccess.getLetBindingAccess().getEqualsSignKeyword_2()); + + // InternalSolverLanguageParser.g:1737:3: ( (lv_value_3_0= ruleAdditiveExpression ) ) + // InternalSolverLanguageParser.g:1738:4: (lv_value_3_0= ruleAdditiveExpression ) + { + // InternalSolverLanguageParser.g:1738:4: (lv_value_3_0= ruleAdditiveExpression ) + // InternalSolverLanguageParser.g:1739:5: lv_value_3_0= ruleAdditiveExpression + { + + newCompositeNode(grammarAccess.getLetBindingAccess().getValueAdditiveExpressionParserRuleCall_3_0()); + + pushFollow(FOLLOW_2); + lv_value_3_0=ruleAdditiveExpression(); + + state._fsp--; + + + if (current==null) { + current = createModelElementForParent(grammarAccess.getLetBindingRule()); + } + set( + current, + "value", + lv_value_3_0, + "org.eclipse.viatra.solver.language.SolverLanguage.AdditiveExpression"); + afterParserOrEnumRuleCall(); + + + } - } - break; } @@ -3413,11 +4322,11 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } return current; } - // $ANTLR end "ruleImplicationExpression" + // $ANTLR end "ruleLetBinding" // $ANTLR start "entryRuleDisjunctiveExpression" - // InternalSolverLanguageParser.g:1409:1: entryRuleDisjunctiveExpression returns [EObject current=null] : iv_ruleDisjunctiveExpression= ruleDisjunctiveExpression EOF ; + // InternalSolverLanguageParser.g:1760:1: entryRuleDisjunctiveExpression returns [EObject current=null] : iv_ruleDisjunctiveExpression= ruleDisjunctiveExpression EOF ; public final EObject entryRuleDisjunctiveExpression() throws RecognitionException { EObject current = null; @@ -3425,8 +4334,8 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { try { - // InternalSolverLanguageParser.g:1409:62: (iv_ruleDisjunctiveExpression= ruleDisjunctiveExpression EOF ) - // InternalSolverLanguageParser.g:1410:2: iv_ruleDisjunctiveExpression= ruleDisjunctiveExpression EOF + // InternalSolverLanguageParser.g:1760:62: (iv_ruleDisjunctiveExpression= ruleDisjunctiveExpression EOF ) + // InternalSolverLanguageParser.g:1761:2: iv_ruleDisjunctiveExpression= ruleDisjunctiveExpression EOF { newCompositeNode(grammarAccess.getDisjunctiveExpressionRule()); pushFollow(FOLLOW_1); @@ -3453,7 +4362,7 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { // $ANTLR start "ruleDisjunctiveExpression" - // InternalSolverLanguageParser.g:1416:1: ruleDisjunctiveExpression returns [EObject current=null] : (this_ConjunctiveExpression_0= ruleConjunctiveExpression ( ( () (otherlv_2= Semicolon ( (lv_children_3_0= ruleConjunctiveExpression ) ) )+ ) | ( () otherlv_5= HyphenMinusGreaterThanSign ( (lv_body_6_0= ruleConjunctiveExpression ) ) () (otherlv_8= Semicolon ( (lv_cases_9_0= ruleCase ) ) )* ) )? ) ; + // InternalSolverLanguageParser.g:1767:1: ruleDisjunctiveExpression returns [EObject current=null] : (this_ConjunctiveExpression_0= ruleConjunctiveExpression ( ( () (otherlv_2= Semicolon ( (lv_children_3_0= ruleConjunctiveExpression ) ) )+ ) | ( () otherlv_5= HyphenMinusGreaterThanSign ( (lv_body_6_0= ruleConjunctiveExpression ) ) () (otherlv_8= Semicolon ( (lv_cases_9_0= ruleCase ) ) )* ) )? ) ; public final EObject ruleDisjunctiveExpression() throws RecognitionException { EObject current = null; @@ -3473,16 +4382,16 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { enterRule(); try { - // InternalSolverLanguageParser.g:1422:2: ( (this_ConjunctiveExpression_0= ruleConjunctiveExpression ( ( () (otherlv_2= Semicolon ( (lv_children_3_0= ruleConjunctiveExpression ) ) )+ ) | ( () otherlv_5= HyphenMinusGreaterThanSign ( (lv_body_6_0= ruleConjunctiveExpression ) ) () (otherlv_8= Semicolon ( (lv_cases_9_0= ruleCase ) ) )* ) )? ) ) - // InternalSolverLanguageParser.g:1423:2: (this_ConjunctiveExpression_0= ruleConjunctiveExpression ( ( () (otherlv_2= Semicolon ( (lv_children_3_0= ruleConjunctiveExpression ) ) )+ ) | ( () otherlv_5= HyphenMinusGreaterThanSign ( (lv_body_6_0= ruleConjunctiveExpression ) ) () (otherlv_8= Semicolon ( (lv_cases_9_0= ruleCase ) ) )* ) )? ) + // InternalSolverLanguageParser.g:1773:2: ( (this_ConjunctiveExpression_0= ruleConjunctiveExpression ( ( () (otherlv_2= Semicolon ( (lv_children_3_0= ruleConjunctiveExpression ) ) )+ ) | ( () otherlv_5= HyphenMinusGreaterThanSign ( (lv_body_6_0= ruleConjunctiveExpression ) ) () (otherlv_8= Semicolon ( (lv_cases_9_0= ruleCase ) ) )* ) )? ) ) + // InternalSolverLanguageParser.g:1774:2: (this_ConjunctiveExpression_0= ruleConjunctiveExpression ( ( () (otherlv_2= Semicolon ( (lv_children_3_0= ruleConjunctiveExpression ) ) )+ ) | ( () otherlv_5= HyphenMinusGreaterThanSign ( (lv_body_6_0= ruleConjunctiveExpression ) ) () (otherlv_8= Semicolon ( (lv_cases_9_0= ruleCase ) ) )* ) )? ) { - // InternalSolverLanguageParser.g:1423:2: (this_ConjunctiveExpression_0= ruleConjunctiveExpression ( ( () (otherlv_2= Semicolon ( (lv_children_3_0= ruleConjunctiveExpression ) ) )+ ) | ( () otherlv_5= HyphenMinusGreaterThanSign ( (lv_body_6_0= ruleConjunctiveExpression ) ) () (otherlv_8= Semicolon ( (lv_cases_9_0= ruleCase ) ) )* ) )? ) - // InternalSolverLanguageParser.g:1424:3: this_ConjunctiveExpression_0= ruleConjunctiveExpression ( ( () (otherlv_2= Semicolon ( (lv_children_3_0= ruleConjunctiveExpression ) ) )+ ) | ( () otherlv_5= HyphenMinusGreaterThanSign ( (lv_body_6_0= ruleConjunctiveExpression ) ) () (otherlv_8= Semicolon ( (lv_cases_9_0= ruleCase ) ) )* ) )? + // InternalSolverLanguageParser.g:1774:2: (this_ConjunctiveExpression_0= ruleConjunctiveExpression ( ( () (otherlv_2= Semicolon ( (lv_children_3_0= ruleConjunctiveExpression ) ) )+ ) | ( () otherlv_5= HyphenMinusGreaterThanSign ( (lv_body_6_0= ruleConjunctiveExpression ) ) () (otherlv_8= Semicolon ( (lv_cases_9_0= ruleCase ) ) )* ) )? ) + // InternalSolverLanguageParser.g:1775:3: this_ConjunctiveExpression_0= ruleConjunctiveExpression ( ( () (otherlv_2= Semicolon ( (lv_children_3_0= ruleConjunctiveExpression ) ) )+ ) | ( () otherlv_5= HyphenMinusGreaterThanSign ( (lv_body_6_0= ruleConjunctiveExpression ) ) () (otherlv_8= Semicolon ( (lv_cases_9_0= ruleCase ) ) )* ) )? { newCompositeNode(grammarAccess.getDisjunctiveExpressionAccess().getConjunctiveExpressionParserRuleCall_0()); - pushFollow(FOLLOW_25); + pushFollow(FOLLOW_30); this_ConjunctiveExpression_0=ruleConjunctiveExpression(); state._fsp--; @@ -3491,25 +4400,25 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { current = this_ConjunctiveExpression_0; afterParserOrEnumRuleCall(); - // InternalSolverLanguageParser.g:1432:3: ( ( () (otherlv_2= Semicolon ( (lv_children_3_0= ruleConjunctiveExpression ) ) )+ ) | ( () otherlv_5= HyphenMinusGreaterThanSign ( (lv_body_6_0= ruleConjunctiveExpression ) ) () (otherlv_8= Semicolon ( (lv_cases_9_0= ruleCase ) ) )* ) )? - int alt14=3; - int LA14_0 = input.LA(1); + // InternalSolverLanguageParser.g:1783:3: ( ( () (otherlv_2= Semicolon ( (lv_children_3_0= ruleConjunctiveExpression ) ) )+ ) | ( () otherlv_5= HyphenMinusGreaterThanSign ( (lv_body_6_0= ruleConjunctiveExpression ) ) () (otherlv_8= Semicolon ( (lv_cases_9_0= ruleCase ) ) )* ) )? + int alt21=3; + int LA21_0 = input.LA(1); - if ( (LA14_0==Semicolon) ) { - alt14=1; + if ( (LA21_0==Semicolon) ) { + alt21=1; } - else if ( (LA14_0==HyphenMinusGreaterThanSign) ) { - alt14=2; + else if ( (LA21_0==HyphenMinusGreaterThanSign) ) { + alt21=2; } - switch (alt14) { + switch (alt21) { case 1 : - // InternalSolverLanguageParser.g:1433:4: ( () (otherlv_2= Semicolon ( (lv_children_3_0= ruleConjunctiveExpression ) ) )+ ) + // InternalSolverLanguageParser.g:1784:4: ( () (otherlv_2= Semicolon ( (lv_children_3_0= ruleConjunctiveExpression ) ) )+ ) { - // InternalSolverLanguageParser.g:1433:4: ( () (otherlv_2= Semicolon ( (lv_children_3_0= ruleConjunctiveExpression ) ) )+ ) - // InternalSolverLanguageParser.g:1434:5: () (otherlv_2= Semicolon ( (lv_children_3_0= ruleConjunctiveExpression ) ) )+ + // InternalSolverLanguageParser.g:1784:4: ( () (otherlv_2= Semicolon ( (lv_children_3_0= ruleConjunctiveExpression ) ) )+ ) + // InternalSolverLanguageParser.g:1785:5: () (otherlv_2= Semicolon ( (lv_children_3_0= ruleConjunctiveExpression ) ) )+ { - // InternalSolverLanguageParser.g:1434:5: () - // InternalSolverLanguageParser.g:1435:6: + // InternalSolverLanguageParser.g:1785:5: () + // InternalSolverLanguageParser.g:1786:6: { current = forceCreateModelElementAndAdd( @@ -3519,36 +4428,36 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } - // InternalSolverLanguageParser.g:1441:5: (otherlv_2= Semicolon ( (lv_children_3_0= ruleConjunctiveExpression ) ) )+ - int cnt12=0; - loop12: + // InternalSolverLanguageParser.g:1792:5: (otherlv_2= Semicolon ( (lv_children_3_0= ruleConjunctiveExpression ) ) )+ + int cnt19=0; + loop19: do { - int alt12=2; - int LA12_0 = input.LA(1); + int alt19=2; + int LA19_0 = input.LA(1); - if ( (LA12_0==Semicolon) ) { - alt12=1; + if ( (LA19_0==Semicolon) ) { + alt19=1; } - switch (alt12) { + switch (alt19) { case 1 : - // InternalSolverLanguageParser.g:1442:6: otherlv_2= Semicolon ( (lv_children_3_0= ruleConjunctiveExpression ) ) + // InternalSolverLanguageParser.g:1793:6: otherlv_2= Semicolon ( (lv_children_3_0= ruleConjunctiveExpression ) ) { - otherlv_2=(Token)match(input,Semicolon,FOLLOW_6); + otherlv_2=(Token)match(input,Semicolon,FOLLOW_10); newLeafNode(otherlv_2, grammarAccess.getDisjunctiveExpressionAccess().getSemicolonKeyword_1_0_1_0()); - // InternalSolverLanguageParser.g:1446:6: ( (lv_children_3_0= ruleConjunctiveExpression ) ) - // InternalSolverLanguageParser.g:1447:7: (lv_children_3_0= ruleConjunctiveExpression ) + // InternalSolverLanguageParser.g:1797:6: ( (lv_children_3_0= ruleConjunctiveExpression ) ) + // InternalSolverLanguageParser.g:1798:7: (lv_children_3_0= ruleConjunctiveExpression ) { - // InternalSolverLanguageParser.g:1447:7: (lv_children_3_0= ruleConjunctiveExpression ) - // InternalSolverLanguageParser.g:1448:8: lv_children_3_0= ruleConjunctiveExpression + // InternalSolverLanguageParser.g:1798:7: (lv_children_3_0= ruleConjunctiveExpression ) + // InternalSolverLanguageParser.g:1799:8: lv_children_3_0= ruleConjunctiveExpression { newCompositeNode(grammarAccess.getDisjunctiveExpressionAccess().getChildrenConjunctiveExpressionParserRuleCall_1_0_1_1_0()); - pushFollow(FOLLOW_26); + pushFollow(FOLLOW_31); lv_children_3_0=ruleConjunctiveExpression(); state._fsp--; @@ -3575,12 +4484,12 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { break; default : - if ( cnt12 >= 1 ) break loop12; + if ( cnt19 >= 1 ) break loop19; EarlyExitException eee = - new EarlyExitException(12, input); + new EarlyExitException(19, input); throw eee; } - cnt12++; + cnt19++; } while (true); @@ -3590,13 +4499,13 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } break; case 2 : - // InternalSolverLanguageParser.g:1468:4: ( () otherlv_5= HyphenMinusGreaterThanSign ( (lv_body_6_0= ruleConjunctiveExpression ) ) () (otherlv_8= Semicolon ( (lv_cases_9_0= ruleCase ) ) )* ) + // InternalSolverLanguageParser.g:1819:4: ( () otherlv_5= HyphenMinusGreaterThanSign ( (lv_body_6_0= ruleConjunctiveExpression ) ) () (otherlv_8= Semicolon ( (lv_cases_9_0= ruleCase ) ) )* ) { - // InternalSolverLanguageParser.g:1468:4: ( () otherlv_5= HyphenMinusGreaterThanSign ( (lv_body_6_0= ruleConjunctiveExpression ) ) () (otherlv_8= Semicolon ( (lv_cases_9_0= ruleCase ) ) )* ) - // InternalSolverLanguageParser.g:1469:5: () otherlv_5= HyphenMinusGreaterThanSign ( (lv_body_6_0= ruleConjunctiveExpression ) ) () (otherlv_8= Semicolon ( (lv_cases_9_0= ruleCase ) ) )* + // InternalSolverLanguageParser.g:1819:4: ( () otherlv_5= HyphenMinusGreaterThanSign ( (lv_body_6_0= ruleConjunctiveExpression ) ) () (otherlv_8= Semicolon ( (lv_cases_9_0= ruleCase ) ) )* ) + // InternalSolverLanguageParser.g:1820:5: () otherlv_5= HyphenMinusGreaterThanSign ( (lv_body_6_0= ruleConjunctiveExpression ) ) () (otherlv_8= Semicolon ( (lv_cases_9_0= ruleCase ) ) )* { - // InternalSolverLanguageParser.g:1469:5: () - // InternalSolverLanguageParser.g:1470:6: + // InternalSolverLanguageParser.g:1820:5: () + // InternalSolverLanguageParser.g:1821:6: { current = forceCreateModelElementAndSet( @@ -3606,20 +4515,20 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } - otherlv_5=(Token)match(input,HyphenMinusGreaterThanSign,FOLLOW_6); + otherlv_5=(Token)match(input,HyphenMinusGreaterThanSign,FOLLOW_10); newLeafNode(otherlv_5, grammarAccess.getDisjunctiveExpressionAccess().getHyphenMinusGreaterThanSignKeyword_1_1_1()); - // InternalSolverLanguageParser.g:1480:5: ( (lv_body_6_0= ruleConjunctiveExpression ) ) - // InternalSolverLanguageParser.g:1481:6: (lv_body_6_0= ruleConjunctiveExpression ) + // InternalSolverLanguageParser.g:1831:5: ( (lv_body_6_0= ruleConjunctiveExpression ) ) + // InternalSolverLanguageParser.g:1832:6: (lv_body_6_0= ruleConjunctiveExpression ) { - // InternalSolverLanguageParser.g:1481:6: (lv_body_6_0= ruleConjunctiveExpression ) - // InternalSolverLanguageParser.g:1482:7: lv_body_6_0= ruleConjunctiveExpression + // InternalSolverLanguageParser.g:1832:6: (lv_body_6_0= ruleConjunctiveExpression ) + // InternalSolverLanguageParser.g:1833:7: lv_body_6_0= ruleConjunctiveExpression { newCompositeNode(grammarAccess.getDisjunctiveExpressionAccess().getBodyConjunctiveExpressionParserRuleCall_1_1_2_0()); - pushFollow(FOLLOW_26); + pushFollow(FOLLOW_31); lv_body_6_0=ruleConjunctiveExpression(); state._fsp--; @@ -3641,8 +4550,8 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } - // InternalSolverLanguageParser.g:1499:5: () - // InternalSolverLanguageParser.g:1500:6: + // InternalSolverLanguageParser.g:1850:5: () + // InternalSolverLanguageParser.g:1851:6: { current = forceCreateModelElementAndAdd( @@ -3652,35 +4561,35 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } - // InternalSolverLanguageParser.g:1506:5: (otherlv_8= Semicolon ( (lv_cases_9_0= ruleCase ) ) )* - loop13: + // InternalSolverLanguageParser.g:1857:5: (otherlv_8= Semicolon ( (lv_cases_9_0= ruleCase ) ) )* + loop20: do { - int alt13=2; - int LA13_0 = input.LA(1); + int alt20=2; + int LA20_0 = input.LA(1); - if ( (LA13_0==Semicolon) ) { - alt13=1; + if ( (LA20_0==Semicolon) ) { + alt20=1; } - switch (alt13) { + switch (alt20) { case 1 : - // InternalSolverLanguageParser.g:1507:6: otherlv_8= Semicolon ( (lv_cases_9_0= ruleCase ) ) + // InternalSolverLanguageParser.g:1858:6: otherlv_8= Semicolon ( (lv_cases_9_0= ruleCase ) ) { - otherlv_8=(Token)match(input,Semicolon,FOLLOW_6); + otherlv_8=(Token)match(input,Semicolon,FOLLOW_10); newLeafNode(otherlv_8, grammarAccess.getDisjunctiveExpressionAccess().getSemicolonKeyword_1_1_4_0()); - // InternalSolverLanguageParser.g:1511:6: ( (lv_cases_9_0= ruleCase ) ) - // InternalSolverLanguageParser.g:1512:7: (lv_cases_9_0= ruleCase ) + // InternalSolverLanguageParser.g:1862:6: ( (lv_cases_9_0= ruleCase ) ) + // InternalSolverLanguageParser.g:1863:7: (lv_cases_9_0= ruleCase ) { - // InternalSolverLanguageParser.g:1512:7: (lv_cases_9_0= ruleCase ) - // InternalSolverLanguageParser.g:1513:8: lv_cases_9_0= ruleCase + // InternalSolverLanguageParser.g:1863:7: (lv_cases_9_0= ruleCase ) + // InternalSolverLanguageParser.g:1864:8: lv_cases_9_0= ruleCase { newCompositeNode(grammarAccess.getDisjunctiveExpressionAccess().getCasesCaseParserRuleCall_1_1_4_1_0()); - pushFollow(FOLLOW_26); + pushFollow(FOLLOW_31); lv_cases_9_0=ruleCase(); state._fsp--; @@ -3707,7 +4616,7 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { break; default : - break loop13; + break loop20; } } while (true); @@ -3743,7 +4652,7 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { // $ANTLR start "entryRuleCase" - // InternalSolverLanguageParser.g:1537:1: entryRuleCase returns [EObject current=null] : iv_ruleCase= ruleCase EOF ; + // InternalSolverLanguageParser.g:1888:1: entryRuleCase returns [EObject current=null] : iv_ruleCase= ruleCase EOF ; public final EObject entryRuleCase() throws RecognitionException { EObject current = null; @@ -3751,8 +4660,8 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { try { - // InternalSolverLanguageParser.g:1537:45: (iv_ruleCase= ruleCase EOF ) - // InternalSolverLanguageParser.g:1538:2: iv_ruleCase= ruleCase EOF + // InternalSolverLanguageParser.g:1888:45: (iv_ruleCase= ruleCase EOF ) + // InternalSolverLanguageParser.g:1889:2: iv_ruleCase= ruleCase EOF { newCompositeNode(grammarAccess.getCaseRule()); pushFollow(FOLLOW_1); @@ -3779,7 +4688,7 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { // $ANTLR start "ruleCase" - // InternalSolverLanguageParser.g:1544:1: ruleCase returns [EObject current=null] : ( ( (lv_condition_0_0= ruleConjunctiveExpression ) ) otherlv_1= HyphenMinusGreaterThanSign ( (lv_body_2_0= ruleConjunctiveExpression ) ) ) ; + // InternalSolverLanguageParser.g:1895:1: ruleCase returns [EObject current=null] : ( ( (lv_condition_0_0= ruleConjunctiveExpression ) ) otherlv_1= HyphenMinusGreaterThanSign ( (lv_body_2_0= ruleConjunctiveExpression ) ) ) ; public final EObject ruleCase() throws RecognitionException { EObject current = null; @@ -3793,22 +4702,22 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { enterRule(); try { - // InternalSolverLanguageParser.g:1550:2: ( ( ( (lv_condition_0_0= ruleConjunctiveExpression ) ) otherlv_1= HyphenMinusGreaterThanSign ( (lv_body_2_0= ruleConjunctiveExpression ) ) ) ) - // InternalSolverLanguageParser.g:1551:2: ( ( (lv_condition_0_0= ruleConjunctiveExpression ) ) otherlv_1= HyphenMinusGreaterThanSign ( (lv_body_2_0= ruleConjunctiveExpression ) ) ) + // InternalSolverLanguageParser.g:1901:2: ( ( ( (lv_condition_0_0= ruleConjunctiveExpression ) ) otherlv_1= HyphenMinusGreaterThanSign ( (lv_body_2_0= ruleConjunctiveExpression ) ) ) ) + // InternalSolverLanguageParser.g:1902:2: ( ( (lv_condition_0_0= ruleConjunctiveExpression ) ) otherlv_1= HyphenMinusGreaterThanSign ( (lv_body_2_0= ruleConjunctiveExpression ) ) ) { - // InternalSolverLanguageParser.g:1551:2: ( ( (lv_condition_0_0= ruleConjunctiveExpression ) ) otherlv_1= HyphenMinusGreaterThanSign ( (lv_body_2_0= ruleConjunctiveExpression ) ) ) - // InternalSolverLanguageParser.g:1552:3: ( (lv_condition_0_0= ruleConjunctiveExpression ) ) otherlv_1= HyphenMinusGreaterThanSign ( (lv_body_2_0= ruleConjunctiveExpression ) ) + // InternalSolverLanguageParser.g:1902:2: ( ( (lv_condition_0_0= ruleConjunctiveExpression ) ) otherlv_1= HyphenMinusGreaterThanSign ( (lv_body_2_0= ruleConjunctiveExpression ) ) ) + // InternalSolverLanguageParser.g:1903:3: ( (lv_condition_0_0= ruleConjunctiveExpression ) ) otherlv_1= HyphenMinusGreaterThanSign ( (lv_body_2_0= ruleConjunctiveExpression ) ) { - // InternalSolverLanguageParser.g:1552:3: ( (lv_condition_0_0= ruleConjunctiveExpression ) ) - // InternalSolverLanguageParser.g:1553:4: (lv_condition_0_0= ruleConjunctiveExpression ) + // InternalSolverLanguageParser.g:1903:3: ( (lv_condition_0_0= ruleConjunctiveExpression ) ) + // InternalSolverLanguageParser.g:1904:4: (lv_condition_0_0= ruleConjunctiveExpression ) { - // InternalSolverLanguageParser.g:1553:4: (lv_condition_0_0= ruleConjunctiveExpression ) - // InternalSolverLanguageParser.g:1554:5: lv_condition_0_0= ruleConjunctiveExpression + // InternalSolverLanguageParser.g:1904:4: (lv_condition_0_0= ruleConjunctiveExpression ) + // InternalSolverLanguageParser.g:1905:5: lv_condition_0_0= ruleConjunctiveExpression { newCompositeNode(grammarAccess.getCaseAccess().getConditionConjunctiveExpressionParserRuleCall_0_0()); - pushFollow(FOLLOW_27); + pushFollow(FOLLOW_32); lv_condition_0_0=ruleConjunctiveExpression(); state._fsp--; @@ -3830,15 +4739,15 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } - otherlv_1=(Token)match(input,HyphenMinusGreaterThanSign,FOLLOW_6); + otherlv_1=(Token)match(input,HyphenMinusGreaterThanSign,FOLLOW_10); newLeafNode(otherlv_1, grammarAccess.getCaseAccess().getHyphenMinusGreaterThanSignKeyword_1()); - // InternalSolverLanguageParser.g:1575:3: ( (lv_body_2_0= ruleConjunctiveExpression ) ) - // InternalSolverLanguageParser.g:1576:4: (lv_body_2_0= ruleConjunctiveExpression ) + // InternalSolverLanguageParser.g:1926:3: ( (lv_body_2_0= ruleConjunctiveExpression ) ) + // InternalSolverLanguageParser.g:1927:4: (lv_body_2_0= ruleConjunctiveExpression ) { - // InternalSolverLanguageParser.g:1576:4: (lv_body_2_0= ruleConjunctiveExpression ) - // InternalSolverLanguageParser.g:1577:5: lv_body_2_0= ruleConjunctiveExpression + // InternalSolverLanguageParser.g:1927:4: (lv_body_2_0= ruleConjunctiveExpression ) + // InternalSolverLanguageParser.g:1928:5: lv_body_2_0= ruleConjunctiveExpression { newCompositeNode(grammarAccess.getCaseAccess().getBodyConjunctiveExpressionParserRuleCall_2_0()); @@ -3888,7 +4797,7 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { // $ANTLR start "entryRuleConjunctiveExpression" - // InternalSolverLanguageParser.g:1598:1: entryRuleConjunctiveExpression returns [EObject current=null] : iv_ruleConjunctiveExpression= ruleConjunctiveExpression EOF ; + // InternalSolverLanguageParser.g:1949:1: entryRuleConjunctiveExpression returns [EObject current=null] : iv_ruleConjunctiveExpression= ruleConjunctiveExpression EOF ; public final EObject entryRuleConjunctiveExpression() throws RecognitionException { EObject current = null; @@ -3896,8 +4805,8 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { try { - // InternalSolverLanguageParser.g:1598:62: (iv_ruleConjunctiveExpression= ruleConjunctiveExpression EOF ) - // InternalSolverLanguageParser.g:1599:2: iv_ruleConjunctiveExpression= ruleConjunctiveExpression EOF + // InternalSolverLanguageParser.g:1949:62: (iv_ruleConjunctiveExpression= ruleConjunctiveExpression EOF ) + // InternalSolverLanguageParser.g:1950:2: iv_ruleConjunctiveExpression= ruleConjunctiveExpression EOF { newCompositeNode(grammarAccess.getConjunctiveExpressionRule()); pushFollow(FOLLOW_1); @@ -3924,7 +4833,7 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { // $ANTLR start "ruleConjunctiveExpression" - // InternalSolverLanguageParser.g:1605:1: ruleConjunctiveExpression returns [EObject current=null] : (this_ComparisonExpression_0= ruleComparisonExpression ( () (otherlv_2= Comma ( (lv_children_3_0= ruleComparisonExpression ) ) )+ )? ) ; + // InternalSolverLanguageParser.g:1956:1: ruleConjunctiveExpression returns [EObject current=null] : (this_ComparisonExpression_0= ruleComparisonExpression ( () (otherlv_2= Comma ( (lv_children_3_0= ruleComparisonExpression ) ) )+ )? ) ; public final EObject ruleConjunctiveExpression() throws RecognitionException { EObject current = null; @@ -3938,16 +4847,16 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { enterRule(); try { - // InternalSolverLanguageParser.g:1611:2: ( (this_ComparisonExpression_0= ruleComparisonExpression ( () (otherlv_2= Comma ( (lv_children_3_0= ruleComparisonExpression ) ) )+ )? ) ) - // InternalSolverLanguageParser.g:1612:2: (this_ComparisonExpression_0= ruleComparisonExpression ( () (otherlv_2= Comma ( (lv_children_3_0= ruleComparisonExpression ) ) )+ )? ) + // InternalSolverLanguageParser.g:1962:2: ( (this_ComparisonExpression_0= ruleComparisonExpression ( () (otherlv_2= Comma ( (lv_children_3_0= ruleComparisonExpression ) ) )+ )? ) ) + // InternalSolverLanguageParser.g:1963:2: (this_ComparisonExpression_0= ruleComparisonExpression ( () (otherlv_2= Comma ( (lv_children_3_0= ruleComparisonExpression ) ) )+ )? ) { - // InternalSolverLanguageParser.g:1612:2: (this_ComparisonExpression_0= ruleComparisonExpression ( () (otherlv_2= Comma ( (lv_children_3_0= ruleComparisonExpression ) ) )+ )? ) - // InternalSolverLanguageParser.g:1613:3: this_ComparisonExpression_0= ruleComparisonExpression ( () (otherlv_2= Comma ( (lv_children_3_0= ruleComparisonExpression ) ) )+ )? + // InternalSolverLanguageParser.g:1963:2: (this_ComparisonExpression_0= ruleComparisonExpression ( () (otherlv_2= Comma ( (lv_children_3_0= ruleComparisonExpression ) ) )+ )? ) + // InternalSolverLanguageParser.g:1964:3: this_ComparisonExpression_0= ruleComparisonExpression ( () (otherlv_2= Comma ( (lv_children_3_0= ruleComparisonExpression ) ) )+ )? { newCompositeNode(grammarAccess.getConjunctiveExpressionAccess().getComparisonExpressionParserRuleCall_0()); - pushFollow(FOLLOW_19); + pushFollow(FOLLOW_33); this_ComparisonExpression_0=ruleComparisonExpression(); state._fsp--; @@ -3956,19 +4865,19 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { current = this_ComparisonExpression_0; afterParserOrEnumRuleCall(); - // InternalSolverLanguageParser.g:1621:3: ( () (otherlv_2= Comma ( (lv_children_3_0= ruleComparisonExpression ) ) )+ )? - int alt16=2; - int LA16_0 = input.LA(1); + // InternalSolverLanguageParser.g:1972:3: ( () (otherlv_2= Comma ( (lv_children_3_0= ruleComparisonExpression ) ) )+ )? + int alt23=2; + int LA23_0 = input.LA(1); - if ( (LA16_0==Comma) ) { - alt16=1; + if ( (LA23_0==Comma) ) { + alt23=1; } - switch (alt16) { + switch (alt23) { case 1 : - // InternalSolverLanguageParser.g:1622:4: () (otherlv_2= Comma ( (lv_children_3_0= ruleComparisonExpression ) ) )+ + // InternalSolverLanguageParser.g:1973:4: () (otherlv_2= Comma ( (lv_children_3_0= ruleComparisonExpression ) ) )+ { - // InternalSolverLanguageParser.g:1622:4: () - // InternalSolverLanguageParser.g:1623:5: + // InternalSolverLanguageParser.g:1973:4: () + // InternalSolverLanguageParser.g:1974:5: { current = forceCreateModelElementAndAdd( @@ -3978,36 +4887,36 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } - // InternalSolverLanguageParser.g:1629:4: (otherlv_2= Comma ( (lv_children_3_0= ruleComparisonExpression ) ) )+ - int cnt15=0; - loop15: + // InternalSolverLanguageParser.g:1980:4: (otherlv_2= Comma ( (lv_children_3_0= ruleComparisonExpression ) ) )+ + int cnt22=0; + loop22: do { - int alt15=2; - int LA15_0 = input.LA(1); + int alt22=2; + int LA22_0 = input.LA(1); - if ( (LA15_0==Comma) ) { - alt15=1; + if ( (LA22_0==Comma) ) { + alt22=1; } - switch (alt15) { + switch (alt22) { case 1 : - // InternalSolverLanguageParser.g:1630:5: otherlv_2= Comma ( (lv_children_3_0= ruleComparisonExpression ) ) + // InternalSolverLanguageParser.g:1981:5: otherlv_2= Comma ( (lv_children_3_0= ruleComparisonExpression ) ) { - otherlv_2=(Token)match(input,Comma,FOLLOW_6); + otherlv_2=(Token)match(input,Comma,FOLLOW_10); newLeafNode(otherlv_2, grammarAccess.getConjunctiveExpressionAccess().getCommaKeyword_1_1_0()); - // InternalSolverLanguageParser.g:1634:5: ( (lv_children_3_0= ruleComparisonExpression ) ) - // InternalSolverLanguageParser.g:1635:6: (lv_children_3_0= ruleComparisonExpression ) + // InternalSolverLanguageParser.g:1985:5: ( (lv_children_3_0= ruleComparisonExpression ) ) + // InternalSolverLanguageParser.g:1986:6: (lv_children_3_0= ruleComparisonExpression ) { - // InternalSolverLanguageParser.g:1635:6: (lv_children_3_0= ruleComparisonExpression ) - // InternalSolverLanguageParser.g:1636:7: lv_children_3_0= ruleComparisonExpression + // InternalSolverLanguageParser.g:1986:6: (lv_children_3_0= ruleComparisonExpression ) + // InternalSolverLanguageParser.g:1987:7: lv_children_3_0= ruleComparisonExpression { newCompositeNode(grammarAccess.getConjunctiveExpressionAccess().getChildrenComparisonExpressionParserRuleCall_1_1_1_0()); - pushFollow(FOLLOW_19); + pushFollow(FOLLOW_33); lv_children_3_0=ruleComparisonExpression(); state._fsp--; @@ -4034,12 +4943,12 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { break; default : - if ( cnt15 >= 1 ) break loop15; + if ( cnt22 >= 1 ) break loop22; EarlyExitException eee = - new EarlyExitException(15, input); + new EarlyExitException(22, input); throw eee; } - cnt15++; + cnt22++; } while (true); @@ -4071,7 +4980,7 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { // $ANTLR start "entryRuleComparisonExpression" - // InternalSolverLanguageParser.g:1659:1: entryRuleComparisonExpression returns [EObject current=null] : iv_ruleComparisonExpression= ruleComparisonExpression EOF ; + // InternalSolverLanguageParser.g:2010:1: entryRuleComparisonExpression returns [EObject current=null] : iv_ruleComparisonExpression= ruleComparisonExpression EOF ; public final EObject entryRuleComparisonExpression() throws RecognitionException { EObject current = null; @@ -4079,8 +4988,8 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { try { - // InternalSolverLanguageParser.g:1659:61: (iv_ruleComparisonExpression= ruleComparisonExpression EOF ) - // InternalSolverLanguageParser.g:1660:2: iv_ruleComparisonExpression= ruleComparisonExpression EOF + // InternalSolverLanguageParser.g:2010:61: (iv_ruleComparisonExpression= ruleComparisonExpression EOF ) + // InternalSolverLanguageParser.g:2011:2: iv_ruleComparisonExpression= ruleComparisonExpression EOF { newCompositeNode(grammarAccess.getComparisonExpressionRule()); pushFollow(FOLLOW_1); @@ -4107,7 +5016,7 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { // $ANTLR start "ruleComparisonExpression" - // InternalSolverLanguageParser.g:1666:1: ruleComparisonExpression returns [EObject current=null] : (this_AdditiveExpression_0= ruleAdditiveExpression ( () ( (lv_op_2_0= ruleComparisonOperator ) ) ( (lv_right_3_0= ruleAdditiveExpression ) ) )? ) ; + // InternalSolverLanguageParser.g:2017:1: ruleComparisonExpression returns [EObject current=null] : (this_AdditiveExpression_0= ruleAdditiveExpression ( () ( (lv_op_2_0= ruleComparisonOperator ) ) ( (lv_right_3_0= ruleAdditiveExpression ) ) )? ) ; public final EObject ruleComparisonExpression() throws RecognitionException { EObject current = null; @@ -4122,16 +5031,16 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { enterRule(); try { - // InternalSolverLanguageParser.g:1672:2: ( (this_AdditiveExpression_0= ruleAdditiveExpression ( () ( (lv_op_2_0= ruleComparisonOperator ) ) ( (lv_right_3_0= ruleAdditiveExpression ) ) )? ) ) - // InternalSolverLanguageParser.g:1673:2: (this_AdditiveExpression_0= ruleAdditiveExpression ( () ( (lv_op_2_0= ruleComparisonOperator ) ) ( (lv_right_3_0= ruleAdditiveExpression ) ) )? ) + // InternalSolverLanguageParser.g:2023:2: ( (this_AdditiveExpression_0= ruleAdditiveExpression ( () ( (lv_op_2_0= ruleComparisonOperator ) ) ( (lv_right_3_0= ruleAdditiveExpression ) ) )? ) ) + // InternalSolverLanguageParser.g:2024:2: (this_AdditiveExpression_0= ruleAdditiveExpression ( () ( (lv_op_2_0= ruleComparisonOperator ) ) ( (lv_right_3_0= ruleAdditiveExpression ) ) )? ) { - // InternalSolverLanguageParser.g:1673:2: (this_AdditiveExpression_0= ruleAdditiveExpression ( () ( (lv_op_2_0= ruleComparisonOperator ) ) ( (lv_right_3_0= ruleAdditiveExpression ) ) )? ) - // InternalSolverLanguageParser.g:1674:3: this_AdditiveExpression_0= ruleAdditiveExpression ( () ( (lv_op_2_0= ruleComparisonOperator ) ) ( (lv_right_3_0= ruleAdditiveExpression ) ) )? + // InternalSolverLanguageParser.g:2024:2: (this_AdditiveExpression_0= ruleAdditiveExpression ( () ( (lv_op_2_0= ruleComparisonOperator ) ) ( (lv_right_3_0= ruleAdditiveExpression ) ) )? ) + // InternalSolverLanguageParser.g:2025:3: this_AdditiveExpression_0= ruleAdditiveExpression ( () ( (lv_op_2_0= ruleComparisonOperator ) ) ( (lv_right_3_0= ruleAdditiveExpression ) ) )? { newCompositeNode(grammarAccess.getComparisonExpressionAccess().getAdditiveExpressionParserRuleCall_0()); - pushFollow(FOLLOW_28); + pushFollow(FOLLOW_34); this_AdditiveExpression_0=ruleAdditiveExpression(); state._fsp--; @@ -4140,38 +5049,38 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { current = this_AdditiveExpression_0; afterParserOrEnumRuleCall(); - // InternalSolverLanguageParser.g:1682:3: ( () ( (lv_op_2_0= ruleComparisonOperator ) ) ( (lv_right_3_0= ruleAdditiveExpression ) ) )? - int alt17=2; - int LA17_0 = input.LA(1); + // InternalSolverLanguageParser.g:2033:3: ( () ( (lv_op_2_0= ruleComparisonOperator ) ) ( (lv_right_3_0= ruleAdditiveExpression ) ) )? + int alt24=2; + int LA24_0 = input.LA(1); - if ( (LA17_0==ExclamationMarkEqualsSign||(LA17_0>=LessThanSignEqualsSign && LA17_0<=EqualsSignEqualsSign)||LA17_0==GreaterThanSignEqualsSign||LA17_0==In||LA17_0==LessThanSign||LA17_0==GreaterThanSign) ) { - alt17=1; + if ( (LA24_0==ExclamationMarkEqualsSign||(LA24_0>=LessThanSignEqualsSign && LA24_0<=EqualsSignEqualsSign)||LA24_0==GreaterThanSignEqualsSign||LA24_0==In||LA24_0==LessThanSign||LA24_0==GreaterThanSign) ) { + alt24=1; } - switch (alt17) { + switch (alt24) { case 1 : - // InternalSolverLanguageParser.g:1683:4: () ( (lv_op_2_0= ruleComparisonOperator ) ) ( (lv_right_3_0= ruleAdditiveExpression ) ) + // InternalSolverLanguageParser.g:2034:4: () ( (lv_op_2_0= ruleComparisonOperator ) ) ( (lv_right_3_0= ruleAdditiveExpression ) ) { - // InternalSolverLanguageParser.g:1683:4: () - // InternalSolverLanguageParser.g:1684:5: + // InternalSolverLanguageParser.g:2034:4: () + // InternalSolverLanguageParser.g:2035:5: { current = forceCreateModelElementAndSet( - grammarAccess.getComparisonExpressionAccess().getComparisonLeftAction_1_0(), + grammarAccess.getComparisonExpressionAccess().getBinaryExpressionLeftAction_1_0(), current); } - // InternalSolverLanguageParser.g:1690:4: ( (lv_op_2_0= ruleComparisonOperator ) ) - // InternalSolverLanguageParser.g:1691:5: (lv_op_2_0= ruleComparisonOperator ) + // InternalSolverLanguageParser.g:2041:4: ( (lv_op_2_0= ruleComparisonOperator ) ) + // InternalSolverLanguageParser.g:2042:5: (lv_op_2_0= ruleComparisonOperator ) { - // InternalSolverLanguageParser.g:1691:5: (lv_op_2_0= ruleComparisonOperator ) - // InternalSolverLanguageParser.g:1692:6: lv_op_2_0= ruleComparisonOperator + // InternalSolverLanguageParser.g:2042:5: (lv_op_2_0= ruleComparisonOperator ) + // InternalSolverLanguageParser.g:2043:6: lv_op_2_0= ruleComparisonOperator { newCompositeNode(grammarAccess.getComparisonExpressionAccess().getOpComparisonOperatorEnumRuleCall_1_1_0()); - pushFollow(FOLLOW_6); + pushFollow(FOLLOW_10); lv_op_2_0=ruleComparisonOperator(); state._fsp--; @@ -4193,11 +5102,11 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } - // InternalSolverLanguageParser.g:1709:4: ( (lv_right_3_0= ruleAdditiveExpression ) ) - // InternalSolverLanguageParser.g:1710:5: (lv_right_3_0= ruleAdditiveExpression ) + // InternalSolverLanguageParser.g:2060:4: ( (lv_right_3_0= ruleAdditiveExpression ) ) + // InternalSolverLanguageParser.g:2061:5: (lv_right_3_0= ruleAdditiveExpression ) { - // InternalSolverLanguageParser.g:1710:5: (lv_right_3_0= ruleAdditiveExpression ) - // InternalSolverLanguageParser.g:1711:6: lv_right_3_0= ruleAdditiveExpression + // InternalSolverLanguageParser.g:2061:5: (lv_right_3_0= ruleAdditiveExpression ) + // InternalSolverLanguageParser.g:2062:6: lv_right_3_0= ruleAdditiveExpression { newCompositeNode(grammarAccess.getComparisonExpressionAccess().getRightAdditiveExpressionParserRuleCall_1_2_0()); @@ -4253,7 +5162,7 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { // $ANTLR start "entryRuleAdditiveExpression" - // InternalSolverLanguageParser.g:1733:1: entryRuleAdditiveExpression returns [EObject current=null] : iv_ruleAdditiveExpression= ruleAdditiveExpression EOF ; + // InternalSolverLanguageParser.g:2084:1: entryRuleAdditiveExpression returns [EObject current=null] : iv_ruleAdditiveExpression= ruleAdditiveExpression EOF ; public final EObject entryRuleAdditiveExpression() throws RecognitionException { EObject current = null; @@ -4261,8 +5170,8 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { try { - // InternalSolverLanguageParser.g:1733:59: (iv_ruleAdditiveExpression= ruleAdditiveExpression EOF ) - // InternalSolverLanguageParser.g:1734:2: iv_ruleAdditiveExpression= ruleAdditiveExpression EOF + // InternalSolverLanguageParser.g:2084:59: (iv_ruleAdditiveExpression= ruleAdditiveExpression EOF ) + // InternalSolverLanguageParser.g:2085:2: iv_ruleAdditiveExpression= ruleAdditiveExpression EOF { newCompositeNode(grammarAccess.getAdditiveExpressionRule()); pushFollow(FOLLOW_1); @@ -4289,7 +5198,7 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { // $ANTLR start "ruleAdditiveExpression" - // InternalSolverLanguageParser.g:1740:1: ruleAdditiveExpression returns [EObject current=null] : (this_MultiplicativeExpression_0= ruleMultiplicativeExpression ( () ( (lv_op_2_0= ruleAdditiveBinaryOperator ) ) ( (lv_right_3_0= ruleMultiplicativeExpression ) ) )* ) ; + // InternalSolverLanguageParser.g:2091:1: ruleAdditiveExpression returns [EObject current=null] : (this_MultiplicativeExpression_0= ruleMultiplicativeExpression ( () ( (lv_op_2_0= ruleAdditiveBinaryOperator ) ) ( (lv_right_3_0= ruleMultiplicativeExpression ) ) )* ) ; public final EObject ruleAdditiveExpression() throws RecognitionException { EObject current = null; @@ -4304,16 +5213,16 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { enterRule(); try { - // InternalSolverLanguageParser.g:1746:2: ( (this_MultiplicativeExpression_0= ruleMultiplicativeExpression ( () ( (lv_op_2_0= ruleAdditiveBinaryOperator ) ) ( (lv_right_3_0= ruleMultiplicativeExpression ) ) )* ) ) - // InternalSolverLanguageParser.g:1747:2: (this_MultiplicativeExpression_0= ruleMultiplicativeExpression ( () ( (lv_op_2_0= ruleAdditiveBinaryOperator ) ) ( (lv_right_3_0= ruleMultiplicativeExpression ) ) )* ) + // InternalSolverLanguageParser.g:2097:2: ( (this_MultiplicativeExpression_0= ruleMultiplicativeExpression ( () ( (lv_op_2_0= ruleAdditiveBinaryOperator ) ) ( (lv_right_3_0= ruleMultiplicativeExpression ) ) )* ) ) + // InternalSolverLanguageParser.g:2098:2: (this_MultiplicativeExpression_0= ruleMultiplicativeExpression ( () ( (lv_op_2_0= ruleAdditiveBinaryOperator ) ) ( (lv_right_3_0= ruleMultiplicativeExpression ) ) )* ) { - // InternalSolverLanguageParser.g:1747:2: (this_MultiplicativeExpression_0= ruleMultiplicativeExpression ( () ( (lv_op_2_0= ruleAdditiveBinaryOperator ) ) ( (lv_right_3_0= ruleMultiplicativeExpression ) ) )* ) - // InternalSolverLanguageParser.g:1748:3: this_MultiplicativeExpression_0= ruleMultiplicativeExpression ( () ( (lv_op_2_0= ruleAdditiveBinaryOperator ) ) ( (lv_right_3_0= ruleMultiplicativeExpression ) ) )* + // InternalSolverLanguageParser.g:2098:2: (this_MultiplicativeExpression_0= ruleMultiplicativeExpression ( () ( (lv_op_2_0= ruleAdditiveBinaryOperator ) ) ( (lv_right_3_0= ruleMultiplicativeExpression ) ) )* ) + // InternalSolverLanguageParser.g:2099:3: this_MultiplicativeExpression_0= ruleMultiplicativeExpression ( () ( (lv_op_2_0= ruleAdditiveBinaryOperator ) ) ( (lv_right_3_0= ruleMultiplicativeExpression ) ) )* { newCompositeNode(grammarAccess.getAdditiveExpressionAccess().getMultiplicativeExpressionParserRuleCall_0()); - pushFollow(FOLLOW_29); + pushFollow(FOLLOW_35); this_MultiplicativeExpression_0=ruleMultiplicativeExpression(); state._fsp--; @@ -4322,23 +5231,23 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { current = this_MultiplicativeExpression_0; afterParserOrEnumRuleCall(); - // InternalSolverLanguageParser.g:1756:3: ( () ( (lv_op_2_0= ruleAdditiveBinaryOperator ) ) ( (lv_right_3_0= ruleMultiplicativeExpression ) ) )* - loop18: + // InternalSolverLanguageParser.g:2107:3: ( () ( (lv_op_2_0= ruleAdditiveBinaryOperator ) ) ( (lv_right_3_0= ruleMultiplicativeExpression ) ) )* + loop25: do { - int alt18=2; - int LA18_0 = input.LA(1); + int alt25=2; + int LA25_0 = input.LA(1); - if ( (LA18_0==PlusSign||LA18_0==HyphenMinus) ) { - alt18=1; + if ( (LA25_0==PlusSign||LA25_0==HyphenMinus) ) { + alt25=1; } - switch (alt18) { + switch (alt25) { case 1 : - // InternalSolverLanguageParser.g:1757:4: () ( (lv_op_2_0= ruleAdditiveBinaryOperator ) ) ( (lv_right_3_0= ruleMultiplicativeExpression ) ) + // InternalSolverLanguageParser.g:2108:4: () ( (lv_op_2_0= ruleAdditiveBinaryOperator ) ) ( (lv_right_3_0= ruleMultiplicativeExpression ) ) { - // InternalSolverLanguageParser.g:1757:4: () - // InternalSolverLanguageParser.g:1758:5: + // InternalSolverLanguageParser.g:2108:4: () + // InternalSolverLanguageParser.g:2109:5: { current = forceCreateModelElementAndSet( @@ -4348,16 +5257,16 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } - // InternalSolverLanguageParser.g:1764:4: ( (lv_op_2_0= ruleAdditiveBinaryOperator ) ) - // InternalSolverLanguageParser.g:1765:5: (lv_op_2_0= ruleAdditiveBinaryOperator ) + // InternalSolverLanguageParser.g:2115:4: ( (lv_op_2_0= ruleAdditiveBinaryOperator ) ) + // InternalSolverLanguageParser.g:2116:5: (lv_op_2_0= ruleAdditiveBinaryOperator ) { - // InternalSolverLanguageParser.g:1765:5: (lv_op_2_0= ruleAdditiveBinaryOperator ) - // InternalSolverLanguageParser.g:1766:6: lv_op_2_0= ruleAdditiveBinaryOperator + // InternalSolverLanguageParser.g:2116:5: (lv_op_2_0= ruleAdditiveBinaryOperator ) + // InternalSolverLanguageParser.g:2117:6: lv_op_2_0= ruleAdditiveBinaryOperator { newCompositeNode(grammarAccess.getAdditiveExpressionAccess().getOpAdditiveBinaryOperatorEnumRuleCall_1_1_0()); - pushFollow(FOLLOW_6); + pushFollow(FOLLOW_10); lv_op_2_0=ruleAdditiveBinaryOperator(); state._fsp--; @@ -4379,16 +5288,16 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } - // InternalSolverLanguageParser.g:1783:4: ( (lv_right_3_0= ruleMultiplicativeExpression ) ) - // InternalSolverLanguageParser.g:1784:5: (lv_right_3_0= ruleMultiplicativeExpression ) + // InternalSolverLanguageParser.g:2134:4: ( (lv_right_3_0= ruleMultiplicativeExpression ) ) + // InternalSolverLanguageParser.g:2135:5: (lv_right_3_0= ruleMultiplicativeExpression ) { - // InternalSolverLanguageParser.g:1784:5: (lv_right_3_0= ruleMultiplicativeExpression ) - // InternalSolverLanguageParser.g:1785:6: lv_right_3_0= ruleMultiplicativeExpression + // InternalSolverLanguageParser.g:2135:5: (lv_right_3_0= ruleMultiplicativeExpression ) + // InternalSolverLanguageParser.g:2136:6: lv_right_3_0= ruleMultiplicativeExpression { newCompositeNode(grammarAccess.getAdditiveExpressionAccess().getRightMultiplicativeExpressionParserRuleCall_1_2_0()); - pushFollow(FOLLOW_29); + pushFollow(FOLLOW_35); lv_right_3_0=ruleMultiplicativeExpression(); state._fsp--; @@ -4415,7 +5324,7 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { break; default : - break loop18; + break loop25; } } while (true); @@ -4442,7 +5351,7 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { // $ANTLR start "entryRuleMultiplicativeExpression" - // InternalSolverLanguageParser.g:1807:1: entryRuleMultiplicativeExpression returns [EObject current=null] : iv_ruleMultiplicativeExpression= ruleMultiplicativeExpression EOF ; + // InternalSolverLanguageParser.g:2158:1: entryRuleMultiplicativeExpression returns [EObject current=null] : iv_ruleMultiplicativeExpression= ruleMultiplicativeExpression EOF ; public final EObject entryRuleMultiplicativeExpression() throws RecognitionException { EObject current = null; @@ -4450,8 +5359,8 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { try { - // InternalSolverLanguageParser.g:1807:65: (iv_ruleMultiplicativeExpression= ruleMultiplicativeExpression EOF ) - // InternalSolverLanguageParser.g:1808:2: iv_ruleMultiplicativeExpression= ruleMultiplicativeExpression EOF + // InternalSolverLanguageParser.g:2158:65: (iv_ruleMultiplicativeExpression= ruleMultiplicativeExpression EOF ) + // InternalSolverLanguageParser.g:2159:2: iv_ruleMultiplicativeExpression= ruleMultiplicativeExpression EOF { newCompositeNode(grammarAccess.getMultiplicativeExpressionRule()); pushFollow(FOLLOW_1); @@ -4478,7 +5387,7 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { // $ANTLR start "ruleMultiplicativeExpression" - // InternalSolverLanguageParser.g:1814:1: ruleMultiplicativeExpression returns [EObject current=null] : (this_ExponentialExpression_0= ruleExponentialExpression ( () ( (lv_op_2_0= ruleMultiplicativeBinaryOperator ) ) ( (lv_right_3_0= ruleExponentialExpression ) ) )* ) ; + // InternalSolverLanguageParser.g:2165:1: ruleMultiplicativeExpression returns [EObject current=null] : (this_ExponentialExpression_0= ruleExponentialExpression ( () ( (lv_op_2_0= ruleMultiplicativeBinaryOperator ) ) ( (lv_right_3_0= ruleExponentialExpression ) ) )* ) ; public final EObject ruleMultiplicativeExpression() throws RecognitionException { EObject current = null; @@ -4493,16 +5402,16 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { enterRule(); try { - // InternalSolverLanguageParser.g:1820:2: ( (this_ExponentialExpression_0= ruleExponentialExpression ( () ( (lv_op_2_0= ruleMultiplicativeBinaryOperator ) ) ( (lv_right_3_0= ruleExponentialExpression ) ) )* ) ) - // InternalSolverLanguageParser.g:1821:2: (this_ExponentialExpression_0= ruleExponentialExpression ( () ( (lv_op_2_0= ruleMultiplicativeBinaryOperator ) ) ( (lv_right_3_0= ruleExponentialExpression ) ) )* ) + // InternalSolverLanguageParser.g:2171:2: ( (this_ExponentialExpression_0= ruleExponentialExpression ( () ( (lv_op_2_0= ruleMultiplicativeBinaryOperator ) ) ( (lv_right_3_0= ruleExponentialExpression ) ) )* ) ) + // InternalSolverLanguageParser.g:2172:2: (this_ExponentialExpression_0= ruleExponentialExpression ( () ( (lv_op_2_0= ruleMultiplicativeBinaryOperator ) ) ( (lv_right_3_0= ruleExponentialExpression ) ) )* ) { - // InternalSolverLanguageParser.g:1821:2: (this_ExponentialExpression_0= ruleExponentialExpression ( () ( (lv_op_2_0= ruleMultiplicativeBinaryOperator ) ) ( (lv_right_3_0= ruleExponentialExpression ) ) )* ) - // InternalSolverLanguageParser.g:1822:3: this_ExponentialExpression_0= ruleExponentialExpression ( () ( (lv_op_2_0= ruleMultiplicativeBinaryOperator ) ) ( (lv_right_3_0= ruleExponentialExpression ) ) )* + // InternalSolverLanguageParser.g:2172:2: (this_ExponentialExpression_0= ruleExponentialExpression ( () ( (lv_op_2_0= ruleMultiplicativeBinaryOperator ) ) ( (lv_right_3_0= ruleExponentialExpression ) ) )* ) + // InternalSolverLanguageParser.g:2173:3: this_ExponentialExpression_0= ruleExponentialExpression ( () ( (lv_op_2_0= ruleMultiplicativeBinaryOperator ) ) ( (lv_right_3_0= ruleExponentialExpression ) ) )* { newCompositeNode(grammarAccess.getMultiplicativeExpressionAccess().getExponentialExpressionParserRuleCall_0()); - pushFollow(FOLLOW_30); + pushFollow(FOLLOW_36); this_ExponentialExpression_0=ruleExponentialExpression(); state._fsp--; @@ -4511,23 +5420,23 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { current = this_ExponentialExpression_0; afterParserOrEnumRuleCall(); - // InternalSolverLanguageParser.g:1830:3: ( () ( (lv_op_2_0= ruleMultiplicativeBinaryOperator ) ) ( (lv_right_3_0= ruleExponentialExpression ) ) )* - loop19: + // InternalSolverLanguageParser.g:2181:3: ( () ( (lv_op_2_0= ruleMultiplicativeBinaryOperator ) ) ( (lv_right_3_0= ruleExponentialExpression ) ) )* + loop26: do { - int alt19=2; - int LA19_0 = input.LA(1); + int alt26=2; + int LA26_0 = input.LA(1); - if ( (LA19_0==Asterisk||LA19_0==Solidus) ) { - alt19=1; + if ( (LA26_0==Asterisk||LA26_0==Solidus) ) { + alt26=1; } - switch (alt19) { + switch (alt26) { case 1 : - // InternalSolverLanguageParser.g:1831:4: () ( (lv_op_2_0= ruleMultiplicativeBinaryOperator ) ) ( (lv_right_3_0= ruleExponentialExpression ) ) + // InternalSolverLanguageParser.g:2182:4: () ( (lv_op_2_0= ruleMultiplicativeBinaryOperator ) ) ( (lv_right_3_0= ruleExponentialExpression ) ) { - // InternalSolverLanguageParser.g:1831:4: () - // InternalSolverLanguageParser.g:1832:5: + // InternalSolverLanguageParser.g:2182:4: () + // InternalSolverLanguageParser.g:2183:5: { current = forceCreateModelElementAndSet( @@ -4537,16 +5446,16 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } - // InternalSolverLanguageParser.g:1838:4: ( (lv_op_2_0= ruleMultiplicativeBinaryOperator ) ) - // InternalSolverLanguageParser.g:1839:5: (lv_op_2_0= ruleMultiplicativeBinaryOperator ) + // InternalSolverLanguageParser.g:2189:4: ( (lv_op_2_0= ruleMultiplicativeBinaryOperator ) ) + // InternalSolverLanguageParser.g:2190:5: (lv_op_2_0= ruleMultiplicativeBinaryOperator ) { - // InternalSolverLanguageParser.g:1839:5: (lv_op_2_0= ruleMultiplicativeBinaryOperator ) - // InternalSolverLanguageParser.g:1840:6: lv_op_2_0= ruleMultiplicativeBinaryOperator + // InternalSolverLanguageParser.g:2190:5: (lv_op_2_0= ruleMultiplicativeBinaryOperator ) + // InternalSolverLanguageParser.g:2191:6: lv_op_2_0= ruleMultiplicativeBinaryOperator { newCompositeNode(grammarAccess.getMultiplicativeExpressionAccess().getOpMultiplicativeBinaryOperatorEnumRuleCall_1_1_0()); - pushFollow(FOLLOW_6); + pushFollow(FOLLOW_10); lv_op_2_0=ruleMultiplicativeBinaryOperator(); state._fsp--; @@ -4568,16 +5477,16 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } - // InternalSolverLanguageParser.g:1857:4: ( (lv_right_3_0= ruleExponentialExpression ) ) - // InternalSolverLanguageParser.g:1858:5: (lv_right_3_0= ruleExponentialExpression ) + // InternalSolverLanguageParser.g:2208:4: ( (lv_right_3_0= ruleExponentialExpression ) ) + // InternalSolverLanguageParser.g:2209:5: (lv_right_3_0= ruleExponentialExpression ) { - // InternalSolverLanguageParser.g:1858:5: (lv_right_3_0= ruleExponentialExpression ) - // InternalSolverLanguageParser.g:1859:6: lv_right_3_0= ruleExponentialExpression + // InternalSolverLanguageParser.g:2209:5: (lv_right_3_0= ruleExponentialExpression ) + // InternalSolverLanguageParser.g:2210:6: lv_right_3_0= ruleExponentialExpression { newCompositeNode(grammarAccess.getMultiplicativeExpressionAccess().getRightExponentialExpressionParserRuleCall_1_2_0()); - pushFollow(FOLLOW_30); + pushFollow(FOLLOW_36); lv_right_3_0=ruleExponentialExpression(); state._fsp--; @@ -4604,7 +5513,7 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { break; default : - break loop19; + break loop26; } } while (true); @@ -4631,7 +5540,7 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { // $ANTLR start "entryRuleExponentialExpression" - // InternalSolverLanguageParser.g:1881:1: entryRuleExponentialExpression returns [EObject current=null] : iv_ruleExponentialExpression= ruleExponentialExpression EOF ; + // InternalSolverLanguageParser.g:2232:1: entryRuleExponentialExpression returns [EObject current=null] : iv_ruleExponentialExpression= ruleExponentialExpression EOF ; public final EObject entryRuleExponentialExpression() throws RecognitionException { EObject current = null; @@ -4639,8 +5548,8 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { try { - // InternalSolverLanguageParser.g:1881:62: (iv_ruleExponentialExpression= ruleExponentialExpression EOF ) - // InternalSolverLanguageParser.g:1882:2: iv_ruleExponentialExpression= ruleExponentialExpression EOF + // InternalSolverLanguageParser.g:2232:62: (iv_ruleExponentialExpression= ruleExponentialExpression EOF ) + // InternalSolverLanguageParser.g:2233:2: iv_ruleExponentialExpression= ruleExponentialExpression EOF { newCompositeNode(grammarAccess.getExponentialExpressionRule()); pushFollow(FOLLOW_1); @@ -4667,7 +5576,7 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { // $ANTLR start "ruleExponentialExpression" - // InternalSolverLanguageParser.g:1888:1: ruleExponentialExpression returns [EObject current=null] : (this_CastExpression_0= ruleCastExpression ( () ( (lv_op_2_0= ruleExponentialOp ) ) ( (lv_right_3_0= ruleCastExpression ) ) )? ) ; + // InternalSolverLanguageParser.g:2239:1: ruleExponentialExpression returns [EObject current=null] : (this_CastExpression_0= ruleCastExpression ( () ( (lv_op_2_0= ruleExponentialOp ) ) ( (lv_right_3_0= ruleCastExpression ) ) )? ) ; public final EObject ruleExponentialExpression() throws RecognitionException { EObject current = null; @@ -4682,16 +5591,16 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { enterRule(); try { - // InternalSolverLanguageParser.g:1894:2: ( (this_CastExpression_0= ruleCastExpression ( () ( (lv_op_2_0= ruleExponentialOp ) ) ( (lv_right_3_0= ruleCastExpression ) ) )? ) ) - // InternalSolverLanguageParser.g:1895:2: (this_CastExpression_0= ruleCastExpression ( () ( (lv_op_2_0= ruleExponentialOp ) ) ( (lv_right_3_0= ruleCastExpression ) ) )? ) + // InternalSolverLanguageParser.g:2245:2: ( (this_CastExpression_0= ruleCastExpression ( () ( (lv_op_2_0= ruleExponentialOp ) ) ( (lv_right_3_0= ruleCastExpression ) ) )? ) ) + // InternalSolverLanguageParser.g:2246:2: (this_CastExpression_0= ruleCastExpression ( () ( (lv_op_2_0= ruleExponentialOp ) ) ( (lv_right_3_0= ruleCastExpression ) ) )? ) { - // InternalSolverLanguageParser.g:1895:2: (this_CastExpression_0= ruleCastExpression ( () ( (lv_op_2_0= ruleExponentialOp ) ) ( (lv_right_3_0= ruleCastExpression ) ) )? ) - // InternalSolverLanguageParser.g:1896:3: this_CastExpression_0= ruleCastExpression ( () ( (lv_op_2_0= ruleExponentialOp ) ) ( (lv_right_3_0= ruleCastExpression ) ) )? + // InternalSolverLanguageParser.g:2246:2: (this_CastExpression_0= ruleCastExpression ( () ( (lv_op_2_0= ruleExponentialOp ) ) ( (lv_right_3_0= ruleCastExpression ) ) )? ) + // InternalSolverLanguageParser.g:2247:3: this_CastExpression_0= ruleCastExpression ( () ( (lv_op_2_0= ruleExponentialOp ) ) ( (lv_right_3_0= ruleCastExpression ) ) )? { newCompositeNode(grammarAccess.getExponentialExpressionAccess().getCastExpressionParserRuleCall_0()); - pushFollow(FOLLOW_31); + pushFollow(FOLLOW_37); this_CastExpression_0=ruleCastExpression(); state._fsp--; @@ -4700,19 +5609,19 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { current = this_CastExpression_0; afterParserOrEnumRuleCall(); - // InternalSolverLanguageParser.g:1904:3: ( () ( (lv_op_2_0= ruleExponentialOp ) ) ( (lv_right_3_0= ruleCastExpression ) ) )? - int alt20=2; - int LA20_0 = input.LA(1); + // InternalSolverLanguageParser.g:2255:3: ( () ( (lv_op_2_0= ruleExponentialOp ) ) ( (lv_right_3_0= ruleCastExpression ) ) )? + int alt27=2; + int LA27_0 = input.LA(1); - if ( (LA20_0==CircumflexAccent) ) { - alt20=1; + if ( (LA27_0==CircumflexAccent) ) { + alt27=1; } - switch (alt20) { + switch (alt27) { case 1 : - // InternalSolverLanguageParser.g:1905:4: () ( (lv_op_2_0= ruleExponentialOp ) ) ( (lv_right_3_0= ruleCastExpression ) ) + // InternalSolverLanguageParser.g:2256:4: () ( (lv_op_2_0= ruleExponentialOp ) ) ( (lv_right_3_0= ruleCastExpression ) ) { - // InternalSolverLanguageParser.g:1905:4: () - // InternalSolverLanguageParser.g:1906:5: + // InternalSolverLanguageParser.g:2256:4: () + // InternalSolverLanguageParser.g:2257:5: { current = forceCreateModelElementAndSet( @@ -4722,16 +5631,16 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } - // InternalSolverLanguageParser.g:1912:4: ( (lv_op_2_0= ruleExponentialOp ) ) - // InternalSolverLanguageParser.g:1913:5: (lv_op_2_0= ruleExponentialOp ) + // InternalSolverLanguageParser.g:2263:4: ( (lv_op_2_0= ruleExponentialOp ) ) + // InternalSolverLanguageParser.g:2264:5: (lv_op_2_0= ruleExponentialOp ) { - // InternalSolverLanguageParser.g:1913:5: (lv_op_2_0= ruleExponentialOp ) - // InternalSolverLanguageParser.g:1914:6: lv_op_2_0= ruleExponentialOp + // InternalSolverLanguageParser.g:2264:5: (lv_op_2_0= ruleExponentialOp ) + // InternalSolverLanguageParser.g:2265:6: lv_op_2_0= ruleExponentialOp { newCompositeNode(grammarAccess.getExponentialExpressionAccess().getOpExponentialOpEnumRuleCall_1_1_0()); - pushFollow(FOLLOW_6); + pushFollow(FOLLOW_10); lv_op_2_0=ruleExponentialOp(); state._fsp--; @@ -4753,11 +5662,11 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } - // InternalSolverLanguageParser.g:1931:4: ( (lv_right_3_0= ruleCastExpression ) ) - // InternalSolverLanguageParser.g:1932:5: (lv_right_3_0= ruleCastExpression ) + // InternalSolverLanguageParser.g:2282:4: ( (lv_right_3_0= ruleCastExpression ) ) + // InternalSolverLanguageParser.g:2283:5: (lv_right_3_0= ruleCastExpression ) { - // InternalSolverLanguageParser.g:1932:5: (lv_right_3_0= ruleCastExpression ) - // InternalSolverLanguageParser.g:1933:6: lv_right_3_0= ruleCastExpression + // InternalSolverLanguageParser.g:2283:5: (lv_right_3_0= ruleCastExpression ) + // InternalSolverLanguageParser.g:2284:6: lv_right_3_0= ruleCastExpression { newCompositeNode(grammarAccess.getExponentialExpressionAccess().getRightCastExpressionParserRuleCall_1_2_0()); @@ -4813,7 +5722,7 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { // $ANTLR start "entryRuleCastExpression" - // InternalSolverLanguageParser.g:1955:1: entryRuleCastExpression returns [EObject current=null] : iv_ruleCastExpression= ruleCastExpression EOF ; + // InternalSolverLanguageParser.g:2306:1: entryRuleCastExpression returns [EObject current=null] : iv_ruleCastExpression= ruleCastExpression EOF ; public final EObject entryRuleCastExpression() throws RecognitionException { EObject current = null; @@ -4821,8 +5730,8 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { try { - // InternalSolverLanguageParser.g:1955:55: (iv_ruleCastExpression= ruleCastExpression EOF ) - // InternalSolverLanguageParser.g:1956:2: iv_ruleCastExpression= ruleCastExpression EOF + // InternalSolverLanguageParser.g:2306:55: (iv_ruleCastExpression= ruleCastExpression EOF ) + // InternalSolverLanguageParser.g:2307:2: iv_ruleCastExpression= ruleCastExpression EOF { newCompositeNode(grammarAccess.getCastExpressionRule()); pushFollow(FOLLOW_1); @@ -4849,7 +5758,7 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { // $ANTLR start "ruleCastExpression" - // InternalSolverLanguageParser.g:1962:1: ruleCastExpression returns [EObject current=null] : (this_UnaryExpression_0= ruleUnaryExpression ( () otherlv_2= As ( ( ruleQualifiedName ) ) )? ) ; + // InternalSolverLanguageParser.g:2313:1: ruleCastExpression returns [EObject current=null] : (this_UnaryExpression_0= ruleUnaryExpression ( () otherlv_2= As ( ( ruleQualifiedName ) ) )? ) ; public final EObject ruleCastExpression() throws RecognitionException { EObject current = null; @@ -4861,16 +5770,16 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { enterRule(); try { - // InternalSolverLanguageParser.g:1968:2: ( (this_UnaryExpression_0= ruleUnaryExpression ( () otherlv_2= As ( ( ruleQualifiedName ) ) )? ) ) - // InternalSolverLanguageParser.g:1969:2: (this_UnaryExpression_0= ruleUnaryExpression ( () otherlv_2= As ( ( ruleQualifiedName ) ) )? ) + // InternalSolverLanguageParser.g:2319:2: ( (this_UnaryExpression_0= ruleUnaryExpression ( () otherlv_2= As ( ( ruleQualifiedName ) ) )? ) ) + // InternalSolverLanguageParser.g:2320:2: (this_UnaryExpression_0= ruleUnaryExpression ( () otherlv_2= As ( ( ruleQualifiedName ) ) )? ) { - // InternalSolverLanguageParser.g:1969:2: (this_UnaryExpression_0= ruleUnaryExpression ( () otherlv_2= As ( ( ruleQualifiedName ) ) )? ) - // InternalSolverLanguageParser.g:1970:3: this_UnaryExpression_0= ruleUnaryExpression ( () otherlv_2= As ( ( ruleQualifiedName ) ) )? + // InternalSolverLanguageParser.g:2320:2: (this_UnaryExpression_0= ruleUnaryExpression ( () otherlv_2= As ( ( ruleQualifiedName ) ) )? ) + // InternalSolverLanguageParser.g:2321:3: this_UnaryExpression_0= ruleUnaryExpression ( () otherlv_2= As ( ( ruleQualifiedName ) ) )? { newCompositeNode(grammarAccess.getCastExpressionAccess().getUnaryExpressionParserRuleCall_0()); - pushFollow(FOLLOW_32); + pushFollow(FOLLOW_38); this_UnaryExpression_0=ruleUnaryExpression(); state._fsp--; @@ -4879,19 +5788,19 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { current = this_UnaryExpression_0; afterParserOrEnumRuleCall(); - // InternalSolverLanguageParser.g:1978:3: ( () otherlv_2= As ( ( ruleQualifiedName ) ) )? - int alt21=2; - int LA21_0 = input.LA(1); + // InternalSolverLanguageParser.g:2329:3: ( () otherlv_2= As ( ( ruleQualifiedName ) ) )? + int alt28=2; + int LA28_0 = input.LA(1); - if ( (LA21_0==As) ) { - alt21=1; + if ( (LA28_0==As) ) { + alt28=1; } - switch (alt21) { + switch (alt28) { case 1 : - // InternalSolverLanguageParser.g:1979:4: () otherlv_2= As ( ( ruleQualifiedName ) ) + // InternalSolverLanguageParser.g:2330:4: () otherlv_2= As ( ( ruleQualifiedName ) ) { - // InternalSolverLanguageParser.g:1979:4: () - // InternalSolverLanguageParser.g:1980:5: + // InternalSolverLanguageParser.g:2330:4: () + // InternalSolverLanguageParser.g:2331:5: { current = forceCreateModelElementAndSet( @@ -4901,15 +5810,15 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } - otherlv_2=(Token)match(input,As,FOLLOW_8); + otherlv_2=(Token)match(input,As,FOLLOW_3); newLeafNode(otherlv_2, grammarAccess.getCastExpressionAccess().getAsKeyword_1_1()); - // InternalSolverLanguageParser.g:1990:4: ( ( ruleQualifiedName ) ) - // InternalSolverLanguageParser.g:1991:5: ( ruleQualifiedName ) + // InternalSolverLanguageParser.g:2341:4: ( ( ruleQualifiedName ) ) + // InternalSolverLanguageParser.g:2342:5: ( ruleQualifiedName ) { - // InternalSolverLanguageParser.g:1991:5: ( ruleQualifiedName ) - // InternalSolverLanguageParser.g:1992:6: ruleQualifiedName + // InternalSolverLanguageParser.g:2342:5: ( ruleQualifiedName ) + // InternalSolverLanguageParser.g:2343:6: ruleQualifiedName { if (current==null) { @@ -4917,7 +5826,7 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } - newCompositeNode(grammarAccess.getCastExpressionAccess().getTypeNamedElementCrossReference_1_2_0()); + newCompositeNode(grammarAccess.getCastExpressionAccess().getTargetTypeSymbolCrossReference_1_2_0()); pushFollow(FOLLOW_2); ruleQualifiedName(); @@ -4962,7 +5871,7 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { // $ANTLR start "entryRuleUnaryExpression" - // InternalSolverLanguageParser.g:2011:1: entryRuleUnaryExpression returns [EObject current=null] : iv_ruleUnaryExpression= ruleUnaryExpression EOF ; + // InternalSolverLanguageParser.g:2362:1: entryRuleUnaryExpression returns [EObject current=null] : iv_ruleUnaryExpression= ruleUnaryExpression EOF ; public final EObject entryRuleUnaryExpression() throws RecognitionException { EObject current = null; @@ -4970,8 +5879,8 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { try { - // InternalSolverLanguageParser.g:2011:56: (iv_ruleUnaryExpression= ruleUnaryExpression EOF ) - // InternalSolverLanguageParser.g:2012:2: iv_ruleUnaryExpression= ruleUnaryExpression EOF + // InternalSolverLanguageParser.g:2362:56: (iv_ruleUnaryExpression= ruleUnaryExpression EOF ) + // InternalSolverLanguageParser.g:2363:2: iv_ruleUnaryExpression= ruleUnaryExpression EOF { newCompositeNode(grammarAccess.getUnaryExpressionRule()); pushFollow(FOLLOW_1); @@ -4998,11 +5907,11 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { // $ANTLR start "ruleUnaryExpression" - // InternalSolverLanguageParser.g:2018:1: ruleUnaryExpression returns [EObject current=null] : (this_AggregationExpression_0= ruleAggregationExpression | ( () ( (lv_op_2_0= ruleUnaryOp ) ) ( (lv_body_3_0= ruleAggregationExpression ) ) ) ) ; + // InternalSolverLanguageParser.g:2369:1: ruleUnaryExpression returns [EObject current=null] : (this_BracedAggregateExpression_0= ruleBracedAggregateExpression | ( () ( (lv_op_2_0= ruleUnaryOperator ) ) ( (lv_body_3_0= ruleBracedAggregateExpression ) ) ) ) ; public final EObject ruleUnaryExpression() throws RecognitionException { EObject current = null; - EObject this_AggregationExpression_0 = null; + EObject this_BracedAggregateExpression_0 = null; Enumerator lv_op_2_0 = null; @@ -5013,52 +5922,52 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { enterRule(); try { - // InternalSolverLanguageParser.g:2024:2: ( (this_AggregationExpression_0= ruleAggregationExpression | ( () ( (lv_op_2_0= ruleUnaryOp ) ) ( (lv_body_3_0= ruleAggregationExpression ) ) ) ) ) - // InternalSolverLanguageParser.g:2025:2: (this_AggregationExpression_0= ruleAggregationExpression | ( () ( (lv_op_2_0= ruleUnaryOp ) ) ( (lv_body_3_0= ruleAggregationExpression ) ) ) ) + // InternalSolverLanguageParser.g:2375:2: ( (this_BracedAggregateExpression_0= ruleBracedAggregateExpression | ( () ( (lv_op_2_0= ruleUnaryOperator ) ) ( (lv_body_3_0= ruleBracedAggregateExpression ) ) ) ) ) + // InternalSolverLanguageParser.g:2376:2: (this_BracedAggregateExpression_0= ruleBracedAggregateExpression | ( () ( (lv_op_2_0= ruleUnaryOperator ) ) ( (lv_body_3_0= ruleBracedAggregateExpression ) ) ) ) { - // InternalSolverLanguageParser.g:2025:2: (this_AggregationExpression_0= ruleAggregationExpression | ( () ( (lv_op_2_0= ruleUnaryOp ) ) ( (lv_body_3_0= ruleAggregationExpression ) ) ) ) - int alt22=2; - int LA22_0 = input.LA(1); + // InternalSolverLanguageParser.g:2376:2: (this_BracedAggregateExpression_0= ruleBracedAggregateExpression | ( () ( (lv_op_2_0= ruleUnaryOperator ) ) ( (lv_body_3_0= ruleBracedAggregateExpression ) ) ) ) + int alt29=2; + int LA29_0 = input.LA(1); - if ( ((LA22_0>=Unknown && LA22_0<=Exists)||LA22_0==Forall||(LA22_0>=Count && LA22_0<=False)||LA22_0==True||LA22_0==Inf||LA22_0==LeftParenthesis||LA22_0==LeftSquareBracket||(LA22_0>=RULE_STRING && LA22_0<=RULE_QUOTED_ID)||(LA22_0>=RULE_ID && LA22_0<=RULE_INT)) ) { - alt22=1; + if ( (LA29_0==Unknown||LA29_0==Object||(LA29_0>=Count && LA29_0<=False)||LA29_0==True||LA29_0==Inf||LA29_0==LeftParenthesis||LA29_0==LeftSquareBracket||(LA29_0>=Tilde && LA29_0<=RULE_QUOTED_ID)||(LA29_0>=RULE_ID && LA29_0<=RULE_INT)) ) { + alt29=1; } - else if ( (LA22_0==Current||LA22_0==Must||LA22_0==May||LA22_0==ExclamationMark||LA22_0==PlusSign||LA22_0==HyphenMinus) ) { - alt22=2; + else if ( (LA29_0==ExclamationMark||LA29_0==PlusSign||LA29_0==HyphenMinus||LA29_0==QuestionMark) ) { + alt29=2; } else { NoViableAltException nvae = - new NoViableAltException("", 22, 0, input); + new NoViableAltException("", 29, 0, input); throw nvae; } - switch (alt22) { + switch (alt29) { case 1 : - // InternalSolverLanguageParser.g:2026:3: this_AggregationExpression_0= ruleAggregationExpression + // InternalSolverLanguageParser.g:2377:3: this_BracedAggregateExpression_0= ruleBracedAggregateExpression { - newCompositeNode(grammarAccess.getUnaryExpressionAccess().getAggregationExpressionParserRuleCall_0()); + newCompositeNode(grammarAccess.getUnaryExpressionAccess().getBracedAggregateExpressionParserRuleCall_0()); pushFollow(FOLLOW_2); - this_AggregationExpression_0=ruleAggregationExpression(); + this_BracedAggregateExpression_0=ruleBracedAggregateExpression(); state._fsp--; - current = this_AggregationExpression_0; + current = this_BracedAggregateExpression_0; afterParserOrEnumRuleCall(); } break; case 2 : - // InternalSolverLanguageParser.g:2035:3: ( () ( (lv_op_2_0= ruleUnaryOp ) ) ( (lv_body_3_0= ruleAggregationExpression ) ) ) + // InternalSolverLanguageParser.g:2386:3: ( () ( (lv_op_2_0= ruleUnaryOperator ) ) ( (lv_body_3_0= ruleBracedAggregateExpression ) ) ) { - // InternalSolverLanguageParser.g:2035:3: ( () ( (lv_op_2_0= ruleUnaryOp ) ) ( (lv_body_3_0= ruleAggregationExpression ) ) ) - // InternalSolverLanguageParser.g:2036:4: () ( (lv_op_2_0= ruleUnaryOp ) ) ( (lv_body_3_0= ruleAggregationExpression ) ) + // InternalSolverLanguageParser.g:2386:3: ( () ( (lv_op_2_0= ruleUnaryOperator ) ) ( (lv_body_3_0= ruleBracedAggregateExpression ) ) ) + // InternalSolverLanguageParser.g:2387:4: () ( (lv_op_2_0= ruleUnaryOperator ) ) ( (lv_body_3_0= ruleBracedAggregateExpression ) ) { - // InternalSolverLanguageParser.g:2036:4: () - // InternalSolverLanguageParser.g:2037:5: + // InternalSolverLanguageParser.g:2387:4: () + // InternalSolverLanguageParser.g:2388:5: { current = forceCreateModelElement( @@ -5068,17 +5977,17 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } - // InternalSolverLanguageParser.g:2043:4: ( (lv_op_2_0= ruleUnaryOp ) ) - // InternalSolverLanguageParser.g:2044:5: (lv_op_2_0= ruleUnaryOp ) + // InternalSolverLanguageParser.g:2394:4: ( (lv_op_2_0= ruleUnaryOperator ) ) + // InternalSolverLanguageParser.g:2395:5: (lv_op_2_0= ruleUnaryOperator ) { - // InternalSolverLanguageParser.g:2044:5: (lv_op_2_0= ruleUnaryOp ) - // InternalSolverLanguageParser.g:2045:6: lv_op_2_0= ruleUnaryOp + // InternalSolverLanguageParser.g:2395:5: (lv_op_2_0= ruleUnaryOperator ) + // InternalSolverLanguageParser.g:2396:6: lv_op_2_0= ruleUnaryOperator { - newCompositeNode(grammarAccess.getUnaryExpressionAccess().getOpUnaryOpEnumRuleCall_1_1_0()); + newCompositeNode(grammarAccess.getUnaryExpressionAccess().getOpUnaryOperatorEnumRuleCall_1_1_0()); - pushFollow(FOLLOW_33); - lv_op_2_0=ruleUnaryOp(); + pushFollow(FOLLOW_39); + lv_op_2_0=ruleUnaryOperator(); state._fsp--; @@ -5090,7 +5999,7 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { current, "op", lv_op_2_0, - "org.eclipse.viatra.solver.language.SolverLanguage.UnaryOp"); + "org.eclipse.viatra.solver.language.SolverLanguage.UnaryOperator"); afterParserOrEnumRuleCall(); @@ -5099,17 +6008,17 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } - // InternalSolverLanguageParser.g:2062:4: ( (lv_body_3_0= ruleAggregationExpression ) ) - // InternalSolverLanguageParser.g:2063:5: (lv_body_3_0= ruleAggregationExpression ) + // InternalSolverLanguageParser.g:2413:4: ( (lv_body_3_0= ruleBracedAggregateExpression ) ) + // InternalSolverLanguageParser.g:2414:5: (lv_body_3_0= ruleBracedAggregateExpression ) { - // InternalSolverLanguageParser.g:2063:5: (lv_body_3_0= ruleAggregationExpression ) - // InternalSolverLanguageParser.g:2064:6: lv_body_3_0= ruleAggregationExpression + // InternalSolverLanguageParser.g:2414:5: (lv_body_3_0= ruleBracedAggregateExpression ) + // InternalSolverLanguageParser.g:2415:6: lv_body_3_0= ruleBracedAggregateExpression { - newCompositeNode(grammarAccess.getUnaryExpressionAccess().getBodyAggregationExpressionParserRuleCall_1_2_0()); + newCompositeNode(grammarAccess.getUnaryExpressionAccess().getBodyBracedAggregateExpressionParserRuleCall_1_2_0()); pushFollow(FOLLOW_2); - lv_body_3_0=ruleAggregationExpression(); + lv_body_3_0=ruleBracedAggregateExpression(); state._fsp--; @@ -5121,7 +6030,7 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { current, "body", lv_body_3_0, - "org.eclipse.viatra.solver.language.SolverLanguage.AggregationExpression"); + "org.eclipse.viatra.solver.language.SolverLanguage.BracedAggregateExpression"); afterParserOrEnumRuleCall(); @@ -5158,25 +6067,25 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { // $ANTLR end "ruleUnaryExpression" - // $ANTLR start "entryRuleAggregationExpression" - // InternalSolverLanguageParser.g:2086:1: entryRuleAggregationExpression returns [EObject current=null] : iv_ruleAggregationExpression= ruleAggregationExpression EOF ; - public final EObject entryRuleAggregationExpression() throws RecognitionException { + // $ANTLR start "entryRuleBracedAggregateExpression" + // InternalSolverLanguageParser.g:2437:1: entryRuleBracedAggregateExpression returns [EObject current=null] : iv_ruleBracedAggregateExpression= ruleBracedAggregateExpression EOF ; + public final EObject entryRuleBracedAggregateExpression() throws RecognitionException { EObject current = null; - EObject iv_ruleAggregationExpression = null; + EObject iv_ruleBracedAggregateExpression = null; try { - // InternalSolverLanguageParser.g:2086:62: (iv_ruleAggregationExpression= ruleAggregationExpression EOF ) - // InternalSolverLanguageParser.g:2087:2: iv_ruleAggregationExpression= ruleAggregationExpression EOF + // InternalSolverLanguageParser.g:2437:66: (iv_ruleBracedAggregateExpression= ruleBracedAggregateExpression EOF ) + // InternalSolverLanguageParser.g:2438:2: iv_ruleBracedAggregateExpression= ruleBracedAggregateExpression EOF { - newCompositeNode(grammarAccess.getAggregationExpressionRule()); + newCompositeNode(grammarAccess.getBracedAggregateExpressionRule()); pushFollow(FOLLOW_1); - iv_ruleAggregationExpression=ruleAggregationExpression(); + iv_ruleBracedAggregateExpression=ruleBracedAggregateExpression(); state._fsp--; - current =iv_ruleAggregationExpression; + current =iv_ruleBracedAggregateExpression; match(input,EOF,FOLLOW_2); } @@ -5191,37 +6100,37 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } return current; } - // $ANTLR end "entryRuleAggregationExpression" + // $ANTLR end "entryRuleBracedAggregateExpression" - // $ANTLR start "ruleAggregationExpression" - // InternalSolverLanguageParser.g:2093:1: ruleAggregationExpression returns [EObject current=null] : (this_AtomicExpression_0= ruleAtomicExpression | this_QuantifiedExpression_1= ruleQuantifiedExpression | this_Aggregation_2= ruleAggregation ) ; - public final EObject ruleAggregationExpression() throws RecognitionException { + // $ANTLR start "ruleBracedAggregateExpression" + // InternalSolverLanguageParser.g:2444:1: ruleBracedAggregateExpression returns [EObject current=null] : (this_AtomicExpression_0= ruleAtomicExpression | this_Aggregation_1= ruleAggregation | this_Count_2= ruleCount ) ; + public final EObject ruleBracedAggregateExpression() throws RecognitionException { EObject current = null; EObject this_AtomicExpression_0 = null; - EObject this_QuantifiedExpression_1 = null; + EObject this_Aggregation_1 = null; - EObject this_Aggregation_2 = null; + EObject this_Count_2 = null; enterRule(); try { - // InternalSolverLanguageParser.g:2099:2: ( (this_AtomicExpression_0= ruleAtomicExpression | this_QuantifiedExpression_1= ruleQuantifiedExpression | this_Aggregation_2= ruleAggregation ) ) - // InternalSolverLanguageParser.g:2100:2: (this_AtomicExpression_0= ruleAtomicExpression | this_QuantifiedExpression_1= ruleQuantifiedExpression | this_Aggregation_2= ruleAggregation ) + // InternalSolverLanguageParser.g:2450:2: ( (this_AtomicExpression_0= ruleAtomicExpression | this_Aggregation_1= ruleAggregation | this_Count_2= ruleCount ) ) + // InternalSolverLanguageParser.g:2451:2: (this_AtomicExpression_0= ruleAtomicExpression | this_Aggregation_1= ruleAggregation | this_Count_2= ruleCount ) { - // InternalSolverLanguageParser.g:2100:2: (this_AtomicExpression_0= ruleAtomicExpression | this_QuantifiedExpression_1= ruleQuantifiedExpression | this_Aggregation_2= ruleAggregation ) - int alt23=3; - alt23 = dfa23.predict(input); - switch (alt23) { + // InternalSolverLanguageParser.g:2451:2: (this_AtomicExpression_0= ruleAtomicExpression | this_Aggregation_1= ruleAggregation | this_Count_2= ruleCount ) + int alt30=3; + alt30 = dfa30.predict(input); + switch (alt30) { case 1 : - // InternalSolverLanguageParser.g:2101:3: this_AtomicExpression_0= ruleAtomicExpression + // InternalSolverLanguageParser.g:2452:3: this_AtomicExpression_0= ruleAtomicExpression { - newCompositeNode(grammarAccess.getAggregationExpressionAccess().getAtomicExpressionParserRuleCall_0()); + newCompositeNode(grammarAccess.getBracedAggregateExpressionAccess().getAtomicExpressionParserRuleCall_0()); pushFollow(FOLLOW_2); this_AtomicExpression_0=ruleAtomicExpression(); @@ -5236,248 +6145,41 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } break; case 2 : - // InternalSolverLanguageParser.g:2110:3: this_QuantifiedExpression_1= ruleQuantifiedExpression + // InternalSolverLanguageParser.g:2461:3: this_Aggregation_1= ruleAggregation { - newCompositeNode(grammarAccess.getAggregationExpressionAccess().getQuantifiedExpressionParserRuleCall_1()); + newCompositeNode(grammarAccess.getBracedAggregateExpressionAccess().getAggregationParserRuleCall_1()); pushFollow(FOLLOW_2); - this_QuantifiedExpression_1=ruleQuantifiedExpression(); + this_Aggregation_1=ruleAggregation(); state._fsp--; - current = this_QuantifiedExpression_1; + current = this_Aggregation_1; afterParserOrEnumRuleCall(); } break; case 3 : - // InternalSolverLanguageParser.g:2119:3: this_Aggregation_2= ruleAggregation + // InternalSolverLanguageParser.g:2470:3: this_Count_2= ruleCount { - newCompositeNode(grammarAccess.getAggregationExpressionAccess().getAggregationParserRuleCall_2()); + newCompositeNode(grammarAccess.getBracedAggregateExpressionAccess().getCountParserRuleCall_2()); pushFollow(FOLLOW_2); - this_Aggregation_2=ruleAggregation(); - - state._fsp--; - - - current = this_Aggregation_2; - afterParserOrEnumRuleCall(); - - - } - break; - - } - - - } - - - leaveRule(); - - } - - catch (RecognitionException re) { - recover(input,re); - appendSkippedTokens(); - } - finally { - } - return current; - } - // $ANTLR end "ruleAggregationExpression" - - - // $ANTLR start "entryRuleLocalVariables" - // InternalSolverLanguageParser.g:2131:1: entryRuleLocalVariables returns [EObject current=null] : iv_ruleLocalVariables= ruleLocalVariables EOF ; - public final EObject entryRuleLocalVariables() throws RecognitionException { - EObject current = null; - - EObject iv_ruleLocalVariables = null; - - - try { - // InternalSolverLanguageParser.g:2131:55: (iv_ruleLocalVariables= ruleLocalVariables EOF ) - // InternalSolverLanguageParser.g:2132:2: iv_ruleLocalVariables= ruleLocalVariables EOF - { - newCompositeNode(grammarAccess.getLocalVariablesRule()); - pushFollow(FOLLOW_1); - iv_ruleLocalVariables=ruleLocalVariables(); - - state._fsp--; - - current =iv_ruleLocalVariables; - match(input,EOF,FOLLOW_2); - - } - - } - - catch (RecognitionException re) { - recover(input,re); - appendSkippedTokens(); - } - finally { - } - return current; - } - // $ANTLR end "entryRuleLocalVariables" - - - // $ANTLR start "ruleLocalVariables" - // InternalSolverLanguageParser.g:2138:1: ruleLocalVariables returns [EObject current=null] : ( () otherlv_1= LeftSquareBracket ( ( (lv_variables_2_0= ruleVariable ) ) (otherlv_3= Comma ( (lv_variables_4_0= ruleVariable ) ) )* )? otherlv_5= RightSquareBracket ) ; - public final EObject ruleLocalVariables() throws RecognitionException { - EObject current = null; - - Token otherlv_1=null; - Token otherlv_3=null; - Token otherlv_5=null; - EObject lv_variables_2_0 = null; - - EObject lv_variables_4_0 = null; - - - - enterRule(); - - try { - // InternalSolverLanguageParser.g:2144:2: ( ( () otherlv_1= LeftSquareBracket ( ( (lv_variables_2_0= ruleVariable ) ) (otherlv_3= Comma ( (lv_variables_4_0= ruleVariable ) ) )* )? otherlv_5= RightSquareBracket ) ) - // InternalSolverLanguageParser.g:2145:2: ( () otherlv_1= LeftSquareBracket ( ( (lv_variables_2_0= ruleVariable ) ) (otherlv_3= Comma ( (lv_variables_4_0= ruleVariable ) ) )* )? otherlv_5= RightSquareBracket ) - { - // InternalSolverLanguageParser.g:2145:2: ( () otherlv_1= LeftSquareBracket ( ( (lv_variables_2_0= ruleVariable ) ) (otherlv_3= Comma ( (lv_variables_4_0= ruleVariable ) ) )* )? otherlv_5= RightSquareBracket ) - // InternalSolverLanguageParser.g:2146:3: () otherlv_1= LeftSquareBracket ( ( (lv_variables_2_0= ruleVariable ) ) (otherlv_3= Comma ( (lv_variables_4_0= ruleVariable ) ) )* )? otherlv_5= RightSquareBracket - { - // InternalSolverLanguageParser.g:2146:3: () - // InternalSolverLanguageParser.g:2147:4: - { - - current = forceCreateModelElement( - grammarAccess.getLocalVariablesAccess().getLocalVariablesAction_0(), - current); - - - } - - otherlv_1=(Token)match(input,LeftSquareBracket,FOLLOW_34); - - newLeafNode(otherlv_1, grammarAccess.getLocalVariablesAccess().getLeftSquareBracketKeyword_1()); - - // InternalSolverLanguageParser.g:2157:3: ( ( (lv_variables_2_0= ruleVariable ) ) (otherlv_3= Comma ( (lv_variables_4_0= ruleVariable ) ) )* )? - int alt25=2; - int LA25_0 = input.LA(1); - - if ( (LA25_0==RULE_QUOTED_ID||LA25_0==RULE_ID) ) { - alt25=1; - } - switch (alt25) { - case 1 : - // InternalSolverLanguageParser.g:2158:4: ( (lv_variables_2_0= ruleVariable ) ) (otherlv_3= Comma ( (lv_variables_4_0= ruleVariable ) ) )* - { - // InternalSolverLanguageParser.g:2158:4: ( (lv_variables_2_0= ruleVariable ) ) - // InternalSolverLanguageParser.g:2159:5: (lv_variables_2_0= ruleVariable ) - { - // InternalSolverLanguageParser.g:2159:5: (lv_variables_2_0= ruleVariable ) - // InternalSolverLanguageParser.g:2160:6: lv_variables_2_0= ruleVariable - { - - newCompositeNode(grammarAccess.getLocalVariablesAccess().getVariablesVariableParserRuleCall_2_0_0()); - - pushFollow(FOLLOW_35); - lv_variables_2_0=ruleVariable(); - - state._fsp--; - - - if (current==null) { - current = createModelElementForParent(grammarAccess.getLocalVariablesRule()); - } - add( - current, - "variables", - lv_variables_2_0, - "org.eclipse.viatra.solver.language.SolverLanguage.Variable"); - afterParserOrEnumRuleCall(); - - - } - - - } - - // InternalSolverLanguageParser.g:2177:4: (otherlv_3= Comma ( (lv_variables_4_0= ruleVariable ) ) )* - loop24: - do { - int alt24=2; - int LA24_0 = input.LA(1); - - if ( (LA24_0==Comma) ) { - alt24=1; - } - - - switch (alt24) { - case 1 : - // InternalSolverLanguageParser.g:2178:5: otherlv_3= Comma ( (lv_variables_4_0= ruleVariable ) ) - { - otherlv_3=(Token)match(input,Comma,FOLLOW_8); - - newLeafNode(otherlv_3, grammarAccess.getLocalVariablesAccess().getCommaKeyword_2_1_0()); - - // InternalSolverLanguageParser.g:2182:5: ( (lv_variables_4_0= ruleVariable ) ) - // InternalSolverLanguageParser.g:2183:6: (lv_variables_4_0= ruleVariable ) - { - // InternalSolverLanguageParser.g:2183:6: (lv_variables_4_0= ruleVariable ) - // InternalSolverLanguageParser.g:2184:7: lv_variables_4_0= ruleVariable - { - - newCompositeNode(grammarAccess.getLocalVariablesAccess().getVariablesVariableParserRuleCall_2_1_1_0()); - - pushFollow(FOLLOW_35); - lv_variables_4_0=ruleVariable(); - - state._fsp--; - - - if (current==null) { - current = createModelElementForParent(grammarAccess.getLocalVariablesRule()); - } - add( - current, - "variables", - lv_variables_4_0, - "org.eclipse.viatra.solver.language.SolverLanguage.Variable"); - afterParserOrEnumRuleCall(); - - - } - - - } - - - } - break; - - default : - break loop24; - } - } while (true); - + this_Count_2=ruleCount(); - } - break; + state._fsp--; - } - otherlv_5=(Token)match(input,RightSquareBracket,FOLLOW_2); + current = this_Count_2; + afterParserOrEnumRuleCall(); + - newLeafNode(otherlv_5, grammarAccess.getLocalVariablesAccess().getRightSquareBracketKeyword_3()); - + } + break; } @@ -5497,28 +6199,28 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } return current; } - // $ANTLR end "ruleLocalVariables" + // $ANTLR end "ruleBracedAggregateExpression" - // $ANTLR start "entryRuleQuantifiedExpression" - // InternalSolverLanguageParser.g:2211:1: entryRuleQuantifiedExpression returns [EObject current=null] : iv_ruleQuantifiedExpression= ruleQuantifiedExpression EOF ; - public final EObject entryRuleQuantifiedExpression() throws RecognitionException { + // $ANTLR start "entryRuleAggregation" + // InternalSolverLanguageParser.g:2482:1: entryRuleAggregation returns [EObject current=null] : iv_ruleAggregation= ruleAggregation EOF ; + public final EObject entryRuleAggregation() throws RecognitionException { EObject current = null; - EObject iv_ruleQuantifiedExpression = null; + EObject iv_ruleAggregation = null; try { - // InternalSolverLanguageParser.g:2211:61: (iv_ruleQuantifiedExpression= ruleQuantifiedExpression EOF ) - // InternalSolverLanguageParser.g:2212:2: iv_ruleQuantifiedExpression= ruleQuantifiedExpression EOF + // InternalSolverLanguageParser.g:2482:52: (iv_ruleAggregation= ruleAggregation EOF ) + // InternalSolverLanguageParser.g:2483:2: iv_ruleAggregation= ruleAggregation EOF { - newCompositeNode(grammarAccess.getQuantifiedExpressionRule()); + newCompositeNode(grammarAccess.getAggregationRule()); pushFollow(FOLLOW_1); - iv_ruleQuantifiedExpression=ruleQuantifiedExpression(); + iv_ruleAggregation=ruleAggregation(); state._fsp--; - current =iv_ruleQuantifiedExpression; + current =iv_ruleAggregation; match(input,EOF,FOLLOW_2); } @@ -5533,56 +6235,52 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } return current; } - // $ANTLR end "entryRuleQuantifiedExpression" + // $ANTLR end "entryRuleAggregation" - // $ANTLR start "ruleQuantifiedExpression" - // InternalSolverLanguageParser.g:2218:1: ruleQuantifiedExpression returns [EObject current=null] : ( ( (lv_quantifier_0_0= ruleQuantifier ) ) ( (lv_localVariables_1_0= ruleLocalVariables ) )? otherlv_2= LeftCurlyBracket ( (lv_body_3_0= ruleExpression ) ) otherlv_4= RightCurlyBracket ) ; - public final EObject ruleQuantifiedExpression() throws RecognitionException { + // $ANTLR start "ruleAggregation" + // InternalSolverLanguageParser.g:2489:1: ruleAggregation returns [EObject current=null] : ( ( ( ruleQualifiedName ) ) otherlv_1= LeftCurlyBracket ( (lv_value_2_0= ruleExpression ) ) otherlv_3= VerticalLine ( (lv_condition_4_0= ruleExpression ) ) otherlv_5= RightCurlyBracket ) ; + public final EObject ruleAggregation() throws RecognitionException { EObject current = null; - Token otherlv_2=null; - Token otherlv_4=null; - Enumerator lv_quantifier_0_0 = null; - - EObject lv_localVariables_1_0 = null; + Token otherlv_1=null; + Token otherlv_3=null; + Token otherlv_5=null; + EObject lv_value_2_0 = null; - EObject lv_body_3_0 = null; + EObject lv_condition_4_0 = null; enterRule(); try { - // InternalSolverLanguageParser.g:2224:2: ( ( ( (lv_quantifier_0_0= ruleQuantifier ) ) ( (lv_localVariables_1_0= ruleLocalVariables ) )? otherlv_2= LeftCurlyBracket ( (lv_body_3_0= ruleExpression ) ) otherlv_4= RightCurlyBracket ) ) - // InternalSolverLanguageParser.g:2225:2: ( ( (lv_quantifier_0_0= ruleQuantifier ) ) ( (lv_localVariables_1_0= ruleLocalVariables ) )? otherlv_2= LeftCurlyBracket ( (lv_body_3_0= ruleExpression ) ) otherlv_4= RightCurlyBracket ) + // InternalSolverLanguageParser.g:2495:2: ( ( ( ( ruleQualifiedName ) ) otherlv_1= LeftCurlyBracket ( (lv_value_2_0= ruleExpression ) ) otherlv_3= VerticalLine ( (lv_condition_4_0= ruleExpression ) ) otherlv_5= RightCurlyBracket ) ) + // InternalSolverLanguageParser.g:2496:2: ( ( ( ruleQualifiedName ) ) otherlv_1= LeftCurlyBracket ( (lv_value_2_0= ruleExpression ) ) otherlv_3= VerticalLine ( (lv_condition_4_0= ruleExpression ) ) otherlv_5= RightCurlyBracket ) { - // InternalSolverLanguageParser.g:2225:2: ( ( (lv_quantifier_0_0= ruleQuantifier ) ) ( (lv_localVariables_1_0= ruleLocalVariables ) )? otherlv_2= LeftCurlyBracket ( (lv_body_3_0= ruleExpression ) ) otherlv_4= RightCurlyBracket ) - // InternalSolverLanguageParser.g:2226:3: ( (lv_quantifier_0_0= ruleQuantifier ) ) ( (lv_localVariables_1_0= ruleLocalVariables ) )? otherlv_2= LeftCurlyBracket ( (lv_body_3_0= ruleExpression ) ) otherlv_4= RightCurlyBracket + // InternalSolverLanguageParser.g:2496:2: ( ( ( ruleQualifiedName ) ) otherlv_1= LeftCurlyBracket ( (lv_value_2_0= ruleExpression ) ) otherlv_3= VerticalLine ( (lv_condition_4_0= ruleExpression ) ) otherlv_5= RightCurlyBracket ) + // InternalSolverLanguageParser.g:2497:3: ( ( ruleQualifiedName ) ) otherlv_1= LeftCurlyBracket ( (lv_value_2_0= ruleExpression ) ) otherlv_3= VerticalLine ( (lv_condition_4_0= ruleExpression ) ) otherlv_5= RightCurlyBracket { - // InternalSolverLanguageParser.g:2226:3: ( (lv_quantifier_0_0= ruleQuantifier ) ) - // InternalSolverLanguageParser.g:2227:4: (lv_quantifier_0_0= ruleQuantifier ) + // InternalSolverLanguageParser.g:2497:3: ( ( ruleQualifiedName ) ) + // InternalSolverLanguageParser.g:2498:4: ( ruleQualifiedName ) { - // InternalSolverLanguageParser.g:2227:4: (lv_quantifier_0_0= ruleQuantifier ) - // InternalSolverLanguageParser.g:2228:5: lv_quantifier_0_0= ruleQuantifier + // InternalSolverLanguageParser.g:2498:4: ( ruleQualifiedName ) + // InternalSolverLanguageParser.g:2499:5: ruleQualifiedName { - newCompositeNode(grammarAccess.getQuantifiedExpressionAccess().getQuantifierQuantifierEnumRuleCall_0_0()); + if (current==null) { + current = createModelElement(grammarAccess.getAggregationRule()); + } + + + newCompositeNode(grammarAccess.getAggregationAccess().getOpSymbolCrossReference_0_0()); - pushFollow(FOLLOW_36); - lv_quantifier_0_0=ruleQuantifier(); + pushFollow(FOLLOW_20); + ruleQualifiedName(); state._fsp--; - if (current==null) { - current = createModelElementForParent(grammarAccess.getQuantifiedExpressionRule()); - } - set( - current, - "quantifier", - lv_quantifier_0_0, - "org.eclipse.viatra.solver.language.SolverLanguage.Quantifier"); afterParserOrEnumRuleCall(); @@ -5591,74 +6289,67 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } - // InternalSolverLanguageParser.g:2245:3: ( (lv_localVariables_1_0= ruleLocalVariables ) )? - int alt26=2; - int LA26_0 = input.LA(1); - - if ( (LA26_0==LeftSquareBracket) ) { - alt26=1; - } - switch (alt26) { - case 1 : - // InternalSolverLanguageParser.g:2246:4: (lv_localVariables_1_0= ruleLocalVariables ) - { - // InternalSolverLanguageParser.g:2246:4: (lv_localVariables_1_0= ruleLocalVariables ) - // InternalSolverLanguageParser.g:2247:5: lv_localVariables_1_0= ruleLocalVariables - { + otherlv_1=(Token)match(input,LeftCurlyBracket,FOLLOW_10); - newCompositeNode(grammarAccess.getQuantifiedExpressionAccess().getLocalVariablesLocalVariablesParserRuleCall_1_0()); - - pushFollow(FOLLOW_14); - lv_localVariables_1_0=ruleLocalVariables(); + newLeafNode(otherlv_1, grammarAccess.getAggregationAccess().getLeftCurlyBracketKeyword_1()); + + // InternalSolverLanguageParser.g:2517:3: ( (lv_value_2_0= ruleExpression ) ) + // InternalSolverLanguageParser.g:2518:4: (lv_value_2_0= ruleExpression ) + { + // InternalSolverLanguageParser.g:2518:4: (lv_value_2_0= ruleExpression ) + // InternalSolverLanguageParser.g:2519:5: lv_value_2_0= ruleExpression + { - state._fsp--; + newCompositeNode(grammarAccess.getAggregationAccess().getValueExpressionParserRuleCall_2_0()); + + pushFollow(FOLLOW_40); + lv_value_2_0=ruleExpression(); + state._fsp--; - if (current==null) { - current = createModelElementForParent(grammarAccess.getQuantifiedExpressionRule()); - } - set( - current, - "localVariables", - lv_localVariables_1_0, - "org.eclipse.viatra.solver.language.SolverLanguage.LocalVariables"); - afterParserOrEnumRuleCall(); - - } + if (current==null) { + current = createModelElementForParent(grammarAccess.getAggregationRule()); + } + set( + current, + "value", + lv_value_2_0, + "org.eclipse.viatra.solver.language.SolverLanguage.Expression"); + afterParserOrEnumRuleCall(); + + } - } - break; } - otherlv_2=(Token)match(input,LeftCurlyBracket,FOLLOW_6); + otherlv_3=(Token)match(input,VerticalLine,FOLLOW_10); - newLeafNode(otherlv_2, grammarAccess.getQuantifiedExpressionAccess().getLeftCurlyBracketKeyword_2()); + newLeafNode(otherlv_3, grammarAccess.getAggregationAccess().getVerticalLineKeyword_3()); - // InternalSolverLanguageParser.g:2268:3: ( (lv_body_3_0= ruleExpression ) ) - // InternalSolverLanguageParser.g:2269:4: (lv_body_3_0= ruleExpression ) + // InternalSolverLanguageParser.g:2540:3: ( (lv_condition_4_0= ruleExpression ) ) + // InternalSolverLanguageParser.g:2541:4: (lv_condition_4_0= ruleExpression ) { - // InternalSolverLanguageParser.g:2269:4: (lv_body_3_0= ruleExpression ) - // InternalSolverLanguageParser.g:2270:5: lv_body_3_0= ruleExpression + // InternalSolverLanguageParser.g:2541:4: (lv_condition_4_0= ruleExpression ) + // InternalSolverLanguageParser.g:2542:5: lv_condition_4_0= ruleExpression { - newCompositeNode(grammarAccess.getQuantifiedExpressionAccess().getBodyExpressionParserRuleCall_3_0()); + newCompositeNode(grammarAccess.getAggregationAccess().getConditionExpressionParserRuleCall_4_0()); - pushFollow(FOLLOW_16); - lv_body_3_0=ruleExpression(); + pushFollow(FOLLOW_22); + lv_condition_4_0=ruleExpression(); state._fsp--; if (current==null) { - current = createModelElementForParent(grammarAccess.getQuantifiedExpressionRule()); + current = createModelElementForParent(grammarAccess.getAggregationRule()); } set( current, - "body", - lv_body_3_0, + "condition", + lv_condition_4_0, "org.eclipse.viatra.solver.language.SolverLanguage.Expression"); afterParserOrEnumRuleCall(); @@ -5668,9 +6359,9 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } - otherlv_4=(Token)match(input,RightCurlyBracket,FOLLOW_2); + otherlv_5=(Token)match(input,RightCurlyBracket,FOLLOW_2); - newLeafNode(otherlv_4, grammarAccess.getQuantifiedExpressionAccess().getRightCurlyBracketKeyword_4()); + newLeafNode(otherlv_5, grammarAccess.getAggregationAccess().getRightCurlyBracketKeyword_5()); } @@ -5691,28 +6382,28 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } return current; } - // $ANTLR end "ruleQuantifiedExpression" + // $ANTLR end "ruleAggregation" - // $ANTLR start "entryRuleAggregation" - // InternalSolverLanguageParser.g:2295:1: entryRuleAggregation returns [EObject current=null] : iv_ruleAggregation= ruleAggregation EOF ; - public final EObject entryRuleAggregation() throws RecognitionException { + // $ANTLR start "entryRuleCount" + // InternalSolverLanguageParser.g:2567:1: entryRuleCount returns [EObject current=null] : iv_ruleCount= ruleCount EOF ; + public final EObject entryRuleCount() throws RecognitionException { EObject current = null; - EObject iv_ruleAggregation = null; + EObject iv_ruleCount = null; try { - // InternalSolverLanguageParser.g:2295:52: (iv_ruleAggregation= ruleAggregation EOF ) - // InternalSolverLanguageParser.g:2296:2: iv_ruleAggregation= ruleAggregation EOF + // InternalSolverLanguageParser.g:2567:46: (iv_ruleCount= ruleCount EOF ) + // InternalSolverLanguageParser.g:2568:2: iv_ruleCount= ruleCount EOF { - newCompositeNode(grammarAccess.getAggregationRule()); + newCompositeNode(grammarAccess.getCountRule()); pushFollow(FOLLOW_1); - iv_ruleAggregation=ruleAggregation(); + iv_ruleCount=ruleCount(); state._fsp--; - current =iv_ruleAggregation; + current =iv_ruleCount; match(input,EOF,FOLLOW_2); } @@ -5727,130 +6418,60 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } return current; } - // $ANTLR end "entryRuleAggregation" + // $ANTLR end "entryRuleCount" - // $ANTLR start "ruleAggregation" - // InternalSolverLanguageParser.g:2302:1: ruleAggregation returns [EObject current=null] : ( ( ( ruleQualifiedName ) ) ( (lv_localVariables_1_0= ruleLocalVariables ) )? otherlv_2= LeftCurlyBracket ( (lv_body_3_0= ruleExpression ) ) (otherlv_4= VerticalLine ( (lv_condition_5_0= ruleExpression ) ) )? otherlv_6= RightCurlyBracket ) ; - public final EObject ruleAggregation() throws RecognitionException { + // $ANTLR start "ruleCount" + // InternalSolverLanguageParser.g:2574:1: ruleCount returns [EObject current=null] : (otherlv_0= Count otherlv_1= LeftCurlyBracket ( (lv_condition_2_0= ruleExpression ) ) otherlv_3= RightCurlyBracket ) ; + public final EObject ruleCount() throws RecognitionException { EObject current = null; - Token otherlv_2=null; - Token otherlv_4=null; - Token otherlv_6=null; - EObject lv_localVariables_1_0 = null; - - EObject lv_body_3_0 = null; - - EObject lv_condition_5_0 = null; + Token otherlv_0=null; + Token otherlv_1=null; + Token otherlv_3=null; + EObject lv_condition_2_0 = null; enterRule(); try { - // InternalSolverLanguageParser.g:2308:2: ( ( ( ( ruleQualifiedName ) ) ( (lv_localVariables_1_0= ruleLocalVariables ) )? otherlv_2= LeftCurlyBracket ( (lv_body_3_0= ruleExpression ) ) (otherlv_4= VerticalLine ( (lv_condition_5_0= ruleExpression ) ) )? otherlv_6= RightCurlyBracket ) ) - // InternalSolverLanguageParser.g:2309:2: ( ( ( ruleQualifiedName ) ) ( (lv_localVariables_1_0= ruleLocalVariables ) )? otherlv_2= LeftCurlyBracket ( (lv_body_3_0= ruleExpression ) ) (otherlv_4= VerticalLine ( (lv_condition_5_0= ruleExpression ) ) )? otherlv_6= RightCurlyBracket ) - { - // InternalSolverLanguageParser.g:2309:2: ( ( ( ruleQualifiedName ) ) ( (lv_localVariables_1_0= ruleLocalVariables ) )? otherlv_2= LeftCurlyBracket ( (lv_body_3_0= ruleExpression ) ) (otherlv_4= VerticalLine ( (lv_condition_5_0= ruleExpression ) ) )? otherlv_6= RightCurlyBracket ) - // InternalSolverLanguageParser.g:2310:3: ( ( ruleQualifiedName ) ) ( (lv_localVariables_1_0= ruleLocalVariables ) )? otherlv_2= LeftCurlyBracket ( (lv_body_3_0= ruleExpression ) ) (otherlv_4= VerticalLine ( (lv_condition_5_0= ruleExpression ) ) )? otherlv_6= RightCurlyBracket + // InternalSolverLanguageParser.g:2580:2: ( (otherlv_0= Count otherlv_1= LeftCurlyBracket ( (lv_condition_2_0= ruleExpression ) ) otherlv_3= RightCurlyBracket ) ) + // InternalSolverLanguageParser.g:2581:2: (otherlv_0= Count otherlv_1= LeftCurlyBracket ( (lv_condition_2_0= ruleExpression ) ) otherlv_3= RightCurlyBracket ) { - // InternalSolverLanguageParser.g:2310:3: ( ( ruleQualifiedName ) ) - // InternalSolverLanguageParser.g:2311:4: ( ruleQualifiedName ) + // InternalSolverLanguageParser.g:2581:2: (otherlv_0= Count otherlv_1= LeftCurlyBracket ( (lv_condition_2_0= ruleExpression ) ) otherlv_3= RightCurlyBracket ) + // InternalSolverLanguageParser.g:2582:3: otherlv_0= Count otherlv_1= LeftCurlyBracket ( (lv_condition_2_0= ruleExpression ) ) otherlv_3= RightCurlyBracket { - // InternalSolverLanguageParser.g:2311:4: ( ruleQualifiedName ) - // InternalSolverLanguageParser.g:2312:5: ruleQualifiedName - { - - if (current==null) { - current = createModelElement(grammarAccess.getAggregationRule()); - } - - - newCompositeNode(grammarAccess.getAggregationAccess().getOpNamedElementCrossReference_0_0()); - - pushFollow(FOLLOW_36); - ruleQualifiedName(); - - state._fsp--; - - - afterParserOrEnumRuleCall(); - - - } - - - } - - // InternalSolverLanguageParser.g:2326:3: ( (lv_localVariables_1_0= ruleLocalVariables ) )? - int alt27=2; - int LA27_0 = input.LA(1); - - if ( (LA27_0==LeftSquareBracket) ) { - alt27=1; - } - switch (alt27) { - case 1 : - // InternalSolverLanguageParser.g:2327:4: (lv_localVariables_1_0= ruleLocalVariables ) - { - // InternalSolverLanguageParser.g:2327:4: (lv_localVariables_1_0= ruleLocalVariables ) - // InternalSolverLanguageParser.g:2328:5: lv_localVariables_1_0= ruleLocalVariables - { - - newCompositeNode(grammarAccess.getAggregationAccess().getLocalVariablesLocalVariablesParserRuleCall_1_0()); - - pushFollow(FOLLOW_14); - lv_localVariables_1_0=ruleLocalVariables(); - - state._fsp--; - - - if (current==null) { - current = createModelElementForParent(grammarAccess.getAggregationRule()); - } - set( - current, - "localVariables", - lv_localVariables_1_0, - "org.eclipse.viatra.solver.language.SolverLanguage.LocalVariables"); - afterParserOrEnumRuleCall(); - - - } - - - } - break; - - } + otherlv_0=(Token)match(input,Count,FOLLOW_20); - otherlv_2=(Token)match(input,LeftCurlyBracket,FOLLOW_6); + newLeafNode(otherlv_0, grammarAccess.getCountAccess().getCountKeyword_0()); + + otherlv_1=(Token)match(input,LeftCurlyBracket,FOLLOW_10); - newLeafNode(otherlv_2, grammarAccess.getAggregationAccess().getLeftCurlyBracketKeyword_2()); + newLeafNode(otherlv_1, grammarAccess.getCountAccess().getLeftCurlyBracketKeyword_1()); - // InternalSolverLanguageParser.g:2349:3: ( (lv_body_3_0= ruleExpression ) ) - // InternalSolverLanguageParser.g:2350:4: (lv_body_3_0= ruleExpression ) + // InternalSolverLanguageParser.g:2590:3: ( (lv_condition_2_0= ruleExpression ) ) + // InternalSolverLanguageParser.g:2591:4: (lv_condition_2_0= ruleExpression ) { - // InternalSolverLanguageParser.g:2350:4: (lv_body_3_0= ruleExpression ) - // InternalSolverLanguageParser.g:2351:5: lv_body_3_0= ruleExpression + // InternalSolverLanguageParser.g:2591:4: (lv_condition_2_0= ruleExpression ) + // InternalSolverLanguageParser.g:2592:5: lv_condition_2_0= ruleExpression { - newCompositeNode(grammarAccess.getAggregationAccess().getBodyExpressionParserRuleCall_3_0()); + newCompositeNode(grammarAccess.getCountAccess().getConditionExpressionParserRuleCall_2_0()); - pushFollow(FOLLOW_37); - lv_body_3_0=ruleExpression(); + pushFollow(FOLLOW_22); + lv_condition_2_0=ruleExpression(); state._fsp--; if (current==null) { - current = createModelElementForParent(grammarAccess.getAggregationRule()); + current = createModelElementForParent(grammarAccess.getCountRule()); } set( current, - "body", - lv_body_3_0, + "condition", + lv_condition_2_0, "org.eclipse.viatra.solver.language.SolverLanguage.Expression"); afterParserOrEnumRuleCall(); @@ -5860,61 +6481,9 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } - // InternalSolverLanguageParser.g:2368:3: (otherlv_4= VerticalLine ( (lv_condition_5_0= ruleExpression ) ) )? - int alt28=2; - int LA28_0 = input.LA(1); - - if ( (LA28_0==VerticalLine) ) { - alt28=1; - } - switch (alt28) { - case 1 : - // InternalSolverLanguageParser.g:2369:4: otherlv_4= VerticalLine ( (lv_condition_5_0= ruleExpression ) ) - { - otherlv_4=(Token)match(input,VerticalLine,FOLLOW_6); - - newLeafNode(otherlv_4, grammarAccess.getAggregationAccess().getVerticalLineKeyword_4_0()); - - // InternalSolverLanguageParser.g:2373:4: ( (lv_condition_5_0= ruleExpression ) ) - // InternalSolverLanguageParser.g:2374:5: (lv_condition_5_0= ruleExpression ) - { - // InternalSolverLanguageParser.g:2374:5: (lv_condition_5_0= ruleExpression ) - // InternalSolverLanguageParser.g:2375:6: lv_condition_5_0= ruleExpression - { - - newCompositeNode(grammarAccess.getAggregationAccess().getConditionExpressionParserRuleCall_4_1_0()); - - pushFollow(FOLLOW_16); - lv_condition_5_0=ruleExpression(); - - state._fsp--; - - - if (current==null) { - current = createModelElementForParent(grammarAccess.getAggregationRule()); - } - set( - current, - "condition", - lv_condition_5_0, - "org.eclipse.viatra.solver.language.SolverLanguage.Expression"); - afterParserOrEnumRuleCall(); - - - } - - - } - - - } - break; - - } - - otherlv_6=(Token)match(input,RightCurlyBracket,FOLLOW_2); + otherlv_3=(Token)match(input,RightCurlyBracket,FOLLOW_2); - newLeafNode(otherlv_6, grammarAccess.getAggregationAccess().getRightCurlyBracketKeyword_5()); + newLeafNode(otherlv_3, grammarAccess.getCountAccess().getRightCurlyBracketKeyword_3()); } @@ -5935,11 +6504,11 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } return current; } - // $ANTLR end "ruleAggregation" + // $ANTLR end "ruleCount" // $ANTLR start "entryRuleAtomicExpression" - // InternalSolverLanguageParser.g:2401:1: entryRuleAtomicExpression returns [EObject current=null] : iv_ruleAtomicExpression= ruleAtomicExpression EOF ; + // InternalSolverLanguageParser.g:2617:1: entryRuleAtomicExpression returns [EObject current=null] : iv_ruleAtomicExpression= ruleAtomicExpression EOF ; public final EObject entryRuleAtomicExpression() throws RecognitionException { EObject current = null; @@ -5947,8 +6516,8 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { try { - // InternalSolverLanguageParser.g:2401:57: (iv_ruleAtomicExpression= ruleAtomicExpression EOF ) - // InternalSolverLanguageParser.g:2402:2: iv_ruleAtomicExpression= ruleAtomicExpression EOF + // InternalSolverLanguageParser.g:2617:57: (iv_ruleAtomicExpression= ruleAtomicExpression EOF ) + // InternalSolverLanguageParser.g:2618:2: iv_ruleAtomicExpression= ruleAtomicExpression EOF { newCompositeNode(grammarAccess.getAtomicExpressionRule()); pushFollow(FOLLOW_1); @@ -5975,7 +6544,7 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { // $ANTLR start "ruleAtomicExpression" - // InternalSolverLanguageParser.g:2408:1: ruleAtomicExpression returns [EObject current=null] : (this_Reference_0= ruleReference | this_Call_1= ruleCall | this_Interval_2= ruleInterval | this_Literal_3= ruleLiteral | (otherlv_4= LeftParenthesis this_Expression_5= ruleExpression otherlv_6= RightParenthesis ) ) ; + // InternalSolverLanguageParser.g:2624:1: ruleAtomicExpression returns [EObject current=null] : (this_Reference_0= ruleReference | this_Call_1= ruleCall | this_Interval_2= ruleInterval | this_Literal_3= ruleLiteral | (otherlv_4= LeftParenthesis this_Expression_5= ruleExpression otherlv_6= RightParenthesis ) ) ; public final EObject ruleAtomicExpression() throws RecognitionException { EObject current = null; @@ -5996,15 +6565,15 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { enterRule(); try { - // InternalSolverLanguageParser.g:2414:2: ( (this_Reference_0= ruleReference | this_Call_1= ruleCall | this_Interval_2= ruleInterval | this_Literal_3= ruleLiteral | (otherlv_4= LeftParenthesis this_Expression_5= ruleExpression otherlv_6= RightParenthesis ) ) ) - // InternalSolverLanguageParser.g:2415:2: (this_Reference_0= ruleReference | this_Call_1= ruleCall | this_Interval_2= ruleInterval | this_Literal_3= ruleLiteral | (otherlv_4= LeftParenthesis this_Expression_5= ruleExpression otherlv_6= RightParenthesis ) ) + // InternalSolverLanguageParser.g:2630:2: ( (this_Reference_0= ruleReference | this_Call_1= ruleCall | this_Interval_2= ruleInterval | this_Literal_3= ruleLiteral | (otherlv_4= LeftParenthesis this_Expression_5= ruleExpression otherlv_6= RightParenthesis ) ) ) + // InternalSolverLanguageParser.g:2631:2: (this_Reference_0= ruleReference | this_Call_1= ruleCall | this_Interval_2= ruleInterval | this_Literal_3= ruleLiteral | (otherlv_4= LeftParenthesis this_Expression_5= ruleExpression otherlv_6= RightParenthesis ) ) { - // InternalSolverLanguageParser.g:2415:2: (this_Reference_0= ruleReference | this_Call_1= ruleCall | this_Interval_2= ruleInterval | this_Literal_3= ruleLiteral | (otherlv_4= LeftParenthesis this_Expression_5= ruleExpression otherlv_6= RightParenthesis ) ) - int alt29=5; - alt29 = dfa29.predict(input); - switch (alt29) { + // InternalSolverLanguageParser.g:2631:2: (this_Reference_0= ruleReference | this_Call_1= ruleCall | this_Interval_2= ruleInterval | this_Literal_3= ruleLiteral | (otherlv_4= LeftParenthesis this_Expression_5= ruleExpression otherlv_6= RightParenthesis ) ) + int alt31=5; + alt31 = dfa31.predict(input); + switch (alt31) { case 1 : - // InternalSolverLanguageParser.g:2416:3: this_Reference_0= ruleReference + // InternalSolverLanguageParser.g:2632:3: this_Reference_0= ruleReference { newCompositeNode(grammarAccess.getAtomicExpressionAccess().getReferenceParserRuleCall_0()); @@ -6022,7 +6591,7 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } break; case 2 : - // InternalSolverLanguageParser.g:2425:3: this_Call_1= ruleCall + // InternalSolverLanguageParser.g:2641:3: this_Call_1= ruleCall { newCompositeNode(grammarAccess.getAtomicExpressionAccess().getCallParserRuleCall_1()); @@ -6040,7 +6609,7 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } break; case 3 : - // InternalSolverLanguageParser.g:2434:3: this_Interval_2= ruleInterval + // InternalSolverLanguageParser.g:2650:3: this_Interval_2= ruleInterval { newCompositeNode(grammarAccess.getAtomicExpressionAccess().getIntervalParserRuleCall_2()); @@ -6058,7 +6627,7 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } break; case 4 : - // InternalSolverLanguageParser.g:2443:3: this_Literal_3= ruleLiteral + // InternalSolverLanguageParser.g:2659:3: this_Literal_3= ruleLiteral { newCompositeNode(grammarAccess.getAtomicExpressionAccess().getLiteralParserRuleCall_3()); @@ -6076,19 +6645,19 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } break; case 5 : - // InternalSolverLanguageParser.g:2452:3: (otherlv_4= LeftParenthesis this_Expression_5= ruleExpression otherlv_6= RightParenthesis ) + // InternalSolverLanguageParser.g:2668:3: (otherlv_4= LeftParenthesis this_Expression_5= ruleExpression otherlv_6= RightParenthesis ) { - // InternalSolverLanguageParser.g:2452:3: (otherlv_4= LeftParenthesis this_Expression_5= ruleExpression otherlv_6= RightParenthesis ) - // InternalSolverLanguageParser.g:2453:4: otherlv_4= LeftParenthesis this_Expression_5= ruleExpression otherlv_6= RightParenthesis + // InternalSolverLanguageParser.g:2668:3: (otherlv_4= LeftParenthesis this_Expression_5= ruleExpression otherlv_6= RightParenthesis ) + // InternalSolverLanguageParser.g:2669:4: otherlv_4= LeftParenthesis this_Expression_5= ruleExpression otherlv_6= RightParenthesis { - otherlv_4=(Token)match(input,LeftParenthesis,FOLLOW_6); + otherlv_4=(Token)match(input,LeftParenthesis,FOLLOW_10); newLeafNode(otherlv_4, grammarAccess.getAtomicExpressionAccess().getLeftParenthesisKeyword_4_0()); newCompositeNode(grammarAccess.getAtomicExpressionAccess().getExpressionParserRuleCall_4_1()); - pushFollow(FOLLOW_38); + pushFollow(FOLLOW_41); this_Expression_5=ruleExpression(); state._fsp--; @@ -6130,7 +6699,7 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { // $ANTLR start "entryRuleCall" - // InternalSolverLanguageParser.g:2474:1: entryRuleCall returns [EObject current=null] : iv_ruleCall= ruleCall EOF ; + // InternalSolverLanguageParser.g:2690:1: entryRuleCall returns [EObject current=null] : iv_ruleCall= ruleCall EOF ; public final EObject entryRuleCall() throws RecognitionException { EObject current = null; @@ -6138,8 +6707,8 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { try { - // InternalSolverLanguageParser.g:2474:45: (iv_ruleCall= ruleCall EOF ) - // InternalSolverLanguageParser.g:2475:2: iv_ruleCall= ruleCall EOF + // InternalSolverLanguageParser.g:2690:45: (iv_ruleCall= ruleCall EOF ) + // InternalSolverLanguageParser.g:2691:2: iv_ruleCall= ruleCall EOF { newCompositeNode(grammarAccess.getCallRule()); pushFollow(FOLLOW_1); @@ -6166,37 +6735,35 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { // $ANTLR start "ruleCall" - // InternalSolverLanguageParser.g:2481:1: ruleCall returns [EObject current=null] : ( ( (lv_functor_0_0= ruleReference ) ) ( ( (lv_transitiveClosure_1_0= RULE_TRANSITIVE_CLOSURE ) ) | ( (lv_reflexiveTransitiveClosure_2_0= RULE_REFLEXIVE_TRANSITIVE_CLOSURE ) ) )? ( (lv_argumentList_3_0= ruleArgumentList ) ) ) ; + // InternalSolverLanguageParser.g:2697:1: ruleCall returns [EObject current=null] : ( ( (lv_functor_0_0= ruleReference ) ) ( (lv_argumentList_1_0= ruleArgumentList ) ) ) ; public final EObject ruleCall() throws RecognitionException { EObject current = null; - Token lv_transitiveClosure_1_0=null; - Token lv_reflexiveTransitiveClosure_2_0=null; EObject lv_functor_0_0 = null; - EObject lv_argumentList_3_0 = null; + EObject lv_argumentList_1_0 = null; enterRule(); try { - // InternalSolverLanguageParser.g:2487:2: ( ( ( (lv_functor_0_0= ruleReference ) ) ( ( (lv_transitiveClosure_1_0= RULE_TRANSITIVE_CLOSURE ) ) | ( (lv_reflexiveTransitiveClosure_2_0= RULE_REFLEXIVE_TRANSITIVE_CLOSURE ) ) )? ( (lv_argumentList_3_0= ruleArgumentList ) ) ) ) - // InternalSolverLanguageParser.g:2488:2: ( ( (lv_functor_0_0= ruleReference ) ) ( ( (lv_transitiveClosure_1_0= RULE_TRANSITIVE_CLOSURE ) ) | ( (lv_reflexiveTransitiveClosure_2_0= RULE_REFLEXIVE_TRANSITIVE_CLOSURE ) ) )? ( (lv_argumentList_3_0= ruleArgumentList ) ) ) + // InternalSolverLanguageParser.g:2703:2: ( ( ( (lv_functor_0_0= ruleReference ) ) ( (lv_argumentList_1_0= ruleArgumentList ) ) ) ) + // InternalSolverLanguageParser.g:2704:2: ( ( (lv_functor_0_0= ruleReference ) ) ( (lv_argumentList_1_0= ruleArgumentList ) ) ) { - // InternalSolverLanguageParser.g:2488:2: ( ( (lv_functor_0_0= ruleReference ) ) ( ( (lv_transitiveClosure_1_0= RULE_TRANSITIVE_CLOSURE ) ) | ( (lv_reflexiveTransitiveClosure_2_0= RULE_REFLEXIVE_TRANSITIVE_CLOSURE ) ) )? ( (lv_argumentList_3_0= ruleArgumentList ) ) ) - // InternalSolverLanguageParser.g:2489:3: ( (lv_functor_0_0= ruleReference ) ) ( ( (lv_transitiveClosure_1_0= RULE_TRANSITIVE_CLOSURE ) ) | ( (lv_reflexiveTransitiveClosure_2_0= RULE_REFLEXIVE_TRANSITIVE_CLOSURE ) ) )? ( (lv_argumentList_3_0= ruleArgumentList ) ) + // InternalSolverLanguageParser.g:2704:2: ( ( (lv_functor_0_0= ruleReference ) ) ( (lv_argumentList_1_0= ruleArgumentList ) ) ) + // InternalSolverLanguageParser.g:2705:3: ( (lv_functor_0_0= ruleReference ) ) ( (lv_argumentList_1_0= ruleArgumentList ) ) { - // InternalSolverLanguageParser.g:2489:3: ( (lv_functor_0_0= ruleReference ) ) - // InternalSolverLanguageParser.g:2490:4: (lv_functor_0_0= ruleReference ) + // InternalSolverLanguageParser.g:2705:3: ( (lv_functor_0_0= ruleReference ) ) + // InternalSolverLanguageParser.g:2706:4: (lv_functor_0_0= ruleReference ) { - // InternalSolverLanguageParser.g:2490:4: (lv_functor_0_0= ruleReference ) - // InternalSolverLanguageParser.g:2491:5: lv_functor_0_0= ruleReference + // InternalSolverLanguageParser.g:2706:4: (lv_functor_0_0= ruleReference ) + // InternalSolverLanguageParser.g:2707:5: lv_functor_0_0= ruleReference { newCompositeNode(grammarAccess.getCallAccess().getFunctorReferenceParserRuleCall_0_0()); - pushFollow(FOLLOW_39); + pushFollow(FOLLOW_15); lv_functor_0_0=ruleReference(); state._fsp--; @@ -6209,104 +6776,26 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { current, "functor", lv_functor_0_0, - "org.eclipse.viatra.solver.language.SolverLanguage.Reference"); - afterParserOrEnumRuleCall(); - - - } - - - } - - // InternalSolverLanguageParser.g:2508:3: ( ( (lv_transitiveClosure_1_0= RULE_TRANSITIVE_CLOSURE ) ) | ( (lv_reflexiveTransitiveClosure_2_0= RULE_REFLEXIVE_TRANSITIVE_CLOSURE ) ) )? - int alt30=3; - int LA30_0 = input.LA(1); - - if ( (LA30_0==RULE_TRANSITIVE_CLOSURE) ) { - alt30=1; - } - else if ( (LA30_0==RULE_REFLEXIVE_TRANSITIVE_CLOSURE) ) { - alt30=2; - } - switch (alt30) { - case 1 : - // InternalSolverLanguageParser.g:2509:4: ( (lv_transitiveClosure_1_0= RULE_TRANSITIVE_CLOSURE ) ) - { - // InternalSolverLanguageParser.g:2509:4: ( (lv_transitiveClosure_1_0= RULE_TRANSITIVE_CLOSURE ) ) - // InternalSolverLanguageParser.g:2510:5: (lv_transitiveClosure_1_0= RULE_TRANSITIVE_CLOSURE ) - { - // InternalSolverLanguageParser.g:2510:5: (lv_transitiveClosure_1_0= RULE_TRANSITIVE_CLOSURE ) - // InternalSolverLanguageParser.g:2511:6: lv_transitiveClosure_1_0= RULE_TRANSITIVE_CLOSURE - { - lv_transitiveClosure_1_0=(Token)match(input,RULE_TRANSITIVE_CLOSURE,FOLLOW_11); - - newLeafNode(lv_transitiveClosure_1_0, grammarAccess.getCallAccess().getTransitiveClosureTRANSITIVE_CLOSURETerminalRuleCall_1_0_0()); - - - if (current==null) { - current = createModelElement(grammarAccess.getCallRule()); - } - setWithLastConsumed( - current, - "transitiveClosure", - true, - "org.eclipse.viatra.solver.language.SolverLanguage.TRANSITIVE_CLOSURE"); - - - } - - - } - - - } - break; - case 2 : - // InternalSolverLanguageParser.g:2528:4: ( (lv_reflexiveTransitiveClosure_2_0= RULE_REFLEXIVE_TRANSITIVE_CLOSURE ) ) - { - // InternalSolverLanguageParser.g:2528:4: ( (lv_reflexiveTransitiveClosure_2_0= RULE_REFLEXIVE_TRANSITIVE_CLOSURE ) ) - // InternalSolverLanguageParser.g:2529:5: (lv_reflexiveTransitiveClosure_2_0= RULE_REFLEXIVE_TRANSITIVE_CLOSURE ) - { - // InternalSolverLanguageParser.g:2529:5: (lv_reflexiveTransitiveClosure_2_0= RULE_REFLEXIVE_TRANSITIVE_CLOSURE ) - // InternalSolverLanguageParser.g:2530:6: lv_reflexiveTransitiveClosure_2_0= RULE_REFLEXIVE_TRANSITIVE_CLOSURE - { - lv_reflexiveTransitiveClosure_2_0=(Token)match(input,RULE_REFLEXIVE_TRANSITIVE_CLOSURE,FOLLOW_11); - - newLeafNode(lv_reflexiveTransitiveClosure_2_0, grammarAccess.getCallAccess().getReflexiveTransitiveClosureREFLEXIVE_TRANSITIVE_CLOSURETerminalRuleCall_1_1_0()); - - - if (current==null) { - current = createModelElement(grammarAccess.getCallRule()); - } - setWithLastConsumed( - current, - "reflexiveTransitiveClosure", - true, - "org.eclipse.viatra.solver.language.SolverLanguage.REFLEXIVE_TRANSITIVE_CLOSURE"); - - - } - - - } + "org.eclipse.viatra.solver.language.SolverLanguage.Reference"); + afterParserOrEnumRuleCall(); + + } - } - break; } - // InternalSolverLanguageParser.g:2547:3: ( (lv_argumentList_3_0= ruleArgumentList ) ) - // InternalSolverLanguageParser.g:2548:4: (lv_argumentList_3_0= ruleArgumentList ) + // InternalSolverLanguageParser.g:2724:3: ( (lv_argumentList_1_0= ruleArgumentList ) ) + // InternalSolverLanguageParser.g:2725:4: (lv_argumentList_1_0= ruleArgumentList ) { - // InternalSolverLanguageParser.g:2548:4: (lv_argumentList_3_0= ruleArgumentList ) - // InternalSolverLanguageParser.g:2549:5: lv_argumentList_3_0= ruleArgumentList + // InternalSolverLanguageParser.g:2725:4: (lv_argumentList_1_0= ruleArgumentList ) + // InternalSolverLanguageParser.g:2726:5: lv_argumentList_1_0= ruleArgumentList { - newCompositeNode(grammarAccess.getCallAccess().getArgumentListArgumentListParserRuleCall_2_0()); + newCompositeNode(grammarAccess.getCallAccess().getArgumentListArgumentListParserRuleCall_1_0()); pushFollow(FOLLOW_2); - lv_argumentList_3_0=ruleArgumentList(); + lv_argumentList_1_0=ruleArgumentList(); state._fsp--; @@ -6317,7 +6806,7 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { set( current, "argumentList", - lv_argumentList_3_0, + lv_argumentList_1_0, "org.eclipse.viatra.solver.language.SolverLanguage.ArgumentList"); afterParserOrEnumRuleCall(); @@ -6350,7 +6839,7 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { // $ANTLR start "entryRuleArgumentList" - // InternalSolverLanguageParser.g:2570:1: entryRuleArgumentList returns [EObject current=null] : iv_ruleArgumentList= ruleArgumentList EOF ; + // InternalSolverLanguageParser.g:2747:1: entryRuleArgumentList returns [EObject current=null] : iv_ruleArgumentList= ruleArgumentList EOF ; public final EObject entryRuleArgumentList() throws RecognitionException { EObject current = null; @@ -6358,8 +6847,8 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { try { - // InternalSolverLanguageParser.g:2570:53: (iv_ruleArgumentList= ruleArgumentList EOF ) - // InternalSolverLanguageParser.g:2571:2: iv_ruleArgumentList= ruleArgumentList EOF + // InternalSolverLanguageParser.g:2747:53: (iv_ruleArgumentList= ruleArgumentList EOF ) + // InternalSolverLanguageParser.g:2748:2: iv_ruleArgumentList= ruleArgumentList EOF { newCompositeNode(grammarAccess.getArgumentListRule()); pushFollow(FOLLOW_1); @@ -6386,7 +6875,7 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { // $ANTLR start "ruleArgumentList" - // InternalSolverLanguageParser.g:2577:1: ruleArgumentList returns [EObject current=null] : ( () otherlv_1= LeftParenthesis ( ( (lv_arguments_2_0= ruleArgument ) ) (otherlv_3= Comma ( (lv_arguments_4_0= ruleArgument ) ) )* )? otherlv_5= RightParenthesis ) ; + // InternalSolverLanguageParser.g:2754:1: ruleArgumentList returns [EObject current=null] : ( () otherlv_1= LeftParenthesis ( ( (lv_arguments_2_0= ruleArgument ) ) (otherlv_3= Comma ( (lv_arguments_4_0= ruleArgument ) ) )* )? otherlv_5= RightParenthesis ) ; public final EObject ruleArgumentList() throws RecognitionException { EObject current = null; @@ -6402,14 +6891,14 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { enterRule(); try { - // InternalSolverLanguageParser.g:2583:2: ( ( () otherlv_1= LeftParenthesis ( ( (lv_arguments_2_0= ruleArgument ) ) (otherlv_3= Comma ( (lv_arguments_4_0= ruleArgument ) ) )* )? otherlv_5= RightParenthesis ) ) - // InternalSolverLanguageParser.g:2584:2: ( () otherlv_1= LeftParenthesis ( ( (lv_arguments_2_0= ruleArgument ) ) (otherlv_3= Comma ( (lv_arguments_4_0= ruleArgument ) ) )* )? otherlv_5= RightParenthesis ) + // InternalSolverLanguageParser.g:2760:2: ( ( () otherlv_1= LeftParenthesis ( ( (lv_arguments_2_0= ruleArgument ) ) (otherlv_3= Comma ( (lv_arguments_4_0= ruleArgument ) ) )* )? otherlv_5= RightParenthesis ) ) + // InternalSolverLanguageParser.g:2761:2: ( () otherlv_1= LeftParenthesis ( ( (lv_arguments_2_0= ruleArgument ) ) (otherlv_3= Comma ( (lv_arguments_4_0= ruleArgument ) ) )* )? otherlv_5= RightParenthesis ) { - // InternalSolverLanguageParser.g:2584:2: ( () otherlv_1= LeftParenthesis ( ( (lv_arguments_2_0= ruleArgument ) ) (otherlv_3= Comma ( (lv_arguments_4_0= ruleArgument ) ) )* )? otherlv_5= RightParenthesis ) - // InternalSolverLanguageParser.g:2585:3: () otherlv_1= LeftParenthesis ( ( (lv_arguments_2_0= ruleArgument ) ) (otherlv_3= Comma ( (lv_arguments_4_0= ruleArgument ) ) )* )? otherlv_5= RightParenthesis + // InternalSolverLanguageParser.g:2761:2: ( () otherlv_1= LeftParenthesis ( ( (lv_arguments_2_0= ruleArgument ) ) (otherlv_3= Comma ( (lv_arguments_4_0= ruleArgument ) ) )* )? otherlv_5= RightParenthesis ) + // InternalSolverLanguageParser.g:2762:3: () otherlv_1= LeftParenthesis ( ( (lv_arguments_2_0= ruleArgument ) ) (otherlv_3= Comma ( (lv_arguments_4_0= ruleArgument ) ) )* )? otherlv_5= RightParenthesis { - // InternalSolverLanguageParser.g:2585:3: () - // InternalSolverLanguageParser.g:2586:4: + // InternalSolverLanguageParser.g:2762:3: () + // InternalSolverLanguageParser.g:2763:4: { current = forceCreateModelElement( @@ -6419,31 +6908,31 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } - otherlv_1=(Token)match(input,LeftParenthesis,FOLLOW_40); + otherlv_1=(Token)match(input,LeftParenthesis,FOLLOW_42); newLeafNode(otherlv_1, grammarAccess.getArgumentListAccess().getLeftParenthesisKeyword_1()); - // InternalSolverLanguageParser.g:2596:3: ( ( (lv_arguments_2_0= ruleArgument ) ) (otherlv_3= Comma ( (lv_arguments_4_0= ruleArgument ) ) )* )? - int alt32=2; - int LA32_0 = input.LA(1); + // InternalSolverLanguageParser.g:2773:3: ( ( (lv_arguments_2_0= ruleArgument ) ) (otherlv_3= Comma ( (lv_arguments_4_0= ruleArgument ) ) )* )? + int alt33=2; + int LA33_0 = input.LA(1); - if ( (LA32_0==Current||(LA32_0>=Unknown && LA32_0<=Exists)||LA32_0==Forall||(LA32_0>=Count && LA32_0<=False)||LA32_0==Must||LA32_0==True||LA32_0==Inf||LA32_0==May||(LA32_0>=ExclamationMark && LA32_0<=LeftParenthesis)||(LA32_0>=Asterisk && LA32_0<=PlusSign)||LA32_0==HyphenMinus||LA32_0==LeftSquareBracket||(LA32_0>=RULE_STRING && LA32_0<=RULE_QUOTED_ID)||(LA32_0>=RULE_ID && LA32_0<=RULE_INT)) ) { - alt32=1; + if ( (LA33_0==Unknown||LA33_0==Object||(LA33_0>=Count && LA33_0<=False)||LA33_0==True||LA33_0==Inf||(LA33_0>=ExclamationMark && LA33_0<=LeftParenthesis)||(LA33_0>=Asterisk && LA33_0<=PlusSign)||LA33_0==HyphenMinus||(LA33_0>=QuestionMark && LA33_0<=LeftSquareBracket)||(LA33_0>=Tilde && LA33_0<=RULE_QUOTED_ID)||(LA33_0>=RULE_ID && LA33_0<=RULE_INT)) ) { + alt33=1; } - switch (alt32) { + switch (alt33) { case 1 : - // InternalSolverLanguageParser.g:2597:4: ( (lv_arguments_2_0= ruleArgument ) ) (otherlv_3= Comma ( (lv_arguments_4_0= ruleArgument ) ) )* + // InternalSolverLanguageParser.g:2774:4: ( (lv_arguments_2_0= ruleArgument ) ) (otherlv_3= Comma ( (lv_arguments_4_0= ruleArgument ) ) )* { - // InternalSolverLanguageParser.g:2597:4: ( (lv_arguments_2_0= ruleArgument ) ) - // InternalSolverLanguageParser.g:2598:5: (lv_arguments_2_0= ruleArgument ) + // InternalSolverLanguageParser.g:2774:4: ( (lv_arguments_2_0= ruleArgument ) ) + // InternalSolverLanguageParser.g:2775:5: (lv_arguments_2_0= ruleArgument ) { - // InternalSolverLanguageParser.g:2598:5: (lv_arguments_2_0= ruleArgument ) - // InternalSolverLanguageParser.g:2599:6: lv_arguments_2_0= ruleArgument + // InternalSolverLanguageParser.g:2775:5: (lv_arguments_2_0= ruleArgument ) + // InternalSolverLanguageParser.g:2776:6: lv_arguments_2_0= ruleArgument { newCompositeNode(grammarAccess.getArgumentListAccess().getArgumentsArgumentParserRuleCall_2_0_0()); - pushFollow(FOLLOW_41); + pushFollow(FOLLOW_43); lv_arguments_2_0=ruleArgument(); state._fsp--; @@ -6465,35 +6954,35 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } - // InternalSolverLanguageParser.g:2616:4: (otherlv_3= Comma ( (lv_arguments_4_0= ruleArgument ) ) )* - loop31: + // InternalSolverLanguageParser.g:2793:4: (otherlv_3= Comma ( (lv_arguments_4_0= ruleArgument ) ) )* + loop32: do { - int alt31=2; - int LA31_0 = input.LA(1); + int alt32=2; + int LA32_0 = input.LA(1); - if ( (LA31_0==Comma) ) { - alt31=1; + if ( (LA32_0==Comma) ) { + alt32=1; } - switch (alt31) { + switch (alt32) { case 1 : - // InternalSolverLanguageParser.g:2617:5: otherlv_3= Comma ( (lv_arguments_4_0= ruleArgument ) ) + // InternalSolverLanguageParser.g:2794:5: otherlv_3= Comma ( (lv_arguments_4_0= ruleArgument ) ) { - otherlv_3=(Token)match(input,Comma,FOLLOW_42); + otherlv_3=(Token)match(input,Comma,FOLLOW_44); newLeafNode(otherlv_3, grammarAccess.getArgumentListAccess().getCommaKeyword_2_1_0()); - // InternalSolverLanguageParser.g:2621:5: ( (lv_arguments_4_0= ruleArgument ) ) - // InternalSolverLanguageParser.g:2622:6: (lv_arguments_4_0= ruleArgument ) + // InternalSolverLanguageParser.g:2798:5: ( (lv_arguments_4_0= ruleArgument ) ) + // InternalSolverLanguageParser.g:2799:6: (lv_arguments_4_0= ruleArgument ) { - // InternalSolverLanguageParser.g:2622:6: (lv_arguments_4_0= ruleArgument ) - // InternalSolverLanguageParser.g:2623:7: lv_arguments_4_0= ruleArgument + // InternalSolverLanguageParser.g:2799:6: (lv_arguments_4_0= ruleArgument ) + // InternalSolverLanguageParser.g:2800:7: lv_arguments_4_0= ruleArgument { newCompositeNode(grammarAccess.getArgumentListAccess().getArgumentsArgumentParserRuleCall_2_1_1_0()); - pushFollow(FOLLOW_41); + pushFollow(FOLLOW_43); lv_arguments_4_0=ruleArgument(); state._fsp--; @@ -6520,7 +7009,7 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { break; default : - break loop31; + break loop32; } } while (true); @@ -6557,7 +7046,7 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { // $ANTLR start "entryRuleArgument" - // InternalSolverLanguageParser.g:2650:1: entryRuleArgument returns [EObject current=null] : iv_ruleArgument= ruleArgument EOF ; + // InternalSolverLanguageParser.g:2827:1: entryRuleArgument returns [EObject current=null] : iv_ruleArgument= ruleArgument EOF ; public final EObject entryRuleArgument() throws RecognitionException { EObject current = null; @@ -6565,8 +7054,8 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { try { - // InternalSolverLanguageParser.g:2650:49: (iv_ruleArgument= ruleArgument EOF ) - // InternalSolverLanguageParser.g:2651:2: iv_ruleArgument= ruleArgument EOF + // InternalSolverLanguageParser.g:2827:49: (iv_ruleArgument= ruleArgument EOF ) + // InternalSolverLanguageParser.g:2828:2: iv_ruleArgument= ruleArgument EOF { newCompositeNode(grammarAccess.getArgumentRule()); pushFollow(FOLLOW_1); @@ -6593,7 +7082,7 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { // $ANTLR start "ruleArgument" - // InternalSolverLanguageParser.g:2657:1: ruleArgument returns [EObject current=null] : (this_ExpressionArgument_0= ruleExpressionArgument | this_StarArgument_1= ruleStarArgument | this_TypedArgument_2= ruleTypedArgument | this_TypedStarArgument_3= ruleTypedStarArgument ) ; + // InternalSolverLanguageParser.g:2834:1: ruleArgument returns [EObject current=null] : (this_ExpressionArgument_0= ruleExpressionArgument | this_StarArgument_1= ruleStarArgument | this_TypedVariableArgument_2= ruleTypedVariableArgument | this_TypedStarArgument_3= ruleTypedStarArgument ) ; public final EObject ruleArgument() throws RecognitionException { EObject current = null; @@ -6601,7 +7090,7 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { EObject this_StarArgument_1 = null; - EObject this_TypedArgument_2 = null; + EObject this_TypedVariableArgument_2 = null; EObject this_TypedStarArgument_3 = null; @@ -6610,15 +7099,15 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { enterRule(); try { - // InternalSolverLanguageParser.g:2663:2: ( (this_ExpressionArgument_0= ruleExpressionArgument | this_StarArgument_1= ruleStarArgument | this_TypedArgument_2= ruleTypedArgument | this_TypedStarArgument_3= ruleTypedStarArgument ) ) - // InternalSolverLanguageParser.g:2664:2: (this_ExpressionArgument_0= ruleExpressionArgument | this_StarArgument_1= ruleStarArgument | this_TypedArgument_2= ruleTypedArgument | this_TypedStarArgument_3= ruleTypedStarArgument ) + // InternalSolverLanguageParser.g:2840:2: ( (this_ExpressionArgument_0= ruleExpressionArgument | this_StarArgument_1= ruleStarArgument | this_TypedVariableArgument_2= ruleTypedVariableArgument | this_TypedStarArgument_3= ruleTypedStarArgument ) ) + // InternalSolverLanguageParser.g:2841:2: (this_ExpressionArgument_0= ruleExpressionArgument | this_StarArgument_1= ruleStarArgument | this_TypedVariableArgument_2= ruleTypedVariableArgument | this_TypedStarArgument_3= ruleTypedStarArgument ) { - // InternalSolverLanguageParser.g:2664:2: (this_ExpressionArgument_0= ruleExpressionArgument | this_StarArgument_1= ruleStarArgument | this_TypedArgument_2= ruleTypedArgument | this_TypedStarArgument_3= ruleTypedStarArgument ) - int alt33=4; - alt33 = dfa33.predict(input); - switch (alt33) { + // InternalSolverLanguageParser.g:2841:2: (this_ExpressionArgument_0= ruleExpressionArgument | this_StarArgument_1= ruleStarArgument | this_TypedVariableArgument_2= ruleTypedVariableArgument | this_TypedStarArgument_3= ruleTypedStarArgument ) + int alt34=4; + alt34 = dfa34.predict(input); + switch (alt34) { case 1 : - // InternalSolverLanguageParser.g:2665:3: this_ExpressionArgument_0= ruleExpressionArgument + // InternalSolverLanguageParser.g:2842:3: this_ExpressionArgument_0= ruleExpressionArgument { newCompositeNode(grammarAccess.getArgumentAccess().getExpressionArgumentParserRuleCall_0()); @@ -6636,7 +7125,7 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } break; case 2 : - // InternalSolverLanguageParser.g:2674:3: this_StarArgument_1= ruleStarArgument + // InternalSolverLanguageParser.g:2851:3: this_StarArgument_1= ruleStarArgument { newCompositeNode(grammarAccess.getArgumentAccess().getStarArgumentParserRuleCall_1()); @@ -6654,25 +7143,25 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } break; case 3 : - // InternalSolverLanguageParser.g:2683:3: this_TypedArgument_2= ruleTypedArgument + // InternalSolverLanguageParser.g:2860:3: this_TypedVariableArgument_2= ruleTypedVariableArgument { - newCompositeNode(grammarAccess.getArgumentAccess().getTypedArgumentParserRuleCall_2()); + newCompositeNode(grammarAccess.getArgumentAccess().getTypedVariableArgumentParserRuleCall_2()); pushFollow(FOLLOW_2); - this_TypedArgument_2=ruleTypedArgument(); + this_TypedVariableArgument_2=ruleTypedVariableArgument(); state._fsp--; - current = this_TypedArgument_2; + current = this_TypedVariableArgument_2; afterParserOrEnumRuleCall(); } break; case 4 : - // InternalSolverLanguageParser.g:2692:3: this_TypedStarArgument_3= ruleTypedStarArgument + // InternalSolverLanguageParser.g:2869:3: this_TypedStarArgument_3= ruleTypedStarArgument { newCompositeNode(grammarAccess.getArgumentAccess().getTypedStarArgumentParserRuleCall_3()); @@ -6712,7 +7201,7 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { // $ANTLR start "entryRuleExpressionArgument" - // InternalSolverLanguageParser.g:2704:1: entryRuleExpressionArgument returns [EObject current=null] : iv_ruleExpressionArgument= ruleExpressionArgument EOF ; + // InternalSolverLanguageParser.g:2881:1: entryRuleExpressionArgument returns [EObject current=null] : iv_ruleExpressionArgument= ruleExpressionArgument EOF ; public final EObject entryRuleExpressionArgument() throws RecognitionException { EObject current = null; @@ -6720,8 +7209,8 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { try { - // InternalSolverLanguageParser.g:2704:59: (iv_ruleExpressionArgument= ruleExpressionArgument EOF ) - // InternalSolverLanguageParser.g:2705:2: iv_ruleExpressionArgument= ruleExpressionArgument EOF + // InternalSolverLanguageParser.g:2881:59: (iv_ruleExpressionArgument= ruleExpressionArgument EOF ) + // InternalSolverLanguageParser.g:2882:2: iv_ruleExpressionArgument= ruleExpressionArgument EOF { newCompositeNode(grammarAccess.getExpressionArgumentRule()); pushFollow(FOLLOW_1); @@ -6748,31 +7237,31 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { // $ANTLR start "ruleExpressionArgument" - // InternalSolverLanguageParser.g:2711:1: ruleExpressionArgument returns [EObject current=null] : ( (lv_body_0_0= ruleComparisonExpression ) ) ; + // InternalSolverLanguageParser.g:2888:1: ruleExpressionArgument returns [EObject current=null] : ( (lv_expression_0_0= ruleComparisonExpression ) ) ; public final EObject ruleExpressionArgument() throws RecognitionException { EObject current = null; - EObject lv_body_0_0 = null; + EObject lv_expression_0_0 = null; enterRule(); try { - // InternalSolverLanguageParser.g:2717:2: ( ( (lv_body_0_0= ruleComparisonExpression ) ) ) - // InternalSolverLanguageParser.g:2718:2: ( (lv_body_0_0= ruleComparisonExpression ) ) + // InternalSolverLanguageParser.g:2894:2: ( ( (lv_expression_0_0= ruleComparisonExpression ) ) ) + // InternalSolverLanguageParser.g:2895:2: ( (lv_expression_0_0= ruleComparisonExpression ) ) { - // InternalSolverLanguageParser.g:2718:2: ( (lv_body_0_0= ruleComparisonExpression ) ) - // InternalSolverLanguageParser.g:2719:3: (lv_body_0_0= ruleComparisonExpression ) + // InternalSolverLanguageParser.g:2895:2: ( (lv_expression_0_0= ruleComparisonExpression ) ) + // InternalSolverLanguageParser.g:2896:3: (lv_expression_0_0= ruleComparisonExpression ) { - // InternalSolverLanguageParser.g:2719:3: (lv_body_0_0= ruleComparisonExpression ) - // InternalSolverLanguageParser.g:2720:4: lv_body_0_0= ruleComparisonExpression + // InternalSolverLanguageParser.g:2896:3: (lv_expression_0_0= ruleComparisonExpression ) + // InternalSolverLanguageParser.g:2897:4: lv_expression_0_0= ruleComparisonExpression { - newCompositeNode(grammarAccess.getExpressionArgumentAccess().getBodyComparisonExpressionParserRuleCall_0()); + newCompositeNode(grammarAccess.getExpressionArgumentAccess().getExpressionComparisonExpressionParserRuleCall_0()); pushFollow(FOLLOW_2); - lv_body_0_0=ruleComparisonExpression(); + lv_expression_0_0=ruleComparisonExpression(); state._fsp--; @@ -6782,8 +7271,8 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } set( current, - "body", - lv_body_0_0, + "expression", + lv_expression_0_0, "org.eclipse.viatra.solver.language.SolverLanguage.ComparisonExpression"); afterParserOrEnumRuleCall(); @@ -6813,7 +7302,7 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { // $ANTLR start "entryRuleStarArgument" - // InternalSolverLanguageParser.g:2740:1: entryRuleStarArgument returns [EObject current=null] : iv_ruleStarArgument= ruleStarArgument EOF ; + // InternalSolverLanguageParser.g:2917:1: entryRuleStarArgument returns [EObject current=null] : iv_ruleStarArgument= ruleStarArgument EOF ; public final EObject entryRuleStarArgument() throws RecognitionException { EObject current = null; @@ -6821,8 +7310,8 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { try { - // InternalSolverLanguageParser.g:2740:53: (iv_ruleStarArgument= ruleStarArgument EOF ) - // InternalSolverLanguageParser.g:2741:2: iv_ruleStarArgument= ruleStarArgument EOF + // InternalSolverLanguageParser.g:2917:53: (iv_ruleStarArgument= ruleStarArgument EOF ) + // InternalSolverLanguageParser.g:2918:2: iv_ruleStarArgument= ruleStarArgument EOF { newCompositeNode(grammarAccess.getStarArgumentRule()); pushFollow(FOLLOW_1); @@ -6849,7 +7338,7 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { // $ANTLR start "ruleStarArgument" - // InternalSolverLanguageParser.g:2747:1: ruleStarArgument returns [EObject current=null] : ( () otherlv_1= Asterisk ) ; + // InternalSolverLanguageParser.g:2924:1: ruleStarArgument returns [EObject current=null] : ( () otherlv_1= Asterisk ) ; public final EObject ruleStarArgument() throws RecognitionException { EObject current = null; @@ -6859,14 +7348,14 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { enterRule(); try { - // InternalSolverLanguageParser.g:2753:2: ( ( () otherlv_1= Asterisk ) ) - // InternalSolverLanguageParser.g:2754:2: ( () otherlv_1= Asterisk ) + // InternalSolverLanguageParser.g:2930:2: ( ( () otherlv_1= Asterisk ) ) + // InternalSolverLanguageParser.g:2931:2: ( () otherlv_1= Asterisk ) { - // InternalSolverLanguageParser.g:2754:2: ( () otherlv_1= Asterisk ) - // InternalSolverLanguageParser.g:2755:3: () otherlv_1= Asterisk + // InternalSolverLanguageParser.g:2931:2: ( () otherlv_1= Asterisk ) + // InternalSolverLanguageParser.g:2932:3: () otherlv_1= Asterisk { - // InternalSolverLanguageParser.g:2755:3: () - // InternalSolverLanguageParser.g:2756:4: + // InternalSolverLanguageParser.g:2932:3: () + // InternalSolverLanguageParser.g:2933:4: { current = forceCreateModelElement( @@ -6902,25 +7391,25 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { // $ANTLR end "ruleStarArgument" - // $ANTLR start "entryRuleTypedArgument" - // InternalSolverLanguageParser.g:2770:1: entryRuleTypedArgument returns [EObject current=null] : iv_ruleTypedArgument= ruleTypedArgument EOF ; - public final EObject entryRuleTypedArgument() throws RecognitionException { + // $ANTLR start "entryRuleTypedVariableArgument" + // InternalSolverLanguageParser.g:2947:1: entryRuleTypedVariableArgument returns [EObject current=null] : iv_ruleTypedVariableArgument= ruleTypedVariableArgument EOF ; + public final EObject entryRuleTypedVariableArgument() throws RecognitionException { EObject current = null; - EObject iv_ruleTypedArgument = null; + EObject iv_ruleTypedVariableArgument = null; try { - // InternalSolverLanguageParser.g:2770:54: (iv_ruleTypedArgument= ruleTypedArgument EOF ) - // InternalSolverLanguageParser.g:2771:2: iv_ruleTypedArgument= ruleTypedArgument EOF + // InternalSolverLanguageParser.g:2947:62: (iv_ruleTypedVariableArgument= ruleTypedVariableArgument EOF ) + // InternalSolverLanguageParser.g:2948:2: iv_ruleTypedVariableArgument= ruleTypedVariableArgument EOF { - newCompositeNode(grammarAccess.getTypedArgumentRule()); + newCompositeNode(grammarAccess.getTypedVariableArgumentRule()); pushFollow(FOLLOW_1); - iv_ruleTypedArgument=ruleTypedArgument(); + iv_ruleTypedVariableArgument=ruleTypedVariableArgument(); state._fsp--; - current =iv_ruleTypedArgument; + current =iv_ruleTypedVariableArgument; match(input,EOF,FOLLOW_2); } @@ -6935,44 +7424,51 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } return current; } - // $ANTLR end "entryRuleTypedArgument" + // $ANTLR end "entryRuleTypedVariableArgument" - // $ANTLR start "ruleTypedArgument" - // InternalSolverLanguageParser.g:2777:1: ruleTypedArgument returns [EObject current=null] : ( ( ( ruleQualifiedName ) ) ( ( ruleQualifiedName ) ) ) ; - public final EObject ruleTypedArgument() throws RecognitionException { + // $ANTLR start "ruleTypedVariableArgument" + // InternalSolverLanguageParser.g:2954:1: ruleTypedVariableArgument returns [EObject current=null] : ( ( (lv_typeReference_0_0= ruleTypeReference ) ) ( (lv_name_1_0= RULE_ID ) ) ) ; + public final EObject ruleTypedVariableArgument() throws RecognitionException { EObject current = null; + Token lv_name_1_0=null; + EObject lv_typeReference_0_0 = null; + + enterRule(); try { - // InternalSolverLanguageParser.g:2783:2: ( ( ( ( ruleQualifiedName ) ) ( ( ruleQualifiedName ) ) ) ) - // InternalSolverLanguageParser.g:2784:2: ( ( ( ruleQualifiedName ) ) ( ( ruleQualifiedName ) ) ) + // InternalSolverLanguageParser.g:2960:2: ( ( ( (lv_typeReference_0_0= ruleTypeReference ) ) ( (lv_name_1_0= RULE_ID ) ) ) ) + // InternalSolverLanguageParser.g:2961:2: ( ( (lv_typeReference_0_0= ruleTypeReference ) ) ( (lv_name_1_0= RULE_ID ) ) ) { - // InternalSolverLanguageParser.g:2784:2: ( ( ( ruleQualifiedName ) ) ( ( ruleQualifiedName ) ) ) - // InternalSolverLanguageParser.g:2785:3: ( ( ruleQualifiedName ) ) ( ( ruleQualifiedName ) ) + // InternalSolverLanguageParser.g:2961:2: ( ( (lv_typeReference_0_0= ruleTypeReference ) ) ( (lv_name_1_0= RULE_ID ) ) ) + // InternalSolverLanguageParser.g:2962:3: ( (lv_typeReference_0_0= ruleTypeReference ) ) ( (lv_name_1_0= RULE_ID ) ) { - // InternalSolverLanguageParser.g:2785:3: ( ( ruleQualifiedName ) ) - // InternalSolverLanguageParser.g:2786:4: ( ruleQualifiedName ) + // InternalSolverLanguageParser.g:2962:3: ( (lv_typeReference_0_0= ruleTypeReference ) ) + // InternalSolverLanguageParser.g:2963:4: (lv_typeReference_0_0= ruleTypeReference ) { - // InternalSolverLanguageParser.g:2786:4: ( ruleQualifiedName ) - // InternalSolverLanguageParser.g:2787:5: ruleQualifiedName + // InternalSolverLanguageParser.g:2963:4: (lv_typeReference_0_0= ruleTypeReference ) + // InternalSolverLanguageParser.g:2964:5: lv_typeReference_0_0= ruleTypeReference { - if (current==null) { - current = createModelElement(grammarAccess.getTypedArgumentRule()); - } - - - newCompositeNode(grammarAccess.getTypedArgumentAccess().getTypeNamedElementCrossReference_0_0()); + newCompositeNode(grammarAccess.getTypedVariableArgumentAccess().getTypeReferenceTypeReferenceParserRuleCall_0_0()); - pushFollow(FOLLOW_8); - ruleQualifiedName(); + pushFollow(FOLLOW_28); + lv_typeReference_0_0=ruleTypeReference(); state._fsp--; + if (current==null) { + current = createModelElementForParent(grammarAccess.getTypedVariableArgumentRule()); + } + set( + current, + "typeReference", + lv_typeReference_0_0, + "org.eclipse.viatra.solver.language.SolverLanguage.TypeReference"); afterParserOrEnumRuleCall(); @@ -6981,27 +7477,25 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } - // InternalSolverLanguageParser.g:2801:3: ( ( ruleQualifiedName ) ) - // InternalSolverLanguageParser.g:2802:4: ( ruleQualifiedName ) + // InternalSolverLanguageParser.g:2981:3: ( (lv_name_1_0= RULE_ID ) ) + // InternalSolverLanguageParser.g:2982:4: (lv_name_1_0= RULE_ID ) { - // InternalSolverLanguageParser.g:2802:4: ( ruleQualifiedName ) - // InternalSolverLanguageParser.g:2803:5: ruleQualifiedName + // InternalSolverLanguageParser.g:2982:4: (lv_name_1_0= RULE_ID ) + // InternalSolverLanguageParser.g:2983:5: lv_name_1_0= RULE_ID { + lv_name_1_0=(Token)match(input,RULE_ID,FOLLOW_2); - if (current==null) { - current = createModelElement(grammarAccess.getTypedArgumentRule()); - } - - - newCompositeNode(grammarAccess.getTypedArgumentAccess().getVariableNamedElementCrossReference_1_0()); + newLeafNode(lv_name_1_0, grammarAccess.getTypedVariableArgumentAccess().getNameIDTerminalRuleCall_1_0()); - pushFollow(FOLLOW_2); - ruleQualifiedName(); - - state._fsp--; - - afterParserOrEnumRuleCall(); + if (current==null) { + current = createModelElement(grammarAccess.getTypedVariableArgumentRule()); + } + setWithLastConsumed( + current, + "name", + lv_name_1_0, + "org.eclipse.xtext.common.Terminals.ID"); } @@ -7028,11 +7522,11 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } return current; } - // $ANTLR end "ruleTypedArgument" + // $ANTLR end "ruleTypedVariableArgument" // $ANTLR start "entryRuleTypedStarArgument" - // InternalSolverLanguageParser.g:2821:1: entryRuleTypedStarArgument returns [EObject current=null] : iv_ruleTypedStarArgument= ruleTypedStarArgument EOF ; + // InternalSolverLanguageParser.g:3003:1: entryRuleTypedStarArgument returns [EObject current=null] : iv_ruleTypedStarArgument= ruleTypedStarArgument EOF ; public final EObject entryRuleTypedStarArgument() throws RecognitionException { EObject current = null; @@ -7040,8 +7534,8 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { try { - // InternalSolverLanguageParser.g:2821:58: (iv_ruleTypedStarArgument= ruleTypedStarArgument EOF ) - // InternalSolverLanguageParser.g:2822:2: iv_ruleTypedStarArgument= ruleTypedStarArgument EOF + // InternalSolverLanguageParser.g:3003:58: (iv_ruleTypedStarArgument= ruleTypedStarArgument EOF ) + // InternalSolverLanguageParser.g:3004:2: iv_ruleTypedStarArgument= ruleTypedStarArgument EOF { newCompositeNode(grammarAccess.getTypedStarArgumentRule()); pushFollow(FOLLOW_1); @@ -7068,42 +7562,47 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { // $ANTLR start "ruleTypedStarArgument" - // InternalSolverLanguageParser.g:2828:1: ruleTypedStarArgument returns [EObject current=null] : ( ( ( ruleQualifiedName ) ) otherlv_1= Asterisk ) ; + // InternalSolverLanguageParser.g:3010:1: ruleTypedStarArgument returns [EObject current=null] : ( ( (lv_typeReference_0_0= ruleTypeReference ) ) otherlv_1= Asterisk ) ; public final EObject ruleTypedStarArgument() throws RecognitionException { EObject current = null; Token otherlv_1=null; + EObject lv_typeReference_0_0 = null; + enterRule(); try { - // InternalSolverLanguageParser.g:2834:2: ( ( ( ( ruleQualifiedName ) ) otherlv_1= Asterisk ) ) - // InternalSolverLanguageParser.g:2835:2: ( ( ( ruleQualifiedName ) ) otherlv_1= Asterisk ) + // InternalSolverLanguageParser.g:3016:2: ( ( ( (lv_typeReference_0_0= ruleTypeReference ) ) otherlv_1= Asterisk ) ) + // InternalSolverLanguageParser.g:3017:2: ( ( (lv_typeReference_0_0= ruleTypeReference ) ) otherlv_1= Asterisk ) { - // InternalSolverLanguageParser.g:2835:2: ( ( ( ruleQualifiedName ) ) otherlv_1= Asterisk ) - // InternalSolverLanguageParser.g:2836:3: ( ( ruleQualifiedName ) ) otherlv_1= Asterisk + // InternalSolverLanguageParser.g:3017:2: ( ( (lv_typeReference_0_0= ruleTypeReference ) ) otherlv_1= Asterisk ) + // InternalSolverLanguageParser.g:3018:3: ( (lv_typeReference_0_0= ruleTypeReference ) ) otherlv_1= Asterisk { - // InternalSolverLanguageParser.g:2836:3: ( ( ruleQualifiedName ) ) - // InternalSolverLanguageParser.g:2837:4: ( ruleQualifiedName ) + // InternalSolverLanguageParser.g:3018:3: ( (lv_typeReference_0_0= ruleTypeReference ) ) + // InternalSolverLanguageParser.g:3019:4: (lv_typeReference_0_0= ruleTypeReference ) { - // InternalSolverLanguageParser.g:2837:4: ( ruleQualifiedName ) - // InternalSolverLanguageParser.g:2838:5: ruleQualifiedName + // InternalSolverLanguageParser.g:3019:4: (lv_typeReference_0_0= ruleTypeReference ) + // InternalSolverLanguageParser.g:3020:5: lv_typeReference_0_0= ruleTypeReference { - if (current==null) { - current = createModelElement(grammarAccess.getTypedStarArgumentRule()); - } - - - newCompositeNode(grammarAccess.getTypedStarArgumentAccess().getTypeNamedElementCrossReference_0_0()); + newCompositeNode(grammarAccess.getTypedStarArgumentAccess().getTypeReferenceTypeReferenceParserRuleCall_0_0()); - pushFollow(FOLLOW_43); - ruleQualifiedName(); + pushFollow(FOLLOW_45); + lv_typeReference_0_0=ruleTypeReference(); state._fsp--; + if (current==null) { + current = createModelElementForParent(grammarAccess.getTypedStarArgumentRule()); + } + set( + current, + "typeReference", + lv_typeReference_0_0, + "org.eclipse.viatra.solver.language.SolverLanguage.TypeReference"); afterParserOrEnumRuleCall(); @@ -7139,7 +7638,7 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { // $ANTLR start "entryRuleReference" - // InternalSolverLanguageParser.g:2860:1: entryRuleReference returns [EObject current=null] : iv_ruleReference= ruleReference EOF ; + // InternalSolverLanguageParser.g:3045:1: entryRuleReference returns [EObject current=null] : iv_ruleReference= ruleReference EOF ; public final EObject entryRuleReference() throws RecognitionException { EObject current = null; @@ -7147,8 +7646,8 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { try { - // InternalSolverLanguageParser.g:2860:50: (iv_ruleReference= ruleReference EOF ) - // InternalSolverLanguageParser.g:2861:2: iv_ruleReference= ruleReference EOF + // InternalSolverLanguageParser.g:3045:50: (iv_ruleReference= ruleReference EOF ) + // InternalSolverLanguageParser.g:3046:2: iv_ruleReference= ruleReference EOF { newCompositeNode(grammarAccess.getReferenceRule()); pushFollow(FOLLOW_1); @@ -7175,39 +7674,329 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { // $ANTLR start "ruleReference" - // InternalSolverLanguageParser.g:2867:1: ruleReference returns [EObject current=null] : ( ( ruleQualifiedName ) ) ; + // InternalSolverLanguageParser.g:3052:1: ruleReference returns [EObject current=null] : ( ( (lv_components_0_0= rulePathComponent ) ) (otherlv_1= FullStop ( (lv_components_2_0= rulePathComponent ) ) )* ) ; public final EObject ruleReference() throws RecognitionException { EObject current = null; + Token otherlv_1=null; + EObject lv_components_0_0 = null; + + EObject lv_components_2_0 = null; + + + + enterRule(); + + try { + // InternalSolverLanguageParser.g:3058:2: ( ( ( (lv_components_0_0= rulePathComponent ) ) (otherlv_1= FullStop ( (lv_components_2_0= rulePathComponent ) ) )* ) ) + // InternalSolverLanguageParser.g:3059:2: ( ( (lv_components_0_0= rulePathComponent ) ) (otherlv_1= FullStop ( (lv_components_2_0= rulePathComponent ) ) )* ) + { + // InternalSolverLanguageParser.g:3059:2: ( ( (lv_components_0_0= rulePathComponent ) ) (otherlv_1= FullStop ( (lv_components_2_0= rulePathComponent ) ) )* ) + // InternalSolverLanguageParser.g:3060:3: ( (lv_components_0_0= rulePathComponent ) ) (otherlv_1= FullStop ( (lv_components_2_0= rulePathComponent ) ) )* + { + // InternalSolverLanguageParser.g:3060:3: ( (lv_components_0_0= rulePathComponent ) ) + // InternalSolverLanguageParser.g:3061:4: (lv_components_0_0= rulePathComponent ) + { + // InternalSolverLanguageParser.g:3061:4: (lv_components_0_0= rulePathComponent ) + // InternalSolverLanguageParser.g:3062:5: lv_components_0_0= rulePathComponent + { + + newCompositeNode(grammarAccess.getReferenceAccess().getComponentsPathComponentParserRuleCall_0_0()); + + pushFollow(FOLLOW_46); + lv_components_0_0=rulePathComponent(); + + state._fsp--; + + + if (current==null) { + current = createModelElementForParent(grammarAccess.getReferenceRule()); + } + add( + current, + "components", + lv_components_0_0, + "org.eclipse.viatra.solver.language.SolverLanguage.PathComponent"); + afterParserOrEnumRuleCall(); + + + } + + + } + + // InternalSolverLanguageParser.g:3079:3: (otherlv_1= FullStop ( (lv_components_2_0= rulePathComponent ) ) )* + loop35: + do { + int alt35=2; + int LA35_0 = input.LA(1); + + if ( (LA35_0==FullStop) ) { + alt35=1; + } + + + switch (alt35) { + case 1 : + // InternalSolverLanguageParser.g:3080:4: otherlv_1= FullStop ( (lv_components_2_0= rulePathComponent ) ) + { + otherlv_1=(Token)match(input,FullStop,FOLLOW_12); + + newLeafNode(otherlv_1, grammarAccess.getReferenceAccess().getFullStopKeyword_1_0()); + + // InternalSolverLanguageParser.g:3084:4: ( (lv_components_2_0= rulePathComponent ) ) + // InternalSolverLanguageParser.g:3085:5: (lv_components_2_0= rulePathComponent ) + { + // InternalSolverLanguageParser.g:3085:5: (lv_components_2_0= rulePathComponent ) + // InternalSolverLanguageParser.g:3086:6: lv_components_2_0= rulePathComponent + { + + newCompositeNode(grammarAccess.getReferenceAccess().getComponentsPathComponentParserRuleCall_1_1_0()); + + pushFollow(FOLLOW_46); + lv_components_2_0=rulePathComponent(); + + state._fsp--; + + + if (current==null) { + current = createModelElementForParent(grammarAccess.getReferenceRule()); + } + add( + current, + "components", + lv_components_2_0, + "org.eclipse.viatra.solver.language.SolverLanguage.PathComponent"); + afterParserOrEnumRuleCall(); + + + } + + + } + + + } + break; + + default : + break loop35; + } + } while (true); + + + } + + + } + + + leaveRule(); + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleReference" + + + // $ANTLR start "entryRulePathComponent" + // InternalSolverLanguageParser.g:3108:1: entryRulePathComponent returns [EObject current=null] : iv_rulePathComponent= rulePathComponent EOF ; + public final EObject entryRulePathComponent() throws RecognitionException { + EObject current = null; + + EObject iv_rulePathComponent = null; + + + try { + // InternalSolverLanguageParser.g:3108:54: (iv_rulePathComponent= rulePathComponent EOF ) + // InternalSolverLanguageParser.g:3109:2: iv_rulePathComponent= rulePathComponent EOF + { + newCompositeNode(grammarAccess.getPathComponentRule()); + pushFollow(FOLLOW_1); + iv_rulePathComponent=rulePathComponent(); + + state._fsp--; + + current =iv_rulePathComponent; + match(input,EOF,FOLLOW_2); + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRulePathComponent" + + + // $ANTLR start "rulePathComponent" + // InternalSolverLanguageParser.g:3115:1: rulePathComponent returns [EObject current=null] : ( ( (lv_inverse_0_0= Tilde ) )? ( ( ruleQualifiedName ) ) ( ( (lv_transitiveClosure_2_0= RULE_TRANSITIVE_CLOSURE ) ) | ( (lv_reflexiveTransitiveClosure_3_0= RULE_REFLEXIVE_TRANSITIVE_CLOSURE ) ) )? ) ; + public final EObject rulePathComponent() throws RecognitionException { + EObject current = null; + + Token lv_inverse_0_0=null; + Token lv_transitiveClosure_2_0=null; + Token lv_reflexiveTransitiveClosure_3_0=null; + enterRule(); try { - // InternalSolverLanguageParser.g:2873:2: ( ( ( ruleQualifiedName ) ) ) - // InternalSolverLanguageParser.g:2874:2: ( ( ruleQualifiedName ) ) + // InternalSolverLanguageParser.g:3121:2: ( ( ( (lv_inverse_0_0= Tilde ) )? ( ( ruleQualifiedName ) ) ( ( (lv_transitiveClosure_2_0= RULE_TRANSITIVE_CLOSURE ) ) | ( (lv_reflexiveTransitiveClosure_3_0= RULE_REFLEXIVE_TRANSITIVE_CLOSURE ) ) )? ) ) + // InternalSolverLanguageParser.g:3122:2: ( ( (lv_inverse_0_0= Tilde ) )? ( ( ruleQualifiedName ) ) ( ( (lv_transitiveClosure_2_0= RULE_TRANSITIVE_CLOSURE ) ) | ( (lv_reflexiveTransitiveClosure_3_0= RULE_REFLEXIVE_TRANSITIVE_CLOSURE ) ) )? ) + { + // InternalSolverLanguageParser.g:3122:2: ( ( (lv_inverse_0_0= Tilde ) )? ( ( ruleQualifiedName ) ) ( ( (lv_transitiveClosure_2_0= RULE_TRANSITIVE_CLOSURE ) ) | ( (lv_reflexiveTransitiveClosure_3_0= RULE_REFLEXIVE_TRANSITIVE_CLOSURE ) ) )? ) + // InternalSolverLanguageParser.g:3123:3: ( (lv_inverse_0_0= Tilde ) )? ( ( ruleQualifiedName ) ) ( ( (lv_transitiveClosure_2_0= RULE_TRANSITIVE_CLOSURE ) ) | ( (lv_reflexiveTransitiveClosure_3_0= RULE_REFLEXIVE_TRANSITIVE_CLOSURE ) ) )? { - // InternalSolverLanguageParser.g:2874:2: ( ( ruleQualifiedName ) ) - // InternalSolverLanguageParser.g:2875:3: ( ruleQualifiedName ) + // InternalSolverLanguageParser.g:3123:3: ( (lv_inverse_0_0= Tilde ) )? + int alt36=2; + int LA36_0 = input.LA(1); + + if ( (LA36_0==Tilde) ) { + alt36=1; + } + switch (alt36) { + case 1 : + // InternalSolverLanguageParser.g:3124:4: (lv_inverse_0_0= Tilde ) + { + // InternalSolverLanguageParser.g:3124:4: (lv_inverse_0_0= Tilde ) + // InternalSolverLanguageParser.g:3125:5: lv_inverse_0_0= Tilde + { + lv_inverse_0_0=(Token)match(input,Tilde,FOLLOW_3); + + newLeafNode(lv_inverse_0_0, grammarAccess.getPathComponentAccess().getInverseTildeKeyword_0_0()); + + + if (current==null) { + current = createModelElement(grammarAccess.getPathComponentRule()); + } + setWithLastConsumed(current, "inverse", true, "~"); + + + } + + + } + break; + + } + + // InternalSolverLanguageParser.g:3137:3: ( ( ruleQualifiedName ) ) + // InternalSolverLanguageParser.g:3138:4: ( ruleQualifiedName ) { - // InternalSolverLanguageParser.g:2875:3: ( ruleQualifiedName ) - // InternalSolverLanguageParser.g:2876:4: ruleQualifiedName + // InternalSolverLanguageParser.g:3138:4: ( ruleQualifiedName ) + // InternalSolverLanguageParser.g:3139:5: ruleQualifiedName { - if (current==null) { - current = createModelElement(grammarAccess.getReferenceRule()); - } - + if (current==null) { + current = createModelElement(grammarAccess.getPathComponentRule()); + } + + + newCompositeNode(grammarAccess.getPathComponentAccess().getSymbolSymbolCrossReference_1_0()); + + pushFollow(FOLLOW_47); + ruleQualifiedName(); + + state._fsp--; + + + afterParserOrEnumRuleCall(); + + + } + + + } + + // InternalSolverLanguageParser.g:3153:3: ( ( (lv_transitiveClosure_2_0= RULE_TRANSITIVE_CLOSURE ) ) | ( (lv_reflexiveTransitiveClosure_3_0= RULE_REFLEXIVE_TRANSITIVE_CLOSURE ) ) )? + int alt37=3; + int LA37_0 = input.LA(1); + + if ( (LA37_0==RULE_TRANSITIVE_CLOSURE) ) { + alt37=1; + } + else if ( (LA37_0==RULE_REFLEXIVE_TRANSITIVE_CLOSURE) ) { + alt37=2; + } + switch (alt37) { + case 1 : + // InternalSolverLanguageParser.g:3154:4: ( (lv_transitiveClosure_2_0= RULE_TRANSITIVE_CLOSURE ) ) + { + // InternalSolverLanguageParser.g:3154:4: ( (lv_transitiveClosure_2_0= RULE_TRANSITIVE_CLOSURE ) ) + // InternalSolverLanguageParser.g:3155:5: (lv_transitiveClosure_2_0= RULE_TRANSITIVE_CLOSURE ) + { + // InternalSolverLanguageParser.g:3155:5: (lv_transitiveClosure_2_0= RULE_TRANSITIVE_CLOSURE ) + // InternalSolverLanguageParser.g:3156:6: lv_transitiveClosure_2_0= RULE_TRANSITIVE_CLOSURE + { + lv_transitiveClosure_2_0=(Token)match(input,RULE_TRANSITIVE_CLOSURE,FOLLOW_2); + + newLeafNode(lv_transitiveClosure_2_0, grammarAccess.getPathComponentAccess().getTransitiveClosureTRANSITIVE_CLOSURETerminalRuleCall_2_0_0()); + + + if (current==null) { + current = createModelElement(grammarAccess.getPathComponentRule()); + } + setWithLastConsumed( + current, + "transitiveClosure", + true, + "org.eclipse.viatra.solver.language.SolverLanguage.TRANSITIVE_CLOSURE"); + + + } + + + } + + + } + break; + case 2 : + // InternalSolverLanguageParser.g:3173:4: ( (lv_reflexiveTransitiveClosure_3_0= RULE_REFLEXIVE_TRANSITIVE_CLOSURE ) ) + { + // InternalSolverLanguageParser.g:3173:4: ( (lv_reflexiveTransitiveClosure_3_0= RULE_REFLEXIVE_TRANSITIVE_CLOSURE ) ) + // InternalSolverLanguageParser.g:3174:5: (lv_reflexiveTransitiveClosure_3_0= RULE_REFLEXIVE_TRANSITIVE_CLOSURE ) + { + // InternalSolverLanguageParser.g:3174:5: (lv_reflexiveTransitiveClosure_3_0= RULE_REFLEXIVE_TRANSITIVE_CLOSURE ) + // InternalSolverLanguageParser.g:3175:6: lv_reflexiveTransitiveClosure_3_0= RULE_REFLEXIVE_TRANSITIVE_CLOSURE + { + lv_reflexiveTransitiveClosure_3_0=(Token)match(input,RULE_REFLEXIVE_TRANSITIVE_CLOSURE,FOLLOW_2); + + newLeafNode(lv_reflexiveTransitiveClosure_3_0, grammarAccess.getPathComponentAccess().getReflexiveTransitiveClosureREFLEXIVE_TRANSITIVE_CLOSURETerminalRuleCall_2_1_0()); + + + if (current==null) { + current = createModelElement(grammarAccess.getPathComponentRule()); + } + setWithLastConsumed( + current, + "reflexiveTransitiveClosure", + true, + "org.eclipse.viatra.solver.language.SolverLanguage.REFLEXIVE_TRANSITIVE_CLOSURE"); + + + } - newCompositeNode(grammarAccess.getReferenceAccess().getReferredNamedElementCrossReference_0()); - - pushFollow(FOLLOW_2); - ruleQualifiedName(); - state._fsp--; + } - afterParserOrEnumRuleCall(); - + } + break; } @@ -7230,11 +8019,11 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } return current; } - // $ANTLR end "ruleReference" + // $ANTLR end "rulePathComponent" // $ANTLR start "entryRuleInterval" - // InternalSolverLanguageParser.g:2893:1: entryRuleInterval returns [EObject current=null] : iv_ruleInterval= ruleInterval EOF ; + // InternalSolverLanguageParser.g:3196:1: entryRuleInterval returns [EObject current=null] : iv_ruleInterval= ruleInterval EOF ; public final EObject entryRuleInterval() throws RecognitionException { EObject current = null; @@ -7242,8 +8031,8 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { try { - // InternalSolverLanguageParser.g:2893:49: (iv_ruleInterval= ruleInterval EOF ) - // InternalSolverLanguageParser.g:2894:2: iv_ruleInterval= ruleInterval EOF + // InternalSolverLanguageParser.g:3196:49: (iv_ruleInterval= ruleInterval EOF ) + // InternalSolverLanguageParser.g:3197:2: iv_ruleInterval= ruleInterval EOF { newCompositeNode(grammarAccess.getIntervalRule()); pushFollow(FOLLOW_1); @@ -7270,7 +8059,7 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { // $ANTLR start "ruleInterval" - // InternalSolverLanguageParser.g:2900:1: ruleInterval returns [EObject current=null] : (otherlv_0= LeftSquareBracket ( (lv_lowerBound_1_0= ruleExpression ) ) otherlv_2= FullStopFullStop ( (lv_upperBound_3_0= ruleExpression ) ) otherlv_4= RightSquareBracket ) ; + // InternalSolverLanguageParser.g:3203:1: ruleInterval returns [EObject current=null] : (otherlv_0= LeftSquareBracket ( (lv_lowerBound_1_0= ruleAdditiveExpression ) ) otherlv_2= Comma ( (lv_upperBound_3_0= ruleAdditiveExpression ) ) otherlv_4= RightSquareBracket ) ; public final EObject ruleInterval() throws RecognitionException { EObject current = null; @@ -7286,27 +8075,27 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { enterRule(); try { - // InternalSolverLanguageParser.g:2906:2: ( (otherlv_0= LeftSquareBracket ( (lv_lowerBound_1_0= ruleExpression ) ) otherlv_2= FullStopFullStop ( (lv_upperBound_3_0= ruleExpression ) ) otherlv_4= RightSquareBracket ) ) - // InternalSolverLanguageParser.g:2907:2: (otherlv_0= LeftSquareBracket ( (lv_lowerBound_1_0= ruleExpression ) ) otherlv_2= FullStopFullStop ( (lv_upperBound_3_0= ruleExpression ) ) otherlv_4= RightSquareBracket ) + // InternalSolverLanguageParser.g:3209:2: ( (otherlv_0= LeftSquareBracket ( (lv_lowerBound_1_0= ruleAdditiveExpression ) ) otherlv_2= Comma ( (lv_upperBound_3_0= ruleAdditiveExpression ) ) otherlv_4= RightSquareBracket ) ) + // InternalSolverLanguageParser.g:3210:2: (otherlv_0= LeftSquareBracket ( (lv_lowerBound_1_0= ruleAdditiveExpression ) ) otherlv_2= Comma ( (lv_upperBound_3_0= ruleAdditiveExpression ) ) otherlv_4= RightSquareBracket ) { - // InternalSolverLanguageParser.g:2907:2: (otherlv_0= LeftSquareBracket ( (lv_lowerBound_1_0= ruleExpression ) ) otherlv_2= FullStopFullStop ( (lv_upperBound_3_0= ruleExpression ) ) otherlv_4= RightSquareBracket ) - // InternalSolverLanguageParser.g:2908:3: otherlv_0= LeftSquareBracket ( (lv_lowerBound_1_0= ruleExpression ) ) otherlv_2= FullStopFullStop ( (lv_upperBound_3_0= ruleExpression ) ) otherlv_4= RightSquareBracket + // InternalSolverLanguageParser.g:3210:2: (otherlv_0= LeftSquareBracket ( (lv_lowerBound_1_0= ruleAdditiveExpression ) ) otherlv_2= Comma ( (lv_upperBound_3_0= ruleAdditiveExpression ) ) otherlv_4= RightSquareBracket ) + // InternalSolverLanguageParser.g:3211:3: otherlv_0= LeftSquareBracket ( (lv_lowerBound_1_0= ruleAdditiveExpression ) ) otherlv_2= Comma ( (lv_upperBound_3_0= ruleAdditiveExpression ) ) otherlv_4= RightSquareBracket { - otherlv_0=(Token)match(input,LeftSquareBracket,FOLLOW_6); + otherlv_0=(Token)match(input,LeftSquareBracket,FOLLOW_10); newLeafNode(otherlv_0, grammarAccess.getIntervalAccess().getLeftSquareBracketKeyword_0()); - // InternalSolverLanguageParser.g:2912:3: ( (lv_lowerBound_1_0= ruleExpression ) ) - // InternalSolverLanguageParser.g:2913:4: (lv_lowerBound_1_0= ruleExpression ) + // InternalSolverLanguageParser.g:3215:3: ( (lv_lowerBound_1_0= ruleAdditiveExpression ) ) + // InternalSolverLanguageParser.g:3216:4: (lv_lowerBound_1_0= ruleAdditiveExpression ) { - // InternalSolverLanguageParser.g:2913:4: (lv_lowerBound_1_0= ruleExpression ) - // InternalSolverLanguageParser.g:2914:5: lv_lowerBound_1_0= ruleExpression + // InternalSolverLanguageParser.g:3216:4: (lv_lowerBound_1_0= ruleAdditiveExpression ) + // InternalSolverLanguageParser.g:3217:5: lv_lowerBound_1_0= ruleAdditiveExpression { - newCompositeNode(grammarAccess.getIntervalAccess().getLowerBoundExpressionParserRuleCall_1_0()); + newCompositeNode(grammarAccess.getIntervalAccess().getLowerBoundAdditiveExpressionParserRuleCall_1_0()); - pushFollow(FOLLOW_44); - lv_lowerBound_1_0=ruleExpression(); + pushFollow(FOLLOW_48); + lv_lowerBound_1_0=ruleAdditiveExpression(); state._fsp--; @@ -7318,7 +8107,7 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { current, "lowerBound", lv_lowerBound_1_0, - "org.eclipse.viatra.solver.language.SolverLanguage.Expression"); + "org.eclipse.viatra.solver.language.SolverLanguage.AdditiveExpression"); afterParserOrEnumRuleCall(); @@ -7327,21 +8116,21 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } - otherlv_2=(Token)match(input,FullStopFullStop,FOLLOW_6); + otherlv_2=(Token)match(input,Comma,FOLLOW_10); - newLeafNode(otherlv_2, grammarAccess.getIntervalAccess().getFullStopFullStopKeyword_2()); + newLeafNode(otherlv_2, grammarAccess.getIntervalAccess().getCommaKeyword_2()); - // InternalSolverLanguageParser.g:2935:3: ( (lv_upperBound_3_0= ruleExpression ) ) - // InternalSolverLanguageParser.g:2936:4: (lv_upperBound_3_0= ruleExpression ) + // InternalSolverLanguageParser.g:3238:3: ( (lv_upperBound_3_0= ruleAdditiveExpression ) ) + // InternalSolverLanguageParser.g:3239:4: (lv_upperBound_3_0= ruleAdditiveExpression ) { - // InternalSolverLanguageParser.g:2936:4: (lv_upperBound_3_0= ruleExpression ) - // InternalSolverLanguageParser.g:2937:5: lv_upperBound_3_0= ruleExpression + // InternalSolverLanguageParser.g:3239:4: (lv_upperBound_3_0= ruleAdditiveExpression ) + // InternalSolverLanguageParser.g:3240:5: lv_upperBound_3_0= ruleAdditiveExpression { - newCompositeNode(grammarAccess.getIntervalAccess().getUpperBoundExpressionParserRuleCall_3_0()); + newCompositeNode(grammarAccess.getIntervalAccess().getUpperBoundAdditiveExpressionParserRuleCall_3_0()); - pushFollow(FOLLOW_45); - lv_upperBound_3_0=ruleExpression(); + pushFollow(FOLLOW_49); + lv_upperBound_3_0=ruleAdditiveExpression(); state._fsp--; @@ -7353,7 +8142,7 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { current, "upperBound", lv_upperBound_3_0, - "org.eclipse.viatra.solver.language.SolverLanguage.Expression"); + "org.eclipse.viatra.solver.language.SolverLanguage.AdditiveExpression"); afterParserOrEnumRuleCall(); @@ -7389,7 +8178,7 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { // $ANTLR start "entryRuleLiteral" - // InternalSolverLanguageParser.g:2962:1: entryRuleLiteral returns [EObject current=null] : iv_ruleLiteral= ruleLiteral EOF ; + // InternalSolverLanguageParser.g:3265:1: entryRuleLiteral returns [EObject current=null] : iv_ruleLiteral= ruleLiteral EOF ; public final EObject entryRuleLiteral() throws RecognitionException { EObject current = null; @@ -7397,8 +8186,8 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { try { - // InternalSolverLanguageParser.g:2962:48: (iv_ruleLiteral= ruleLiteral EOF ) - // InternalSolverLanguageParser.g:2963:2: iv_ruleLiteral= ruleLiteral EOF + // InternalSolverLanguageParser.g:3265:48: (iv_ruleLiteral= ruleLiteral EOF ) + // InternalSolverLanguageParser.g:3266:2: iv_ruleLiteral= ruleLiteral EOF { newCompositeNode(grammarAccess.getLiteralRule()); pushFollow(FOLLOW_1); @@ -7425,69 +8214,84 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { // $ANTLR start "ruleLiteral" - // InternalSolverLanguageParser.g:2969:1: ruleLiteral returns [EObject current=null] : (this_LogicLiteral_0= ruleLogicLiteral | this_NumericLiteral_1= ruleNumericLiteral | this_InfinityLiteral_2= ruleInfinityLiteral | this_EmptyIntervalLiteral_3= ruleEmptyIntervalLiteral | this_StringLiteral_4= ruleStringLiteral ) ; + // InternalSolverLanguageParser.g:3272:1: ruleLiteral returns [EObject current=null] : (this_LogicLiteral_0= ruleLogicLiteral | this_IntLiteral_1= ruleIntLiteral | this_RealLiteral_2= ruleRealLiteral | this_InfinityLiteral_3= ruleInfinityLiteral | this_EmptyLiteral_4= ruleEmptyLiteral | this_StringLiteral_5= ruleStringLiteral ) ; public final EObject ruleLiteral() throws RecognitionException { EObject current = null; EObject this_LogicLiteral_0 = null; - EObject this_NumericLiteral_1 = null; + EObject this_IntLiteral_1 = null; + + EObject this_RealLiteral_2 = null; - EObject this_InfinityLiteral_2 = null; + EObject this_InfinityLiteral_3 = null; - EObject this_EmptyIntervalLiteral_3 = null; + EObject this_EmptyLiteral_4 = null; - EObject this_StringLiteral_4 = null; + EObject this_StringLiteral_5 = null; enterRule(); try { - // InternalSolverLanguageParser.g:2975:2: ( (this_LogicLiteral_0= ruleLogicLiteral | this_NumericLiteral_1= ruleNumericLiteral | this_InfinityLiteral_2= ruleInfinityLiteral | this_EmptyIntervalLiteral_3= ruleEmptyIntervalLiteral | this_StringLiteral_4= ruleStringLiteral ) ) - // InternalSolverLanguageParser.g:2976:2: (this_LogicLiteral_0= ruleLogicLiteral | this_NumericLiteral_1= ruleNumericLiteral | this_InfinityLiteral_2= ruleInfinityLiteral | this_EmptyIntervalLiteral_3= ruleEmptyIntervalLiteral | this_StringLiteral_4= ruleStringLiteral ) + // InternalSolverLanguageParser.g:3278:2: ( (this_LogicLiteral_0= ruleLogicLiteral | this_IntLiteral_1= ruleIntLiteral | this_RealLiteral_2= ruleRealLiteral | this_InfinityLiteral_3= ruleInfinityLiteral | this_EmptyLiteral_4= ruleEmptyLiteral | this_StringLiteral_5= ruleStringLiteral ) ) + // InternalSolverLanguageParser.g:3279:2: (this_LogicLiteral_0= ruleLogicLiteral | this_IntLiteral_1= ruleIntLiteral | this_RealLiteral_2= ruleRealLiteral | this_InfinityLiteral_3= ruleInfinityLiteral | this_EmptyLiteral_4= ruleEmptyLiteral | this_StringLiteral_5= ruleStringLiteral ) { - // InternalSolverLanguageParser.g:2976:2: (this_LogicLiteral_0= ruleLogicLiteral | this_NumericLiteral_1= ruleNumericLiteral | this_InfinityLiteral_2= ruleInfinityLiteral | this_EmptyIntervalLiteral_3= ruleEmptyIntervalLiteral | this_StringLiteral_4= ruleStringLiteral ) - int alt34=5; + // InternalSolverLanguageParser.g:3279:2: (this_LogicLiteral_0= ruleLogicLiteral | this_IntLiteral_1= ruleIntLiteral | this_RealLiteral_2= ruleRealLiteral | this_InfinityLiteral_3= ruleInfinityLiteral | this_EmptyLiteral_4= ruleEmptyLiteral | this_StringLiteral_5= ruleStringLiteral ) + int alt38=6; switch ( input.LA(1) ) { case Unknown: case Error: case False: case True: { - alt34=1; + alt38=1; } break; case RULE_INT: { - alt34=2; + int LA38_2 = input.LA(2); + + if ( (LA38_2==EOF||LA38_2==Else||LA38_2==Then||(LA38_2>=ExclamationMarkEqualsSign && LA38_2<=ColonHyphenMinus)||(LA38_2>=ColonEqualsSign && LA38_2<=As)||LA38_2==In||(LA38_2>=RightParenthesis && LA38_2<=HyphenMinus)||(LA38_2>=Solidus && LA38_2<=LessThanSign)||LA38_2==GreaterThanSign||(LA38_2>=RightSquareBracket && LA38_2<=CircumflexAccent)||(LA38_2>=VerticalLine && LA38_2<=RightCurlyBracket)||LA38_2==RULE_FULL_STOP) ) { + alt38=2; + } + else if ( (LA38_2==FullStop) ) { + alt38=3; + } + else { + NoViableAltException nvae = + new NoViableAltException("", 38, 2, input); + + throw nvae; + } } break; case Inf: { - alt34=3; + alt38=4; } break; case Empty: { - alt34=4; + alt38=5; } break; case RULE_STRING: { - alt34=5; + alt38=6; } break; default: NoViableAltException nvae = - new NoViableAltException("", 34, 0, input); + new NoViableAltException("", 38, 0, input); throw nvae; } - switch (alt34) { + switch (alt38) { case 1 : - // InternalSolverLanguageParser.g:2977:3: this_LogicLiteral_0= ruleLogicLiteral + // InternalSolverLanguageParser.g:3280:3: this_LogicLiteral_0= ruleLogicLiteral { newCompositeNode(grammarAccess.getLiteralAccess().getLogicLiteralParserRuleCall_0()); @@ -7505,72 +8309,90 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } break; case 2 : - // InternalSolverLanguageParser.g:2986:3: this_NumericLiteral_1= ruleNumericLiteral + // InternalSolverLanguageParser.g:3289:3: this_IntLiteral_1= ruleIntLiteral { - newCompositeNode(grammarAccess.getLiteralAccess().getNumericLiteralParserRuleCall_1()); + newCompositeNode(grammarAccess.getLiteralAccess().getIntLiteralParserRuleCall_1()); pushFollow(FOLLOW_2); - this_NumericLiteral_1=ruleNumericLiteral(); + this_IntLiteral_1=ruleIntLiteral(); state._fsp--; - current = this_NumericLiteral_1; + current = this_IntLiteral_1; afterParserOrEnumRuleCall(); } break; case 3 : - // InternalSolverLanguageParser.g:2995:3: this_InfinityLiteral_2= ruleInfinityLiteral + // InternalSolverLanguageParser.g:3298:3: this_RealLiteral_2= ruleRealLiteral { - newCompositeNode(grammarAccess.getLiteralAccess().getInfinityLiteralParserRuleCall_2()); + newCompositeNode(grammarAccess.getLiteralAccess().getRealLiteralParserRuleCall_2()); pushFollow(FOLLOW_2); - this_InfinityLiteral_2=ruleInfinityLiteral(); + this_RealLiteral_2=ruleRealLiteral(); state._fsp--; - current = this_InfinityLiteral_2; + current = this_RealLiteral_2; afterParserOrEnumRuleCall(); } break; case 4 : - // InternalSolverLanguageParser.g:3004:3: this_EmptyIntervalLiteral_3= ruleEmptyIntervalLiteral + // InternalSolverLanguageParser.g:3307:3: this_InfinityLiteral_3= ruleInfinityLiteral { - newCompositeNode(grammarAccess.getLiteralAccess().getEmptyIntervalLiteralParserRuleCall_3()); + newCompositeNode(grammarAccess.getLiteralAccess().getInfinityLiteralParserRuleCall_3()); pushFollow(FOLLOW_2); - this_EmptyIntervalLiteral_3=ruleEmptyIntervalLiteral(); + this_InfinityLiteral_3=ruleInfinityLiteral(); state._fsp--; - current = this_EmptyIntervalLiteral_3; + current = this_InfinityLiteral_3; afterParserOrEnumRuleCall(); } break; case 5 : - // InternalSolverLanguageParser.g:3013:3: this_StringLiteral_4= ruleStringLiteral + // InternalSolverLanguageParser.g:3316:3: this_EmptyLiteral_4= ruleEmptyLiteral + { + + newCompositeNode(grammarAccess.getLiteralAccess().getEmptyLiteralParserRuleCall_4()); + + pushFollow(FOLLOW_2); + this_EmptyLiteral_4=ruleEmptyLiteral(); + + state._fsp--; + + + current = this_EmptyLiteral_4; + afterParserOrEnumRuleCall(); + + + } + break; + case 6 : + // InternalSolverLanguageParser.g:3325:3: this_StringLiteral_5= ruleStringLiteral { - newCompositeNode(grammarAccess.getLiteralAccess().getStringLiteralParserRuleCall_4()); + newCompositeNode(grammarAccess.getLiteralAccess().getStringLiteralParserRuleCall_5()); pushFollow(FOLLOW_2); - this_StringLiteral_4=ruleStringLiteral(); + this_StringLiteral_5=ruleStringLiteral(); state._fsp--; - current = this_StringLiteral_4; + current = this_StringLiteral_5; afterParserOrEnumRuleCall(); @@ -7599,7 +8421,7 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { // $ANTLR start "entryRuleLogicLiteral" - // InternalSolverLanguageParser.g:3025:1: entryRuleLogicLiteral returns [EObject current=null] : iv_ruleLogicLiteral= ruleLogicLiteral EOF ; + // InternalSolverLanguageParser.g:3337:1: entryRuleLogicLiteral returns [EObject current=null] : iv_ruleLogicLiteral= ruleLogicLiteral EOF ; public final EObject entryRuleLogicLiteral() throws RecognitionException { EObject current = null; @@ -7607,8 +8429,8 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { try { - // InternalSolverLanguageParser.g:3025:53: (iv_ruleLogicLiteral= ruleLogicLiteral EOF ) - // InternalSolverLanguageParser.g:3026:2: iv_ruleLogicLiteral= ruleLogicLiteral EOF + // InternalSolverLanguageParser.g:3337:53: (iv_ruleLogicLiteral= ruleLogicLiteral EOF ) + // InternalSolverLanguageParser.g:3338:2: iv_ruleLogicLiteral= ruleLogicLiteral EOF { newCompositeNode(grammarAccess.getLogicLiteralRule()); pushFollow(FOLLOW_1); @@ -7635,7 +8457,7 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { // $ANTLR start "ruleLogicLiteral" - // InternalSolverLanguageParser.g:3032:1: ruleLogicLiteral returns [EObject current=null] : ( (lv_value_0_0= ruleLogicValue ) ) ; + // InternalSolverLanguageParser.g:3344:1: ruleLogicLiteral returns [EObject current=null] : ( (lv_value_0_0= ruleLogicValue ) ) ; public final EObject ruleLogicLiteral() throws RecognitionException { EObject current = null; @@ -7646,14 +8468,14 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { enterRule(); try { - // InternalSolverLanguageParser.g:3038:2: ( ( (lv_value_0_0= ruleLogicValue ) ) ) - // InternalSolverLanguageParser.g:3039:2: ( (lv_value_0_0= ruleLogicValue ) ) + // InternalSolverLanguageParser.g:3350:2: ( ( (lv_value_0_0= ruleLogicValue ) ) ) + // InternalSolverLanguageParser.g:3351:2: ( (lv_value_0_0= ruleLogicValue ) ) { - // InternalSolverLanguageParser.g:3039:2: ( (lv_value_0_0= ruleLogicValue ) ) - // InternalSolverLanguageParser.g:3040:3: (lv_value_0_0= ruleLogicValue ) + // InternalSolverLanguageParser.g:3351:2: ( (lv_value_0_0= ruleLogicValue ) ) + // InternalSolverLanguageParser.g:3352:3: (lv_value_0_0= ruleLogicValue ) { - // InternalSolverLanguageParser.g:3040:3: (lv_value_0_0= ruleLogicValue ) - // InternalSolverLanguageParser.g:3041:4: lv_value_0_0= ruleLogicValue + // InternalSolverLanguageParser.g:3352:3: (lv_value_0_0= ruleLogicValue ) + // InternalSolverLanguageParser.g:3353:4: lv_value_0_0= ruleLogicValue { newCompositeNode(grammarAccess.getLogicLiteralAccess().getValueLogicValueEnumRuleCall_0()); @@ -7699,25 +8521,120 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { // $ANTLR end "ruleLogicLiteral" - // $ANTLR start "entryRuleNumericLiteral" - // InternalSolverLanguageParser.g:3061:1: entryRuleNumericLiteral returns [EObject current=null] : iv_ruleNumericLiteral= ruleNumericLiteral EOF ; - public final EObject entryRuleNumericLiteral() throws RecognitionException { + // $ANTLR start "entryRuleIntLiteral" + // InternalSolverLanguageParser.g:3373:1: entryRuleIntLiteral returns [EObject current=null] : iv_ruleIntLiteral= ruleIntLiteral EOF ; + public final EObject entryRuleIntLiteral() throws RecognitionException { + EObject current = null; + + EObject iv_ruleIntLiteral = null; + + + try { + // InternalSolverLanguageParser.g:3373:51: (iv_ruleIntLiteral= ruleIntLiteral EOF ) + // InternalSolverLanguageParser.g:3374:2: iv_ruleIntLiteral= ruleIntLiteral EOF + { + newCompositeNode(grammarAccess.getIntLiteralRule()); + pushFollow(FOLLOW_1); + iv_ruleIntLiteral=ruleIntLiteral(); + + state._fsp--; + + current =iv_ruleIntLiteral; + match(input,EOF,FOLLOW_2); + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleIntLiteral" + + + // $ANTLR start "ruleIntLiteral" + // InternalSolverLanguageParser.g:3380:1: ruleIntLiteral returns [EObject current=null] : ( (lv_value_0_0= RULE_INT ) ) ; + public final EObject ruleIntLiteral() throws RecognitionException { + EObject current = null; + + Token lv_value_0_0=null; + + + enterRule(); + + try { + // InternalSolverLanguageParser.g:3386:2: ( ( (lv_value_0_0= RULE_INT ) ) ) + // InternalSolverLanguageParser.g:3387:2: ( (lv_value_0_0= RULE_INT ) ) + { + // InternalSolverLanguageParser.g:3387:2: ( (lv_value_0_0= RULE_INT ) ) + // InternalSolverLanguageParser.g:3388:3: (lv_value_0_0= RULE_INT ) + { + // InternalSolverLanguageParser.g:3388:3: (lv_value_0_0= RULE_INT ) + // InternalSolverLanguageParser.g:3389:4: lv_value_0_0= RULE_INT + { + lv_value_0_0=(Token)match(input,RULE_INT,FOLLOW_2); + + newLeafNode(lv_value_0_0, grammarAccess.getIntLiteralAccess().getValueINTTerminalRuleCall_0()); + + + if (current==null) { + current = createModelElement(grammarAccess.getIntLiteralRule()); + } + setWithLastConsumed( + current, + "value", + lv_value_0_0, + "org.eclipse.xtext.common.Terminals.INT"); + + + } + + + } + + + } + + + leaveRule(); + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleIntLiteral" + + + // $ANTLR start "entryRuleRealLiteral" + // InternalSolverLanguageParser.g:3408:1: entryRuleRealLiteral returns [EObject current=null] : iv_ruleRealLiteral= ruleRealLiteral EOF ; + public final EObject entryRuleRealLiteral() throws RecognitionException { EObject current = null; - EObject iv_ruleNumericLiteral = null; + EObject iv_ruleRealLiteral = null; try { - // InternalSolverLanguageParser.g:3061:55: (iv_ruleNumericLiteral= ruleNumericLiteral EOF ) - // InternalSolverLanguageParser.g:3062:2: iv_ruleNumericLiteral= ruleNumericLiteral EOF + // InternalSolverLanguageParser.g:3408:52: (iv_ruleRealLiteral= ruleRealLiteral EOF ) + // InternalSolverLanguageParser.g:3409:2: iv_ruleRealLiteral= ruleRealLiteral EOF { - newCompositeNode(grammarAccess.getNumericLiteralRule()); + newCompositeNode(grammarAccess.getRealLiteralRule()); pushFollow(FOLLOW_1); - iv_ruleNumericLiteral=ruleNumericLiteral(); + iv_ruleRealLiteral=ruleRealLiteral(); state._fsp--; - current =iv_ruleNumericLiteral; + current =iv_ruleRealLiteral; match(input,EOF,FOLLOW_2); } @@ -7732,12 +8649,12 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } return current; } - // $ANTLR end "entryRuleNumericLiteral" + // $ANTLR end "entryRuleRealLiteral" - // $ANTLR start "ruleNumericLiteral" - // InternalSolverLanguageParser.g:3068:1: ruleNumericLiteral returns [EObject current=null] : ( (lv_value_0_0= ruleReal ) ) ; - public final EObject ruleNumericLiteral() throws RecognitionException { + // $ANTLR start "ruleRealLiteral" + // InternalSolverLanguageParser.g:3415:1: ruleRealLiteral returns [EObject current=null] : ( (lv_value_0_0= ruleReal ) ) ; + public final EObject ruleRealLiteral() throws RecognitionException { EObject current = null; AntlrDatatypeRuleToken lv_value_0_0 = null; @@ -7747,17 +8664,17 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { enterRule(); try { - // InternalSolverLanguageParser.g:3074:2: ( ( (lv_value_0_0= ruleReal ) ) ) - // InternalSolverLanguageParser.g:3075:2: ( (lv_value_0_0= ruleReal ) ) + // InternalSolverLanguageParser.g:3421:2: ( ( (lv_value_0_0= ruleReal ) ) ) + // InternalSolverLanguageParser.g:3422:2: ( (lv_value_0_0= ruleReal ) ) { - // InternalSolverLanguageParser.g:3075:2: ( (lv_value_0_0= ruleReal ) ) - // InternalSolverLanguageParser.g:3076:3: (lv_value_0_0= ruleReal ) + // InternalSolverLanguageParser.g:3422:2: ( (lv_value_0_0= ruleReal ) ) + // InternalSolverLanguageParser.g:3423:3: (lv_value_0_0= ruleReal ) { - // InternalSolverLanguageParser.g:3076:3: (lv_value_0_0= ruleReal ) - // InternalSolverLanguageParser.g:3077:4: lv_value_0_0= ruleReal + // InternalSolverLanguageParser.g:3423:3: (lv_value_0_0= ruleReal ) + // InternalSolverLanguageParser.g:3424:4: lv_value_0_0= ruleReal { - newCompositeNode(grammarAccess.getNumericLiteralAccess().getValueRealParserRuleCall_0()); + newCompositeNode(grammarAccess.getRealLiteralAccess().getValueRealParserRuleCall_0()); pushFollow(FOLLOW_2); lv_value_0_0=ruleReal(); @@ -7766,7 +8683,7 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { if (current==null) { - current = createModelElementForParent(grammarAccess.getNumericLiteralRule()); + current = createModelElementForParent(grammarAccess.getRealLiteralRule()); } set( current, @@ -7797,11 +8714,11 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } return current; } - // $ANTLR end "ruleNumericLiteral" + // $ANTLR end "ruleRealLiteral" // $ANTLR start "entryRuleInfinityLiteral" - // InternalSolverLanguageParser.g:3097:1: entryRuleInfinityLiteral returns [EObject current=null] : iv_ruleInfinityLiteral= ruleInfinityLiteral EOF ; + // InternalSolverLanguageParser.g:3444:1: entryRuleInfinityLiteral returns [EObject current=null] : iv_ruleInfinityLiteral= ruleInfinityLiteral EOF ; public final EObject entryRuleInfinityLiteral() throws RecognitionException { EObject current = null; @@ -7809,8 +8726,8 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { try { - // InternalSolverLanguageParser.g:3097:56: (iv_ruleInfinityLiteral= ruleInfinityLiteral EOF ) - // InternalSolverLanguageParser.g:3098:2: iv_ruleInfinityLiteral= ruleInfinityLiteral EOF + // InternalSolverLanguageParser.g:3444:56: (iv_ruleInfinityLiteral= ruleInfinityLiteral EOF ) + // InternalSolverLanguageParser.g:3445:2: iv_ruleInfinityLiteral= ruleInfinityLiteral EOF { newCompositeNode(grammarAccess.getInfinityLiteralRule()); pushFollow(FOLLOW_1); @@ -7837,7 +8754,7 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { // $ANTLR start "ruleInfinityLiteral" - // InternalSolverLanguageParser.g:3104:1: ruleInfinityLiteral returns [EObject current=null] : ( () otherlv_1= Inf ) ; + // InternalSolverLanguageParser.g:3451:1: ruleInfinityLiteral returns [EObject current=null] : ( () otherlv_1= Inf ) ; public final EObject ruleInfinityLiteral() throws RecognitionException { EObject current = null; @@ -7847,14 +8764,14 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { enterRule(); try { - // InternalSolverLanguageParser.g:3110:2: ( ( () otherlv_1= Inf ) ) - // InternalSolverLanguageParser.g:3111:2: ( () otherlv_1= Inf ) + // InternalSolverLanguageParser.g:3457:2: ( ( () otherlv_1= Inf ) ) + // InternalSolverLanguageParser.g:3458:2: ( () otherlv_1= Inf ) { - // InternalSolverLanguageParser.g:3111:2: ( () otherlv_1= Inf ) - // InternalSolverLanguageParser.g:3112:3: () otherlv_1= Inf + // InternalSolverLanguageParser.g:3458:2: ( () otherlv_1= Inf ) + // InternalSolverLanguageParser.g:3459:3: () otherlv_1= Inf { - // InternalSolverLanguageParser.g:3112:3: () - // InternalSolverLanguageParser.g:3113:4: + // InternalSolverLanguageParser.g:3459:3: () + // InternalSolverLanguageParser.g:3460:4: { current = forceCreateModelElement( @@ -7890,25 +8807,25 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { // $ANTLR end "ruleInfinityLiteral" - // $ANTLR start "entryRuleEmptyIntervalLiteral" - // InternalSolverLanguageParser.g:3127:1: entryRuleEmptyIntervalLiteral returns [EObject current=null] : iv_ruleEmptyIntervalLiteral= ruleEmptyIntervalLiteral EOF ; - public final EObject entryRuleEmptyIntervalLiteral() throws RecognitionException { + // $ANTLR start "entryRuleEmptyLiteral" + // InternalSolverLanguageParser.g:3474:1: entryRuleEmptyLiteral returns [EObject current=null] : iv_ruleEmptyLiteral= ruleEmptyLiteral EOF ; + public final EObject entryRuleEmptyLiteral() throws RecognitionException { EObject current = null; - EObject iv_ruleEmptyIntervalLiteral = null; + EObject iv_ruleEmptyLiteral = null; try { - // InternalSolverLanguageParser.g:3127:61: (iv_ruleEmptyIntervalLiteral= ruleEmptyIntervalLiteral EOF ) - // InternalSolverLanguageParser.g:3128:2: iv_ruleEmptyIntervalLiteral= ruleEmptyIntervalLiteral EOF + // InternalSolverLanguageParser.g:3474:53: (iv_ruleEmptyLiteral= ruleEmptyLiteral EOF ) + // InternalSolverLanguageParser.g:3475:2: iv_ruleEmptyLiteral= ruleEmptyLiteral EOF { - newCompositeNode(grammarAccess.getEmptyIntervalLiteralRule()); + newCompositeNode(grammarAccess.getEmptyLiteralRule()); pushFollow(FOLLOW_1); - iv_ruleEmptyIntervalLiteral=ruleEmptyIntervalLiteral(); + iv_ruleEmptyLiteral=ruleEmptyLiteral(); state._fsp--; - current =iv_ruleEmptyIntervalLiteral; + current =iv_ruleEmptyLiteral; match(input,EOF,FOLLOW_2); } @@ -7923,12 +8840,12 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } return current; } - // $ANTLR end "entryRuleEmptyIntervalLiteral" + // $ANTLR end "entryRuleEmptyLiteral" - // $ANTLR start "ruleEmptyIntervalLiteral" - // InternalSolverLanguageParser.g:3134:1: ruleEmptyIntervalLiteral returns [EObject current=null] : ( () otherlv_1= Empty ) ; - public final EObject ruleEmptyIntervalLiteral() throws RecognitionException { + // $ANTLR start "ruleEmptyLiteral" + // InternalSolverLanguageParser.g:3481:1: ruleEmptyLiteral returns [EObject current=null] : ( () otherlv_1= Empty ) ; + public final EObject ruleEmptyLiteral() throws RecognitionException { EObject current = null; Token otherlv_1=null; @@ -7937,18 +8854,18 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { enterRule(); try { - // InternalSolverLanguageParser.g:3140:2: ( ( () otherlv_1= Empty ) ) - // InternalSolverLanguageParser.g:3141:2: ( () otherlv_1= Empty ) + // InternalSolverLanguageParser.g:3487:2: ( ( () otherlv_1= Empty ) ) + // InternalSolverLanguageParser.g:3488:2: ( () otherlv_1= Empty ) { - // InternalSolverLanguageParser.g:3141:2: ( () otherlv_1= Empty ) - // InternalSolverLanguageParser.g:3142:3: () otherlv_1= Empty + // InternalSolverLanguageParser.g:3488:2: ( () otherlv_1= Empty ) + // InternalSolverLanguageParser.g:3489:3: () otherlv_1= Empty { - // InternalSolverLanguageParser.g:3142:3: () - // InternalSolverLanguageParser.g:3143:4: + // InternalSolverLanguageParser.g:3489:3: () + // InternalSolverLanguageParser.g:3490:4: { current = forceCreateModelElement( - grammarAccess.getEmptyIntervalLiteralAccess().getEmptyIntervalLiteralAction_0(), + grammarAccess.getEmptyLiteralAccess().getEmptyLiteralAction_0(), current); @@ -7956,7 +8873,7 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { otherlv_1=(Token)match(input,Empty,FOLLOW_2); - newLeafNode(otherlv_1, grammarAccess.getEmptyIntervalLiteralAccess().getEmptyKeyword_1()); + newLeafNode(otherlv_1, grammarAccess.getEmptyLiteralAccess().getEmptyKeyword_1()); } @@ -7977,11 +8894,11 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } return current; } - // $ANTLR end "ruleEmptyIntervalLiteral" + // $ANTLR end "ruleEmptyLiteral" // $ANTLR start "entryRuleStringLiteral" - // InternalSolverLanguageParser.g:3157:1: entryRuleStringLiteral returns [EObject current=null] : iv_ruleStringLiteral= ruleStringLiteral EOF ; + // InternalSolverLanguageParser.g:3504:1: entryRuleStringLiteral returns [EObject current=null] : iv_ruleStringLiteral= ruleStringLiteral EOF ; public final EObject entryRuleStringLiteral() throws RecognitionException { EObject current = null; @@ -7989,8 +8906,8 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { try { - // InternalSolverLanguageParser.g:3157:54: (iv_ruleStringLiteral= ruleStringLiteral EOF ) - // InternalSolverLanguageParser.g:3158:2: iv_ruleStringLiteral= ruleStringLiteral EOF + // InternalSolverLanguageParser.g:3504:54: (iv_ruleStringLiteral= ruleStringLiteral EOF ) + // InternalSolverLanguageParser.g:3505:2: iv_ruleStringLiteral= ruleStringLiteral EOF { newCompositeNode(grammarAccess.getStringLiteralRule()); pushFollow(FOLLOW_1); @@ -8017,7 +8934,7 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { // $ANTLR start "ruleStringLiteral" - // InternalSolverLanguageParser.g:3164:1: ruleStringLiteral returns [EObject current=null] : ( (lv_value_0_0= RULE_STRING ) ) ; + // InternalSolverLanguageParser.g:3511:1: ruleStringLiteral returns [EObject current=null] : ( (lv_value_0_0= RULE_STRING ) ) ; public final EObject ruleStringLiteral() throws RecognitionException { EObject current = null; @@ -8027,14 +8944,14 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { enterRule(); try { - // InternalSolverLanguageParser.g:3170:2: ( ( (lv_value_0_0= RULE_STRING ) ) ) - // InternalSolverLanguageParser.g:3171:2: ( (lv_value_0_0= RULE_STRING ) ) + // InternalSolverLanguageParser.g:3517:2: ( ( (lv_value_0_0= RULE_STRING ) ) ) + // InternalSolverLanguageParser.g:3518:2: ( (lv_value_0_0= RULE_STRING ) ) { - // InternalSolverLanguageParser.g:3171:2: ( (lv_value_0_0= RULE_STRING ) ) - // InternalSolverLanguageParser.g:3172:3: (lv_value_0_0= RULE_STRING ) + // InternalSolverLanguageParser.g:3518:2: ( (lv_value_0_0= RULE_STRING ) ) + // InternalSolverLanguageParser.g:3519:3: (lv_value_0_0= RULE_STRING ) { - // InternalSolverLanguageParser.g:3172:3: (lv_value_0_0= RULE_STRING ) - // InternalSolverLanguageParser.g:3173:4: lv_value_0_0= RULE_STRING + // InternalSolverLanguageParser.g:3519:3: (lv_value_0_0= RULE_STRING ) + // InternalSolverLanguageParser.g:3520:4: lv_value_0_0= RULE_STRING { lv_value_0_0=(Token)match(input,RULE_STRING,FOLLOW_2); @@ -8075,25 +8992,25 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { // $ANTLR end "ruleStringLiteral" - // $ANTLR start "entryRuleClassDefinition" - // InternalSolverLanguageParser.g:3192:1: entryRuleClassDefinition returns [EObject current=null] : iv_ruleClassDefinition= ruleClassDefinition EOF ; - public final EObject entryRuleClassDefinition() throws RecognitionException { + // $ANTLR start "entryRuleClassDeclaration" + // InternalSolverLanguageParser.g:3539:1: entryRuleClassDeclaration returns [EObject current=null] : iv_ruleClassDeclaration= ruleClassDeclaration EOF ; + public final EObject entryRuleClassDeclaration() throws RecognitionException { EObject current = null; - EObject iv_ruleClassDefinition = null; + EObject iv_ruleClassDeclaration = null; try { - // InternalSolverLanguageParser.g:3192:56: (iv_ruleClassDefinition= ruleClassDefinition EOF ) - // InternalSolverLanguageParser.g:3193:2: iv_ruleClassDefinition= ruleClassDefinition EOF + // InternalSolverLanguageParser.g:3539:57: (iv_ruleClassDeclaration= ruleClassDeclaration EOF ) + // InternalSolverLanguageParser.g:3540:2: iv_ruleClassDeclaration= ruleClassDeclaration EOF { - newCompositeNode(grammarAccess.getClassDefinitionRule()); + newCompositeNode(grammarAccess.getClassDeclarationRule()); pushFollow(FOLLOW_1); - iv_ruleClassDefinition=ruleClassDefinition(); + iv_ruleClassDeclaration=ruleClassDeclaration(); state._fsp--; - current =iv_ruleClassDefinition; + current =iv_ruleClassDeclaration; match(input,EOF,FOLLOW_2); } @@ -8108,89 +9025,219 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } return current; } - // $ANTLR end "entryRuleClassDefinition" + // $ANTLR end "entryRuleClassDeclaration" - // $ANTLR start "ruleClassDefinition" - // InternalSolverLanguageParser.g:3199:1: ruleClassDefinition returns [EObject current=null] : ( ( (lv_abstract_0_0= Abstract ) )? otherlv_1= Class ( (lv_name_2_0= RULE_ID ) ) (otherlv_3= Extends ( ( ruleQualifiedName ) ) (otherlv_5= Comma ( ( ruleQualifiedName ) ) )* )? otherlv_7= LeftCurlyBracket ( (lv_members_8_0= ruleMemberDefinition ) )* otherlv_9= RightCurlyBracket ) ; - public final EObject ruleClassDefinition() throws RecognitionException { + // $ANTLR start "ruleClassDeclaration" + // InternalSolverLanguageParser.g:3546:1: ruleClassDeclaration returns [EObject current=null] : ( ( ( ( ( ({...}? => ( ({...}? => ( (lv_abstract_1_0= Abstract ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_root_2_0= Root ) ) ) ) ) )* ) ) ) otherlv_3= Class ( (lv_name_4_0= RULE_ID ) ) (otherlv_5= Extends ( ( ruleQualifiedName ) ) (otherlv_7= Comma ( ( ruleQualifiedName ) ) )* )? ( (otherlv_9= LeftCurlyBracket ( (lv_fields_10_0= ruleField ) )* otherlv_11= RightCurlyBracket ) | this_FULL_STOP_12= RULE_FULL_STOP ) ) ; + public final EObject ruleClassDeclaration() throws RecognitionException { EObject current = null; - Token lv_abstract_0_0=null; - Token otherlv_1=null; - Token lv_name_2_0=null; + Token lv_abstract_1_0=null; + Token lv_root_2_0=null; Token otherlv_3=null; + Token lv_name_4_0=null; Token otherlv_5=null; Token otherlv_7=null; Token otherlv_9=null; - EObject lv_members_8_0 = null; + Token otherlv_11=null; + Token this_FULL_STOP_12=null; + EObject lv_fields_10_0 = null; enterRule(); try { - // InternalSolverLanguageParser.g:3205:2: ( ( ( (lv_abstract_0_0= Abstract ) )? otherlv_1= Class ( (lv_name_2_0= RULE_ID ) ) (otherlv_3= Extends ( ( ruleQualifiedName ) ) (otherlv_5= Comma ( ( ruleQualifiedName ) ) )* )? otherlv_7= LeftCurlyBracket ( (lv_members_8_0= ruleMemberDefinition ) )* otherlv_9= RightCurlyBracket ) ) - // InternalSolverLanguageParser.g:3206:2: ( ( (lv_abstract_0_0= Abstract ) )? otherlv_1= Class ( (lv_name_2_0= RULE_ID ) ) (otherlv_3= Extends ( ( ruleQualifiedName ) ) (otherlv_5= Comma ( ( ruleQualifiedName ) ) )* )? otherlv_7= LeftCurlyBracket ( (lv_members_8_0= ruleMemberDefinition ) )* otherlv_9= RightCurlyBracket ) + // InternalSolverLanguageParser.g:3552:2: ( ( ( ( ( ( ({...}? => ( ({...}? => ( (lv_abstract_1_0= Abstract ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_root_2_0= Root ) ) ) ) ) )* ) ) ) otherlv_3= Class ( (lv_name_4_0= RULE_ID ) ) (otherlv_5= Extends ( ( ruleQualifiedName ) ) (otherlv_7= Comma ( ( ruleQualifiedName ) ) )* )? ( (otherlv_9= LeftCurlyBracket ( (lv_fields_10_0= ruleField ) )* otherlv_11= RightCurlyBracket ) | this_FULL_STOP_12= RULE_FULL_STOP ) ) ) + // InternalSolverLanguageParser.g:3553:2: ( ( ( ( ( ({...}? => ( ({...}? => ( (lv_abstract_1_0= Abstract ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_root_2_0= Root ) ) ) ) ) )* ) ) ) otherlv_3= Class ( (lv_name_4_0= RULE_ID ) ) (otherlv_5= Extends ( ( ruleQualifiedName ) ) (otherlv_7= Comma ( ( ruleQualifiedName ) ) )* )? ( (otherlv_9= LeftCurlyBracket ( (lv_fields_10_0= ruleField ) )* otherlv_11= RightCurlyBracket ) | this_FULL_STOP_12= RULE_FULL_STOP ) ) { - // InternalSolverLanguageParser.g:3206:2: ( ( (lv_abstract_0_0= Abstract ) )? otherlv_1= Class ( (lv_name_2_0= RULE_ID ) ) (otherlv_3= Extends ( ( ruleQualifiedName ) ) (otherlv_5= Comma ( ( ruleQualifiedName ) ) )* )? otherlv_7= LeftCurlyBracket ( (lv_members_8_0= ruleMemberDefinition ) )* otherlv_9= RightCurlyBracket ) - // InternalSolverLanguageParser.g:3207:3: ( (lv_abstract_0_0= Abstract ) )? otherlv_1= Class ( (lv_name_2_0= RULE_ID ) ) (otherlv_3= Extends ( ( ruleQualifiedName ) ) (otherlv_5= Comma ( ( ruleQualifiedName ) ) )* )? otherlv_7= LeftCurlyBracket ( (lv_members_8_0= ruleMemberDefinition ) )* otherlv_9= RightCurlyBracket + // InternalSolverLanguageParser.g:3553:2: ( ( ( ( ( ({...}? => ( ({...}? => ( (lv_abstract_1_0= Abstract ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_root_2_0= Root ) ) ) ) ) )* ) ) ) otherlv_3= Class ( (lv_name_4_0= RULE_ID ) ) (otherlv_5= Extends ( ( ruleQualifiedName ) ) (otherlv_7= Comma ( ( ruleQualifiedName ) ) )* )? ( (otherlv_9= LeftCurlyBracket ( (lv_fields_10_0= ruleField ) )* otherlv_11= RightCurlyBracket ) | this_FULL_STOP_12= RULE_FULL_STOP ) ) + // InternalSolverLanguageParser.g:3554:3: ( ( ( ( ({...}? => ( ({...}? => ( (lv_abstract_1_0= Abstract ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_root_2_0= Root ) ) ) ) ) )* ) ) ) otherlv_3= Class ( (lv_name_4_0= RULE_ID ) ) (otherlv_5= Extends ( ( ruleQualifiedName ) ) (otherlv_7= Comma ( ( ruleQualifiedName ) ) )* )? ( (otherlv_9= LeftCurlyBracket ( (lv_fields_10_0= ruleField ) )* otherlv_11= RightCurlyBracket ) | this_FULL_STOP_12= RULE_FULL_STOP ) { - // InternalSolverLanguageParser.g:3207:3: ( (lv_abstract_0_0= Abstract ) )? - int alt35=2; - int LA35_0 = input.LA(1); + // InternalSolverLanguageParser.g:3554:3: ( ( ( ( ({...}? => ( ({...}? => ( (lv_abstract_1_0= Abstract ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_root_2_0= Root ) ) ) ) ) )* ) ) ) + // InternalSolverLanguageParser.g:3555:4: ( ( ( ({...}? => ( ({...}? => ( (lv_abstract_1_0= Abstract ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_root_2_0= Root ) ) ) ) ) )* ) ) + { + // InternalSolverLanguageParser.g:3555:4: ( ( ( ({...}? => ( ({...}? => ( (lv_abstract_1_0= Abstract ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_root_2_0= Root ) ) ) ) ) )* ) ) + // InternalSolverLanguageParser.g:3556:5: ( ( ({...}? => ( ({...}? => ( (lv_abstract_1_0= Abstract ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_root_2_0= Root ) ) ) ) ) )* ) + { + + getUnorderedGroupHelper().enter(grammarAccess.getClassDeclarationAccess().getUnorderedGroup_0()); + + // InternalSolverLanguageParser.g:3559:5: ( ( ({...}? => ( ({...}? => ( (lv_abstract_1_0= Abstract ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_root_2_0= Root ) ) ) ) ) )* ) + // InternalSolverLanguageParser.g:3560:6: ( ({...}? => ( ({...}? => ( (lv_abstract_1_0= Abstract ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_root_2_0= Root ) ) ) ) ) )* + { + // InternalSolverLanguageParser.g:3560:6: ( ({...}? => ( ({...}? => ( (lv_abstract_1_0= Abstract ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_root_2_0= Root ) ) ) ) ) )* + loop39: + do { + int alt39=3; + int LA39_0 = input.LA(1); - if ( (LA35_0==Abstract) ) { - alt35=1; - } - switch (alt35) { - case 1 : - // InternalSolverLanguageParser.g:3208:4: (lv_abstract_0_0= Abstract ) - { - // InternalSolverLanguageParser.g:3208:4: (lv_abstract_0_0= Abstract ) - // InternalSolverLanguageParser.g:3209:5: lv_abstract_0_0= Abstract - { - lv_abstract_0_0=(Token)match(input,Abstract,FOLLOW_46); + if ( LA39_0 == Abstract && getUnorderedGroupHelper().canSelect(grammarAccess.getClassDeclarationAccess().getUnorderedGroup_0(), 0) ) { + alt39=1; + } + else if ( LA39_0 == Root && getUnorderedGroupHelper().canSelect(grammarAccess.getClassDeclarationAccess().getUnorderedGroup_0(), 1) ) { + alt39=2; + } - newLeafNode(lv_abstract_0_0, grammarAccess.getClassDefinitionAccess().getAbstractAbstractKeyword_0_0()); - - if (current==null) { - current = createModelElement(grammarAccess.getClassDefinitionRule()); - } - setWithLastConsumed(current, "abstract", true, "abstract"); - + switch (alt39) { + case 1 : + // InternalSolverLanguageParser.g:3561:4: ({...}? => ( ({...}? => ( (lv_abstract_1_0= Abstract ) ) ) ) ) + { + // InternalSolverLanguageParser.g:3561:4: ({...}? => ( ({...}? => ( (lv_abstract_1_0= Abstract ) ) ) ) ) + // InternalSolverLanguageParser.g:3562:5: {...}? => ( ({...}? => ( (lv_abstract_1_0= Abstract ) ) ) ) + { + if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getClassDeclarationAccess().getUnorderedGroup_0(), 0) ) { + throw new FailedPredicateException(input, "ruleClassDeclaration", "getUnorderedGroupHelper().canSelect(grammarAccess.getClassDeclarationAccess().getUnorderedGroup_0(), 0)"); + } + // InternalSolverLanguageParser.g:3562:113: ( ({...}? => ( (lv_abstract_1_0= Abstract ) ) ) ) + // InternalSolverLanguageParser.g:3563:6: ({...}? => ( (lv_abstract_1_0= Abstract ) ) ) + { - } + getUnorderedGroupHelper().select(grammarAccess.getClassDeclarationAccess().getUnorderedGroup_0(), 0); + + // InternalSolverLanguageParser.g:3566:9: ({...}? => ( (lv_abstract_1_0= Abstract ) ) ) + // InternalSolverLanguageParser.g:3566:10: {...}? => ( (lv_abstract_1_0= Abstract ) ) + { + if ( !((true)) ) { + throw new FailedPredicateException(input, "ruleClassDeclaration", "true"); + } + // InternalSolverLanguageParser.g:3566:19: ( (lv_abstract_1_0= Abstract ) ) + // InternalSolverLanguageParser.g:3566:20: (lv_abstract_1_0= Abstract ) + { + // InternalSolverLanguageParser.g:3566:20: (lv_abstract_1_0= Abstract ) + // InternalSolverLanguageParser.g:3567:10: lv_abstract_1_0= Abstract + { + lv_abstract_1_0=(Token)match(input,Abstract,FOLLOW_50); + newLeafNode(lv_abstract_1_0, grammarAccess.getClassDeclarationAccess().getAbstractAbstractKeyword_0_0_0()); + - } - break; + if (current==null) { + current = createModelElement(grammarAccess.getClassDeclarationRule()); + } + setWithLastConsumed(current, "abstract", true, "abstract"); + + + } + + + } + + + } + + + getUnorderedGroupHelper().returnFromSelection(grammarAccess.getClassDeclarationAccess().getUnorderedGroup_0()); + + + } + + + } + + + } + break; + case 2 : + // InternalSolverLanguageParser.g:3584:4: ({...}? => ( ({...}? => ( (lv_root_2_0= Root ) ) ) ) ) + { + // InternalSolverLanguageParser.g:3584:4: ({...}? => ( ({...}? => ( (lv_root_2_0= Root ) ) ) ) ) + // InternalSolverLanguageParser.g:3585:5: {...}? => ( ({...}? => ( (lv_root_2_0= Root ) ) ) ) + { + if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getClassDeclarationAccess().getUnorderedGroup_0(), 1) ) { + throw new FailedPredicateException(input, "ruleClassDeclaration", "getUnorderedGroupHelper().canSelect(grammarAccess.getClassDeclarationAccess().getUnorderedGroup_0(), 1)"); + } + // InternalSolverLanguageParser.g:3585:113: ( ({...}? => ( (lv_root_2_0= Root ) ) ) ) + // InternalSolverLanguageParser.g:3586:6: ({...}? => ( (lv_root_2_0= Root ) ) ) + { + + getUnorderedGroupHelper().select(grammarAccess.getClassDeclarationAccess().getUnorderedGroup_0(), 1); + + // InternalSolverLanguageParser.g:3589:9: ({...}? => ( (lv_root_2_0= Root ) ) ) + // InternalSolverLanguageParser.g:3589:10: {...}? => ( (lv_root_2_0= Root ) ) + { + if ( !((true)) ) { + throw new FailedPredicateException(input, "ruleClassDeclaration", "true"); + } + // InternalSolverLanguageParser.g:3589:19: ( (lv_root_2_0= Root ) ) + // InternalSolverLanguageParser.g:3589:20: (lv_root_2_0= Root ) + { + // InternalSolverLanguageParser.g:3589:20: (lv_root_2_0= Root ) + // InternalSolverLanguageParser.g:3590:10: lv_root_2_0= Root + { + lv_root_2_0=(Token)match(input,Root,FOLLOW_50); + + newLeafNode(lv_root_2_0, grammarAccess.getClassDeclarationAccess().getRootRootKeyword_0_1_0()); + + + if (current==null) { + current = createModelElement(grammarAccess.getClassDeclarationRule()); + } + setWithLastConsumed(current, "root", true, "root"); + + + } + + + } + + + } + + + getUnorderedGroupHelper().returnFromSelection(grammarAccess.getClassDeclarationAccess().getUnorderedGroup_0()); + + + } + + + } + + + } + break; + + default : + break loop39; + } + } while (true); + + + } + + + } + + + getUnorderedGroupHelper().leave(grammarAccess.getClassDeclarationAccess().getUnorderedGroup_0()); + } - otherlv_1=(Token)match(input,Class,FOLLOW_20); + otherlv_3=(Token)match(input,Class,FOLLOW_28); - newLeafNode(otherlv_1, grammarAccess.getClassDefinitionAccess().getClassKeyword_1()); + newLeafNode(otherlv_3, grammarAccess.getClassDeclarationAccess().getClassKeyword_1()); - // InternalSolverLanguageParser.g:3225:3: ( (lv_name_2_0= RULE_ID ) ) - // InternalSolverLanguageParser.g:3226:4: (lv_name_2_0= RULE_ID ) + // InternalSolverLanguageParser.g:3618:3: ( (lv_name_4_0= RULE_ID ) ) + // InternalSolverLanguageParser.g:3619:4: (lv_name_4_0= RULE_ID ) { - // InternalSolverLanguageParser.g:3226:4: (lv_name_2_0= RULE_ID ) - // InternalSolverLanguageParser.g:3227:5: lv_name_2_0= RULE_ID + // InternalSolverLanguageParser.g:3619:4: (lv_name_4_0= RULE_ID ) + // InternalSolverLanguageParser.g:3620:5: lv_name_4_0= RULE_ID { - lv_name_2_0=(Token)match(input,RULE_ID,FOLLOW_47); + lv_name_4_0=(Token)match(input,RULE_ID,FOLLOW_51); - newLeafNode(lv_name_2_0, grammarAccess.getClassDefinitionAccess().getNameIDTerminalRuleCall_2_0()); + newLeafNode(lv_name_4_0, grammarAccess.getClassDeclarationAccess().getNameIDTerminalRuleCall_2_0()); if (current==null) { - current = createModelElement(grammarAccess.getClassDefinitionRule()); + current = createModelElement(grammarAccess.getClassDeclarationRule()); } setWithLastConsumed( current, "name", - lv_name_2_0, + lv_name_4_0, "org.eclipse.xtext.common.Terminals.ID"); @@ -8199,36 +9246,36 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } - // InternalSolverLanguageParser.g:3243:3: (otherlv_3= Extends ( ( ruleQualifiedName ) ) (otherlv_5= Comma ( ( ruleQualifiedName ) ) )* )? - int alt37=2; - int LA37_0 = input.LA(1); + // InternalSolverLanguageParser.g:3636:3: (otherlv_5= Extends ( ( ruleQualifiedName ) ) (otherlv_7= Comma ( ( ruleQualifiedName ) ) )* )? + int alt41=2; + int LA41_0 = input.LA(1); - if ( (LA37_0==Extends) ) { - alt37=1; + if ( (LA41_0==Extends) ) { + alt41=1; } - switch (alt37) { + switch (alt41) { case 1 : - // InternalSolverLanguageParser.g:3244:4: otherlv_3= Extends ( ( ruleQualifiedName ) ) (otherlv_5= Comma ( ( ruleQualifiedName ) ) )* + // InternalSolverLanguageParser.g:3637:4: otherlv_5= Extends ( ( ruleQualifiedName ) ) (otherlv_7= Comma ( ( ruleQualifiedName ) ) )* { - otherlv_3=(Token)match(input,Extends,FOLLOW_8); + otherlv_5=(Token)match(input,Extends,FOLLOW_3); - newLeafNode(otherlv_3, grammarAccess.getClassDefinitionAccess().getExtendsKeyword_3_0()); + newLeafNode(otherlv_5, grammarAccess.getClassDeclarationAccess().getExtendsKeyword_3_0()); - // InternalSolverLanguageParser.g:3248:4: ( ( ruleQualifiedName ) ) - // InternalSolverLanguageParser.g:3249:5: ( ruleQualifiedName ) + // InternalSolverLanguageParser.g:3641:4: ( ( ruleQualifiedName ) ) + // InternalSolverLanguageParser.g:3642:5: ( ruleQualifiedName ) { - // InternalSolverLanguageParser.g:3249:5: ( ruleQualifiedName ) - // InternalSolverLanguageParser.g:3250:6: ruleQualifiedName + // InternalSolverLanguageParser.g:3642:5: ( ruleQualifiedName ) + // InternalSolverLanguageParser.g:3643:6: ruleQualifiedName { if (current==null) { - current = createModelElement(grammarAccess.getClassDefinitionRule()); + current = createModelElement(grammarAccess.getClassDeclarationRule()); } - newCompositeNode(grammarAccess.getClassDefinitionAccess().getSuperclassesNamedElementCrossReference_3_1_0()); + newCompositeNode(grammarAccess.getClassDeclarationAccess().getSupertypesSymbolCrossReference_3_1_0()); - pushFollow(FOLLOW_48); + pushFollow(FOLLOW_52); ruleQualifiedName(); state._fsp--; @@ -8242,40 +9289,40 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } - // InternalSolverLanguageParser.g:3264:4: (otherlv_5= Comma ( ( ruleQualifiedName ) ) )* - loop36: + // InternalSolverLanguageParser.g:3657:4: (otherlv_7= Comma ( ( ruleQualifiedName ) ) )* + loop40: do { - int alt36=2; - int LA36_0 = input.LA(1); + int alt40=2; + int LA40_0 = input.LA(1); - if ( (LA36_0==Comma) ) { - alt36=1; + if ( (LA40_0==Comma) ) { + alt40=1; } - switch (alt36) { + switch (alt40) { case 1 : - // InternalSolverLanguageParser.g:3265:5: otherlv_5= Comma ( ( ruleQualifiedName ) ) + // InternalSolverLanguageParser.g:3658:5: otherlv_7= Comma ( ( ruleQualifiedName ) ) { - otherlv_5=(Token)match(input,Comma,FOLLOW_8); + otherlv_7=(Token)match(input,Comma,FOLLOW_3); - newLeafNode(otherlv_5, grammarAccess.getClassDefinitionAccess().getCommaKeyword_3_2_0()); + newLeafNode(otherlv_7, grammarAccess.getClassDeclarationAccess().getCommaKeyword_3_2_0()); - // InternalSolverLanguageParser.g:3269:5: ( ( ruleQualifiedName ) ) - // InternalSolverLanguageParser.g:3270:6: ( ruleQualifiedName ) + // InternalSolverLanguageParser.g:3662:5: ( ( ruleQualifiedName ) ) + // InternalSolverLanguageParser.g:3663:6: ( ruleQualifiedName ) { - // InternalSolverLanguageParser.g:3270:6: ( ruleQualifiedName ) - // InternalSolverLanguageParser.g:3271:7: ruleQualifiedName + // InternalSolverLanguageParser.g:3663:6: ( ruleQualifiedName ) + // InternalSolverLanguageParser.g:3664:7: ruleQualifiedName { if (current==null) { - current = createModelElement(grammarAccess.getClassDefinitionRule()); + current = createModelElement(grammarAccess.getClassDeclarationRule()); } - newCompositeNode(grammarAccess.getClassDefinitionAccess().getSuperclassesNamedElementCrossReference_3_2_1_0()); + newCompositeNode(grammarAccess.getClassDeclarationAccess().getSupertypesSymbolCrossReference_3_2_1_0()); - pushFollow(FOLLOW_48); + pushFollow(FOLLOW_52); ruleQualifiedName(); state._fsp--; @@ -8294,7 +9341,7 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { break; default : - break loop36; + break loop40; } } while (true); @@ -8304,63 +9351,105 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } - otherlv_7=(Token)match(input,LeftCurlyBracket,FOLLOW_49); + // InternalSolverLanguageParser.g:3680:3: ( (otherlv_9= LeftCurlyBracket ( (lv_fields_10_0= ruleField ) )* otherlv_11= RightCurlyBracket ) | this_FULL_STOP_12= RULE_FULL_STOP ) + int alt43=2; + int LA43_0 = input.LA(1); - newLeafNode(otherlv_7, grammarAccess.getClassDefinitionAccess().getLeftCurlyBracketKeyword_4()); - - // InternalSolverLanguageParser.g:3291:3: ( (lv_members_8_0= ruleMemberDefinition ) )* - loop38: - do { - int alt38=2; - int LA38_0 = input.LA(1); + if ( (LA43_0==LeftCurlyBracket) ) { + alt43=1; + } + else if ( (LA43_0==RULE_FULL_STOP) ) { + alt43=2; + } + else { + NoViableAltException nvae = + new NoViableAltException("", 43, 0, input); + + throw nvae; + } + switch (alt43) { + case 1 : + // InternalSolverLanguageParser.g:3681:4: (otherlv_9= LeftCurlyBracket ( (lv_fields_10_0= ruleField ) )* otherlv_11= RightCurlyBracket ) + { + // InternalSolverLanguageParser.g:3681:4: (otherlv_9= LeftCurlyBracket ( (lv_fields_10_0= ruleField ) )* otherlv_11= RightCurlyBracket ) + // InternalSolverLanguageParser.g:3682:5: otherlv_9= LeftCurlyBracket ( (lv_fields_10_0= ruleField ) )* otherlv_11= RightCurlyBracket + { + otherlv_9=(Token)match(input,LeftCurlyBracket,FOLLOW_53); + + newLeafNode(otherlv_9, grammarAccess.getClassDeclarationAccess().getLeftCurlyBracketKeyword_4_0_0()); + + // InternalSolverLanguageParser.g:3686:5: ( (lv_fields_10_0= ruleField ) )* + loop42: + do { + int alt42=2; + int LA42_0 = input.LA(1); + + if ( (LA42_0==Contains||(LA42_0>=Object && LA42_0<=Refers)||LA42_0==RULE_QUOTED_ID||LA42_0==RULE_ID) ) { + alt42=1; + } + + + switch (alt42) { + case 1 : + // InternalSolverLanguageParser.g:3687:6: (lv_fields_10_0= ruleField ) + { + // InternalSolverLanguageParser.g:3687:6: (lv_fields_10_0= ruleField ) + // InternalSolverLanguageParser.g:3688:7: lv_fields_10_0= ruleField + { + + newCompositeNode(grammarAccess.getClassDeclarationAccess().getFieldsFieldParserRuleCall_4_0_1_0()); + + pushFollow(FOLLOW_53); + lv_fields_10_0=ruleField(); + + state._fsp--; + + + if (current==null) { + current = createModelElementForParent(grammarAccess.getClassDeclarationRule()); + } + add( + current, + "fields", + lv_fields_10_0, + "org.eclipse.viatra.solver.language.SolverLanguage.Field"); + afterParserOrEnumRuleCall(); + - if ( (LA38_0==Contains||LA38_0==RULE_QUOTED_ID||LA38_0==RULE_ID) ) { - alt38=1; - } + } - switch (alt38) { - case 1 : - // InternalSolverLanguageParser.g:3292:4: (lv_members_8_0= ruleMemberDefinition ) - { - // InternalSolverLanguageParser.g:3292:4: (lv_members_8_0= ruleMemberDefinition ) - // InternalSolverLanguageParser.g:3293:5: lv_members_8_0= ruleMemberDefinition - { + } + break; - newCompositeNode(grammarAccess.getClassDefinitionAccess().getMembersMemberDefinitionParserRuleCall_5_0()); - - pushFollow(FOLLOW_49); - lv_members_8_0=ruleMemberDefinition(); + default : + break loop42; + } + } while (true); - state._fsp--; + otherlv_11=(Token)match(input,RightCurlyBracket,FOLLOW_2); + newLeafNode(otherlv_11, grammarAccess.getClassDeclarationAccess().getRightCurlyBracketKeyword_4_0_2()); + - if (current==null) { - current = createModelElementForParent(grammarAccess.getClassDefinitionRule()); - } - add( - current, - "members", - lv_members_8_0, - "org.eclipse.viatra.solver.language.SolverLanguage.MemberDefinition"); - afterParserOrEnumRuleCall(); - + } - } + } + break; + case 2 : + // InternalSolverLanguageParser.g:3711:4: this_FULL_STOP_12= RULE_FULL_STOP + { + this_FULL_STOP_12=(Token)match(input,RULE_FULL_STOP,FOLLOW_2); - } - break; + newLeafNode(this_FULL_STOP_12, grammarAccess.getClassDeclarationAccess().getFULL_STOPTerminalRuleCall_4_1()); + - default : - break loop38; - } - } while (true); + } + break; - otherlv_9=(Token)match(input,RightCurlyBracket,FOLLOW_2); + } - newLeafNode(otherlv_9, grammarAccess.getClassDefinitionAccess().getRightCurlyBracketKeyword_6()); - } @@ -8380,28 +9469,28 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } return current; } - // $ANTLR end "ruleClassDefinition" + // $ANTLR end "ruleClassDeclaration" - // $ANTLR start "entryRuleMemberDefinition" - // InternalSolverLanguageParser.g:3318:1: entryRuleMemberDefinition returns [EObject current=null] : iv_ruleMemberDefinition= ruleMemberDefinition EOF ; - public final EObject entryRuleMemberDefinition() throws RecognitionException { + // $ANTLR start "entryRuleField" + // InternalSolverLanguageParser.g:3720:1: entryRuleField returns [EObject current=null] : iv_ruleField= ruleField EOF ; + public final EObject entryRuleField() throws RecognitionException { EObject current = null; - EObject iv_ruleMemberDefinition = null; + EObject iv_ruleField = null; try { - // InternalSolverLanguageParser.g:3318:57: (iv_ruleMemberDefinition= ruleMemberDefinition EOF ) - // InternalSolverLanguageParser.g:3319:2: iv_ruleMemberDefinition= ruleMemberDefinition EOF + // InternalSolverLanguageParser.g:3720:46: (iv_ruleField= ruleField EOF ) + // InternalSolverLanguageParser.g:3721:2: iv_ruleField= ruleField EOF { - newCompositeNode(grammarAccess.getMemberDefinitionRule()); + newCompositeNode(grammarAccess.getFieldRule()); pushFollow(FOLLOW_1); - iv_ruleMemberDefinition=ruleMemberDefinition(); + iv_ruleField=ruleField(); state._fsp--; - current =iv_ruleMemberDefinition; + current =iv_ruleField; match(input,EOF,FOLLOW_2); } @@ -8416,55 +9505,93 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } return current; } - // $ANTLR end "entryRuleMemberDefinition" + // $ANTLR end "entryRuleField" - // $ANTLR start "ruleMemberDefinition" - // InternalSolverLanguageParser.g:3325:1: ruleMemberDefinition returns [EObject current=null] : ( ( (lv_containment_0_0= Contains ) )? ( ( ruleQualifiedName ) ) ( (lv_multiplicity_2_0= ruleMultiplicity ) )? ( (lv_name_3_0= RULE_ID ) ) (otherlv_4= Opposite ( ( ruleQualifiedName ) ) )? (otherlv_6= Semicolon )? ) ; - public final EObject ruleMemberDefinition() throws RecognitionException { + // $ANTLR start "ruleField" + // InternalSolverLanguageParser.g:3727:1: ruleField returns [EObject current=null] : ( ( ( (lv_containment_0_0= Contains ) ) | ( (lv_crossReference_1_0= Refers ) ) )? ( ( ruleQualifiedName ) ) ( (lv_multiplicity_3_0= ruleMultiplicity ) )? ( (lv_name_4_0= RULE_ID ) ) (otherlv_5= Opposite ( ( ruleQualifiedName ) ) )? (otherlv_7= Semicolon )? ) ; + public final EObject ruleField() throws RecognitionException { EObject current = null; Token lv_containment_0_0=null; - Token lv_name_3_0=null; - Token otherlv_4=null; - Token otherlv_6=null; - EObject lv_multiplicity_2_0 = null; + Token lv_crossReference_1_0=null; + Token lv_name_4_0=null; + Token otherlv_5=null; + Token otherlv_7=null; + EObject lv_multiplicity_3_0 = null; enterRule(); try { - // InternalSolverLanguageParser.g:3331:2: ( ( ( (lv_containment_0_0= Contains ) )? ( ( ruleQualifiedName ) ) ( (lv_multiplicity_2_0= ruleMultiplicity ) )? ( (lv_name_3_0= RULE_ID ) ) (otherlv_4= Opposite ( ( ruleQualifiedName ) ) )? (otherlv_6= Semicolon )? ) ) - // InternalSolverLanguageParser.g:3332:2: ( ( (lv_containment_0_0= Contains ) )? ( ( ruleQualifiedName ) ) ( (lv_multiplicity_2_0= ruleMultiplicity ) )? ( (lv_name_3_0= RULE_ID ) ) (otherlv_4= Opposite ( ( ruleQualifiedName ) ) )? (otherlv_6= Semicolon )? ) + // InternalSolverLanguageParser.g:3733:2: ( ( ( ( (lv_containment_0_0= Contains ) ) | ( (lv_crossReference_1_0= Refers ) ) )? ( ( ruleQualifiedName ) ) ( (lv_multiplicity_3_0= ruleMultiplicity ) )? ( (lv_name_4_0= RULE_ID ) ) (otherlv_5= Opposite ( ( ruleQualifiedName ) ) )? (otherlv_7= Semicolon )? ) ) + // InternalSolverLanguageParser.g:3734:2: ( ( ( (lv_containment_0_0= Contains ) ) | ( (lv_crossReference_1_0= Refers ) ) )? ( ( ruleQualifiedName ) ) ( (lv_multiplicity_3_0= ruleMultiplicity ) )? ( (lv_name_4_0= RULE_ID ) ) (otherlv_5= Opposite ( ( ruleQualifiedName ) ) )? (otherlv_7= Semicolon )? ) { - // InternalSolverLanguageParser.g:3332:2: ( ( (lv_containment_0_0= Contains ) )? ( ( ruleQualifiedName ) ) ( (lv_multiplicity_2_0= ruleMultiplicity ) )? ( (lv_name_3_0= RULE_ID ) ) (otherlv_4= Opposite ( ( ruleQualifiedName ) ) )? (otherlv_6= Semicolon )? ) - // InternalSolverLanguageParser.g:3333:3: ( (lv_containment_0_0= Contains ) )? ( ( ruleQualifiedName ) ) ( (lv_multiplicity_2_0= ruleMultiplicity ) )? ( (lv_name_3_0= RULE_ID ) ) (otherlv_4= Opposite ( ( ruleQualifiedName ) ) )? (otherlv_6= Semicolon )? + // InternalSolverLanguageParser.g:3734:2: ( ( ( (lv_containment_0_0= Contains ) ) | ( (lv_crossReference_1_0= Refers ) ) )? ( ( ruleQualifiedName ) ) ( (lv_multiplicity_3_0= ruleMultiplicity ) )? ( (lv_name_4_0= RULE_ID ) ) (otherlv_5= Opposite ( ( ruleQualifiedName ) ) )? (otherlv_7= Semicolon )? ) + // InternalSolverLanguageParser.g:3735:3: ( ( (lv_containment_0_0= Contains ) ) | ( (lv_crossReference_1_0= Refers ) ) )? ( ( ruleQualifiedName ) ) ( (lv_multiplicity_3_0= ruleMultiplicity ) )? ( (lv_name_4_0= RULE_ID ) ) (otherlv_5= Opposite ( ( ruleQualifiedName ) ) )? (otherlv_7= Semicolon )? { - // InternalSolverLanguageParser.g:3333:3: ( (lv_containment_0_0= Contains ) )? - int alt39=2; - int LA39_0 = input.LA(1); + // InternalSolverLanguageParser.g:3735:3: ( ( (lv_containment_0_0= Contains ) ) | ( (lv_crossReference_1_0= Refers ) ) )? + int alt44=3; + int LA44_0 = input.LA(1); - if ( (LA39_0==Contains) ) { - alt39=1; + if ( (LA44_0==Contains) ) { + alt44=1; + } + else if ( (LA44_0==Refers) ) { + alt44=2; } - switch (alt39) { + switch (alt44) { case 1 : - // InternalSolverLanguageParser.g:3334:4: (lv_containment_0_0= Contains ) + // InternalSolverLanguageParser.g:3736:4: ( (lv_containment_0_0= Contains ) ) + { + // InternalSolverLanguageParser.g:3736:4: ( (lv_containment_0_0= Contains ) ) + // InternalSolverLanguageParser.g:3737:5: (lv_containment_0_0= Contains ) { - // InternalSolverLanguageParser.g:3334:4: (lv_containment_0_0= Contains ) - // InternalSolverLanguageParser.g:3335:5: lv_containment_0_0= Contains + // InternalSolverLanguageParser.g:3737:5: (lv_containment_0_0= Contains ) + // InternalSolverLanguageParser.g:3738:6: lv_containment_0_0= Contains { - lv_containment_0_0=(Token)match(input,Contains,FOLLOW_8); + lv_containment_0_0=(Token)match(input,Contains,FOLLOW_3); - newLeafNode(lv_containment_0_0, grammarAccess.getMemberDefinitionAccess().getContainmentContainsKeyword_0_0()); - + newLeafNode(lv_containment_0_0, grammarAccess.getFieldAccess().getContainmentContainsKeyword_0_0_0()); + + + if (current==null) { + current = createModelElement(grammarAccess.getFieldRule()); + } + setWithLastConsumed(current, "containment", true, "contains"); + + + } + + + } + + + } + break; + case 2 : + // InternalSolverLanguageParser.g:3751:4: ( (lv_crossReference_1_0= Refers ) ) + { + // InternalSolverLanguageParser.g:3751:4: ( (lv_crossReference_1_0= Refers ) ) + // InternalSolverLanguageParser.g:3752:5: (lv_crossReference_1_0= Refers ) + { + // InternalSolverLanguageParser.g:3752:5: (lv_crossReference_1_0= Refers ) + // InternalSolverLanguageParser.g:3753:6: lv_crossReference_1_0= Refers + { + lv_crossReference_1_0=(Token)match(input,Refers,FOLLOW_3); + + newLeafNode(lv_crossReference_1_0, grammarAccess.getFieldAccess().getCrossReferenceRefersKeyword_0_1_0()); + + + if (current==null) { + current = createModelElement(grammarAccess.getFieldRule()); + } + setWithLastConsumed(current, "crossReference", true, "refers"); + + + } - if (current==null) { - current = createModelElement(grammarAccess.getMemberDefinitionRule()); - } - setWithLastConsumed(current, "containment", true, "contains"); - } @@ -8474,21 +9601,21 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } - // InternalSolverLanguageParser.g:3347:3: ( ( ruleQualifiedName ) ) - // InternalSolverLanguageParser.g:3348:4: ( ruleQualifiedName ) + // InternalSolverLanguageParser.g:3766:3: ( ( ruleQualifiedName ) ) + // InternalSolverLanguageParser.g:3767:4: ( ruleQualifiedName ) { - // InternalSolverLanguageParser.g:3348:4: ( ruleQualifiedName ) - // InternalSolverLanguageParser.g:3349:5: ruleQualifiedName + // InternalSolverLanguageParser.g:3767:4: ( ruleQualifiedName ) + // InternalSolverLanguageParser.g:3768:5: ruleQualifiedName { if (current==null) { - current = createModelElement(grammarAccess.getMemberDefinitionRule()); + current = createModelElement(grammarAccess.getFieldRule()); } - newCompositeNode(grammarAccess.getMemberDefinitionAccess().getTypeNamedElementCrossReference_1_0()); + newCompositeNode(grammarAccess.getFieldAccess().getTypeSymbolCrossReference_1_0()); - pushFollow(FOLLOW_50); + pushFollow(FOLLOW_54); ruleQualifiedName(); state._fsp--; @@ -8502,36 +9629,36 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } - // InternalSolverLanguageParser.g:3363:3: ( (lv_multiplicity_2_0= ruleMultiplicity ) )? - int alt40=2; - int LA40_0 = input.LA(1); + // InternalSolverLanguageParser.g:3782:3: ( (lv_multiplicity_3_0= ruleMultiplicity ) )? + int alt45=2; + int LA45_0 = input.LA(1); - if ( (LA40_0==LeftSquareBracket) ) { - alt40=1; + if ( (LA45_0==LeftSquareBracket) ) { + alt45=1; } - switch (alt40) { + switch (alt45) { case 1 : - // InternalSolverLanguageParser.g:3364:4: (lv_multiplicity_2_0= ruleMultiplicity ) + // InternalSolverLanguageParser.g:3783:4: (lv_multiplicity_3_0= ruleMultiplicity ) { - // InternalSolverLanguageParser.g:3364:4: (lv_multiplicity_2_0= ruleMultiplicity ) - // InternalSolverLanguageParser.g:3365:5: lv_multiplicity_2_0= ruleMultiplicity + // InternalSolverLanguageParser.g:3783:4: (lv_multiplicity_3_0= ruleMultiplicity ) + // InternalSolverLanguageParser.g:3784:5: lv_multiplicity_3_0= ruleMultiplicity { - newCompositeNode(grammarAccess.getMemberDefinitionAccess().getMultiplicityMultiplicityParserRuleCall_2_0()); + newCompositeNode(grammarAccess.getFieldAccess().getMultiplicityMultiplicityParserRuleCall_2_0()); - pushFollow(FOLLOW_20); - lv_multiplicity_2_0=ruleMultiplicity(); + pushFollow(FOLLOW_28); + lv_multiplicity_3_0=ruleMultiplicity(); state._fsp--; if (current==null) { - current = createModelElementForParent(grammarAccess.getMemberDefinitionRule()); + current = createModelElementForParent(grammarAccess.getFieldRule()); } set( current, "multiplicity", - lv_multiplicity_2_0, + lv_multiplicity_3_0, "org.eclipse.viatra.solver.language.SolverLanguage.Multiplicity"); afterParserOrEnumRuleCall(); @@ -8544,24 +9671,24 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } - // InternalSolverLanguageParser.g:3382:3: ( (lv_name_3_0= RULE_ID ) ) - // InternalSolverLanguageParser.g:3383:4: (lv_name_3_0= RULE_ID ) + // InternalSolverLanguageParser.g:3801:3: ( (lv_name_4_0= RULE_ID ) ) + // InternalSolverLanguageParser.g:3802:4: (lv_name_4_0= RULE_ID ) { - // InternalSolverLanguageParser.g:3383:4: (lv_name_3_0= RULE_ID ) - // InternalSolverLanguageParser.g:3384:5: lv_name_3_0= RULE_ID + // InternalSolverLanguageParser.g:3802:4: (lv_name_4_0= RULE_ID ) + // InternalSolverLanguageParser.g:3803:5: lv_name_4_0= RULE_ID { - lv_name_3_0=(Token)match(input,RULE_ID,FOLLOW_51); + lv_name_4_0=(Token)match(input,RULE_ID,FOLLOW_55); - newLeafNode(lv_name_3_0, grammarAccess.getMemberDefinitionAccess().getNameIDTerminalRuleCall_3_0()); + newLeafNode(lv_name_4_0, grammarAccess.getFieldAccess().getNameIDTerminalRuleCall_3_0()); if (current==null) { - current = createModelElement(grammarAccess.getMemberDefinitionRule()); + current = createModelElement(grammarAccess.getFieldRule()); } setWithLastConsumed( current, "name", - lv_name_3_0, + lv_name_4_0, "org.eclipse.xtext.common.Terminals.ID"); @@ -8570,36 +9697,36 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } - // InternalSolverLanguageParser.g:3400:3: (otherlv_4= Opposite ( ( ruleQualifiedName ) ) )? - int alt41=2; - int LA41_0 = input.LA(1); + // InternalSolverLanguageParser.g:3819:3: (otherlv_5= Opposite ( ( ruleQualifiedName ) ) )? + int alt46=2; + int LA46_0 = input.LA(1); - if ( (LA41_0==Opposite) ) { - alt41=1; + if ( (LA46_0==Opposite) ) { + alt46=1; } - switch (alt41) { + switch (alt46) { case 1 : - // InternalSolverLanguageParser.g:3401:4: otherlv_4= Opposite ( ( ruleQualifiedName ) ) + // InternalSolverLanguageParser.g:3820:4: otherlv_5= Opposite ( ( ruleQualifiedName ) ) { - otherlv_4=(Token)match(input,Opposite,FOLLOW_8); + otherlv_5=(Token)match(input,Opposite,FOLLOW_3); - newLeafNode(otherlv_4, grammarAccess.getMemberDefinitionAccess().getOppositeKeyword_4_0()); + newLeafNode(otherlv_5, grammarAccess.getFieldAccess().getOppositeKeyword_4_0()); - // InternalSolverLanguageParser.g:3405:4: ( ( ruleQualifiedName ) ) - // InternalSolverLanguageParser.g:3406:5: ( ruleQualifiedName ) + // InternalSolverLanguageParser.g:3824:4: ( ( ruleQualifiedName ) ) + // InternalSolverLanguageParser.g:3825:5: ( ruleQualifiedName ) { - // InternalSolverLanguageParser.g:3406:5: ( ruleQualifiedName ) - // InternalSolverLanguageParser.g:3407:6: ruleQualifiedName + // InternalSolverLanguageParser.g:3825:5: ( ruleQualifiedName ) + // InternalSolverLanguageParser.g:3826:6: ruleQualifiedName { if (current==null) { - current = createModelElement(grammarAccess.getMemberDefinitionRule()); + current = createModelElement(grammarAccess.getFieldRule()); } - newCompositeNode(grammarAccess.getMemberDefinitionAccess().getOppositeNamedElementCrossReference_4_1_0()); + newCompositeNode(grammarAccess.getFieldAccess().getOppositeSymbolCrossReference_4_1_0()); - pushFollow(FOLLOW_26); + pushFollow(FOLLOW_31); ruleQualifiedName(); state._fsp--; @@ -8619,20 +9746,20 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } - // InternalSolverLanguageParser.g:3422:3: (otherlv_6= Semicolon )? - int alt42=2; - int LA42_0 = input.LA(1); + // InternalSolverLanguageParser.g:3841:3: (otherlv_7= Semicolon )? + int alt47=2; + int LA47_0 = input.LA(1); - if ( (LA42_0==Semicolon) ) { - alt42=1; + if ( (LA47_0==Semicolon) ) { + alt47=1; } - switch (alt42) { + switch (alt47) { case 1 : - // InternalSolverLanguageParser.g:3423:4: otherlv_6= Semicolon + // InternalSolverLanguageParser.g:3842:4: otherlv_7= Semicolon { - otherlv_6=(Token)match(input,Semicolon,FOLLOW_2); + otherlv_7=(Token)match(input,Semicolon,FOLLOW_2); - newLeafNode(otherlv_6, grammarAccess.getMemberDefinitionAccess().getSemicolonKeyword_5()); + newLeafNode(otherlv_7, grammarAccess.getFieldAccess().getSemicolonKeyword_5()); } @@ -8659,11 +9786,11 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } return current; } - // $ANTLR end "ruleMemberDefinition" + // $ANTLR end "ruleField" // $ANTLR start "entryRuleMultiplicity" - // InternalSolverLanguageParser.g:3432:1: entryRuleMultiplicity returns [EObject current=null] : iv_ruleMultiplicity= ruleMultiplicity EOF ; + // InternalSolverLanguageParser.g:3851:1: entryRuleMultiplicity returns [EObject current=null] : iv_ruleMultiplicity= ruleMultiplicity EOF ; public final EObject entryRuleMultiplicity() throws RecognitionException { EObject current = null; @@ -8671,8 +9798,8 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { try { - // InternalSolverLanguageParser.g:3432:53: (iv_ruleMultiplicity= ruleMultiplicity EOF ) - // InternalSolverLanguageParser.g:3433:2: iv_ruleMultiplicity= ruleMultiplicity EOF + // InternalSolverLanguageParser.g:3851:53: (iv_ruleMultiplicity= ruleMultiplicity EOF ) + // InternalSolverLanguageParser.g:3852:2: iv_ruleMultiplicity= ruleMultiplicity EOF { newCompositeNode(grammarAccess.getMultiplicityRule()); pushFollow(FOLLOW_1); @@ -8699,11 +9826,11 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { // $ANTLR start "ruleMultiplicity" - // InternalSolverLanguageParser.g:3439:1: ruleMultiplicity returns [EObject current=null] : (this_ManyMultiplicity_0= ruleManyMultiplicity | this_ExactMultiplicity_1= ruleExactMultiplicity | this_BoundedMultiplicity_2= ruleBoundedMultiplicity ) ; + // InternalSolverLanguageParser.g:3858:1: ruleMultiplicity returns [EObject current=null] : (this_UnboundedMultiplicity_0= ruleUnboundedMultiplicity | this_ExactMultiplicity_1= ruleExactMultiplicity | this_BoundedMultiplicity_2= ruleBoundedMultiplicity ) ; public final EObject ruleMultiplicity() throws RecognitionException { EObject current = null; - EObject this_ManyMultiplicity_0 = null; + EObject this_UnboundedMultiplicity_0 = null; EObject this_ExactMultiplicity_1 = null; @@ -8714,112 +9841,324 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { enterRule(); try { - // InternalSolverLanguageParser.g:3445:2: ( (this_ManyMultiplicity_0= ruleManyMultiplicity | this_ExactMultiplicity_1= ruleExactMultiplicity | this_BoundedMultiplicity_2= ruleBoundedMultiplicity ) ) - // InternalSolverLanguageParser.g:3446:2: (this_ManyMultiplicity_0= ruleManyMultiplicity | this_ExactMultiplicity_1= ruleExactMultiplicity | this_BoundedMultiplicity_2= ruleBoundedMultiplicity ) + // InternalSolverLanguageParser.g:3864:2: ( (this_UnboundedMultiplicity_0= ruleUnboundedMultiplicity | this_ExactMultiplicity_1= ruleExactMultiplicity | this_BoundedMultiplicity_2= ruleBoundedMultiplicity ) ) + // InternalSolverLanguageParser.g:3865:2: (this_UnboundedMultiplicity_0= ruleUnboundedMultiplicity | this_ExactMultiplicity_1= ruleExactMultiplicity | this_BoundedMultiplicity_2= ruleBoundedMultiplicity ) { - // InternalSolverLanguageParser.g:3446:2: (this_ManyMultiplicity_0= ruleManyMultiplicity | this_ExactMultiplicity_1= ruleExactMultiplicity | this_BoundedMultiplicity_2= ruleBoundedMultiplicity ) - int alt43=3; - int LA43_0 = input.LA(1); + // InternalSolverLanguageParser.g:3865:2: (this_UnboundedMultiplicity_0= ruleUnboundedMultiplicity | this_ExactMultiplicity_1= ruleExactMultiplicity | this_BoundedMultiplicity_2= ruleBoundedMultiplicity ) + int alt48=3; + int LA48_0 = input.LA(1); - if ( (LA43_0==LeftSquareBracket) ) { + if ( (LA48_0==LeftSquareBracket) ) { switch ( input.LA(2) ) { case RULE_INT: { - int LA43_2 = input.LA(3); + int LA48_2 = input.LA(3); - if ( (LA43_2==FullStopFullStop) ) { - alt43=3; + if ( (LA48_2==RightSquareBracket) ) { + alt48=2; } - else if ( (LA43_2==RightSquareBracket) ) { - alt43=2; + else if ( (LA48_2==Comma) ) { + alt48=3; } else { NoViableAltException nvae = - new NoViableAltException("", 43, 2, input); + new NoViableAltException("", 48, 2, input); throw nvae; } } break; - case Asterisk: + case RightSquareBracket: { - alt43=2; + alt48=1; } break; - case RightSquareBracket: + case Asterisk: { - alt43=1; + alt48=2; } break; default: NoViableAltException nvae = - new NoViableAltException("", 43, 1, input); + new NoViableAltException("", 48, 1, input); throw nvae; } } - else { - NoViableAltException nvae = - new NoViableAltException("", 43, 0, input); + else { + NoViableAltException nvae = + new NoViableAltException("", 48, 0, input); + + throw nvae; + } + switch (alt48) { + case 1 : + // InternalSolverLanguageParser.g:3866:3: this_UnboundedMultiplicity_0= ruleUnboundedMultiplicity + { + + newCompositeNode(grammarAccess.getMultiplicityAccess().getUnboundedMultiplicityParserRuleCall_0()); + + pushFollow(FOLLOW_2); + this_UnboundedMultiplicity_0=ruleUnboundedMultiplicity(); + + state._fsp--; + + + current = this_UnboundedMultiplicity_0; + afterParserOrEnumRuleCall(); + + + } + break; + case 2 : + // InternalSolverLanguageParser.g:3875:3: this_ExactMultiplicity_1= ruleExactMultiplicity + { + + newCompositeNode(grammarAccess.getMultiplicityAccess().getExactMultiplicityParserRuleCall_1()); + + pushFollow(FOLLOW_2); + this_ExactMultiplicity_1=ruleExactMultiplicity(); + + state._fsp--; + + + current = this_ExactMultiplicity_1; + afterParserOrEnumRuleCall(); + + + } + break; + case 3 : + // InternalSolverLanguageParser.g:3884:3: this_BoundedMultiplicity_2= ruleBoundedMultiplicity + { + + newCompositeNode(grammarAccess.getMultiplicityAccess().getBoundedMultiplicityParserRuleCall_2()); + + pushFollow(FOLLOW_2); + this_BoundedMultiplicity_2=ruleBoundedMultiplicity(); + + state._fsp--; + + + current = this_BoundedMultiplicity_2; + afterParserOrEnumRuleCall(); + + + } + break; + + } + + + } + + + leaveRule(); + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleMultiplicity" + + + // $ANTLR start "entryRuleUnboundedMultiplicity" + // InternalSolverLanguageParser.g:3896:1: entryRuleUnboundedMultiplicity returns [EObject current=null] : iv_ruleUnboundedMultiplicity= ruleUnboundedMultiplicity EOF ; + public final EObject entryRuleUnboundedMultiplicity() throws RecognitionException { + EObject current = null; + + EObject iv_ruleUnboundedMultiplicity = null; + + + try { + // InternalSolverLanguageParser.g:3896:62: (iv_ruleUnboundedMultiplicity= ruleUnboundedMultiplicity EOF ) + // InternalSolverLanguageParser.g:3897:2: iv_ruleUnboundedMultiplicity= ruleUnboundedMultiplicity EOF + { + newCompositeNode(grammarAccess.getUnboundedMultiplicityRule()); + pushFollow(FOLLOW_1); + iv_ruleUnboundedMultiplicity=ruleUnboundedMultiplicity(); + + state._fsp--; + + current =iv_ruleUnboundedMultiplicity; + match(input,EOF,FOLLOW_2); + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleUnboundedMultiplicity" + + + // $ANTLR start "ruleUnboundedMultiplicity" + // InternalSolverLanguageParser.g:3903:1: ruleUnboundedMultiplicity returns [EObject current=null] : ( () otherlv_1= LeftSquareBracket otherlv_2= RightSquareBracket ) ; + public final EObject ruleUnboundedMultiplicity() throws RecognitionException { + EObject current = null; + + Token otherlv_1=null; + Token otherlv_2=null; + + + enterRule(); + + try { + // InternalSolverLanguageParser.g:3909:2: ( ( () otherlv_1= LeftSquareBracket otherlv_2= RightSquareBracket ) ) + // InternalSolverLanguageParser.g:3910:2: ( () otherlv_1= LeftSquareBracket otherlv_2= RightSquareBracket ) + { + // InternalSolverLanguageParser.g:3910:2: ( () otherlv_1= LeftSquareBracket otherlv_2= RightSquareBracket ) + // InternalSolverLanguageParser.g:3911:3: () otherlv_1= LeftSquareBracket otherlv_2= RightSquareBracket + { + // InternalSolverLanguageParser.g:3911:3: () + // InternalSolverLanguageParser.g:3912:4: + { + + current = forceCreateModelElement( + grammarAccess.getUnboundedMultiplicityAccess().getUnboundedMultiplicityAction_0(), + current); + + + } + + otherlv_1=(Token)match(input,LeftSquareBracket,FOLLOW_49); + + newLeafNode(otherlv_1, grammarAccess.getUnboundedMultiplicityAccess().getLeftSquareBracketKeyword_1()); + + otherlv_2=(Token)match(input,RightSquareBracket,FOLLOW_2); + + newLeafNode(otherlv_2, grammarAccess.getUnboundedMultiplicityAccess().getRightSquareBracketKeyword_2()); + + + } + + + } + + + leaveRule(); + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleUnboundedMultiplicity" + + + // $ANTLR start "entryRuleExactMultiplicity" + // InternalSolverLanguageParser.g:3930:1: entryRuleExactMultiplicity returns [EObject current=null] : iv_ruleExactMultiplicity= ruleExactMultiplicity EOF ; + public final EObject entryRuleExactMultiplicity() throws RecognitionException { + EObject current = null; + + EObject iv_ruleExactMultiplicity = null; + + + try { + // InternalSolverLanguageParser.g:3930:58: (iv_ruleExactMultiplicity= ruleExactMultiplicity EOF ) + // InternalSolverLanguageParser.g:3931:2: iv_ruleExactMultiplicity= ruleExactMultiplicity EOF + { + newCompositeNode(grammarAccess.getExactMultiplicityRule()); + pushFollow(FOLLOW_1); + iv_ruleExactMultiplicity=ruleExactMultiplicity(); + + state._fsp--; + + current =iv_ruleExactMultiplicity; + match(input,EOF,FOLLOW_2); + + } - throw nvae; + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); } - switch (alt43) { - case 1 : - // InternalSolverLanguageParser.g:3447:3: this_ManyMultiplicity_0= ruleManyMultiplicity - { + finally { + } + return current; + } + // $ANTLR end "entryRuleExactMultiplicity" - newCompositeNode(grammarAccess.getMultiplicityAccess().getManyMultiplicityParserRuleCall_0()); - - pushFollow(FOLLOW_2); - this_ManyMultiplicity_0=ruleManyMultiplicity(); - state._fsp--; + // $ANTLR start "ruleExactMultiplicity" + // InternalSolverLanguageParser.g:3937:1: ruleExactMultiplicity returns [EObject current=null] : (otherlv_0= LeftSquareBracket ( (lv_value_1_0= ruleUpperMultiplicty ) ) otherlv_2= RightSquareBracket ) ; + public final EObject ruleExactMultiplicity() throws RecognitionException { + EObject current = null; + Token otherlv_0=null; + Token otherlv_2=null; + AntlrDatatypeRuleToken lv_value_1_0 = null; - current = this_ManyMultiplicity_0; - afterParserOrEnumRuleCall(); - - } - break; - case 2 : - // InternalSolverLanguageParser.g:3456:3: this_ExactMultiplicity_1= ruleExactMultiplicity - { - newCompositeNode(grammarAccess.getMultiplicityAccess().getExactMultiplicityParserRuleCall_1()); - - pushFollow(FOLLOW_2); - this_ExactMultiplicity_1=ruleExactMultiplicity(); + enterRule(); - state._fsp--; + try { + // InternalSolverLanguageParser.g:3943:2: ( (otherlv_0= LeftSquareBracket ( (lv_value_1_0= ruleUpperMultiplicty ) ) otherlv_2= RightSquareBracket ) ) + // InternalSolverLanguageParser.g:3944:2: (otherlv_0= LeftSquareBracket ( (lv_value_1_0= ruleUpperMultiplicty ) ) otherlv_2= RightSquareBracket ) + { + // InternalSolverLanguageParser.g:3944:2: (otherlv_0= LeftSquareBracket ( (lv_value_1_0= ruleUpperMultiplicty ) ) otherlv_2= RightSquareBracket ) + // InternalSolverLanguageParser.g:3945:3: otherlv_0= LeftSquareBracket ( (lv_value_1_0= ruleUpperMultiplicty ) ) otherlv_2= RightSquareBracket + { + otherlv_0=(Token)match(input,LeftSquareBracket,FOLLOW_56); + newLeafNode(otherlv_0, grammarAccess.getExactMultiplicityAccess().getLeftSquareBracketKeyword_0()); + + // InternalSolverLanguageParser.g:3949:3: ( (lv_value_1_0= ruleUpperMultiplicty ) ) + // InternalSolverLanguageParser.g:3950:4: (lv_value_1_0= ruleUpperMultiplicty ) + { + // InternalSolverLanguageParser.g:3950:4: (lv_value_1_0= ruleUpperMultiplicty ) + // InternalSolverLanguageParser.g:3951:5: lv_value_1_0= ruleUpperMultiplicty + { - current = this_ExactMultiplicity_1; - afterParserOrEnumRuleCall(); - + newCompositeNode(grammarAccess.getExactMultiplicityAccess().getValueUpperMultiplictyParserRuleCall_1_0()); + + pushFollow(FOLLOW_49); + lv_value_1_0=ruleUpperMultiplicty(); - } - break; - case 3 : - // InternalSolverLanguageParser.g:3465:3: this_BoundedMultiplicity_2= ruleBoundedMultiplicity - { + state._fsp--; - newCompositeNode(grammarAccess.getMultiplicityAccess().getBoundedMultiplicityParserRuleCall_2()); - - pushFollow(FOLLOW_2); - this_BoundedMultiplicity_2=ruleBoundedMultiplicity(); - state._fsp--; + if (current==null) { + current = createModelElementForParent(grammarAccess.getExactMultiplicityRule()); + } + set( + current, + "value", + lv_value_1_0, + "org.eclipse.viatra.solver.language.SolverLanguage.UpperMultiplicty"); + afterParserOrEnumRuleCall(); + + } - current = this_BoundedMultiplicity_2; - afterParserOrEnumRuleCall(); - - } - break; + } + + otherlv_2=(Token)match(input,RightSquareBracket,FOLLOW_2); + + newLeafNode(otherlv_2, grammarAccess.getExactMultiplicityAccess().getRightSquareBracketKeyword_2()); + } @@ -8839,28 +10178,28 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } return current; } - // $ANTLR end "ruleMultiplicity" + // $ANTLR end "ruleExactMultiplicity" - // $ANTLR start "entryRuleManyMultiplicity" - // InternalSolverLanguageParser.g:3477:1: entryRuleManyMultiplicity returns [EObject current=null] : iv_ruleManyMultiplicity= ruleManyMultiplicity EOF ; - public final EObject entryRuleManyMultiplicity() throws RecognitionException { + // $ANTLR start "entryRuleBoundedMultiplicity" + // InternalSolverLanguageParser.g:3976:1: entryRuleBoundedMultiplicity returns [EObject current=null] : iv_ruleBoundedMultiplicity= ruleBoundedMultiplicity EOF ; + public final EObject entryRuleBoundedMultiplicity() throws RecognitionException { EObject current = null; - EObject iv_ruleManyMultiplicity = null; + EObject iv_ruleBoundedMultiplicity = null; try { - // InternalSolverLanguageParser.g:3477:57: (iv_ruleManyMultiplicity= ruleManyMultiplicity EOF ) - // InternalSolverLanguageParser.g:3478:2: iv_ruleManyMultiplicity= ruleManyMultiplicity EOF + // InternalSolverLanguageParser.g:3976:60: (iv_ruleBoundedMultiplicity= ruleBoundedMultiplicity EOF ) + // InternalSolverLanguageParser.g:3977:2: iv_ruleBoundedMultiplicity= ruleBoundedMultiplicity EOF { - newCompositeNode(grammarAccess.getManyMultiplicityRule()); + newCompositeNode(grammarAccess.getBoundedMultiplicityRule()); pushFollow(FOLLOW_1); - iv_ruleManyMultiplicity=ruleManyMultiplicity(); + iv_ruleBoundedMultiplicity=ruleBoundedMultiplicity(); state._fsp--; - current =iv_ruleManyMultiplicity; + current =iv_ruleBoundedMultiplicity; match(input,EOF,FOLLOW_2); } @@ -8875,45 +10214,99 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } return current; } - // $ANTLR end "entryRuleManyMultiplicity" + // $ANTLR end "entryRuleBoundedMultiplicity" - // $ANTLR start "ruleManyMultiplicity" - // InternalSolverLanguageParser.g:3484:1: ruleManyMultiplicity returns [EObject current=null] : ( () otherlv_1= LeftSquareBracket otherlv_2= RightSquareBracket ) ; - public final EObject ruleManyMultiplicity() throws RecognitionException { + // $ANTLR start "ruleBoundedMultiplicity" + // InternalSolverLanguageParser.g:3983:1: ruleBoundedMultiplicity returns [EObject current=null] : (otherlv_0= LeftSquareBracket ( (lv_lowerBound_1_0= RULE_INT ) ) otherlv_2= Comma ( (lv_upperBound_3_0= ruleUpperMultiplicty ) ) otherlv_4= RightSquareBracket ) ; + public final EObject ruleBoundedMultiplicity() throws RecognitionException { EObject current = null; - Token otherlv_1=null; + Token otherlv_0=null; + Token lv_lowerBound_1_0=null; Token otherlv_2=null; + Token otherlv_4=null; + AntlrDatatypeRuleToken lv_upperBound_3_0 = null; + enterRule(); try { - // InternalSolverLanguageParser.g:3490:2: ( ( () otherlv_1= LeftSquareBracket otherlv_2= RightSquareBracket ) ) - // InternalSolverLanguageParser.g:3491:2: ( () otherlv_1= LeftSquareBracket otherlv_2= RightSquareBracket ) + // InternalSolverLanguageParser.g:3989:2: ( (otherlv_0= LeftSquareBracket ( (lv_lowerBound_1_0= RULE_INT ) ) otherlv_2= Comma ( (lv_upperBound_3_0= ruleUpperMultiplicty ) ) otherlv_4= RightSquareBracket ) ) + // InternalSolverLanguageParser.g:3990:2: (otherlv_0= LeftSquareBracket ( (lv_lowerBound_1_0= RULE_INT ) ) otherlv_2= Comma ( (lv_upperBound_3_0= ruleUpperMultiplicty ) ) otherlv_4= RightSquareBracket ) { - // InternalSolverLanguageParser.g:3491:2: ( () otherlv_1= LeftSquareBracket otherlv_2= RightSquareBracket ) - // InternalSolverLanguageParser.g:3492:3: () otherlv_1= LeftSquareBracket otherlv_2= RightSquareBracket + // InternalSolverLanguageParser.g:3990:2: (otherlv_0= LeftSquareBracket ( (lv_lowerBound_1_0= RULE_INT ) ) otherlv_2= Comma ( (lv_upperBound_3_0= ruleUpperMultiplicty ) ) otherlv_4= RightSquareBracket ) + // InternalSolverLanguageParser.g:3991:3: otherlv_0= LeftSquareBracket ( (lv_lowerBound_1_0= RULE_INT ) ) otherlv_2= Comma ( (lv_upperBound_3_0= ruleUpperMultiplicty ) ) otherlv_4= RightSquareBracket { - // InternalSolverLanguageParser.g:3492:3: () - // InternalSolverLanguageParser.g:3493:4: + otherlv_0=(Token)match(input,LeftSquareBracket,FOLLOW_57); + + newLeafNode(otherlv_0, grammarAccess.getBoundedMultiplicityAccess().getLeftSquareBracketKeyword_0()); + + // InternalSolverLanguageParser.g:3995:3: ( (lv_lowerBound_1_0= RULE_INT ) ) + // InternalSolverLanguageParser.g:3996:4: (lv_lowerBound_1_0= RULE_INT ) + { + // InternalSolverLanguageParser.g:3996:4: (lv_lowerBound_1_0= RULE_INT ) + // InternalSolverLanguageParser.g:3997:5: lv_lowerBound_1_0= RULE_INT { + lv_lowerBound_1_0=(Token)match(input,RULE_INT,FOLLOW_48); + + newLeafNode(lv_lowerBound_1_0, grammarAccess.getBoundedMultiplicityAccess().getLowerBoundINTTerminalRuleCall_1_0()); + + + if (current==null) { + current = createModelElement(grammarAccess.getBoundedMultiplicityRule()); + } + setWithLastConsumed( + current, + "lowerBound", + lv_lowerBound_1_0, + "org.eclipse.xtext.common.Terminals.INT"); + + + } - current = forceCreateModelElement( - grammarAccess.getManyMultiplicityAccess().getManyMultiplicityAction_0(), - current); - } - otherlv_1=(Token)match(input,LeftSquareBracket,FOLLOW_45); + otherlv_2=(Token)match(input,Comma,FOLLOW_56); - newLeafNode(otherlv_1, grammarAccess.getManyMultiplicityAccess().getLeftSquareBracketKeyword_1()); + newLeafNode(otherlv_2, grammarAccess.getBoundedMultiplicityAccess().getCommaKeyword_2()); - otherlv_2=(Token)match(input,RightSquareBracket,FOLLOW_2); + // InternalSolverLanguageParser.g:4017:3: ( (lv_upperBound_3_0= ruleUpperMultiplicty ) ) + // InternalSolverLanguageParser.g:4018:4: (lv_upperBound_3_0= ruleUpperMultiplicty ) + { + // InternalSolverLanguageParser.g:4018:4: (lv_upperBound_3_0= ruleUpperMultiplicty ) + // InternalSolverLanguageParser.g:4019:5: lv_upperBound_3_0= ruleUpperMultiplicty + { + + newCompositeNode(grammarAccess.getBoundedMultiplicityAccess().getUpperBoundUpperMultiplictyParserRuleCall_3_0()); + + pushFollow(FOLLOW_49); + lv_upperBound_3_0=ruleUpperMultiplicty(); + + state._fsp--; + - newLeafNode(otherlv_2, grammarAccess.getManyMultiplicityAccess().getRightSquareBracketKeyword_2()); + if (current==null) { + current = createModelElementForParent(grammarAccess.getBoundedMultiplicityRule()); + } + set( + current, + "upperBound", + lv_upperBound_3_0, + "org.eclipse.viatra.solver.language.SolverLanguage.UpperMultiplicty"); + afterParserOrEnumRuleCall(); + + + } + + + } + + otherlv_4=(Token)match(input,RightSquareBracket,FOLLOW_2); + + newLeafNode(otherlv_4, grammarAccess.getBoundedMultiplicityAccess().getRightSquareBracketKeyword_4()); } @@ -8934,28 +10327,28 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } return current; } - // $ANTLR end "ruleManyMultiplicity" + // $ANTLR end "ruleBoundedMultiplicity" - // $ANTLR start "entryRuleExactMultiplicity" - // InternalSolverLanguageParser.g:3511:1: entryRuleExactMultiplicity returns [EObject current=null] : iv_ruleExactMultiplicity= ruleExactMultiplicity EOF ; - public final EObject entryRuleExactMultiplicity() throws RecognitionException { + // $ANTLR start "entryRuleEnumDeclaration" + // InternalSolverLanguageParser.g:4044:1: entryRuleEnumDeclaration returns [EObject current=null] : iv_ruleEnumDeclaration= ruleEnumDeclaration EOF ; + public final EObject entryRuleEnumDeclaration() throws RecognitionException { EObject current = null; - EObject iv_ruleExactMultiplicity = null; + EObject iv_ruleEnumDeclaration = null; try { - // InternalSolverLanguageParser.g:3511:58: (iv_ruleExactMultiplicity= ruleExactMultiplicity EOF ) - // InternalSolverLanguageParser.g:3512:2: iv_ruleExactMultiplicity= ruleExactMultiplicity EOF + // InternalSolverLanguageParser.g:4044:56: (iv_ruleEnumDeclaration= ruleEnumDeclaration EOF ) + // InternalSolverLanguageParser.g:4045:2: iv_ruleEnumDeclaration= ruleEnumDeclaration EOF { - newCompositeNode(grammarAccess.getExactMultiplicityRule()); + newCompositeNode(grammarAccess.getEnumDeclarationRule()); pushFollow(FOLLOW_1); - iv_ruleExactMultiplicity=ruleExactMultiplicity(); + iv_ruleEnumDeclaration=ruleEnumDeclaration(); state._fsp--; - current =iv_ruleExactMultiplicity; + current =iv_ruleEnumDeclaration; match(input,EOF,FOLLOW_2); } @@ -8970,57 +10363,58 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } return current; } - // $ANTLR end "entryRuleExactMultiplicity" + // $ANTLR end "entryRuleEnumDeclaration" - // $ANTLR start "ruleExactMultiplicity" - // InternalSolverLanguageParser.g:3518:1: ruleExactMultiplicity returns [EObject current=null] : (otherlv_0= LeftSquareBracket ( (lv_multiplicity_1_0= ruleUpperMultiplicty ) ) otherlv_2= RightSquareBracket ) ; - public final EObject ruleExactMultiplicity() throws RecognitionException { + // $ANTLR start "ruleEnumDeclaration" + // InternalSolverLanguageParser.g:4051:1: ruleEnumDeclaration returns [EObject current=null] : (otherlv_0= Enum ( (lv_name_1_0= RULE_ID ) ) ( (otherlv_2= LeftCurlyBracket ( ( (lv_literals_3_0= ruleEnumLiteral ) ) ( (otherlv_4= Comma )? ( (lv_literals_5_0= ruleEnumLiteral ) ) )* )? otherlv_6= RightCurlyBracket ) | this_FULL_STOP_7= RULE_FULL_STOP ) ) ; + public final EObject ruleEnumDeclaration() throws RecognitionException { EObject current = null; Token otherlv_0=null; + Token lv_name_1_0=null; Token otherlv_2=null; - AntlrDatatypeRuleToken lv_multiplicity_1_0 = null; + Token otherlv_4=null; + Token otherlv_6=null; + Token this_FULL_STOP_7=null; + EObject lv_literals_3_0 = null; + + EObject lv_literals_5_0 = null; enterRule(); try { - // InternalSolverLanguageParser.g:3524:2: ( (otherlv_0= LeftSquareBracket ( (lv_multiplicity_1_0= ruleUpperMultiplicty ) ) otherlv_2= RightSquareBracket ) ) - // InternalSolverLanguageParser.g:3525:2: (otherlv_0= LeftSquareBracket ( (lv_multiplicity_1_0= ruleUpperMultiplicty ) ) otherlv_2= RightSquareBracket ) + // InternalSolverLanguageParser.g:4057:2: ( (otherlv_0= Enum ( (lv_name_1_0= RULE_ID ) ) ( (otherlv_2= LeftCurlyBracket ( ( (lv_literals_3_0= ruleEnumLiteral ) ) ( (otherlv_4= Comma )? ( (lv_literals_5_0= ruleEnumLiteral ) ) )* )? otherlv_6= RightCurlyBracket ) | this_FULL_STOP_7= RULE_FULL_STOP ) ) ) + // InternalSolverLanguageParser.g:4058:2: (otherlv_0= Enum ( (lv_name_1_0= RULE_ID ) ) ( (otherlv_2= LeftCurlyBracket ( ( (lv_literals_3_0= ruleEnumLiteral ) ) ( (otherlv_4= Comma )? ( (lv_literals_5_0= ruleEnumLiteral ) ) )* )? otherlv_6= RightCurlyBracket ) | this_FULL_STOP_7= RULE_FULL_STOP ) ) { - // InternalSolverLanguageParser.g:3525:2: (otherlv_0= LeftSquareBracket ( (lv_multiplicity_1_0= ruleUpperMultiplicty ) ) otherlv_2= RightSquareBracket ) - // InternalSolverLanguageParser.g:3526:3: otherlv_0= LeftSquareBracket ( (lv_multiplicity_1_0= ruleUpperMultiplicty ) ) otherlv_2= RightSquareBracket + // InternalSolverLanguageParser.g:4058:2: (otherlv_0= Enum ( (lv_name_1_0= RULE_ID ) ) ( (otherlv_2= LeftCurlyBracket ( ( (lv_literals_3_0= ruleEnumLiteral ) ) ( (otherlv_4= Comma )? ( (lv_literals_5_0= ruleEnumLiteral ) ) )* )? otherlv_6= RightCurlyBracket ) | this_FULL_STOP_7= RULE_FULL_STOP ) ) + // InternalSolverLanguageParser.g:4059:3: otherlv_0= Enum ( (lv_name_1_0= RULE_ID ) ) ( (otherlv_2= LeftCurlyBracket ( ( (lv_literals_3_0= ruleEnumLiteral ) ) ( (otherlv_4= Comma )? ( (lv_literals_5_0= ruleEnumLiteral ) ) )* )? otherlv_6= RightCurlyBracket ) | this_FULL_STOP_7= RULE_FULL_STOP ) { - otherlv_0=(Token)match(input,LeftSquareBracket,FOLLOW_52); + otherlv_0=(Token)match(input,Enum,FOLLOW_28); - newLeafNode(otherlv_0, grammarAccess.getExactMultiplicityAccess().getLeftSquareBracketKeyword_0()); + newLeafNode(otherlv_0, grammarAccess.getEnumDeclarationAccess().getEnumKeyword_0()); - // InternalSolverLanguageParser.g:3530:3: ( (lv_multiplicity_1_0= ruleUpperMultiplicty ) ) - // InternalSolverLanguageParser.g:3531:4: (lv_multiplicity_1_0= ruleUpperMultiplicty ) + // InternalSolverLanguageParser.g:4063:3: ( (lv_name_1_0= RULE_ID ) ) + // InternalSolverLanguageParser.g:4064:4: (lv_name_1_0= RULE_ID ) { - // InternalSolverLanguageParser.g:3531:4: (lv_multiplicity_1_0= ruleUpperMultiplicty ) - // InternalSolverLanguageParser.g:3532:5: lv_multiplicity_1_0= ruleUpperMultiplicty + // InternalSolverLanguageParser.g:4064:4: (lv_name_1_0= RULE_ID ) + // InternalSolverLanguageParser.g:4065:5: lv_name_1_0= RULE_ID { + lv_name_1_0=(Token)match(input,RULE_ID,FOLLOW_58); - newCompositeNode(grammarAccess.getExactMultiplicityAccess().getMultiplicityUpperMultiplictyParserRuleCall_1_0()); + newLeafNode(lv_name_1_0, grammarAccess.getEnumDeclarationAccess().getNameIDTerminalRuleCall_1_0()); - pushFollow(FOLLOW_45); - lv_multiplicity_1_0=ruleUpperMultiplicty(); - - state._fsp--; - if (current==null) { - current = createModelElementForParent(grammarAccess.getExactMultiplicityRule()); + current = createModelElement(grammarAccess.getEnumDeclarationRule()); } - set( + setWithLastConsumed( current, - "multiplicity", - lv_multiplicity_1_0, - "org.eclipse.viatra.solver.language.SolverLanguage.UpperMultiplicty"); - afterParserOrEnumRuleCall(); + "name", + lv_name_1_0, + "org.eclipse.xtext.common.Terminals.ID"); } @@ -9028,10 +10422,180 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } - otherlv_2=(Token)match(input,RightSquareBracket,FOLLOW_2); + // InternalSolverLanguageParser.g:4081:3: ( (otherlv_2= LeftCurlyBracket ( ( (lv_literals_3_0= ruleEnumLiteral ) ) ( (otherlv_4= Comma )? ( (lv_literals_5_0= ruleEnumLiteral ) ) )* )? otherlv_6= RightCurlyBracket ) | this_FULL_STOP_7= RULE_FULL_STOP ) + int alt52=2; + int LA52_0 = input.LA(1); + + if ( (LA52_0==LeftCurlyBracket) ) { + alt52=1; + } + else if ( (LA52_0==RULE_FULL_STOP) ) { + alt52=2; + } + else { + NoViableAltException nvae = + new NoViableAltException("", 52, 0, input); + + throw nvae; + } + switch (alt52) { + case 1 : + // InternalSolverLanguageParser.g:4082:4: (otherlv_2= LeftCurlyBracket ( ( (lv_literals_3_0= ruleEnumLiteral ) ) ( (otherlv_4= Comma )? ( (lv_literals_5_0= ruleEnumLiteral ) ) )* )? otherlv_6= RightCurlyBracket ) + { + // InternalSolverLanguageParser.g:4082:4: (otherlv_2= LeftCurlyBracket ( ( (lv_literals_3_0= ruleEnumLiteral ) ) ( (otherlv_4= Comma )? ( (lv_literals_5_0= ruleEnumLiteral ) ) )* )? otherlv_6= RightCurlyBracket ) + // InternalSolverLanguageParser.g:4083:5: otherlv_2= LeftCurlyBracket ( ( (lv_literals_3_0= ruleEnumLiteral ) ) ( (otherlv_4= Comma )? ( (lv_literals_5_0= ruleEnumLiteral ) ) )* )? otherlv_6= RightCurlyBracket + { + otherlv_2=(Token)match(input,LeftCurlyBracket,FOLLOW_59); + + newLeafNode(otherlv_2, grammarAccess.getEnumDeclarationAccess().getLeftCurlyBracketKeyword_2_0_0()); + + // InternalSolverLanguageParser.g:4087:5: ( ( (lv_literals_3_0= ruleEnumLiteral ) ) ( (otherlv_4= Comma )? ( (lv_literals_5_0= ruleEnumLiteral ) ) )* )? + int alt51=2; + int LA51_0 = input.LA(1); + + if ( (LA51_0==RULE_ID) ) { + alt51=1; + } + switch (alt51) { + case 1 : + // InternalSolverLanguageParser.g:4088:6: ( (lv_literals_3_0= ruleEnumLiteral ) ) ( (otherlv_4= Comma )? ( (lv_literals_5_0= ruleEnumLiteral ) ) )* + { + // InternalSolverLanguageParser.g:4088:6: ( (lv_literals_3_0= ruleEnumLiteral ) ) + // InternalSolverLanguageParser.g:4089:7: (lv_literals_3_0= ruleEnumLiteral ) + { + // InternalSolverLanguageParser.g:4089:7: (lv_literals_3_0= ruleEnumLiteral ) + // InternalSolverLanguageParser.g:4090:8: lv_literals_3_0= ruleEnumLiteral + { + + newCompositeNode(grammarAccess.getEnumDeclarationAccess().getLiteralsEnumLiteralParserRuleCall_2_0_1_0_0()); + + pushFollow(FOLLOW_60); + lv_literals_3_0=ruleEnumLiteral(); + + state._fsp--; + + + if (current==null) { + current = createModelElementForParent(grammarAccess.getEnumDeclarationRule()); + } + add( + current, + "literals", + lv_literals_3_0, + "org.eclipse.viatra.solver.language.SolverLanguage.EnumLiteral"); + afterParserOrEnumRuleCall(); + + + } + + + } + + // InternalSolverLanguageParser.g:4107:6: ( (otherlv_4= Comma )? ( (lv_literals_5_0= ruleEnumLiteral ) ) )* + loop50: + do { + int alt50=2; + int LA50_0 = input.LA(1); + + if ( (LA50_0==Comma||LA50_0==RULE_ID) ) { + alt50=1; + } + + + switch (alt50) { + case 1 : + // InternalSolverLanguageParser.g:4108:7: (otherlv_4= Comma )? ( (lv_literals_5_0= ruleEnumLiteral ) ) + { + // InternalSolverLanguageParser.g:4108:7: (otherlv_4= Comma )? + int alt49=2; + int LA49_0 = input.LA(1); + + if ( (LA49_0==Comma) ) { + alt49=1; + } + switch (alt49) { + case 1 : + // InternalSolverLanguageParser.g:4109:8: otherlv_4= Comma + { + otherlv_4=(Token)match(input,Comma,FOLLOW_28); + + newLeafNode(otherlv_4, grammarAccess.getEnumDeclarationAccess().getCommaKeyword_2_0_1_1_0()); + + + } + break; + + } + + // InternalSolverLanguageParser.g:4114:7: ( (lv_literals_5_0= ruleEnumLiteral ) ) + // InternalSolverLanguageParser.g:4115:8: (lv_literals_5_0= ruleEnumLiteral ) + { + // InternalSolverLanguageParser.g:4115:8: (lv_literals_5_0= ruleEnumLiteral ) + // InternalSolverLanguageParser.g:4116:9: lv_literals_5_0= ruleEnumLiteral + { + + newCompositeNode(grammarAccess.getEnumDeclarationAccess().getLiteralsEnumLiteralParserRuleCall_2_0_1_1_1_0()); + + pushFollow(FOLLOW_60); + lv_literals_5_0=ruleEnumLiteral(); + + state._fsp--; + + + if (current==null) { + current = createModelElementForParent(grammarAccess.getEnumDeclarationRule()); + } + add( + current, + "literals", + lv_literals_5_0, + "org.eclipse.viatra.solver.language.SolverLanguage.EnumLiteral"); + afterParserOrEnumRuleCall(); + + + } + + + } + + + } + break; + + default : + break loop50; + } + } while (true); + + + } + break; + + } + + otherlv_6=(Token)match(input,RightCurlyBracket,FOLLOW_2); + + newLeafNode(otherlv_6, grammarAccess.getEnumDeclarationAccess().getRightCurlyBracketKeyword_2_0_2()); + + + } + + + } + break; + case 2 : + // InternalSolverLanguageParser.g:4141:4: this_FULL_STOP_7= RULE_FULL_STOP + { + this_FULL_STOP_7=(Token)match(input,RULE_FULL_STOP,FOLLOW_2); + + newLeafNode(this_FULL_STOP_7, grammarAccess.getEnumDeclarationAccess().getFULL_STOPTerminalRuleCall_2_1()); + + + } + break; + + } - newLeafNode(otherlv_2, grammarAccess.getExactMultiplicityAccess().getRightSquareBracketKeyword_2()); - } @@ -9051,28 +10615,28 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } return current; } - // $ANTLR end "ruleExactMultiplicity" + // $ANTLR end "ruleEnumDeclaration" - // $ANTLR start "entryRuleBoundedMultiplicity" - // InternalSolverLanguageParser.g:3557:1: entryRuleBoundedMultiplicity returns [EObject current=null] : iv_ruleBoundedMultiplicity= ruleBoundedMultiplicity EOF ; - public final EObject entryRuleBoundedMultiplicity() throws RecognitionException { + // $ANTLR start "entryRuleEnumLiteral" + // InternalSolverLanguageParser.g:4150:1: entryRuleEnumLiteral returns [EObject current=null] : iv_ruleEnumLiteral= ruleEnumLiteral EOF ; + public final EObject entryRuleEnumLiteral() throws RecognitionException { EObject current = null; - EObject iv_ruleBoundedMultiplicity = null; + EObject iv_ruleEnumLiteral = null; try { - // InternalSolverLanguageParser.g:3557:60: (iv_ruleBoundedMultiplicity= ruleBoundedMultiplicity EOF ) - // InternalSolverLanguageParser.g:3558:2: iv_ruleBoundedMultiplicity= ruleBoundedMultiplicity EOF + // InternalSolverLanguageParser.g:4150:52: (iv_ruleEnumLiteral= ruleEnumLiteral EOF ) + // InternalSolverLanguageParser.g:4151:2: iv_ruleEnumLiteral= ruleEnumLiteral EOF { - newCompositeNode(grammarAccess.getBoundedMultiplicityRule()); + newCompositeNode(grammarAccess.getEnumLiteralRule()); pushFollow(FOLLOW_1); - iv_ruleBoundedMultiplicity=ruleBoundedMultiplicity(); + iv_ruleEnumLiteral=ruleEnumLiteral(); state._fsp--; - current =iv_ruleBoundedMultiplicity; + current =iv_ruleEnumLiteral; match(input,EOF,FOLLOW_2); } @@ -9087,100 +10651,46 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } return current; } - // $ANTLR end "entryRuleBoundedMultiplicity" + // $ANTLR end "entryRuleEnumLiteral" - // $ANTLR start "ruleBoundedMultiplicity" - // InternalSolverLanguageParser.g:3564:1: ruleBoundedMultiplicity returns [EObject current=null] : (otherlv_0= LeftSquareBracket ( (lv_lowerBound_1_0= RULE_INT ) ) otherlv_2= FullStopFullStop ( (lv_upperBound_3_0= ruleUpperMultiplicty ) ) otherlv_4= RightSquareBracket ) ; - public final EObject ruleBoundedMultiplicity() throws RecognitionException { + // $ANTLR start "ruleEnumLiteral" + // InternalSolverLanguageParser.g:4157:1: ruleEnumLiteral returns [EObject current=null] : ( (lv_name_0_0= RULE_ID ) ) ; + public final EObject ruleEnumLiteral() throws RecognitionException { EObject current = null; - Token otherlv_0=null; - Token lv_lowerBound_1_0=null; - Token otherlv_2=null; - Token otherlv_4=null; - AntlrDatatypeRuleToken lv_upperBound_3_0 = null; - + Token lv_name_0_0=null; enterRule(); try { - // InternalSolverLanguageParser.g:3570:2: ( (otherlv_0= LeftSquareBracket ( (lv_lowerBound_1_0= RULE_INT ) ) otherlv_2= FullStopFullStop ( (lv_upperBound_3_0= ruleUpperMultiplicty ) ) otherlv_4= RightSquareBracket ) ) - // InternalSolverLanguageParser.g:3571:2: (otherlv_0= LeftSquareBracket ( (lv_lowerBound_1_0= RULE_INT ) ) otherlv_2= FullStopFullStop ( (lv_upperBound_3_0= ruleUpperMultiplicty ) ) otherlv_4= RightSquareBracket ) - { - // InternalSolverLanguageParser.g:3571:2: (otherlv_0= LeftSquareBracket ( (lv_lowerBound_1_0= RULE_INT ) ) otherlv_2= FullStopFullStop ( (lv_upperBound_3_0= ruleUpperMultiplicty ) ) otherlv_4= RightSquareBracket ) - // InternalSolverLanguageParser.g:3572:3: otherlv_0= LeftSquareBracket ( (lv_lowerBound_1_0= RULE_INT ) ) otherlv_2= FullStopFullStop ( (lv_upperBound_3_0= ruleUpperMultiplicty ) ) otherlv_4= RightSquareBracket - { - otherlv_0=(Token)match(input,LeftSquareBracket,FOLLOW_53); - - newLeafNode(otherlv_0, grammarAccess.getBoundedMultiplicityAccess().getLeftSquareBracketKeyword_0()); - - // InternalSolverLanguageParser.g:3576:3: ( (lv_lowerBound_1_0= RULE_INT ) ) - // InternalSolverLanguageParser.g:3577:4: (lv_lowerBound_1_0= RULE_INT ) + // InternalSolverLanguageParser.g:4163:2: ( ( (lv_name_0_0= RULE_ID ) ) ) + // InternalSolverLanguageParser.g:4164:2: ( (lv_name_0_0= RULE_ID ) ) { - // InternalSolverLanguageParser.g:3577:4: (lv_lowerBound_1_0= RULE_INT ) - // InternalSolverLanguageParser.g:3578:5: lv_lowerBound_1_0= RULE_INT - { - lv_lowerBound_1_0=(Token)match(input,RULE_INT,FOLLOW_44); - - newLeafNode(lv_lowerBound_1_0, grammarAccess.getBoundedMultiplicityAccess().getLowerBoundINTTerminalRuleCall_1_0()); - - - if (current==null) { - current = createModelElement(grammarAccess.getBoundedMultiplicityRule()); - } - setWithLastConsumed( - current, - "lowerBound", - lv_lowerBound_1_0, - "org.eclipse.xtext.common.Terminals.INT"); - - - } - - - } - - otherlv_2=(Token)match(input,FullStopFullStop,FOLLOW_52); - - newLeafNode(otherlv_2, grammarAccess.getBoundedMultiplicityAccess().getFullStopFullStopKeyword_2()); - - // InternalSolverLanguageParser.g:3598:3: ( (lv_upperBound_3_0= ruleUpperMultiplicty ) ) - // InternalSolverLanguageParser.g:3599:4: (lv_upperBound_3_0= ruleUpperMultiplicty ) + // InternalSolverLanguageParser.g:4164:2: ( (lv_name_0_0= RULE_ID ) ) + // InternalSolverLanguageParser.g:4165:3: (lv_name_0_0= RULE_ID ) { - // InternalSolverLanguageParser.g:3599:4: (lv_upperBound_3_0= ruleUpperMultiplicty ) - // InternalSolverLanguageParser.g:3600:5: lv_upperBound_3_0= ruleUpperMultiplicty + // InternalSolverLanguageParser.g:4165:3: (lv_name_0_0= RULE_ID ) + // InternalSolverLanguageParser.g:4166:4: lv_name_0_0= RULE_ID { + lv_name_0_0=(Token)match(input,RULE_ID,FOLLOW_2); - newCompositeNode(grammarAccess.getBoundedMultiplicityAccess().getUpperBoundUpperMultiplictyParserRuleCall_3_0()); - - pushFollow(FOLLOW_45); - lv_upperBound_3_0=ruleUpperMultiplicty(); - - state._fsp--; - - - if (current==null) { - current = createModelElementForParent(grammarAccess.getBoundedMultiplicityRule()); - } - set( - current, - "upperBound", - lv_upperBound_3_0, - "org.eclipse.viatra.solver.language.SolverLanguage.UpperMultiplicty"); - afterParserOrEnumRuleCall(); - - - } + newLeafNode(lv_name_0_0, grammarAccess.getEnumLiteralAccess().getNameIDTerminalRuleCall_0()); + + if (current==null) { + current = createModelElement(grammarAccess.getEnumLiteralRule()); + } + setWithLastConsumed( + current, + "name", + lv_name_0_0, + "org.eclipse.xtext.common.Terminals.ID"); + } - otherlv_4=(Token)match(input,RightSquareBracket,FOLLOW_2); - - newLeafNode(otherlv_4, grammarAccess.getBoundedMultiplicityAccess().getRightSquareBracketKeyword_4()); - } @@ -9200,28 +10710,28 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } return current; } - // $ANTLR end "ruleBoundedMultiplicity" + // $ANTLR end "ruleEnumLiteral" - // $ANTLR start "entryRuleScopeDefinition" - // InternalSolverLanguageParser.g:3625:1: entryRuleScopeDefinition returns [EObject current=null] : iv_ruleScopeDefinition= ruleScopeDefinition EOF ; - public final EObject entryRuleScopeDefinition() throws RecognitionException { + // $ANTLR start "entryRuleScopeDeclaration" + // InternalSolverLanguageParser.g:4185:1: entryRuleScopeDeclaration returns [EObject current=null] : iv_ruleScopeDeclaration= ruleScopeDeclaration EOF ; + public final EObject entryRuleScopeDeclaration() throws RecognitionException { EObject current = null; - EObject iv_ruleScopeDefinition = null; + EObject iv_ruleScopeDeclaration = null; try { - // InternalSolverLanguageParser.g:3625:56: (iv_ruleScopeDefinition= ruleScopeDefinition EOF ) - // InternalSolverLanguageParser.g:3626:2: iv_ruleScopeDefinition= ruleScopeDefinition EOF + // InternalSolverLanguageParser.g:4185:57: (iv_ruleScopeDeclaration= ruleScopeDeclaration EOF ) + // InternalSolverLanguageParser.g:4186:2: iv_ruleScopeDeclaration= ruleScopeDeclaration EOF { - newCompositeNode(grammarAccess.getScopeDefinitionRule()); + newCompositeNode(grammarAccess.getScopeDeclarationRule()); pushFollow(FOLLOW_1); - iv_ruleScopeDefinition=ruleScopeDefinition(); + iv_ruleScopeDeclaration=ruleScopeDeclaration(); state._fsp--; - current =iv_ruleScopeDefinition; + current =iv_ruleScopeDeclaration; match(input,EOF,FOLLOW_2); } @@ -9236,81 +10746,81 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } return current; } - // $ANTLR end "entryRuleScopeDefinition" + // $ANTLR end "entryRuleScopeDeclaration" - // $ANTLR start "ruleScopeDefinition" - // InternalSolverLanguageParser.g:3632:1: ruleScopeDefinition returns [EObject current=null] : (this_ExactScopeDefinition_0= ruleExactScopeDefinition | this_BoundedScopeDefinition_1= ruleBoundedScopeDefinition | this_LowerBoundedScopeDefinition_2= ruleLowerBoundedScopeDefinition ) ; - public final EObject ruleScopeDefinition() throws RecognitionException { + // $ANTLR start "ruleScopeDeclaration" + // InternalSolverLanguageParser.g:4192:1: ruleScopeDeclaration returns [EObject current=null] : (this_ExactScope_0= ruleExactScope | this_BoundedScope_1= ruleBoundedScope | this_LowerBoundedScope_2= ruleLowerBoundedScope ) ; + public final EObject ruleScopeDeclaration() throws RecognitionException { EObject current = null; - EObject this_ExactScopeDefinition_0 = null; + EObject this_ExactScope_0 = null; - EObject this_BoundedScopeDefinition_1 = null; + EObject this_BoundedScope_1 = null; - EObject this_LowerBoundedScopeDefinition_2 = null; + EObject this_LowerBoundedScope_2 = null; enterRule(); try { - // InternalSolverLanguageParser.g:3638:2: ( (this_ExactScopeDefinition_0= ruleExactScopeDefinition | this_BoundedScopeDefinition_1= ruleBoundedScopeDefinition | this_LowerBoundedScopeDefinition_2= ruleLowerBoundedScopeDefinition ) ) - // InternalSolverLanguageParser.g:3639:2: (this_ExactScopeDefinition_0= ruleExactScopeDefinition | this_BoundedScopeDefinition_1= ruleBoundedScopeDefinition | this_LowerBoundedScopeDefinition_2= ruleLowerBoundedScopeDefinition ) + // InternalSolverLanguageParser.g:4198:2: ( (this_ExactScope_0= ruleExactScope | this_BoundedScope_1= ruleBoundedScope | this_LowerBoundedScope_2= ruleLowerBoundedScope ) ) + // InternalSolverLanguageParser.g:4199:2: (this_ExactScope_0= ruleExactScope | this_BoundedScope_1= ruleBoundedScope | this_LowerBoundedScope_2= ruleLowerBoundedScope ) { - // InternalSolverLanguageParser.g:3639:2: (this_ExactScopeDefinition_0= ruleExactScopeDefinition | this_BoundedScopeDefinition_1= ruleBoundedScopeDefinition | this_LowerBoundedScopeDefinition_2= ruleLowerBoundedScopeDefinition ) - int alt44=3; - alt44 = dfa44.predict(input); - switch (alt44) { + // InternalSolverLanguageParser.g:4199:2: (this_ExactScope_0= ruleExactScope | this_BoundedScope_1= ruleBoundedScope | this_LowerBoundedScope_2= ruleLowerBoundedScope ) + int alt53=3; + alt53 = dfa53.predict(input); + switch (alt53) { case 1 : - // InternalSolverLanguageParser.g:3640:3: this_ExactScopeDefinition_0= ruleExactScopeDefinition + // InternalSolverLanguageParser.g:4200:3: this_ExactScope_0= ruleExactScope { - newCompositeNode(grammarAccess.getScopeDefinitionAccess().getExactScopeDefinitionParserRuleCall_0()); + newCompositeNode(grammarAccess.getScopeDeclarationAccess().getExactScopeParserRuleCall_0()); pushFollow(FOLLOW_2); - this_ExactScopeDefinition_0=ruleExactScopeDefinition(); + this_ExactScope_0=ruleExactScope(); state._fsp--; - current = this_ExactScopeDefinition_0; + current = this_ExactScope_0; afterParserOrEnumRuleCall(); } break; case 2 : - // InternalSolverLanguageParser.g:3649:3: this_BoundedScopeDefinition_1= ruleBoundedScopeDefinition + // InternalSolverLanguageParser.g:4209:3: this_BoundedScope_1= ruleBoundedScope { - newCompositeNode(grammarAccess.getScopeDefinitionAccess().getBoundedScopeDefinitionParserRuleCall_1()); + newCompositeNode(grammarAccess.getScopeDeclarationAccess().getBoundedScopeParserRuleCall_1()); pushFollow(FOLLOW_2); - this_BoundedScopeDefinition_1=ruleBoundedScopeDefinition(); + this_BoundedScope_1=ruleBoundedScope(); state._fsp--; - current = this_BoundedScopeDefinition_1; + current = this_BoundedScope_1; afterParserOrEnumRuleCall(); } break; case 3 : - // InternalSolverLanguageParser.g:3658:3: this_LowerBoundedScopeDefinition_2= ruleLowerBoundedScopeDefinition + // InternalSolverLanguageParser.g:4218:3: this_LowerBoundedScope_2= ruleLowerBoundedScope { - newCompositeNode(grammarAccess.getScopeDefinitionAccess().getLowerBoundedScopeDefinitionParserRuleCall_2()); + newCompositeNode(grammarAccess.getScopeDeclarationAccess().getLowerBoundedScopeParserRuleCall_2()); pushFollow(FOLLOW_2); - this_LowerBoundedScopeDefinition_2=ruleLowerBoundedScopeDefinition(); + this_LowerBoundedScope_2=ruleLowerBoundedScope(); state._fsp--; - current = this_LowerBoundedScopeDefinition_2; + current = this_LowerBoundedScope_2; afterParserOrEnumRuleCall(); @@ -9335,28 +10845,28 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } return current; } - // $ANTLR end "ruleScopeDefinition" + // $ANTLR end "ruleScopeDeclaration" - // $ANTLR start "entryRuleExactScopeDefinition" - // InternalSolverLanguageParser.g:3670:1: entryRuleExactScopeDefinition returns [EObject current=null] : iv_ruleExactScopeDefinition= ruleExactScopeDefinition EOF ; - public final EObject entryRuleExactScopeDefinition() throws RecognitionException { + // $ANTLR start "entryRuleExactScope" + // InternalSolverLanguageParser.g:4230:1: entryRuleExactScope returns [EObject current=null] : iv_ruleExactScope= ruleExactScope EOF ; + public final EObject entryRuleExactScope() throws RecognitionException { EObject current = null; - EObject iv_ruleExactScopeDefinition = null; + EObject iv_ruleExactScope = null; try { - // InternalSolverLanguageParser.g:3670:61: (iv_ruleExactScopeDefinition= ruleExactScopeDefinition EOF ) - // InternalSolverLanguageParser.g:3671:2: iv_ruleExactScopeDefinition= ruleExactScopeDefinition EOF + // InternalSolverLanguageParser.g:4230:51: (iv_ruleExactScope= ruleExactScope EOF ) + // InternalSolverLanguageParser.g:4231:2: iv_ruleExactScope= ruleExactScope EOF { - newCompositeNode(grammarAccess.getExactScopeDefinitionRule()); + newCompositeNode(grammarAccess.getExactScopeRule()); pushFollow(FOLLOW_1); - iv_ruleExactScopeDefinition=ruleExactScopeDefinition(); + iv_ruleExactScope=ruleExactScope(); state._fsp--; - current =iv_ruleExactScopeDefinition; + current =iv_ruleExactScope; match(input,EOF,FOLLOW_2); } @@ -9371,47 +10881,48 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } return current; } - // $ANTLR end "entryRuleExactScopeDefinition" + // $ANTLR end "entryRuleExactScope" - // $ANTLR start "ruleExactScopeDefinition" - // InternalSolverLanguageParser.g:3677:1: ruleExactScopeDefinition returns [EObject current=null] : (otherlv_0= Scope ( ( ruleQualifiedName ) ) otherlv_2= EqualsSignEqualsSign ( (lv_exactScope_3_0= RULE_INT ) ) ) ; - public final EObject ruleExactScopeDefinition() throws RecognitionException { + // $ANTLR start "ruleExactScope" + // InternalSolverLanguageParser.g:4237:1: ruleExactScope returns [EObject current=null] : (otherlv_0= Scope ( ( ruleQualifiedName ) ) otherlv_2= EqualsSignEqualsSign ( (lv_size_3_0= RULE_INT ) ) this_FULL_STOP_4= RULE_FULL_STOP ) ; + public final EObject ruleExactScope() throws RecognitionException { EObject current = null; Token otherlv_0=null; Token otherlv_2=null; - Token lv_exactScope_3_0=null; + Token lv_size_3_0=null; + Token this_FULL_STOP_4=null; enterRule(); try { - // InternalSolverLanguageParser.g:3683:2: ( (otherlv_0= Scope ( ( ruleQualifiedName ) ) otherlv_2= EqualsSignEqualsSign ( (lv_exactScope_3_0= RULE_INT ) ) ) ) - // InternalSolverLanguageParser.g:3684:2: (otherlv_0= Scope ( ( ruleQualifiedName ) ) otherlv_2= EqualsSignEqualsSign ( (lv_exactScope_3_0= RULE_INT ) ) ) + // InternalSolverLanguageParser.g:4243:2: ( (otherlv_0= Scope ( ( ruleQualifiedName ) ) otherlv_2= EqualsSignEqualsSign ( (lv_size_3_0= RULE_INT ) ) this_FULL_STOP_4= RULE_FULL_STOP ) ) + // InternalSolverLanguageParser.g:4244:2: (otherlv_0= Scope ( ( ruleQualifiedName ) ) otherlv_2= EqualsSignEqualsSign ( (lv_size_3_0= RULE_INT ) ) this_FULL_STOP_4= RULE_FULL_STOP ) { - // InternalSolverLanguageParser.g:3684:2: (otherlv_0= Scope ( ( ruleQualifiedName ) ) otherlv_2= EqualsSignEqualsSign ( (lv_exactScope_3_0= RULE_INT ) ) ) - // InternalSolverLanguageParser.g:3685:3: otherlv_0= Scope ( ( ruleQualifiedName ) ) otherlv_2= EqualsSignEqualsSign ( (lv_exactScope_3_0= RULE_INT ) ) + // InternalSolverLanguageParser.g:4244:2: (otherlv_0= Scope ( ( ruleQualifiedName ) ) otherlv_2= EqualsSignEqualsSign ( (lv_size_3_0= RULE_INT ) ) this_FULL_STOP_4= RULE_FULL_STOP ) + // InternalSolverLanguageParser.g:4245:3: otherlv_0= Scope ( ( ruleQualifiedName ) ) otherlv_2= EqualsSignEqualsSign ( (lv_size_3_0= RULE_INT ) ) this_FULL_STOP_4= RULE_FULL_STOP { - otherlv_0=(Token)match(input,Scope,FOLLOW_8); + otherlv_0=(Token)match(input,Scope,FOLLOW_3); - newLeafNode(otherlv_0, grammarAccess.getExactScopeDefinitionAccess().getScopeKeyword_0()); + newLeafNode(otherlv_0, grammarAccess.getExactScopeAccess().getScopeKeyword_0()); - // InternalSolverLanguageParser.g:3689:3: ( ( ruleQualifiedName ) ) - // InternalSolverLanguageParser.g:3690:4: ( ruleQualifiedName ) + // InternalSolverLanguageParser.g:4249:3: ( ( ruleQualifiedName ) ) + // InternalSolverLanguageParser.g:4250:4: ( ruleQualifiedName ) { - // InternalSolverLanguageParser.g:3690:4: ( ruleQualifiedName ) - // InternalSolverLanguageParser.g:3691:5: ruleQualifiedName + // InternalSolverLanguageParser.g:4250:4: ( ruleQualifiedName ) + // InternalSolverLanguageParser.g:4251:5: ruleQualifiedName { if (current==null) { - current = createModelElement(grammarAccess.getExactScopeDefinitionRule()); + current = createModelElement(grammarAccess.getExactScopeRule()); } - newCompositeNode(grammarAccess.getExactScopeDefinitionAccess().getTypeNamedElementCrossReference_1_0()); + newCompositeNode(grammarAccess.getExactScopeAccess().getTypeSymbolCrossReference_1_0()); - pushFollow(FOLLOW_54); + pushFollow(FOLLOW_61); ruleQualifiedName(); state._fsp--; @@ -9425,28 +10936,28 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } - otherlv_2=(Token)match(input,EqualsSignEqualsSign,FOLLOW_53); + otherlv_2=(Token)match(input,EqualsSignEqualsSign,FOLLOW_57); - newLeafNode(otherlv_2, grammarAccess.getExactScopeDefinitionAccess().getEqualsSignEqualsSignKeyword_2()); + newLeafNode(otherlv_2, grammarAccess.getExactScopeAccess().getEqualsSignEqualsSignKeyword_2()); - // InternalSolverLanguageParser.g:3709:3: ( (lv_exactScope_3_0= RULE_INT ) ) - // InternalSolverLanguageParser.g:3710:4: (lv_exactScope_3_0= RULE_INT ) + // InternalSolverLanguageParser.g:4269:3: ( (lv_size_3_0= RULE_INT ) ) + // InternalSolverLanguageParser.g:4270:4: (lv_size_3_0= RULE_INT ) { - // InternalSolverLanguageParser.g:3710:4: (lv_exactScope_3_0= RULE_INT ) - // InternalSolverLanguageParser.g:3711:5: lv_exactScope_3_0= RULE_INT + // InternalSolverLanguageParser.g:4270:4: (lv_size_3_0= RULE_INT ) + // InternalSolverLanguageParser.g:4271:5: lv_size_3_0= RULE_INT { - lv_exactScope_3_0=(Token)match(input,RULE_INT,FOLLOW_2); + lv_size_3_0=(Token)match(input,RULE_INT,FOLLOW_4); - newLeafNode(lv_exactScope_3_0, grammarAccess.getExactScopeDefinitionAccess().getExactScopeINTTerminalRuleCall_3_0()); + newLeafNode(lv_size_3_0, grammarAccess.getExactScopeAccess().getSizeINTTerminalRuleCall_3_0()); if (current==null) { - current = createModelElement(grammarAccess.getExactScopeDefinitionRule()); + current = createModelElement(grammarAccess.getExactScopeRule()); } setWithLastConsumed( current, - "exactScope", - lv_exactScope_3_0, + "size", + lv_size_3_0, "org.eclipse.xtext.common.Terminals.INT"); @@ -9455,6 +10966,10 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } + this_FULL_STOP_4=(Token)match(input,RULE_FULL_STOP,FOLLOW_2); + + newLeafNode(this_FULL_STOP_4, grammarAccess.getExactScopeAccess().getFULL_STOPTerminalRuleCall_4()); + } @@ -9474,28 +10989,28 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } return current; } - // $ANTLR end "ruleExactScopeDefinition" + // $ANTLR end "ruleExactScope" - // $ANTLR start "entryRuleBoundedScopeDefinition" - // InternalSolverLanguageParser.g:3731:1: entryRuleBoundedScopeDefinition returns [EObject current=null] : iv_ruleBoundedScopeDefinition= ruleBoundedScopeDefinition EOF ; - public final EObject entryRuleBoundedScopeDefinition() throws RecognitionException { + // $ANTLR start "entryRuleBoundedScope" + // InternalSolverLanguageParser.g:4295:1: entryRuleBoundedScope returns [EObject current=null] : iv_ruleBoundedScope= ruleBoundedScope EOF ; + public final EObject entryRuleBoundedScope() throws RecognitionException { EObject current = null; - EObject iv_ruleBoundedScopeDefinition = null; + EObject iv_ruleBoundedScope = null; try { - // InternalSolverLanguageParser.g:3731:63: (iv_ruleBoundedScopeDefinition= ruleBoundedScopeDefinition EOF ) - // InternalSolverLanguageParser.g:3732:2: iv_ruleBoundedScopeDefinition= ruleBoundedScopeDefinition EOF + // InternalSolverLanguageParser.g:4295:53: (iv_ruleBoundedScope= ruleBoundedScope EOF ) + // InternalSolverLanguageParser.g:4296:2: iv_ruleBoundedScope= ruleBoundedScope EOF { - newCompositeNode(grammarAccess.getBoundedScopeDefinitionRule()); + newCompositeNode(grammarAccess.getBoundedScopeRule()); pushFollow(FOLLOW_1); - iv_ruleBoundedScopeDefinition=ruleBoundedScopeDefinition(); + iv_ruleBoundedScope=ruleBoundedScope(); state._fsp--; - current =iv_ruleBoundedScopeDefinition; + current =iv_ruleBoundedScope; match(input,EOF,FOLLOW_2); } @@ -9510,12 +11025,12 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } return current; } - // $ANTLR end "entryRuleBoundedScopeDefinition" + // $ANTLR end "entryRuleBoundedScope" - // $ANTLR start "ruleBoundedScopeDefinition" - // InternalSolverLanguageParser.g:3738:1: ruleBoundedScopeDefinition returns [EObject current=null] : (otherlv_0= Scope ( ( ( ( (lv_lowerBound_1_0= RULE_INT ) ) otherlv_2= LessThanSignEqualsSign )? ( ( ruleQualifiedName ) ) otherlv_4= LessThanSignEqualsSign ( (lv_upperBound_5_0= RULE_INT ) ) ) | ( ( (lv_upperBound_6_0= RULE_INT ) ) otherlv_7= GreaterThanSignEqualsSign ( ( ruleQualifiedName ) ) (otherlv_9= GreaterThanSignEqualsSign ( (lv_lowerBound_10_0= RULE_INT ) ) )? ) ) ) ; - public final EObject ruleBoundedScopeDefinition() throws RecognitionException { + // $ANTLR start "ruleBoundedScope" + // InternalSolverLanguageParser.g:4302:1: ruleBoundedScope returns [EObject current=null] : (otherlv_0= Scope ( ( ( ( (lv_lowerBound_1_0= RULE_INT ) ) otherlv_2= LessThanSignEqualsSign )? ( ( ruleQualifiedName ) ) otherlv_4= LessThanSignEqualsSign ( (lv_upperBound_5_0= RULE_INT ) ) ) | ( ( (lv_upperBound_6_0= RULE_INT ) ) otherlv_7= GreaterThanSignEqualsSign ( ( ruleQualifiedName ) ) (otherlv_9= GreaterThanSignEqualsSign ( (lv_lowerBound_10_0= RULE_INT ) ) )? ) ) this_FULL_STOP_11= RULE_FULL_STOP ) ; + public final EObject ruleBoundedScope() throws RecognitionException { EObject current = null; Token otherlv_0=null; @@ -9527,81 +11042,82 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { Token otherlv_7=null; Token otherlv_9=null; Token lv_lowerBound_10_0=null; + Token this_FULL_STOP_11=null; enterRule(); try { - // InternalSolverLanguageParser.g:3744:2: ( (otherlv_0= Scope ( ( ( ( (lv_lowerBound_1_0= RULE_INT ) ) otherlv_2= LessThanSignEqualsSign )? ( ( ruleQualifiedName ) ) otherlv_4= LessThanSignEqualsSign ( (lv_upperBound_5_0= RULE_INT ) ) ) | ( ( (lv_upperBound_6_0= RULE_INT ) ) otherlv_7= GreaterThanSignEqualsSign ( ( ruleQualifiedName ) ) (otherlv_9= GreaterThanSignEqualsSign ( (lv_lowerBound_10_0= RULE_INT ) ) )? ) ) ) ) - // InternalSolverLanguageParser.g:3745:2: (otherlv_0= Scope ( ( ( ( (lv_lowerBound_1_0= RULE_INT ) ) otherlv_2= LessThanSignEqualsSign )? ( ( ruleQualifiedName ) ) otherlv_4= LessThanSignEqualsSign ( (lv_upperBound_5_0= RULE_INT ) ) ) | ( ( (lv_upperBound_6_0= RULE_INT ) ) otherlv_7= GreaterThanSignEqualsSign ( ( ruleQualifiedName ) ) (otherlv_9= GreaterThanSignEqualsSign ( (lv_lowerBound_10_0= RULE_INT ) ) )? ) ) ) + // InternalSolverLanguageParser.g:4308:2: ( (otherlv_0= Scope ( ( ( ( (lv_lowerBound_1_0= RULE_INT ) ) otherlv_2= LessThanSignEqualsSign )? ( ( ruleQualifiedName ) ) otherlv_4= LessThanSignEqualsSign ( (lv_upperBound_5_0= RULE_INT ) ) ) | ( ( (lv_upperBound_6_0= RULE_INT ) ) otherlv_7= GreaterThanSignEqualsSign ( ( ruleQualifiedName ) ) (otherlv_9= GreaterThanSignEqualsSign ( (lv_lowerBound_10_0= RULE_INT ) ) )? ) ) this_FULL_STOP_11= RULE_FULL_STOP ) ) + // InternalSolverLanguageParser.g:4309:2: (otherlv_0= Scope ( ( ( ( (lv_lowerBound_1_0= RULE_INT ) ) otherlv_2= LessThanSignEqualsSign )? ( ( ruleQualifiedName ) ) otherlv_4= LessThanSignEqualsSign ( (lv_upperBound_5_0= RULE_INT ) ) ) | ( ( (lv_upperBound_6_0= RULE_INT ) ) otherlv_7= GreaterThanSignEqualsSign ( ( ruleQualifiedName ) ) (otherlv_9= GreaterThanSignEqualsSign ( (lv_lowerBound_10_0= RULE_INT ) ) )? ) ) this_FULL_STOP_11= RULE_FULL_STOP ) { - // InternalSolverLanguageParser.g:3745:2: (otherlv_0= Scope ( ( ( ( (lv_lowerBound_1_0= RULE_INT ) ) otherlv_2= LessThanSignEqualsSign )? ( ( ruleQualifiedName ) ) otherlv_4= LessThanSignEqualsSign ( (lv_upperBound_5_0= RULE_INT ) ) ) | ( ( (lv_upperBound_6_0= RULE_INT ) ) otherlv_7= GreaterThanSignEqualsSign ( ( ruleQualifiedName ) ) (otherlv_9= GreaterThanSignEqualsSign ( (lv_lowerBound_10_0= RULE_INT ) ) )? ) ) ) - // InternalSolverLanguageParser.g:3746:3: otherlv_0= Scope ( ( ( ( (lv_lowerBound_1_0= RULE_INT ) ) otherlv_2= LessThanSignEqualsSign )? ( ( ruleQualifiedName ) ) otherlv_4= LessThanSignEqualsSign ( (lv_upperBound_5_0= RULE_INT ) ) ) | ( ( (lv_upperBound_6_0= RULE_INT ) ) otherlv_7= GreaterThanSignEqualsSign ( ( ruleQualifiedName ) ) (otherlv_9= GreaterThanSignEqualsSign ( (lv_lowerBound_10_0= RULE_INT ) ) )? ) ) + // InternalSolverLanguageParser.g:4309:2: (otherlv_0= Scope ( ( ( ( (lv_lowerBound_1_0= RULE_INT ) ) otherlv_2= LessThanSignEqualsSign )? ( ( ruleQualifiedName ) ) otherlv_4= LessThanSignEqualsSign ( (lv_upperBound_5_0= RULE_INT ) ) ) | ( ( (lv_upperBound_6_0= RULE_INT ) ) otherlv_7= GreaterThanSignEqualsSign ( ( ruleQualifiedName ) ) (otherlv_9= GreaterThanSignEqualsSign ( (lv_lowerBound_10_0= RULE_INT ) ) )? ) ) this_FULL_STOP_11= RULE_FULL_STOP ) + // InternalSolverLanguageParser.g:4310:3: otherlv_0= Scope ( ( ( ( (lv_lowerBound_1_0= RULE_INT ) ) otherlv_2= LessThanSignEqualsSign )? ( ( ruleQualifiedName ) ) otherlv_4= LessThanSignEqualsSign ( (lv_upperBound_5_0= RULE_INT ) ) ) | ( ( (lv_upperBound_6_0= RULE_INT ) ) otherlv_7= GreaterThanSignEqualsSign ( ( ruleQualifiedName ) ) (otherlv_9= GreaterThanSignEqualsSign ( (lv_lowerBound_10_0= RULE_INT ) ) )? ) ) this_FULL_STOP_11= RULE_FULL_STOP { - otherlv_0=(Token)match(input,Scope,FOLLOW_55); + otherlv_0=(Token)match(input,Scope,FOLLOW_62); - newLeafNode(otherlv_0, grammarAccess.getBoundedScopeDefinitionAccess().getScopeKeyword_0()); + newLeafNode(otherlv_0, grammarAccess.getBoundedScopeAccess().getScopeKeyword_0()); - // InternalSolverLanguageParser.g:3750:3: ( ( ( ( (lv_lowerBound_1_0= RULE_INT ) ) otherlv_2= LessThanSignEqualsSign )? ( ( ruleQualifiedName ) ) otherlv_4= LessThanSignEqualsSign ( (lv_upperBound_5_0= RULE_INT ) ) ) | ( ( (lv_upperBound_6_0= RULE_INT ) ) otherlv_7= GreaterThanSignEqualsSign ( ( ruleQualifiedName ) ) (otherlv_9= GreaterThanSignEqualsSign ( (lv_lowerBound_10_0= RULE_INT ) ) )? ) ) - int alt47=2; - int LA47_0 = input.LA(1); + // InternalSolverLanguageParser.g:4314:3: ( ( ( ( (lv_lowerBound_1_0= RULE_INT ) ) otherlv_2= LessThanSignEqualsSign )? ( ( ruleQualifiedName ) ) otherlv_4= LessThanSignEqualsSign ( (lv_upperBound_5_0= RULE_INT ) ) ) | ( ( (lv_upperBound_6_0= RULE_INT ) ) otherlv_7= GreaterThanSignEqualsSign ( ( ruleQualifiedName ) ) (otherlv_9= GreaterThanSignEqualsSign ( (lv_lowerBound_10_0= RULE_INT ) ) )? ) ) + int alt56=2; + int LA56_0 = input.LA(1); - if ( (LA47_0==RULE_INT) ) { - int LA47_1 = input.LA(2); + if ( (LA56_0==RULE_INT) ) { + int LA56_1 = input.LA(2); - if ( (LA47_1==GreaterThanSignEqualsSign) ) { - alt47=2; + if ( (LA56_1==LessThanSignEqualsSign) ) { + alt56=1; } - else if ( (LA47_1==LessThanSignEqualsSign) ) { - alt47=1; + else if ( (LA56_1==GreaterThanSignEqualsSign) ) { + alt56=2; } else { NoViableAltException nvae = - new NoViableAltException("", 47, 1, input); + new NoViableAltException("", 56, 1, input); throw nvae; } } - else if ( (LA47_0==RULE_QUOTED_ID||LA47_0==RULE_ID) ) { - alt47=1; + else if ( (LA56_0==Object||LA56_0==RULE_QUOTED_ID||LA56_0==RULE_ID) ) { + alt56=1; } else { NoViableAltException nvae = - new NoViableAltException("", 47, 0, input); + new NoViableAltException("", 56, 0, input); throw nvae; } - switch (alt47) { + switch (alt56) { case 1 : - // InternalSolverLanguageParser.g:3751:4: ( ( ( (lv_lowerBound_1_0= RULE_INT ) ) otherlv_2= LessThanSignEqualsSign )? ( ( ruleQualifiedName ) ) otherlv_4= LessThanSignEqualsSign ( (lv_upperBound_5_0= RULE_INT ) ) ) + // InternalSolverLanguageParser.g:4315:4: ( ( ( (lv_lowerBound_1_0= RULE_INT ) ) otherlv_2= LessThanSignEqualsSign )? ( ( ruleQualifiedName ) ) otherlv_4= LessThanSignEqualsSign ( (lv_upperBound_5_0= RULE_INT ) ) ) { - // InternalSolverLanguageParser.g:3751:4: ( ( ( (lv_lowerBound_1_0= RULE_INT ) ) otherlv_2= LessThanSignEqualsSign )? ( ( ruleQualifiedName ) ) otherlv_4= LessThanSignEqualsSign ( (lv_upperBound_5_0= RULE_INT ) ) ) - // InternalSolverLanguageParser.g:3752:5: ( ( (lv_lowerBound_1_0= RULE_INT ) ) otherlv_2= LessThanSignEqualsSign )? ( ( ruleQualifiedName ) ) otherlv_4= LessThanSignEqualsSign ( (lv_upperBound_5_0= RULE_INT ) ) + // InternalSolverLanguageParser.g:4315:4: ( ( ( (lv_lowerBound_1_0= RULE_INT ) ) otherlv_2= LessThanSignEqualsSign )? ( ( ruleQualifiedName ) ) otherlv_4= LessThanSignEqualsSign ( (lv_upperBound_5_0= RULE_INT ) ) ) + // InternalSolverLanguageParser.g:4316:5: ( ( (lv_lowerBound_1_0= RULE_INT ) ) otherlv_2= LessThanSignEqualsSign )? ( ( ruleQualifiedName ) ) otherlv_4= LessThanSignEqualsSign ( (lv_upperBound_5_0= RULE_INT ) ) { - // InternalSolverLanguageParser.g:3752:5: ( ( (lv_lowerBound_1_0= RULE_INT ) ) otherlv_2= LessThanSignEqualsSign )? - int alt45=2; - int LA45_0 = input.LA(1); + // InternalSolverLanguageParser.g:4316:5: ( ( (lv_lowerBound_1_0= RULE_INT ) ) otherlv_2= LessThanSignEqualsSign )? + int alt54=2; + int LA54_0 = input.LA(1); - if ( (LA45_0==RULE_INT) ) { - alt45=1; + if ( (LA54_0==RULE_INT) ) { + alt54=1; } - switch (alt45) { + switch (alt54) { case 1 : - // InternalSolverLanguageParser.g:3753:6: ( (lv_lowerBound_1_0= RULE_INT ) ) otherlv_2= LessThanSignEqualsSign + // InternalSolverLanguageParser.g:4317:6: ( (lv_lowerBound_1_0= RULE_INT ) ) otherlv_2= LessThanSignEqualsSign { - // InternalSolverLanguageParser.g:3753:6: ( (lv_lowerBound_1_0= RULE_INT ) ) - // InternalSolverLanguageParser.g:3754:7: (lv_lowerBound_1_0= RULE_INT ) + // InternalSolverLanguageParser.g:4317:6: ( (lv_lowerBound_1_0= RULE_INT ) ) + // InternalSolverLanguageParser.g:4318:7: (lv_lowerBound_1_0= RULE_INT ) { - // InternalSolverLanguageParser.g:3754:7: (lv_lowerBound_1_0= RULE_INT ) - // InternalSolverLanguageParser.g:3755:8: lv_lowerBound_1_0= RULE_INT + // InternalSolverLanguageParser.g:4318:7: (lv_lowerBound_1_0= RULE_INT ) + // InternalSolverLanguageParser.g:4319:8: lv_lowerBound_1_0= RULE_INT { - lv_lowerBound_1_0=(Token)match(input,RULE_INT,FOLLOW_56); + lv_lowerBound_1_0=(Token)match(input,RULE_INT,FOLLOW_63); - newLeafNode(lv_lowerBound_1_0, grammarAccess.getBoundedScopeDefinitionAccess().getLowerBoundINTTerminalRuleCall_1_0_0_0_0()); + newLeafNode(lv_lowerBound_1_0, grammarAccess.getBoundedScopeAccess().getLowerBoundINTTerminalRuleCall_1_0_0_0_0()); if (current==null) { - current = createModelElement(grammarAccess.getBoundedScopeDefinitionRule()); + current = createModelElement(grammarAccess.getBoundedScopeRule()); } setWithLastConsumed( current, @@ -9615,9 +11131,9 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } - otherlv_2=(Token)match(input,LessThanSignEqualsSign,FOLLOW_8); + otherlv_2=(Token)match(input,LessThanSignEqualsSign,FOLLOW_3); - newLeafNode(otherlv_2, grammarAccess.getBoundedScopeDefinitionAccess().getLessThanSignEqualsSignKeyword_1_0_0_1()); + newLeafNode(otherlv_2, grammarAccess.getBoundedScopeAccess().getLessThanSignEqualsSignKeyword_1_0_0_1()); } @@ -9625,21 +11141,21 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } - // InternalSolverLanguageParser.g:3776:5: ( ( ruleQualifiedName ) ) - // InternalSolverLanguageParser.g:3777:6: ( ruleQualifiedName ) + // InternalSolverLanguageParser.g:4340:5: ( ( ruleQualifiedName ) ) + // InternalSolverLanguageParser.g:4341:6: ( ruleQualifiedName ) { - // InternalSolverLanguageParser.g:3777:6: ( ruleQualifiedName ) - // InternalSolverLanguageParser.g:3778:7: ruleQualifiedName + // InternalSolverLanguageParser.g:4341:6: ( ruleQualifiedName ) + // InternalSolverLanguageParser.g:4342:7: ruleQualifiedName { if (current==null) { - current = createModelElement(grammarAccess.getBoundedScopeDefinitionRule()); + current = createModelElement(grammarAccess.getBoundedScopeRule()); } - newCompositeNode(grammarAccess.getBoundedScopeDefinitionAccess().getTypeNamedElementCrossReference_1_0_1_0()); + newCompositeNode(grammarAccess.getBoundedScopeAccess().getTypeSymbolCrossReference_1_0_1_0()); - pushFollow(FOLLOW_56); + pushFollow(FOLLOW_63); ruleQualifiedName(); state._fsp--; @@ -9653,23 +11169,23 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } - otherlv_4=(Token)match(input,LessThanSignEqualsSign,FOLLOW_53); + otherlv_4=(Token)match(input,LessThanSignEqualsSign,FOLLOW_57); - newLeafNode(otherlv_4, grammarAccess.getBoundedScopeDefinitionAccess().getLessThanSignEqualsSignKeyword_1_0_2()); + newLeafNode(otherlv_4, grammarAccess.getBoundedScopeAccess().getLessThanSignEqualsSignKeyword_1_0_2()); - // InternalSolverLanguageParser.g:3796:5: ( (lv_upperBound_5_0= RULE_INT ) ) - // InternalSolverLanguageParser.g:3797:6: (lv_upperBound_5_0= RULE_INT ) + // InternalSolverLanguageParser.g:4360:5: ( (lv_upperBound_5_0= RULE_INT ) ) + // InternalSolverLanguageParser.g:4361:6: (lv_upperBound_5_0= RULE_INT ) { - // InternalSolverLanguageParser.g:3797:6: (lv_upperBound_5_0= RULE_INT ) - // InternalSolverLanguageParser.g:3798:7: lv_upperBound_5_0= RULE_INT + // InternalSolverLanguageParser.g:4361:6: (lv_upperBound_5_0= RULE_INT ) + // InternalSolverLanguageParser.g:4362:7: lv_upperBound_5_0= RULE_INT { - lv_upperBound_5_0=(Token)match(input,RULE_INT,FOLLOW_2); + lv_upperBound_5_0=(Token)match(input,RULE_INT,FOLLOW_4); - newLeafNode(lv_upperBound_5_0, grammarAccess.getBoundedScopeDefinitionAccess().getUpperBoundINTTerminalRuleCall_1_0_3_0()); + newLeafNode(lv_upperBound_5_0, grammarAccess.getBoundedScopeAccess().getUpperBoundINTTerminalRuleCall_1_0_3_0()); if (current==null) { - current = createModelElement(grammarAccess.getBoundedScopeDefinitionRule()); + current = createModelElement(grammarAccess.getBoundedScopeRule()); } setWithLastConsumed( current, @@ -9690,24 +11206,24 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } break; case 2 : - // InternalSolverLanguageParser.g:3816:4: ( ( (lv_upperBound_6_0= RULE_INT ) ) otherlv_7= GreaterThanSignEqualsSign ( ( ruleQualifiedName ) ) (otherlv_9= GreaterThanSignEqualsSign ( (lv_lowerBound_10_0= RULE_INT ) ) )? ) + // InternalSolverLanguageParser.g:4380:4: ( ( (lv_upperBound_6_0= RULE_INT ) ) otherlv_7= GreaterThanSignEqualsSign ( ( ruleQualifiedName ) ) (otherlv_9= GreaterThanSignEqualsSign ( (lv_lowerBound_10_0= RULE_INT ) ) )? ) { - // InternalSolverLanguageParser.g:3816:4: ( ( (lv_upperBound_6_0= RULE_INT ) ) otherlv_7= GreaterThanSignEqualsSign ( ( ruleQualifiedName ) ) (otherlv_9= GreaterThanSignEqualsSign ( (lv_lowerBound_10_0= RULE_INT ) ) )? ) - // InternalSolverLanguageParser.g:3817:5: ( (lv_upperBound_6_0= RULE_INT ) ) otherlv_7= GreaterThanSignEqualsSign ( ( ruleQualifiedName ) ) (otherlv_9= GreaterThanSignEqualsSign ( (lv_lowerBound_10_0= RULE_INT ) ) )? + // InternalSolverLanguageParser.g:4380:4: ( ( (lv_upperBound_6_0= RULE_INT ) ) otherlv_7= GreaterThanSignEqualsSign ( ( ruleQualifiedName ) ) (otherlv_9= GreaterThanSignEqualsSign ( (lv_lowerBound_10_0= RULE_INT ) ) )? ) + // InternalSolverLanguageParser.g:4381:5: ( (lv_upperBound_6_0= RULE_INT ) ) otherlv_7= GreaterThanSignEqualsSign ( ( ruleQualifiedName ) ) (otherlv_9= GreaterThanSignEqualsSign ( (lv_lowerBound_10_0= RULE_INT ) ) )? { - // InternalSolverLanguageParser.g:3817:5: ( (lv_upperBound_6_0= RULE_INT ) ) - // InternalSolverLanguageParser.g:3818:6: (lv_upperBound_6_0= RULE_INT ) + // InternalSolverLanguageParser.g:4381:5: ( (lv_upperBound_6_0= RULE_INT ) ) + // InternalSolverLanguageParser.g:4382:6: (lv_upperBound_6_0= RULE_INT ) { - // InternalSolverLanguageParser.g:3818:6: (lv_upperBound_6_0= RULE_INT ) - // InternalSolverLanguageParser.g:3819:7: lv_upperBound_6_0= RULE_INT + // InternalSolverLanguageParser.g:4382:6: (lv_upperBound_6_0= RULE_INT ) + // InternalSolverLanguageParser.g:4383:7: lv_upperBound_6_0= RULE_INT { - lv_upperBound_6_0=(Token)match(input,RULE_INT,FOLLOW_57); + lv_upperBound_6_0=(Token)match(input,RULE_INT,FOLLOW_64); - newLeafNode(lv_upperBound_6_0, grammarAccess.getBoundedScopeDefinitionAccess().getUpperBoundINTTerminalRuleCall_1_1_0_0()); + newLeafNode(lv_upperBound_6_0, grammarAccess.getBoundedScopeAccess().getUpperBoundINTTerminalRuleCall_1_1_0_0()); if (current==null) { - current = createModelElement(grammarAccess.getBoundedScopeDefinitionRule()); + current = createModelElement(grammarAccess.getBoundedScopeRule()); } setWithLastConsumed( current, @@ -9721,25 +11237,25 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } - otherlv_7=(Token)match(input,GreaterThanSignEqualsSign,FOLLOW_8); + otherlv_7=(Token)match(input,GreaterThanSignEqualsSign,FOLLOW_3); - newLeafNode(otherlv_7, grammarAccess.getBoundedScopeDefinitionAccess().getGreaterThanSignEqualsSignKeyword_1_1_1()); + newLeafNode(otherlv_7, grammarAccess.getBoundedScopeAccess().getGreaterThanSignEqualsSignKeyword_1_1_1()); - // InternalSolverLanguageParser.g:3839:5: ( ( ruleQualifiedName ) ) - // InternalSolverLanguageParser.g:3840:6: ( ruleQualifiedName ) + // InternalSolverLanguageParser.g:4403:5: ( ( ruleQualifiedName ) ) + // InternalSolverLanguageParser.g:4404:6: ( ruleQualifiedName ) { - // InternalSolverLanguageParser.g:3840:6: ( ruleQualifiedName ) - // InternalSolverLanguageParser.g:3841:7: ruleQualifiedName + // InternalSolverLanguageParser.g:4404:6: ( ruleQualifiedName ) + // InternalSolverLanguageParser.g:4405:7: ruleQualifiedName { if (current==null) { - current = createModelElement(grammarAccess.getBoundedScopeDefinitionRule()); + current = createModelElement(grammarAccess.getBoundedScopeRule()); } - newCompositeNode(grammarAccess.getBoundedScopeDefinitionAccess().getTypeNamedElementCrossReference_1_1_2_0()); + newCompositeNode(grammarAccess.getBoundedScopeAccess().getTypeSymbolCrossReference_1_1_2_0()); - pushFollow(FOLLOW_58); + pushFollow(FOLLOW_65); ruleQualifiedName(); state._fsp--; @@ -9753,34 +11269,34 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } - // InternalSolverLanguageParser.g:3855:5: (otherlv_9= GreaterThanSignEqualsSign ( (lv_lowerBound_10_0= RULE_INT ) ) )? - int alt46=2; - int LA46_0 = input.LA(1); + // InternalSolverLanguageParser.g:4419:5: (otherlv_9= GreaterThanSignEqualsSign ( (lv_lowerBound_10_0= RULE_INT ) ) )? + int alt55=2; + int LA55_0 = input.LA(1); - if ( (LA46_0==GreaterThanSignEqualsSign) ) { - alt46=1; + if ( (LA55_0==GreaterThanSignEqualsSign) ) { + alt55=1; } - switch (alt46) { + switch (alt55) { case 1 : - // InternalSolverLanguageParser.g:3856:6: otherlv_9= GreaterThanSignEqualsSign ( (lv_lowerBound_10_0= RULE_INT ) ) + // InternalSolverLanguageParser.g:4420:6: otherlv_9= GreaterThanSignEqualsSign ( (lv_lowerBound_10_0= RULE_INT ) ) { - otherlv_9=(Token)match(input,GreaterThanSignEqualsSign,FOLLOW_53); + otherlv_9=(Token)match(input,GreaterThanSignEqualsSign,FOLLOW_57); - newLeafNode(otherlv_9, grammarAccess.getBoundedScopeDefinitionAccess().getGreaterThanSignEqualsSignKeyword_1_1_3_0()); + newLeafNode(otherlv_9, grammarAccess.getBoundedScopeAccess().getGreaterThanSignEqualsSignKeyword_1_1_3_0()); - // InternalSolverLanguageParser.g:3860:6: ( (lv_lowerBound_10_0= RULE_INT ) ) - // InternalSolverLanguageParser.g:3861:7: (lv_lowerBound_10_0= RULE_INT ) + // InternalSolverLanguageParser.g:4424:6: ( (lv_lowerBound_10_0= RULE_INT ) ) + // InternalSolverLanguageParser.g:4425:7: (lv_lowerBound_10_0= RULE_INT ) { - // InternalSolverLanguageParser.g:3861:7: (lv_lowerBound_10_0= RULE_INT ) - // InternalSolverLanguageParser.g:3862:8: lv_lowerBound_10_0= RULE_INT + // InternalSolverLanguageParser.g:4425:7: (lv_lowerBound_10_0= RULE_INT ) + // InternalSolverLanguageParser.g:4426:8: lv_lowerBound_10_0= RULE_INT { - lv_lowerBound_10_0=(Token)match(input,RULE_INT,FOLLOW_2); + lv_lowerBound_10_0=(Token)match(input,RULE_INT,FOLLOW_4); - newLeafNode(lv_lowerBound_10_0, grammarAccess.getBoundedScopeDefinitionAccess().getLowerBoundINTTerminalRuleCall_1_1_3_1_0()); + newLeafNode(lv_lowerBound_10_0, grammarAccess.getBoundedScopeAccess().getLowerBoundINTTerminalRuleCall_1_1_3_1_0()); if (current==null) { - current = createModelElement(grammarAccess.getBoundedScopeDefinitionRule()); + current = createModelElement(grammarAccess.getBoundedScopeRule()); } setWithLastConsumed( current, @@ -9809,6 +11325,10 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } + this_FULL_STOP_11=(Token)match(input,RULE_FULL_STOP,FOLLOW_2); + + newLeafNode(this_FULL_STOP_11, grammarAccess.getBoundedScopeAccess().getFULL_STOPTerminalRuleCall_2()); + } @@ -9828,28 +11348,28 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } return current; } - // $ANTLR end "ruleBoundedScopeDefinition" + // $ANTLR end "ruleBoundedScope" - // $ANTLR start "entryRuleLowerBoundedScopeDefinition" - // InternalSolverLanguageParser.g:3885:1: entryRuleLowerBoundedScopeDefinition returns [EObject current=null] : iv_ruleLowerBoundedScopeDefinition= ruleLowerBoundedScopeDefinition EOF ; - public final EObject entryRuleLowerBoundedScopeDefinition() throws RecognitionException { + // $ANTLR start "entryRuleLowerBoundedScope" + // InternalSolverLanguageParser.g:4453:1: entryRuleLowerBoundedScope returns [EObject current=null] : iv_ruleLowerBoundedScope= ruleLowerBoundedScope EOF ; + public final EObject entryRuleLowerBoundedScope() throws RecognitionException { EObject current = null; - EObject iv_ruleLowerBoundedScopeDefinition = null; + EObject iv_ruleLowerBoundedScope = null; try { - // InternalSolverLanguageParser.g:3885:68: (iv_ruleLowerBoundedScopeDefinition= ruleLowerBoundedScopeDefinition EOF ) - // InternalSolverLanguageParser.g:3886:2: iv_ruleLowerBoundedScopeDefinition= ruleLowerBoundedScopeDefinition EOF + // InternalSolverLanguageParser.g:4453:58: (iv_ruleLowerBoundedScope= ruleLowerBoundedScope EOF ) + // InternalSolverLanguageParser.g:4454:2: iv_ruleLowerBoundedScope= ruleLowerBoundedScope EOF { - newCompositeNode(grammarAccess.getLowerBoundedScopeDefinitionRule()); + newCompositeNode(grammarAccess.getLowerBoundedScopeRule()); pushFollow(FOLLOW_1); - iv_ruleLowerBoundedScopeDefinition=ruleLowerBoundedScopeDefinition(); + iv_ruleLowerBoundedScope=ruleLowerBoundedScope(); state._fsp--; - current =iv_ruleLowerBoundedScopeDefinition; + current =iv_ruleLowerBoundedScope; match(input,EOF,FOLLOW_2); } @@ -9864,12 +11384,12 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } return current; } - // $ANTLR end "entryRuleLowerBoundedScopeDefinition" + // $ANTLR end "entryRuleLowerBoundedScope" - // $ANTLR start "ruleLowerBoundedScopeDefinition" - // InternalSolverLanguageParser.g:3892:1: ruleLowerBoundedScopeDefinition returns [EObject current=null] : (otherlv_0= Scope ( ( ( (lv_lowerBound_1_0= RULE_INT ) ) otherlv_2= LessThanSignEqualsSign ( ( ruleQualifiedName ) ) ) | ( ( ( ruleQualifiedName ) ) otherlv_5= GreaterThanSignEqualsSign ( (lv_lowerBound_6_0= RULE_INT ) ) ) ) ) ; - public final EObject ruleLowerBoundedScopeDefinition() throws RecognitionException { + // $ANTLR start "ruleLowerBoundedScope" + // InternalSolverLanguageParser.g:4460:1: ruleLowerBoundedScope returns [EObject current=null] : (otherlv_0= Scope ( ( ( (lv_lowerBound_1_0= RULE_INT ) ) otherlv_2= LessThanSignEqualsSign ( ( ruleQualifiedName ) ) ) | ( ( ( ruleQualifiedName ) ) otherlv_5= GreaterThanSignEqualsSign ( (lv_lowerBound_6_0= RULE_INT ) ) ) ) this_FULL_STOP_7= RULE_FULL_STOP ) ; + public final EObject ruleLowerBoundedScope() throws RecognitionException { EObject current = null; Token otherlv_0=null; @@ -9877,57 +11397,58 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { Token otherlv_2=null; Token otherlv_5=null; Token lv_lowerBound_6_0=null; + Token this_FULL_STOP_7=null; enterRule(); try { - // InternalSolverLanguageParser.g:3898:2: ( (otherlv_0= Scope ( ( ( (lv_lowerBound_1_0= RULE_INT ) ) otherlv_2= LessThanSignEqualsSign ( ( ruleQualifiedName ) ) ) | ( ( ( ruleQualifiedName ) ) otherlv_5= GreaterThanSignEqualsSign ( (lv_lowerBound_6_0= RULE_INT ) ) ) ) ) ) - // InternalSolverLanguageParser.g:3899:2: (otherlv_0= Scope ( ( ( (lv_lowerBound_1_0= RULE_INT ) ) otherlv_2= LessThanSignEqualsSign ( ( ruleQualifiedName ) ) ) | ( ( ( ruleQualifiedName ) ) otherlv_5= GreaterThanSignEqualsSign ( (lv_lowerBound_6_0= RULE_INT ) ) ) ) ) + // InternalSolverLanguageParser.g:4466:2: ( (otherlv_0= Scope ( ( ( (lv_lowerBound_1_0= RULE_INT ) ) otherlv_2= LessThanSignEqualsSign ( ( ruleQualifiedName ) ) ) | ( ( ( ruleQualifiedName ) ) otherlv_5= GreaterThanSignEqualsSign ( (lv_lowerBound_6_0= RULE_INT ) ) ) ) this_FULL_STOP_7= RULE_FULL_STOP ) ) + // InternalSolverLanguageParser.g:4467:2: (otherlv_0= Scope ( ( ( (lv_lowerBound_1_0= RULE_INT ) ) otherlv_2= LessThanSignEqualsSign ( ( ruleQualifiedName ) ) ) | ( ( ( ruleQualifiedName ) ) otherlv_5= GreaterThanSignEqualsSign ( (lv_lowerBound_6_0= RULE_INT ) ) ) ) this_FULL_STOP_7= RULE_FULL_STOP ) { - // InternalSolverLanguageParser.g:3899:2: (otherlv_0= Scope ( ( ( (lv_lowerBound_1_0= RULE_INT ) ) otherlv_2= LessThanSignEqualsSign ( ( ruleQualifiedName ) ) ) | ( ( ( ruleQualifiedName ) ) otherlv_5= GreaterThanSignEqualsSign ( (lv_lowerBound_6_0= RULE_INT ) ) ) ) ) - // InternalSolverLanguageParser.g:3900:3: otherlv_0= Scope ( ( ( (lv_lowerBound_1_0= RULE_INT ) ) otherlv_2= LessThanSignEqualsSign ( ( ruleQualifiedName ) ) ) | ( ( ( ruleQualifiedName ) ) otherlv_5= GreaterThanSignEqualsSign ( (lv_lowerBound_6_0= RULE_INT ) ) ) ) + // InternalSolverLanguageParser.g:4467:2: (otherlv_0= Scope ( ( ( (lv_lowerBound_1_0= RULE_INT ) ) otherlv_2= LessThanSignEqualsSign ( ( ruleQualifiedName ) ) ) | ( ( ( ruleQualifiedName ) ) otherlv_5= GreaterThanSignEqualsSign ( (lv_lowerBound_6_0= RULE_INT ) ) ) ) this_FULL_STOP_7= RULE_FULL_STOP ) + // InternalSolverLanguageParser.g:4468:3: otherlv_0= Scope ( ( ( (lv_lowerBound_1_0= RULE_INT ) ) otherlv_2= LessThanSignEqualsSign ( ( ruleQualifiedName ) ) ) | ( ( ( ruleQualifiedName ) ) otherlv_5= GreaterThanSignEqualsSign ( (lv_lowerBound_6_0= RULE_INT ) ) ) ) this_FULL_STOP_7= RULE_FULL_STOP { - otherlv_0=(Token)match(input,Scope,FOLLOW_55); + otherlv_0=(Token)match(input,Scope,FOLLOW_62); - newLeafNode(otherlv_0, grammarAccess.getLowerBoundedScopeDefinitionAccess().getScopeKeyword_0()); + newLeafNode(otherlv_0, grammarAccess.getLowerBoundedScopeAccess().getScopeKeyword_0()); - // InternalSolverLanguageParser.g:3904:3: ( ( ( (lv_lowerBound_1_0= RULE_INT ) ) otherlv_2= LessThanSignEqualsSign ( ( ruleQualifiedName ) ) ) | ( ( ( ruleQualifiedName ) ) otherlv_5= GreaterThanSignEqualsSign ( (lv_lowerBound_6_0= RULE_INT ) ) ) ) - int alt48=2; - int LA48_0 = input.LA(1); + // InternalSolverLanguageParser.g:4472:3: ( ( ( (lv_lowerBound_1_0= RULE_INT ) ) otherlv_2= LessThanSignEqualsSign ( ( ruleQualifiedName ) ) ) | ( ( ( ruleQualifiedName ) ) otherlv_5= GreaterThanSignEqualsSign ( (lv_lowerBound_6_0= RULE_INT ) ) ) ) + int alt57=2; + int LA57_0 = input.LA(1); - if ( (LA48_0==RULE_INT) ) { - alt48=1; + if ( (LA57_0==RULE_INT) ) { + alt57=1; } - else if ( (LA48_0==RULE_QUOTED_ID||LA48_0==RULE_ID) ) { - alt48=2; + else if ( (LA57_0==Object||LA57_0==RULE_QUOTED_ID||LA57_0==RULE_ID) ) { + alt57=2; } else { NoViableAltException nvae = - new NoViableAltException("", 48, 0, input); + new NoViableAltException("", 57, 0, input); throw nvae; } - switch (alt48) { + switch (alt57) { case 1 : - // InternalSolverLanguageParser.g:3905:4: ( ( (lv_lowerBound_1_0= RULE_INT ) ) otherlv_2= LessThanSignEqualsSign ( ( ruleQualifiedName ) ) ) + // InternalSolverLanguageParser.g:4473:4: ( ( (lv_lowerBound_1_0= RULE_INT ) ) otherlv_2= LessThanSignEqualsSign ( ( ruleQualifiedName ) ) ) { - // InternalSolverLanguageParser.g:3905:4: ( ( (lv_lowerBound_1_0= RULE_INT ) ) otherlv_2= LessThanSignEqualsSign ( ( ruleQualifiedName ) ) ) - // InternalSolverLanguageParser.g:3906:5: ( (lv_lowerBound_1_0= RULE_INT ) ) otherlv_2= LessThanSignEqualsSign ( ( ruleQualifiedName ) ) + // InternalSolverLanguageParser.g:4473:4: ( ( (lv_lowerBound_1_0= RULE_INT ) ) otherlv_2= LessThanSignEqualsSign ( ( ruleQualifiedName ) ) ) + // InternalSolverLanguageParser.g:4474:5: ( (lv_lowerBound_1_0= RULE_INT ) ) otherlv_2= LessThanSignEqualsSign ( ( ruleQualifiedName ) ) { - // InternalSolverLanguageParser.g:3906:5: ( (lv_lowerBound_1_0= RULE_INT ) ) - // InternalSolverLanguageParser.g:3907:6: (lv_lowerBound_1_0= RULE_INT ) + // InternalSolverLanguageParser.g:4474:5: ( (lv_lowerBound_1_0= RULE_INT ) ) + // InternalSolverLanguageParser.g:4475:6: (lv_lowerBound_1_0= RULE_INT ) { - // InternalSolverLanguageParser.g:3907:6: (lv_lowerBound_1_0= RULE_INT ) - // InternalSolverLanguageParser.g:3908:7: lv_lowerBound_1_0= RULE_INT + // InternalSolverLanguageParser.g:4475:6: (lv_lowerBound_1_0= RULE_INT ) + // InternalSolverLanguageParser.g:4476:7: lv_lowerBound_1_0= RULE_INT { - lv_lowerBound_1_0=(Token)match(input,RULE_INT,FOLLOW_56); + lv_lowerBound_1_0=(Token)match(input,RULE_INT,FOLLOW_63); - newLeafNode(lv_lowerBound_1_0, grammarAccess.getLowerBoundedScopeDefinitionAccess().getLowerBoundINTTerminalRuleCall_1_0_0_0()); + newLeafNode(lv_lowerBound_1_0, grammarAccess.getLowerBoundedScopeAccess().getLowerBoundINTTerminalRuleCall_1_0_0_0()); if (current==null) { - current = createModelElement(grammarAccess.getLowerBoundedScopeDefinitionRule()); + current = createModelElement(grammarAccess.getLowerBoundedScopeRule()); } setWithLastConsumed( current, @@ -9941,25 +11462,25 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } - otherlv_2=(Token)match(input,LessThanSignEqualsSign,FOLLOW_8); + otherlv_2=(Token)match(input,LessThanSignEqualsSign,FOLLOW_3); - newLeafNode(otherlv_2, grammarAccess.getLowerBoundedScopeDefinitionAccess().getLessThanSignEqualsSignKeyword_1_0_1()); + newLeafNode(otherlv_2, grammarAccess.getLowerBoundedScopeAccess().getLessThanSignEqualsSignKeyword_1_0_1()); - // InternalSolverLanguageParser.g:3928:5: ( ( ruleQualifiedName ) ) - // InternalSolverLanguageParser.g:3929:6: ( ruleQualifiedName ) + // InternalSolverLanguageParser.g:4496:5: ( ( ruleQualifiedName ) ) + // InternalSolverLanguageParser.g:4497:6: ( ruleQualifiedName ) { - // InternalSolverLanguageParser.g:3929:6: ( ruleQualifiedName ) - // InternalSolverLanguageParser.g:3930:7: ruleQualifiedName + // InternalSolverLanguageParser.g:4497:6: ( ruleQualifiedName ) + // InternalSolverLanguageParser.g:4498:7: ruleQualifiedName { if (current==null) { - current = createModelElement(grammarAccess.getLowerBoundedScopeDefinitionRule()); + current = createModelElement(grammarAccess.getLowerBoundedScopeRule()); } - newCompositeNode(grammarAccess.getLowerBoundedScopeDefinitionAccess().getTypeNamedElementCrossReference_1_0_2_0()); + newCompositeNode(grammarAccess.getLowerBoundedScopeAccess().getTypeSymbolCrossReference_1_0_2_0()); - pushFollow(FOLLOW_2); + pushFollow(FOLLOW_4); ruleQualifiedName(); state._fsp--; @@ -9980,26 +11501,26 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } break; case 2 : - // InternalSolverLanguageParser.g:3946:4: ( ( ( ruleQualifiedName ) ) otherlv_5= GreaterThanSignEqualsSign ( (lv_lowerBound_6_0= RULE_INT ) ) ) + // InternalSolverLanguageParser.g:4514:4: ( ( ( ruleQualifiedName ) ) otherlv_5= GreaterThanSignEqualsSign ( (lv_lowerBound_6_0= RULE_INT ) ) ) { - // InternalSolverLanguageParser.g:3946:4: ( ( ( ruleQualifiedName ) ) otherlv_5= GreaterThanSignEqualsSign ( (lv_lowerBound_6_0= RULE_INT ) ) ) - // InternalSolverLanguageParser.g:3947:5: ( ( ruleQualifiedName ) ) otherlv_5= GreaterThanSignEqualsSign ( (lv_lowerBound_6_0= RULE_INT ) ) + // InternalSolverLanguageParser.g:4514:4: ( ( ( ruleQualifiedName ) ) otherlv_5= GreaterThanSignEqualsSign ( (lv_lowerBound_6_0= RULE_INT ) ) ) + // InternalSolverLanguageParser.g:4515:5: ( ( ruleQualifiedName ) ) otherlv_5= GreaterThanSignEqualsSign ( (lv_lowerBound_6_0= RULE_INT ) ) { - // InternalSolverLanguageParser.g:3947:5: ( ( ruleQualifiedName ) ) - // InternalSolverLanguageParser.g:3948:6: ( ruleQualifiedName ) + // InternalSolverLanguageParser.g:4515:5: ( ( ruleQualifiedName ) ) + // InternalSolverLanguageParser.g:4516:6: ( ruleQualifiedName ) { - // InternalSolverLanguageParser.g:3948:6: ( ruleQualifiedName ) - // InternalSolverLanguageParser.g:3949:7: ruleQualifiedName + // InternalSolverLanguageParser.g:4516:6: ( ruleQualifiedName ) + // InternalSolverLanguageParser.g:4517:7: ruleQualifiedName { if (current==null) { - current = createModelElement(grammarAccess.getLowerBoundedScopeDefinitionRule()); + current = createModelElement(grammarAccess.getLowerBoundedScopeRule()); } - newCompositeNode(grammarAccess.getLowerBoundedScopeDefinitionAccess().getTypeNamedElementCrossReference_1_1_0_0()); + newCompositeNode(grammarAccess.getLowerBoundedScopeAccess().getTypeSymbolCrossReference_1_1_0_0()); - pushFollow(FOLLOW_57); + pushFollow(FOLLOW_64); ruleQualifiedName(); state._fsp--; @@ -10013,23 +11534,23 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } - otherlv_5=(Token)match(input,GreaterThanSignEqualsSign,FOLLOW_53); + otherlv_5=(Token)match(input,GreaterThanSignEqualsSign,FOLLOW_57); - newLeafNode(otherlv_5, grammarAccess.getLowerBoundedScopeDefinitionAccess().getGreaterThanSignEqualsSignKeyword_1_1_1()); + newLeafNode(otherlv_5, grammarAccess.getLowerBoundedScopeAccess().getGreaterThanSignEqualsSignKeyword_1_1_1()); - // InternalSolverLanguageParser.g:3967:5: ( (lv_lowerBound_6_0= RULE_INT ) ) - // InternalSolverLanguageParser.g:3968:6: (lv_lowerBound_6_0= RULE_INT ) + // InternalSolverLanguageParser.g:4535:5: ( (lv_lowerBound_6_0= RULE_INT ) ) + // InternalSolverLanguageParser.g:4536:6: (lv_lowerBound_6_0= RULE_INT ) { - // InternalSolverLanguageParser.g:3968:6: (lv_lowerBound_6_0= RULE_INT ) - // InternalSolverLanguageParser.g:3969:7: lv_lowerBound_6_0= RULE_INT + // InternalSolverLanguageParser.g:4536:6: (lv_lowerBound_6_0= RULE_INT ) + // InternalSolverLanguageParser.g:4537:7: lv_lowerBound_6_0= RULE_INT { - lv_lowerBound_6_0=(Token)match(input,RULE_INT,FOLLOW_2); + lv_lowerBound_6_0=(Token)match(input,RULE_INT,FOLLOW_4); - newLeafNode(lv_lowerBound_6_0, grammarAccess.getLowerBoundedScopeDefinitionAccess().getLowerBoundINTTerminalRuleCall_1_1_2_0()); + newLeafNode(lv_lowerBound_6_0, grammarAccess.getLowerBoundedScopeAccess().getLowerBoundINTTerminalRuleCall_1_1_2_0()); if (current==null) { - current = createModelElement(grammarAccess.getLowerBoundedScopeDefinitionRule()); + current = createModelElement(grammarAccess.getLowerBoundedScopeRule()); } setWithLastConsumed( current, @@ -10052,6 +11573,10 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } + this_FULL_STOP_7=(Token)match(input,RULE_FULL_STOP,FOLLOW_2); + + newLeafNode(this_FULL_STOP_7, grammarAccess.getLowerBoundedScopeAccess().getFULL_STOPTerminalRuleCall_2()); + } @@ -10071,28 +11596,28 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } return current; } - // $ANTLR end "ruleLowerBoundedScopeDefinition" + // $ANTLR end "ruleLowerBoundedScope" - // $ANTLR start "entryRuleObjectiveDefinition" - // InternalSolverLanguageParser.g:3991:1: entryRuleObjectiveDefinition returns [EObject current=null] : iv_ruleObjectiveDefinition= ruleObjectiveDefinition EOF ; - public final EObject entryRuleObjectiveDefinition() throws RecognitionException { + // $ANTLR start "entryRuleObjectiveDeclaration" + // InternalSolverLanguageParser.g:4563:1: entryRuleObjectiveDeclaration returns [EObject current=null] : iv_ruleObjectiveDeclaration= ruleObjectiveDeclaration EOF ; + public final EObject entryRuleObjectiveDeclaration() throws RecognitionException { EObject current = null; - EObject iv_ruleObjectiveDefinition = null; + EObject iv_ruleObjectiveDeclaration = null; try { - // InternalSolverLanguageParser.g:3991:60: (iv_ruleObjectiveDefinition= ruleObjectiveDefinition EOF ) - // InternalSolverLanguageParser.g:3992:2: iv_ruleObjectiveDefinition= ruleObjectiveDefinition EOF + // InternalSolverLanguageParser.g:4563:61: (iv_ruleObjectiveDeclaration= ruleObjectiveDeclaration EOF ) + // InternalSolverLanguageParser.g:4564:2: iv_ruleObjectiveDeclaration= ruleObjectiveDeclaration EOF { - newCompositeNode(grammarAccess.getObjectiveDefinitionRule()); + newCompositeNode(grammarAccess.getObjectiveDeclarationRule()); pushFollow(FOLLOW_1); - iv_ruleObjectiveDefinition=ruleObjectiveDefinition(); + iv_ruleObjectiveDeclaration=ruleObjectiveDeclaration(); state._fsp--; - current =iv_ruleObjectiveDefinition; + current =iv_ruleObjectiveDeclaration; match(input,EOF,FOLLOW_2); } @@ -10107,14 +11632,15 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } return current; } - // $ANTLR end "entryRuleObjectiveDefinition" + // $ANTLR end "entryRuleObjectiveDeclaration" - // $ANTLR start "ruleObjectiveDefinition" - // InternalSolverLanguageParser.g:3998:1: ruleObjectiveDefinition returns [EObject current=null] : ( ( (lv_kind_0_0= ruleObjectiveKind ) ) ( (lv_objective_1_0= ruleExpression ) ) ) ; - public final EObject ruleObjectiveDefinition() throws RecognitionException { + // $ANTLR start "ruleObjectiveDeclaration" + // InternalSolverLanguageParser.g:4570:1: ruleObjectiveDeclaration returns [EObject current=null] : ( ( (lv_kind_0_0= ruleObjectiveKind ) ) ( (lv_objective_1_0= ruleExpression ) ) this_FULL_STOP_2= RULE_FULL_STOP ) ; + public final EObject ruleObjectiveDeclaration() throws RecognitionException { EObject current = null; + Token this_FULL_STOP_2=null; Enumerator lv_kind_0_0 = null; EObject lv_objective_1_0 = null; @@ -10124,29 +11650,29 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { enterRule(); try { - // InternalSolverLanguageParser.g:4004:2: ( ( ( (lv_kind_0_0= ruleObjectiveKind ) ) ( (lv_objective_1_0= ruleExpression ) ) ) ) - // InternalSolverLanguageParser.g:4005:2: ( ( (lv_kind_0_0= ruleObjectiveKind ) ) ( (lv_objective_1_0= ruleExpression ) ) ) + // InternalSolverLanguageParser.g:4576:2: ( ( ( (lv_kind_0_0= ruleObjectiveKind ) ) ( (lv_objective_1_0= ruleExpression ) ) this_FULL_STOP_2= RULE_FULL_STOP ) ) + // InternalSolverLanguageParser.g:4577:2: ( ( (lv_kind_0_0= ruleObjectiveKind ) ) ( (lv_objective_1_0= ruleExpression ) ) this_FULL_STOP_2= RULE_FULL_STOP ) { - // InternalSolverLanguageParser.g:4005:2: ( ( (lv_kind_0_0= ruleObjectiveKind ) ) ( (lv_objective_1_0= ruleExpression ) ) ) - // InternalSolverLanguageParser.g:4006:3: ( (lv_kind_0_0= ruleObjectiveKind ) ) ( (lv_objective_1_0= ruleExpression ) ) + // InternalSolverLanguageParser.g:4577:2: ( ( (lv_kind_0_0= ruleObjectiveKind ) ) ( (lv_objective_1_0= ruleExpression ) ) this_FULL_STOP_2= RULE_FULL_STOP ) + // InternalSolverLanguageParser.g:4578:3: ( (lv_kind_0_0= ruleObjectiveKind ) ) ( (lv_objective_1_0= ruleExpression ) ) this_FULL_STOP_2= RULE_FULL_STOP { - // InternalSolverLanguageParser.g:4006:3: ( (lv_kind_0_0= ruleObjectiveKind ) ) - // InternalSolverLanguageParser.g:4007:4: (lv_kind_0_0= ruleObjectiveKind ) + // InternalSolverLanguageParser.g:4578:3: ( (lv_kind_0_0= ruleObjectiveKind ) ) + // InternalSolverLanguageParser.g:4579:4: (lv_kind_0_0= ruleObjectiveKind ) { - // InternalSolverLanguageParser.g:4007:4: (lv_kind_0_0= ruleObjectiveKind ) - // InternalSolverLanguageParser.g:4008:5: lv_kind_0_0= ruleObjectiveKind + // InternalSolverLanguageParser.g:4579:4: (lv_kind_0_0= ruleObjectiveKind ) + // InternalSolverLanguageParser.g:4580:5: lv_kind_0_0= ruleObjectiveKind { - newCompositeNode(grammarAccess.getObjectiveDefinitionAccess().getKindObjectiveKindEnumRuleCall_0_0()); + newCompositeNode(grammarAccess.getObjectiveDeclarationAccess().getKindObjectiveKindEnumRuleCall_0_0()); - pushFollow(FOLLOW_6); + pushFollow(FOLLOW_10); lv_kind_0_0=ruleObjectiveKind(); state._fsp--; if (current==null) { - current = createModelElementForParent(grammarAccess.getObjectiveDefinitionRule()); + current = createModelElementForParent(grammarAccess.getObjectiveDeclarationRule()); } set( current, @@ -10161,23 +11687,23 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } - // InternalSolverLanguageParser.g:4025:3: ( (lv_objective_1_0= ruleExpression ) ) - // InternalSolverLanguageParser.g:4026:4: (lv_objective_1_0= ruleExpression ) + // InternalSolverLanguageParser.g:4597:3: ( (lv_objective_1_0= ruleExpression ) ) + // InternalSolverLanguageParser.g:4598:4: (lv_objective_1_0= ruleExpression ) { - // InternalSolverLanguageParser.g:4026:4: (lv_objective_1_0= ruleExpression ) - // InternalSolverLanguageParser.g:4027:5: lv_objective_1_0= ruleExpression + // InternalSolverLanguageParser.g:4598:4: (lv_objective_1_0= ruleExpression ) + // InternalSolverLanguageParser.g:4599:5: lv_objective_1_0= ruleExpression { - newCompositeNode(grammarAccess.getObjectiveDefinitionAccess().getObjectiveExpressionParserRuleCall_1_0()); + newCompositeNode(grammarAccess.getObjectiveDeclarationAccess().getObjectiveExpressionParserRuleCall_1_0()); - pushFollow(FOLLOW_2); + pushFollow(FOLLOW_4); lv_objective_1_0=ruleExpression(); state._fsp--; if (current==null) { - current = createModelElementForParent(grammarAccess.getObjectiveDefinitionRule()); + current = createModelElementForParent(grammarAccess.getObjectiveDeclarationRule()); } set( current, @@ -10192,6 +11718,10 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } + this_FULL_STOP_2=(Token)match(input,RULE_FULL_STOP,FOLLOW_2); + + newLeafNode(this_FULL_STOP_2, grammarAccess.getObjectiveDeclarationAccess().getFULL_STOPTerminalRuleCall_2()); + } @@ -10211,11 +11741,11 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } return current; } - // $ANTLR end "ruleObjectiveDefinition" + // $ANTLR end "ruleObjectiveDeclaration" // $ANTLR start "entryRuleUpperMultiplicty" - // InternalSolverLanguageParser.g:4048:1: entryRuleUpperMultiplicty returns [String current=null] : iv_ruleUpperMultiplicty= ruleUpperMultiplicty EOF ; + // InternalSolverLanguageParser.g:4624:1: entryRuleUpperMultiplicty returns [String current=null] : iv_ruleUpperMultiplicty= ruleUpperMultiplicty EOF ; public final String entryRuleUpperMultiplicty() throws RecognitionException { String current = null; @@ -10223,8 +11753,8 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { try { - // InternalSolverLanguageParser.g:4048:56: (iv_ruleUpperMultiplicty= ruleUpperMultiplicty EOF ) - // InternalSolverLanguageParser.g:4049:2: iv_ruleUpperMultiplicty= ruleUpperMultiplicty EOF + // InternalSolverLanguageParser.g:4624:56: (iv_ruleUpperMultiplicty= ruleUpperMultiplicty EOF ) + // InternalSolverLanguageParser.g:4625:2: iv_ruleUpperMultiplicty= ruleUpperMultiplicty EOF { newCompositeNode(grammarAccess.getUpperMultiplictyRule()); pushFollow(FOLLOW_1); @@ -10251,7 +11781,7 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { // $ANTLR start "ruleUpperMultiplicty" - // InternalSolverLanguageParser.g:4055:1: ruleUpperMultiplicty returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_INT_0= RULE_INT | kw= Asterisk ) ; + // InternalSolverLanguageParser.g:4631:1: ruleUpperMultiplicty returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_INT_0= RULE_INT | kw= Asterisk ) ; public final AntlrDatatypeRuleToken ruleUpperMultiplicty() throws RecognitionException { AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken(); @@ -10262,28 +11792,28 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { enterRule(); try { - // InternalSolverLanguageParser.g:4061:2: ( (this_INT_0= RULE_INT | kw= Asterisk ) ) - // InternalSolverLanguageParser.g:4062:2: (this_INT_0= RULE_INT | kw= Asterisk ) + // InternalSolverLanguageParser.g:4637:2: ( (this_INT_0= RULE_INT | kw= Asterisk ) ) + // InternalSolverLanguageParser.g:4638:2: (this_INT_0= RULE_INT | kw= Asterisk ) { - // InternalSolverLanguageParser.g:4062:2: (this_INT_0= RULE_INT | kw= Asterisk ) - int alt49=2; - int LA49_0 = input.LA(1); + // InternalSolverLanguageParser.g:4638:2: (this_INT_0= RULE_INT | kw= Asterisk ) + int alt58=2; + int LA58_0 = input.LA(1); - if ( (LA49_0==RULE_INT) ) { - alt49=1; + if ( (LA58_0==RULE_INT) ) { + alt58=1; } - else if ( (LA49_0==Asterisk) ) { - alt49=2; + else if ( (LA58_0==Asterisk) ) { + alt58=2; } else { NoViableAltException nvae = - new NoViableAltException("", 49, 0, input); + new NoViableAltException("", 58, 0, input); throw nvae; } - switch (alt49) { + switch (alt58) { case 1 : - // InternalSolverLanguageParser.g:4063:3: this_INT_0= RULE_INT + // InternalSolverLanguageParser.g:4639:3: this_INT_0= RULE_INT { this_INT_0=(Token)match(input,RULE_INT,FOLLOW_2); @@ -10296,7 +11826,7 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } break; case 2 : - // InternalSolverLanguageParser.g:4071:3: kw= Asterisk + // InternalSolverLanguageParser.g:4647:3: kw= Asterisk { kw=(Token)match(input,Asterisk,FOLLOW_2); @@ -10329,7 +11859,7 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { // $ANTLR start "entryRuleReal" - // InternalSolverLanguageParser.g:4080:1: entryRuleReal returns [String current=null] : iv_ruleReal= ruleReal EOF ; + // InternalSolverLanguageParser.g:4656:1: entryRuleReal returns [String current=null] : iv_ruleReal= ruleReal EOF ; public final String entryRuleReal() throws RecognitionException { String current = null; @@ -10340,8 +11870,8 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { HiddenTokens myHiddenTokenState = ((XtextTokenStream)input).setHiddenTokens(); try { - // InternalSolverLanguageParser.g:4082:2: (iv_ruleReal= ruleReal EOF ) - // InternalSolverLanguageParser.g:4083:2: iv_ruleReal= ruleReal EOF + // InternalSolverLanguageParser.g:4658:2: (iv_ruleReal= ruleReal EOF ) + // InternalSolverLanguageParser.g:4659:2: iv_ruleReal= ruleReal EOF { newCompositeNode(grammarAccess.getRealRule()); pushFollow(FOLLOW_1); @@ -10371,7 +11901,7 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { // $ANTLR start "ruleReal" - // InternalSolverLanguageParser.g:4092:1: ruleReal returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_INT_0= RULE_INT (kw= FullStop this_INT_2= RULE_INT )? ) ; + // InternalSolverLanguageParser.g:4668:1: ruleReal returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_INT_0= RULE_INT kw= FullStop this_INT_2= RULE_INT ) ; public final AntlrDatatypeRuleToken ruleReal() throws RecognitionException { AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken(); @@ -10384,48 +11914,171 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { HiddenTokens myHiddenTokenState = ((XtextTokenStream)input).setHiddenTokens(); try { - // InternalSolverLanguageParser.g:4099:2: ( (this_INT_0= RULE_INT (kw= FullStop this_INT_2= RULE_INT )? ) ) - // InternalSolverLanguageParser.g:4100:2: (this_INT_0= RULE_INT (kw= FullStop this_INT_2= RULE_INT )? ) + // InternalSolverLanguageParser.g:4675:2: ( (this_INT_0= RULE_INT kw= FullStop this_INT_2= RULE_INT ) ) + // InternalSolverLanguageParser.g:4676:2: (this_INT_0= RULE_INT kw= FullStop this_INT_2= RULE_INT ) { - // InternalSolverLanguageParser.g:4100:2: (this_INT_0= RULE_INT (kw= FullStop this_INT_2= RULE_INT )? ) - // InternalSolverLanguageParser.g:4101:3: this_INT_0= RULE_INT (kw= FullStop this_INT_2= RULE_INT )? + // InternalSolverLanguageParser.g:4676:2: (this_INT_0= RULE_INT kw= FullStop this_INT_2= RULE_INT ) + // InternalSolverLanguageParser.g:4677:3: this_INT_0= RULE_INT kw= FullStop this_INT_2= RULE_INT { - this_INT_0=(Token)match(input,RULE_INT,FOLLOW_59); + this_INT_0=(Token)match(input,RULE_INT,FOLLOW_66); current.merge(this_INT_0); newLeafNode(this_INT_0, grammarAccess.getRealAccess().getINTTerminalRuleCall_0()); - // InternalSolverLanguageParser.g:4108:3: (kw= FullStop this_INT_2= RULE_INT )? - int alt50=2; - int LA50_0 = input.LA(1); + kw=(Token)match(input,FullStop,FOLLOW_57); + + current.merge(kw); + newLeafNode(kw, grammarAccess.getRealAccess().getFullStopKeyword_1()); + + this_INT_2=(Token)match(input,RULE_INT,FOLLOW_2); + + current.merge(this_INT_2); + + + newLeafNode(this_INT_2, grammarAccess.getRealAccess().getINTTerminalRuleCall_2()); + + + } + + + } + + + leaveRule(); + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + + myHiddenTokenState.restore(); + + } + return current; + } + // $ANTLR end "ruleReal" + + + // $ANTLR start "entryRuleQualifiedNameSegment" + // InternalSolverLanguageParser.g:4703:1: entryRuleQualifiedNameSegment returns [String current=null] : iv_ruleQualifiedNameSegment= ruleQualifiedNameSegment EOF ; + public final String entryRuleQualifiedNameSegment() throws RecognitionException { + String current = null; + + AntlrDatatypeRuleToken iv_ruleQualifiedNameSegment = null; + + + try { + // InternalSolverLanguageParser.g:4703:60: (iv_ruleQualifiedNameSegment= ruleQualifiedNameSegment EOF ) + // InternalSolverLanguageParser.g:4704:2: iv_ruleQualifiedNameSegment= ruleQualifiedNameSegment EOF + { + newCompositeNode(grammarAccess.getQualifiedNameSegmentRule()); + pushFollow(FOLLOW_1); + iv_ruleQualifiedNameSegment=ruleQualifiedNameSegment(); + + state._fsp--; + + current =iv_ruleQualifiedNameSegment.getText(); + match(input,EOF,FOLLOW_2); + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleQualifiedNameSegment" + + + // $ANTLR start "ruleQualifiedNameSegment" + // InternalSolverLanguageParser.g:4710:1: ruleQualifiedNameSegment returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_ID_0= RULE_ID | this_QUOTED_ID_1= RULE_QUOTED_ID | kw= Object ) ; + public final AntlrDatatypeRuleToken ruleQualifiedNameSegment() throws RecognitionException { + AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken(); + + Token this_ID_0=null; + Token this_QUOTED_ID_1=null; + Token kw=null; + + + enterRule(); + + try { + // InternalSolverLanguageParser.g:4716:2: ( (this_ID_0= RULE_ID | this_QUOTED_ID_1= RULE_QUOTED_ID | kw= Object ) ) + // InternalSolverLanguageParser.g:4717:2: (this_ID_0= RULE_ID | this_QUOTED_ID_1= RULE_QUOTED_ID | kw= Object ) + { + // InternalSolverLanguageParser.g:4717:2: (this_ID_0= RULE_ID | this_QUOTED_ID_1= RULE_QUOTED_ID | kw= Object ) + int alt59=3; + switch ( input.LA(1) ) { + case RULE_ID: + { + alt59=1; + } + break; + case RULE_QUOTED_ID: + { + alt59=2; + } + break; + case Object: + { + alt59=3; + } + break; + default: + NoViableAltException nvae = + new NoViableAltException("", 59, 0, input); - if ( (LA50_0==FullStop) ) { - alt50=1; + throw nvae; } - switch (alt50) { + + switch (alt59) { case 1 : - // InternalSolverLanguageParser.g:4109:4: kw= FullStop this_INT_2= RULE_INT + // InternalSolverLanguageParser.g:4718:3: this_ID_0= RULE_ID { - kw=(Token)match(input,FullStop,FOLLOW_53); + this_ID_0=(Token)match(input,RULE_ID,FOLLOW_2); - current.merge(kw); - newLeafNode(kw, grammarAccess.getRealAccess().getFullStopKeyword_1_0()); - - this_INT_2=(Token)match(input,RULE_INT,FOLLOW_2); + current.merge(this_ID_0); + - current.merge(this_INT_2); - + newLeafNode(this_ID_0, grammarAccess.getQualifiedNameSegmentAccess().getIDTerminalRuleCall_0()); + - newLeafNode(this_INT_2, grammarAccess.getRealAccess().getINTTerminalRuleCall_1_1()); - + } + break; + case 2 : + // InternalSolverLanguageParser.g:4726:3: this_QUOTED_ID_1= RULE_QUOTED_ID + { + this_QUOTED_ID_1=(Token)match(input,RULE_QUOTED_ID,FOLLOW_2); + + current.merge(this_QUOTED_ID_1); + + + newLeafNode(this_QUOTED_ID_1, grammarAccess.getQualifiedNameSegmentAccess().getQUOTED_IDTerminalRuleCall_1()); + } break; + case 3 : + // InternalSolverLanguageParser.g:4734:3: kw= Object + { + kw=(Token)match(input,Object,FOLLOW_2); - } + current.merge(kw); + newLeafNode(kw, grammarAccess.getQualifiedNameSegmentAccess().getObjectKeyword_2()); + + } + break; } @@ -10442,17 +12095,14 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { appendSkippedTokens(); } finally { - - myHiddenTokenState.restore(); - } return current; } - // $ANTLR end "ruleReal" + // $ANTLR end "ruleQualifiedNameSegment" // $ANTLR start "entryRuleQualifiedName" - // InternalSolverLanguageParser.g:4129:1: entryRuleQualifiedName returns [String current=null] : iv_ruleQualifiedName= ruleQualifiedName EOF ; + // InternalSolverLanguageParser.g:4743:1: entryRuleQualifiedName returns [String current=null] : iv_ruleQualifiedName= ruleQualifiedName EOF ; public final String entryRuleQualifiedName() throws RecognitionException { String current = null; @@ -10463,8 +12113,8 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { HiddenTokens myHiddenTokenState = ((XtextTokenStream)input).setHiddenTokens(); try { - // InternalSolverLanguageParser.g:4131:2: (iv_ruleQualifiedName= ruleQualifiedName EOF ) - // InternalSolverLanguageParser.g:4132:2: iv_ruleQualifiedName= ruleQualifiedName EOF + // InternalSolverLanguageParser.g:4745:2: (iv_ruleQualifiedName= ruleQualifiedName EOF ) + // InternalSolverLanguageParser.g:4746:2: iv_ruleQualifiedName= ruleQualifiedName EOF { newCompositeNode(grammarAccess.getQualifiedNameRule()); pushFollow(FOLLOW_1); @@ -10494,108 +12144,84 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { // $ANTLR start "ruleQualifiedName" - // InternalSolverLanguageParser.g:4141:1: ruleQualifiedName returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : ( (this_ID_0= RULE_ID (kw= FullStop this_ID_2= RULE_ID )* ) | this_QUOTED_ID_3= RULE_QUOTED_ID ) ; + // InternalSolverLanguageParser.g:4755:1: ruleQualifiedName returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_QualifiedNameSegment_0= ruleQualifiedNameSegment (kw= ColonColon this_QualifiedNameSegment_2= ruleQualifiedNameSegment )* ) ; public final AntlrDatatypeRuleToken ruleQualifiedName() throws RecognitionException { AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken(); - Token this_ID_0=null; Token kw=null; - Token this_ID_2=null; - Token this_QUOTED_ID_3=null; + AntlrDatatypeRuleToken this_QualifiedNameSegment_0 = null; + + AntlrDatatypeRuleToken this_QualifiedNameSegment_2 = null; + enterRule(); HiddenTokens myHiddenTokenState = ((XtextTokenStream)input).setHiddenTokens(); try { - // InternalSolverLanguageParser.g:4148:2: ( ( (this_ID_0= RULE_ID (kw= FullStop this_ID_2= RULE_ID )* ) | this_QUOTED_ID_3= RULE_QUOTED_ID ) ) - // InternalSolverLanguageParser.g:4149:2: ( (this_ID_0= RULE_ID (kw= FullStop this_ID_2= RULE_ID )* ) | this_QUOTED_ID_3= RULE_QUOTED_ID ) + // InternalSolverLanguageParser.g:4762:2: ( (this_QualifiedNameSegment_0= ruleQualifiedNameSegment (kw= ColonColon this_QualifiedNameSegment_2= ruleQualifiedNameSegment )* ) ) + // InternalSolverLanguageParser.g:4763:2: (this_QualifiedNameSegment_0= ruleQualifiedNameSegment (kw= ColonColon this_QualifiedNameSegment_2= ruleQualifiedNameSegment )* ) + { + // InternalSolverLanguageParser.g:4763:2: (this_QualifiedNameSegment_0= ruleQualifiedNameSegment (kw= ColonColon this_QualifiedNameSegment_2= ruleQualifiedNameSegment )* ) + // InternalSolverLanguageParser.g:4764:3: this_QualifiedNameSegment_0= ruleQualifiedNameSegment (kw= ColonColon this_QualifiedNameSegment_2= ruleQualifiedNameSegment )* { - // InternalSolverLanguageParser.g:4149:2: ( (this_ID_0= RULE_ID (kw= FullStop this_ID_2= RULE_ID )* ) | this_QUOTED_ID_3= RULE_QUOTED_ID ) - int alt52=2; - int LA52_0 = input.LA(1); - - if ( (LA52_0==RULE_ID) ) { - alt52=1; - } - else if ( (LA52_0==RULE_QUOTED_ID) ) { - alt52=2; - } - else { - NoViableAltException nvae = - new NoViableAltException("", 52, 0, input); - - throw nvae; - } - switch (alt52) { - case 1 : - // InternalSolverLanguageParser.g:4150:3: (this_ID_0= RULE_ID (kw= FullStop this_ID_2= RULE_ID )* ) - { - // InternalSolverLanguageParser.g:4150:3: (this_ID_0= RULE_ID (kw= FullStop this_ID_2= RULE_ID )* ) - // InternalSolverLanguageParser.g:4151:4: this_ID_0= RULE_ID (kw= FullStop this_ID_2= RULE_ID )* - { - this_ID_0=(Token)match(input,RULE_ID,FOLLOW_59); - current.merge(this_ID_0); - + newCompositeNode(grammarAccess.getQualifiedNameAccess().getQualifiedNameSegmentParserRuleCall_0()); + + pushFollow(FOLLOW_67); + this_QualifiedNameSegment_0=ruleQualifiedNameSegment(); - newLeafNode(this_ID_0, grammarAccess.getQualifiedNameAccess().getIDTerminalRuleCall_0_0()); - - // InternalSolverLanguageParser.g:4158:4: (kw= FullStop this_ID_2= RULE_ID )* - loop51: - do { - int alt51=2; - int LA51_0 = input.LA(1); + state._fsp--; - if ( (LA51_0==FullStop) ) { - alt51=1; - } + current.merge(this_QualifiedNameSegment_0); + - switch (alt51) { - case 1 : - // InternalSolverLanguageParser.g:4159:5: kw= FullStop this_ID_2= RULE_ID - { - kw=(Token)match(input,FullStop,FOLLOW_20); + afterParserOrEnumRuleCall(); + + // InternalSolverLanguageParser.g:4774:3: (kw= ColonColon this_QualifiedNameSegment_2= ruleQualifiedNameSegment )* + loop60: + do { + int alt60=2; + int LA60_0 = input.LA(1); - current.merge(kw); - newLeafNode(kw, grammarAccess.getQualifiedNameAccess().getFullStopKeyword_0_1_0()); - - this_ID_2=(Token)match(input,RULE_ID,FOLLOW_59); + if ( (LA60_0==ColonColon) ) { + alt60=1; + } - current.merge(this_ID_2); - - newLeafNode(this_ID_2, grammarAccess.getQualifiedNameAccess().getIDTerminalRuleCall_0_1_1()); - + switch (alt60) { + case 1 : + // InternalSolverLanguageParser.g:4775:4: kw= ColonColon this_QualifiedNameSegment_2= ruleQualifiedNameSegment + { + kw=(Token)match(input,ColonColon,FOLLOW_3); - } - break; + current.merge(kw); + newLeafNode(kw, grammarAccess.getQualifiedNameAccess().getColonColonKeyword_1_0()); + - default : - break loop51; - } - } while (true); + newCompositeNode(grammarAccess.getQualifiedNameAccess().getQualifiedNameSegmentParserRuleCall_1_1()); + + pushFollow(FOLLOW_67); + this_QualifiedNameSegment_2=ruleQualifiedNameSegment(); + state._fsp--; - } + current.merge(this_QualifiedNameSegment_2); + - } - break; - case 2 : - // InternalSolverLanguageParser.g:4174:3: this_QUOTED_ID_3= RULE_QUOTED_ID - { - this_QUOTED_ID_3=(Token)match(input,RULE_QUOTED_ID,FOLLOW_2); + afterParserOrEnumRuleCall(); + - current.merge(this_QUOTED_ID_3); - + } + break; - newLeafNode(this_QUOTED_ID_3, grammarAccess.getQualifiedNameAccess().getQUOTED_IDTerminalRuleCall_1()); - + default : + break loop60; + } + } while (true); - } - break; } @@ -10621,28 +12247,122 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { // $ANTLR end "ruleQualifiedName" - // $ANTLR start "ruleImplicationOperator" - // InternalSolverLanguageParser.g:4188:1: ruleImplicationOperator returns [Enumerator current=null] : (enumLiteral_0= EqualsSignGreaterThanSign ) ; - public final Enumerator ruleImplicationOperator() throws RecognitionException { + // $ANTLR start "ruleAttributeKind" + // InternalSolverLanguageParser.g:4798:1: ruleAttributeKind returns [Enumerator current=null] : ( (enumLiteral_0= Functional ) | (enumLiteral_1= Error ) | (enumLiteral_2= Root ) | (enumLiteral_3= Containment ) ) ; + public final Enumerator ruleAttributeKind() throws RecognitionException { Enumerator current = null; Token enumLiteral_0=null; + Token enumLiteral_1=null; + Token enumLiteral_2=null; + Token enumLiteral_3=null; enterRule(); try { - // InternalSolverLanguageParser.g:4194:2: ( (enumLiteral_0= EqualsSignGreaterThanSign ) ) - // InternalSolverLanguageParser.g:4195:2: (enumLiteral_0= EqualsSignGreaterThanSign ) - { - // InternalSolverLanguageParser.g:4195:2: (enumLiteral_0= EqualsSignGreaterThanSign ) - // InternalSolverLanguageParser.g:4196:3: enumLiteral_0= EqualsSignGreaterThanSign + // InternalSolverLanguageParser.g:4804:2: ( ( (enumLiteral_0= Functional ) | (enumLiteral_1= Error ) | (enumLiteral_2= Root ) | (enumLiteral_3= Containment ) ) ) + // InternalSolverLanguageParser.g:4805:2: ( (enumLiteral_0= Functional ) | (enumLiteral_1= Error ) | (enumLiteral_2= Root ) | (enumLiteral_3= Containment ) ) { - enumLiteral_0=(Token)match(input,EqualsSignGreaterThanSign,FOLLOW_2); + // InternalSolverLanguageParser.g:4805:2: ( (enumLiteral_0= Functional ) | (enumLiteral_1= Error ) | (enumLiteral_2= Root ) | (enumLiteral_3= Containment ) ) + int alt61=4; + switch ( input.LA(1) ) { + case Functional: + { + alt61=1; + } + break; + case Error: + { + alt61=2; + } + break; + case Root: + { + alt61=3; + } + break; + case Containment: + { + alt61=4; + } + break; + default: + NoViableAltException nvae = + new NoViableAltException("", 61, 0, input); - current = grammarAccess.getImplicationOperatorAccess().getIMPLIESEnumLiteralDeclaration().getEnumLiteral().getInstance(); - newLeafNode(enumLiteral_0, grammarAccess.getImplicationOperatorAccess().getIMPLIESEnumLiteralDeclaration()); - + throw nvae; + } + + switch (alt61) { + case 1 : + // InternalSolverLanguageParser.g:4806:3: (enumLiteral_0= Functional ) + { + // InternalSolverLanguageParser.g:4806:3: (enumLiteral_0= Functional ) + // InternalSolverLanguageParser.g:4807:4: enumLiteral_0= Functional + { + enumLiteral_0=(Token)match(input,Functional,FOLLOW_2); + + current = grammarAccess.getAttributeKindAccess().getFUNCTIONALEnumLiteralDeclaration_0().getEnumLiteral().getInstance(); + newLeafNode(enumLiteral_0, grammarAccess.getAttributeKindAccess().getFUNCTIONALEnumLiteralDeclaration_0()); + + + } + + + } + break; + case 2 : + // InternalSolverLanguageParser.g:4814:3: (enumLiteral_1= Error ) + { + // InternalSolverLanguageParser.g:4814:3: (enumLiteral_1= Error ) + // InternalSolverLanguageParser.g:4815:4: enumLiteral_1= Error + { + enumLiteral_1=(Token)match(input,Error,FOLLOW_2); + + current = grammarAccess.getAttributeKindAccess().getERROREnumLiteralDeclaration_1().getEnumLiteral().getInstance(); + newLeafNode(enumLiteral_1, grammarAccess.getAttributeKindAccess().getERROREnumLiteralDeclaration_1()); + + + } + + + } + break; + case 3 : + // InternalSolverLanguageParser.g:4822:3: (enumLiteral_2= Root ) + { + // InternalSolverLanguageParser.g:4822:3: (enumLiteral_2= Root ) + // InternalSolverLanguageParser.g:4823:4: enumLiteral_2= Root + { + enumLiteral_2=(Token)match(input,Root,FOLLOW_2); + + current = grammarAccess.getAttributeKindAccess().getROOTEnumLiteralDeclaration_2().getEnumLiteral().getInstance(); + newLeafNode(enumLiteral_2, grammarAccess.getAttributeKindAccess().getROOTEnumLiteralDeclaration_2()); + + + } + + + } + break; + case 4 : + // InternalSolverLanguageParser.g:4830:3: (enumLiteral_3= Containment ) + { + // InternalSolverLanguageParser.g:4830:3: (enumLiteral_3= Containment ) + // InternalSolverLanguageParser.g:4831:4: enumLiteral_3= Containment + { + enumLiteral_3=(Token)match(input,Containment,FOLLOW_2); + + current = grammarAccess.getAttributeKindAccess().getCONTAINMENTEnumLiteralDeclaration_3().getEnumLiteral().getInstance(); + newLeafNode(enumLiteral_3, grammarAccess.getAttributeKindAccess().getCONTAINMENTEnumLiteralDeclaration_3()); + + + } + + + } + break; } @@ -10662,11 +12382,11 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } return current; } - // $ANTLR end "ruleImplicationOperator" + // $ANTLR end "ruleAttributeKind" // $ANTLR start "ruleComparisonOperator" - // InternalSolverLanguageParser.g:4205:1: ruleComparisonOperator returns [Enumerator current=null] : ( (enumLiteral_0= EqualsSignEqualsSign ) | (enumLiteral_1= ExclamationMarkEqualsSign ) | (enumLiteral_2= LessThanSign ) | (enumLiteral_3= LessThanSignEqualsSign ) | (enumLiteral_4= GreaterThanSign ) | (enumLiteral_5= GreaterThanSignEqualsSign ) | (enumLiteral_6= In ) ) ; + // InternalSolverLanguageParser.g:4841:1: ruleComparisonOperator returns [Enumerator current=null] : ( (enumLiteral_0= EqualsSignEqualsSign ) | (enumLiteral_1= ExclamationMarkEqualsSign ) | (enumLiteral_2= LessThanSign ) | (enumLiteral_3= LessThanSignEqualsSign ) | (enumLiteral_4= GreaterThanSign ) | (enumLiteral_5= GreaterThanSignEqualsSign ) | (enumLiteral_6= In ) ) ; public final Enumerator ruleComparisonOperator() throws RecognitionException { Enumerator current = null; @@ -10682,65 +12402,65 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { enterRule(); try { - // InternalSolverLanguageParser.g:4211:2: ( ( (enumLiteral_0= EqualsSignEqualsSign ) | (enumLiteral_1= ExclamationMarkEqualsSign ) | (enumLiteral_2= LessThanSign ) | (enumLiteral_3= LessThanSignEqualsSign ) | (enumLiteral_4= GreaterThanSign ) | (enumLiteral_5= GreaterThanSignEqualsSign ) | (enumLiteral_6= In ) ) ) - // InternalSolverLanguageParser.g:4212:2: ( (enumLiteral_0= EqualsSignEqualsSign ) | (enumLiteral_1= ExclamationMarkEqualsSign ) | (enumLiteral_2= LessThanSign ) | (enumLiteral_3= LessThanSignEqualsSign ) | (enumLiteral_4= GreaterThanSign ) | (enumLiteral_5= GreaterThanSignEqualsSign ) | (enumLiteral_6= In ) ) + // InternalSolverLanguageParser.g:4847:2: ( ( (enumLiteral_0= EqualsSignEqualsSign ) | (enumLiteral_1= ExclamationMarkEqualsSign ) | (enumLiteral_2= LessThanSign ) | (enumLiteral_3= LessThanSignEqualsSign ) | (enumLiteral_4= GreaterThanSign ) | (enumLiteral_5= GreaterThanSignEqualsSign ) | (enumLiteral_6= In ) ) ) + // InternalSolverLanguageParser.g:4848:2: ( (enumLiteral_0= EqualsSignEqualsSign ) | (enumLiteral_1= ExclamationMarkEqualsSign ) | (enumLiteral_2= LessThanSign ) | (enumLiteral_3= LessThanSignEqualsSign ) | (enumLiteral_4= GreaterThanSign ) | (enumLiteral_5= GreaterThanSignEqualsSign ) | (enumLiteral_6= In ) ) { - // InternalSolverLanguageParser.g:4212:2: ( (enumLiteral_0= EqualsSignEqualsSign ) | (enumLiteral_1= ExclamationMarkEqualsSign ) | (enumLiteral_2= LessThanSign ) | (enumLiteral_3= LessThanSignEqualsSign ) | (enumLiteral_4= GreaterThanSign ) | (enumLiteral_5= GreaterThanSignEqualsSign ) | (enumLiteral_6= In ) ) - int alt53=7; + // InternalSolverLanguageParser.g:4848:2: ( (enumLiteral_0= EqualsSignEqualsSign ) | (enumLiteral_1= ExclamationMarkEqualsSign ) | (enumLiteral_2= LessThanSign ) | (enumLiteral_3= LessThanSignEqualsSign ) | (enumLiteral_4= GreaterThanSign ) | (enumLiteral_5= GreaterThanSignEqualsSign ) | (enumLiteral_6= In ) ) + int alt62=7; switch ( input.LA(1) ) { case EqualsSignEqualsSign: { - alt53=1; + alt62=1; } break; case ExclamationMarkEqualsSign: { - alt53=2; + alt62=2; } break; case LessThanSign: { - alt53=3; + alt62=3; } break; case LessThanSignEqualsSign: { - alt53=4; + alt62=4; } break; case GreaterThanSign: { - alt53=5; + alt62=5; } break; case GreaterThanSignEqualsSign: { - alt53=6; + alt62=6; } break; case In: { - alt53=7; + alt62=7; } break; default: NoViableAltException nvae = - new NoViableAltException("", 53, 0, input); + new NoViableAltException("", 62, 0, input); throw nvae; } - switch (alt53) { + switch (alt62) { case 1 : - // InternalSolverLanguageParser.g:4213:3: (enumLiteral_0= EqualsSignEqualsSign ) + // InternalSolverLanguageParser.g:4849:3: (enumLiteral_0= EqualsSignEqualsSign ) { - // InternalSolverLanguageParser.g:4213:3: (enumLiteral_0= EqualsSignEqualsSign ) - // InternalSolverLanguageParser.g:4214:4: enumLiteral_0= EqualsSignEqualsSign + // InternalSolverLanguageParser.g:4849:3: (enumLiteral_0= EqualsSignEqualsSign ) + // InternalSolverLanguageParser.g:4850:4: enumLiteral_0= EqualsSignEqualsSign { enumLiteral_0=(Token)match(input,EqualsSignEqualsSign,FOLLOW_2); - current = grammarAccess.getComparisonOperatorAccess().getEQEnumLiteralDeclaration_0().getEnumLiteral().getInstance(); - newLeafNode(enumLiteral_0, grammarAccess.getComparisonOperatorAccess().getEQEnumLiteralDeclaration_0()); + current = grammarAccess.getComparisonOperatorAccess().getEQUALSEnumLiteralDeclaration_0().getEnumLiteral().getInstance(); + newLeafNode(enumLiteral_0, grammarAccess.getComparisonOperatorAccess().getEQUALSEnumLiteralDeclaration_0()); } @@ -10749,15 +12469,15 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } break; case 2 : - // InternalSolverLanguageParser.g:4221:3: (enumLiteral_1= ExclamationMarkEqualsSign ) + // InternalSolverLanguageParser.g:4857:3: (enumLiteral_1= ExclamationMarkEqualsSign ) { - // InternalSolverLanguageParser.g:4221:3: (enumLiteral_1= ExclamationMarkEqualsSign ) - // InternalSolverLanguageParser.g:4222:4: enumLiteral_1= ExclamationMarkEqualsSign + // InternalSolverLanguageParser.g:4857:3: (enumLiteral_1= ExclamationMarkEqualsSign ) + // InternalSolverLanguageParser.g:4858:4: enumLiteral_1= ExclamationMarkEqualsSign { enumLiteral_1=(Token)match(input,ExclamationMarkEqualsSign,FOLLOW_2); - current = grammarAccess.getComparisonOperatorAccess().getNOT_EQEnumLiteralDeclaration_1().getEnumLiteral().getInstance(); - newLeafNode(enumLiteral_1, grammarAccess.getComparisonOperatorAccess().getNOT_EQEnumLiteralDeclaration_1()); + current = grammarAccess.getComparisonOperatorAccess().getNOT_EQUALSEnumLiteralDeclaration_1().getEnumLiteral().getInstance(); + newLeafNode(enumLiteral_1, grammarAccess.getComparisonOperatorAccess().getNOT_EQUALSEnumLiteralDeclaration_1()); } @@ -10766,10 +12486,10 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } break; case 3 : - // InternalSolverLanguageParser.g:4229:3: (enumLiteral_2= LessThanSign ) + // InternalSolverLanguageParser.g:4865:3: (enumLiteral_2= LessThanSign ) { - // InternalSolverLanguageParser.g:4229:3: (enumLiteral_2= LessThanSign ) - // InternalSolverLanguageParser.g:4230:4: enumLiteral_2= LessThanSign + // InternalSolverLanguageParser.g:4865:3: (enumLiteral_2= LessThanSign ) + // InternalSolverLanguageParser.g:4866:4: enumLiteral_2= LessThanSign { enumLiteral_2=(Token)match(input,LessThanSign,FOLLOW_2); @@ -10783,15 +12503,15 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } break; case 4 : - // InternalSolverLanguageParser.g:4237:3: (enumLiteral_3= LessThanSignEqualsSign ) + // InternalSolverLanguageParser.g:4873:3: (enumLiteral_3= LessThanSignEqualsSign ) { - // InternalSolverLanguageParser.g:4237:3: (enumLiteral_3= LessThanSignEqualsSign ) - // InternalSolverLanguageParser.g:4238:4: enumLiteral_3= LessThanSignEqualsSign + // InternalSolverLanguageParser.g:4873:3: (enumLiteral_3= LessThanSignEqualsSign ) + // InternalSolverLanguageParser.g:4874:4: enumLiteral_3= LessThanSignEqualsSign { enumLiteral_3=(Token)match(input,LessThanSignEqualsSign,FOLLOW_2); - current = grammarAccess.getComparisonOperatorAccess().getLESS_EQEnumLiteralDeclaration_3().getEnumLiteral().getInstance(); - newLeafNode(enumLiteral_3, grammarAccess.getComparisonOperatorAccess().getLESS_EQEnumLiteralDeclaration_3()); + current = grammarAccess.getComparisonOperatorAccess().getLESS_EQUALSEnumLiteralDeclaration_3().getEnumLiteral().getInstance(); + newLeafNode(enumLiteral_3, grammarAccess.getComparisonOperatorAccess().getLESS_EQUALSEnumLiteralDeclaration_3()); } @@ -10800,10 +12520,10 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } break; case 5 : - // InternalSolverLanguageParser.g:4245:3: (enumLiteral_4= GreaterThanSign ) + // InternalSolverLanguageParser.g:4881:3: (enumLiteral_4= GreaterThanSign ) { - // InternalSolverLanguageParser.g:4245:3: (enumLiteral_4= GreaterThanSign ) - // InternalSolverLanguageParser.g:4246:4: enumLiteral_4= GreaterThanSign + // InternalSolverLanguageParser.g:4881:3: (enumLiteral_4= GreaterThanSign ) + // InternalSolverLanguageParser.g:4882:4: enumLiteral_4= GreaterThanSign { enumLiteral_4=(Token)match(input,GreaterThanSign,FOLLOW_2); @@ -10817,15 +12537,15 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } break; case 6 : - // InternalSolverLanguageParser.g:4253:3: (enumLiteral_5= GreaterThanSignEqualsSign ) + // InternalSolverLanguageParser.g:4889:3: (enumLiteral_5= GreaterThanSignEqualsSign ) { - // InternalSolverLanguageParser.g:4253:3: (enumLiteral_5= GreaterThanSignEqualsSign ) - // InternalSolverLanguageParser.g:4254:4: enumLiteral_5= GreaterThanSignEqualsSign + // InternalSolverLanguageParser.g:4889:3: (enumLiteral_5= GreaterThanSignEqualsSign ) + // InternalSolverLanguageParser.g:4890:4: enumLiteral_5= GreaterThanSignEqualsSign { enumLiteral_5=(Token)match(input,GreaterThanSignEqualsSign,FOLLOW_2); - current = grammarAccess.getComparisonOperatorAccess().getGREATER_EQEnumLiteralDeclaration_5().getEnumLiteral().getInstance(); - newLeafNode(enumLiteral_5, grammarAccess.getComparisonOperatorAccess().getGREATER_EQEnumLiteralDeclaration_5()); + current = grammarAccess.getComparisonOperatorAccess().getGREATER_EQUALSEnumLiteralDeclaration_5().getEnumLiteral().getInstance(); + newLeafNode(enumLiteral_5, grammarAccess.getComparisonOperatorAccess().getGREATER_EQUALSEnumLiteralDeclaration_5()); } @@ -10834,10 +12554,10 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } break; case 7 : - // InternalSolverLanguageParser.g:4261:3: (enumLiteral_6= In ) + // InternalSolverLanguageParser.g:4897:3: (enumLiteral_6= In ) { - // InternalSolverLanguageParser.g:4261:3: (enumLiteral_6= In ) - // InternalSolverLanguageParser.g:4262:4: enumLiteral_6= In + // InternalSolverLanguageParser.g:4897:3: (enumLiteral_6= In ) + // InternalSolverLanguageParser.g:4898:4: enumLiteral_6= In { enumLiteral_6=(Token)match(input,In,FOLLOW_2); @@ -10873,7 +12593,7 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { // $ANTLR start "ruleAdditiveBinaryOperator" - // InternalSolverLanguageParser.g:4272:1: ruleAdditiveBinaryOperator returns [Enumerator current=null] : ( (enumLiteral_0= PlusSign ) | (enumLiteral_1= HyphenMinus ) ) ; + // InternalSolverLanguageParser.g:4908:1: ruleAdditiveBinaryOperator returns [Enumerator current=null] : ( (enumLiteral_0= PlusSign ) | (enumLiteral_1= HyphenMinus ) ) ; public final Enumerator ruleAdditiveBinaryOperator() throws RecognitionException { Enumerator current = null; @@ -10884,36 +12604,36 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { enterRule(); try { - // InternalSolverLanguageParser.g:4278:2: ( ( (enumLiteral_0= PlusSign ) | (enumLiteral_1= HyphenMinus ) ) ) - // InternalSolverLanguageParser.g:4279:2: ( (enumLiteral_0= PlusSign ) | (enumLiteral_1= HyphenMinus ) ) + // InternalSolverLanguageParser.g:4914:2: ( ( (enumLiteral_0= PlusSign ) | (enumLiteral_1= HyphenMinus ) ) ) + // InternalSolverLanguageParser.g:4915:2: ( (enumLiteral_0= PlusSign ) | (enumLiteral_1= HyphenMinus ) ) { - // InternalSolverLanguageParser.g:4279:2: ( (enumLiteral_0= PlusSign ) | (enumLiteral_1= HyphenMinus ) ) - int alt54=2; - int LA54_0 = input.LA(1); + // InternalSolverLanguageParser.g:4915:2: ( (enumLiteral_0= PlusSign ) | (enumLiteral_1= HyphenMinus ) ) + int alt63=2; + int LA63_0 = input.LA(1); - if ( (LA54_0==PlusSign) ) { - alt54=1; + if ( (LA63_0==PlusSign) ) { + alt63=1; } - else if ( (LA54_0==HyphenMinus) ) { - alt54=2; + else if ( (LA63_0==HyphenMinus) ) { + alt63=2; } else { NoViableAltException nvae = - new NoViableAltException("", 54, 0, input); + new NoViableAltException("", 63, 0, input); throw nvae; } - switch (alt54) { + switch (alt63) { case 1 : - // InternalSolverLanguageParser.g:4280:3: (enumLiteral_0= PlusSign ) + // InternalSolverLanguageParser.g:4916:3: (enumLiteral_0= PlusSign ) { - // InternalSolverLanguageParser.g:4280:3: (enumLiteral_0= PlusSign ) - // InternalSolverLanguageParser.g:4281:4: enumLiteral_0= PlusSign + // InternalSolverLanguageParser.g:4916:3: (enumLiteral_0= PlusSign ) + // InternalSolverLanguageParser.g:4917:4: enumLiteral_0= PlusSign { enumLiteral_0=(Token)match(input,PlusSign,FOLLOW_2); - current = grammarAccess.getAdditiveBinaryOperatorAccess().getADDEnumLiteralDeclaration_0().getEnumLiteral().getInstance(); - newLeafNode(enumLiteral_0, grammarAccess.getAdditiveBinaryOperatorAccess().getADDEnumLiteralDeclaration_0()); + current = grammarAccess.getAdditiveBinaryOperatorAccess().getPLUSEnumLiteralDeclaration_0().getEnumLiteral().getInstance(); + newLeafNode(enumLiteral_0, grammarAccess.getAdditiveBinaryOperatorAccess().getPLUSEnumLiteralDeclaration_0()); } @@ -10922,15 +12642,15 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } break; case 2 : - // InternalSolverLanguageParser.g:4288:3: (enumLiteral_1= HyphenMinus ) + // InternalSolverLanguageParser.g:4924:3: (enumLiteral_1= HyphenMinus ) { - // InternalSolverLanguageParser.g:4288:3: (enumLiteral_1= HyphenMinus ) - // InternalSolverLanguageParser.g:4289:4: enumLiteral_1= HyphenMinus + // InternalSolverLanguageParser.g:4924:3: (enumLiteral_1= HyphenMinus ) + // InternalSolverLanguageParser.g:4925:4: enumLiteral_1= HyphenMinus { enumLiteral_1=(Token)match(input,HyphenMinus,FOLLOW_2); - current = grammarAccess.getAdditiveBinaryOperatorAccess().getSUBEnumLiteralDeclaration_1().getEnumLiteral().getInstance(); - newLeafNode(enumLiteral_1, grammarAccess.getAdditiveBinaryOperatorAccess().getSUBEnumLiteralDeclaration_1()); + current = grammarAccess.getAdditiveBinaryOperatorAccess().getMINUSEnumLiteralDeclaration_1().getEnumLiteral().getInstance(); + newLeafNode(enumLiteral_1, grammarAccess.getAdditiveBinaryOperatorAccess().getMINUSEnumLiteralDeclaration_1()); } @@ -10961,7 +12681,7 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { // $ANTLR start "ruleMultiplicativeBinaryOperator" - // InternalSolverLanguageParser.g:4299:1: ruleMultiplicativeBinaryOperator returns [Enumerator current=null] : ( (enumLiteral_0= Asterisk ) | (enumLiteral_1= Solidus ) ) ; + // InternalSolverLanguageParser.g:4935:1: ruleMultiplicativeBinaryOperator returns [Enumerator current=null] : ( (enumLiteral_0= Asterisk ) | (enumLiteral_1= Solidus ) ) ; public final Enumerator ruleMultiplicativeBinaryOperator() throws RecognitionException { Enumerator current = null; @@ -10972,36 +12692,36 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { enterRule(); try { - // InternalSolverLanguageParser.g:4305:2: ( ( (enumLiteral_0= Asterisk ) | (enumLiteral_1= Solidus ) ) ) - // InternalSolverLanguageParser.g:4306:2: ( (enumLiteral_0= Asterisk ) | (enumLiteral_1= Solidus ) ) + // InternalSolverLanguageParser.g:4941:2: ( ( (enumLiteral_0= Asterisk ) | (enumLiteral_1= Solidus ) ) ) + // InternalSolverLanguageParser.g:4942:2: ( (enumLiteral_0= Asterisk ) | (enumLiteral_1= Solidus ) ) { - // InternalSolverLanguageParser.g:4306:2: ( (enumLiteral_0= Asterisk ) | (enumLiteral_1= Solidus ) ) - int alt55=2; - int LA55_0 = input.LA(1); + // InternalSolverLanguageParser.g:4942:2: ( (enumLiteral_0= Asterisk ) | (enumLiteral_1= Solidus ) ) + int alt64=2; + int LA64_0 = input.LA(1); - if ( (LA55_0==Asterisk) ) { - alt55=1; + if ( (LA64_0==Asterisk) ) { + alt64=1; } - else if ( (LA55_0==Solidus) ) { - alt55=2; + else if ( (LA64_0==Solidus) ) { + alt64=2; } else { NoViableAltException nvae = - new NoViableAltException("", 55, 0, input); + new NoViableAltException("", 64, 0, input); throw nvae; } - switch (alt55) { + switch (alt64) { case 1 : - // InternalSolverLanguageParser.g:4307:3: (enumLiteral_0= Asterisk ) + // InternalSolverLanguageParser.g:4943:3: (enumLiteral_0= Asterisk ) { - // InternalSolverLanguageParser.g:4307:3: (enumLiteral_0= Asterisk ) - // InternalSolverLanguageParser.g:4308:4: enumLiteral_0= Asterisk + // InternalSolverLanguageParser.g:4943:3: (enumLiteral_0= Asterisk ) + // InternalSolverLanguageParser.g:4944:4: enumLiteral_0= Asterisk { enumLiteral_0=(Token)match(input,Asterisk,FOLLOW_2); - current = grammarAccess.getMultiplicativeBinaryOperatorAccess().getMULEnumLiteralDeclaration_0().getEnumLiteral().getInstance(); - newLeafNode(enumLiteral_0, grammarAccess.getMultiplicativeBinaryOperatorAccess().getMULEnumLiteralDeclaration_0()); + current = grammarAccess.getMultiplicativeBinaryOperatorAccess().getMULTIPLYEnumLiteralDeclaration_0().getEnumLiteral().getInstance(); + newLeafNode(enumLiteral_0, grammarAccess.getMultiplicativeBinaryOperatorAccess().getMULTIPLYEnumLiteralDeclaration_0()); } @@ -11010,15 +12730,15 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } break; case 2 : - // InternalSolverLanguageParser.g:4315:3: (enumLiteral_1= Solidus ) + // InternalSolverLanguageParser.g:4951:3: (enumLiteral_1= Solidus ) { - // InternalSolverLanguageParser.g:4315:3: (enumLiteral_1= Solidus ) - // InternalSolverLanguageParser.g:4316:4: enumLiteral_1= Solidus + // InternalSolverLanguageParser.g:4951:3: (enumLiteral_1= Solidus ) + // InternalSolverLanguageParser.g:4952:4: enumLiteral_1= Solidus { enumLiteral_1=(Token)match(input,Solidus,FOLLOW_2); - current = grammarAccess.getMultiplicativeBinaryOperatorAccess().getDIVEnumLiteralDeclaration_1().getEnumLiteral().getInstance(); - newLeafNode(enumLiteral_1, grammarAccess.getMultiplicativeBinaryOperatorAccess().getDIVEnumLiteralDeclaration_1()); + current = grammarAccess.getMultiplicativeBinaryOperatorAccess().getDIVIDEEnumLiteralDeclaration_1().getEnumLiteral().getInstance(); + newLeafNode(enumLiteral_1, grammarAccess.getMultiplicativeBinaryOperatorAccess().getDIVIDEEnumLiteralDeclaration_1()); } @@ -11049,7 +12769,7 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { // $ANTLR start "ruleExponentialOp" - // InternalSolverLanguageParser.g:4326:1: ruleExponentialOp returns [Enumerator current=null] : (enumLiteral_0= CircumflexAccent ) ; + // InternalSolverLanguageParser.g:4962:1: ruleExponentialOp returns [Enumerator current=null] : (enumLiteral_0= CircumflexAccent ) ; public final Enumerator ruleExponentialOp() throws RecognitionException { Enumerator current = null; @@ -11059,11 +12779,11 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { enterRule(); try { - // InternalSolverLanguageParser.g:4332:2: ( (enumLiteral_0= CircumflexAccent ) ) - // InternalSolverLanguageParser.g:4333:2: (enumLiteral_0= CircumflexAccent ) + // InternalSolverLanguageParser.g:4968:2: ( (enumLiteral_0= CircumflexAccent ) ) + // InternalSolverLanguageParser.g:4969:2: (enumLiteral_0= CircumflexAccent ) { - // InternalSolverLanguageParser.g:4333:2: (enumLiteral_0= CircumflexAccent ) - // InternalSolverLanguageParser.g:4334:3: enumLiteral_0= CircumflexAccent + // InternalSolverLanguageParser.g:4969:2: (enumLiteral_0= CircumflexAccent ) + // InternalSolverLanguageParser.g:4970:3: enumLiteral_0= CircumflexAccent { enumLiteral_0=(Token)match(input,CircumflexAccent,FOLLOW_2); @@ -11092,76 +12812,64 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { // $ANTLR end "ruleExponentialOp" - // $ANTLR start "ruleUnaryOp" - // InternalSolverLanguageParser.g:4343:1: ruleUnaryOp returns [Enumerator current=null] : ( (enumLiteral_0= ExclamationMark ) | (enumLiteral_1= PlusSign ) | (enumLiteral_2= HyphenMinus ) | (enumLiteral_3= May ) | (enumLiteral_4= Must ) | (enumLiteral_5= Current ) ) ; - public final Enumerator ruleUnaryOp() throws RecognitionException { + // $ANTLR start "ruleUnaryOperator" + // InternalSolverLanguageParser.g:4979:1: ruleUnaryOperator returns [Enumerator current=null] : ( (enumLiteral_0= ExclamationMark ) | (enumLiteral_1= PlusSign ) | (enumLiteral_2= HyphenMinus ) | (enumLiteral_3= QuestionMark ) ) ; + public final Enumerator ruleUnaryOperator() throws RecognitionException { Enumerator current = null; Token enumLiteral_0=null; Token enumLiteral_1=null; Token enumLiteral_2=null; Token enumLiteral_3=null; - Token enumLiteral_4=null; - Token enumLiteral_5=null; enterRule(); try { - // InternalSolverLanguageParser.g:4349:2: ( ( (enumLiteral_0= ExclamationMark ) | (enumLiteral_1= PlusSign ) | (enumLiteral_2= HyphenMinus ) | (enumLiteral_3= May ) | (enumLiteral_4= Must ) | (enumLiteral_5= Current ) ) ) - // InternalSolverLanguageParser.g:4350:2: ( (enumLiteral_0= ExclamationMark ) | (enumLiteral_1= PlusSign ) | (enumLiteral_2= HyphenMinus ) | (enumLiteral_3= May ) | (enumLiteral_4= Must ) | (enumLiteral_5= Current ) ) + // InternalSolverLanguageParser.g:4985:2: ( ( (enumLiteral_0= ExclamationMark ) | (enumLiteral_1= PlusSign ) | (enumLiteral_2= HyphenMinus ) | (enumLiteral_3= QuestionMark ) ) ) + // InternalSolverLanguageParser.g:4986:2: ( (enumLiteral_0= ExclamationMark ) | (enumLiteral_1= PlusSign ) | (enumLiteral_2= HyphenMinus ) | (enumLiteral_3= QuestionMark ) ) { - // InternalSolverLanguageParser.g:4350:2: ( (enumLiteral_0= ExclamationMark ) | (enumLiteral_1= PlusSign ) | (enumLiteral_2= HyphenMinus ) | (enumLiteral_3= May ) | (enumLiteral_4= Must ) | (enumLiteral_5= Current ) ) - int alt56=6; + // InternalSolverLanguageParser.g:4986:2: ( (enumLiteral_0= ExclamationMark ) | (enumLiteral_1= PlusSign ) | (enumLiteral_2= HyphenMinus ) | (enumLiteral_3= QuestionMark ) ) + int alt65=4; switch ( input.LA(1) ) { case ExclamationMark: { - alt56=1; + alt65=1; } break; case PlusSign: { - alt56=2; + alt65=2; } break; case HyphenMinus: { - alt56=3; - } - break; - case May: - { - alt56=4; - } - break; - case Must: - { - alt56=5; + alt65=3; } break; - case Current: + case QuestionMark: { - alt56=6; + alt65=4; } break; default: NoViableAltException nvae = - new NoViableAltException("", 56, 0, input); + new NoViableAltException("", 65, 0, input); throw nvae; } - switch (alt56) { + switch (alt65) { case 1 : - // InternalSolverLanguageParser.g:4351:3: (enumLiteral_0= ExclamationMark ) + // InternalSolverLanguageParser.g:4987:3: (enumLiteral_0= ExclamationMark ) { - // InternalSolverLanguageParser.g:4351:3: (enumLiteral_0= ExclamationMark ) - // InternalSolverLanguageParser.g:4352:4: enumLiteral_0= ExclamationMark + // InternalSolverLanguageParser.g:4987:3: (enumLiteral_0= ExclamationMark ) + // InternalSolverLanguageParser.g:4988:4: enumLiteral_0= ExclamationMark { enumLiteral_0=(Token)match(input,ExclamationMark,FOLLOW_2); - current = grammarAccess.getUnaryOpAccess().getNEGEnumLiteralDeclaration_0().getEnumLiteral().getInstance(); - newLeafNode(enumLiteral_0, grammarAccess.getUnaryOpAccess().getNEGEnumLiteralDeclaration_0()); + current = grammarAccess.getUnaryOperatorAccess().getNOTEnumLiteralDeclaration_0().getEnumLiteral().getInstance(); + newLeafNode(enumLiteral_0, grammarAccess.getUnaryOperatorAccess().getNOTEnumLiteralDeclaration_0()); } @@ -11170,15 +12878,15 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } break; case 2 : - // InternalSolverLanguageParser.g:4359:3: (enumLiteral_1= PlusSign ) + // InternalSolverLanguageParser.g:4995:3: (enumLiteral_1= PlusSign ) { - // InternalSolverLanguageParser.g:4359:3: (enumLiteral_1= PlusSign ) - // InternalSolverLanguageParser.g:4360:4: enumLiteral_1= PlusSign + // InternalSolverLanguageParser.g:4995:3: (enumLiteral_1= PlusSign ) + // InternalSolverLanguageParser.g:4996:4: enumLiteral_1= PlusSign { enumLiteral_1=(Token)match(input,PlusSign,FOLLOW_2); - current = grammarAccess.getUnaryOpAccess().getPLUSEnumLiteralDeclaration_1().getEnumLiteral().getInstance(); - newLeafNode(enumLiteral_1, grammarAccess.getUnaryOpAccess().getPLUSEnumLiteralDeclaration_1()); + current = grammarAccess.getUnaryOperatorAccess().getPLUSEnumLiteralDeclaration_1().getEnumLiteral().getInstance(); + newLeafNode(enumLiteral_1, grammarAccess.getUnaryOperatorAccess().getPLUSEnumLiteralDeclaration_1()); } @@ -11187,15 +12895,15 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } break; case 3 : - // InternalSolverLanguageParser.g:4367:3: (enumLiteral_2= HyphenMinus ) + // InternalSolverLanguageParser.g:5003:3: (enumLiteral_2= HyphenMinus ) { - // InternalSolverLanguageParser.g:4367:3: (enumLiteral_2= HyphenMinus ) - // InternalSolverLanguageParser.g:4368:4: enumLiteral_2= HyphenMinus + // InternalSolverLanguageParser.g:5003:3: (enumLiteral_2= HyphenMinus ) + // InternalSolverLanguageParser.g:5004:4: enumLiteral_2= HyphenMinus { enumLiteral_2=(Token)match(input,HyphenMinus,FOLLOW_2); - current = grammarAccess.getUnaryOpAccess().getMINUSEnumLiteralDeclaration_2().getEnumLiteral().getInstance(); - newLeafNode(enumLiteral_2, grammarAccess.getUnaryOpAccess().getMINUSEnumLiteralDeclaration_2()); + current = grammarAccess.getUnaryOperatorAccess().getMINUSEnumLiteralDeclaration_2().getEnumLiteral().getInstance(); + newLeafNode(enumLiteral_2, grammarAccess.getUnaryOperatorAccess().getMINUSEnumLiteralDeclaration_2()); } @@ -11204,164 +12912,15 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } break; case 4 : - // InternalSolverLanguageParser.g:4375:3: (enumLiteral_3= May ) - { - // InternalSolverLanguageParser.g:4375:3: (enumLiteral_3= May ) - // InternalSolverLanguageParser.g:4376:4: enumLiteral_3= May - { - enumLiteral_3=(Token)match(input,May,FOLLOW_2); - - current = grammarAccess.getUnaryOpAccess().getMAYEnumLiteralDeclaration_3().getEnumLiteral().getInstance(); - newLeafNode(enumLiteral_3, grammarAccess.getUnaryOpAccess().getMAYEnumLiteralDeclaration_3()); - - - } - - - } - break; - case 5 : - // InternalSolverLanguageParser.g:4383:3: (enumLiteral_4= Must ) - { - // InternalSolverLanguageParser.g:4383:3: (enumLiteral_4= Must ) - // InternalSolverLanguageParser.g:4384:4: enumLiteral_4= Must - { - enumLiteral_4=(Token)match(input,Must,FOLLOW_2); - - current = grammarAccess.getUnaryOpAccess().getMUSTEnumLiteralDeclaration_4().getEnumLiteral().getInstance(); - newLeafNode(enumLiteral_4, grammarAccess.getUnaryOpAccess().getMUSTEnumLiteralDeclaration_4()); - - - } - - - } - break; - case 6 : - // InternalSolverLanguageParser.g:4391:3: (enumLiteral_5= Current ) - { - // InternalSolverLanguageParser.g:4391:3: (enumLiteral_5= Current ) - // InternalSolverLanguageParser.g:4392:4: enumLiteral_5= Current - { - enumLiteral_5=(Token)match(input,Current,FOLLOW_2); - - current = grammarAccess.getUnaryOpAccess().getCURRENTEnumLiteralDeclaration_5().getEnumLiteral().getInstance(); - newLeafNode(enumLiteral_5, grammarAccess.getUnaryOpAccess().getCURRENTEnumLiteralDeclaration_5()); - - - } - - - } - break; - - } - - - } - - - leaveRule(); - - } - - catch (RecognitionException re) { - recover(input,re); - appendSkippedTokens(); - } - finally { - } - return current; - } - // $ANTLR end "ruleUnaryOp" - - - // $ANTLR start "ruleQuantifier" - // InternalSolverLanguageParser.g:4402:1: ruleQuantifier returns [Enumerator current=null] : ( (enumLiteral_0= Exists ) | (enumLiteral_1= Forall ) | (enumLiteral_2= Count ) ) ; - public final Enumerator ruleQuantifier() throws RecognitionException { - Enumerator current = null; - - Token enumLiteral_0=null; - Token enumLiteral_1=null; - Token enumLiteral_2=null; - - - enterRule(); - - try { - // InternalSolverLanguageParser.g:4408:2: ( ( (enumLiteral_0= Exists ) | (enumLiteral_1= Forall ) | (enumLiteral_2= Count ) ) ) - // InternalSolverLanguageParser.g:4409:2: ( (enumLiteral_0= Exists ) | (enumLiteral_1= Forall ) | (enumLiteral_2= Count ) ) - { - // InternalSolverLanguageParser.g:4409:2: ( (enumLiteral_0= Exists ) | (enumLiteral_1= Forall ) | (enumLiteral_2= Count ) ) - int alt57=3; - switch ( input.LA(1) ) { - case Exists: - { - alt57=1; - } - break; - case Forall: - { - alt57=2; - } - break; - case Count: - { - alt57=3; - } - break; - default: - NoViableAltException nvae = - new NoViableAltException("", 57, 0, input); - - throw nvae; - } - - switch (alt57) { - case 1 : - // InternalSolverLanguageParser.g:4410:3: (enumLiteral_0= Exists ) - { - // InternalSolverLanguageParser.g:4410:3: (enumLiteral_0= Exists ) - // InternalSolverLanguageParser.g:4411:4: enumLiteral_0= Exists - { - enumLiteral_0=(Token)match(input,Exists,FOLLOW_2); - - current = grammarAccess.getQuantifierAccess().getEXISTSEnumLiteralDeclaration_0().getEnumLiteral().getInstance(); - newLeafNode(enumLiteral_0, grammarAccess.getQuantifierAccess().getEXISTSEnumLiteralDeclaration_0()); - - - } - - - } - break; - case 2 : - // InternalSolverLanguageParser.g:4418:3: (enumLiteral_1= Forall ) - { - // InternalSolverLanguageParser.g:4418:3: (enumLiteral_1= Forall ) - // InternalSolverLanguageParser.g:4419:4: enumLiteral_1= Forall + // InternalSolverLanguageParser.g:5011:3: (enumLiteral_3= QuestionMark ) { - enumLiteral_1=(Token)match(input,Forall,FOLLOW_2); - - current = grammarAccess.getQuantifierAccess().getFORALLEnumLiteralDeclaration_1().getEnumLiteral().getInstance(); - newLeafNode(enumLiteral_1, grammarAccess.getQuantifierAccess().getFORALLEnumLiteralDeclaration_1()); - - - } - - - } - break; - case 3 : - // InternalSolverLanguageParser.g:4426:3: (enumLiteral_2= Count ) - { - // InternalSolverLanguageParser.g:4426:3: (enumLiteral_2= Count ) - // InternalSolverLanguageParser.g:4427:4: enumLiteral_2= Count + // InternalSolverLanguageParser.g:5011:3: (enumLiteral_3= QuestionMark ) + // InternalSolverLanguageParser.g:5012:4: enumLiteral_3= QuestionMark { - enumLiteral_2=(Token)match(input,Count,FOLLOW_2); + enumLiteral_3=(Token)match(input,QuestionMark,FOLLOW_2); - current = grammarAccess.getQuantifierAccess().getCOUNTEnumLiteralDeclaration_2().getEnumLiteral().getInstance(); - newLeafNode(enumLiteral_2, grammarAccess.getQuantifierAccess().getCOUNTEnumLiteralDeclaration_2()); + current = grammarAccess.getUnaryOperatorAccess().getMAYBEEnumLiteralDeclaration_3().getEnumLiteral().getInstance(); + newLeafNode(enumLiteral_3, grammarAccess.getUnaryOperatorAccess().getMAYBEEnumLiteralDeclaration_3()); } @@ -11388,11 +12947,11 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } return current; } - // $ANTLR end "ruleQuantifier" + // $ANTLR end "ruleUnaryOperator" // $ANTLR start "ruleLogicValue" - // InternalSolverLanguageParser.g:4437:1: ruleLogicValue returns [Enumerator current=null] : ( (enumLiteral_0= True ) | (enumLiteral_1= False ) | (enumLiteral_2= Unknown ) | (enumLiteral_3= Error ) ) ; + // InternalSolverLanguageParser.g:5022:1: ruleLogicValue returns [Enumerator current=null] : ( (enumLiteral_0= True ) | (enumLiteral_1= False ) | (enumLiteral_2= Unknown ) | (enumLiteral_3= Error ) ) ; public final Enumerator ruleLogicValue() throws RecognitionException { Enumerator current = null; @@ -11405,45 +12964,45 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { enterRule(); try { - // InternalSolverLanguageParser.g:4443:2: ( ( (enumLiteral_0= True ) | (enumLiteral_1= False ) | (enumLiteral_2= Unknown ) | (enumLiteral_3= Error ) ) ) - // InternalSolverLanguageParser.g:4444:2: ( (enumLiteral_0= True ) | (enumLiteral_1= False ) | (enumLiteral_2= Unknown ) | (enumLiteral_3= Error ) ) + // InternalSolverLanguageParser.g:5028:2: ( ( (enumLiteral_0= True ) | (enumLiteral_1= False ) | (enumLiteral_2= Unknown ) | (enumLiteral_3= Error ) ) ) + // InternalSolverLanguageParser.g:5029:2: ( (enumLiteral_0= True ) | (enumLiteral_1= False ) | (enumLiteral_2= Unknown ) | (enumLiteral_3= Error ) ) { - // InternalSolverLanguageParser.g:4444:2: ( (enumLiteral_0= True ) | (enumLiteral_1= False ) | (enumLiteral_2= Unknown ) | (enumLiteral_3= Error ) ) - int alt58=4; + // InternalSolverLanguageParser.g:5029:2: ( (enumLiteral_0= True ) | (enumLiteral_1= False ) | (enumLiteral_2= Unknown ) | (enumLiteral_3= Error ) ) + int alt66=4; switch ( input.LA(1) ) { case True: { - alt58=1; + alt66=1; } break; case False: { - alt58=2; + alt66=2; } break; case Unknown: { - alt58=3; + alt66=3; } break; case Error: { - alt58=4; + alt66=4; } break; default: NoViableAltException nvae = - new NoViableAltException("", 58, 0, input); + new NoViableAltException("", 66, 0, input); throw nvae; } - switch (alt58) { + switch (alt66) { case 1 : - // InternalSolverLanguageParser.g:4445:3: (enumLiteral_0= True ) + // InternalSolverLanguageParser.g:5030:3: (enumLiteral_0= True ) { - // InternalSolverLanguageParser.g:4445:3: (enumLiteral_0= True ) - // InternalSolverLanguageParser.g:4446:4: enumLiteral_0= True + // InternalSolverLanguageParser.g:5030:3: (enumLiteral_0= True ) + // InternalSolverLanguageParser.g:5031:4: enumLiteral_0= True { enumLiteral_0=(Token)match(input,True,FOLLOW_2); @@ -11457,10 +13016,10 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } break; case 2 : - // InternalSolverLanguageParser.g:4453:3: (enumLiteral_1= False ) + // InternalSolverLanguageParser.g:5038:3: (enumLiteral_1= False ) { - // InternalSolverLanguageParser.g:4453:3: (enumLiteral_1= False ) - // InternalSolverLanguageParser.g:4454:4: enumLiteral_1= False + // InternalSolverLanguageParser.g:5038:3: (enumLiteral_1= False ) + // InternalSolverLanguageParser.g:5039:4: enumLiteral_1= False { enumLiteral_1=(Token)match(input,False,FOLLOW_2); @@ -11474,10 +13033,10 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } break; case 3 : - // InternalSolverLanguageParser.g:4461:3: (enumLiteral_2= Unknown ) + // InternalSolverLanguageParser.g:5046:3: (enumLiteral_2= Unknown ) { - // InternalSolverLanguageParser.g:4461:3: (enumLiteral_2= Unknown ) - // InternalSolverLanguageParser.g:4462:4: enumLiteral_2= Unknown + // InternalSolverLanguageParser.g:5046:3: (enumLiteral_2= Unknown ) + // InternalSolverLanguageParser.g:5047:4: enumLiteral_2= Unknown { enumLiteral_2=(Token)match(input,Unknown,FOLLOW_2); @@ -11491,10 +13050,10 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } break; case 4 : - // InternalSolverLanguageParser.g:4469:3: (enumLiteral_3= Error ) + // InternalSolverLanguageParser.g:5054:3: (enumLiteral_3= Error ) { - // InternalSolverLanguageParser.g:4469:3: (enumLiteral_3= Error ) - // InternalSolverLanguageParser.g:4470:4: enumLiteral_3= Error + // InternalSolverLanguageParser.g:5054:3: (enumLiteral_3= Error ) + // InternalSolverLanguageParser.g:5055:4: enumLiteral_3= Error { enumLiteral_3=(Token)match(input,Error,FOLLOW_2); @@ -11530,7 +13089,7 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { // $ANTLR start "ruleObjectiveKind" - // InternalSolverLanguageParser.g:4480:1: ruleObjectiveKind returns [Enumerator current=null] : ( (enumLiteral_0= Minimize ) | (enumLiteral_1= Maximize ) ) ; + // InternalSolverLanguageParser.g:5065:1: ruleObjectiveKind returns [Enumerator current=null] : ( (enumLiteral_0= Minimize ) | (enumLiteral_1= Maximize ) ) ; public final Enumerator ruleObjectiveKind() throws RecognitionException { Enumerator current = null; @@ -11541,36 +13100,36 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { enterRule(); try { - // InternalSolverLanguageParser.g:4486:2: ( ( (enumLiteral_0= Minimize ) | (enumLiteral_1= Maximize ) ) ) - // InternalSolverLanguageParser.g:4487:2: ( (enumLiteral_0= Minimize ) | (enumLiteral_1= Maximize ) ) + // InternalSolverLanguageParser.g:5071:2: ( ( (enumLiteral_0= Minimize ) | (enumLiteral_1= Maximize ) ) ) + // InternalSolverLanguageParser.g:5072:2: ( (enumLiteral_0= Minimize ) | (enumLiteral_1= Maximize ) ) { - // InternalSolverLanguageParser.g:4487:2: ( (enumLiteral_0= Minimize ) | (enumLiteral_1= Maximize ) ) - int alt59=2; - int LA59_0 = input.LA(1); + // InternalSolverLanguageParser.g:5072:2: ( (enumLiteral_0= Minimize ) | (enumLiteral_1= Maximize ) ) + int alt67=2; + int LA67_0 = input.LA(1); - if ( (LA59_0==Minimize) ) { - alt59=1; + if ( (LA67_0==Minimize) ) { + alt67=1; } - else if ( (LA59_0==Maximize) ) { - alt59=2; + else if ( (LA67_0==Maximize) ) { + alt67=2; } else { NoViableAltException nvae = - new NoViableAltException("", 59, 0, input); + new NoViableAltException("", 67, 0, input); throw nvae; } - switch (alt59) { + switch (alt67) { case 1 : - // InternalSolverLanguageParser.g:4488:3: (enumLiteral_0= Minimize ) + // InternalSolverLanguageParser.g:5073:3: (enumLiteral_0= Minimize ) { - // InternalSolverLanguageParser.g:4488:3: (enumLiteral_0= Minimize ) - // InternalSolverLanguageParser.g:4489:4: enumLiteral_0= Minimize + // InternalSolverLanguageParser.g:5073:3: (enumLiteral_0= Minimize ) + // InternalSolverLanguageParser.g:5074:4: enumLiteral_0= Minimize { enumLiteral_0=(Token)match(input,Minimize,FOLLOW_2); - current = grammarAccess.getObjectiveKindAccess().getMINIMIZEEnumLiteralDeclaration_0().getEnumLiteral().getInstance(); - newLeafNode(enumLiteral_0, grammarAccess.getObjectiveKindAccess().getMINIMIZEEnumLiteralDeclaration_0()); + current = grammarAccess.getObjectiveKindAccess().getMINIMIZATIONEnumLiteralDeclaration_0().getEnumLiteral().getInstance(); + newLeafNode(enumLiteral_0, grammarAccess.getObjectiveKindAccess().getMINIMIZATIONEnumLiteralDeclaration_0()); } @@ -11579,15 +13138,15 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } break; case 2 : - // InternalSolverLanguageParser.g:4496:3: (enumLiteral_1= Maximize ) + // InternalSolverLanguageParser.g:5081:3: (enumLiteral_1= Maximize ) { - // InternalSolverLanguageParser.g:4496:3: (enumLiteral_1= Maximize ) - // InternalSolverLanguageParser.g:4497:4: enumLiteral_1= Maximize + // InternalSolverLanguageParser.g:5081:3: (enumLiteral_1= Maximize ) + // InternalSolverLanguageParser.g:5082:4: enumLiteral_1= Maximize { enumLiteral_1=(Token)match(input,Maximize,FOLLOW_2); - current = grammarAccess.getObjectiveKindAccess().getMAXIMIZEEnumLiteralDeclaration_1().getEnumLiteral().getInstance(); - newLeafNode(enumLiteral_1, grammarAccess.getObjectiveKindAccess().getMAXIMIZEEnumLiteralDeclaration_1()); + current = grammarAccess.getObjectiveKindAccess().getMAXIMIZATIONEnumLiteralDeclaration_1().getEnumLiteral().getInstance(); + newLeafNode(enumLiteral_1, grammarAccess.getObjectiveKindAccess().getMAXIMIZATIONEnumLiteralDeclaration_1()); } @@ -11619,44 +13178,47 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { // Delegated rules - protected DFA2 dfa2 = new DFA2(this); - protected DFA23 dfa23 = new DFA23(this); - protected DFA29 dfa29 = new DFA29(this); - protected DFA33 dfa33 = new DFA33(this); - protected DFA44 dfa44 = new DFA44(this); - static final String dfa_1s = "\33\uffff"; - static final String dfa_2s = "\1\4\1\uffff\2\40\1\4\2\uffff\1\7\3\uffff\1\105\2\uffff\2\54\1\uffff\1\40\1\105\2\54\1\uffff\1\54\1\105\2\uffff\1\54"; - static final String dfa_3s = "\1\106\1\uffff\3\105\2\uffff\1\105\3\uffff\1\105\2\uffff\2\105\1\uffff\2\105\2\74\1\uffff\2\105\2\uffff\1\74"; - static final String dfa_4s = "\1\uffff\1\1\3\uffff\1\2\1\4\1\uffff\1\12\1\13\1\14\1\uffff\1\5\1\3\2\uffff\1\11\4\uffff\1\6\2\uffff\1\7\1\10\1\uffff"; - static final String dfa_5s = "\33\uffff}>"; + protected DFA4 dfa4 = new DFA4(this); + protected DFA13 dfa13 = new DFA13(this); + protected DFA30 dfa30 = new DFA30(this); + protected DFA31 dfa31 = new DFA31(this); + protected DFA34 dfa34 = new DFA34(this); + protected DFA53 dfa53 = new DFA53(this); + static final String dfa_1s = "\35\uffff"; + static final String dfa_2s = "\1\4\1\uffff\3\22\1\5\1\22\1\uffff\1\6\6\uffff\1\22\2\uffff\3\45\1\uffff\4\22\3\45"; + static final String dfa_3s = "\1\113\1\uffff\5\112\1\uffff\1\112\6\uffff\1\112\2\uffff\3\111\1\uffff\4\112\3\111"; + static final String dfa_4s = "\1\uffff\1\1\5\uffff\1\4\1\uffff\1\6\1\7\1\10\1\11\1\12\1\13\1\uffff\1\5\1\2\3\uffff\1\3\7\uffff"; + static final String dfa_5s = "\35\uffff}>"; static final String[] dfa_6s = { - "\1\5\1\10\2\uffff\2\12\1\uffff\1\1\1\6\1\uffff\2\1\1\7\1\1\1\10\2\1\1\4\1\1\1\11\1\uffff\1\1\1\uffff\1\1\1\uffff\3\1\11\uffff\1\1\1\uffff\2\1\2\uffff\1\1\1\uffff\1\1\7\uffff\1\1\5\uffff\1\1\1\3\4\uffff\1\2\1\1", + "\1\11\1\6\1\15\2\uffff\2\14\1\uffff\1\7\2\uffff\1\1\1\12\1\uffff\1\4\1\uffff\1\15\2\1\1\5\1\1\1\13\1\uffff\1\16\1\10\1\uffff\1\1\1\uffff\2\1\12\uffff\1\1\1\uffff\2\1\2\uffff\1\1\1\uffff\1\1\7\uffff\2\1\5\uffff\2\1\1\3\4\uffff\1\2\1\1", "", - "\2\1\1\uffff\6\1\1\uffff\1\1\1\uffff\1\1\1\uffff\4\1\1\13\7\1\1\uffff\2\1\3\uffff\1\14\1\uffff\3\1\1\14", - "\2\1\1\uffff\6\1\1\uffff\1\1\1\uffff\1\1\1\uffff\4\1\1\uffff\7\1\1\uffff\2\1\3\uffff\1\14\1\uffff\3\1\1\14", - "\1\5\33\uffff\2\1\1\uffff\6\1\1\uffff\1\1\1\uffff\1\15\1\uffff\4\1\1\uffff\6\1\2\uffff\1\1\4\uffff\1\5\3\uffff\1\1\1\5", + "\1\20\17\uffff\3\1\1\17\6\1\1\uffff\1\1\1\uffff\1\1\1\uffff\11\1\1\uffff\1\1\3\uffff\2\1\2\uffff\1\20\1\uffff\1\20\1\uffff\3\1\1\20", + "\1\20\17\uffff\3\1\1\17\6\1\1\uffff\1\1\1\uffff\1\1\1\uffff\11\1\1\uffff\1\1\3\uffff\2\1\2\uffff\1\20\1\uffff\1\20\1\uffff\3\1\1\20", + "\1\20\17\uffff\3\1\1\17\6\1\1\uffff\1\1\1\uffff\1\1\1\uffff\11\1\1\uffff\1\1\3\uffff\2\1\2\uffff\1\20\1\uffff\1\20\1\uffff\3\1\1\20", + "\1\21\14\uffff\1\24\17\uffff\3\1\1\uffff\6\1\1\uffff\1\1\1\uffff\1\25\1\uffff\4\1\1\uffff\4\1\1\uffff\1\1\3\uffff\1\1\3\uffff\1\21\1\uffff\1\23\3\uffff\1\1\1\22", + "\1\24\4\uffff\1\21\53\uffff\1\21\1\uffff\1\23\4\uffff\1\22", "", + "\1\15\13\uffff\1\11\1\uffff\1\15\7\uffff\1\15\50\uffff\1\11\4\uffff\1\11", "", - "\1\20\70\uffff\1\17\4\uffff\1\16", "", "", "", - "\1\21", "", "", - "\1\25\5\uffff\1\22\15\uffff\1\24\4\uffff\1\23", - "\1\25\23\uffff\1\24\4\uffff\1\23", + "\1\30\62\uffff\1\27\4\uffff\1\26", "", - "\2\1\1\uffff\6\1\1\uffff\1\1\1\uffff\1\1\1\uffff\4\1\1\13\7\1\1\uffff\2\1\3\uffff\1\14\1\uffff\3\1\1\14", - "\1\26", - "\1\30\5\uffff\1\27\11\uffff\1\31", - "\1\30\17\uffff\1\31", "", - "\1\25\5\uffff\1\22\15\uffff\1\24\4\uffff\1\23", - "\1\32", + "\1\31\11\uffff\1\21\5\uffff\1\21\21\uffff\2\21\1\11", + "\1\31\11\uffff\1\21\5\uffff\1\21\21\uffff\2\21\1\11", + "\1\31\11\uffff\1\21\5\uffff\1\21\21\uffff\2\21\1\11", "", - "", - "\1\30\5\uffff\1\27\11\uffff\1\31" + "\1\20\17\uffff\3\1\1\17\6\1\1\uffff\1\1\1\uffff\1\1\1\uffff\11\1\1\uffff\1\1\3\uffff\2\1\2\uffff\1\20\1\uffff\1\20\1\uffff\3\1\1\20", + "\1\20\17\uffff\3\1\1\17\6\1\1\uffff\1\1\1\uffff\1\1\1\uffff\11\1\1\uffff\1\1\3\uffff\2\1\2\uffff\1\20\1\uffff\1\20\1\uffff\3\1\1\20", + "\1\20\17\uffff\3\1\1\17\6\1\1\uffff\1\1\1\uffff\1\1\1\uffff\11\1\1\uffff\1\1\3\uffff\2\1\2\uffff\1\20\1\uffff\1\20\1\uffff\3\1\1\20", + "\1\34\62\uffff\1\33\4\uffff\1\32", + "\1\31\11\uffff\1\21\5\uffff\1\21\21\uffff\2\21\1\11", + "\1\31\11\uffff\1\21\5\uffff\1\21\21\uffff\2\21\1\11", + "\1\31\11\uffff\1\21\5\uffff\1\21\21\uffff\2\21\1\11" }; static final short[] dfa_1 = DFA.unpackEncodedString(dfa_1s); @@ -11666,11 +13228,11 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { static final short[] dfa_5 = DFA.unpackEncodedString(dfa_5s); static final short[][] dfa_6 = unpackEncodedStringArray(dfa_6s); - class DFA2 extends DFA { + class DFA4 extends DFA { - public DFA2(BaseRecognizer recognizer) { + public DFA4(BaseRecognizer recognizer) { this.recognizer = recognizer; - this.decisionNumber = 2; + this.decisionNumber = 4; this.eot = dfa_1; this.eof = dfa_1; this.min = dfa_2; @@ -11680,243 +13242,336 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { this.transition = dfa_6; } public String getDescription() { - return "109:3: (this_AssertionOrDefinition_0= ruleAssertionOrDefinition | this_PredicateDefinition_1= rulePredicateDefinition | this_UnnamedErrorPrediateDefinition_2= ruleUnnamedErrorPrediateDefinition | this_DefaultDefinition_3= ruleDefaultDefinition | this_MetricDefinition_4= ruleMetricDefinition | this_ExternPredicateDefinition_5= ruleExternPredicateDefinition | this_ExternMetricDefinition_6= ruleExternMetricDefinition | this_ExternAggregatorDefinition_7= ruleExternAggregatorDefinition | this_ExternDatatypeDefinition_8= ruleExternDatatypeDefinition | this_ClassDefinition_9= ruleClassDefinition | this_ScopeDefinition_10= ruleScopeDefinition | this_ObjectiveDefinition_11= ruleObjectiveDefinition )"; - } - } - static final String dfa_7s = "\10\uffff"; - static final String dfa_8s = "\1\uffff\2\3\4\uffff\1\3"; - static final String dfa_9s = "\1\16\2\30\2\uffff\1\105\1\uffff\1\30"; - static final String dfa_10s = "\1\106\2\104\2\uffff\1\105\1\uffff\1\104"; - static final String dfa_11s = "\3\uffff\1\1\1\2\1\uffff\1\3\1\uffff"; - static final String dfa_12s = "\10\uffff}>"; - static final String[] dfa_13s = { - "\1\3\1\4\1\uffff\1\4\1\uffff\1\4\3\3\4\uffff\1\3\1\uffff\1\3\16\uffff\1\3\14\uffff\1\3\5\uffff\1\3\1\2\4\uffff\1\1\1\3", - "\1\3\1\uffff\1\3\5\uffff\11\3\1\uffff\1\3\1\uffff\6\3\1\5\6\3\1\6\2\3\1\6\2\3\3\uffff\3\3", - "\1\3\1\uffff\1\3\5\uffff\11\3\1\uffff\1\3\1\uffff\6\3\1\uffff\6\3\1\6\2\3\1\6\2\3\3\uffff\3\3", + return "158:2: (this_AssertionOrDefinition_0= ruleAssertionOrDefinition | this_PredicateDefinition_1= rulePredicateDefinition | this_UnnamedErrorPredicateDefintion_2= ruleUnnamedErrorPredicateDefintion | this_DefaultAssertion_3= ruleDefaultAssertion | this_FunctionDefinition_4= ruleFunctionDefinition | this_Attribute_5= ruleAttribute | this_ExternDeclaration_6= ruleExternDeclaration | this_ScopeDeclaration_7= ruleScopeDeclaration | this_ObjectiveDeclaration_8= ruleObjectiveDeclaration | this_ClassDeclaration_9= ruleClassDeclaration | this_EnumDeclaration_10= ruleEnumDeclaration )"; + } + } + static final String dfa_7s = "\24\uffff"; + static final String dfa_8s = "\1\20\1\5\2\uffff\4\22\3\45\4\22\2\uffff\3\45"; + static final String dfa_9s = "\1\20\1\112\2\uffff\4\112\3\100\4\112\2\uffff\3\100"; + static final String dfa_10s = "\2\uffff\1\4\1\1\13\uffff\1\3\1\2\3\uffff"; + static final String dfa_11s = "\24\uffff}>"; + static final String[] dfa_12s = { + "\1\1", + "\1\3\2\uffff\1\2\11\uffff\1\6\4\uffff\1\3\55\uffff\1\5\4\uffff\1\4", "", "", - "\1\7", + "\1\12\22\uffff\1\7\11\uffff\1\3\25\uffff\1\11\4\uffff\1\10", + "\1\12\22\uffff\1\7\11\uffff\1\3\25\uffff\1\11\4\uffff\1\10", + "\1\12\22\uffff\1\7\11\uffff\1\3\25\uffff\1\11\4\uffff\1\10", + "\1\15\62\uffff\1\14\4\uffff\1\13", + "\1\16\11\uffff\1\20\20\uffff\1\17", + "\1\16\11\uffff\1\20\20\uffff\1\17", + "\1\16\11\uffff\1\20\20\uffff\1\17", + "\1\12\22\uffff\1\7\11\uffff\1\3\25\uffff\1\11\4\uffff\1\10", + "\1\12\22\uffff\1\7\11\uffff\1\3\25\uffff\1\11\4\uffff\1\10", + "\1\12\22\uffff\1\7\11\uffff\1\3\25\uffff\1\11\4\uffff\1\10", + "\1\23\62\uffff\1\22\4\uffff\1\21", "", - "\1\3\1\uffff\1\3\5\uffff\11\3\1\uffff\1\3\1\uffff\6\3\1\5\6\3\1\6\2\3\1\6\2\3\3\uffff\3\3" + "", + "\1\16\11\uffff\1\20\20\uffff\1\17", + "\1\16\11\uffff\1\20\20\uffff\1\17", + "\1\16\11\uffff\1\20\20\uffff\1\17" }; static final short[] dfa_7 = DFA.unpackEncodedString(dfa_7s); - static final short[] dfa_8 = DFA.unpackEncodedString(dfa_8s); + static final char[] dfa_8 = DFA.unpackEncodedStringToUnsignedChars(dfa_8s); static final char[] dfa_9 = DFA.unpackEncodedStringToUnsignedChars(dfa_9s); - static final char[] dfa_10 = DFA.unpackEncodedStringToUnsignedChars(dfa_10s); + static final short[] dfa_10 = DFA.unpackEncodedString(dfa_10s); static final short[] dfa_11 = DFA.unpackEncodedString(dfa_11s); - static final short[] dfa_12 = DFA.unpackEncodedString(dfa_12s); - static final short[][] dfa_13 = unpackEncodedStringArray(dfa_13s); + static final short[][] dfa_12 = unpackEncodedStringArray(dfa_12s); - class DFA23 extends DFA { + class DFA13 extends DFA { - public DFA23(BaseRecognizer recognizer) { + public DFA13(BaseRecognizer recognizer) { this.recognizer = recognizer; - this.decisionNumber = 23; + this.decisionNumber = 13; this.eot = dfa_7; - this.eof = dfa_8; - this.min = dfa_9; - this.max = dfa_10; - this.accept = dfa_11; - this.special = dfa_12; - this.transition = dfa_13; + this.eof = dfa_7; + this.min = dfa_8; + this.max = dfa_9; + this.accept = dfa_10; + this.special = dfa_11; + this.transition = dfa_12; } public String getDescription() { - return "2100:2: (this_AtomicExpression_0= ruleAtomicExpression | this_QuantifiedExpression_1= ruleQuantifiedExpression | this_Aggregation_2= ruleAggregation )"; - } - } - static final String dfa_14s = "\12\uffff"; - static final String dfa_15s = "\1\uffff\2\10\6\uffff\1\10"; - static final String dfa_16s = "\1\16\2\30\3\uffff\1\105\2\uffff\1\30"; - static final String dfa_17s = "\1\106\2\104\3\uffff\1\105\2\uffff\1\104"; - static final String dfa_18s = "\3\uffff\1\3\1\4\1\5\1\uffff\1\2\1\1\1\uffff"; - static final String dfa_19s = "\12\uffff}>"; - static final String[] dfa_20s = { - "\1\4\5\uffff\3\4\4\uffff\1\4\1\uffff\1\4\16\uffff\1\5\14\uffff\1\3\5\uffff\1\4\1\2\4\uffff\1\1\1\4", - "\1\10\1\uffff\1\10\5\uffff\11\10\1\uffff\1\10\1\uffff\1\7\5\10\1\6\6\10\1\uffff\2\10\1\uffff\2\10\3\uffff\2\7\1\10", - "\1\10\1\uffff\1\10\5\uffff\11\10\1\uffff\1\10\1\uffff\1\7\5\10\1\uffff\6\10\1\uffff\2\10\1\uffff\2\10\3\uffff\2\7\1\10", - "", - "", + return "1041:2: (this_ExternPredicateDeclaration_0= ruleExternPredicateDeclaration | this_ExternFunctionDeclaration_1= ruleExternFunctionDeclaration | this_ExternAggregationOperatorDeclaration_2= ruleExternAggregationOperatorDeclaration | this_ExternDatatypeDeclaration_3= ruleExternDatatypeDeclaration )"; + } + } + static final String dfa_13s = "\13\uffff"; + static final String dfa_14s = "\2\uffff\3\1\3\uffff\3\1"; + static final String dfa_15s = "\1\17\1\uffff\3\32\1\uffff\1\22\1\uffff\3\32"; + static final String dfa_16s = "\1\113\1\uffff\3\111\1\uffff\1\112\1\uffff\3\111"; + static final String dfa_17s = "\1\uffff\1\1\3\uffff\1\3\1\uffff\1\2\3\uffff"; + static final String dfa_18s = "\13\uffff}>"; + static final String[] dfa_19s = { + "\1\1\2\uffff\1\4\2\uffff\1\5\3\1\5\uffff\1\1\1\uffff\1\1\16\uffff\1\1\15\uffff\1\1\5\uffff\2\1\1\3\4\uffff\1\2\1\1", "", - "\1\11", + "\1\1\2\uffff\1\1\4\uffff\3\1\1\6\6\1\1\uffff\1\1\1\uffff\13\1\1\uffff\1\1\2\uffff\2\1\1\7\2\1\4\uffff\3\1", + "\1\1\2\uffff\1\1\4\uffff\3\1\1\6\6\1\1\uffff\1\1\1\uffff\13\1\1\uffff\1\1\2\uffff\2\1\1\7\2\1\4\uffff\3\1", + "\1\1\2\uffff\1\1\4\uffff\3\1\1\6\6\1\1\uffff\1\1\1\uffff\13\1\1\uffff\1\1\2\uffff\2\1\1\7\2\1\4\uffff\3\1", "", + "\1\12\62\uffff\1\11\4\uffff\1\10", "", - "\1\10\1\uffff\1\10\5\uffff\11\10\1\uffff\1\10\1\uffff\1\7\5\10\1\6\6\10\1\uffff\2\10\1\uffff\2\10\3\uffff\2\7\1\10" + "\1\1\2\uffff\1\1\4\uffff\3\1\1\6\6\1\1\uffff\1\1\1\uffff\13\1\1\uffff\1\1\2\uffff\2\1\1\7\2\1\4\uffff\3\1", + "\1\1\2\uffff\1\1\4\uffff\3\1\1\6\6\1\1\uffff\1\1\1\uffff\13\1\1\uffff\1\1\2\uffff\2\1\1\7\2\1\4\uffff\3\1", + "\1\1\2\uffff\1\1\4\uffff\3\1\1\6\6\1\1\uffff\1\1\1\uffff\13\1\1\uffff\1\1\2\uffff\2\1\1\7\2\1\4\uffff\3\1" }; + static final short[] dfa_13 = DFA.unpackEncodedString(dfa_13s); static final short[] dfa_14 = DFA.unpackEncodedString(dfa_14s); - static final short[] dfa_15 = DFA.unpackEncodedString(dfa_15s); + static final char[] dfa_15 = DFA.unpackEncodedStringToUnsignedChars(dfa_15s); static final char[] dfa_16 = DFA.unpackEncodedStringToUnsignedChars(dfa_16s); - static final char[] dfa_17 = DFA.unpackEncodedStringToUnsignedChars(dfa_17s); + static final short[] dfa_17 = DFA.unpackEncodedString(dfa_17s); static final short[] dfa_18 = DFA.unpackEncodedString(dfa_18s); - static final short[] dfa_19 = DFA.unpackEncodedString(dfa_19s); - static final short[][] dfa_20 = unpackEncodedStringArray(dfa_20s); + static final short[][] dfa_19 = unpackEncodedStringArray(dfa_19s); - class DFA29 extends DFA { + class DFA30 extends DFA { - public DFA29(BaseRecognizer recognizer) { + public DFA30(BaseRecognizer recognizer) { this.recognizer = recognizer; - this.decisionNumber = 29; - this.eot = dfa_14; - this.eof = dfa_15; - this.min = dfa_16; - this.max = dfa_17; - this.accept = dfa_18; - this.special = dfa_19; - this.transition = dfa_20; + this.decisionNumber = 30; + this.eot = dfa_13; + this.eof = dfa_14; + this.min = dfa_15; + this.max = dfa_16; + this.accept = dfa_17; + this.special = dfa_18; + this.transition = dfa_19; } public String getDescription() { - return "2415:2: (this_Reference_0= ruleReference | this_Call_1= ruleCall | this_Interval_2= ruleInterval | this_Literal_3= ruleLiteral | (otherlv_4= LeftParenthesis this_Expression_5= ruleExpression otherlv_6= RightParenthesis ) )"; - } - } - static final String dfa_21s = "\1\uffff\2\3\3\uffff\1\11\1\uffff\1\3\1\uffff"; - static final String dfa_22s = "\1\13\2\40\2\uffff\1\105\1\13\1\uffff\1\40\1\uffff"; - static final String dfa_23s = "\1\106\2\105\2\uffff\1\105\1\106\1\uffff\1\105\1\uffff"; - static final String dfa_24s = "\3\uffff\1\1\1\2\2\uffff\1\3\1\uffff\1\4"; - static final String[] dfa_25s = { - "\1\3\2\uffff\2\3\1\uffff\1\3\1\uffff\4\3\2\uffff\1\3\1\uffff\1\3\1\uffff\1\3\1\uffff\1\3\13\uffff\2\3\1\uffff\1\4\1\3\1\uffff\1\3\7\uffff\1\3\5\uffff\1\3\1\2\4\uffff\1\1\1\3", - "\1\3\3\uffff\2\3\1\uffff\2\3\1\uffff\1\3\1\uffff\2\3\1\6\3\3\1\5\1\3\2\uffff\1\3\1\uffff\2\3\1\uffff\2\3\3\uffff\1\7\1\uffff\2\3\1\uffff\1\7", - "\1\3\3\uffff\2\3\1\uffff\2\3\1\uffff\1\3\1\uffff\2\3\1\6\3\3\1\uffff\1\3\2\uffff\1\3\1\uffff\2\3\1\uffff\2\3\3\uffff\1\7\1\uffff\2\3\1\uffff\1\7", + return "2451:2: (this_AtomicExpression_0= ruleAtomicExpression | this_Aggregation_1= ruleAggregation | this_Count_2= ruleCount )"; + } + } + static final String dfa_20s = "\33\uffff"; + static final String dfa_21s = "\2\uffff\3\14\4\uffff\2\14\3\uffff\3\14\1\uffff\3\14\1\uffff\5\14"; + static final String dfa_22s = "\1\17\1\22\3\32\3\uffff\1\22\2\32\1\22\2\uffff\3\32\1\22\3\32\1\22\5\32"; + static final String dfa_23s = "\1\113\1\112\3\111\3\uffff\1\112\2\111\1\112\2\uffff\3\111\1\112\3\111\1\112\5\111"; + static final String dfa_24s = "\5\uffff\1\3\1\4\1\5\4\uffff\1\1\1\2\15\uffff"; + static final String dfa_25s = "\33\uffff}>"; + static final String[] dfa_26s = { + "\1\6\2\uffff\1\4\3\uffff\3\6\5\uffff\1\6\1\uffff\1\6\16\uffff\1\7\15\uffff\1\5\5\uffff\1\1\1\6\1\3\4\uffff\1\2\1\6", + "\1\4\62\uffff\1\3\4\uffff\1\2", + "\1\14\2\uffff\1\14\4\uffff\3\14\1\10\6\14\1\uffff\1\14\1\uffff\1\15\5\14\1\13\4\14\1\uffff\1\14\2\uffff\2\14\1\uffff\2\14\4\uffff\1\11\1\12\1\14", + "\1\14\2\uffff\1\14\4\uffff\3\14\1\10\6\14\1\uffff\1\14\1\uffff\1\15\5\14\1\13\4\14\1\uffff\1\14\2\uffff\2\14\1\uffff\2\14\4\uffff\1\11\1\12\1\14", + "\1\14\2\uffff\1\14\4\uffff\3\14\1\10\6\14\1\uffff\1\14\1\uffff\1\15\5\14\1\13\4\14\1\uffff\1\14\2\uffff\2\14\1\uffff\2\14\4\uffff\1\11\1\12\1\14", "", "", - "\1\10", - "\1\3\2\uffff\2\3\1\uffff\1\3\1\uffff\4\3\2\uffff\1\3\1\uffff\1\3\1\uffff\1\3\1\uffff\1\3\13\uffff\2\3\1\11\1\uffff\1\3\1\11\1\3\7\uffff\1\3\5\uffff\2\3\4\uffff\2\3", "", - "\1\3\3\uffff\2\3\1\uffff\2\3\1\uffff\1\3\1\uffff\2\3\1\6\3\3\1\5\1\3\2\uffff\1\3\1\uffff\2\3\1\uffff\2\3\3\uffff\1\7\1\uffff\2\3\1\uffff\1\7", - "" + "\1\20\62\uffff\1\17\4\uffff\1\16", + "\1\14\2\uffff\1\14\4\uffff\3\14\1\uffff\6\14\1\uffff\1\14\1\uffff\1\15\5\14\1\13\4\14\1\uffff\1\14\2\uffff\2\14\1\uffff\2\14\6\uffff\1\14", + "\1\14\2\uffff\1\14\4\uffff\3\14\1\uffff\6\14\1\uffff\1\14\1\uffff\1\15\5\14\1\13\4\14\1\uffff\1\14\2\uffff\2\14\1\uffff\2\14\6\uffff\1\14", + "\1\24\60\uffff\1\21\1\uffff\1\23\4\uffff\1\22", + "", + "", + "\1\14\2\uffff\1\14\4\uffff\3\14\1\10\6\14\1\uffff\1\14\1\uffff\1\15\5\14\1\13\4\14\1\uffff\1\14\2\uffff\2\14\1\uffff\2\14\4\uffff\1\11\1\12\1\14", + "\1\14\2\uffff\1\14\4\uffff\3\14\1\10\6\14\1\uffff\1\14\1\uffff\1\15\5\14\1\13\4\14\1\uffff\1\14\2\uffff\2\14\1\uffff\2\14\4\uffff\1\11\1\12\1\14", + "\1\14\2\uffff\1\14\4\uffff\3\14\1\10\6\14\1\uffff\1\14\1\uffff\1\15\5\14\1\13\4\14\1\uffff\1\14\2\uffff\2\14\1\uffff\2\14\4\uffff\1\11\1\12\1\14", + "\1\24\62\uffff\1\23\4\uffff\1\22", + "\1\14\2\uffff\1\14\4\uffff\3\14\1\25\6\14\1\uffff\1\14\1\uffff\1\15\5\14\1\13\4\14\1\uffff\1\14\2\uffff\2\14\1\uffff\2\14\4\uffff\1\26\1\27\1\14", + "\1\14\2\uffff\1\14\4\uffff\3\14\1\25\6\14\1\uffff\1\14\1\uffff\1\15\5\14\1\13\4\14\1\uffff\1\14\2\uffff\2\14\1\uffff\2\14\4\uffff\1\26\1\27\1\14", + "\1\14\2\uffff\1\14\4\uffff\3\14\1\25\6\14\1\uffff\1\14\1\uffff\1\15\5\14\1\13\4\14\1\uffff\1\14\2\uffff\2\14\1\uffff\2\14\4\uffff\1\26\1\27\1\14", + "\1\32\62\uffff\1\31\4\uffff\1\30", + "\1\14\2\uffff\1\14\4\uffff\3\14\1\uffff\6\14\1\uffff\1\14\1\uffff\1\15\5\14\1\13\4\14\1\uffff\1\14\2\uffff\2\14\1\uffff\2\14\6\uffff\1\14", + "\1\14\2\uffff\1\14\4\uffff\3\14\1\uffff\6\14\1\uffff\1\14\1\uffff\1\15\5\14\1\13\4\14\1\uffff\1\14\2\uffff\2\14\1\uffff\2\14\6\uffff\1\14", + "\1\14\2\uffff\1\14\4\uffff\3\14\1\25\6\14\1\uffff\1\14\1\uffff\1\15\5\14\1\13\4\14\1\uffff\1\14\2\uffff\2\14\1\uffff\2\14\4\uffff\1\26\1\27\1\14", + "\1\14\2\uffff\1\14\4\uffff\3\14\1\25\6\14\1\uffff\1\14\1\uffff\1\15\5\14\1\13\4\14\1\uffff\1\14\2\uffff\2\14\1\uffff\2\14\4\uffff\1\26\1\27\1\14", + "\1\14\2\uffff\1\14\4\uffff\3\14\1\25\6\14\1\uffff\1\14\1\uffff\1\15\5\14\1\13\4\14\1\uffff\1\14\2\uffff\2\14\1\uffff\2\14\4\uffff\1\26\1\27\1\14" }; + + static final short[] dfa_20 = DFA.unpackEncodedString(dfa_20s); static final short[] dfa_21 = DFA.unpackEncodedString(dfa_21s); static final char[] dfa_22 = DFA.unpackEncodedStringToUnsignedChars(dfa_22s); static final char[] dfa_23 = DFA.unpackEncodedStringToUnsignedChars(dfa_23s); static final short[] dfa_24 = DFA.unpackEncodedString(dfa_24s); - static final short[][] dfa_25 = unpackEncodedStringArray(dfa_25s); + static final short[] dfa_25 = DFA.unpackEncodedString(dfa_25s); + static final short[][] dfa_26 = unpackEncodedStringArray(dfa_26s); - class DFA33 extends DFA { + class DFA31 extends DFA { - public DFA33(BaseRecognizer recognizer) { + public DFA31(BaseRecognizer recognizer) { this.recognizer = recognizer; - this.decisionNumber = 33; - this.eot = dfa_14; + this.decisionNumber = 31; + this.eot = dfa_20; this.eof = dfa_21; this.min = dfa_22; this.max = dfa_23; this.accept = dfa_24; - this.special = dfa_19; - this.transition = dfa_25; + this.special = dfa_25; + this.transition = dfa_26; } public String getDescription() { - return "2664:2: (this_ExpressionArgument_0= ruleExpressionArgument | this_StarArgument_1= ruleStarArgument | this_TypedArgument_2= ruleTypedArgument | this_TypedStarArgument_3= ruleTypedStarArgument )"; + return "2631:2: (this_Reference_0= ruleReference | this_Call_1= ruleCall | this_Interval_2= ruleInterval | this_Literal_3= ruleLiteral | (otherlv_4= LeftParenthesis this_Expression_5= ruleExpression otherlv_6= RightParenthesis ) )"; } } - static final String dfa_26s = "\17\uffff"; - static final String dfa_27s = "\12\uffff\2\10\2\uffff\1\10"; - static final String dfa_28s = "\1\27\1\100\3\44\1\100\1\uffff\1\105\2\uffff\3\44\1\105\1\44"; - static final String dfa_29s = "\1\27\1\106\1\47\1\62\1\47\1\105\1\uffff\1\105\2\uffff\2\104\1\62\1\105\1\104"; - static final String dfa_30s = "\6\uffff\1\2\1\uffff\1\3\1\1\5\uffff"; - static final String dfa_31s = "\17\uffff}>"; - static final String[] dfa_32s = { - "\1\1", - "\1\4\4\uffff\1\3\1\2", - "\1\5\2\uffff\1\6", - "\1\6\1\11\1\uffff\1\10\12\uffff\1\7", - "\1\6\1\11\1\uffff\1\10", - "\1\13\4\uffff\1\12", + static final String dfa_27s = "\16\uffff"; + static final String dfa_28s = "\2\uffff\3\1\2\uffff\1\15\2\uffff\3\1\1\uffff"; + static final String dfa_29s = "\1\17\1\uffff\3\22\1\uffff\1\22\1\17\1\61\1\uffff\3\22\1\uffff"; + static final String dfa_30s = "\1\113\1\uffff\3\112\1\uffff\1\112\1\113\1\112\1\uffff\3\112\1\uffff"; + static final String dfa_31s = "\1\uffff\1\1\3\uffff\1\2\3\uffff\1\3\3\uffff\1\4"; + static final String dfa_32s = "\16\uffff}>"; + static final String[] dfa_33s = { + "\1\1\2\uffff\1\4\2\uffff\4\1\5\uffff\1\1\1\uffff\1\1\15\uffff\2\1\1\uffff\1\5\1\1\1\uffff\1\1\7\uffff\2\1\5\uffff\2\1\1\3\4\uffff\1\2\1\1", "", - "\1\14", + "\1\10\17\uffff\1\1\2\uffff\1\6\1\uffff\2\1\1\uffff\2\1\1\uffff\1\1\1\uffff\2\1\1\7\5\1\2\uffff\1\1\1\uffff\1\1\3\uffff\2\1\6\uffff\2\1\1\uffff\1\11", + "\1\10\17\uffff\1\1\2\uffff\1\6\1\uffff\2\1\1\uffff\2\1\1\uffff\1\1\1\uffff\2\1\1\7\5\1\2\uffff\1\1\1\uffff\1\1\3\uffff\2\1\6\uffff\2\1\1\uffff\1\11", + "\1\10\17\uffff\1\1\2\uffff\1\6\1\uffff\2\1\1\uffff\2\1\1\uffff\1\1\1\uffff\2\1\1\7\5\1\2\uffff\1\1\1\uffff\1\1\3\uffff\2\1\6\uffff\2\1\1\uffff\1\11", "", + "\1\14\62\uffff\1\13\4\uffff\1\12", + "\1\1\2\uffff\1\1\2\uffff\4\1\5\uffff\1\1\1\uffff\1\1\15\uffff\2\1\1\15\1\uffff\1\1\1\15\1\1\7\uffff\2\1\5\uffff\3\1\4\uffff\2\1", + "\1\15\30\uffff\1\11", "", - "\1\6\15\uffff\1\15\21\uffff\1\10", - "\1\6\37\uffff\1\10", - "\1\6\1\11\1\uffff\1\10\12\uffff\1\7", - "\1\16", - "\1\6\15\uffff\1\15\21\uffff\1\10" + "\1\10\17\uffff\1\1\2\uffff\1\6\1\uffff\2\1\1\uffff\2\1\1\uffff\1\1\1\uffff\2\1\1\7\5\1\2\uffff\1\1\1\uffff\1\1\3\uffff\2\1\6\uffff\2\1\1\uffff\1\11", + "\1\10\17\uffff\1\1\2\uffff\1\6\1\uffff\2\1\1\uffff\2\1\1\uffff\1\1\1\uffff\2\1\1\7\5\1\2\uffff\1\1\1\uffff\1\1\3\uffff\2\1\6\uffff\2\1\1\uffff\1\11", + "\1\10\17\uffff\1\1\2\uffff\1\6\1\uffff\2\1\1\uffff\2\1\1\uffff\1\1\1\uffff\2\1\1\7\5\1\2\uffff\1\1\1\uffff\1\1\3\uffff\2\1\6\uffff\2\1\1\uffff\1\11", + "" }; - static final short[] dfa_26 = DFA.unpackEncodedString(dfa_26s); static final short[] dfa_27 = DFA.unpackEncodedString(dfa_27s); - static final char[] dfa_28 = DFA.unpackEncodedStringToUnsignedChars(dfa_28s); + static final short[] dfa_28 = DFA.unpackEncodedString(dfa_28s); static final char[] dfa_29 = DFA.unpackEncodedStringToUnsignedChars(dfa_29s); - static final short[] dfa_30 = DFA.unpackEncodedString(dfa_30s); + static final char[] dfa_30 = DFA.unpackEncodedStringToUnsignedChars(dfa_30s); static final short[] dfa_31 = DFA.unpackEncodedString(dfa_31s); - static final short[][] dfa_32 = unpackEncodedStringArray(dfa_32s); + static final short[] dfa_32 = DFA.unpackEncodedString(dfa_32s); + static final short[][] dfa_33 = unpackEncodedStringArray(dfa_33s); + + class DFA34 extends DFA { + + public DFA34(BaseRecognizer recognizer) { + this.recognizer = recognizer; + this.decisionNumber = 34; + this.eot = dfa_27; + this.eof = dfa_28; + this.min = dfa_29; + this.max = dfa_30; + this.accept = dfa_31; + this.special = dfa_32; + this.transition = dfa_33; + } + public String getDescription() { + return "2841:2: (this_ExpressionArgument_0= ruleExpressionArgument | this_StarArgument_1= ruleStarArgument | this_TypedVariableArgument_2= ruleTypedVariableArgument | this_TypedStarArgument_3= ruleTypedStarArgument )"; + } + } + static final String dfa_34s = "\25\uffff"; + static final String dfa_35s = "\1\31\1\22\1\47\3\45\1\22\1\uffff\1\22\2\uffff\6\45\1\22\3\45"; + static final String dfa_36s = "\1\31\1\113\4\52\1\112\1\uffff\1\112\2\uffff\3\111\3\52\1\112\3\111"; + static final String dfa_37s = "\7\uffff\1\2\1\uffff\1\1\1\3\12\uffff"; + static final String dfa_38s = "\25\uffff}>"; + static final String[] dfa_39s = { + "\1\1", + "\1\5\62\uffff\1\4\4\uffff\1\3\1\2", + "\1\6\2\uffff\1\7", + "\1\10\1\uffff\1\7\1\11\1\uffff\1\12", + "\1\10\1\uffff\1\7\1\11\1\uffff\1\12", + "\1\10\1\uffff\1\7\1\11\1\uffff\1\12", + "\1\15\62\uffff\1\14\4\uffff\1\13", + "", + "\1\20\62\uffff\1\17\4\uffff\1\16", + "", + "", + "\1\21\1\uffff\1\7\41\uffff\1\12", + "\1\21\1\uffff\1\7\41\uffff\1\12", + "\1\21\1\uffff\1\7\41\uffff\1\12", + "\1\10\1\uffff\1\7\1\11\1\uffff\1\12", + "\1\10\1\uffff\1\7\1\11\1\uffff\1\12", + "\1\10\1\uffff\1\7\1\11\1\uffff\1\12", + "\1\24\62\uffff\1\23\4\uffff\1\22", + "\1\21\1\uffff\1\7\41\uffff\1\12", + "\1\21\1\uffff\1\7\41\uffff\1\12", + "\1\21\1\uffff\1\7\41\uffff\1\12" + }; + + static final short[] dfa_34 = DFA.unpackEncodedString(dfa_34s); + static final char[] dfa_35 = DFA.unpackEncodedStringToUnsignedChars(dfa_35s); + static final char[] dfa_36 = DFA.unpackEncodedStringToUnsignedChars(dfa_36s); + static final short[] dfa_37 = DFA.unpackEncodedString(dfa_37s); + static final short[] dfa_38 = DFA.unpackEncodedString(dfa_38s); + static final short[][] dfa_39 = unpackEncodedStringArray(dfa_39s); - class DFA44 extends DFA { + class DFA53 extends DFA { - public DFA44(BaseRecognizer recognizer) { + public DFA53(BaseRecognizer recognizer) { this.recognizer = recognizer; - this.decisionNumber = 44; - this.eot = dfa_26; - this.eof = dfa_27; - this.min = dfa_28; - this.max = dfa_29; - this.accept = dfa_30; - this.special = dfa_31; - this.transition = dfa_32; + this.decisionNumber = 53; + this.eot = dfa_34; + this.eof = dfa_34; + this.min = dfa_35; + this.max = dfa_36; + this.accept = dfa_37; + this.special = dfa_38; + this.transition = dfa_39; } public String getDescription() { - return "3639:2: (this_ExactScopeDefinition_0= ruleExactScopeDefinition | this_BoundedScopeDefinition_1= ruleBoundedScopeDefinition | this_LowerBoundedScopeDefinition_2= ruleLowerBoundedScopeDefinition )"; + return "4199:2: (this_ExactScope_0= ruleExactScope | this_BoundedScope_1= ruleBoundedScope | this_LowerBoundedScope_2= ruleLowerBoundedScope )"; } } public static final BitSet FOLLOW_1 = new BitSet(new long[]{0x0000000000000000L}); public static final BitSet FOLLOW_2 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_3 = new BitSet(new long[]{0x82029A00EAFFDB32L,0x0000000000000061L}); - public static final BitSet FOLLOW_4 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000010L}); - public static final BitSet FOLLOW_5 = new BitSet(new long[]{0x0090000800000002L}); - public static final BitSet FOLLOW_6 = new BitSet(new long[]{0x82029A00EA7AC800L,0x0000000000000061L}); - public static final BitSet FOLLOW_7 = new BitSet(new long[]{0x0000000000200000L,0x0000000000000021L}); - public static final BitSet FOLLOW_8 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000021L}); - public static final BitSet FOLLOW_9 = new BitSet(new long[]{0x0000000000000010L,0x0000000000000021L}); - public static final BitSet FOLLOW_10 = new BitSet(new long[]{0x0000000800000000L}); - public static final BitSet FOLLOW_11 = new BitSet(new long[]{0x0000100000000000L}); - public static final BitSet FOLLOW_12 = new BitSet(new long[]{0x0010000000000000L}); - public static final BitSet FOLLOW_13 = new BitSet(new long[]{0x0080000000000000L}); - public static final BitSet FOLLOW_14 = new BitSet(new long[]{0x1000000000000000L}); - public static final BitSet FOLLOW_15 = new BitSet(new long[]{0x0000000010000000L}); - public static final BitSet FOLLOW_16 = new BitSet(new long[]{0x4000000000000000L}); - public static final BitSet FOLLOW_17 = new BitSet(new long[]{0x0000000000000080L}); - public static final BitSet FOLLOW_18 = new BitSet(new long[]{0x0000000000002000L}); - public static final BitSet FOLLOW_19 = new BitSet(new long[]{0x0001000000000002L}); - public static final BitSet FOLLOW_20 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000020L}); - public static final BitSet FOLLOW_21 = new BitSet(new long[]{0x0000000004000000L}); - public static final BitSet FOLLOW_22 = new BitSet(new long[]{0x0000000001000000L}); - public static final BitSet FOLLOW_23 = new BitSet(new long[]{0x0001040000000000L}); - public static final BitSet FOLLOW_24 = new BitSet(new long[]{0x0000004000000002L}); - public static final BitSet FOLLOW_25 = new BitSet(new long[]{0x0020000200000002L}); - public static final BitSet FOLLOW_26 = new BitSet(new long[]{0x0020000000000002L}); - public static final BitSet FOLLOW_27 = new BitSet(new long[]{0x0000000200000000L}); - public static final BitSet FOLLOW_28 = new BitSet(new long[]{0x014004B100000002L}); - public static final BitSet FOLLOW_29 = new BitSet(new long[]{0x0002800000000002L}); - public static final BitSet FOLLOW_30 = new BitSet(new long[]{0x0008400000000002L}); - public static final BitSet FOLLOW_31 = new BitSet(new long[]{0x0800000000000002L}); - public static final BitSet FOLLOW_32 = new BitSet(new long[]{0x0000010000000002L}); - public static final BitSet FOLLOW_33 = new BitSet(new long[]{0x82001000287AC000L,0x0000000000000061L}); - public static final BitSet FOLLOW_34 = new BitSet(new long[]{0x0400000000000000L,0x0000000000000021L}); - public static final BitSet FOLLOW_35 = new BitSet(new long[]{0x0401000000000000L}); - public static final BitSet FOLLOW_36 = new BitSet(new long[]{0x1200000000000000L}); - public static final BitSet FOLLOW_37 = new BitSet(new long[]{0x6000000000000000L}); - public static final BitSet FOLLOW_38 = new BitSet(new long[]{0x0000200000000000L}); - public static final BitSet FOLLOW_39 = new BitSet(new long[]{0x0000100000000000L,0x000000000000000CL}); - public static final BitSet FOLLOW_40 = new BitSet(new long[]{0x8202FA00EA7AC800L,0x0000000000000061L}); - public static final BitSet FOLLOW_41 = new BitSet(new long[]{0x0001200000000000L}); - public static final BitSet FOLLOW_42 = new BitSet(new long[]{0x8202DA00EA7AC800L,0x0000000000000061L}); - public static final BitSet FOLLOW_43 = new BitSet(new long[]{0x0000400000000000L}); - public static final BitSet FOLLOW_44 = new BitSet(new long[]{0x0000000400000000L}); - public static final BitSet FOLLOW_45 = new BitSet(new long[]{0x0400000000000000L}); - public static final BitSet FOLLOW_46 = new BitSet(new long[]{0x0000000000040000L}); - public static final BitSet FOLLOW_47 = new BitSet(new long[]{0x1000000000002000L}); - public static final BitSet FOLLOW_48 = new BitSet(new long[]{0x1001000000000000L}); - public static final BitSet FOLLOW_49 = new BitSet(new long[]{0x4000000000000040L,0x0000000000000021L}); - public static final BitSet FOLLOW_50 = new BitSet(new long[]{0x0200000000000000L,0x0000000000000020L}); - public static final BitSet FOLLOW_51 = new BitSet(new long[]{0x0020000000000402L}); - public static final BitSet FOLLOW_52 = new BitSet(new long[]{0x0000400000000000L,0x0000000000000040L}); - public static final BitSet FOLLOW_53 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000040L}); - public static final BitSet FOLLOW_54 = new BitSet(new long[]{0x0000002000000000L}); - public static final BitSet FOLLOW_55 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000061L}); - public static final BitSet FOLLOW_56 = new BitSet(new long[]{0x0000001000000000L}); - public static final BitSet FOLLOW_57 = new BitSet(new long[]{0x0000008000000000L}); - public static final BitSet FOLLOW_58 = new BitSet(new long[]{0x0000008000000002L}); - public static final BitSet FOLLOW_59 = new BitSet(new long[]{0x0004000000000002L}); - -} \ No newline at end of file + public static final BitSet FOLLOW_3 = new BitSet(new long[]{0x0000000000040000L,0x0000000000000420L}); + public static final BitSet FOLLOW_4 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L}); + public static final BitSet FOLLOW_5 = new BitSet(new long[]{0x3014D0035BF79672L,0x0000000000000C38L}); + public static final BitSet FOLLOW_6 = new BitSet(new long[]{0x3014D0035BF59672L,0x0000000000000C38L}); + public static final BitSet FOLLOW_7 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000010L}); + public static final BitSet FOLLOW_8 = new BitSet(new long[]{0x0000080000000000L}); + public static final BitSet FOLLOW_9 = new BitSet(new long[]{0x0080005000000000L,0x0000000000000200L}); + public static final BitSet FOLLOW_10 = new BitSet(new long[]{0x3014D00341E48000L,0x0000000000000C38L}); + public static final BitSet FOLLOW_11 = new BitSet(new long[]{0x0000000000840000L,0x0000000000000428L}); + public static final BitSet FOLLOW_12 = new BitSet(new long[]{0x0000000000040000L,0x0000000000000428L}); + public static final BitSet FOLLOW_13 = new BitSet(new long[]{0x0000000000040020L,0x0000000000000428L}); + public static final BitSet FOLLOW_14 = new BitSet(new long[]{0x0000001000000000L}); + public static final BitSet FOLLOW_15 = new BitSet(new long[]{0x0000800000000000L}); + public static final BitSet FOLLOW_16 = new BitSet(new long[]{0x0080000000000000L,0x0000000000000200L}); + public static final BitSet FOLLOW_17 = new BitSet(new long[]{0x0000004000000000L}); + public static final BitSet FOLLOW_18 = new BitSet(new long[]{0x0000000000040002L}); + public static final BitSet FOLLOW_19 = new BitSet(new long[]{0x0000000000840020L,0x0000000000000420L}); + public static final BitSet FOLLOW_20 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000001L}); + public static final BitSet FOLLOW_21 = new BitSet(new long[]{0x0000000080000000L}); + public static final BitSet FOLLOW_22 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000004L}); + public static final BitSet FOLLOW_23 = new BitSet(new long[]{0x0000000000000100L}); + public static final BitSet FOLLOW_24 = new BitSet(new long[]{0x0000020000000002L}); + public static final BitSet FOLLOW_25 = new BitSet(new long[]{0x0000000020000000L}); + public static final BitSet FOLLOW_26 = new BitSet(new long[]{0x0000000004000000L}); + public static final BitSet FOLLOW_27 = new BitSet(new long[]{0x0008200000000000L}); + public static final BitSet FOLLOW_28 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000400L}); + public static final BitSet FOLLOW_29 = new BitSet(new long[]{0x0400000000000000L}); + public static final BitSet FOLLOW_30 = new BitSet(new long[]{0x0100000800000002L}); + public static final BitSet FOLLOW_31 = new BitSet(new long[]{0x0100000000000002L}); + public static final BitSet FOLLOW_32 = new BitSet(new long[]{0x0000000800000000L}); + public static final BitSet FOLLOW_33 = new BitSet(new long[]{0x0008000000000002L}); + public static final BitSet FOLLOW_34 = new BitSet(new long[]{0x0A00258400000002L}); + public static final BitSet FOLLOW_35 = new BitSet(new long[]{0x0014000000000002L}); + public static final BitSet FOLLOW_36 = new BitSet(new long[]{0x0042000000000002L}); + public static final BitSet FOLLOW_37 = new BitSet(new long[]{0x8000000000000002L}); + public static final BitSet FOLLOW_38 = new BitSet(new long[]{0x0000080000000002L}); + public static final BitSet FOLLOW_39 = new BitSet(new long[]{0x2000800141E48000L,0x0000000000000C38L}); + public static final BitSet FOLLOW_40 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000002L}); + public static final BitSet FOLLOW_41 = new BitSet(new long[]{0x0001000000000000L}); + public static final BitSet FOLLOW_42 = new BitSet(new long[]{0x3017D00341E48000L,0x0000000000000C38L}); + public static final BitSet FOLLOW_43 = new BitSet(new long[]{0x0009000000000000L}); + public static final BitSet FOLLOW_44 = new BitSet(new long[]{0x3016D00341E48000L,0x0000000000000C38L}); + public static final BitSet FOLLOW_45 = new BitSet(new long[]{0x0002000000000000L}); + public static final BitSet FOLLOW_46 = new BitSet(new long[]{0x0020000000000002L}); + public static final BitSet FOLLOW_47 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000180L}); + public static final BitSet FOLLOW_48 = new BitSet(new long[]{0x0008000000000000L}); + public static final BitSet FOLLOW_49 = new BitSet(new long[]{0x4000000000000000L}); + public static final BitSet FOLLOW_50 = new BitSet(new long[]{0x0000000010100040L}); + public static final BitSet FOLLOW_51 = new BitSet(new long[]{0x0000000000002000L,0x0000000000000201L}); + public static final BitSet FOLLOW_52 = new BitSet(new long[]{0x0008000000000000L,0x0000000000000201L}); + public static final BitSet FOLLOW_53 = new BitSet(new long[]{0x00000000000C0080L,0x0000000000000424L}); + public static final BitSet FOLLOW_54 = new BitSet(new long[]{0x2000000000000000L,0x0000000000000400L}); + public static final BitSet FOLLOW_55 = new BitSet(new long[]{0x0100000000000802L}); + public static final BitSet FOLLOW_56 = new BitSet(new long[]{0x0002000000000000L,0x0000000000000800L}); + public static final BitSet FOLLOW_57 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000800L}); + public static final BitSet FOLLOW_58 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000201L}); + public static final BitSet FOLLOW_59 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000404L}); + public static final BitSet FOLLOW_60 = new BitSet(new long[]{0x0008000000000000L,0x0000000000000404L}); + public static final BitSet FOLLOW_61 = new BitSet(new long[]{0x0000010000000000L}); + public static final BitSet FOLLOW_62 = new BitSet(new long[]{0x0000000000040000L,0x0000000000000C20L}); + public static final BitSet FOLLOW_63 = new BitSet(new long[]{0x0000008000000000L}); + public static final BitSet FOLLOW_64 = new BitSet(new long[]{0x0000040000000000L}); + public static final BitSet FOLLOW_65 = new BitSet(new long[]{0x0000040000000000L,0x0000000000000200L}); + public static final BitSet FOLLOW_66 = new BitSet(new long[]{0x0020000000000000L}); + public static final BitSet FOLLOW_67 = new BitSet(new long[]{0x0000002000000002L}); + +} diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/parser/antlr/internal/InternalSolverLanguageParser.tokens b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/parser/antlr/internal/InternalSolverLanguageParser.tokens index 736b2f0a..591c0e60 100644 --- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/parser/antlr/internal/InternalSolverLanguageParser.tokens +++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/parser/antlr/internal/InternalSolverLanguageParser.tokens @@ -1,70 +1,75 @@ -'!'=43 -'!='=32 -'('=44 -')'=45 -'*'=46 -'+'=47 -','=48 -'-'=49 -'->'=33 -'.'=50 -'..'=34 -'...'=28 -'/'=51 -':'=52 -':-'=35 -';'=53 -'<'=54 -'<='=36 -'='=55 -'=='=37 -'=>'=38 -'>'=56 -'>='=39 -'['=57 -']'=58 -'^'=59 -'abstract'=5 -'as'=40 -'class'=18 -'contains'=6 -'count'=19 -'current'=11 -'datatype'=7 +'!'=46 +'!='=34 +'('=47 +')'=48 +'*'=49 +'+'=50 +','=51 +'-'=52 +'->'=35 +'.'=53 +'...'=31 +'/'=54 +':'=55 +':-'=36 +'::'=37 +':='=38 +';'=56 +'<'=57 +'<='=39 +'='=58 +'=='=40 +'=>'=41 +'>'=59 +'>='=42 +'?'=60 +'['=61 +']'=62 +'^'=63 +'abstract'=6 +'as'=43 +'class'=20 +'containment'=4 +'contains'=7 +'count'=21 +'datatype'=8 'default'=12 -'else'=24 -'empty'=20 -'error'=21 -'exists'=15 +'else'=26 +'empty'=22 +'enum'=27 +'error'=23 'extends'=13 'extern'=16 -'false'=22 -'forall'=17 -'functional'=4 -'if'=41 -'in'=42 -'inf'=29 -'let'=30 -'maximize'=8 -'may'=31 -'minimize'=9 -'must'=25 -'opposite'=10 -'scope'=23 -'then'=26 -'true'=27 -'unknown'=14 -'{'=60 -'|'=61 -'}'=62 -RULE_ANY_OTHER=73 -RULE_FULL_STOP=68 -RULE_ID=69 -RULE_INT=70 -RULE_ML_COMMENT=71 -RULE_QUOTED_ID=64 -RULE_REFLEXIVE_TRANSITIVE_CLOSURE=67 -RULE_SL_COMMENT=65 -RULE_STRING=63 -RULE_TRANSITIVE_CLOSURE=66 -RULE_WS=72 +'false'=24 +'functional'=5 +'if'=44 +'import'=17 +'in'=45 +'inf'=32 +'let'=33 +'maximize'=9 +'minimize'=10 +'object'=18 +'opposite'=11 +'problem'=14 +'refers'=19 +'root'=28 +'scope'=25 +'then'=29 +'true'=30 +'unknown'=15 +'{'=64 +'|'=65 +'}'=66 +'~'=67 +RULE_ANY_OTHER=78 +RULE_FULL_STOP=73 +RULE_ID=74 +RULE_INT=75 +RULE_ML_COMMENT=76 +RULE_QUOTED_ID=69 +RULE_REFLEXIVE_TRANSITIVE_CLOSURE=72 +RULE_SL_COMMENT=70 +RULE_STRING=68 +RULE_TRANSITIVE_CLOSURE=71 +RULE_WS=77 diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/parser/antlr/lexer/InternalSolverLanguageLexer.g b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/parser/antlr/lexer/InternalSolverLanguageLexer.g index 3c496e8a..074932ca 100644 --- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/parser/antlr/lexer/InternalSolverLanguageLexer.g +++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/parser/antlr/lexer/InternalSolverLanguageLexer.g @@ -11,6 +11,8 @@ package org.eclipse.viatra.solver.language.parser.antlr.lexer; import org.eclipse.xtext.parser.antlr.Lexer; } +Containment : 'containment'; + Functional : 'functional'; Abstract : 'abstract'; @@ -25,19 +27,21 @@ Minimize : 'minimize'; Opposite : 'opposite'; -Current : 'current'; - Default : 'default'; Extends : 'extends'; -Unknown : 'unknown'; +Problem : 'problem'; -Exists : 'exists'; +Unknown : 'unknown'; Extern : 'extern'; -Forall : 'forall'; +Import : 'import'; + +Object : 'object'; + +Refers : 'refers'; Class : 'class'; @@ -53,7 +57,9 @@ Scope : 'scope'; Else : 'else'; -Must : 'must'; +Enum : 'enum'; + +Root : 'root'; Then : 'then'; @@ -65,16 +71,16 @@ Inf : 'inf'; Let : 'let'; -May : 'may'; - ExclamationMarkEqualsSign : '!='; HyphenMinusGreaterThanSign : '->'; -FullStopFullStop : '..'; - ColonHyphenMinus : ':-'; +ColonColon : '::'; + +ColonEqualsSign : ':='; + LessThanSignEqualsSign : '<='; EqualsSignEqualsSign : '=='; @@ -117,6 +123,8 @@ EqualsSign : '='; GreaterThanSign : '>'; +QuestionMark : '?'; + LeftSquareBracket : '['; RightSquareBracket : ']'; @@ -129,6 +137,8 @@ VerticalLine : '|'; RightCurlyBracket : '}'; +Tilde : '~'; + RULE_STRING : '"' ('\\' .|~(('\\'|'"')))* '"'; RULE_QUOTED_ID : '\'' ('\\' .|~(('\\'|'\'')))* '\''; diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/parser/antlr/lexer/InternalSolverLanguageLexer.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/parser/antlr/lexer/InternalSolverLanguageLexer.java index b113baaf..4281bac0 100644 --- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/parser/antlr/lexer/InternalSolverLanguageLexer.java +++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/parser/antlr/lexer/InternalSolverLanguageLexer.java @@ -12,77 +12,82 @@ import java.util.ArrayList; @SuppressWarnings("all") public class InternalSolverLanguageLexer extends Lexer { - public static final int EqualsSignGreaterThanSign=38; - public static final int True=27; - public static final int Count=19; - public static final int False=22; - public static final int Must=25; - public static final int FullStopFullStopFullStop=28; - public static final int LessThanSign=54; - public static final int Datatype=7; - public static final int LeftParenthesis=44; - public static final int Unknown=14; - public static final int RULE_REFLEXIVE_TRANSITIVE_CLOSURE=67; - public static final int FullStopFullStop=34; - public static final int Then=26; + public static final int Enum=27; + public static final int Import=17; + public static final int EqualsSignGreaterThanSign=41; + public static final int True=30; + public static final int Count=21; + public static final int False=24; + public static final int FullStopFullStopFullStop=31; + public static final int LessThanSign=57; + public static final int Datatype=8; + public static final int LeftParenthesis=47; + public static final int Unknown=15; + public static final int RULE_REFLEXIVE_TRANSITIVE_CLOSURE=72; + public static final int Then=29; public static final int Extends=13; - public static final int Forall=17; - public static final int RightSquareBracket=58; - public static final int ExclamationMark=43; - public static final int Opposite=10; - public static final int GreaterThanSign=56; - public static final int RULE_ID=69; - public static final int RULE_QUOTED_ID=64; - public static final int RightParenthesis=45; - public static final int GreaterThanSignEqualsSign=39; - public static final int Functional=4; - public static final int EqualsSignEqualsSign=37; - public static final int VerticalLine=61; - public static final int PlusSign=47; - public static final int RULE_INT=70; - public static final int Contains=6; - public static final int RULE_ML_COMMENT=71; - public static final int RULE_TRANSITIVE_CLOSURE=66; - public static final int Class=18; - public static final int LeftSquareBracket=57; - public static final int RULE_FULL_STOP=68; - public static final int Current=11; - public static final int If=41; - public static final int Inf=29; - public static final int May=31; - public static final int In=42; - public static final int RULE_STRING=63; + public static final int RightSquareBracket=62; + public static final int ExclamationMark=46; + public static final int Opposite=11; + public static final int GreaterThanSign=59; + public static final int Root=28; + public static final int RULE_ID=74; + public static final int RULE_QUOTED_ID=69; + public static final int RightParenthesis=48; + public static final int ColonEqualsSign=38; + public static final int GreaterThanSignEqualsSign=42; + public static final int Functional=5; + public static final int ColonColon=37; + public static final int EqualsSignEqualsSign=40; + public static final int VerticalLine=65; + public static final int PlusSign=50; + public static final int RULE_INT=75; + public static final int Contains=7; + public static final int RULE_ML_COMMENT=76; + public static final int RULE_TRANSITIVE_CLOSURE=71; + public static final int Problem=14; + public static final int Object=18; + public static final int Class=20; + public static final int LeftSquareBracket=61; + public static final int RULE_FULL_STOP=73; + public static final int If=44; + public static final int Refers=19; + public static final int Inf=32; + public static final int In=45; + public static final int RULE_STRING=68; public static final int Extern=16; - public static final int RULE_SL_COMMENT=65; - public static final int Comma=48; - public static final int EqualsSign=55; - public static final int Empty=20; - public static final int As=40; - public static final int HyphenMinus=49; - public static final int Maximize=8; - public static final int LessThanSignEqualsSign=36; - public static final int Solidus=51; - public static final int Colon=52; - public static final int RightCurlyBracket=62; + public static final int RULE_SL_COMMENT=70; + public static final int Comma=51; + public static final int EqualsSign=58; + public static final int Empty=22; + public static final int As=43; + public static final int HyphenMinus=52; + public static final int Maximize=9; + public static final int LessThanSignEqualsSign=39; + public static final int Solidus=54; + public static final int Colon=55; + public static final int RightCurlyBracket=66; public static final int EOF=-1; - public static final int Asterisk=46; - public static final int FullStop=50; - public static final int RULE_WS=72; - public static final int Abstract=5; - public static final int Minimize=9; - public static final int LeftCurlyBracket=60; - public static final int Error=21; - public static final int RULE_ANY_OTHER=73; + public static final int Asterisk=49; + public static final int Containment=4; + public static final int FullStop=53; + public static final int RULE_WS=77; + public static final int Abstract=6; + public static final int Minimize=10; + public static final int LeftCurlyBracket=64; + public static final int Error=23; + public static final int Tilde=67; + public static final int RULE_ANY_OTHER=78; public static final int Default=12; - public static final int ColonHyphenMinus=35; - public static final int CircumflexAccent=59; - public static final int Semicolon=53; - public static final int Scope=23; - public static final int Exists=15; - public static final int Else=24; - public static final int Let=30; - public static final int ExclamationMarkEqualsSign=32; - public static final int HyphenMinusGreaterThanSign=33; + public static final int ColonHyphenMinus=36; + public static final int CircumflexAccent=63; + public static final int Semicolon=56; + public static final int Scope=25; + public static final int QuestionMark=60; + public static final int Else=26; + public static final int Let=33; + public static final int ExclamationMarkEqualsSign=34; + public static final int HyphenMinusGreaterThanSign=35; // delegates // delegators @@ -97,13 +102,34 @@ public class InternalSolverLanguageLexer extends Lexer { } public String getGrammarFileName() { return "InternalSolverLanguageLexer.g"; } + // $ANTLR start "Containment" + public final void mContainment() throws RecognitionException { + try { + int _type = Containment; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalSolverLanguageLexer.g:14:13: ( 'containment' ) + // InternalSolverLanguageLexer.g:14:15: 'containment' + { + match("containment"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "Containment" + // $ANTLR start "Functional" public final void mFunctional() throws RecognitionException { try { int _type = Functional; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalSolverLanguageLexer.g:14:12: ( 'functional' ) - // InternalSolverLanguageLexer.g:14:14: 'functional' + // InternalSolverLanguageLexer.g:16:12: ( 'functional' ) + // InternalSolverLanguageLexer.g:16:14: 'functional' { match("functional"); @@ -123,8 +149,8 @@ public class InternalSolverLanguageLexer extends Lexer { try { int _type = Abstract; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalSolverLanguageLexer.g:16:10: ( 'abstract' ) - // InternalSolverLanguageLexer.g:16:12: 'abstract' + // InternalSolverLanguageLexer.g:18:10: ( 'abstract' ) + // InternalSolverLanguageLexer.g:18:12: 'abstract' { match("abstract"); @@ -144,8 +170,8 @@ public class InternalSolverLanguageLexer extends Lexer { try { int _type = Contains; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalSolverLanguageLexer.g:18:10: ( 'contains' ) - // InternalSolverLanguageLexer.g:18:12: 'contains' + // InternalSolverLanguageLexer.g:20:10: ( 'contains' ) + // InternalSolverLanguageLexer.g:20:12: 'contains' { match("contains"); @@ -165,8 +191,8 @@ public class InternalSolverLanguageLexer extends Lexer { try { int _type = Datatype; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalSolverLanguageLexer.g:20:10: ( 'datatype' ) - // InternalSolverLanguageLexer.g:20:12: 'datatype' + // InternalSolverLanguageLexer.g:22:10: ( 'datatype' ) + // InternalSolverLanguageLexer.g:22:12: 'datatype' { match("datatype"); @@ -186,8 +212,8 @@ public class InternalSolverLanguageLexer extends Lexer { try { int _type = Maximize; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalSolverLanguageLexer.g:22:10: ( 'maximize' ) - // InternalSolverLanguageLexer.g:22:12: 'maximize' + // InternalSolverLanguageLexer.g:24:10: ( 'maximize' ) + // InternalSolverLanguageLexer.g:24:12: 'maximize' { match("maximize"); @@ -207,8 +233,8 @@ public class InternalSolverLanguageLexer extends Lexer { try { int _type = Minimize; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalSolverLanguageLexer.g:24:10: ( 'minimize' ) - // InternalSolverLanguageLexer.g:24:12: 'minimize' + // InternalSolverLanguageLexer.g:26:10: ( 'minimize' ) + // InternalSolverLanguageLexer.g:26:12: 'minimize' { match("minimize"); @@ -228,8 +254,8 @@ public class InternalSolverLanguageLexer extends Lexer { try { int _type = Opposite; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalSolverLanguageLexer.g:26:10: ( 'opposite' ) - // InternalSolverLanguageLexer.g:26:12: 'opposite' + // InternalSolverLanguageLexer.g:28:10: ( 'opposite' ) + // InternalSolverLanguageLexer.g:28:12: 'opposite' { match("opposite"); @@ -244,27 +270,6 @@ public class InternalSolverLanguageLexer extends Lexer { } // $ANTLR end "Opposite" - // $ANTLR start "Current" - public final void mCurrent() throws RecognitionException { - try { - int _type = Current; - int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalSolverLanguageLexer.g:28:9: ( 'current' ) - // InternalSolverLanguageLexer.g:28:11: 'current' - { - match("current"); - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - } - } - // $ANTLR end "Current" - // $ANTLR start "Default" public final void mDefault() throws RecognitionException { try { @@ -307,15 +312,15 @@ public class InternalSolverLanguageLexer extends Lexer { } // $ANTLR end "Extends" - // $ANTLR start "Unknown" - public final void mUnknown() throws RecognitionException { + // $ANTLR start "Problem" + public final void mProblem() throws RecognitionException { try { - int _type = Unknown; + int _type = Problem; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalSolverLanguageLexer.g:34:9: ( 'unknown' ) - // InternalSolverLanguageLexer.g:34:11: 'unknown' + // InternalSolverLanguageLexer.g:34:9: ( 'problem' ) + // InternalSolverLanguageLexer.g:34:11: 'problem' { - match("unknown"); + match("problem"); } @@ -326,17 +331,17 @@ public class InternalSolverLanguageLexer extends Lexer { finally { } } - // $ANTLR end "Unknown" + // $ANTLR end "Problem" - // $ANTLR start "Exists" - public final void mExists() throws RecognitionException { + // $ANTLR start "Unknown" + public final void mUnknown() throws RecognitionException { try { - int _type = Exists; + int _type = Unknown; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalSolverLanguageLexer.g:36:8: ( 'exists' ) - // InternalSolverLanguageLexer.g:36:10: 'exists' + // InternalSolverLanguageLexer.g:36:9: ( 'unknown' ) + // InternalSolverLanguageLexer.g:36:11: 'unknown' { - match("exists"); + match("unknown"); } @@ -347,7 +352,7 @@ public class InternalSolverLanguageLexer extends Lexer { finally { } } - // $ANTLR end "Exists" + // $ANTLR end "Unknown" // $ANTLR start "Extern" public final void mExtern() throws RecognitionException { @@ -370,15 +375,15 @@ public class InternalSolverLanguageLexer extends Lexer { } // $ANTLR end "Extern" - // $ANTLR start "Forall" - public final void mForall() throws RecognitionException { + // $ANTLR start "Import" + public final void mImport() throws RecognitionException { try { - int _type = Forall; + int _type = Import; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalSolverLanguageLexer.g:40:8: ( 'forall' ) - // InternalSolverLanguageLexer.g:40:10: 'forall' + // InternalSolverLanguageLexer.g:40:8: ( 'import' ) + // InternalSolverLanguageLexer.g:40:10: 'import' { - match("forall"); + match("import"); } @@ -389,15 +394,57 @@ public class InternalSolverLanguageLexer extends Lexer { finally { } } - // $ANTLR end "Forall" + // $ANTLR end "Import" + + // $ANTLR start "Object" + public final void mObject() throws RecognitionException { + try { + int _type = Object; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalSolverLanguageLexer.g:42:8: ( 'object' ) + // InternalSolverLanguageLexer.g:42:10: 'object' + { + match("object"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "Object" + + // $ANTLR start "Refers" + public final void mRefers() throws RecognitionException { + try { + int _type = Refers; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalSolverLanguageLexer.g:44:8: ( 'refers' ) + // InternalSolverLanguageLexer.g:44:10: 'refers' + { + match("refers"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "Refers" // $ANTLR start "Class" public final void mClass() throws RecognitionException { try { int _type = Class; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalSolverLanguageLexer.g:42:7: ( 'class' ) - // InternalSolverLanguageLexer.g:42:9: 'class' + // InternalSolverLanguageLexer.g:46:7: ( 'class' ) + // InternalSolverLanguageLexer.g:46:9: 'class' { match("class"); @@ -417,8 +464,8 @@ public class InternalSolverLanguageLexer extends Lexer { try { int _type = Count; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalSolverLanguageLexer.g:44:7: ( 'count' ) - // InternalSolverLanguageLexer.g:44:9: 'count' + // InternalSolverLanguageLexer.g:48:7: ( 'count' ) + // InternalSolverLanguageLexer.g:48:9: 'count' { match("count"); @@ -438,8 +485,8 @@ public class InternalSolverLanguageLexer extends Lexer { try { int _type = Empty; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalSolverLanguageLexer.g:46:7: ( 'empty' ) - // InternalSolverLanguageLexer.g:46:9: 'empty' + // InternalSolverLanguageLexer.g:50:7: ( 'empty' ) + // InternalSolverLanguageLexer.g:50:9: 'empty' { match("empty"); @@ -459,8 +506,8 @@ public class InternalSolverLanguageLexer extends Lexer { try { int _type = Error; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalSolverLanguageLexer.g:48:7: ( 'error' ) - // InternalSolverLanguageLexer.g:48:9: 'error' + // InternalSolverLanguageLexer.g:52:7: ( 'error' ) + // InternalSolverLanguageLexer.g:52:9: 'error' { match("error"); @@ -480,8 +527,8 @@ public class InternalSolverLanguageLexer extends Lexer { try { int _type = False; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalSolverLanguageLexer.g:50:7: ( 'false' ) - // InternalSolverLanguageLexer.g:50:9: 'false' + // InternalSolverLanguageLexer.g:54:7: ( 'false' ) + // InternalSolverLanguageLexer.g:54:9: 'false' { match("false"); @@ -501,8 +548,8 @@ public class InternalSolverLanguageLexer extends Lexer { try { int _type = Scope; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalSolverLanguageLexer.g:52:7: ( 'scope' ) - // InternalSolverLanguageLexer.g:52:9: 'scope' + // InternalSolverLanguageLexer.g:56:7: ( 'scope' ) + // InternalSolverLanguageLexer.g:56:9: 'scope' { match("scope"); @@ -522,8 +569,8 @@ public class InternalSolverLanguageLexer extends Lexer { try { int _type = Else; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalSolverLanguageLexer.g:54:6: ( 'else' ) - // InternalSolverLanguageLexer.g:54:8: 'else' + // InternalSolverLanguageLexer.g:58:6: ( 'else' ) + // InternalSolverLanguageLexer.g:58:8: 'else' { match("else"); @@ -538,15 +585,15 @@ public class InternalSolverLanguageLexer extends Lexer { } // $ANTLR end "Else" - // $ANTLR start "Must" - public final void mMust() throws RecognitionException { + // $ANTLR start "Enum" + public final void mEnum() throws RecognitionException { try { - int _type = Must; + int _type = Enum; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalSolverLanguageLexer.g:56:6: ( 'must' ) - // InternalSolverLanguageLexer.g:56:8: 'must' + // InternalSolverLanguageLexer.g:60:6: ( 'enum' ) + // InternalSolverLanguageLexer.g:60:8: 'enum' { - match("must"); + match("enum"); } @@ -557,15 +604,36 @@ public class InternalSolverLanguageLexer extends Lexer { finally { } } - // $ANTLR end "Must" + // $ANTLR end "Enum" + + // $ANTLR start "Root" + public final void mRoot() throws RecognitionException { + try { + int _type = Root; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalSolverLanguageLexer.g:62:6: ( 'root' ) + // InternalSolverLanguageLexer.g:62:8: 'root' + { + match("root"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "Root" // $ANTLR start "Then" public final void mThen() throws RecognitionException { try { int _type = Then; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalSolverLanguageLexer.g:58:6: ( 'then' ) - // InternalSolverLanguageLexer.g:58:8: 'then' + // InternalSolverLanguageLexer.g:64:6: ( 'then' ) + // InternalSolverLanguageLexer.g:64:8: 'then' { match("then"); @@ -585,8 +653,8 @@ public class InternalSolverLanguageLexer extends Lexer { try { int _type = True; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalSolverLanguageLexer.g:60:6: ( 'true' ) - // InternalSolverLanguageLexer.g:60:8: 'true' + // InternalSolverLanguageLexer.g:66:6: ( 'true' ) + // InternalSolverLanguageLexer.g:66:8: 'true' { match("true"); @@ -606,8 +674,8 @@ public class InternalSolverLanguageLexer extends Lexer { try { int _type = FullStopFullStopFullStop; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalSolverLanguageLexer.g:62:26: ( '...' ) - // InternalSolverLanguageLexer.g:62:28: '...' + // InternalSolverLanguageLexer.g:68:26: ( '...' ) + // InternalSolverLanguageLexer.g:68:28: '...' { match("..."); @@ -627,8 +695,8 @@ public class InternalSolverLanguageLexer extends Lexer { try { int _type = Inf; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalSolverLanguageLexer.g:64:5: ( 'inf' ) - // InternalSolverLanguageLexer.g:64:7: 'inf' + // InternalSolverLanguageLexer.g:70:5: ( 'inf' ) + // InternalSolverLanguageLexer.g:70:7: 'inf' { match("inf"); @@ -648,8 +716,8 @@ public class InternalSolverLanguageLexer extends Lexer { try { int _type = Let; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalSolverLanguageLexer.g:66:5: ( 'let' ) - // InternalSolverLanguageLexer.g:66:7: 'let' + // InternalSolverLanguageLexer.g:72:5: ( 'let' ) + // InternalSolverLanguageLexer.g:72:7: 'let' { match("let"); @@ -664,15 +732,15 @@ public class InternalSolverLanguageLexer extends Lexer { } // $ANTLR end "Let" - // $ANTLR start "May" - public final void mMay() throws RecognitionException { + // $ANTLR start "ExclamationMarkEqualsSign" + public final void mExclamationMarkEqualsSign() throws RecognitionException { try { - int _type = May; + int _type = ExclamationMarkEqualsSign; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalSolverLanguageLexer.g:68:5: ( 'may' ) - // InternalSolverLanguageLexer.g:68:7: 'may' + // InternalSolverLanguageLexer.g:74:27: ( '!=' ) + // InternalSolverLanguageLexer.g:74:29: '!=' { - match("may"); + match("!="); } @@ -683,17 +751,17 @@ public class InternalSolverLanguageLexer extends Lexer { finally { } } - // $ANTLR end "May" + // $ANTLR end "ExclamationMarkEqualsSign" - // $ANTLR start "ExclamationMarkEqualsSign" - public final void mExclamationMarkEqualsSign() throws RecognitionException { + // $ANTLR start "HyphenMinusGreaterThanSign" + public final void mHyphenMinusGreaterThanSign() throws RecognitionException { try { - int _type = ExclamationMarkEqualsSign; + int _type = HyphenMinusGreaterThanSign; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalSolverLanguageLexer.g:70:27: ( '!=' ) - // InternalSolverLanguageLexer.g:70:29: '!=' + // InternalSolverLanguageLexer.g:76:28: ( '->' ) + // InternalSolverLanguageLexer.g:76:30: '->' { - match("!="); + match("->"); } @@ -704,17 +772,17 @@ public class InternalSolverLanguageLexer extends Lexer { finally { } } - // $ANTLR end "ExclamationMarkEqualsSign" + // $ANTLR end "HyphenMinusGreaterThanSign" - // $ANTLR start "HyphenMinusGreaterThanSign" - public final void mHyphenMinusGreaterThanSign() throws RecognitionException { + // $ANTLR start "ColonHyphenMinus" + public final void mColonHyphenMinus() throws RecognitionException { try { - int _type = HyphenMinusGreaterThanSign; + int _type = ColonHyphenMinus; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalSolverLanguageLexer.g:72:28: ( '->' ) - // InternalSolverLanguageLexer.g:72:30: '->' + // InternalSolverLanguageLexer.g:78:18: ( ':-' ) + // InternalSolverLanguageLexer.g:78:20: ':-' { - match("->"); + match(":-"); } @@ -725,17 +793,17 @@ public class InternalSolverLanguageLexer extends Lexer { finally { } } - // $ANTLR end "HyphenMinusGreaterThanSign" + // $ANTLR end "ColonHyphenMinus" - // $ANTLR start "FullStopFullStop" - public final void mFullStopFullStop() throws RecognitionException { + // $ANTLR start "ColonColon" + public final void mColonColon() throws RecognitionException { try { - int _type = FullStopFullStop; + int _type = ColonColon; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalSolverLanguageLexer.g:74:18: ( '..' ) - // InternalSolverLanguageLexer.g:74:20: '..' + // InternalSolverLanguageLexer.g:80:12: ( '::' ) + // InternalSolverLanguageLexer.g:80:14: '::' { - match(".."); + match("::"); } @@ -746,17 +814,17 @@ public class InternalSolverLanguageLexer extends Lexer { finally { } } - // $ANTLR end "FullStopFullStop" + // $ANTLR end "ColonColon" - // $ANTLR start "ColonHyphenMinus" - public final void mColonHyphenMinus() throws RecognitionException { + // $ANTLR start "ColonEqualsSign" + public final void mColonEqualsSign() throws RecognitionException { try { - int _type = ColonHyphenMinus; + int _type = ColonEqualsSign; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalSolverLanguageLexer.g:76:18: ( ':-' ) - // InternalSolverLanguageLexer.g:76:20: ':-' + // InternalSolverLanguageLexer.g:82:17: ( ':=' ) + // InternalSolverLanguageLexer.g:82:19: ':=' { - match(":-"); + match(":="); } @@ -767,15 +835,15 @@ public class InternalSolverLanguageLexer extends Lexer { finally { } } - // $ANTLR end "ColonHyphenMinus" + // $ANTLR end "ColonEqualsSign" // $ANTLR start "LessThanSignEqualsSign" public final void mLessThanSignEqualsSign() throws RecognitionException { try { int _type = LessThanSignEqualsSign; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalSolverLanguageLexer.g:78:24: ( '<=' ) - // InternalSolverLanguageLexer.g:78:26: '<=' + // InternalSolverLanguageLexer.g:84:24: ( '<=' ) + // InternalSolverLanguageLexer.g:84:26: '<=' { match("<="); @@ -795,8 +863,8 @@ public class InternalSolverLanguageLexer extends Lexer { try { int _type = EqualsSignEqualsSign; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalSolverLanguageLexer.g:80:22: ( '==' ) - // InternalSolverLanguageLexer.g:80:24: '==' + // InternalSolverLanguageLexer.g:86:22: ( '==' ) + // InternalSolverLanguageLexer.g:86:24: '==' { match("=="); @@ -816,8 +884,8 @@ public class InternalSolverLanguageLexer extends Lexer { try { int _type = EqualsSignGreaterThanSign; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalSolverLanguageLexer.g:82:27: ( '=>' ) - // InternalSolverLanguageLexer.g:82:29: '=>' + // InternalSolverLanguageLexer.g:88:27: ( '=>' ) + // InternalSolverLanguageLexer.g:88:29: '=>' { match("=>"); @@ -837,8 +905,8 @@ public class InternalSolverLanguageLexer extends Lexer { try { int _type = GreaterThanSignEqualsSign; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalSolverLanguageLexer.g:84:27: ( '>=' ) - // InternalSolverLanguageLexer.g:84:29: '>=' + // InternalSolverLanguageLexer.g:90:27: ( '>=' ) + // InternalSolverLanguageLexer.g:90:29: '>=' { match(">="); @@ -858,8 +926,8 @@ public class InternalSolverLanguageLexer extends Lexer { try { int _type = As; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalSolverLanguageLexer.g:86:4: ( 'as' ) - // InternalSolverLanguageLexer.g:86:6: 'as' + // InternalSolverLanguageLexer.g:92:4: ( 'as' ) + // InternalSolverLanguageLexer.g:92:6: 'as' { match("as"); @@ -879,8 +947,8 @@ public class InternalSolverLanguageLexer extends Lexer { try { int _type = If; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalSolverLanguageLexer.g:88:4: ( 'if' ) - // InternalSolverLanguageLexer.g:88:6: 'if' + // InternalSolverLanguageLexer.g:94:4: ( 'if' ) + // InternalSolverLanguageLexer.g:94:6: 'if' { match("if"); @@ -900,8 +968,8 @@ public class InternalSolverLanguageLexer extends Lexer { try { int _type = In; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalSolverLanguageLexer.g:90:4: ( 'in' ) - // InternalSolverLanguageLexer.g:90:6: 'in' + // InternalSolverLanguageLexer.g:96:4: ( 'in' ) + // InternalSolverLanguageLexer.g:96:6: 'in' { match("in"); @@ -921,8 +989,8 @@ public class InternalSolverLanguageLexer extends Lexer { try { int _type = ExclamationMark; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalSolverLanguageLexer.g:92:17: ( '!' ) - // InternalSolverLanguageLexer.g:92:19: '!' + // InternalSolverLanguageLexer.g:98:17: ( '!' ) + // InternalSolverLanguageLexer.g:98:19: '!' { match('!'); @@ -941,8 +1009,8 @@ public class InternalSolverLanguageLexer extends Lexer { try { int _type = LeftParenthesis; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalSolverLanguageLexer.g:94:17: ( '(' ) - // InternalSolverLanguageLexer.g:94:19: '(' + // InternalSolverLanguageLexer.g:100:17: ( '(' ) + // InternalSolverLanguageLexer.g:100:19: '(' { match('('); @@ -961,8 +1029,8 @@ public class InternalSolverLanguageLexer extends Lexer { try { int _type = RightParenthesis; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalSolverLanguageLexer.g:96:18: ( ')' ) - // InternalSolverLanguageLexer.g:96:20: ')' + // InternalSolverLanguageLexer.g:102:18: ( ')' ) + // InternalSolverLanguageLexer.g:102:20: ')' { match(')'); @@ -981,8 +1049,8 @@ public class InternalSolverLanguageLexer extends Lexer { try { int _type = Asterisk; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalSolverLanguageLexer.g:98:10: ( '*' ) - // InternalSolverLanguageLexer.g:98:12: '*' + // InternalSolverLanguageLexer.g:104:10: ( '*' ) + // InternalSolverLanguageLexer.g:104:12: '*' { match('*'); @@ -1001,8 +1069,8 @@ public class InternalSolverLanguageLexer extends Lexer { try { int _type = PlusSign; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalSolverLanguageLexer.g:100:10: ( '+' ) - // InternalSolverLanguageLexer.g:100:12: '+' + // InternalSolverLanguageLexer.g:106:10: ( '+' ) + // InternalSolverLanguageLexer.g:106:12: '+' { match('+'); @@ -1021,8 +1089,8 @@ public class InternalSolverLanguageLexer extends Lexer { try { int _type = Comma; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalSolverLanguageLexer.g:102:7: ( ',' ) - // InternalSolverLanguageLexer.g:102:9: ',' + // InternalSolverLanguageLexer.g:108:7: ( ',' ) + // InternalSolverLanguageLexer.g:108:9: ',' { match(','); @@ -1041,8 +1109,8 @@ public class InternalSolverLanguageLexer extends Lexer { try { int _type = HyphenMinus; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalSolverLanguageLexer.g:104:13: ( '-' ) - // InternalSolverLanguageLexer.g:104:15: '-' + // InternalSolverLanguageLexer.g:110:13: ( '-' ) + // InternalSolverLanguageLexer.g:110:15: '-' { match('-'); @@ -1061,8 +1129,8 @@ public class InternalSolverLanguageLexer extends Lexer { try { int _type = FullStop; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalSolverLanguageLexer.g:106:10: ( '.' ) - // InternalSolverLanguageLexer.g:106:12: '.' + // InternalSolverLanguageLexer.g:112:10: ( '.' ) + // InternalSolverLanguageLexer.g:112:12: '.' { match('.'); @@ -1081,8 +1149,8 @@ public class InternalSolverLanguageLexer extends Lexer { try { int _type = Solidus; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalSolverLanguageLexer.g:108:9: ( '/' ) - // InternalSolverLanguageLexer.g:108:11: '/' + // InternalSolverLanguageLexer.g:114:9: ( '/' ) + // InternalSolverLanguageLexer.g:114:11: '/' { match('/'); @@ -1101,8 +1169,8 @@ public class InternalSolverLanguageLexer extends Lexer { try { int _type = Colon; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalSolverLanguageLexer.g:110:7: ( ':' ) - // InternalSolverLanguageLexer.g:110:9: ':' + // InternalSolverLanguageLexer.g:116:7: ( ':' ) + // InternalSolverLanguageLexer.g:116:9: ':' { match(':'); @@ -1121,8 +1189,8 @@ public class InternalSolverLanguageLexer extends Lexer { try { int _type = Semicolon; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalSolverLanguageLexer.g:112:11: ( ';' ) - // InternalSolverLanguageLexer.g:112:13: ';' + // InternalSolverLanguageLexer.g:118:11: ( ';' ) + // InternalSolverLanguageLexer.g:118:13: ';' { match(';'); @@ -1141,8 +1209,8 @@ public class InternalSolverLanguageLexer extends Lexer { try { int _type = LessThanSign; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalSolverLanguageLexer.g:114:14: ( '<' ) - // InternalSolverLanguageLexer.g:114:16: '<' + // InternalSolverLanguageLexer.g:120:14: ( '<' ) + // InternalSolverLanguageLexer.g:120:16: '<' { match('<'); @@ -1161,8 +1229,8 @@ public class InternalSolverLanguageLexer extends Lexer { try { int _type = EqualsSign; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalSolverLanguageLexer.g:116:12: ( '=' ) - // InternalSolverLanguageLexer.g:116:14: '=' + // InternalSolverLanguageLexer.g:122:12: ( '=' ) + // InternalSolverLanguageLexer.g:122:14: '=' { match('='); @@ -1181,8 +1249,8 @@ public class InternalSolverLanguageLexer extends Lexer { try { int _type = GreaterThanSign; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalSolverLanguageLexer.g:118:17: ( '>' ) - // InternalSolverLanguageLexer.g:118:19: '>' + // InternalSolverLanguageLexer.g:124:17: ( '>' ) + // InternalSolverLanguageLexer.g:124:19: '>' { match('>'); @@ -1196,13 +1264,33 @@ public class InternalSolverLanguageLexer extends Lexer { } // $ANTLR end "GreaterThanSign" + // $ANTLR start "QuestionMark" + public final void mQuestionMark() throws RecognitionException { + try { + int _type = QuestionMark; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalSolverLanguageLexer.g:126:14: ( '?' ) + // InternalSolverLanguageLexer.g:126:16: '?' + { + match('?'); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "QuestionMark" + // $ANTLR start "LeftSquareBracket" public final void mLeftSquareBracket() throws RecognitionException { try { int _type = LeftSquareBracket; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalSolverLanguageLexer.g:120:19: ( '[' ) - // InternalSolverLanguageLexer.g:120:21: '[' + // InternalSolverLanguageLexer.g:128:19: ( '[' ) + // InternalSolverLanguageLexer.g:128:21: '[' { match('['); @@ -1221,8 +1309,8 @@ public class InternalSolverLanguageLexer extends Lexer { try { int _type = RightSquareBracket; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalSolverLanguageLexer.g:122:20: ( ']' ) - // InternalSolverLanguageLexer.g:122:22: ']' + // InternalSolverLanguageLexer.g:130:20: ( ']' ) + // InternalSolverLanguageLexer.g:130:22: ']' { match(']'); @@ -1241,8 +1329,8 @@ public class InternalSolverLanguageLexer extends Lexer { try { int _type = CircumflexAccent; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalSolverLanguageLexer.g:124:18: ( '^' ) - // InternalSolverLanguageLexer.g:124:20: '^' + // InternalSolverLanguageLexer.g:132:18: ( '^' ) + // InternalSolverLanguageLexer.g:132:20: '^' { match('^'); @@ -1261,8 +1349,8 @@ public class InternalSolverLanguageLexer extends Lexer { try { int _type = LeftCurlyBracket; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalSolverLanguageLexer.g:126:18: ( '{' ) - // InternalSolverLanguageLexer.g:126:20: '{' + // InternalSolverLanguageLexer.g:134:18: ( '{' ) + // InternalSolverLanguageLexer.g:134:20: '{' { match('{'); @@ -1281,8 +1369,8 @@ public class InternalSolverLanguageLexer extends Lexer { try { int _type = VerticalLine; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalSolverLanguageLexer.g:128:14: ( '|' ) - // InternalSolverLanguageLexer.g:128:16: '|' + // InternalSolverLanguageLexer.g:136:14: ( '|' ) + // InternalSolverLanguageLexer.g:136:16: '|' { match('|'); @@ -1301,8 +1389,8 @@ public class InternalSolverLanguageLexer extends Lexer { try { int _type = RightCurlyBracket; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalSolverLanguageLexer.g:130:19: ( '}' ) - // InternalSolverLanguageLexer.g:130:21: '}' + // InternalSolverLanguageLexer.g:138:19: ( '}' ) + // InternalSolverLanguageLexer.g:138:21: '}' { match('}'); @@ -1316,16 +1404,36 @@ public class InternalSolverLanguageLexer extends Lexer { } // $ANTLR end "RightCurlyBracket" + // $ANTLR start "Tilde" + public final void mTilde() throws RecognitionException { + try { + int _type = Tilde; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalSolverLanguageLexer.g:140:7: ( '~' ) + // InternalSolverLanguageLexer.g:140:9: '~' + { + match('~'); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "Tilde" + // $ANTLR start "RULE_STRING" public final void mRULE_STRING() throws RecognitionException { try { int _type = RULE_STRING; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalSolverLanguageLexer.g:132:13: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' ) - // InternalSolverLanguageLexer.g:132:15: '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' + // InternalSolverLanguageLexer.g:142:13: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' ) + // InternalSolverLanguageLexer.g:142:15: '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' { match('\"'); - // InternalSolverLanguageLexer.g:132:19: ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* + // InternalSolverLanguageLexer.g:142:19: ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* loop1: do { int alt1=3; @@ -1341,7 +1449,7 @@ public class InternalSolverLanguageLexer extends Lexer { switch (alt1) { case 1 : - // InternalSolverLanguageLexer.g:132:20: '\\\\' . + // InternalSolverLanguageLexer.g:142:20: '\\\\' . { match('\\'); matchAny(); @@ -1349,7 +1457,7 @@ public class InternalSolverLanguageLexer extends Lexer { } break; case 2 : - // InternalSolverLanguageLexer.g:132:27: ~ ( ( '\\\\' | '\"' ) ) + // InternalSolverLanguageLexer.g:142:27: ~ ( ( '\\\\' | '\"' ) ) { if ( (input.LA(1)>='\u0000' && input.LA(1)<='!')||(input.LA(1)>='#' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) { input.consume(); @@ -1386,11 +1494,11 @@ public class InternalSolverLanguageLexer extends Lexer { try { int _type = RULE_QUOTED_ID; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalSolverLanguageLexer.g:134:16: ( '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' ) - // InternalSolverLanguageLexer.g:134:18: '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' + // InternalSolverLanguageLexer.g:144:16: ( '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' ) + // InternalSolverLanguageLexer.g:144:18: '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' { match('\''); - // InternalSolverLanguageLexer.g:134:23: ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* + // InternalSolverLanguageLexer.g:144:23: ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* loop2: do { int alt2=3; @@ -1406,7 +1514,7 @@ public class InternalSolverLanguageLexer extends Lexer { switch (alt2) { case 1 : - // InternalSolverLanguageLexer.g:134:24: '\\\\' . + // InternalSolverLanguageLexer.g:144:24: '\\\\' . { match('\\'); matchAny(); @@ -1414,7 +1522,7 @@ public class InternalSolverLanguageLexer extends Lexer { } break; case 2 : - // InternalSolverLanguageLexer.g:134:31: ~ ( ( '\\\\' | '\\'' ) ) + // InternalSolverLanguageLexer.g:144:31: ~ ( ( '\\\\' | '\\'' ) ) { if ( (input.LA(1)>='\u0000' && input.LA(1)<='&')||(input.LA(1)>='(' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) { input.consume(); @@ -1451,10 +1559,10 @@ public class InternalSolverLanguageLexer extends Lexer { try { int _type = RULE_SL_COMMENT; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalSolverLanguageLexer.g:136:17: ( ( '%' | '//' ) (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? ) - // InternalSolverLanguageLexer.g:136:19: ( '%' | '//' ) (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? + // InternalSolverLanguageLexer.g:146:17: ( ( '%' | '//' ) (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? ) + // InternalSolverLanguageLexer.g:146:19: ( '%' | '//' ) (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? { - // InternalSolverLanguageLexer.g:136:19: ( '%' | '//' ) + // InternalSolverLanguageLexer.g:146:19: ( '%' | '//' ) int alt3=2; int LA3_0 = input.LA(1); @@ -1472,14 +1580,14 @@ public class InternalSolverLanguageLexer extends Lexer { } switch (alt3) { case 1 : - // InternalSolverLanguageLexer.g:136:20: '%' + // InternalSolverLanguageLexer.g:146:20: '%' { match('%'); } break; case 2 : - // InternalSolverLanguageLexer.g:136:24: '//' + // InternalSolverLanguageLexer.g:146:24: '//' { match("//"); @@ -1489,7 +1597,7 @@ public class InternalSolverLanguageLexer extends Lexer { } - // InternalSolverLanguageLexer.g:136:30: (~ ( ( '\\n' | '\\r' ) ) )* + // InternalSolverLanguageLexer.g:146:30: (~ ( ( '\\n' | '\\r' ) ) )* loop4: do { int alt4=2; @@ -1502,7 +1610,7 @@ public class InternalSolverLanguageLexer extends Lexer { switch (alt4) { case 1 : - // InternalSolverLanguageLexer.g:136:30: ~ ( ( '\\n' | '\\r' ) ) + // InternalSolverLanguageLexer.g:146:30: ~ ( ( '\\n' | '\\r' ) ) { if ( (input.LA(1)>='\u0000' && input.LA(1)<='\t')||(input.LA(1)>='\u000B' && input.LA(1)<='\f')||(input.LA(1)>='\u000E' && input.LA(1)<='\uFFFF') ) { input.consume(); @@ -1522,7 +1630,7 @@ public class InternalSolverLanguageLexer extends Lexer { } } while (true); - // InternalSolverLanguageLexer.g:136:46: ( ( '\\r' )? '\\n' )? + // InternalSolverLanguageLexer.g:146:46: ( ( '\\r' )? '\\n' )? int alt6=2; int LA6_0 = input.LA(1); @@ -1531,9 +1639,9 @@ public class InternalSolverLanguageLexer extends Lexer { } switch (alt6) { case 1 : - // InternalSolverLanguageLexer.g:136:47: ( '\\r' )? '\\n' + // InternalSolverLanguageLexer.g:146:47: ( '\\r' )? '\\n' { - // InternalSolverLanguageLexer.g:136:47: ( '\\r' )? + // InternalSolverLanguageLexer.g:146:47: ( '\\r' )? int alt5=2; int LA5_0 = input.LA(1); @@ -1542,7 +1650,7 @@ public class InternalSolverLanguageLexer extends Lexer { } switch (alt5) { case 1 : - // InternalSolverLanguageLexer.g:136:47: '\\r' + // InternalSolverLanguageLexer.g:146:47: '\\r' { match('\r'); @@ -1572,8 +1680,8 @@ public class InternalSolverLanguageLexer extends Lexer { // $ANTLR start "RULE_TRANSITIVE_CLOSURE" public final void mRULE_TRANSITIVE_CLOSURE() throws RecognitionException { try { - // InternalSolverLanguageLexer.g:138:34: () - // InternalSolverLanguageLexer.g:138:36: + // InternalSolverLanguageLexer.g:148:34: () + // InternalSolverLanguageLexer.g:148:36: { } @@ -1586,8 +1694,8 @@ public class InternalSolverLanguageLexer extends Lexer { // $ANTLR start "RULE_REFLEXIVE_TRANSITIVE_CLOSURE" public final void mRULE_REFLEXIVE_TRANSITIVE_CLOSURE() throws RecognitionException { try { - // InternalSolverLanguageLexer.g:140:44: () - // InternalSolverLanguageLexer.g:140:46: + // InternalSolverLanguageLexer.g:150:44: () + // InternalSolverLanguageLexer.g:150:46: { } @@ -1600,8 +1708,8 @@ public class InternalSolverLanguageLexer extends Lexer { // $ANTLR start "RULE_FULL_STOP" public final void mRULE_FULL_STOP() throws RecognitionException { try { - // InternalSolverLanguageLexer.g:142:25: () - // InternalSolverLanguageLexer.g:142:27: + // InternalSolverLanguageLexer.g:152:25: () + // InternalSolverLanguageLexer.g:152:27: { } @@ -1616,10 +1724,10 @@ public class InternalSolverLanguageLexer extends Lexer { try { int _type = RULE_ID; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalSolverLanguageLexer.g:144:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* ) - // InternalSolverLanguageLexer.g:144:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* + // InternalSolverLanguageLexer.g:154:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* ) + // InternalSolverLanguageLexer.g:154:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* { - // InternalSolverLanguageLexer.g:144:11: ( '^' )? + // InternalSolverLanguageLexer.g:154:11: ( '^' )? int alt7=2; int LA7_0 = input.LA(1); @@ -1628,7 +1736,7 @@ public class InternalSolverLanguageLexer extends Lexer { } switch (alt7) { case 1 : - // InternalSolverLanguageLexer.g:144:11: '^' + // InternalSolverLanguageLexer.g:154:11: '^' { match('^'); @@ -1646,7 +1754,7 @@ public class InternalSolverLanguageLexer extends Lexer { recover(mse); throw mse;} - // InternalSolverLanguageLexer.g:144:40: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* + // InternalSolverLanguageLexer.g:154:40: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* loop8: do { int alt8=2; @@ -1695,10 +1803,10 @@ public class InternalSolverLanguageLexer extends Lexer { try { int _type = RULE_INT; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalSolverLanguageLexer.g:146:10: ( ( '0' .. '9' )+ ) - // InternalSolverLanguageLexer.g:146:12: ( '0' .. '9' )+ + // InternalSolverLanguageLexer.g:156:10: ( ( '0' .. '9' )+ ) + // InternalSolverLanguageLexer.g:156:12: ( '0' .. '9' )+ { - // InternalSolverLanguageLexer.g:146:12: ( '0' .. '9' )+ + // InternalSolverLanguageLexer.g:156:12: ( '0' .. '9' )+ int cnt9=0; loop9: do { @@ -1712,7 +1820,7 @@ public class InternalSolverLanguageLexer extends Lexer { switch (alt9) { case 1 : - // InternalSolverLanguageLexer.g:146:13: '0' .. '9' + // InternalSolverLanguageLexer.g:156:13: '0' .. '9' { matchRange('0','9'); @@ -1744,12 +1852,12 @@ public class InternalSolverLanguageLexer extends Lexer { try { int _type = RULE_ML_COMMENT; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalSolverLanguageLexer.g:148:17: ( '/*' ( options {greedy=false; } : . )* '*/' ) - // InternalSolverLanguageLexer.g:148:19: '/*' ( options {greedy=false; } : . )* '*/' + // InternalSolverLanguageLexer.g:158:17: ( '/*' ( options {greedy=false; } : . )* '*/' ) + // InternalSolverLanguageLexer.g:158:19: '/*' ( options {greedy=false; } : . )* '*/' { match("/*"); - // InternalSolverLanguageLexer.g:148:24: ( options {greedy=false; } : . )* + // InternalSolverLanguageLexer.g:158:24: ( options {greedy=false; } : . )* loop10: do { int alt10=2; @@ -1774,7 +1882,7 @@ public class InternalSolverLanguageLexer extends Lexer { switch (alt10) { case 1 : - // InternalSolverLanguageLexer.g:148:52: . + // InternalSolverLanguageLexer.g:158:52: . { matchAny(); @@ -1804,10 +1912,10 @@ public class InternalSolverLanguageLexer extends Lexer { try { int _type = RULE_WS; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalSolverLanguageLexer.g:150:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ ) - // InternalSolverLanguageLexer.g:150:11: ( ' ' | '\\t' | '\\r' | '\\n' )+ + // InternalSolverLanguageLexer.g:160:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ ) + // InternalSolverLanguageLexer.g:160:11: ( ' ' | '\\t' | '\\r' | '\\n' )+ { - // InternalSolverLanguageLexer.g:150:11: ( ' ' | '\\t' | '\\r' | '\\n' )+ + // InternalSolverLanguageLexer.g:160:11: ( ' ' | '\\t' | '\\r' | '\\n' )+ int cnt11=0; loop11: do { @@ -1861,8 +1969,8 @@ public class InternalSolverLanguageLexer extends Lexer { try { int _type = RULE_ANY_OTHER; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalSolverLanguageLexer.g:152:16: ( . ) - // InternalSolverLanguageLexer.g:152:18: . + // InternalSolverLanguageLexer.g:162:16: ( . ) + // InternalSolverLanguageLexer.g:162:18: . { matchAny(); @@ -1877,474 +1985,509 @@ public class InternalSolverLanguageLexer extends Lexer { // $ANTLR end "RULE_ANY_OTHER" public void mTokens() throws RecognitionException { - // InternalSolverLanguageLexer.g:1:8: ( Functional | Abstract | Contains | Datatype | Maximize | Minimize | Opposite | Current | Default | Extends | Unknown | Exists | Extern | Forall | Class | Count | Empty | Error | False | Scope | Else | Must | Then | True | FullStopFullStopFullStop | Inf | Let | May | ExclamationMarkEqualsSign | HyphenMinusGreaterThanSign | FullStopFullStop | ColonHyphenMinus | LessThanSignEqualsSign | EqualsSignEqualsSign | EqualsSignGreaterThanSign | GreaterThanSignEqualsSign | As | If | In | ExclamationMark | LeftParenthesis | RightParenthesis | Asterisk | PlusSign | Comma | HyphenMinus | FullStop | Solidus | Colon | Semicolon | LessThanSign | EqualsSign | GreaterThanSign | LeftSquareBracket | RightSquareBracket | CircumflexAccent | LeftCurlyBracket | VerticalLine | RightCurlyBracket | RULE_STRING | RULE_QUOTED_ID | RULE_SL_COMMENT | RULE_ID | RULE_INT | RULE_ML_COMMENT | RULE_WS | RULE_ANY_OTHER ) - int alt12=67; + // InternalSolverLanguageLexer.g:1:8: ( Containment | Functional | Abstract | Contains | Datatype | Maximize | Minimize | Opposite | Default | Extends | Problem | Unknown | Extern | Import | Object | Refers | Class | Count | Empty | Error | False | Scope | Else | Enum | Root | Then | True | FullStopFullStopFullStop | Inf | Let | ExclamationMarkEqualsSign | HyphenMinusGreaterThanSign | ColonHyphenMinus | ColonColon | ColonEqualsSign | LessThanSignEqualsSign | EqualsSignEqualsSign | EqualsSignGreaterThanSign | GreaterThanSignEqualsSign | As | If | In | ExclamationMark | LeftParenthesis | RightParenthesis | Asterisk | PlusSign | Comma | HyphenMinus | FullStop | Solidus | Colon | Semicolon | LessThanSign | EqualsSign | GreaterThanSign | QuestionMark | LeftSquareBracket | RightSquareBracket | CircumflexAccent | LeftCurlyBracket | VerticalLine | RightCurlyBracket | Tilde | RULE_STRING | RULE_QUOTED_ID | RULE_SL_COMMENT | RULE_ID | RULE_INT | RULE_ML_COMMENT | RULE_WS | RULE_ANY_OTHER ) + int alt12=72; alt12 = dfa12.predict(input); switch (alt12) { case 1 : - // InternalSolverLanguageLexer.g:1:10: Functional + // InternalSolverLanguageLexer.g:1:10: Containment { - mFunctional(); + mContainment(); } break; case 2 : - // InternalSolverLanguageLexer.g:1:21: Abstract + // InternalSolverLanguageLexer.g:1:22: Functional { - mAbstract(); + mFunctional(); } break; case 3 : - // InternalSolverLanguageLexer.g:1:30: Contains + // InternalSolverLanguageLexer.g:1:33: Abstract { - mContains(); + mAbstract(); } break; case 4 : - // InternalSolverLanguageLexer.g:1:39: Datatype + // InternalSolverLanguageLexer.g:1:42: Contains { - mDatatype(); + mContains(); } break; case 5 : - // InternalSolverLanguageLexer.g:1:48: Maximize + // InternalSolverLanguageLexer.g:1:51: Datatype { - mMaximize(); + mDatatype(); } break; case 6 : - // InternalSolverLanguageLexer.g:1:57: Minimize + // InternalSolverLanguageLexer.g:1:60: Maximize { - mMinimize(); + mMaximize(); } break; case 7 : - // InternalSolverLanguageLexer.g:1:66: Opposite + // InternalSolverLanguageLexer.g:1:69: Minimize { - mOpposite(); + mMinimize(); } break; case 8 : - // InternalSolverLanguageLexer.g:1:75: Current + // InternalSolverLanguageLexer.g:1:78: Opposite { - mCurrent(); + mOpposite(); } break; case 9 : - // InternalSolverLanguageLexer.g:1:83: Default + // InternalSolverLanguageLexer.g:1:87: Default { mDefault(); } break; case 10 : - // InternalSolverLanguageLexer.g:1:91: Extends + // InternalSolverLanguageLexer.g:1:95: Extends { mExtends(); } break; case 11 : - // InternalSolverLanguageLexer.g:1:99: Unknown + // InternalSolverLanguageLexer.g:1:103: Problem { - mUnknown(); + mProblem(); } break; case 12 : - // InternalSolverLanguageLexer.g:1:107: Exists + // InternalSolverLanguageLexer.g:1:111: Unknown { - mExists(); + mUnknown(); } break; case 13 : - // InternalSolverLanguageLexer.g:1:114: Extern + // InternalSolverLanguageLexer.g:1:119: Extern { mExtern(); } break; case 14 : - // InternalSolverLanguageLexer.g:1:121: Forall + // InternalSolverLanguageLexer.g:1:126: Import { - mForall(); + mImport(); } break; case 15 : - // InternalSolverLanguageLexer.g:1:128: Class + // InternalSolverLanguageLexer.g:1:133: Object { - mClass(); + mObject(); } break; case 16 : - // InternalSolverLanguageLexer.g:1:134: Count + // InternalSolverLanguageLexer.g:1:140: Refers { - mCount(); + mRefers(); } break; case 17 : - // InternalSolverLanguageLexer.g:1:140: Empty + // InternalSolverLanguageLexer.g:1:147: Class { - mEmpty(); + mClass(); } break; case 18 : - // InternalSolverLanguageLexer.g:1:146: Error + // InternalSolverLanguageLexer.g:1:153: Count { - mError(); + mCount(); } break; case 19 : - // InternalSolverLanguageLexer.g:1:152: False + // InternalSolverLanguageLexer.g:1:159: Empty { - mFalse(); + mEmpty(); } break; case 20 : - // InternalSolverLanguageLexer.g:1:158: Scope + // InternalSolverLanguageLexer.g:1:165: Error { - mScope(); + mError(); } break; case 21 : - // InternalSolverLanguageLexer.g:1:164: Else + // InternalSolverLanguageLexer.g:1:171: False { - mElse(); + mFalse(); } break; case 22 : - // InternalSolverLanguageLexer.g:1:169: Must + // InternalSolverLanguageLexer.g:1:177: Scope { - mMust(); + mScope(); } break; case 23 : - // InternalSolverLanguageLexer.g:1:174: Then + // InternalSolverLanguageLexer.g:1:183: Else { - mThen(); + mElse(); } break; case 24 : - // InternalSolverLanguageLexer.g:1:179: True + // InternalSolverLanguageLexer.g:1:188: Enum { - mTrue(); + mEnum(); } break; case 25 : - // InternalSolverLanguageLexer.g:1:184: FullStopFullStopFullStop + // InternalSolverLanguageLexer.g:1:193: Root { - mFullStopFullStopFullStop(); + mRoot(); } break; case 26 : - // InternalSolverLanguageLexer.g:1:209: Inf + // InternalSolverLanguageLexer.g:1:198: Then { - mInf(); + mThen(); } break; case 27 : - // InternalSolverLanguageLexer.g:1:213: Let + // InternalSolverLanguageLexer.g:1:203: True { - mLet(); + mTrue(); } break; case 28 : - // InternalSolverLanguageLexer.g:1:217: May + // InternalSolverLanguageLexer.g:1:208: FullStopFullStopFullStop { - mMay(); + mFullStopFullStopFullStop(); } break; case 29 : - // InternalSolverLanguageLexer.g:1:221: ExclamationMarkEqualsSign + // InternalSolverLanguageLexer.g:1:233: Inf { - mExclamationMarkEqualsSign(); + mInf(); } break; case 30 : - // InternalSolverLanguageLexer.g:1:247: HyphenMinusGreaterThanSign + // InternalSolverLanguageLexer.g:1:237: Let { - mHyphenMinusGreaterThanSign(); + mLet(); } break; case 31 : - // InternalSolverLanguageLexer.g:1:274: FullStopFullStop + // InternalSolverLanguageLexer.g:1:241: ExclamationMarkEqualsSign { - mFullStopFullStop(); + mExclamationMarkEqualsSign(); } break; case 32 : - // InternalSolverLanguageLexer.g:1:291: ColonHyphenMinus + // InternalSolverLanguageLexer.g:1:267: HyphenMinusGreaterThanSign { - mColonHyphenMinus(); + mHyphenMinusGreaterThanSign(); } break; case 33 : - // InternalSolverLanguageLexer.g:1:308: LessThanSignEqualsSign + // InternalSolverLanguageLexer.g:1:294: ColonHyphenMinus { - mLessThanSignEqualsSign(); + mColonHyphenMinus(); } break; case 34 : - // InternalSolverLanguageLexer.g:1:331: EqualsSignEqualsSign + // InternalSolverLanguageLexer.g:1:311: ColonColon { - mEqualsSignEqualsSign(); + mColonColon(); } break; case 35 : - // InternalSolverLanguageLexer.g:1:352: EqualsSignGreaterThanSign + // InternalSolverLanguageLexer.g:1:322: ColonEqualsSign { - mEqualsSignGreaterThanSign(); + mColonEqualsSign(); } break; case 36 : - // InternalSolverLanguageLexer.g:1:378: GreaterThanSignEqualsSign + // InternalSolverLanguageLexer.g:1:338: LessThanSignEqualsSign { - mGreaterThanSignEqualsSign(); + mLessThanSignEqualsSign(); } break; case 37 : - // InternalSolverLanguageLexer.g:1:404: As + // InternalSolverLanguageLexer.g:1:361: EqualsSignEqualsSign { - mAs(); + mEqualsSignEqualsSign(); } break; case 38 : - // InternalSolverLanguageLexer.g:1:407: If + // InternalSolverLanguageLexer.g:1:382: EqualsSignGreaterThanSign { - mIf(); + mEqualsSignGreaterThanSign(); } break; case 39 : - // InternalSolverLanguageLexer.g:1:410: In + // InternalSolverLanguageLexer.g:1:408: GreaterThanSignEqualsSign { - mIn(); + mGreaterThanSignEqualsSign(); } break; case 40 : - // InternalSolverLanguageLexer.g:1:413: ExclamationMark + // InternalSolverLanguageLexer.g:1:434: As { - mExclamationMark(); + mAs(); } break; case 41 : - // InternalSolverLanguageLexer.g:1:429: LeftParenthesis + // InternalSolverLanguageLexer.g:1:437: If { - mLeftParenthesis(); + mIf(); } break; case 42 : - // InternalSolverLanguageLexer.g:1:445: RightParenthesis + // InternalSolverLanguageLexer.g:1:440: In { - mRightParenthesis(); + mIn(); } break; case 43 : - // InternalSolverLanguageLexer.g:1:462: Asterisk + // InternalSolverLanguageLexer.g:1:443: ExclamationMark { - mAsterisk(); + mExclamationMark(); } break; case 44 : - // InternalSolverLanguageLexer.g:1:471: PlusSign + // InternalSolverLanguageLexer.g:1:459: LeftParenthesis { - mPlusSign(); + mLeftParenthesis(); } break; case 45 : - // InternalSolverLanguageLexer.g:1:480: Comma + // InternalSolverLanguageLexer.g:1:475: RightParenthesis { - mComma(); + mRightParenthesis(); } break; case 46 : - // InternalSolverLanguageLexer.g:1:486: HyphenMinus + // InternalSolverLanguageLexer.g:1:492: Asterisk { - mHyphenMinus(); + mAsterisk(); } break; case 47 : - // InternalSolverLanguageLexer.g:1:498: FullStop + // InternalSolverLanguageLexer.g:1:501: PlusSign { - mFullStop(); + mPlusSign(); } break; case 48 : - // InternalSolverLanguageLexer.g:1:507: Solidus + // InternalSolverLanguageLexer.g:1:510: Comma { - mSolidus(); + mComma(); } break; case 49 : - // InternalSolverLanguageLexer.g:1:515: Colon + // InternalSolverLanguageLexer.g:1:516: HyphenMinus { - mColon(); + mHyphenMinus(); } break; case 50 : - // InternalSolverLanguageLexer.g:1:521: Semicolon + // InternalSolverLanguageLexer.g:1:528: FullStop { - mSemicolon(); + mFullStop(); } break; case 51 : - // InternalSolverLanguageLexer.g:1:531: LessThanSign + // InternalSolverLanguageLexer.g:1:537: Solidus { - mLessThanSign(); + mSolidus(); } break; case 52 : - // InternalSolverLanguageLexer.g:1:544: EqualsSign + // InternalSolverLanguageLexer.g:1:545: Colon { - mEqualsSign(); + mColon(); } break; case 53 : - // InternalSolverLanguageLexer.g:1:555: GreaterThanSign + // InternalSolverLanguageLexer.g:1:551: Semicolon { - mGreaterThanSign(); + mSemicolon(); } break; case 54 : - // InternalSolverLanguageLexer.g:1:571: LeftSquareBracket + // InternalSolverLanguageLexer.g:1:561: LessThanSign { - mLeftSquareBracket(); + mLessThanSign(); } break; case 55 : - // InternalSolverLanguageLexer.g:1:589: RightSquareBracket + // InternalSolverLanguageLexer.g:1:574: EqualsSign { - mRightSquareBracket(); + mEqualsSign(); } break; case 56 : - // InternalSolverLanguageLexer.g:1:608: CircumflexAccent + // InternalSolverLanguageLexer.g:1:585: GreaterThanSign { - mCircumflexAccent(); + mGreaterThanSign(); } break; case 57 : - // InternalSolverLanguageLexer.g:1:625: LeftCurlyBracket + // InternalSolverLanguageLexer.g:1:601: QuestionMark { - mLeftCurlyBracket(); + mQuestionMark(); } break; case 58 : - // InternalSolverLanguageLexer.g:1:642: VerticalLine + // InternalSolverLanguageLexer.g:1:614: LeftSquareBracket { - mVerticalLine(); + mLeftSquareBracket(); } break; case 59 : - // InternalSolverLanguageLexer.g:1:655: RightCurlyBracket + // InternalSolverLanguageLexer.g:1:632: RightSquareBracket { - mRightCurlyBracket(); + mRightSquareBracket(); } break; case 60 : - // InternalSolverLanguageLexer.g:1:673: RULE_STRING + // InternalSolverLanguageLexer.g:1:651: CircumflexAccent { - mRULE_STRING(); + mCircumflexAccent(); } break; case 61 : - // InternalSolverLanguageLexer.g:1:685: RULE_QUOTED_ID + // InternalSolverLanguageLexer.g:1:668: LeftCurlyBracket { - mRULE_QUOTED_ID(); + mLeftCurlyBracket(); } break; case 62 : - // InternalSolverLanguageLexer.g:1:700: RULE_SL_COMMENT + // InternalSolverLanguageLexer.g:1:685: VerticalLine { - mRULE_SL_COMMENT(); + mVerticalLine(); } break; case 63 : - // InternalSolverLanguageLexer.g:1:716: RULE_ID + // InternalSolverLanguageLexer.g:1:698: RightCurlyBracket { - mRULE_ID(); + mRightCurlyBracket(); } break; case 64 : - // InternalSolverLanguageLexer.g:1:724: RULE_INT + // InternalSolverLanguageLexer.g:1:716: Tilde { - mRULE_INT(); + mTilde(); } break; case 65 : - // InternalSolverLanguageLexer.g:1:733: RULE_ML_COMMENT + // InternalSolverLanguageLexer.g:1:722: RULE_STRING { - mRULE_ML_COMMENT(); + mRULE_STRING(); } break; case 66 : - // InternalSolverLanguageLexer.g:1:749: RULE_WS + // InternalSolverLanguageLexer.g:1:734: RULE_QUOTED_ID { - mRULE_WS(); + mRULE_QUOTED_ID(); } break; case 67 : - // InternalSolverLanguageLexer.g:1:757: RULE_ANY_OTHER + // InternalSolverLanguageLexer.g:1:749: RULE_SL_COMMENT + { + mRULE_SL_COMMENT(); + + } + break; + case 68 : + // InternalSolverLanguageLexer.g:1:765: RULE_ID + { + mRULE_ID(); + + } + break; + case 69 : + // InternalSolverLanguageLexer.g:1:773: RULE_INT + { + mRULE_INT(); + + } + break; + case 70 : + // InternalSolverLanguageLexer.g:1:782: RULE_ML_COMMENT + { + mRULE_ML_COMMENT(); + + } + break; + case 71 : + // InternalSolverLanguageLexer.g:1:798: RULE_WS + { + mRULE_WS(); + + } + break; + case 72 : + // InternalSolverLanguageLexer.g:1:806: RULE_ANY_OTHER { mRULE_ANY_OTHER(); @@ -2358,74 +2501,69 @@ public class InternalSolverLanguageLexer extends Lexer { protected DFA12 dfa12 = new DFA12(this); static final String DFA12_eotS = - "\1\uffff\12\53\1\100\2\53\1\105\1\107\1\111\1\113\1\116\1\120\5\uffff\1\130\3\uffff\1\134\3\uffff\2\47\5\uffff\3\53\1\uffff\1\53\1\150\21\53\1\176\1\uffff\1\u0080\1\u0081\1\53\40\uffff\4\53\1\uffff\7\53\1\u008e\14\53\2\uffff\1\u009b\2\uffff\1\u009c\13\53\1\uffff\1\53\1\u00a9\5\53\1\u00b0\2\53\1\u00b3\1\u00b4\2\uffff\2\53\1\u00b7\2\53\1\u00ba\1\53\1\u00bc\4\53\1\uffff\4\53\1\u00c5\1\u00c6\1\uffff\1\53\1\u00c8\2\uffff\1\53\1\u00ca\1\uffff\2\53\1\uffff\1\53\1\uffff\6\53\1\u00d4\1\u00d5\2\uffff\1\53\1\uffff\1\53\1\uffff\2\53\1\u00da\1\53\1\u00dc\3\53\1\u00e0\2\uffff\1\u00e1\1\53\1\u00e3\1\u00e4\1\uffff\1\u00e5\1\uffff\1\u00e6\1\u00e7\1\u00e8\2\uffff\1\53\6\uffff\1\u00ea\1\uffff"; + "\1\uffff\15\56\1\111\1\56\1\114\1\116\1\122\1\124\1\127\1\131\5\uffff\1\141\4\uffff\1\146\4\uffff\2\53\5\uffff\2\56\1\uffff\3\56\1\165\16\56\1\u0085\1\u0086\5\56\2\uffff\1\56\44\uffff\6\56\1\uffff\16\56\1\u00a1\2\uffff\5\56\1\u00a7\17\56\1\u00b8\1\u00b9\3\56\1\uffff\1\56\1\u00be\1\56\1\u00c0\1\u00c1\1\uffff\1\56\1\u00c3\1\u00c4\1\56\1\u00c6\11\56\1\u00d0\1\u00d1\2\uffff\4\56\1\uffff\1\u00d6\2\uffff\1\56\2\uffff\1\56\1\uffff\6\56\1\u00df\1\56\1\u00e1\2\uffff\2\56\1\u00e4\1\u00e5\1\uffff\4\56\1\u00eb\3\56\1\uffff\1\u00ef\1\uffff\1\u00f0\1\u00f1\2\uffff\1\56\1\u00f3\1\56\1\u00f5\1\u00f6\1\uffff\1\u00f7\1\u00f8\1\u00f9\3\uffff\1\56\1\uffff\1\56\5\uffff\1\56\1\u00fd\1\u00fe\2\uffff"; static final String DFA12_eofS = - "\u00eb\uffff"; + "\u00ff\uffff"; static final String DFA12_minS = - "\1\0\1\141\1\142\1\154\2\141\1\160\1\154\1\156\1\143\1\150\1\56\1\146\1\145\1\75\1\76\1\55\3\75\5\uffff\1\52\3\uffff\1\101\3\uffff\2\0\5\uffff\1\156\1\162\1\154\1\uffff\1\163\1\60\1\156\1\162\1\141\1\164\1\146\1\170\1\156\1\163\1\160\1\151\1\160\1\162\1\163\1\153\1\157\1\145\1\165\1\56\1\uffff\2\60\1\164\40\uffff\1\143\1\141\1\163\1\164\1\uffff\1\164\1\156\1\162\1\163\2\141\1\151\1\60\1\151\1\164\1\157\1\145\1\163\1\164\1\157\1\145\1\156\1\160\1\156\1\145\2\uffff\1\60\2\uffff\1\60\1\164\1\154\1\145\1\162\1\141\1\164\1\145\1\163\1\164\1\165\1\155\1\uffff\1\155\1\60\1\163\1\156\1\164\1\171\1\162\1\60\1\157\1\145\2\60\2\uffff\1\151\1\154\1\60\1\141\1\151\1\60\1\156\1\60\1\171\1\154\2\151\1\uffff\1\151\1\144\1\156\1\163\2\60\1\uffff\1\167\1\60\2\uffff\1\157\1\60\1\uffff\1\143\1\156\1\uffff\1\164\1\uffff\1\160\1\164\2\172\1\164\1\163\2\60\2\uffff\1\156\1\uffff\1\156\1\uffff\1\164\1\163\1\60\1\145\1\60\3\145\1\60\2\uffff\1\60\1\141\2\60\1\uffff\1\60\1\uffff\3\60\2\uffff\1\154\6\uffff\1\60\1\uffff"; + "\1\0\1\154\1\141\1\142\2\141\1\142\1\154\1\162\1\156\1\146\1\145\1\143\1\150\1\56\1\145\1\75\1\76\1\55\3\75\5\uffff\1\52\4\uffff\1\101\4\uffff\2\0\5\uffff\1\156\1\141\1\uffff\1\156\1\154\1\163\1\60\1\164\1\146\1\170\1\156\1\160\1\152\1\164\1\160\1\162\1\163\1\165\1\157\1\153\1\160\2\60\1\146\2\157\1\145\1\165\2\uffff\1\164\44\uffff\1\164\1\156\1\163\1\143\1\163\1\164\1\uffff\2\141\2\151\1\157\2\145\1\164\1\157\1\145\1\155\1\142\1\156\1\157\1\60\2\uffff\1\145\1\164\1\160\1\156\1\145\1\60\1\141\1\164\1\163\1\164\1\145\1\162\1\164\1\165\2\155\1\163\1\143\1\156\1\171\1\162\2\60\1\154\1\157\1\162\1\uffff\1\162\1\60\1\145\2\60\1\uffff\1\151\2\60\1\151\1\60\1\141\1\171\1\154\3\151\1\164\1\144\1\156\2\60\2\uffff\1\145\1\167\1\164\1\163\1\uffff\1\60\2\uffff\1\156\2\uffff\1\157\1\uffff\1\143\1\160\1\164\2\172\1\164\1\60\1\163\1\60\2\uffff\1\155\1\156\2\60\1\uffff\1\155\1\156\1\164\1\145\1\60\3\145\1\uffff\1\60\1\uffff\2\60\2\uffff\1\145\1\60\1\141\2\60\1\uffff\3\60\3\uffff\1\156\1\uffff\1\154\5\uffff\1\164\2\60\2\uffff"; static final String DFA12_maxS = - "\1\uffff\1\165\1\163\1\165\1\145\1\165\1\160\1\170\1\156\1\143\1\162\1\56\1\156\1\145\1\75\1\76\1\55\1\75\1\76\1\75\5\uffff\1\57\3\uffff\1\172\3\uffff\2\uffff\5\uffff\1\156\1\162\1\154\1\uffff\1\163\1\172\1\165\1\162\1\141\1\164\1\146\1\171\1\156\1\163\1\160\1\164\1\160\1\162\1\163\1\153\1\157\1\145\1\165\1\56\1\uffff\2\172\1\164\40\uffff\1\143\1\141\1\163\1\164\1\uffff\1\164\1\156\1\162\1\163\2\141\1\151\1\172\1\151\1\164\1\157\1\145\1\163\1\164\1\157\1\145\1\156\1\160\1\156\1\145\2\uffff\1\172\2\uffff\1\172\1\164\1\154\1\145\1\162\1\141\1\164\1\145\1\163\1\164\1\165\1\155\1\uffff\1\155\1\172\1\163\1\162\1\164\1\171\1\162\1\172\1\157\1\145\2\172\2\uffff\1\151\1\154\1\172\1\141\1\151\1\172\1\156\1\172\1\171\1\154\2\151\1\uffff\1\151\1\144\1\156\1\163\2\172\1\uffff\1\167\1\172\2\uffff\1\157\1\172\1\uffff\1\143\1\156\1\uffff\1\164\1\uffff\1\160\1\164\2\172\1\164\1\163\2\172\2\uffff\1\156\1\uffff\1\156\1\uffff\1\164\1\163\1\172\1\145\1\172\3\145\1\172\2\uffff\1\172\1\141\2\172\1\uffff\1\172\1\uffff\3\172\2\uffff\1\154\6\uffff\1\172\1\uffff"; + "\1\uffff\1\157\1\165\1\163\1\145\1\151\1\160\1\170\1\162\2\156\1\157\1\143\1\162\1\56\1\145\1\75\1\76\2\75\1\76\1\75\5\uffff\1\57\4\uffff\1\172\4\uffff\2\uffff\5\uffff\1\165\1\141\1\uffff\1\156\1\154\1\163\1\172\1\164\1\146\1\170\1\156\1\160\1\152\1\164\1\160\1\162\1\163\1\165\1\157\1\153\1\160\2\172\1\146\2\157\1\145\1\165\2\uffff\1\164\44\uffff\1\164\1\156\1\163\1\143\1\163\1\164\1\uffff\2\141\2\151\1\157\2\145\1\164\1\157\1\145\1\155\1\142\1\156\1\157\1\172\2\uffff\1\145\1\164\1\160\1\156\1\145\1\172\1\141\1\164\1\163\1\164\1\145\1\162\1\164\1\165\2\155\1\163\1\143\1\162\1\171\1\162\2\172\1\154\1\157\1\162\1\uffff\1\162\1\172\1\145\2\172\1\uffff\1\151\2\172\1\151\1\172\1\141\1\171\1\154\3\151\1\164\1\144\1\156\2\172\2\uffff\1\145\1\167\1\164\1\163\1\uffff\1\172\2\uffff\1\156\2\uffff\1\157\1\uffff\1\143\1\160\1\164\2\172\1\164\1\172\1\163\1\172\2\uffff\1\155\1\156\2\172\1\uffff\1\163\1\156\1\164\1\145\1\172\3\145\1\uffff\1\172\1\uffff\2\172\2\uffff\1\145\1\172\1\141\2\172\1\uffff\3\172\3\uffff\1\156\1\uffff\1\154\5\uffff\1\164\2\172\2\uffff"; static final String DFA12_acceptS = - "\24\uffff\1\51\1\52\1\53\1\54\1\55\1\uffff\1\62\1\66\1\67\1\uffff\1\71\1\72\1\73\2\uffff\1\76\1\77\1\100\1\102\1\103\3\uffff\1\77\24\uffff\1\57\3\uffff\1\35\1\50\1\36\1\56\1\40\1\61\1\41\1\63\1\42\1\43\1\64\1\44\1\65\1\51\1\52\1\53\1\54\1\55\1\76\1\101\1\60\1\62\1\66\1\67\1\70\1\71\1\72\1\73\1\74\1\75\1\100\1\102\4\uffff\1\45\24\uffff\1\31\1\37\1\uffff\1\47\1\46\14\uffff\1\34\14\uffff\1\32\1\33\14\uffff\1\26\6\uffff\1\25\2\uffff\1\27\1\30\2\uffff\1\23\2\uffff\1\20\1\uffff\1\17\10\uffff\1\21\1\22\1\uffff\1\24\1\uffff\1\16\11\uffff\1\15\1\14\4\uffff\1\10\1\uffff\1\11\3\uffff\1\12\1\13\1\uffff\1\2\1\3\1\4\1\5\1\6\1\7\1\uffff\1\1"; + "\26\uffff\1\54\1\55\1\56\1\57\1\60\1\uffff\1\65\1\71\1\72\1\73\1\uffff\1\75\1\76\1\77\1\100\2\uffff\1\103\1\104\1\105\1\107\1\110\2\uffff\1\104\31\uffff\1\34\1\62\1\uffff\1\37\1\53\1\40\1\61\1\41\1\42\1\43\1\64\1\44\1\66\1\45\1\46\1\67\1\47\1\70\1\54\1\55\1\56\1\57\1\60\1\103\1\106\1\63\1\65\1\71\1\72\1\73\1\74\1\75\1\76\1\77\1\100\1\101\1\102\1\105\1\107\6\uffff\1\50\17\uffff\1\52\1\51\32\uffff\1\35\5\uffff\1\36\20\uffff\1\27\1\30\4\uffff\1\31\1\uffff\1\32\1\33\1\uffff\1\22\1\21\1\uffff\1\25\11\uffff\1\23\1\24\4\uffff\1\26\10\uffff\1\17\1\uffff\1\15\2\uffff\1\16\1\20\5\uffff\1\11\3\uffff\1\12\1\13\1\14\1\uffff\1\4\1\uffff\1\3\1\5\1\6\1\7\1\10\3\uffff\1\2\1\1"; static final String DFA12_specialS = - "\1\2\40\uffff\1\0\1\1\u00c8\uffff}>"; + "\1\1\44\uffff\1\0\1\2\u00d8\uffff}>"; static final String[] DFA12_transitionS = { - "\11\47\2\46\2\47\1\46\22\47\1\46\1\16\1\41\2\47\1\43\1\47\1\42\1\24\1\25\1\26\1\27\1\30\1\17\1\13\1\31\12\45\1\20\1\32\1\21\1\22\1\23\2\47\32\44\1\33\1\47\1\34\1\35\1\44\1\47\1\2\1\44\1\3\1\4\1\7\1\1\2\44\1\14\2\44\1\15\1\5\1\44\1\6\3\44\1\11\1\12\1\10\5\44\1\36\1\37\1\40\uff82\47", - "\1\52\15\uffff\1\51\5\uffff\1\50", - "\1\54\20\uffff\1\55", - "\1\60\2\uffff\1\56\5\uffff\1\57", - "\1\61\3\uffff\1\62", - "\1\63\7\uffff\1\64\13\uffff\1\65", - "\1\66", - "\1\72\1\70\4\uffff\1\71\5\uffff\1\67", - "\1\73", - "\1\74", - "\1\75\11\uffff\1\76", + "\11\53\2\52\2\53\1\52\22\53\1\52\1\20\1\45\2\53\1\47\1\53\1\46\1\26\1\27\1\30\1\31\1\32\1\21\1\16\1\33\12\51\1\22\1\34\1\23\1\24\1\25\1\35\1\53\32\50\1\36\1\53\1\37\1\40\1\50\1\53\1\3\1\50\1\1\1\4\1\7\1\2\2\50\1\12\2\50\1\17\1\5\1\50\1\6\1\10\1\50\1\13\1\14\1\15\1\11\5\50\1\41\1\42\1\43\1\44\uff81\53", + "\1\55\2\uffff\1\54", + "\1\60\23\uffff\1\57", + "\1\61\20\uffff\1\62", + "\1\63\3\uffff\1\64", + "\1\65\7\uffff\1\66", + "\1\70\15\uffff\1\67", + "\1\74\1\72\1\75\3\uffff\1\73\5\uffff\1\71", + "\1\76", "\1\77", - "\1\102\7\uffff\1\101", - "\1\103", - "\1\104", - "\1\106", + "\1\102\6\uffff\1\100\1\101", + "\1\103\11\uffff\1\104", + "\1\105", + "\1\106\11\uffff\1\107", "\1\110", "\1\112", - "\1\114\1\115", - "\1\117", + "\1\113", + "\1\115", + "\1\117\14\uffff\1\120\2\uffff\1\121", + "\1\123", + "\1\125\1\126", + "\1\130", + "", "", "", "", "", + "\1\140\4\uffff\1\137", "", - "\1\127\4\uffff\1\126", "", "", "", - "\32\53\4\uffff\1\53\1\uffff\32\53", + "\32\56\4\uffff\1\56\1\uffff\32\56", "", "", "", - "\0\140", - "\0\141", "", + "\0\153", + "\0\154", "", "", "", "", - "\1\144", - "\1\145", - "\1\146", "", - "\1\147", - "\12\53\7\uffff\32\53\4\uffff\1\53\1\uffff\32\53", - "\1\151\6\uffff\1\152", - "\1\153", - "\1\154", - "\1\155", - "\1\156", - "\1\157\1\160", + "\1\157\6\uffff\1\160", "\1\161", + "", "\1\162", "\1\163", - "\1\165\12\uffff\1\164", + "\1\164", + "\12\56\7\uffff\32\56\4\uffff\1\56\1\uffff\32\56", "\1\166", "\1\167", "\1\170", @@ -2434,10 +2572,25 @@ public class InternalSolverLanguageLexer extends Lexer { "\1\173", "\1\174", "\1\175", - "", - "\12\53\7\uffff\32\53\4\uffff\1\53\1\uffff\5\53\1\177\24\53", - "\12\53\7\uffff\32\53\4\uffff\1\53\1\uffff\32\53", + "\1\176", + "\1\177", + "\1\u0080", + "\1\u0081", "\1\u0082", + "\1\u0083", + "\12\56\7\uffff\32\56\4\uffff\1\56\1\uffff\5\56\1\u0084\24\56", + "\12\56\7\uffff\32\56\4\uffff\1\56\1\uffff\32\56", + "\1\u0087", + "\1\u0088", + "\1\u0089", + "\1\u008a", + "\1\u008b", + "", + "", + "\1\u008c", + "", + "", + "", "", "", "", @@ -2470,23 +2623,14 @@ public class InternalSolverLanguageLexer extends Lexer { "", "", "", - "\1\u0083", - "\1\u0084", - "\1\u0085", - "\1\u0086", "", - "\1\u0087", - "\1\u0088", - "\1\u0089", - "\1\u008a", - "\1\u008b", - "\1\u008c", "\1\u008d", - "\12\53\7\uffff\32\53\4\uffff\1\53\1\uffff\32\53", + "\1\u008e", "\1\u008f", "\1\u0090", "\1\u0091", "\1\u0092", + "", "\1\u0093", "\1\u0094", "\1\u0095", @@ -2495,115 +2639,134 @@ public class InternalSolverLanguageLexer extends Lexer { "\1\u0098", "\1\u0099", "\1\u009a", - "", - "", - "\12\53\7\uffff\32\53\4\uffff\1\53\1\uffff\32\53", - "", - "", - "\12\53\7\uffff\32\53\4\uffff\1\53\1\uffff\32\53", + "\1\u009b", + "\1\u009c", "\1\u009d", "\1\u009e", "\1\u009f", "\1\u00a0", - "\1\u00a1", + "\12\56\7\uffff\32\56\4\uffff\1\56\1\uffff\32\56", + "", + "", "\1\u00a2", "\1\u00a3", "\1\u00a4", "\1\u00a5", "\1\u00a6", - "\1\u00a7", - "", + "\12\56\7\uffff\32\56\4\uffff\1\56\1\uffff\32\56", "\1\u00a8", - "\12\53\7\uffff\32\53\4\uffff\1\53\1\uffff\32\53", + "\1\u00a9", "\1\u00aa", - "\1\u00ab\3\uffff\1\u00ac", + "\1\u00ab", + "\1\u00ac", "\1\u00ad", "\1\u00ae", "\1\u00af", - "\12\53\7\uffff\32\53\4\uffff\1\53\1\uffff\32\53", + "\1\u00b0", "\1\u00b1", "\1\u00b2", - "\12\53\7\uffff\32\53\4\uffff\1\53\1\uffff\32\53", - "\12\53\7\uffff\32\53\4\uffff\1\53\1\uffff\32\53", - "", - "", - "\1\u00b5", + "\1\u00b3", + "\1\u00b4\3\uffff\1\u00b5", "\1\u00b6", - "\12\53\7\uffff\32\53\4\uffff\1\53\1\uffff\32\53", - "\1\u00b8", - "\1\u00b9", - "\12\53\7\uffff\32\53\4\uffff\1\53\1\uffff\32\53", + "\1\u00b7", + "\12\56\7\uffff\32\56\4\uffff\1\56\1\uffff\32\56", + "\12\56\7\uffff\32\56\4\uffff\1\56\1\uffff\32\56", + "\1\u00ba", "\1\u00bb", - "\12\53\7\uffff\32\53\4\uffff\1\53\1\uffff\32\53", + "\1\u00bc", + "", "\1\u00bd", - "\1\u00be", + "\12\56\7\uffff\32\56\4\uffff\1\56\1\uffff\32\56", "\1\u00bf", - "\1\u00c0", + "\12\56\7\uffff\32\56\4\uffff\1\56\1\uffff\32\56", + "\12\56\7\uffff\32\56\4\uffff\1\56\1\uffff\32\56", "", - "\1\u00c1", "\1\u00c2", - "\1\u00c3", - "\1\u00c4", - "\12\53\7\uffff\32\53\4\uffff\1\53\1\uffff\32\53", - "\12\53\7\uffff\32\53\4\uffff\1\53\1\uffff\32\53", - "", + "\12\56\7\uffff\32\56\4\uffff\1\56\1\uffff\32\56", + "\12\56\7\uffff\32\56\4\uffff\1\56\1\uffff\32\56", + "\1\u00c5", + "\12\56\7\uffff\32\56\4\uffff\1\56\1\uffff\32\56", "\1\u00c7", - "\12\53\7\uffff\32\53\4\uffff\1\53\1\uffff\32\53", - "", - "", + "\1\u00c8", "\1\u00c9", - "\12\53\7\uffff\32\53\4\uffff\1\53\1\uffff\32\53", - "", + "\1\u00ca", "\1\u00cb", "\1\u00cc", - "", "\1\u00cd", - "", "\1\u00ce", "\1\u00cf", - "\1\u00d0", - "\1\u00d1", + "\12\56\7\uffff\32\56\4\uffff\1\56\1\uffff\32\56", + "\12\56\7\uffff\32\56\4\uffff\1\56\1\uffff\32\56", + "", + "", "\1\u00d2", "\1\u00d3", - "\12\53\7\uffff\32\53\4\uffff\1\53\1\uffff\32\53", - "\12\53\7\uffff\32\53\4\uffff\1\53\1\uffff\32\53", + "\1\u00d4", + "\1\u00d5", "", + "\12\56\7\uffff\32\56\4\uffff\1\56\1\uffff\32\56", "", - "\1\u00d6", "", "\1\u00d7", "", + "", "\1\u00d8", + "", "\1\u00d9", - "\12\53\7\uffff\32\53\4\uffff\1\53\1\uffff\32\53", + "\1\u00da", "\1\u00db", - "\12\53\7\uffff\32\53\4\uffff\1\53\1\uffff\32\53", + "\1\u00dc", "\1\u00dd", "\1\u00de", - "\1\u00df", - "\12\53\7\uffff\32\53\4\uffff\1\53\1\uffff\32\53", + "\12\56\7\uffff\32\56\4\uffff\1\56\1\uffff\32\56", + "\1\u00e0", + "\12\56\7\uffff\32\56\4\uffff\1\56\1\uffff\32\56", "", "", - "\12\53\7\uffff\32\53\4\uffff\1\53\1\uffff\32\53", "\1\u00e2", - "\12\53\7\uffff\32\53\4\uffff\1\53\1\uffff\32\53", - "\12\53\7\uffff\32\53\4\uffff\1\53\1\uffff\32\53", + "\1\u00e3", + "\12\56\7\uffff\32\56\4\uffff\1\56\1\uffff\32\56", + "\12\56\7\uffff\32\56\4\uffff\1\56\1\uffff\32\56", "", - "\12\53\7\uffff\32\53\4\uffff\1\53\1\uffff\32\53", + "\1\u00e6\5\uffff\1\u00e7", + "\1\u00e8", + "\1\u00e9", + "\1\u00ea", + "\12\56\7\uffff\32\56\4\uffff\1\56\1\uffff\32\56", + "\1\u00ec", + "\1\u00ed", + "\1\u00ee", "", - "\12\53\7\uffff\32\53\4\uffff\1\53\1\uffff\32\53", - "\12\53\7\uffff\32\53\4\uffff\1\53\1\uffff\32\53", - "\12\53\7\uffff\32\53\4\uffff\1\53\1\uffff\32\53", + "\12\56\7\uffff\32\56\4\uffff\1\56\1\uffff\32\56", "", + "\12\56\7\uffff\32\56\4\uffff\1\56\1\uffff\32\56", + "\12\56\7\uffff\32\56\4\uffff\1\56\1\uffff\32\56", + "", + "", + "\1\u00f2", + "\12\56\7\uffff\32\56\4\uffff\1\56\1\uffff\32\56", + "\1\u00f4", + "\12\56\7\uffff\32\56\4\uffff\1\56\1\uffff\32\56", + "\12\56\7\uffff\32\56\4\uffff\1\56\1\uffff\32\56", + "", + "\12\56\7\uffff\32\56\4\uffff\1\56\1\uffff\32\56", + "\12\56\7\uffff\32\56\4\uffff\1\56\1\uffff\32\56", + "\12\56\7\uffff\32\56\4\uffff\1\56\1\uffff\32\56", "", - "\1\u00e9", "", "", + "\1\u00fa", "", + "\1\u00fb", "", "", "", - "\12\53\7\uffff\32\53\4\uffff\1\53\1\uffff\32\53", + "", + "", + "\1\u00fc", + "\12\56\7\uffff\32\56\4\uffff\1\56\1\uffff\32\56", + "\12\56\7\uffff\32\56\4\uffff\1\56\1\uffff\32\56", + "", "" }; @@ -2637,41 +2800,31 @@ public class InternalSolverLanguageLexer extends Lexer { this.transition = DFA12_transition; } public String getDescription() { - return "1:1: Tokens : ( Functional | Abstract | Contains | Datatype | Maximize | Minimize | Opposite | Current | Default | Extends | Unknown | Exists | Extern | Forall | Class | Count | Empty | Error | False | Scope | Else | Must | Then | True | FullStopFullStopFullStop | Inf | Let | May | ExclamationMarkEqualsSign | HyphenMinusGreaterThanSign | FullStopFullStop | ColonHyphenMinus | LessThanSignEqualsSign | EqualsSignEqualsSign | EqualsSignGreaterThanSign | GreaterThanSignEqualsSign | As | If | In | ExclamationMark | LeftParenthesis | RightParenthesis | Asterisk | PlusSign | Comma | HyphenMinus | FullStop | Solidus | Colon | Semicolon | LessThanSign | EqualsSign | GreaterThanSign | LeftSquareBracket | RightSquareBracket | CircumflexAccent | LeftCurlyBracket | VerticalLine | RightCurlyBracket | RULE_STRING | RULE_QUOTED_ID | RULE_SL_COMMENT | RULE_ID | RULE_INT | RULE_ML_COMMENT | RULE_WS | RULE_ANY_OTHER );"; + return "1:1: Tokens : ( Containment | Functional | Abstract | Contains | Datatype | Maximize | Minimize | Opposite | Default | Extends | Problem | Unknown | Extern | Import | Object | Refers | Class | Count | Empty | Error | False | Scope | Else | Enum | Root | Then | True | FullStopFullStopFullStop | Inf | Let | ExclamationMarkEqualsSign | HyphenMinusGreaterThanSign | ColonHyphenMinus | ColonColon | ColonEqualsSign | LessThanSignEqualsSign | EqualsSignEqualsSign | EqualsSignGreaterThanSign | GreaterThanSignEqualsSign | As | If | In | ExclamationMark | LeftParenthesis | RightParenthesis | Asterisk | PlusSign | Comma | HyphenMinus | FullStop | Solidus | Colon | Semicolon | LessThanSign | EqualsSign | GreaterThanSign | QuestionMark | LeftSquareBracket | RightSquareBracket | CircumflexAccent | LeftCurlyBracket | VerticalLine | RightCurlyBracket | Tilde | RULE_STRING | RULE_QUOTED_ID | RULE_SL_COMMENT | RULE_ID | RULE_INT | RULE_ML_COMMENT | RULE_WS | RULE_ANY_OTHER );"; } public int specialStateTransition(int s, IntStream _input) throws NoViableAltException { IntStream input = _input; int _s = s; switch ( s ) { case 0 : - int LA12_33 = input.LA(1); + int LA12_37 = input.LA(1); s = -1; - if ( ((LA12_33>='\u0000' && LA12_33<='\uFFFF')) ) {s = 96;} + if ( ((LA12_37>='\u0000' && LA12_37<='\uFFFF')) ) {s = 107;} - else s = 39; + else s = 43; if ( s>=0 ) return s; break; case 1 : - int LA12_34 = input.LA(1); - - s = -1; - if ( ((LA12_34>='\u0000' && LA12_34<='\uFFFF')) ) {s = 97;} - - else s = 39; - - if ( s>=0 ) return s; - break; - case 2 : int LA12_0 = input.LA(1); s = -1; - if ( (LA12_0=='f') ) {s = 1;} + if ( (LA12_0=='c') ) {s = 1;} - else if ( (LA12_0=='a') ) {s = 2;} + else if ( (LA12_0=='f') ) {s = 2;} - else if ( (LA12_0=='c') ) {s = 3;} + else if ( (LA12_0=='a') ) {s = 3;} else if ( (LA12_0=='d') ) {s = 4;} @@ -2681,69 +2834,87 @@ public class InternalSolverLanguageLexer extends Lexer { else if ( (LA12_0=='e') ) {s = 7;} - else if ( (LA12_0=='u') ) {s = 8;} + else if ( (LA12_0=='p') ) {s = 8;} + + else if ( (LA12_0=='u') ) {s = 9;} - else if ( (LA12_0=='s') ) {s = 9;} + else if ( (LA12_0=='i') ) {s = 10;} - else if ( (LA12_0=='t') ) {s = 10;} + else if ( (LA12_0=='r') ) {s = 11;} - else if ( (LA12_0=='.') ) {s = 11;} + else if ( (LA12_0=='s') ) {s = 12;} - else if ( (LA12_0=='i') ) {s = 12;} + else if ( (LA12_0=='t') ) {s = 13;} - else if ( (LA12_0=='l') ) {s = 13;} + else if ( (LA12_0=='.') ) {s = 14;} - else if ( (LA12_0=='!') ) {s = 14;} + else if ( (LA12_0=='l') ) {s = 15;} - else if ( (LA12_0=='-') ) {s = 15;} + else if ( (LA12_0=='!') ) {s = 16;} - else if ( (LA12_0==':') ) {s = 16;} + else if ( (LA12_0=='-') ) {s = 17;} - else if ( (LA12_0=='<') ) {s = 17;} + else if ( (LA12_0==':') ) {s = 18;} - else if ( (LA12_0=='=') ) {s = 18;} + else if ( (LA12_0=='<') ) {s = 19;} - else if ( (LA12_0=='>') ) {s = 19;} + else if ( (LA12_0=='=') ) {s = 20;} - else if ( (LA12_0=='(') ) {s = 20;} + else if ( (LA12_0=='>') ) {s = 21;} - else if ( (LA12_0==')') ) {s = 21;} + else if ( (LA12_0=='(') ) {s = 22;} - else if ( (LA12_0=='*') ) {s = 22;} + else if ( (LA12_0==')') ) {s = 23;} - else if ( (LA12_0=='+') ) {s = 23;} + else if ( (LA12_0=='*') ) {s = 24;} - else if ( (LA12_0==',') ) {s = 24;} + else if ( (LA12_0=='+') ) {s = 25;} - else if ( (LA12_0=='/') ) {s = 25;} + else if ( (LA12_0==',') ) {s = 26;} - else if ( (LA12_0==';') ) {s = 26;} + else if ( (LA12_0=='/') ) {s = 27;} - else if ( (LA12_0=='[') ) {s = 27;} + else if ( (LA12_0==';') ) {s = 28;} - else if ( (LA12_0==']') ) {s = 28;} + else if ( (LA12_0=='?') ) {s = 29;} - else if ( (LA12_0=='^') ) {s = 29;} + else if ( (LA12_0=='[') ) {s = 30;} - else if ( (LA12_0=='{') ) {s = 30;} + else if ( (LA12_0==']') ) {s = 31;} - else if ( (LA12_0=='|') ) {s = 31;} + else if ( (LA12_0=='^') ) {s = 32;} - else if ( (LA12_0=='}') ) {s = 32;} + else if ( (LA12_0=='{') ) {s = 33;} - else if ( (LA12_0=='\"') ) {s = 33;} + else if ( (LA12_0=='|') ) {s = 34;} - else if ( (LA12_0=='\'') ) {s = 34;} + else if ( (LA12_0=='}') ) {s = 35;} - else if ( (LA12_0=='%') ) {s = 35;} + else if ( (LA12_0=='~') ) {s = 36;} - else if ( ((LA12_0>='A' && LA12_0<='Z')||LA12_0=='_'||LA12_0=='b'||(LA12_0>='g' && LA12_0<='h')||(LA12_0>='j' && LA12_0<='k')||LA12_0=='n'||(LA12_0>='p' && LA12_0<='r')||(LA12_0>='v' && LA12_0<='z')) ) {s = 36;} + else if ( (LA12_0=='\"') ) {s = 37;} - else if ( ((LA12_0>='0' && LA12_0<='9')) ) {s = 37;} + else if ( (LA12_0=='\'') ) {s = 38;} - else if ( ((LA12_0>='\t' && LA12_0<='\n')||LA12_0=='\r'||LA12_0==' ') ) {s = 38;} + else if ( (LA12_0=='%') ) {s = 39;} + + else if ( ((LA12_0>='A' && LA12_0<='Z')||LA12_0=='_'||LA12_0=='b'||(LA12_0>='g' && LA12_0<='h')||(LA12_0>='j' && LA12_0<='k')||LA12_0=='n'||LA12_0=='q'||(LA12_0>='v' && LA12_0<='z')) ) {s = 40;} + + else if ( ((LA12_0>='0' && LA12_0<='9')) ) {s = 41;} + + else if ( ((LA12_0>='\t' && LA12_0<='\n')||LA12_0=='\r'||LA12_0==' ') ) {s = 42;} + + else if ( ((LA12_0>='\u0000' && LA12_0<='\b')||(LA12_0>='\u000B' && LA12_0<='\f')||(LA12_0>='\u000E' && LA12_0<='\u001F')||(LA12_0>='#' && LA12_0<='$')||LA12_0=='&'||LA12_0=='@'||LA12_0=='\\'||LA12_0=='`'||(LA12_0>='\u007F' && LA12_0<='\uFFFF')) ) {s = 43;} + + if ( s>=0 ) return s; + break; + case 2 : + int LA12_38 = input.LA(1); + + s = -1; + if ( ((LA12_38>='\u0000' && LA12_38<='\uFFFF')) ) {s = 108;} - else if ( ((LA12_0>='\u0000' && LA12_0<='\b')||(LA12_0>='\u000B' && LA12_0<='\f')||(LA12_0>='\u000E' && LA12_0<='\u001F')||(LA12_0>='#' && LA12_0<='$')||LA12_0=='&'||(LA12_0>='?' && LA12_0<='@')||LA12_0=='\\'||LA12_0=='`'||(LA12_0>='~' && LA12_0<='\uFFFF')) ) {s = 39;} + else s = 43; if ( s>=0 ) return s; break; diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/parser/antlr/lexer/InternalSolverLanguageLexer.tokens b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/parser/antlr/lexer/InternalSolverLanguageLexer.tokens index 178103e2..f6269b97 100644 --- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/parser/antlr/lexer/InternalSolverLanguageLexer.tokens +++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/parser/antlr/lexer/InternalSolverLanguageLexer.tokens @@ -1,70 +1,75 @@ -Abstract=5 -As=40 -Asterisk=46 -CircumflexAccent=59 -Class=18 -Colon=52 -ColonHyphenMinus=35 -Comma=48 -Contains=6 -Count=19 -Current=11 -Datatype=7 +Abstract=6 +As=43 +Asterisk=49 +CircumflexAccent=63 +Class=20 +Colon=55 +ColonColon=37 +ColonEqualsSign=38 +ColonHyphenMinus=36 +Comma=51 +Containment=4 +Contains=7 +Count=21 +Datatype=8 Default=12 -Else=24 -Empty=20 -EqualsSign=55 -EqualsSignEqualsSign=37 -EqualsSignGreaterThanSign=38 -Error=21 -ExclamationMark=43 -ExclamationMarkEqualsSign=32 -Exists=15 +Else=26 +Empty=22 +Enum=27 +EqualsSign=58 +EqualsSignEqualsSign=40 +EqualsSignGreaterThanSign=41 +Error=23 +ExclamationMark=46 +ExclamationMarkEqualsSign=34 Extends=13 Extern=16 -False=22 -Forall=17 -FullStop=50 -FullStopFullStop=34 -FullStopFullStopFullStop=28 -Functional=4 -GreaterThanSign=56 -GreaterThanSignEqualsSign=39 -HyphenMinus=49 -HyphenMinusGreaterThanSign=33 -If=41 -In=42 -Inf=29 -LeftCurlyBracket=60 -LeftParenthesis=44 -LeftSquareBracket=57 -LessThanSign=54 -LessThanSignEqualsSign=36 -Let=30 -Maximize=8 -May=31 -Minimize=9 -Must=25 -Opposite=10 -PlusSign=47 -RULE_ANY_OTHER=73 -RULE_FULL_STOP=68 -RULE_ID=69 -RULE_INT=70 -RULE_ML_COMMENT=71 -RULE_QUOTED_ID=64 -RULE_REFLEXIVE_TRANSITIVE_CLOSURE=67 -RULE_SL_COMMENT=65 -RULE_STRING=63 -RULE_TRANSITIVE_CLOSURE=66 -RULE_WS=72 -RightCurlyBracket=62 -RightParenthesis=45 -RightSquareBracket=58 -Scope=23 -Semicolon=53 -Solidus=51 -Then=26 -True=27 -Unknown=14 -VerticalLine=61 +False=24 +FullStop=53 +FullStopFullStopFullStop=31 +Functional=5 +GreaterThanSign=59 +GreaterThanSignEqualsSign=42 +HyphenMinus=52 +HyphenMinusGreaterThanSign=35 +If=44 +Import=17 +In=45 +Inf=32 +LeftCurlyBracket=64 +LeftParenthesis=47 +LeftSquareBracket=61 +LessThanSign=57 +LessThanSignEqualsSign=39 +Let=33 +Maximize=9 +Minimize=10 +Object=18 +Opposite=11 +PlusSign=50 +Problem=14 +QuestionMark=60 +RULE_ANY_OTHER=78 +RULE_FULL_STOP=73 +RULE_ID=74 +RULE_INT=75 +RULE_ML_COMMENT=76 +RULE_QUOTED_ID=69 +RULE_REFLEXIVE_TRANSITIVE_CLOSURE=72 +RULE_SL_COMMENT=70 +RULE_STRING=68 +RULE_TRANSITIVE_CLOSURE=71 +RULE_WS=77 +Refers=19 +RightCurlyBracket=66 +RightParenthesis=48 +RightSquareBracket=62 +Root=28 +Scope=25 +Semicolon=56 +Solidus=54 +Then=29 +Tilde=67 +True=30 +Unknown=15 +VerticalLine=65 diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/serializer/SolverLanguageSemanticSequencer.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/serializer/SolverLanguageSemanticSequencer.java index dc93975f..49326024 100644 --- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/serializer/SolverLanguageSemanticSequencer.java +++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/serializer/SolverLanguageSemanticSequencer.java @@ -10,52 +10,58 @@ import org.eclipse.emf.ecore.EPackage; import org.eclipse.viatra.solver.language.services.SolverLanguageGrammarAccess; import org.eclipse.viatra.solver.language.solverLanguage.Aggregation; import org.eclipse.viatra.solver.language.solverLanguage.ArgumentList; +import org.eclipse.viatra.solver.language.solverLanguage.Assertion; +import org.eclipse.viatra.solver.language.solverLanguage.Attribute; import org.eclipse.viatra.solver.language.solverLanguage.BinaryExpression; import org.eclipse.viatra.solver.language.solverLanguage.BoundedMultiplicity; -import org.eclipse.viatra.solver.language.solverLanguage.BoundedScopeDefinition; +import org.eclipse.viatra.solver.language.solverLanguage.BoundedScope; import org.eclipse.viatra.solver.language.solverLanguage.Call; import org.eclipse.viatra.solver.language.solverLanguage.Case; import org.eclipse.viatra.solver.language.solverLanguage.CastExpression; -import org.eclipse.viatra.solver.language.solverLanguage.ClassDefinition; -import org.eclipse.viatra.solver.language.solverLanguage.Comparison; +import org.eclipse.viatra.solver.language.solverLanguage.ClassDeclaration; +import org.eclipse.viatra.solver.language.solverLanguage.ConditionalExpression; import org.eclipse.viatra.solver.language.solverLanguage.Conjunction; -import org.eclipse.viatra.solver.language.solverLanguage.DefaultDefinition; +import org.eclipse.viatra.solver.language.solverLanguage.Count; +import org.eclipse.viatra.solver.language.solverLanguage.DefaultAssertion; import org.eclipse.viatra.solver.language.solverLanguage.Disjunction; -import org.eclipse.viatra.solver.language.solverLanguage.EmptyIntervalLiteral; +import org.eclipse.viatra.solver.language.solverLanguage.EmptyLiteral; +import org.eclipse.viatra.solver.language.solverLanguage.EnumDeclaration; +import org.eclipse.viatra.solver.language.solverLanguage.EnumLiteral; import org.eclipse.viatra.solver.language.solverLanguage.ExactMultiplicity; -import org.eclipse.viatra.solver.language.solverLanguage.ExactScopeDefinition; +import org.eclipse.viatra.solver.language.solverLanguage.ExactScope; import org.eclipse.viatra.solver.language.solverLanguage.ExpressionArgument; -import org.eclipse.viatra.solver.language.solverLanguage.ExternAggregatorDefinition; -import org.eclipse.viatra.solver.language.solverLanguage.ExternDatatypeDefinition; -import org.eclipse.viatra.solver.language.solverLanguage.ExternMetricDefinition; -import org.eclipse.viatra.solver.language.solverLanguage.ExternPredicateDefinition; -import org.eclipse.viatra.solver.language.solverLanguage.IfElse; +import org.eclipse.viatra.solver.language.solverLanguage.ExternAggregationOperatorDeclaration; +import org.eclipse.viatra.solver.language.solverLanguage.ExternDatatypeDeclaration; +import org.eclipse.viatra.solver.language.solverLanguage.ExternFunctionDeclaration; +import org.eclipse.viatra.solver.language.solverLanguage.ExternPredicateDeclaration; +import org.eclipse.viatra.solver.language.solverLanguage.Field; +import org.eclipse.viatra.solver.language.solverLanguage.Forall; +import org.eclipse.viatra.solver.language.solverLanguage.FunctionDefinition; import org.eclipse.viatra.solver.language.solverLanguage.InfinityLiteral; -import org.eclipse.viatra.solver.language.solverLanguage.Interpretation; +import org.eclipse.viatra.solver.language.solverLanguage.IntLiteral; import org.eclipse.viatra.solver.language.solverLanguage.Interval; -import org.eclipse.viatra.solver.language.solverLanguage.Let; import org.eclipse.viatra.solver.language.solverLanguage.LetBinding; -import org.eclipse.viatra.solver.language.solverLanguage.LocalVariables; +import org.eclipse.viatra.solver.language.solverLanguage.LetExpression; import org.eclipse.viatra.solver.language.solverLanguage.LogicLiteral; -import org.eclipse.viatra.solver.language.solverLanguage.LowerBoundedScopeDefinition; -import org.eclipse.viatra.solver.language.solverLanguage.ManyMultiplicity; -import org.eclipse.viatra.solver.language.solverLanguage.MemberDefinition; -import org.eclipse.viatra.solver.language.solverLanguage.MetricDefinition; -import org.eclipse.viatra.solver.language.solverLanguage.NumericLiteral; -import org.eclipse.viatra.solver.language.solverLanguage.ObjectiveDefinition; +import org.eclipse.viatra.solver.language.solverLanguage.LowerBoundedScope; +import org.eclipse.viatra.solver.language.solverLanguage.NamespaceImport; +import org.eclipse.viatra.solver.language.solverLanguage.ObjectiveDeclaration; +import org.eclipse.viatra.solver.language.solverLanguage.PathComponent; import org.eclipse.viatra.solver.language.solverLanguage.PredicateDefinition; import org.eclipse.viatra.solver.language.solverLanguage.Problem; -import org.eclipse.viatra.solver.language.solverLanguage.QuantifiedExpression; +import org.eclipse.viatra.solver.language.solverLanguage.RealLiteral; import org.eclipse.viatra.solver.language.solverLanguage.Reference; import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage; import org.eclipse.viatra.solver.language.solverLanguage.StarArgument; import org.eclipse.viatra.solver.language.solverLanguage.StringLiteral; import org.eclipse.viatra.solver.language.solverLanguage.Switch; -import org.eclipse.viatra.solver.language.solverLanguage.TypedArgument; +import org.eclipse.viatra.solver.language.solverLanguage.TypeReference; import org.eclipse.viatra.solver.language.solverLanguage.TypedStarArgument; +import org.eclipse.viatra.solver.language.solverLanguage.TypedVariableArgument; import org.eclipse.viatra.solver.language.solverLanguage.UnaryExpression; -import org.eclipse.viatra.solver.language.solverLanguage.UnnamedErrorPrediateDefinition; -import org.eclipse.viatra.solver.language.solverLanguage.Variable; +import org.eclipse.viatra.solver.language.solverLanguage.UnboundedMultiplicity; +import org.eclipse.viatra.solver.language.solverLanguage.UnnamedErrorPredicateDefintion; +import org.eclipse.viatra.solver.language.solverLanguage.UriImport; import org.eclipse.xtext.Action; import org.eclipse.xtext.Parameter; import org.eclipse.xtext.ParserRule; @@ -84,14 +90,20 @@ public class SolverLanguageSemanticSequencer extends AbstractDelegatingSemanticS case SolverLanguagePackage.ARGUMENT_LIST: sequence_ArgumentList(context, (ArgumentList) semanticObject); return; + case SolverLanguagePackage.ASSERTION: + sequence_AssertionOrDefinition(context, (Assertion) semanticObject); + return; + case SolverLanguagePackage.ATTRIBUTE: + sequence_Attribute(context, (Attribute) semanticObject); + return; case SolverLanguagePackage.BINARY_EXPRESSION: - sequence_AdditiveExpression_ExponentialExpression_ImplicationExpression_MultiplicativeExpression(context, (BinaryExpression) semanticObject); + sequence_AdditiveExpression_ComparisonExpression_ExponentialExpression_MultiplicativeExpression(context, (BinaryExpression) semanticObject); return; case SolverLanguagePackage.BOUNDED_MULTIPLICITY: sequence_BoundedMultiplicity(context, (BoundedMultiplicity) semanticObject); return; - case SolverLanguagePackage.BOUNDED_SCOPE_DEFINITION: - sequence_BoundedScopeDefinition(context, (BoundedScopeDefinition) semanticObject); + case SolverLanguagePackage.BOUNDED_SCOPE: + sequence_BoundedScope(context, (BoundedScope) semanticObject); return; case SolverLanguagePackage.CALL: sequence_Call(context, (Call) semanticObject); @@ -109,97 +121,103 @@ public class SolverLanguageSemanticSequencer extends AbstractDelegatingSemanticS case SolverLanguagePackage.CAST_EXPRESSION: sequence_CastExpression(context, (CastExpression) semanticObject); return; - case SolverLanguagePackage.CLASS_DEFINITION: - sequence_ClassDefinition(context, (ClassDefinition) semanticObject); + case SolverLanguagePackage.CLASS_DECLARATION: + sequence_ClassDeclaration(context, (ClassDeclaration) semanticObject); return; - case SolverLanguagePackage.COMPARISON: - sequence_ComparisonExpression(context, (Comparison) semanticObject); + case SolverLanguagePackage.CONDITIONAL_EXPRESSION: + sequence_ConditionalExpression(context, (ConditionalExpression) semanticObject); return; case SolverLanguagePackage.CONJUNCTION: sequence_ConjunctiveExpression(context, (Conjunction) semanticObject); return; - case SolverLanguagePackage.DEFAULT_DEFINITION: - sequence_DefaultDefinition(context, (DefaultDefinition) semanticObject); + case SolverLanguagePackage.COUNT: + sequence_Count(context, (Count) semanticObject); + return; + case SolverLanguagePackage.DEFAULT_ASSERTION: + sequence_DefaultAssertion(context, (DefaultAssertion) semanticObject); return; case SolverLanguagePackage.DISJUNCTION: sequence_DisjunctiveExpression(context, (Disjunction) semanticObject); return; - case SolverLanguagePackage.EMPTY_INTERVAL_LITERAL: - sequence_EmptyIntervalLiteral(context, (EmptyIntervalLiteral) semanticObject); + case SolverLanguagePackage.EMPTY_LITERAL: + sequence_EmptyLiteral(context, (EmptyLiteral) semanticObject); + return; + case SolverLanguagePackage.ENUM_DECLARATION: + sequence_EnumDeclaration(context, (EnumDeclaration) semanticObject); + return; + case SolverLanguagePackage.ENUM_LITERAL: + sequence_EnumLiteral(context, (EnumLiteral) semanticObject); return; case SolverLanguagePackage.EXACT_MULTIPLICITY: sequence_ExactMultiplicity(context, (ExactMultiplicity) semanticObject); return; - case SolverLanguagePackage.EXACT_SCOPE_DEFINITION: - sequence_ExactScopeDefinition(context, (ExactScopeDefinition) semanticObject); + case SolverLanguagePackage.EXACT_SCOPE: + sequence_ExactScope(context, (ExactScope) semanticObject); return; case SolverLanguagePackage.EXPRESSION_ARGUMENT: sequence_ExpressionArgument(context, (ExpressionArgument) semanticObject); return; - case SolverLanguagePackage.EXTERN_AGGREGATOR_DEFINITION: - sequence_ExternAggregatorDefinition(context, (ExternAggregatorDefinition) semanticObject); + case SolverLanguagePackage.EXTERN_AGGREGATION_OPERATOR_DECLARATION: + sequence_ExternAggregationOperatorDeclaration(context, (ExternAggregationOperatorDeclaration) semanticObject); + return; + case SolverLanguagePackage.EXTERN_DATATYPE_DECLARATION: + sequence_ExternDatatypeDeclaration(context, (ExternDatatypeDeclaration) semanticObject); return; - case SolverLanguagePackage.EXTERN_DATATYPE_DEFINITION: - sequence_ExternDatatypeDefinition(context, (ExternDatatypeDefinition) semanticObject); + case SolverLanguagePackage.EXTERN_FUNCTION_DECLARATION: + sequence_ExternFunctionDeclaration(context, (ExternFunctionDeclaration) semanticObject); return; - case SolverLanguagePackage.EXTERN_METRIC_DEFINITION: - sequence_ExternMetricDefinition(context, (ExternMetricDefinition) semanticObject); + case SolverLanguagePackage.EXTERN_PREDICATE_DECLARATION: + sequence_ExternPredicateDeclaration(context, (ExternPredicateDeclaration) semanticObject); return; - case SolverLanguagePackage.EXTERN_PREDICATE_DEFINITION: - sequence_ExternPredicateDefinition(context, (ExternPredicateDefinition) semanticObject); + case SolverLanguagePackage.FIELD: + sequence_Field(context, (Field) semanticObject); return; - case SolverLanguagePackage.IF_ELSE: - sequence_IfElse(context, (IfElse) semanticObject); + case SolverLanguagePackage.FORALL: + sequence_Expression(context, (Forall) semanticObject); return; + case SolverLanguagePackage.FUNCTION_DEFINITION: + if (rule == grammarAccess.getAssertionOrDefinitionRule()) { + sequence_AssertionOrDefinition(context, (FunctionDefinition) semanticObject); + return; + } + else if (rule == grammarAccess.getStatementRule()) { + sequence_AssertionOrDefinition_FunctionDefinition(context, (FunctionDefinition) semanticObject); + return; + } + else if (rule == grammarAccess.getFunctionDefinitionRule()) { + sequence_FunctionDefinition(context, (FunctionDefinition) semanticObject); + return; + } + else break; case SolverLanguagePackage.INFINITY_LITERAL: sequence_InfinityLiteral(context, (InfinityLiteral) semanticObject); return; - case SolverLanguagePackage.INTERPRETATION: - sequence_AssertionOrDefinition(context, (Interpretation) semanticObject); + case SolverLanguagePackage.INT_LITERAL: + sequence_IntLiteral(context, (IntLiteral) semanticObject); return; case SolverLanguagePackage.INTERVAL: sequence_Interval(context, (Interval) semanticObject); return; - case SolverLanguagePackage.LET: - sequence_Let(context, (Let) semanticObject); - return; case SolverLanguagePackage.LET_BINDING: sequence_LetBinding(context, (LetBinding) semanticObject); return; - case SolverLanguagePackage.LOCAL_VARIABLES: - sequence_LocalVariables(context, (LocalVariables) semanticObject); + case SolverLanguagePackage.LET_EXPRESSION: + sequence_LetExpression(context, (LetExpression) semanticObject); return; case SolverLanguagePackage.LOGIC_LITERAL: sequence_LogicLiteral(context, (LogicLiteral) semanticObject); return; - case SolverLanguagePackage.LOWER_BOUNDED_SCOPE_DEFINITION: - sequence_LowerBoundedScopeDefinition(context, (LowerBoundedScopeDefinition) semanticObject); + case SolverLanguagePackage.LOWER_BOUNDED_SCOPE: + sequence_LowerBoundedScope(context, (LowerBoundedScope) semanticObject); return; - case SolverLanguagePackage.MANY_MULTIPLICITY: - sequence_ManyMultiplicity(context, (ManyMultiplicity) semanticObject); + case SolverLanguagePackage.NAMESPACE_IMPORT: + sequence_NamespaceImport(context, (NamespaceImport) semanticObject); return; - case SolverLanguagePackage.MEMBER_DEFINITION: - sequence_MemberDefinition(context, (MemberDefinition) semanticObject); + case SolverLanguagePackage.OBJECTIVE_DECLARATION: + sequence_ObjectiveDeclaration(context, (ObjectiveDeclaration) semanticObject); return; - case SolverLanguagePackage.METRIC_DEFINITION: - if (rule == grammarAccess.getAssertionOrDefinitionRule()) { - sequence_AssertionOrDefinition(context, (MetricDefinition) semanticObject); - return; - } - else if (rule == grammarAccess.getStatementRule()) { - sequence_AssertionOrDefinition_MetricDefinition(context, (MetricDefinition) semanticObject); - return; - } - else if (rule == grammarAccess.getMetricDefinitionRule()) { - sequence_MetricDefinition(context, (MetricDefinition) semanticObject); - return; - } - else break; - case SolverLanguagePackage.NUMERIC_LITERAL: - sequence_NumericLiteral(context, (NumericLiteral) semanticObject); - return; - case SolverLanguagePackage.OBJECTIVE_DEFINITION: - sequence_ObjectiveDefinition(context, (ObjectiveDefinition) semanticObject); + case SolverLanguagePackage.PATH_COMPONENT: + sequence_PathComponent(context, (PathComponent) semanticObject); return; case SolverLanguagePackage.PREDICATE_DEFINITION: if (rule == grammarAccess.getAssertionOrDefinitionRule()) { @@ -218,8 +236,8 @@ public class SolverLanguageSemanticSequencer extends AbstractDelegatingSemanticS case SolverLanguagePackage.PROBLEM: sequence_Problem(context, (Problem) semanticObject); return; - case SolverLanguagePackage.QUANTIFIED_EXPRESSION: - sequence_QuantifiedExpression(context, (QuantifiedExpression) semanticObject); + case SolverLanguagePackage.REAL_LITERAL: + sequence_RealLiteral(context, (RealLiteral) semanticObject); return; case SolverLanguagePackage.REFERENCE: sequence_Reference(context, (Reference) semanticObject); @@ -233,20 +251,26 @@ public class SolverLanguageSemanticSequencer extends AbstractDelegatingSemanticS case SolverLanguagePackage.SWITCH: sequence_DisjunctiveExpression(context, (Switch) semanticObject); return; - case SolverLanguagePackage.TYPED_ARGUMENT: - sequence_TypedArgument(context, (TypedArgument) semanticObject); + case SolverLanguagePackage.TYPE_REFERENCE: + sequence_TypeReference(context, (TypeReference) semanticObject); return; case SolverLanguagePackage.TYPED_STAR_ARGUMENT: sequence_TypedStarArgument(context, (TypedStarArgument) semanticObject); return; + case SolverLanguagePackage.TYPED_VARIABLE_ARGUMENT: + sequence_TypedVariableArgument(context, (TypedVariableArgument) semanticObject); + return; case SolverLanguagePackage.UNARY_EXPRESSION: sequence_UnaryExpression(context, (UnaryExpression) semanticObject); return; - case SolverLanguagePackage.UNNAMED_ERROR_PREDIATE_DEFINITION: - sequence_UnnamedErrorPrediateDefinition(context, (UnnamedErrorPrediateDefinition) semanticObject); + case SolverLanguagePackage.UNBOUNDED_MULTIPLICITY: + sequence_UnboundedMultiplicity(context, (UnboundedMultiplicity) semanticObject); return; - case SolverLanguagePackage.VARIABLE: - sequence_Variable(context, (Variable) semanticObject); + case SolverLanguagePackage.UNNAMED_ERROR_PREDICATE_DEFINTION: + sequence_UnnamedErrorPredicateDefintion(context, (UnnamedErrorPredicateDefintion) semanticObject); + return; + case SolverLanguagePackage.URI_IMPORT: + sequence_UriImport(context, (UriImport) semanticObject); return; } if (errorAcceptor != null) @@ -255,21 +279,18 @@ public class SolverLanguageSemanticSequencer extends AbstractDelegatingSemanticS /** * Contexts: - * Statement returns BinaryExpression - * AssertionOrDefinition returns BinaryExpression - * AssertionOrDefinition.Interpretation_1_0_0 returns BinaryExpression + * AssertionOrDefinition.Assertion_1_0_0 returns BinaryExpression * AssertionOrDefinition.PredicateDefinition_1_1_0 returns BinaryExpression - * AssertionOrDefinition.MetricDefinition_1_2_0 returns BinaryExpression + * AssertionOrDefinition.FunctionDefinition_1_2_0 returns BinaryExpression * Expression returns BinaryExpression - * ImplicationExpression returns BinaryExpression - * ImplicationExpression.BinaryExpression_1_0 returns BinaryExpression + * Expression.Forall_2_1_0 returns BinaryExpression * DisjunctiveExpression returns BinaryExpression * DisjunctiveExpression.Disjunction_1_0_0 returns BinaryExpression * DisjunctiveExpression.Case_1_1_0 returns BinaryExpression * ConjunctiveExpression returns BinaryExpression * ConjunctiveExpression.Conjunction_1_0 returns BinaryExpression * ComparisonExpression returns BinaryExpression - * ComparisonExpression.Comparison_1_0 returns BinaryExpression + * ComparisonExpression.BinaryExpression_1_0 returns BinaryExpression * AdditiveExpression returns BinaryExpression * AdditiveExpression.BinaryExpression_1_0 returns BinaryExpression * MultiplicativeExpression returns BinaryExpression @@ -279,39 +300,36 @@ public class SolverLanguageSemanticSequencer extends AbstractDelegatingSemanticS * CastExpression returns BinaryExpression * CastExpression.CastExpression_1_0 returns BinaryExpression * UnaryExpression returns BinaryExpression - * AggregationExpression returns BinaryExpression + * BracedAggregateExpression returns BinaryExpression * AtomicExpression returns BinaryExpression * * Constraint: * ( - * (left=ImplicationExpression_BinaryExpression_1_0 op=ImplicationOperator right=ImplicationExpression) | + * (left=ComparisonExpression_BinaryExpression_1_0 op=ComparisonOperator right=AdditiveExpression) | * (left=AdditiveExpression_BinaryExpression_1_0 op=AdditiveBinaryOperator right=MultiplicativeExpression) | * (left=MultiplicativeExpression_BinaryExpression_1_0 op=MultiplicativeBinaryOperator right=ExponentialExpression) | * (left=ExponentialExpression_BinaryExpression_1_0 op=ExponentialOp right=CastExpression) * ) */ - protected void sequence_AdditiveExpression_ExponentialExpression_ImplicationExpression_MultiplicativeExpression(ISerializationContext context, BinaryExpression semanticObject) { + protected void sequence_AdditiveExpression_ComparisonExpression_ExponentialExpression_MultiplicativeExpression(ISerializationContext context, BinaryExpression semanticObject) { genericSequencer.createSequence(context, semanticObject); } /** * Contexts: - * Statement returns Aggregation - * AssertionOrDefinition returns Aggregation - * AssertionOrDefinition.Interpretation_1_0_0 returns Aggregation + * AssertionOrDefinition.Assertion_1_0_0 returns Aggregation * AssertionOrDefinition.PredicateDefinition_1_1_0 returns Aggregation - * AssertionOrDefinition.MetricDefinition_1_2_0 returns Aggregation + * AssertionOrDefinition.FunctionDefinition_1_2_0 returns Aggregation * Expression returns Aggregation - * ImplicationExpression returns Aggregation - * ImplicationExpression.BinaryExpression_1_0 returns Aggregation + * Expression.Forall_2_1_0 returns Aggregation * DisjunctiveExpression returns Aggregation * DisjunctiveExpression.Disjunction_1_0_0 returns Aggregation * DisjunctiveExpression.Case_1_1_0 returns Aggregation * ConjunctiveExpression returns Aggregation * ConjunctiveExpression.Conjunction_1_0 returns Aggregation * ComparisonExpression returns Aggregation - * ComparisonExpression.Comparison_1_0 returns Aggregation + * ComparisonExpression.BinaryExpression_1_0 returns Aggregation * AdditiveExpression returns Aggregation * AdditiveExpression.BinaryExpression_1_0 returns Aggregation * MultiplicativeExpression returns Aggregation @@ -321,15 +339,27 @@ public class SolverLanguageSemanticSequencer extends AbstractDelegatingSemanticS * CastExpression returns Aggregation * CastExpression.CastExpression_1_0 returns Aggregation * UnaryExpression returns Aggregation - * AggregationExpression returns Aggregation + * BracedAggregateExpression returns Aggregation * Aggregation returns Aggregation * AtomicExpression returns Aggregation * * Constraint: - * (op=[NamedElement|QualifiedName] localVariables=LocalVariables? body=Expression condition=Expression?) + * (op=[Symbol|QualifiedName] value=Expression condition=Expression) */ protected void sequence_Aggregation(ISerializationContext context, Aggregation semanticObject) { - genericSequencer.createSequence(context, semanticObject); + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.AGGREGATION__OP) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.AGGREGATION__OP)); + if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.AGGREGATION__VALUE) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.AGGREGATION__VALUE)); + if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.AGGREGATE_EXPRESSION__CONDITION) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.AGGREGATE_EXPRESSION__CONDITION)); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getAggregationAccess().getOpSymbolQualifiedNameParserRuleCall_0_0_1(), semanticObject.eGet(SolverLanguagePackage.Literals.AGGREGATION__OP, false)); + feeder.accept(grammarAccess.getAggregationAccess().getValueExpressionParserRuleCall_2_0(), semanticObject.getValue()); + feeder.accept(grammarAccess.getAggregationAccess().getConditionExpressionParserRuleCall_4_0(), semanticObject.getCondition()); + feeder.finish(); } @@ -347,42 +377,33 @@ public class SolverLanguageSemanticSequencer extends AbstractDelegatingSemanticS /** * Contexts: - * Statement returns Interpretation - * AssertionOrDefinition returns Interpretation + * Statement returns Assertion + * AssertionOrDefinition returns Assertion * * Constraint: - * (body=AssertionOrDefinition_Interpretation_1_0_0 range=Expression) + * (expression=AssertionOrDefinition_Assertion_1_0_0 range=Expression?) */ - protected void sequence_AssertionOrDefinition(ISerializationContext context, Interpretation semanticObject) { - if (errorAcceptor != null) { - if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.INTERPRETATION__BODY) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.INTERPRETATION__BODY)); - if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.INTERPRETATION__RANGE) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.INTERPRETATION__RANGE)); - } - SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); - feeder.accept(grammarAccess.getAssertionOrDefinitionAccess().getInterpretationBodyAction_1_0_0(), semanticObject.getBody()); - feeder.accept(grammarAccess.getAssertionOrDefinitionAccess().getRangeExpressionParserRuleCall_1_0_2_0(), semanticObject.getRange()); - feeder.finish(); + protected void sequence_AssertionOrDefinition(ISerializationContext context, Assertion semanticObject) { + genericSequencer.createSequence(context, semanticObject); } /** * Contexts: - * AssertionOrDefinition returns MetricDefinition + * AssertionOrDefinition returns FunctionDefinition * * Constraint: - * (head=AssertionOrDefinition_MetricDefinition_1_2_0 body=Expression) + * (head=AssertionOrDefinition_FunctionDefinition_1_2_0 body=Expression) */ - protected void sequence_AssertionOrDefinition(ISerializationContext context, MetricDefinition semanticObject) { + protected void sequence_AssertionOrDefinition(ISerializationContext context, FunctionDefinition semanticObject) { if (errorAcceptor != null) { - if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.METRIC_DEFINITION__HEAD) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.METRIC_DEFINITION__HEAD)); - if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.METRIC_DEFINITION__BODY) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.METRIC_DEFINITION__BODY)); + if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.FUNCTOR_DEFINITON__HEAD) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.FUNCTOR_DEFINITON__HEAD)); + if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.FUNCTOR_DEFINITON__BODY) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.FUNCTOR_DEFINITON__BODY)); } SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); - feeder.accept(grammarAccess.getAssertionOrDefinitionAccess().getMetricDefinitionHeadAction_1_2_0(), semanticObject.getHead()); + feeder.accept(grammarAccess.getAssertionOrDefinitionAccess().getFunctionDefinitionHeadAction_1_2_0(), semanticObject.getHead()); feeder.accept(grammarAccess.getAssertionOrDefinitionAccess().getBodyExpressionParserRuleCall_1_2_2_0(), semanticObject.getBody()); feeder.finish(); } @@ -390,12 +411,12 @@ public class SolverLanguageSemanticSequencer extends AbstractDelegatingSemanticS /** * Contexts: - * Statement returns MetricDefinition + * Statement returns FunctionDefinition * * Constraint: - * ((head=AssertionOrDefinition_MetricDefinition_1_2_0 body=Expression) | (type=[NamedElement|QualifiedName] head=Call body=Expression)) + * ((head=AssertionOrDefinition_FunctionDefinition_1_2_0 body=Expression) | (resultType=[Symbol|QualifiedName] head=Call body=Expression)) */ - protected void sequence_AssertionOrDefinition_MetricDefinition(ISerializationContext context, MetricDefinition semanticObject) { + protected void sequence_AssertionOrDefinition_FunctionDefinition(ISerializationContext context, FunctionDefinition semanticObject) { genericSequencer.createSequence(context, semanticObject); } @@ -409,10 +430,10 @@ public class SolverLanguageSemanticSequencer extends AbstractDelegatingSemanticS */ protected void sequence_AssertionOrDefinition(ISerializationContext context, PredicateDefinition semanticObject) { if (errorAcceptor != null) { - if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.PREDICATE_DEFINITION__HEAD) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.PREDICATE_DEFINITION__HEAD)); - if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.PREDICATE_DEFINITION__BODY) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.PREDICATE_DEFINITION__BODY)); + if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.FUNCTOR_DEFINITON__HEAD) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.FUNCTOR_DEFINITON__HEAD)); + if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.FUNCTOR_DEFINITON__BODY) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.FUNCTOR_DEFINITON__BODY)); } SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); feeder.accept(grammarAccess.getAssertionOrDefinitionAccess().getPredicateDefinitionHeadAction_1_1_0(), semanticObject.getHead()); @@ -436,6 +457,28 @@ public class SolverLanguageSemanticSequencer extends AbstractDelegatingSemanticS } + /** + * Contexts: + * Statement returns Attribute + * Attribute returns Attribute + * + * Constraint: + * (kind=AttributeKind target=[Symbol|QualifiedName]) + */ + protected void sequence_Attribute(ISerializationContext context, Attribute semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.ATTRIBUTE__KIND) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.ATTRIBUTE__KIND)); + if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.ATTRIBUTE__TARGET) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.ATTRIBUTE__TARGET)); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getAttributeAccess().getKindAttributeKindEnumRuleCall_0_0(), semanticObject.getKind()); + feeder.accept(grammarAccess.getAttributeAccess().getTargetSymbolQualifiedNameParserRuleCall_1_0_1(), semanticObject.eGet(SolverLanguagePackage.Literals.ATTRIBUTE__TARGET, false)); + feeder.finish(); + } + + /** * Contexts: * Multiplicity returns BoundedMultiplicity @@ -460,35 +503,32 @@ public class SolverLanguageSemanticSequencer extends AbstractDelegatingSemanticS /** * Contexts: - * Statement returns BoundedScopeDefinition - * ScopeDefinition returns BoundedScopeDefinition - * BoundedScopeDefinition returns BoundedScopeDefinition + * Statement returns BoundedScope + * ScopeDeclaration returns BoundedScope + * BoundedScope returns BoundedScope * * Constraint: - * ((lowerBound=INT? type=[NamedElement|QualifiedName] upperBound=INT) | (upperBound=INT type=[NamedElement|QualifiedName] lowerBound=INT?)) + * ((lowerBound=INT? type=[Symbol|QualifiedName] upperBound=INT) | (upperBound=INT type=[Symbol|QualifiedName] lowerBound=INT?)) */ - protected void sequence_BoundedScopeDefinition(ISerializationContext context, BoundedScopeDefinition semanticObject) { + protected void sequence_BoundedScope(ISerializationContext context, BoundedScope semanticObject) { genericSequencer.createSequence(context, semanticObject); } /** * Contexts: - * Statement returns Call - * AssertionOrDefinition returns Call - * AssertionOrDefinition.Interpretation_1_0_0 returns Call + * AssertionOrDefinition.Assertion_1_0_0 returns Call * AssertionOrDefinition.PredicateDefinition_1_1_0 returns Call - * AssertionOrDefinition.MetricDefinition_1_2_0 returns Call + * AssertionOrDefinition.FunctionDefinition_1_2_0 returns Call * Expression returns Call - * ImplicationExpression returns Call - * ImplicationExpression.BinaryExpression_1_0 returns Call + * Expression.Forall_2_1_0 returns Call * DisjunctiveExpression returns Call * DisjunctiveExpression.Disjunction_1_0_0 returns Call * DisjunctiveExpression.Case_1_1_0 returns Call * ConjunctiveExpression returns Call * ConjunctiveExpression.Conjunction_1_0 returns Call * ComparisonExpression returns Call - * ComparisonExpression.Comparison_1_0 returns Call + * ComparisonExpression.BinaryExpression_1_0 returns Call * AdditiveExpression returns Call * AdditiveExpression.BinaryExpression_1_0 returns Call * MultiplicativeExpression returns Call @@ -498,19 +538,24 @@ public class SolverLanguageSemanticSequencer extends AbstractDelegatingSemanticS * CastExpression returns Call * CastExpression.CastExpression_1_0 returns Call * UnaryExpression returns Call - * AggregationExpression returns Call + * BracedAggregateExpression returns Call * AtomicExpression returns Call * Call returns Call * * Constraint: - * ( - * functor=Reference - * (transitiveClosure?=TRANSITIVE_CLOSURE | reflexiveTransitiveClosure?=REFLEXIVE_TRANSITIVE_CLOSURE)? - * argumentList=ArgumentList - * ) + * (functor=Reference argumentList=ArgumentList) */ protected void sequence_Call(ISerializationContext context, Call semanticObject) { - genericSequencer.createSequence(context, semanticObject); + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.CALL__FUNCTOR) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.CALL__FUNCTOR)); + if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.CALL__ARGUMENT_LIST) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.CALL__ARGUMENT_LIST)); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getCallAccess().getFunctorReferenceParserRuleCall_0_0(), semanticObject.getFunctor()); + feeder.accept(grammarAccess.getCallAccess().getArgumentListArgumentListParserRuleCall_1_0(), semanticObject.getArgumentList()); + feeder.finish(); } @@ -537,21 +582,18 @@ public class SolverLanguageSemanticSequencer extends AbstractDelegatingSemanticS /** * Contexts: - * Statement returns CastExpression - * AssertionOrDefinition returns CastExpression - * AssertionOrDefinition.Interpretation_1_0_0 returns CastExpression + * AssertionOrDefinition.Assertion_1_0_0 returns CastExpression * AssertionOrDefinition.PredicateDefinition_1_1_0 returns CastExpression - * AssertionOrDefinition.MetricDefinition_1_2_0 returns CastExpression + * AssertionOrDefinition.FunctionDefinition_1_2_0 returns CastExpression * Expression returns CastExpression - * ImplicationExpression returns CastExpression - * ImplicationExpression.BinaryExpression_1_0 returns CastExpression + * Expression.Forall_2_1_0 returns CastExpression * DisjunctiveExpression returns CastExpression * DisjunctiveExpression.Disjunction_1_0_0 returns CastExpression * DisjunctiveExpression.Case_1_1_0 returns CastExpression * ConjunctiveExpression returns CastExpression * ConjunctiveExpression.Conjunction_1_0 returns CastExpression * ComparisonExpression returns CastExpression - * ComparisonExpression.Comparison_1_0 returns CastExpression + * ComparisonExpression.BinaryExpression_1_0 returns CastExpression * AdditiveExpression returns CastExpression * AdditiveExpression.BinaryExpression_1_0 returns CastExpression * MultiplicativeExpression returns CastExpression @@ -561,110 +603,100 @@ public class SolverLanguageSemanticSequencer extends AbstractDelegatingSemanticS * CastExpression returns CastExpression * CastExpression.CastExpression_1_0 returns CastExpression * UnaryExpression returns CastExpression - * AggregationExpression returns CastExpression + * BracedAggregateExpression returns CastExpression * AtomicExpression returns CastExpression * * Constraint: - * (body=CastExpression_CastExpression_1_0 type=[NamedElement|QualifiedName]) + * (body=CastExpression_CastExpression_1_0 targetType=[Symbol|QualifiedName]) */ protected void sequence_CastExpression(ISerializationContext context, CastExpression semanticObject) { if (errorAcceptor != null) { if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.CAST_EXPRESSION__BODY) == ValueTransient.YES) errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.CAST_EXPRESSION__BODY)); - if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.CAST_EXPRESSION__TYPE) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.CAST_EXPRESSION__TYPE)); + if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.CAST_EXPRESSION__TARGET_TYPE) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.CAST_EXPRESSION__TARGET_TYPE)); } SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); feeder.accept(grammarAccess.getCastExpressionAccess().getCastExpressionBodyAction_1_0(), semanticObject.getBody()); - feeder.accept(grammarAccess.getCastExpressionAccess().getTypeNamedElementQualifiedNameParserRuleCall_1_2_0_1(), semanticObject.eGet(SolverLanguagePackage.Literals.CAST_EXPRESSION__TYPE, false)); + feeder.accept(grammarAccess.getCastExpressionAccess().getTargetTypeSymbolQualifiedNameParserRuleCall_1_2_0_1(), semanticObject.eGet(SolverLanguagePackage.Literals.CAST_EXPRESSION__TARGET_TYPE, false)); feeder.finish(); } /** * Contexts: - * Statement returns ClassDefinition - * ClassDefinition returns ClassDefinition + * Statement returns ClassDeclaration + * ClassDeclaration returns ClassDeclaration * * Constraint: - * ( - * abstract?='abstract'? - * name=ID - * (superclasses+=[NamedElement|QualifiedName] superclasses+=[NamedElement|QualifiedName]*)? - * members+=MemberDefinition* - * ) + * ((abstract?='abstract' | root?='root')* name=ID (supertypes+=[Symbol|QualifiedName] supertypes+=[Symbol|QualifiedName]*)? fields+=Field*) */ - protected void sequence_ClassDefinition(ISerializationContext context, ClassDefinition semanticObject) { + protected void sequence_ClassDeclaration(ISerializationContext context, ClassDeclaration semanticObject) { genericSequencer.createSequence(context, semanticObject); } /** * Contexts: - * Statement returns Comparison - * AssertionOrDefinition returns Comparison - * AssertionOrDefinition.Interpretation_1_0_0 returns Comparison - * AssertionOrDefinition.PredicateDefinition_1_1_0 returns Comparison - * AssertionOrDefinition.MetricDefinition_1_2_0 returns Comparison - * Expression returns Comparison - * ImplicationExpression returns Comparison - * ImplicationExpression.BinaryExpression_1_0 returns Comparison - * DisjunctiveExpression returns Comparison - * DisjunctiveExpression.Disjunction_1_0_0 returns Comparison - * DisjunctiveExpression.Case_1_1_0 returns Comparison - * ConjunctiveExpression returns Comparison - * ConjunctiveExpression.Conjunction_1_0 returns Comparison - * ComparisonExpression returns Comparison - * ComparisonExpression.Comparison_1_0 returns Comparison - * AdditiveExpression returns Comparison - * AdditiveExpression.BinaryExpression_1_0 returns Comparison - * MultiplicativeExpression returns Comparison - * MultiplicativeExpression.BinaryExpression_1_0 returns Comparison - * ExponentialExpression returns Comparison - * ExponentialExpression.BinaryExpression_1_0 returns Comparison - * CastExpression returns Comparison - * CastExpression.CastExpression_1_0 returns Comparison - * UnaryExpression returns Comparison - * AggregationExpression returns Comparison - * AtomicExpression returns Comparison + * AssertionOrDefinition.Assertion_1_0_0 returns ConditionalExpression + * AssertionOrDefinition.PredicateDefinition_1_1_0 returns ConditionalExpression + * AssertionOrDefinition.FunctionDefinition_1_2_0 returns ConditionalExpression + * Expression returns ConditionalExpression + * Expression.Forall_2_1_0 returns ConditionalExpression + * ConditionalExpression returns ConditionalExpression + * DisjunctiveExpression returns ConditionalExpression + * DisjunctiveExpression.Disjunction_1_0_0 returns ConditionalExpression + * DisjunctiveExpression.Case_1_1_0 returns ConditionalExpression + * ConjunctiveExpression returns ConditionalExpression + * ConjunctiveExpression.Conjunction_1_0 returns ConditionalExpression + * ComparisonExpression returns ConditionalExpression + * ComparisonExpression.BinaryExpression_1_0 returns ConditionalExpression + * AdditiveExpression returns ConditionalExpression + * AdditiveExpression.BinaryExpression_1_0 returns ConditionalExpression + * MultiplicativeExpression returns ConditionalExpression + * MultiplicativeExpression.BinaryExpression_1_0 returns ConditionalExpression + * ExponentialExpression returns ConditionalExpression + * ExponentialExpression.BinaryExpression_1_0 returns ConditionalExpression + * CastExpression returns ConditionalExpression + * CastExpression.CastExpression_1_0 returns ConditionalExpression + * UnaryExpression returns ConditionalExpression + * BracedAggregateExpression returns ConditionalExpression + * AtomicExpression returns ConditionalExpression * * Constraint: - * (left=ComparisonExpression_Comparison_1_0 op=ComparisonOperator right=AdditiveExpression) + * (condition=DisjunctiveExpression then=Expression else=Expression) */ - protected void sequence_ComparisonExpression(ISerializationContext context, Comparison semanticObject) { + protected void sequence_ConditionalExpression(ISerializationContext context, ConditionalExpression semanticObject) { if (errorAcceptor != null) { - if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.COMPARISON__LEFT) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.COMPARISON__LEFT)); - if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.COMPARISON__OP) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.COMPARISON__OP)); - if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.COMPARISON__RIGHT) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.COMPARISON__RIGHT)); + if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.CONDITIONAL_EXPRESSION__CONDITION) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.CONDITIONAL_EXPRESSION__CONDITION)); + if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.CONDITIONAL_EXPRESSION__THEN) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.CONDITIONAL_EXPRESSION__THEN)); + if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.CONDITIONAL_EXPRESSION__ELSE) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.CONDITIONAL_EXPRESSION__ELSE)); } SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); - feeder.accept(grammarAccess.getComparisonExpressionAccess().getComparisonLeftAction_1_0(), semanticObject.getLeft()); - feeder.accept(grammarAccess.getComparisonExpressionAccess().getOpComparisonOperatorEnumRuleCall_1_1_0(), semanticObject.getOp()); - feeder.accept(grammarAccess.getComparisonExpressionAccess().getRightAdditiveExpressionParserRuleCall_1_2_0(), semanticObject.getRight()); + feeder.accept(grammarAccess.getConditionalExpressionAccess().getConditionDisjunctiveExpressionParserRuleCall_1_0(), semanticObject.getCondition()); + feeder.accept(grammarAccess.getConditionalExpressionAccess().getThenExpressionParserRuleCall_3_0(), semanticObject.getThen()); + feeder.accept(grammarAccess.getConditionalExpressionAccess().getElseExpressionParserRuleCall_5_0(), semanticObject.getElse()); feeder.finish(); } /** * Contexts: - * Statement returns Conjunction - * AssertionOrDefinition returns Conjunction - * AssertionOrDefinition.Interpretation_1_0_0 returns Conjunction + * AssertionOrDefinition.Assertion_1_0_0 returns Conjunction * AssertionOrDefinition.PredicateDefinition_1_1_0 returns Conjunction - * AssertionOrDefinition.MetricDefinition_1_2_0 returns Conjunction + * AssertionOrDefinition.FunctionDefinition_1_2_0 returns Conjunction * Expression returns Conjunction - * ImplicationExpression returns Conjunction - * ImplicationExpression.BinaryExpression_1_0 returns Conjunction + * Expression.Forall_2_1_0 returns Conjunction * DisjunctiveExpression returns Conjunction * DisjunctiveExpression.Disjunction_1_0_0 returns Conjunction * DisjunctiveExpression.Case_1_1_0 returns Conjunction * ConjunctiveExpression returns Conjunction * ConjunctiveExpression.Conjunction_1_0 returns Conjunction * ComparisonExpression returns Conjunction - * ComparisonExpression.Comparison_1_0 returns Conjunction + * ComparisonExpression.BinaryExpression_1_0 returns Conjunction * AdditiveExpression returns Conjunction * AdditiveExpression.BinaryExpression_1_0 returns Conjunction * MultiplicativeExpression returns Conjunction @@ -674,7 +706,7 @@ public class SolverLanguageSemanticSequencer extends AbstractDelegatingSemanticS * CastExpression returns Conjunction * CastExpression.CastExpression_1_0 returns Conjunction * UnaryExpression returns Conjunction - * AggregationExpression returns Conjunction + * BracedAggregateExpression returns Conjunction * AtomicExpression returns Conjunction * * Constraint: @@ -687,43 +719,72 @@ public class SolverLanguageSemanticSequencer extends AbstractDelegatingSemanticS /** * Contexts: - * Statement returns DefaultDefinition - * DefaultDefinition returns DefaultDefinition + * AssertionOrDefinition.Assertion_1_0_0 returns Count + * AssertionOrDefinition.PredicateDefinition_1_1_0 returns Count + * AssertionOrDefinition.FunctionDefinition_1_2_0 returns Count + * Expression returns Count + * Expression.Forall_2_1_0 returns Count + * DisjunctiveExpression returns Count + * DisjunctiveExpression.Disjunction_1_0_0 returns Count + * DisjunctiveExpression.Case_1_1_0 returns Count + * ConjunctiveExpression returns Count + * ConjunctiveExpression.Conjunction_1_0 returns Count + * ComparisonExpression returns Count + * ComparisonExpression.BinaryExpression_1_0 returns Count + * AdditiveExpression returns Count + * AdditiveExpression.BinaryExpression_1_0 returns Count + * MultiplicativeExpression returns Count + * MultiplicativeExpression.BinaryExpression_1_0 returns Count + * ExponentialExpression returns Count + * ExponentialExpression.BinaryExpression_1_0 returns Count + * CastExpression returns Count + * CastExpression.CastExpression_1_0 returns Count + * UnaryExpression returns Count + * BracedAggregateExpression returns Count + * Count returns Count + * AtomicExpression returns Count * * Constraint: - * (head=Call range=Expression) + * condition=Expression */ - protected void sequence_DefaultDefinition(ISerializationContext context, DefaultDefinition semanticObject) { + protected void sequence_Count(ISerializationContext context, Count semanticObject) { if (errorAcceptor != null) { - if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.DEFAULT_DEFINITION__HEAD) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.DEFAULT_DEFINITION__HEAD)); - if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.DEFAULT_DEFINITION__RANGE) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.DEFAULT_DEFINITION__RANGE)); + if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.AGGREGATE_EXPRESSION__CONDITION) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.AGGREGATE_EXPRESSION__CONDITION)); } SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); - feeder.accept(grammarAccess.getDefaultDefinitionAccess().getHeadCallParserRuleCall_1_0(), semanticObject.getHead()); - feeder.accept(grammarAccess.getDefaultDefinitionAccess().getRangeExpressionParserRuleCall_3_0(), semanticObject.getRange()); + feeder.accept(grammarAccess.getCountAccess().getConditionExpressionParserRuleCall_2_0(), semanticObject.getCondition()); feeder.finish(); } /** * Contexts: - * Statement returns Disjunction - * AssertionOrDefinition returns Disjunction - * AssertionOrDefinition.Interpretation_1_0_0 returns Disjunction + * Statement returns DefaultAssertion + * DefaultAssertion returns DefaultAssertion + * + * Constraint: + * (expression=Call range=Expression?) + */ + protected void sequence_DefaultAssertion(ISerializationContext context, DefaultAssertion semanticObject) { + genericSequencer.createSequence(context, semanticObject); + } + + + /** + * Contexts: + * AssertionOrDefinition.Assertion_1_0_0 returns Disjunction * AssertionOrDefinition.PredicateDefinition_1_1_0 returns Disjunction - * AssertionOrDefinition.MetricDefinition_1_2_0 returns Disjunction + * AssertionOrDefinition.FunctionDefinition_1_2_0 returns Disjunction * Expression returns Disjunction - * ImplicationExpression returns Disjunction - * ImplicationExpression.BinaryExpression_1_0 returns Disjunction + * Expression.Forall_2_1_0 returns Disjunction * DisjunctiveExpression returns Disjunction * DisjunctiveExpression.Disjunction_1_0_0 returns Disjunction * DisjunctiveExpression.Case_1_1_0 returns Disjunction * ConjunctiveExpression returns Disjunction * ConjunctiveExpression.Conjunction_1_0 returns Disjunction * ComparisonExpression returns Disjunction - * ComparisonExpression.Comparison_1_0 returns Disjunction + * ComparisonExpression.BinaryExpression_1_0 returns Disjunction * AdditiveExpression returns Disjunction * AdditiveExpression.BinaryExpression_1_0 returns Disjunction * MultiplicativeExpression returns Disjunction @@ -733,7 +794,7 @@ public class SolverLanguageSemanticSequencer extends AbstractDelegatingSemanticS * CastExpression returns Disjunction * CastExpression.CastExpression_1_0 returns Disjunction * UnaryExpression returns Disjunction - * AggregationExpression returns Disjunction + * BracedAggregateExpression returns Disjunction * AtomicExpression returns Disjunction * * Constraint: @@ -746,21 +807,18 @@ public class SolverLanguageSemanticSequencer extends AbstractDelegatingSemanticS /** * Contexts: - * Statement returns Switch - * AssertionOrDefinition returns Switch - * AssertionOrDefinition.Interpretation_1_0_0 returns Switch + * AssertionOrDefinition.Assertion_1_0_0 returns Switch * AssertionOrDefinition.PredicateDefinition_1_1_0 returns Switch - * AssertionOrDefinition.MetricDefinition_1_2_0 returns Switch + * AssertionOrDefinition.FunctionDefinition_1_2_0 returns Switch * Expression returns Switch - * ImplicationExpression returns Switch - * ImplicationExpression.BinaryExpression_1_0 returns Switch + * Expression.Forall_2_1_0 returns Switch * DisjunctiveExpression returns Switch * DisjunctiveExpression.Disjunction_1_0_0 returns Switch * DisjunctiveExpression.Case_1_1_0 returns Switch * ConjunctiveExpression returns Switch * ConjunctiveExpression.Conjunction_1_0 returns Switch * ComparisonExpression returns Switch - * ComparisonExpression.Comparison_1_0 returns Switch + * ComparisonExpression.BinaryExpression_1_0 returns Switch * AdditiveExpression returns Switch * AdditiveExpression.BinaryExpression_1_0 returns Switch * MultiplicativeExpression returns Switch @@ -770,7 +828,7 @@ public class SolverLanguageSemanticSequencer extends AbstractDelegatingSemanticS * CastExpression returns Switch * CastExpression.CastExpression_1_0 returns Switch * UnaryExpression returns Switch - * AggregationExpression returns Switch + * BracedAggregateExpression returns Switch * AtomicExpression returns Switch * * Constraint: @@ -804,81 +862,109 @@ public class SolverLanguageSemanticSequencer extends AbstractDelegatingSemanticS /** * Contexts: - * Statement returns EmptyIntervalLiteral - * AssertionOrDefinition returns EmptyIntervalLiteral - * AssertionOrDefinition.Interpretation_1_0_0 returns EmptyIntervalLiteral - * AssertionOrDefinition.PredicateDefinition_1_1_0 returns EmptyIntervalLiteral - * AssertionOrDefinition.MetricDefinition_1_2_0 returns EmptyIntervalLiteral - * Expression returns EmptyIntervalLiteral - * ImplicationExpression returns EmptyIntervalLiteral - * ImplicationExpression.BinaryExpression_1_0 returns EmptyIntervalLiteral - * DisjunctiveExpression returns EmptyIntervalLiteral - * DisjunctiveExpression.Disjunction_1_0_0 returns EmptyIntervalLiteral - * DisjunctiveExpression.Case_1_1_0 returns EmptyIntervalLiteral - * ConjunctiveExpression returns EmptyIntervalLiteral - * ConjunctiveExpression.Conjunction_1_0 returns EmptyIntervalLiteral - * ComparisonExpression returns EmptyIntervalLiteral - * ComparisonExpression.Comparison_1_0 returns EmptyIntervalLiteral - * AdditiveExpression returns EmptyIntervalLiteral - * AdditiveExpression.BinaryExpression_1_0 returns EmptyIntervalLiteral - * MultiplicativeExpression returns EmptyIntervalLiteral - * MultiplicativeExpression.BinaryExpression_1_0 returns EmptyIntervalLiteral - * ExponentialExpression returns EmptyIntervalLiteral - * ExponentialExpression.BinaryExpression_1_0 returns EmptyIntervalLiteral - * CastExpression returns EmptyIntervalLiteral - * CastExpression.CastExpression_1_0 returns EmptyIntervalLiteral - * UnaryExpression returns EmptyIntervalLiteral - * AggregationExpression returns EmptyIntervalLiteral - * AtomicExpression returns EmptyIntervalLiteral - * Literal returns EmptyIntervalLiteral - * EmptyIntervalLiteral returns EmptyIntervalLiteral + * AssertionOrDefinition.Assertion_1_0_0 returns EmptyLiteral + * AssertionOrDefinition.PredicateDefinition_1_1_0 returns EmptyLiteral + * AssertionOrDefinition.FunctionDefinition_1_2_0 returns EmptyLiteral + * Expression returns EmptyLiteral + * Expression.Forall_2_1_0 returns EmptyLiteral + * DisjunctiveExpression returns EmptyLiteral + * DisjunctiveExpression.Disjunction_1_0_0 returns EmptyLiteral + * DisjunctiveExpression.Case_1_1_0 returns EmptyLiteral + * ConjunctiveExpression returns EmptyLiteral + * ConjunctiveExpression.Conjunction_1_0 returns EmptyLiteral + * ComparisonExpression returns EmptyLiteral + * ComparisonExpression.BinaryExpression_1_0 returns EmptyLiteral + * AdditiveExpression returns EmptyLiteral + * AdditiveExpression.BinaryExpression_1_0 returns EmptyLiteral + * MultiplicativeExpression returns EmptyLiteral + * MultiplicativeExpression.BinaryExpression_1_0 returns EmptyLiteral + * ExponentialExpression returns EmptyLiteral + * ExponentialExpression.BinaryExpression_1_0 returns EmptyLiteral + * CastExpression returns EmptyLiteral + * CastExpression.CastExpression_1_0 returns EmptyLiteral + * UnaryExpression returns EmptyLiteral + * BracedAggregateExpression returns EmptyLiteral + * AtomicExpression returns EmptyLiteral + * Literal returns EmptyLiteral + * EmptyLiteral returns EmptyLiteral * * Constraint: - * {EmptyIntervalLiteral} + * {EmptyLiteral} */ - protected void sequence_EmptyIntervalLiteral(ISerializationContext context, EmptyIntervalLiteral semanticObject) { + protected void sequence_EmptyLiteral(ISerializationContext context, EmptyLiteral semanticObject) { genericSequencer.createSequence(context, semanticObject); } + /** + * Contexts: + * Statement returns EnumDeclaration + * EnumDeclaration returns EnumDeclaration + * + * Constraint: + * (name=ID (literals+=EnumLiteral literals+=EnumLiteral*)?) + */ + protected void sequence_EnumDeclaration(ISerializationContext context, EnumDeclaration semanticObject) { + genericSequencer.createSequence(context, semanticObject); + } + + + /** + * Contexts: + * EnumLiteral returns EnumLiteral + * + * Constraint: + * name=ID + */ + protected void sequence_EnumLiteral(ISerializationContext context, EnumLiteral semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.ENUM_LITERAL__NAME) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.ENUM_LITERAL__NAME)); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getEnumLiteralAccess().getNameIDTerminalRuleCall_0(), semanticObject.getName()); + feeder.finish(); + } + + /** * Contexts: * Multiplicity returns ExactMultiplicity * ExactMultiplicity returns ExactMultiplicity * * Constraint: - * multiplicity=UpperMultiplicty + * value=UpperMultiplicty */ protected void sequence_ExactMultiplicity(ISerializationContext context, ExactMultiplicity semanticObject) { if (errorAcceptor != null) { - if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.EXACT_MULTIPLICITY__MULTIPLICITY) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.EXACT_MULTIPLICITY__MULTIPLICITY)); + if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.EXACT_MULTIPLICITY__VALUE) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.EXACT_MULTIPLICITY__VALUE)); } SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); - feeder.accept(grammarAccess.getExactMultiplicityAccess().getMultiplicityUpperMultiplictyParserRuleCall_1_0(), semanticObject.getMultiplicity()); + feeder.accept(grammarAccess.getExactMultiplicityAccess().getValueUpperMultiplictyParserRuleCall_1_0(), semanticObject.getValue()); feeder.finish(); } /** * Contexts: - * Statement returns ExactScopeDefinition - * ScopeDefinition returns ExactScopeDefinition - * ExactScopeDefinition returns ExactScopeDefinition + * Statement returns ExactScope + * ScopeDeclaration returns ExactScope + * ExactScope returns ExactScope * * Constraint: - * (type=[NamedElement|QualifiedName] exactScope=INT) + * (type=[Symbol|QualifiedName] size=INT) */ - protected void sequence_ExactScopeDefinition(ISerializationContext context, ExactScopeDefinition semanticObject) { + protected void sequence_ExactScope(ISerializationContext context, ExactScope semanticObject) { if (errorAcceptor != null) { - if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.SCOPE_DEFINITION__TYPE) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.SCOPE_DEFINITION__TYPE)); - if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.EXACT_SCOPE_DEFINITION__EXACT_SCOPE) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.EXACT_SCOPE_DEFINITION__EXACT_SCOPE)); + if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.SCOPE_DECLARATION__TYPE) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.SCOPE_DECLARATION__TYPE)); + if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.EXACT_SCOPE__SIZE) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.EXACT_SCOPE__SIZE)); } SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); - feeder.accept(grammarAccess.getExactScopeDefinitionAccess().getTypeNamedElementQualifiedNameParserRuleCall_1_0_1(), semanticObject.eGet(SolverLanguagePackage.Literals.SCOPE_DEFINITION__TYPE, false)); - feeder.accept(grammarAccess.getExactScopeDefinitionAccess().getExactScopeINTTerminalRuleCall_3_0(), semanticObject.getExactScope()); + feeder.accept(grammarAccess.getExactScopeAccess().getTypeSymbolQualifiedNameParserRuleCall_1_0_1(), semanticObject.eGet(SolverLanguagePackage.Literals.SCOPE_DECLARATION__TYPE, false)); + feeder.accept(grammarAccess.getExactScopeAccess().getSizeINTTerminalRuleCall_3_0(), semanticObject.getSize()); feeder.finish(); } @@ -889,171 +975,204 @@ public class SolverLanguageSemanticSequencer extends AbstractDelegatingSemanticS * ExpressionArgument returns ExpressionArgument * * Constraint: - * body=ComparisonExpression + * expression=ComparisonExpression */ protected void sequence_ExpressionArgument(ISerializationContext context, ExpressionArgument semanticObject) { if (errorAcceptor != null) { - if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.EXPRESSION_ARGUMENT__BODY) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.EXPRESSION_ARGUMENT__BODY)); + if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.EXPRESSION_ARGUMENT__EXPRESSION) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.EXPRESSION_ARGUMENT__EXPRESSION)); } SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); - feeder.accept(grammarAccess.getExpressionArgumentAccess().getBodyComparisonExpressionParserRuleCall_0(), semanticObject.getBody()); + feeder.accept(grammarAccess.getExpressionArgumentAccess().getExpressionComparisonExpressionParserRuleCall_0(), semanticObject.getExpression()); feeder.finish(); } /** * Contexts: - * Statement returns ExternAggregatorDefinition - * ExternAggregatorDefinition returns ExternAggregatorDefinition + * AssertionOrDefinition.Assertion_1_0_0 returns Forall + * AssertionOrDefinition.PredicateDefinition_1_1_0 returns Forall + * AssertionOrDefinition.FunctionDefinition_1_2_0 returns Forall + * Expression returns Forall + * Expression.Forall_2_1_0 returns Forall + * DisjunctiveExpression returns Forall + * DisjunctiveExpression.Disjunction_1_0_0 returns Forall + * DisjunctiveExpression.Case_1_1_0 returns Forall + * ConjunctiveExpression returns Forall + * ConjunctiveExpression.Conjunction_1_0 returns Forall + * ComparisonExpression returns Forall + * ComparisonExpression.BinaryExpression_1_0 returns Forall + * AdditiveExpression returns Forall + * AdditiveExpression.BinaryExpression_1_0 returns Forall + * MultiplicativeExpression returns Forall + * MultiplicativeExpression.BinaryExpression_1_0 returns Forall + * ExponentialExpression returns Forall + * ExponentialExpression.BinaryExpression_1_0 returns Forall + * CastExpression returns Forall + * CastExpression.CastExpression_1_0 returns Forall + * UnaryExpression returns Forall + * BracedAggregateExpression returns Forall + * AtomicExpression returns Forall * * Constraint: - * (type=[NamedElement|QualifiedName] name=QualifiedName inputType=[NamedElement|QualifiedName]) + * (condition=Expression_Forall_2_1_0 body=DisjunctiveExpression) */ - protected void sequence_ExternAggregatorDefinition(ISerializationContext context, ExternAggregatorDefinition semanticObject) { + protected void sequence_Expression(ISerializationContext context, Forall semanticObject) { if (errorAcceptor != null) { - if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.EXTERN_AGGREGATOR_DEFINITION__TYPE) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.EXTERN_AGGREGATOR_DEFINITION__TYPE)); - if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.EXTERN_AGGREGATOR_DEFINITION__NAME) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.EXTERN_AGGREGATOR_DEFINITION__NAME)); - if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.EXTERN_AGGREGATOR_DEFINITION__INPUT_TYPE) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.EXTERN_AGGREGATOR_DEFINITION__INPUT_TYPE)); + if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.AGGREGATE_EXPRESSION__CONDITION) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.AGGREGATE_EXPRESSION__CONDITION)); + if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.FORALL__BODY) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.FORALL__BODY)); } SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); - feeder.accept(grammarAccess.getExternAggregatorDefinitionAccess().getTypeNamedElementQualifiedNameParserRuleCall_1_0_1(), semanticObject.eGet(SolverLanguagePackage.Literals.EXTERN_AGGREGATOR_DEFINITION__TYPE, false)); - feeder.accept(grammarAccess.getExternAggregatorDefinitionAccess().getNameQualifiedNameParserRuleCall_2_0(), semanticObject.getName()); - feeder.accept(grammarAccess.getExternAggregatorDefinitionAccess().getInputTypeNamedElementQualifiedNameParserRuleCall_4_0_1(), semanticObject.eGet(SolverLanguagePackage.Literals.EXTERN_AGGREGATOR_DEFINITION__INPUT_TYPE, false)); + feeder.accept(grammarAccess.getExpressionAccess().getForallConditionAction_2_1_0(), semanticObject.getCondition()); + feeder.accept(grammarAccess.getExpressionAccess().getBodyDisjunctiveExpressionParserRuleCall_2_1_2_0(), semanticObject.getBody()); feeder.finish(); } /** * Contexts: - * Statement returns ExternDatatypeDefinition - * ExternDatatypeDefinition returns ExternDatatypeDefinition + * Statement returns ExternAggregationOperatorDeclaration + * ExternDeclaration returns ExternAggregationOperatorDeclaration + * ExternAggregationOperatorDeclaration returns ExternAggregationOperatorDeclaration * * Constraint: - * (name=QualifiedName supertypes+=[NamedElement|QualifiedName] supertypes+=[NamedElement|QualifiedName]*) + * (resultType=[Symbol|QualifiedName] name=QualifiedName argumentType=[Symbol|QualifiedName]) */ - protected void sequence_ExternDatatypeDefinition(ISerializationContext context, ExternDatatypeDefinition semanticObject) { - genericSequencer.createSequence(context, semanticObject); + protected void sequence_ExternAggregationOperatorDeclaration(ISerializationContext context, ExternAggregationOperatorDeclaration semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.EXTERN_AGGREGATION_OPERATOR_DECLARATION__RESULT_TYPE) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.EXTERN_AGGREGATION_OPERATOR_DECLARATION__RESULT_TYPE)); + if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.EXTERN_DECLARATION__NAME) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.EXTERN_DECLARATION__NAME)); + if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.EXTERN_AGGREGATION_OPERATOR_DECLARATION__ARGUMENT_TYPE) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.EXTERN_AGGREGATION_OPERATOR_DECLARATION__ARGUMENT_TYPE)); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getExternAggregationOperatorDeclarationAccess().getResultTypeSymbolQualifiedNameParserRuleCall_1_0_1(), semanticObject.eGet(SolverLanguagePackage.Literals.EXTERN_AGGREGATION_OPERATOR_DECLARATION__RESULT_TYPE, false)); + feeder.accept(grammarAccess.getExternAggregationOperatorDeclarationAccess().getNameQualifiedNameParserRuleCall_2_0(), semanticObject.getName()); + feeder.accept(grammarAccess.getExternAggregationOperatorDeclarationAccess().getArgumentTypeSymbolQualifiedNameParserRuleCall_4_0_1(), semanticObject.eGet(SolverLanguagePackage.Literals.EXTERN_AGGREGATION_OPERATOR_DECLARATION__ARGUMENT_TYPE, false)); + feeder.finish(); } /** * Contexts: - * Statement returns ExternMetricDefinition - * ExternMetricDefinition returns ExternMetricDefinition + * Statement returns ExternDatatypeDeclaration + * ExternDeclaration returns ExternDatatypeDeclaration + * ExternDatatypeDeclaration returns ExternDatatypeDeclaration * * Constraint: - * (type=[NamedElement|QualifiedName] name=QualifiedName argumentList=ArgumentList) + * name=QualifiedName */ - protected void sequence_ExternMetricDefinition(ISerializationContext context, ExternMetricDefinition semanticObject) { + protected void sequence_ExternDatatypeDeclaration(ISerializationContext context, ExternDatatypeDeclaration semanticObject) { if (errorAcceptor != null) { - if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.EXTERN_METRIC_DEFINITION__TYPE) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.EXTERN_METRIC_DEFINITION__TYPE)); - if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.EXTERN_METRIC_DEFINITION__NAME) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.EXTERN_METRIC_DEFINITION__NAME)); - if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.EXTERN_METRIC_DEFINITION__ARGUMENT_LIST) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.EXTERN_METRIC_DEFINITION__ARGUMENT_LIST)); + if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.EXTERN_DECLARATION__NAME) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.EXTERN_DECLARATION__NAME)); } SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); - feeder.accept(grammarAccess.getExternMetricDefinitionAccess().getTypeNamedElementQualifiedNameParserRuleCall_1_0_1(), semanticObject.eGet(SolverLanguagePackage.Literals.EXTERN_METRIC_DEFINITION__TYPE, false)); - feeder.accept(grammarAccess.getExternMetricDefinitionAccess().getNameQualifiedNameParserRuleCall_2_0(), semanticObject.getName()); - feeder.accept(grammarAccess.getExternMetricDefinitionAccess().getArgumentListArgumentListParserRuleCall_3_0(), semanticObject.getArgumentList()); + feeder.accept(grammarAccess.getExternDatatypeDeclarationAccess().getNameQualifiedNameParserRuleCall_2_0(), semanticObject.getName()); feeder.finish(); } /** * Contexts: - * Statement returns ExternPredicateDefinition - * ExternPredicateDefinition returns ExternPredicateDefinition + * Statement returns ExternFunctionDeclaration + * ExternDeclaration returns ExternFunctionDeclaration + * ExternFunctionDeclaration returns ExternFunctionDeclaration * * Constraint: - * (name=QualifiedName argumentList=ArgumentList) + * (resultType=[Symbol|QualifiedName] name=QualifiedName argumentList=ArgumentList) */ - protected void sequence_ExternPredicateDefinition(ISerializationContext context, ExternPredicateDefinition semanticObject) { + protected void sequence_ExternFunctionDeclaration(ISerializationContext context, ExternFunctionDeclaration semanticObject) { if (errorAcceptor != null) { - if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.EXTERN_PREDICATE_DEFINITION__NAME) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.EXTERN_PREDICATE_DEFINITION__NAME)); - if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.EXTERN_PREDICATE_DEFINITION__ARGUMENT_LIST) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.EXTERN_PREDICATE_DEFINITION__ARGUMENT_LIST)); + if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.EXTERN_FUNCTION_DECLARATION__RESULT_TYPE) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.EXTERN_FUNCTION_DECLARATION__RESULT_TYPE)); + if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.EXTERN_DECLARATION__NAME) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.EXTERN_DECLARATION__NAME)); + if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.EXTERN_FUNCTOR_DECLARATION__ARGUMENT_LIST) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.EXTERN_FUNCTOR_DECLARATION__ARGUMENT_LIST)); } SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); - feeder.accept(grammarAccess.getExternPredicateDefinitionAccess().getNameQualifiedNameParserRuleCall_1_0(), semanticObject.getName()); - feeder.accept(grammarAccess.getExternPredicateDefinitionAccess().getArgumentListArgumentListParserRuleCall_2_0(), semanticObject.getArgumentList()); + feeder.accept(grammarAccess.getExternFunctionDeclarationAccess().getResultTypeSymbolQualifiedNameParserRuleCall_1_0_1(), semanticObject.eGet(SolverLanguagePackage.Literals.EXTERN_FUNCTION_DECLARATION__RESULT_TYPE, false)); + feeder.accept(grammarAccess.getExternFunctionDeclarationAccess().getNameQualifiedNameParserRuleCall_2_0(), semanticObject.getName()); + feeder.accept(grammarAccess.getExternFunctionDeclarationAccess().getArgumentListArgumentListParserRuleCall_3_0(), semanticObject.getArgumentList()); feeder.finish(); } /** * Contexts: - * Statement returns IfElse - * AssertionOrDefinition returns IfElse - * AssertionOrDefinition.Interpretation_1_0_0 returns IfElse - * AssertionOrDefinition.PredicateDefinition_1_1_0 returns IfElse - * AssertionOrDefinition.MetricDefinition_1_2_0 returns IfElse - * Expression returns IfElse - * IfElse returns IfElse - * ImplicationExpression returns IfElse - * ImplicationExpression.BinaryExpression_1_0 returns IfElse - * DisjunctiveExpression returns IfElse - * DisjunctiveExpression.Disjunction_1_0_0 returns IfElse - * DisjunctiveExpression.Case_1_1_0 returns IfElse - * ConjunctiveExpression returns IfElse - * ConjunctiveExpression.Conjunction_1_0 returns IfElse - * ComparisonExpression returns IfElse - * ComparisonExpression.Comparison_1_0 returns IfElse - * AdditiveExpression returns IfElse - * AdditiveExpression.BinaryExpression_1_0 returns IfElse - * MultiplicativeExpression returns IfElse - * MultiplicativeExpression.BinaryExpression_1_0 returns IfElse - * ExponentialExpression returns IfElse - * ExponentialExpression.BinaryExpression_1_0 returns IfElse - * CastExpression returns IfElse - * CastExpression.CastExpression_1_0 returns IfElse - * UnaryExpression returns IfElse - * AggregationExpression returns IfElse - * AtomicExpression returns IfElse + * Statement returns ExternPredicateDeclaration + * ExternDeclaration returns ExternPredicateDeclaration + * ExternPredicateDeclaration returns ExternPredicateDeclaration + * + * Constraint: + * ((functional?='functional' | error?='error')* name=QualifiedName argumentList=ArgumentList) + */ + protected void sequence_ExternPredicateDeclaration(ISerializationContext context, ExternPredicateDeclaration semanticObject) { + genericSequencer.createSequence(context, semanticObject); + } + + + /** + * Contexts: + * Field returns Field + * + * Constraint: + * ( + * (containment?='contains' | crossReference?='refers')? + * type=[Symbol|QualifiedName] + * multiplicity=Multiplicity? + * name=ID + * opposite=[Symbol|QualifiedName]? + * ) + */ + protected void sequence_Field(ISerializationContext context, Field semanticObject) { + genericSequencer.createSequence(context, semanticObject); + } + + + /** + * Contexts: + * FunctionDefinition returns FunctionDefinition * * Constraint: - * (condition=Expression then=Expression else=Expression) + * (resultType=[Symbol|QualifiedName] head=Call body=Expression) */ - protected void sequence_IfElse(ISerializationContext context, IfElse semanticObject) { + protected void sequence_FunctionDefinition(ISerializationContext context, FunctionDefinition semanticObject) { if (errorAcceptor != null) { - if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.IF_ELSE__CONDITION) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.IF_ELSE__CONDITION)); - if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.IF_ELSE__THEN) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.IF_ELSE__THEN)); - if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.IF_ELSE__ELSE) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.IF_ELSE__ELSE)); + if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.FUNCTION_DEFINITION__RESULT_TYPE) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.FUNCTION_DEFINITION__RESULT_TYPE)); + if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.FUNCTOR_DEFINITON__HEAD) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.FUNCTOR_DEFINITON__HEAD)); + if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.FUNCTOR_DEFINITON__BODY) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.FUNCTOR_DEFINITON__BODY)); } SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); - feeder.accept(grammarAccess.getIfElseAccess().getConditionExpressionParserRuleCall_1_0(), semanticObject.getCondition()); - feeder.accept(grammarAccess.getIfElseAccess().getThenExpressionParserRuleCall_3_0(), semanticObject.getThen()); - feeder.accept(grammarAccess.getIfElseAccess().getElseExpressionParserRuleCall_5_0(), semanticObject.getElse()); + feeder.accept(grammarAccess.getFunctionDefinitionAccess().getResultTypeSymbolQualifiedNameParserRuleCall_0_0_1(), semanticObject.eGet(SolverLanguagePackage.Literals.FUNCTION_DEFINITION__RESULT_TYPE, false)); + feeder.accept(grammarAccess.getFunctionDefinitionAccess().getHeadCallParserRuleCall_1_0(), semanticObject.getHead()); + feeder.accept(grammarAccess.getFunctionDefinitionAccess().getBodyExpressionParserRuleCall_3_0(), semanticObject.getBody()); feeder.finish(); } /** * Contexts: - * Statement returns InfinityLiteral - * AssertionOrDefinition returns InfinityLiteral - * AssertionOrDefinition.Interpretation_1_0_0 returns InfinityLiteral + * AssertionOrDefinition.Assertion_1_0_0 returns InfinityLiteral * AssertionOrDefinition.PredicateDefinition_1_1_0 returns InfinityLiteral - * AssertionOrDefinition.MetricDefinition_1_2_0 returns InfinityLiteral + * AssertionOrDefinition.FunctionDefinition_1_2_0 returns InfinityLiteral * Expression returns InfinityLiteral - * ImplicationExpression returns InfinityLiteral - * ImplicationExpression.BinaryExpression_1_0 returns InfinityLiteral + * Expression.Forall_2_1_0 returns InfinityLiteral * DisjunctiveExpression returns InfinityLiteral * DisjunctiveExpression.Disjunction_1_0_0 returns InfinityLiteral * DisjunctiveExpression.Case_1_1_0 returns InfinityLiteral * ConjunctiveExpression returns InfinityLiteral * ConjunctiveExpression.Conjunction_1_0 returns InfinityLiteral * ComparisonExpression returns InfinityLiteral - * ComparisonExpression.Comparison_1_0 returns InfinityLiteral + * ComparisonExpression.BinaryExpression_1_0 returns InfinityLiteral * AdditiveExpression returns InfinityLiteral * AdditiveExpression.BinaryExpression_1_0 returns InfinityLiteral * MultiplicativeExpression returns InfinityLiteral @@ -1063,7 +1182,7 @@ public class SolverLanguageSemanticSequencer extends AbstractDelegatingSemanticS * CastExpression returns InfinityLiteral * CastExpression.CastExpression_1_0 returns InfinityLiteral * UnaryExpression returns InfinityLiteral - * AggregationExpression returns InfinityLiteral + * BracedAggregateExpression returns InfinityLiteral * AtomicExpression returns InfinityLiteral * Literal returns InfinityLiteral * InfinityLiteral returns InfinityLiteral @@ -1078,21 +1197,60 @@ public class SolverLanguageSemanticSequencer extends AbstractDelegatingSemanticS /** * Contexts: - * Statement returns Interval - * AssertionOrDefinition returns Interval - * AssertionOrDefinition.Interpretation_1_0_0 returns Interval + * AssertionOrDefinition.Assertion_1_0_0 returns IntLiteral + * AssertionOrDefinition.PredicateDefinition_1_1_0 returns IntLiteral + * AssertionOrDefinition.FunctionDefinition_1_2_0 returns IntLiteral + * Expression returns IntLiteral + * Expression.Forall_2_1_0 returns IntLiteral + * DisjunctiveExpression returns IntLiteral + * DisjunctiveExpression.Disjunction_1_0_0 returns IntLiteral + * DisjunctiveExpression.Case_1_1_0 returns IntLiteral + * ConjunctiveExpression returns IntLiteral + * ConjunctiveExpression.Conjunction_1_0 returns IntLiteral + * ComparisonExpression returns IntLiteral + * ComparisonExpression.BinaryExpression_1_0 returns IntLiteral + * AdditiveExpression returns IntLiteral + * AdditiveExpression.BinaryExpression_1_0 returns IntLiteral + * MultiplicativeExpression returns IntLiteral + * MultiplicativeExpression.BinaryExpression_1_0 returns IntLiteral + * ExponentialExpression returns IntLiteral + * ExponentialExpression.BinaryExpression_1_0 returns IntLiteral + * CastExpression returns IntLiteral + * CastExpression.CastExpression_1_0 returns IntLiteral + * UnaryExpression returns IntLiteral + * BracedAggregateExpression returns IntLiteral + * AtomicExpression returns IntLiteral + * Literal returns IntLiteral + * IntLiteral returns IntLiteral + * + * Constraint: + * value=INT + */ + protected void sequence_IntLiteral(ISerializationContext context, IntLiteral semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.INT_LITERAL__VALUE) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.INT_LITERAL__VALUE)); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getIntLiteralAccess().getValueINTTerminalRuleCall_0(), semanticObject.getValue()); + feeder.finish(); + } + + + /** + * Contexts: + * AssertionOrDefinition.Assertion_1_0_0 returns Interval * AssertionOrDefinition.PredicateDefinition_1_1_0 returns Interval - * AssertionOrDefinition.MetricDefinition_1_2_0 returns Interval + * AssertionOrDefinition.FunctionDefinition_1_2_0 returns Interval * Expression returns Interval - * ImplicationExpression returns Interval - * ImplicationExpression.BinaryExpression_1_0 returns Interval + * Expression.Forall_2_1_0 returns Interval * DisjunctiveExpression returns Interval * DisjunctiveExpression.Disjunction_1_0_0 returns Interval * DisjunctiveExpression.Case_1_1_0 returns Interval * ConjunctiveExpression returns Interval * ConjunctiveExpression.Conjunction_1_0 returns Interval * ComparisonExpression returns Interval - * ComparisonExpression.Comparison_1_0 returns Interval + * ComparisonExpression.BinaryExpression_1_0 returns Interval * AdditiveExpression returns Interval * AdditiveExpression.BinaryExpression_1_0 returns Interval * MultiplicativeExpression returns Interval @@ -1102,12 +1260,12 @@ public class SolverLanguageSemanticSequencer extends AbstractDelegatingSemanticS * CastExpression returns Interval * CastExpression.CastExpression_1_0 returns Interval * UnaryExpression returns Interval - * AggregationExpression returns Interval + * BracedAggregateExpression returns Interval * AtomicExpression returns Interval * Interval returns Interval * * Constraint: - * (lowerBound=Expression upperBound=Expression) + * (lowerBound=AdditiveExpression upperBound=AdditiveExpression) */ protected void sequence_Interval(ISerializationContext context, Interval semanticObject) { if (errorAcceptor != null) { @@ -1117,8 +1275,8 @@ public class SolverLanguageSemanticSequencer extends AbstractDelegatingSemanticS errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.INTERVAL__UPPER_BOUND)); } SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); - feeder.accept(grammarAccess.getIntervalAccess().getLowerBoundExpressionParserRuleCall_1_0(), semanticObject.getLowerBound()); - feeder.accept(grammarAccess.getIntervalAccess().getUpperBoundExpressionParserRuleCall_3_0(), semanticObject.getUpperBound()); + feeder.accept(grammarAccess.getIntervalAccess().getLowerBoundAdditiveExpressionParserRuleCall_1_0(), semanticObject.getLowerBound()); + feeder.accept(grammarAccess.getIntervalAccess().getUpperBoundAdditiveExpressionParserRuleCall_3_0(), semanticObject.getUpperBound()); feeder.finish(); } @@ -1128,89 +1286,62 @@ public class SolverLanguageSemanticSequencer extends AbstractDelegatingSemanticS * LetBinding returns LetBinding * * Constraint: - * (variable=Variable value=AdditiveExpression) + * (type=[Symbol|QualifiedName]? name=ID value=AdditiveExpression) */ protected void sequence_LetBinding(ISerializationContext context, LetBinding semanticObject) { - if (errorAcceptor != null) { - if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.LET_BINDING__VARIABLE) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.LET_BINDING__VARIABLE)); - if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.LET_BINDING__VALUE) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.LET_BINDING__VALUE)); - } - SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); - feeder.accept(grammarAccess.getLetBindingAccess().getVariableVariableParserRuleCall_0_0(), semanticObject.getVariable()); - feeder.accept(grammarAccess.getLetBindingAccess().getValueAdditiveExpressionParserRuleCall_2_0(), semanticObject.getValue()); - feeder.finish(); - } - - - /** - * Contexts: - * Statement returns Let - * AssertionOrDefinition returns Let - * AssertionOrDefinition.Interpretation_1_0_0 returns Let - * AssertionOrDefinition.PredicateDefinition_1_1_0 returns Let - * AssertionOrDefinition.MetricDefinition_1_2_0 returns Let - * Expression returns Let - * Let returns Let - * ImplicationExpression returns Let - * ImplicationExpression.BinaryExpression_1_0 returns Let - * DisjunctiveExpression returns Let - * DisjunctiveExpression.Disjunction_1_0_0 returns Let - * DisjunctiveExpression.Case_1_1_0 returns Let - * ConjunctiveExpression returns Let - * ConjunctiveExpression.Conjunction_1_0 returns Let - * ComparisonExpression returns Let - * ComparisonExpression.Comparison_1_0 returns Let - * AdditiveExpression returns Let - * AdditiveExpression.BinaryExpression_1_0 returns Let - * MultiplicativeExpression returns Let - * MultiplicativeExpression.BinaryExpression_1_0 returns Let - * ExponentialExpression returns Let - * ExponentialExpression.BinaryExpression_1_0 returns Let - * CastExpression returns Let - * CastExpression.CastExpression_1_0 returns Let - * UnaryExpression returns Let - * AggregationExpression returns Let - * AtomicExpression returns Let - * - * Constraint: - * (bindings+=LetBinding bindings+=LetBinding* body=Expression) - */ - protected void sequence_Let(ISerializationContext context, Let semanticObject) { genericSequencer.createSequence(context, semanticObject); } /** * Contexts: - * LocalVariables returns LocalVariables + * AssertionOrDefinition.Assertion_1_0_0 returns LetExpression + * AssertionOrDefinition.PredicateDefinition_1_1_0 returns LetExpression + * AssertionOrDefinition.FunctionDefinition_1_2_0 returns LetExpression + * Expression returns LetExpression + * Expression.Forall_2_1_0 returns LetExpression + * LetExpression returns LetExpression + * DisjunctiveExpression returns LetExpression + * DisjunctiveExpression.Disjunction_1_0_0 returns LetExpression + * DisjunctiveExpression.Case_1_1_0 returns LetExpression + * ConjunctiveExpression returns LetExpression + * ConjunctiveExpression.Conjunction_1_0 returns LetExpression + * ComparisonExpression returns LetExpression + * ComparisonExpression.BinaryExpression_1_0 returns LetExpression + * AdditiveExpression returns LetExpression + * AdditiveExpression.BinaryExpression_1_0 returns LetExpression + * MultiplicativeExpression returns LetExpression + * MultiplicativeExpression.BinaryExpression_1_0 returns LetExpression + * ExponentialExpression returns LetExpression + * ExponentialExpression.BinaryExpression_1_0 returns LetExpression + * CastExpression returns LetExpression + * CastExpression.CastExpression_1_0 returns LetExpression + * UnaryExpression returns LetExpression + * BracedAggregateExpression returns LetExpression + * AtomicExpression returns LetExpression * * Constraint: - * (variables+=Variable variables+=Variable*)? + * (bindings+=LetBinding bindings+=LetBinding* body=Expression) */ - protected void sequence_LocalVariables(ISerializationContext context, LocalVariables semanticObject) { + protected void sequence_LetExpression(ISerializationContext context, LetExpression semanticObject) { genericSequencer.createSequence(context, semanticObject); } /** * Contexts: - * Statement returns LogicLiteral - * AssertionOrDefinition returns LogicLiteral - * AssertionOrDefinition.Interpretation_1_0_0 returns LogicLiteral + * AssertionOrDefinition.Assertion_1_0_0 returns LogicLiteral * AssertionOrDefinition.PredicateDefinition_1_1_0 returns LogicLiteral - * AssertionOrDefinition.MetricDefinition_1_2_0 returns LogicLiteral + * AssertionOrDefinition.FunctionDefinition_1_2_0 returns LogicLiteral * Expression returns LogicLiteral - * ImplicationExpression returns LogicLiteral - * ImplicationExpression.BinaryExpression_1_0 returns LogicLiteral + * Expression.Forall_2_1_0 returns LogicLiteral * DisjunctiveExpression returns LogicLiteral * DisjunctiveExpression.Disjunction_1_0_0 returns LogicLiteral * DisjunctiveExpression.Case_1_1_0 returns LogicLiteral * ConjunctiveExpression returns LogicLiteral * ConjunctiveExpression.Conjunction_1_0 returns LogicLiteral * ComparisonExpression returns LogicLiteral - * ComparisonExpression.Comparison_1_0 returns LogicLiteral + * ComparisonExpression.BinaryExpression_1_0 returns LogicLiteral * AdditiveExpression returns LogicLiteral * AdditiveExpression.BinaryExpression_1_0 returns LogicLiteral * MultiplicativeExpression returns LogicLiteral @@ -1220,7 +1351,7 @@ public class SolverLanguageSemanticSequencer extends AbstractDelegatingSemanticS * CastExpression returns LogicLiteral * CastExpression.CastExpression_1_0 returns LogicLiteral * UnaryExpression returns LogicLiteral - * AggregationExpression returns LogicLiteral + * BracedAggregateExpression returns LogicLiteral * AtomicExpression returns LogicLiteral * Literal returns LogicLiteral * LogicLiteral returns LogicLiteral @@ -1241,131 +1372,75 @@ public class SolverLanguageSemanticSequencer extends AbstractDelegatingSemanticS /** * Contexts: - * Statement returns LowerBoundedScopeDefinition - * ScopeDefinition returns LowerBoundedScopeDefinition - * LowerBoundedScopeDefinition returns LowerBoundedScopeDefinition - * - * Constraint: - * ((lowerBound=INT type=[NamedElement|QualifiedName]) | (type=[NamedElement|QualifiedName] lowerBound=INT)) - */ - protected void sequence_LowerBoundedScopeDefinition(ISerializationContext context, LowerBoundedScopeDefinition semanticObject) { - genericSequencer.createSequence(context, semanticObject); - } - - - /** - * Contexts: - * Multiplicity returns ManyMultiplicity - * ManyMultiplicity returns ManyMultiplicity + * Statement returns LowerBoundedScope + * ScopeDeclaration returns LowerBoundedScope + * LowerBoundedScope returns LowerBoundedScope * * Constraint: - * {ManyMultiplicity} + * ((lowerBound=INT type=[Symbol|QualifiedName]) | (type=[Symbol|QualifiedName] lowerBound=INT)) */ - protected void sequence_ManyMultiplicity(ISerializationContext context, ManyMultiplicity semanticObject) { + protected void sequence_LowerBoundedScope(ISerializationContext context, LowerBoundedScope semanticObject) { genericSequencer.createSequence(context, semanticObject); } /** * Contexts: - * MemberDefinition returns MemberDefinition + * Import returns NamespaceImport + * NamespaceImport returns NamespaceImport * * Constraint: - * (containment?='contains'? type=[NamedElement|QualifiedName] multiplicity=Multiplicity? name=ID opposite=[NamedElement|QualifiedName]?) + * (importedNamespace=QualifiedName alias=QualifiedName) */ - protected void sequence_MemberDefinition(ISerializationContext context, MemberDefinition semanticObject) { - genericSequencer.createSequence(context, semanticObject); - } - - - /** - * Contexts: - * MetricDefinition returns MetricDefinition - * - * Constraint: - * (type=[NamedElement|QualifiedName] head=Call body=Expression) - */ - protected void sequence_MetricDefinition(ISerializationContext context, MetricDefinition semanticObject) { + protected void sequence_NamespaceImport(ISerializationContext context, NamespaceImport semanticObject) { if (errorAcceptor != null) { - if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.METRIC_DEFINITION__TYPE) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.METRIC_DEFINITION__TYPE)); - if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.METRIC_DEFINITION__HEAD) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.METRIC_DEFINITION__HEAD)); - if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.METRIC_DEFINITION__BODY) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.METRIC_DEFINITION__BODY)); + if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.NAMESPACE_IMPORT__IMPORTED_NAMESPACE) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.NAMESPACE_IMPORT__IMPORTED_NAMESPACE)); + if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.IMPORT__ALIAS) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.IMPORT__ALIAS)); } SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); - feeder.accept(grammarAccess.getMetricDefinitionAccess().getTypeNamedElementQualifiedNameParserRuleCall_0_0_1(), semanticObject.eGet(SolverLanguagePackage.Literals.METRIC_DEFINITION__TYPE, false)); - feeder.accept(grammarAccess.getMetricDefinitionAccess().getHeadCallParserRuleCall_1_0(), semanticObject.getHead()); - feeder.accept(grammarAccess.getMetricDefinitionAccess().getBodyExpressionParserRuleCall_3_0(), semanticObject.getBody()); + feeder.accept(grammarAccess.getNamespaceImportAccess().getImportedNamespaceQualifiedNameParserRuleCall_1_0(), semanticObject.getImportedNamespace()); + feeder.accept(grammarAccess.getNamespaceImportAccess().getAliasQualifiedNameParserRuleCall_2_1_0(), semanticObject.getAlias()); feeder.finish(); } /** * Contexts: - * Statement returns NumericLiteral - * AssertionOrDefinition returns NumericLiteral - * AssertionOrDefinition.Interpretation_1_0_0 returns NumericLiteral - * AssertionOrDefinition.PredicateDefinition_1_1_0 returns NumericLiteral - * AssertionOrDefinition.MetricDefinition_1_2_0 returns NumericLiteral - * Expression returns NumericLiteral - * ImplicationExpression returns NumericLiteral - * ImplicationExpression.BinaryExpression_1_0 returns NumericLiteral - * DisjunctiveExpression returns NumericLiteral - * DisjunctiveExpression.Disjunction_1_0_0 returns NumericLiteral - * DisjunctiveExpression.Case_1_1_0 returns NumericLiteral - * ConjunctiveExpression returns NumericLiteral - * ConjunctiveExpression.Conjunction_1_0 returns NumericLiteral - * ComparisonExpression returns NumericLiteral - * ComparisonExpression.Comparison_1_0 returns NumericLiteral - * AdditiveExpression returns NumericLiteral - * AdditiveExpression.BinaryExpression_1_0 returns NumericLiteral - * MultiplicativeExpression returns NumericLiteral - * MultiplicativeExpression.BinaryExpression_1_0 returns NumericLiteral - * ExponentialExpression returns NumericLiteral - * ExponentialExpression.BinaryExpression_1_0 returns NumericLiteral - * CastExpression returns NumericLiteral - * CastExpression.CastExpression_1_0 returns NumericLiteral - * UnaryExpression returns NumericLiteral - * AggregationExpression returns NumericLiteral - * AtomicExpression returns NumericLiteral - * Literal returns NumericLiteral - * NumericLiteral returns NumericLiteral + * Statement returns ObjectiveDeclaration + * ObjectiveDeclaration returns ObjectiveDeclaration * * Constraint: - * value=Real + * (kind=ObjectiveKind objective=Expression) */ - protected void sequence_NumericLiteral(ISerializationContext context, NumericLiteral semanticObject) { + protected void sequence_ObjectiveDeclaration(ISerializationContext context, ObjectiveDeclaration semanticObject) { if (errorAcceptor != null) { - if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.NUMERIC_LITERAL__VALUE) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.NUMERIC_LITERAL__VALUE)); + if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.OBJECTIVE_DECLARATION__KIND) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.OBJECTIVE_DECLARATION__KIND)); + if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.OBJECTIVE_DECLARATION__OBJECTIVE) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.OBJECTIVE_DECLARATION__OBJECTIVE)); } SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); - feeder.accept(grammarAccess.getNumericLiteralAccess().getValueRealParserRuleCall_0(), semanticObject.getValue()); + feeder.accept(grammarAccess.getObjectiveDeclarationAccess().getKindObjectiveKindEnumRuleCall_0_0(), semanticObject.getKind()); + feeder.accept(grammarAccess.getObjectiveDeclarationAccess().getObjectiveExpressionParserRuleCall_1_0(), semanticObject.getObjective()); feeder.finish(); } /** * Contexts: - * Statement returns ObjectiveDefinition - * ObjectiveDefinition returns ObjectiveDefinition + * PathComponent returns PathComponent * * Constraint: - * (kind=ObjectiveKind objective=Expression) + * ( + * inverse?='~'? + * symbol=[Symbol|QualifiedName] + * (transitiveClosure?=TRANSITIVE_CLOSURE | reflexiveTransitiveClosure?=REFLEXIVE_TRANSITIVE_CLOSURE)? + * ) */ - protected void sequence_ObjectiveDefinition(ISerializationContext context, ObjectiveDefinition semanticObject) { - if (errorAcceptor != null) { - if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.OBJECTIVE_DEFINITION__KIND) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.OBJECTIVE_DEFINITION__KIND)); - if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.OBJECTIVE_DEFINITION__OBJECTIVE) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.OBJECTIVE_DEFINITION__OBJECTIVE)); - } - SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); - feeder.accept(grammarAccess.getObjectiveDefinitionAccess().getKindObjectiveKindEnumRuleCall_0_0(), semanticObject.getKind()); - feeder.accept(grammarAccess.getObjectiveDefinitionAccess().getObjectiveExpressionParserRuleCall_1_0(), semanticObject.getObjective()); - feeder.finish(); + protected void sequence_PathComponent(ISerializationContext context, PathComponent semanticObject) { + genericSequencer.createSequence(context, semanticObject); } @@ -1386,7 +1461,7 @@ public class SolverLanguageSemanticSequencer extends AbstractDelegatingSemanticS * Problem returns Problem * * Constraint: - * statements+=Statement+ + * ((name=QualifiedName? imports+=Import+ statements+=Statement+) | (name=QualifiedName? statements+=Statement+) | statements+=Statement+)? */ protected void sequence_Problem(ISerializationContext context, Problem semanticObject) { genericSequencer.createSequence(context, semanticObject); @@ -1395,59 +1470,60 @@ public class SolverLanguageSemanticSequencer extends AbstractDelegatingSemanticS /** * Contexts: - * Statement returns QuantifiedExpression - * AssertionOrDefinition returns QuantifiedExpression - * AssertionOrDefinition.Interpretation_1_0_0 returns QuantifiedExpression - * AssertionOrDefinition.PredicateDefinition_1_1_0 returns QuantifiedExpression - * AssertionOrDefinition.MetricDefinition_1_2_0 returns QuantifiedExpression - * Expression returns QuantifiedExpression - * ImplicationExpression returns QuantifiedExpression - * ImplicationExpression.BinaryExpression_1_0 returns QuantifiedExpression - * DisjunctiveExpression returns QuantifiedExpression - * DisjunctiveExpression.Disjunction_1_0_0 returns QuantifiedExpression - * DisjunctiveExpression.Case_1_1_0 returns QuantifiedExpression - * ConjunctiveExpression returns QuantifiedExpression - * ConjunctiveExpression.Conjunction_1_0 returns QuantifiedExpression - * ComparisonExpression returns QuantifiedExpression - * ComparisonExpression.Comparison_1_0 returns QuantifiedExpression - * AdditiveExpression returns QuantifiedExpression - * AdditiveExpression.BinaryExpression_1_0 returns QuantifiedExpression - * MultiplicativeExpression returns QuantifiedExpression - * MultiplicativeExpression.BinaryExpression_1_0 returns QuantifiedExpression - * ExponentialExpression returns QuantifiedExpression - * ExponentialExpression.BinaryExpression_1_0 returns QuantifiedExpression - * CastExpression returns QuantifiedExpression - * CastExpression.CastExpression_1_0 returns QuantifiedExpression - * UnaryExpression returns QuantifiedExpression - * AggregationExpression returns QuantifiedExpression - * QuantifiedExpression returns QuantifiedExpression - * AtomicExpression returns QuantifiedExpression + * AssertionOrDefinition.Assertion_1_0_0 returns RealLiteral + * AssertionOrDefinition.PredicateDefinition_1_1_0 returns RealLiteral + * AssertionOrDefinition.FunctionDefinition_1_2_0 returns RealLiteral + * Expression returns RealLiteral + * Expression.Forall_2_1_0 returns RealLiteral + * DisjunctiveExpression returns RealLiteral + * DisjunctiveExpression.Disjunction_1_0_0 returns RealLiteral + * DisjunctiveExpression.Case_1_1_0 returns RealLiteral + * ConjunctiveExpression returns RealLiteral + * ConjunctiveExpression.Conjunction_1_0 returns RealLiteral + * ComparisonExpression returns RealLiteral + * ComparisonExpression.BinaryExpression_1_0 returns RealLiteral + * AdditiveExpression returns RealLiteral + * AdditiveExpression.BinaryExpression_1_0 returns RealLiteral + * MultiplicativeExpression returns RealLiteral + * MultiplicativeExpression.BinaryExpression_1_0 returns RealLiteral + * ExponentialExpression returns RealLiteral + * ExponentialExpression.BinaryExpression_1_0 returns RealLiteral + * CastExpression returns RealLiteral + * CastExpression.CastExpression_1_0 returns RealLiteral + * UnaryExpression returns RealLiteral + * BracedAggregateExpression returns RealLiteral + * AtomicExpression returns RealLiteral + * Literal returns RealLiteral + * RealLiteral returns RealLiteral * * Constraint: - * (quantifier=Quantifier localVariables=LocalVariables? body=Expression) + * value=Real */ - protected void sequence_QuantifiedExpression(ISerializationContext context, QuantifiedExpression semanticObject) { - genericSequencer.createSequence(context, semanticObject); + protected void sequence_RealLiteral(ISerializationContext context, RealLiteral semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.REAL_LITERAL__VALUE) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.REAL_LITERAL__VALUE)); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getRealLiteralAccess().getValueRealParserRuleCall_0(), semanticObject.getValue()); + feeder.finish(); } /** * Contexts: - * Statement returns Reference - * AssertionOrDefinition returns Reference - * AssertionOrDefinition.Interpretation_1_0_0 returns Reference + * AssertionOrDefinition.Assertion_1_0_0 returns Reference * AssertionOrDefinition.PredicateDefinition_1_1_0 returns Reference - * AssertionOrDefinition.MetricDefinition_1_2_0 returns Reference + * AssertionOrDefinition.FunctionDefinition_1_2_0 returns Reference * Expression returns Reference - * ImplicationExpression returns Reference - * ImplicationExpression.BinaryExpression_1_0 returns Reference + * Expression.Forall_2_1_0 returns Reference * DisjunctiveExpression returns Reference * DisjunctiveExpression.Disjunction_1_0_0 returns Reference * DisjunctiveExpression.Case_1_1_0 returns Reference * ConjunctiveExpression returns Reference * ConjunctiveExpression.Conjunction_1_0 returns Reference * ComparisonExpression returns Reference - * ComparisonExpression.Comparison_1_0 returns Reference + * ComparisonExpression.BinaryExpression_1_0 returns Reference * AdditiveExpression returns Reference * AdditiveExpression.BinaryExpression_1_0 returns Reference * MultiplicativeExpression returns Reference @@ -1457,21 +1533,15 @@ public class SolverLanguageSemanticSequencer extends AbstractDelegatingSemanticS * CastExpression returns Reference * CastExpression.CastExpression_1_0 returns Reference * UnaryExpression returns Reference - * AggregationExpression returns Reference + * BracedAggregateExpression returns Reference * AtomicExpression returns Reference * Reference returns Reference * * Constraint: - * referred=[NamedElement|QualifiedName] + * (components+=PathComponent components+=PathComponent*) */ protected void sequence_Reference(ISerializationContext context, Reference semanticObject) { - if (errorAcceptor != null) { - if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.REFERENCE__REFERRED) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.REFERENCE__REFERRED)); - } - SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); - feeder.accept(grammarAccess.getReferenceAccess().getReferredNamedElementQualifiedNameParserRuleCall_0_1(), semanticObject.eGet(SolverLanguagePackage.Literals.REFERENCE__REFERRED, false)); - feeder.finish(); + genericSequencer.createSequence(context, semanticObject); } @@ -1490,21 +1560,18 @@ public class SolverLanguageSemanticSequencer extends AbstractDelegatingSemanticS /** * Contexts: - * Statement returns StringLiteral - * AssertionOrDefinition returns StringLiteral - * AssertionOrDefinition.Interpretation_1_0_0 returns StringLiteral + * AssertionOrDefinition.Assertion_1_0_0 returns StringLiteral * AssertionOrDefinition.PredicateDefinition_1_1_0 returns StringLiteral - * AssertionOrDefinition.MetricDefinition_1_2_0 returns StringLiteral + * AssertionOrDefinition.FunctionDefinition_1_2_0 returns StringLiteral * Expression returns StringLiteral - * ImplicationExpression returns StringLiteral - * ImplicationExpression.BinaryExpression_1_0 returns StringLiteral + * Expression.Forall_2_1_0 returns StringLiteral * DisjunctiveExpression returns StringLiteral * DisjunctiveExpression.Disjunction_1_0_0 returns StringLiteral * DisjunctiveExpression.Case_1_1_0 returns StringLiteral * ConjunctiveExpression returns StringLiteral * ConjunctiveExpression.Conjunction_1_0 returns StringLiteral * ComparisonExpression returns StringLiteral - * ComparisonExpression.Comparison_1_0 returns StringLiteral + * ComparisonExpression.BinaryExpression_1_0 returns StringLiteral * AdditiveExpression returns StringLiteral * AdditiveExpression.BinaryExpression_1_0 returns StringLiteral * MultiplicativeExpression returns StringLiteral @@ -1514,7 +1581,7 @@ public class SolverLanguageSemanticSequencer extends AbstractDelegatingSemanticS * CastExpression returns StringLiteral * CastExpression.CastExpression_1_0 returns StringLiteral * UnaryExpression returns StringLiteral - * AggregationExpression returns StringLiteral + * BracedAggregateExpression returns StringLiteral * AtomicExpression returns StringLiteral * Literal returns StringLiteral * StringLiteral returns StringLiteral @@ -1535,62 +1602,71 @@ public class SolverLanguageSemanticSequencer extends AbstractDelegatingSemanticS /** * Contexts: - * Argument returns TypedArgument - * TypedArgument returns TypedArgument + * TypeReference returns TypeReference + * + * Constraint: + * (type=[Symbol|QualifiedName] forceObjectType?='object'?) + */ + protected void sequence_TypeReference(ISerializationContext context, TypeReference semanticObject) { + genericSequencer.createSequence(context, semanticObject); + } + + + /** + * Contexts: + * Argument returns TypedStarArgument + * TypedStarArgument returns TypedStarArgument * * Constraint: - * (type=[NamedElement|QualifiedName] variable=[NamedElement|QualifiedName]) + * typeReference=TypeReference */ - protected void sequence_TypedArgument(ISerializationContext context, TypedArgument semanticObject) { + protected void sequence_TypedStarArgument(ISerializationContext context, TypedStarArgument semanticObject) { if (errorAcceptor != null) { - if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.TYPED_ARGUMENT__TYPE) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.TYPED_ARGUMENT__TYPE)); - if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.TYPED_ARGUMENT__VARIABLE) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.TYPED_ARGUMENT__VARIABLE)); + if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.TYPED_ARGUMENT__TYPE_REFERENCE) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.TYPED_ARGUMENT__TYPE_REFERENCE)); } SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); - feeder.accept(grammarAccess.getTypedArgumentAccess().getTypeNamedElementQualifiedNameParserRuleCall_0_0_1(), semanticObject.eGet(SolverLanguagePackage.Literals.TYPED_ARGUMENT__TYPE, false)); - feeder.accept(grammarAccess.getTypedArgumentAccess().getVariableNamedElementQualifiedNameParserRuleCall_1_0_1(), semanticObject.eGet(SolverLanguagePackage.Literals.TYPED_ARGUMENT__VARIABLE, false)); + feeder.accept(grammarAccess.getTypedStarArgumentAccess().getTypeReferenceTypeReferenceParserRuleCall_0_0(), semanticObject.getTypeReference()); feeder.finish(); } /** * Contexts: - * Argument returns TypedStarArgument - * TypedStarArgument returns TypedStarArgument + * Argument returns TypedVariableArgument + * TypedVariableArgument returns TypedVariableArgument * * Constraint: - * type=[NamedElement|QualifiedName] + * (typeReference=TypeReference name=ID) */ - protected void sequence_TypedStarArgument(ISerializationContext context, TypedStarArgument semanticObject) { + protected void sequence_TypedVariableArgument(ISerializationContext context, TypedVariableArgument semanticObject) { if (errorAcceptor != null) { - if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.TYPED_STAR_ARGUMENT__TYPE) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.TYPED_STAR_ARGUMENT__TYPE)); + if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.TYPED_ARGUMENT__TYPE_REFERENCE) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.TYPED_ARGUMENT__TYPE_REFERENCE)); + if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.TYPED_VARIABLE_ARGUMENT__NAME) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.TYPED_VARIABLE_ARGUMENT__NAME)); } SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); - feeder.accept(grammarAccess.getTypedStarArgumentAccess().getTypeNamedElementQualifiedNameParserRuleCall_0_0_1(), semanticObject.eGet(SolverLanguagePackage.Literals.TYPED_STAR_ARGUMENT__TYPE, false)); + feeder.accept(grammarAccess.getTypedVariableArgumentAccess().getTypeReferenceTypeReferenceParserRuleCall_0_0(), semanticObject.getTypeReference()); + feeder.accept(grammarAccess.getTypedVariableArgumentAccess().getNameIDTerminalRuleCall_1_0(), semanticObject.getName()); feeder.finish(); } /** * Contexts: - * Statement returns UnaryExpression - * AssertionOrDefinition returns UnaryExpression - * AssertionOrDefinition.Interpretation_1_0_0 returns UnaryExpression + * AssertionOrDefinition.Assertion_1_0_0 returns UnaryExpression * AssertionOrDefinition.PredicateDefinition_1_1_0 returns UnaryExpression - * AssertionOrDefinition.MetricDefinition_1_2_0 returns UnaryExpression + * AssertionOrDefinition.FunctionDefinition_1_2_0 returns UnaryExpression * Expression returns UnaryExpression - * ImplicationExpression returns UnaryExpression - * ImplicationExpression.BinaryExpression_1_0 returns UnaryExpression + * Expression.Forall_2_1_0 returns UnaryExpression * DisjunctiveExpression returns UnaryExpression * DisjunctiveExpression.Disjunction_1_0_0 returns UnaryExpression * DisjunctiveExpression.Case_1_1_0 returns UnaryExpression * ConjunctiveExpression returns UnaryExpression * ConjunctiveExpression.Conjunction_1_0 returns UnaryExpression * ComparisonExpression returns UnaryExpression - * ComparisonExpression.Comparison_1_0 returns UnaryExpression + * ComparisonExpression.BinaryExpression_1_0 returns UnaryExpression * AdditiveExpression returns UnaryExpression * AdditiveExpression.BinaryExpression_1_0 returns UnaryExpression * MultiplicativeExpression returns UnaryExpression @@ -1600,11 +1676,11 @@ public class SolverLanguageSemanticSequencer extends AbstractDelegatingSemanticS * CastExpression returns UnaryExpression * CastExpression.CastExpression_1_0 returns UnaryExpression * UnaryExpression returns UnaryExpression - * AggregationExpression returns UnaryExpression + * BracedAggregateExpression returns UnaryExpression * AtomicExpression returns UnaryExpression * * Constraint: - * (op=UnaryOp body=AggregationExpression) + * (op=UnaryOperator body=BracedAggregateExpression) */ protected void sequence_UnaryExpression(ISerializationContext context, UnaryExpression semanticObject) { if (errorAcceptor != null) { @@ -1614,43 +1690,66 @@ public class SolverLanguageSemanticSequencer extends AbstractDelegatingSemanticS errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.UNARY_EXPRESSION__BODY)); } SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); - feeder.accept(grammarAccess.getUnaryExpressionAccess().getOpUnaryOpEnumRuleCall_1_1_0(), semanticObject.getOp()); - feeder.accept(grammarAccess.getUnaryExpressionAccess().getBodyAggregationExpressionParserRuleCall_1_2_0(), semanticObject.getBody()); + feeder.accept(grammarAccess.getUnaryExpressionAccess().getOpUnaryOperatorEnumRuleCall_1_1_0(), semanticObject.getOp()); + feeder.accept(grammarAccess.getUnaryExpressionAccess().getBodyBracedAggregateExpressionParserRuleCall_1_2_0(), semanticObject.getBody()); feeder.finish(); } /** * Contexts: - * Statement returns UnnamedErrorPrediateDefinition - * UnnamedErrorPrediateDefinition returns UnnamedErrorPrediateDefinition + * Multiplicity returns UnboundedMultiplicity + * UnboundedMultiplicity returns UnboundedMultiplicity + * + * Constraint: + * {UnboundedMultiplicity} + */ + protected void sequence_UnboundedMultiplicity(ISerializationContext context, UnboundedMultiplicity semanticObject) { + genericSequencer.createSequence(context, semanticObject); + } + + + /** + * Contexts: + * Statement returns UnnamedErrorPredicateDefintion + * UnnamedErrorPredicateDefintion returns UnnamedErrorPredicateDefintion * * Constraint: * (argumentList=ArgumentList body=Expression) */ - protected void sequence_UnnamedErrorPrediateDefinition(ISerializationContext context, UnnamedErrorPrediateDefinition semanticObject) { + protected void sequence_UnnamedErrorPredicateDefintion(ISerializationContext context, UnnamedErrorPredicateDefintion semanticObject) { if (errorAcceptor != null) { - if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.UNNAMED_ERROR_PREDIATE_DEFINITION__ARGUMENT_LIST) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.UNNAMED_ERROR_PREDIATE_DEFINITION__ARGUMENT_LIST)); - if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.UNNAMED_ERROR_PREDIATE_DEFINITION__BODY) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.UNNAMED_ERROR_PREDIATE_DEFINITION__BODY)); + if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.UNNAMED_ERROR_PREDICATE_DEFINTION__ARGUMENT_LIST) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.UNNAMED_ERROR_PREDICATE_DEFINTION__ARGUMENT_LIST)); + if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.UNNAMED_ERROR_PREDICATE_DEFINTION__BODY) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.UNNAMED_ERROR_PREDICATE_DEFINTION__BODY)); } SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); - feeder.accept(grammarAccess.getUnnamedErrorPrediateDefinitionAccess().getArgumentListArgumentListParserRuleCall_1_0(), semanticObject.getArgumentList()); - feeder.accept(grammarAccess.getUnnamedErrorPrediateDefinitionAccess().getBodyExpressionParserRuleCall_3_0(), semanticObject.getBody()); + feeder.accept(grammarAccess.getUnnamedErrorPredicateDefintionAccess().getArgumentListArgumentListParserRuleCall_1_0(), semanticObject.getArgumentList()); + feeder.accept(grammarAccess.getUnnamedErrorPredicateDefintionAccess().getBodyExpressionParserRuleCall_3_0(), semanticObject.getBody()); feeder.finish(); } /** * Contexts: - * Variable returns Variable + * Import returns UriImport + * UriImport returns UriImport * * Constraint: - * (type=[NamedElement|QualifiedName]? name=ID) + * (uri=STRING alias=QualifiedName) */ - protected void sequence_Variable(ISerializationContext context, Variable semanticObject) { - genericSequencer.createSequence(context, semanticObject); + protected void sequence_UriImport(ISerializationContext context, UriImport semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.URI_IMPORT__URI) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.URI_IMPORT__URI)); + if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.IMPORT__ALIAS) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.IMPORT__ALIAS)); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getUriImportAccess().getUriSTRINGTerminalRuleCall_1_0(), semanticObject.getUri()); + feeder.accept(grammarAccess.getUriImportAccess().getAliasQualifiedNameParserRuleCall_2_1_0(), semanticObject.getAlias()); + feeder.finish(); } diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/serializer/SolverLanguageSyntacticSequencer.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/serializer/SolverLanguageSyntacticSequencer.java index 8b187721..2f9ea8a3 100644 --- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/serializer/SolverLanguageSyntacticSequencer.java +++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/serializer/SolverLanguageSyntacticSequencer.java @@ -11,6 +11,8 @@ import org.eclipse.xtext.IGrammarAccess; import org.eclipse.xtext.RuleCall; import org.eclipse.xtext.nodemodel.INode; import org.eclipse.xtext.serializer.analysis.GrammarAlias.AbstractElementAlias; +import org.eclipse.xtext.serializer.analysis.GrammarAlias.AlternativeAlias; +import org.eclipse.xtext.serializer.analysis.GrammarAlias.GroupAlias; import org.eclipse.xtext.serializer.analysis.GrammarAlias.TokenAlias; import org.eclipse.xtext.serializer.analysis.ISyntacticSequencerPDAProvider.ISynNavigable; import org.eclipse.xtext.serializer.analysis.ISyntacticSequencerPDAProvider.ISynTransition; @@ -22,14 +24,20 @@ public class SolverLanguageSyntacticSequencer extends AbstractSyntacticSequencer protected SolverLanguageGrammarAccess grammarAccess; protected AbstractElementAlias match_AtomicExpression_LeftParenthesisKeyword_4_0_a; protected AbstractElementAlias match_AtomicExpression_LeftParenthesisKeyword_4_0_p; - protected AbstractElementAlias match_MemberDefinition_SemicolonKeyword_5_q; + protected AbstractElementAlias match_ClassDeclaration_FULL_STOPTerminalRuleCall_4_1_or___LeftCurlyBracketKeyword_4_0_0_RightCurlyBracketKeyword_4_0_2__; + protected AbstractElementAlias match_EnumDeclaration_CommaKeyword_2_0_1_1_0_q; + protected AbstractElementAlias match_EnumDeclaration_FULL_STOPTerminalRuleCall_2_1_or___LeftCurlyBracketKeyword_2_0_0_RightCurlyBracketKeyword_2_0_2__; + protected AbstractElementAlias match_Field_SemicolonKeyword_5_q; @Inject protected void init(IGrammarAccess access) { grammarAccess = (SolverLanguageGrammarAccess) access; match_AtomicExpression_LeftParenthesisKeyword_4_0_a = new TokenAlias(true, true, grammarAccess.getAtomicExpressionAccess().getLeftParenthesisKeyword_4_0()); match_AtomicExpression_LeftParenthesisKeyword_4_0_p = new TokenAlias(true, false, grammarAccess.getAtomicExpressionAccess().getLeftParenthesisKeyword_4_0()); - match_MemberDefinition_SemicolonKeyword_5_q = new TokenAlias(false, true, grammarAccess.getMemberDefinitionAccess().getSemicolonKeyword_5()); + match_ClassDeclaration_FULL_STOPTerminalRuleCall_4_1_or___LeftCurlyBracketKeyword_4_0_0_RightCurlyBracketKeyword_4_0_2__ = new AlternativeAlias(false, false, new GroupAlias(false, false, new TokenAlias(false, false, grammarAccess.getClassDeclarationAccess().getLeftCurlyBracketKeyword_4_0_0()), new TokenAlias(false, false, grammarAccess.getClassDeclarationAccess().getRightCurlyBracketKeyword_4_0_2())), new TokenAlias(false, false, grammarAccess.getClassDeclarationAccess().getFULL_STOPTerminalRuleCall_4_1())); + match_EnumDeclaration_CommaKeyword_2_0_1_1_0_q = new TokenAlias(false, true, grammarAccess.getEnumDeclarationAccess().getCommaKeyword_2_0_1_1_0()); + match_EnumDeclaration_FULL_STOPTerminalRuleCall_2_1_or___LeftCurlyBracketKeyword_2_0_0_RightCurlyBracketKeyword_2_0_2__ = new AlternativeAlias(false, false, new GroupAlias(false, false, new TokenAlias(false, false, grammarAccess.getEnumDeclarationAccess().getLeftCurlyBracketKeyword_2_0_0()), new TokenAlias(false, false, grammarAccess.getEnumDeclarationAccess().getRightCurlyBracketKeyword_2_0_2())), new TokenAlias(false, false, grammarAccess.getEnumDeclarationAccess().getFULL_STOPTerminalRuleCall_2_1())); + match_Field_SemicolonKeyword_5_q = new TokenAlias(false, true, grammarAccess.getFieldAccess().getSemicolonKeyword_5()); } @Override @@ -71,8 +79,14 @@ public class SolverLanguageSyntacticSequencer extends AbstractSyntacticSequencer emit_AtomicExpression_LeftParenthesisKeyword_4_0_a(semanticObject, getLastNavigableState(), syntaxNodes); else if (match_AtomicExpression_LeftParenthesisKeyword_4_0_p.equals(syntax)) emit_AtomicExpression_LeftParenthesisKeyword_4_0_p(semanticObject, getLastNavigableState(), syntaxNodes); - else if (match_MemberDefinition_SemicolonKeyword_5_q.equals(syntax)) - emit_MemberDefinition_SemicolonKeyword_5_q(semanticObject, getLastNavigableState(), syntaxNodes); + else if (match_ClassDeclaration_FULL_STOPTerminalRuleCall_4_1_or___LeftCurlyBracketKeyword_4_0_0_RightCurlyBracketKeyword_4_0_2__.equals(syntax)) + emit_ClassDeclaration_FULL_STOPTerminalRuleCall_4_1_or___LeftCurlyBracketKeyword_4_0_0_RightCurlyBracketKeyword_4_0_2__(semanticObject, getLastNavigableState(), syntaxNodes); + else if (match_EnumDeclaration_CommaKeyword_2_0_1_1_0_q.equals(syntax)) + emit_EnumDeclaration_CommaKeyword_2_0_1_1_0_q(semanticObject, getLastNavigableState(), syntaxNodes); + else if (match_EnumDeclaration_FULL_STOPTerminalRuleCall_2_1_or___LeftCurlyBracketKeyword_2_0_0_RightCurlyBracketKeyword_2_0_2__.equals(syntax)) + emit_EnumDeclaration_FULL_STOPTerminalRuleCall_2_1_or___LeftCurlyBracketKeyword_2_0_0_RightCurlyBracketKeyword_2_0_2__(semanticObject, getLastNavigableState(), syntaxNodes); + else if (match_Field_SemicolonKeyword_5_q.equals(syntax)) + emit_Field_SemicolonKeyword_5_q(semanticObject, getLastNavigableState(), syntaxNodes); else acceptNodes(getLastNavigableState(), syntaxNodes); } } @@ -82,26 +96,25 @@ public class SolverLanguageSyntacticSequencer extends AbstractSyntacticSequencer * '('* * * This ambiguous syntax occurs at: - * (rule start) (ambiguity) '[' lowerBound=Expression + * (rule start) (ambiguity) '[' lowerBound=AdditiveExpression + * (rule start) (ambiguity) 'count' '{' condition=Expression * (rule start) (ambiguity) 'empty' (rule start) - * (rule start) (ambiguity) 'empty' FULL_STOP (rule start) - * (rule start) (ambiguity) 'if' condition=Expression + * (rule start) (ambiguity) 'if' condition=DisjunctiveExpression * (rule start) (ambiguity) 'inf' (rule start) - * (rule start) (ambiguity) 'inf' FULL_STOP (rule start) * (rule start) (ambiguity) 'let' bindings+=LetBinding + * (rule start) (ambiguity) components+=PathComponent * (rule start) (ambiguity) functor=Reference - * (rule start) (ambiguity) op=UnaryOp - * (rule start) (ambiguity) op=[NamedElement|QualifiedName] - * (rule start) (ambiguity) quantifier=Quantifier - * (rule start) (ambiguity) referred=[NamedElement|QualifiedName] + * (rule start) (ambiguity) op=UnaryOperator + * (rule start) (ambiguity) op=[Symbol|QualifiedName] + * (rule start) (ambiguity) value=INT * (rule start) (ambiguity) value=LogicValue * (rule start) (ambiguity) value=Real * (rule start) (ambiguity) value=STRING * (rule start) (ambiguity) {BinaryExpression.left=} * (rule start) (ambiguity) {CastExpression.body=} - * (rule start) (ambiguity) {Comparison.left=} * (rule start) (ambiguity) {Conjunction.children+=} * (rule start) (ambiguity) {Disjunction.children+=} + * (rule start) (ambiguity) {Forall.condition=} * (rule start) (ambiguity) {Switch.cases+=} */ protected void emit_AtomicExpression_LeftParenthesisKeyword_4_0_a(EObject semanticObject, ISynNavigable transition, List nodes) { @@ -113,31 +126,65 @@ public class SolverLanguageSyntacticSequencer extends AbstractSyntacticSequencer * '('+ * * This ambiguous syntax occurs at: - * (rule start) (ambiguity) 'if' condition=Expression + * (rule start) (ambiguity) 'count' '{' condition=Expression + * (rule start) (ambiguity) 'if' condition=DisjunctiveExpression * (rule start) (ambiguity) 'let' bindings+=LetBinding - * (rule start) (ambiguity) op=UnaryOp - * (rule start) (ambiguity) op=[NamedElement|QualifiedName] - * (rule start) (ambiguity) quantifier=Quantifier + * (rule start) (ambiguity) op=UnaryOperator + * (rule start) (ambiguity) op=[Symbol|QualifiedName] * (rule start) (ambiguity) {BinaryExpression.left=} * (rule start) (ambiguity) {CastExpression.body=} - * (rule start) (ambiguity) {Comparison.left=} * (rule start) (ambiguity) {Conjunction.children+=} * (rule start) (ambiguity) {Disjunction.children+=} + * (rule start) (ambiguity) {Forall.condition=} * (rule start) (ambiguity) {Switch.cases+=} */ protected void emit_AtomicExpression_LeftParenthesisKeyword_4_0_p(EObject semanticObject, ISynNavigable transition, List nodes) { acceptNodes(transition, nodes); } + /** + * Ambiguous syntax: + * ('{' '}') | FULL_STOP + * + * This ambiguous syntax occurs at: + * name=ID (ambiguity) (rule end) + * supertypes+=[Symbol|QualifiedName] (ambiguity) (rule end) + */ + protected void emit_ClassDeclaration_FULL_STOPTerminalRuleCall_4_1_or___LeftCurlyBracketKeyword_4_0_0_RightCurlyBracketKeyword_4_0_2__(EObject semanticObject, ISynNavigable transition, List nodes) { + acceptNodes(transition, nodes); + } + + /** + * Ambiguous syntax: + * ','? + * + * This ambiguous syntax occurs at: + * literals+=EnumLiteral (ambiguity) literals+=EnumLiteral + */ + protected void emit_EnumDeclaration_CommaKeyword_2_0_1_1_0_q(EObject semanticObject, ISynNavigable transition, List nodes) { + acceptNodes(transition, nodes); + } + + /** + * Ambiguous syntax: + * ('{' '}') | FULL_STOP + * + * This ambiguous syntax occurs at: + * name=ID (ambiguity) (rule end) + */ + protected void emit_EnumDeclaration_FULL_STOPTerminalRuleCall_2_1_or___LeftCurlyBracketKeyword_2_0_0_RightCurlyBracketKeyword_2_0_2__(EObject semanticObject, ISynNavigable transition, List nodes) { + acceptNodes(transition, nodes); + } + /** * Ambiguous syntax: * ';'? * * This ambiguous syntax occurs at: * name=ID (ambiguity) (rule end) - * opposite=[NamedElement|QualifiedName] (ambiguity) (rule end) + * opposite=[Symbol|QualifiedName] (ambiguity) (rule end) */ - protected void emit_MemberDefinition_SemicolonKeyword_5_q(EObject semanticObject, ISynNavigable transition, List nodes) { + protected void emit_Field_SemicolonKeyword_5_q(EObject semanticObject, ISynNavigable transition, List nodes) { acceptNodes(transition, nodes); } diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/services/SolverLanguageGrammarAccess.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/services/SolverLanguageGrammarAccess.java index ed1569a5..a70729d4 100644 --- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/services/SolverLanguageGrammarAccess.java +++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/services/SolverLanguageGrammarAccess.java @@ -19,6 +19,7 @@ import org.eclipse.xtext.Keyword; import org.eclipse.xtext.ParserRule; import org.eclipse.xtext.RuleCall; import org.eclipse.xtext.TerminalRule; +import org.eclipse.xtext.UnorderedGroup; import org.eclipse.xtext.common.services.TerminalsGrammarAccess; import org.eclipse.xtext.service.AbstractElementFinder.AbstractEnumRuleElementFinder; import org.eclipse.xtext.service.AbstractElementFinder.AbstractGrammarElementFinder; @@ -29,91 +30,214 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder { public class ProblemElements extends AbstractParserRuleElementFinder { private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.Problem"); - private final Assignment cStatementsAssignment = (Assignment)rule.eContents().get(1); - private final RuleCall cStatementsStatementParserRuleCall_0 = (RuleCall)cStatementsAssignment.eContents().get(0); + private final Group cGroup = (Group)rule.eContents().get(1); + private final Group cGroup_0 = (Group)cGroup.eContents().get(0); + private final Keyword cProblemKeyword_0_0 = (Keyword)cGroup_0.eContents().get(0); + private final Assignment cNameAssignment_0_1 = (Assignment)cGroup_0.eContents().get(1); + private final RuleCall cNameQualifiedNameParserRuleCall_0_1_0 = (RuleCall)cNameAssignment_0_1.eContents().get(0); + private final RuleCall cFULL_STOPTerminalRuleCall_0_2 = (RuleCall)cGroup_0.eContents().get(2); + private final Assignment cImportsAssignment_1 = (Assignment)cGroup.eContents().get(1); + private final RuleCall cImportsImportParserRuleCall_1_0 = (RuleCall)cImportsAssignment_1.eContents().get(0); + private final Assignment cStatementsAssignment_2 = (Assignment)cGroup.eContents().get(2); + private final RuleCall cStatementsStatementParserRuleCall_2_0 = (RuleCall)cStatementsAssignment_2.eContents().get(0); //Problem: + // ("problem" name=QualifiedName FULL_STOP)? + // imports+=Import* // statements+=Statement*; @Override public ParserRule getRule() { return rule; } + //("problem" name=QualifiedName FULL_STOP)? imports+=Import* statements+=Statement* + public Group getGroup() { return cGroup; } + + //("problem" name=QualifiedName FULL_STOP)? + public Group getGroup_0() { return cGroup_0; } + + //"problem" + public Keyword getProblemKeyword_0_0() { return cProblemKeyword_0_0; } + + //name=QualifiedName + public Assignment getNameAssignment_0_1() { return cNameAssignment_0_1; } + + //QualifiedName + public RuleCall getNameQualifiedNameParserRuleCall_0_1_0() { return cNameQualifiedNameParserRuleCall_0_1_0; } + + //FULL_STOP + public RuleCall getFULL_STOPTerminalRuleCall_0_2() { return cFULL_STOPTerminalRuleCall_0_2; } + + //imports+=Import* + public Assignment getImportsAssignment_1() { return cImportsAssignment_1; } + + //Import + public RuleCall getImportsImportParserRuleCall_1_0() { return cImportsImportParserRuleCall_1_0; } + //statements+=Statement* - public Assignment getStatementsAssignment() { return cStatementsAssignment; } + public Assignment getStatementsAssignment_2() { return cStatementsAssignment_2; } //Statement - public RuleCall getStatementsStatementParserRuleCall_0() { return cStatementsStatementParserRuleCall_0; } + public RuleCall getStatementsStatementParserRuleCall_2_0() { return cStatementsStatementParserRuleCall_2_0; } } public class StatementElements extends AbstractParserRuleElementFinder { private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.Statement"); - private final Group cGroup = (Group)rule.eContents().get(1); - private final Alternatives cAlternatives_0 = (Alternatives)cGroup.eContents().get(0); - private final RuleCall cAssertionOrDefinitionParserRuleCall_0_0 = (RuleCall)cAlternatives_0.eContents().get(0); - private final RuleCall cPredicateDefinitionParserRuleCall_0_1 = (RuleCall)cAlternatives_0.eContents().get(1); - private final RuleCall cUnnamedErrorPrediateDefinitionParserRuleCall_0_2 = (RuleCall)cAlternatives_0.eContents().get(2); - private final RuleCall cDefaultDefinitionParserRuleCall_0_3 = (RuleCall)cAlternatives_0.eContents().get(3); - private final RuleCall cMetricDefinitionParserRuleCall_0_4 = (RuleCall)cAlternatives_0.eContents().get(4); - private final RuleCall cExternPredicateDefinitionParserRuleCall_0_5 = (RuleCall)cAlternatives_0.eContents().get(5); - private final RuleCall cExternMetricDefinitionParserRuleCall_0_6 = (RuleCall)cAlternatives_0.eContents().get(6); - private final RuleCall cExternAggregatorDefinitionParserRuleCall_0_7 = (RuleCall)cAlternatives_0.eContents().get(7); - private final RuleCall cExternDatatypeDefinitionParserRuleCall_0_8 = (RuleCall)cAlternatives_0.eContents().get(8); - private final RuleCall cClassDefinitionParserRuleCall_0_9 = (RuleCall)cAlternatives_0.eContents().get(9); - private final RuleCall cScopeDefinitionParserRuleCall_0_10 = (RuleCall)cAlternatives_0.eContents().get(10); - private final RuleCall cObjectiveDefinitionParserRuleCall_0_11 = (RuleCall)cAlternatives_0.eContents().get(11); - private final RuleCall cFULL_STOPTerminalRuleCall_1 = (RuleCall)cGroup.eContents().get(1); + private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); + private final RuleCall cAssertionOrDefinitionParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0); + private final RuleCall cPredicateDefinitionParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1); + private final RuleCall cUnnamedErrorPredicateDefintionParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2); + private final RuleCall cDefaultAssertionParserRuleCall_3 = (RuleCall)cAlternatives.eContents().get(3); + private final RuleCall cFunctionDefinitionParserRuleCall_4 = (RuleCall)cAlternatives.eContents().get(4); + private final RuleCall cAttributeParserRuleCall_5 = (RuleCall)cAlternatives.eContents().get(5); + private final RuleCall cExternDeclarationParserRuleCall_6 = (RuleCall)cAlternatives.eContents().get(6); + private final RuleCall cScopeDeclarationParserRuleCall_7 = (RuleCall)cAlternatives.eContents().get(7); + private final RuleCall cObjectiveDeclarationParserRuleCall_8 = (RuleCall)cAlternatives.eContents().get(8); + private final RuleCall cClassDeclarationParserRuleCall_9 = (RuleCall)cAlternatives.eContents().get(9); + private final RuleCall cEnumDeclarationParserRuleCall_10 = (RuleCall)cAlternatives.eContents().get(10); //Statement: - // (AssertionOrDefinition | PredicateDefinition | UnnamedErrorPrediateDefinition | DefaultDefinition | MetricDefinition - // | ExternPredicateDefinition | ExternMetricDefinition | ExternAggregatorDefinition | ExternDatatypeDefinition | - // ClassDefinition | ScopeDefinition | ObjectiveDefinition) FULL_STOP; + // AssertionOrDefinition | PredicateDefinition | UnnamedErrorPredicateDefintion | DefaultAssertion | FunctionDefinition + // | Attribute | ExternDeclaration | ScopeDeclaration | ObjectiveDeclaration | ClassDeclaration | EnumDeclaration; @Override public ParserRule getRule() { return rule; } - //(AssertionOrDefinition | PredicateDefinition | UnnamedErrorPrediateDefinition | DefaultDefinition | MetricDefinition | - //ExternPredicateDefinition | ExternMetricDefinition | ExternAggregatorDefinition | ExternDatatypeDefinition | - //ClassDefinition | ScopeDefinition | ObjectiveDefinition) FULL_STOP - public Group getGroup() { return cGroup; } - - //(AssertionOrDefinition | PredicateDefinition | UnnamedErrorPrediateDefinition | DefaultDefinition | MetricDefinition | - //ExternPredicateDefinition | ExternMetricDefinition | ExternAggregatorDefinition | ExternDatatypeDefinition | - //ClassDefinition | ScopeDefinition | ObjectiveDefinition) - public Alternatives getAlternatives_0() { return cAlternatives_0; } + //AssertionOrDefinition | PredicateDefinition | UnnamedErrorPredicateDefintion | DefaultAssertion | FunctionDefinition | + //Attribute | ExternDeclaration | ScopeDeclaration | ObjectiveDeclaration | ClassDeclaration | EnumDeclaration + public Alternatives getAlternatives() { return cAlternatives; } //AssertionOrDefinition - public RuleCall getAssertionOrDefinitionParserRuleCall_0_0() { return cAssertionOrDefinitionParserRuleCall_0_0; } + public RuleCall getAssertionOrDefinitionParserRuleCall_0() { return cAssertionOrDefinitionParserRuleCall_0; } //PredicateDefinition - public RuleCall getPredicateDefinitionParserRuleCall_0_1() { return cPredicateDefinitionParserRuleCall_0_1; } + public RuleCall getPredicateDefinitionParserRuleCall_1() { return cPredicateDefinitionParserRuleCall_1; } - //UnnamedErrorPrediateDefinition - public RuleCall getUnnamedErrorPrediateDefinitionParserRuleCall_0_2() { return cUnnamedErrorPrediateDefinitionParserRuleCall_0_2; } + //UnnamedErrorPredicateDefintion + public RuleCall getUnnamedErrorPredicateDefintionParserRuleCall_2() { return cUnnamedErrorPredicateDefintionParserRuleCall_2; } - //DefaultDefinition - public RuleCall getDefaultDefinitionParserRuleCall_0_3() { return cDefaultDefinitionParserRuleCall_0_3; } + //DefaultAssertion + public RuleCall getDefaultAssertionParserRuleCall_3() { return cDefaultAssertionParserRuleCall_3; } - //MetricDefinition - public RuleCall getMetricDefinitionParserRuleCall_0_4() { return cMetricDefinitionParserRuleCall_0_4; } + //FunctionDefinition + public RuleCall getFunctionDefinitionParserRuleCall_4() { return cFunctionDefinitionParserRuleCall_4; } - //ExternPredicateDefinition - public RuleCall getExternPredicateDefinitionParserRuleCall_0_5() { return cExternPredicateDefinitionParserRuleCall_0_5; } + //Attribute + public RuleCall getAttributeParserRuleCall_5() { return cAttributeParserRuleCall_5; } - //ExternMetricDefinition - public RuleCall getExternMetricDefinitionParserRuleCall_0_6() { return cExternMetricDefinitionParserRuleCall_0_6; } + //ExternDeclaration + public RuleCall getExternDeclarationParserRuleCall_6() { return cExternDeclarationParserRuleCall_6; } - //ExternAggregatorDefinition - public RuleCall getExternAggregatorDefinitionParserRuleCall_0_7() { return cExternAggregatorDefinitionParserRuleCall_0_7; } + //ScopeDeclaration + public RuleCall getScopeDeclarationParserRuleCall_7() { return cScopeDeclarationParserRuleCall_7; } - //ExternDatatypeDefinition - public RuleCall getExternDatatypeDefinitionParserRuleCall_0_8() { return cExternDatatypeDefinitionParserRuleCall_0_8; } + //ObjectiveDeclaration + public RuleCall getObjectiveDeclarationParserRuleCall_8() { return cObjectiveDeclarationParserRuleCall_8; } - //ClassDefinition - public RuleCall getClassDefinitionParserRuleCall_0_9() { return cClassDefinitionParserRuleCall_0_9; } + //ClassDeclaration + public RuleCall getClassDeclarationParserRuleCall_9() { return cClassDeclarationParserRuleCall_9; } - //ScopeDefinition - public RuleCall getScopeDefinitionParserRuleCall_0_10() { return cScopeDefinitionParserRuleCall_0_10; } + //EnumDeclaration + public RuleCall getEnumDeclarationParserRuleCall_10() { return cEnumDeclarationParserRuleCall_10; } + } + public class ImportElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.Import"); + private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); + private final RuleCall cUriImportParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0); + private final RuleCall cNamespaceImportParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1); - //ObjectiveDefinition - public RuleCall getObjectiveDefinitionParserRuleCall_0_11() { return cObjectiveDefinitionParserRuleCall_0_11; } + //Import: + // UriImport | NamespaceImport; + @Override public ParserRule getRule() { return rule; } + + //UriImport | NamespaceImport + public Alternatives getAlternatives() { return cAlternatives; } + + //UriImport + public RuleCall getUriImportParserRuleCall_0() { return cUriImportParserRuleCall_0; } + + //NamespaceImport + public RuleCall getNamespaceImportParserRuleCall_1() { return cNamespaceImportParserRuleCall_1; } + } + public class UriImportElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.UriImport"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final Keyword cImportKeyword_0 = (Keyword)cGroup.eContents().get(0); + private final Assignment cUriAssignment_1 = (Assignment)cGroup.eContents().get(1); + private final RuleCall cUriSTRINGTerminalRuleCall_1_0 = (RuleCall)cUriAssignment_1.eContents().get(0); + private final Group cGroup_2 = (Group)cGroup.eContents().get(2); + private final Keyword cAsKeyword_2_0 = (Keyword)cGroup_2.eContents().get(0); + private final Assignment cAliasAssignment_2_1 = (Assignment)cGroup_2.eContents().get(1); + private final RuleCall cAliasQualifiedNameParserRuleCall_2_1_0 = (RuleCall)cAliasAssignment_2_1.eContents().get(0); + private final RuleCall cFULL_STOPTerminalRuleCall_3 = (RuleCall)cGroup.eContents().get(3); + + //UriImport: + // "import" uri=STRING ("as" alias=QualifiedName) FULL_STOP; + @Override public ParserRule getRule() { return rule; } + + //"import" uri=STRING ("as" alias=QualifiedName) FULL_STOP + public Group getGroup() { return cGroup; } + + //"import" + public Keyword getImportKeyword_0() { return cImportKeyword_0; } + + //uri=STRING + public Assignment getUriAssignment_1() { return cUriAssignment_1; } + + //STRING + public RuleCall getUriSTRINGTerminalRuleCall_1_0() { return cUriSTRINGTerminalRuleCall_1_0; } + + //("as" alias=QualifiedName) + public Group getGroup_2() { return cGroup_2; } + + //"as" + public Keyword getAsKeyword_2_0() { return cAsKeyword_2_0; } + + //alias=QualifiedName + public Assignment getAliasAssignment_2_1() { return cAliasAssignment_2_1; } + + //QualifiedName + public RuleCall getAliasQualifiedNameParserRuleCall_2_1_0() { return cAliasQualifiedNameParserRuleCall_2_1_0; } + + //FULL_STOP + public RuleCall getFULL_STOPTerminalRuleCall_3() { return cFULL_STOPTerminalRuleCall_3; } + } + public class NamespaceImportElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.NamespaceImport"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final Keyword cImportKeyword_0 = (Keyword)cGroup.eContents().get(0); + private final Assignment cImportedNamespaceAssignment_1 = (Assignment)cGroup.eContents().get(1); + private final RuleCall cImportedNamespaceQualifiedNameParserRuleCall_1_0 = (RuleCall)cImportedNamespaceAssignment_1.eContents().get(0); + private final Group cGroup_2 = (Group)cGroup.eContents().get(2); + private final Keyword cAsKeyword_2_0 = (Keyword)cGroup_2.eContents().get(0); + private final Assignment cAliasAssignment_2_1 = (Assignment)cGroup_2.eContents().get(1); + private final RuleCall cAliasQualifiedNameParserRuleCall_2_1_0 = (RuleCall)cAliasAssignment_2_1.eContents().get(0); + private final RuleCall cFULL_STOPTerminalRuleCall_3 = (RuleCall)cGroup.eContents().get(3); + + //NamespaceImport: + // "import" importedNamespace=QualifiedName ("as" alias=QualifiedName) FULL_STOP; + @Override public ParserRule getRule() { return rule; } + + //"import" importedNamespace=QualifiedName ("as" alias=QualifiedName) FULL_STOP + public Group getGroup() { return cGroup; } + + //"import" + public Keyword getImportKeyword_0() { return cImportKeyword_0; } + + //importedNamespace=QualifiedName + public Assignment getImportedNamespaceAssignment_1() { return cImportedNamespaceAssignment_1; } + + //QualifiedName + public RuleCall getImportedNamespaceQualifiedNameParserRuleCall_1_0() { return cImportedNamespaceQualifiedNameParserRuleCall_1_0; } + + //("as" alias=QualifiedName) + public Group getGroup_2() { return cGroup_2; } + + //"as" + public Keyword getAsKeyword_2_0() { return cAsKeyword_2_0; } + + //alias=QualifiedName + public Assignment getAliasAssignment_2_1() { return cAliasAssignment_2_1; } + + //QualifiedName + public RuleCall getAliasQualifiedNameParserRuleCall_2_1_0() { return cAliasQualifiedNameParserRuleCall_2_1_0; } //FULL_STOP - public RuleCall getFULL_STOPTerminalRuleCall_1() { return cFULL_STOPTerminalRuleCall_1; } + public RuleCall getFULL_STOPTerminalRuleCall_3() { return cFULL_STOPTerminalRuleCall_3; } } public class AssertionOrDefinitionElements extends AbstractParserRuleElementFinder { private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.AssertionOrDefinition"); @@ -121,51 +245,56 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder { private final RuleCall cExpressionParserRuleCall_0 = (RuleCall)cGroup.eContents().get(0); private final Alternatives cAlternatives_1 = (Alternatives)cGroup.eContents().get(1); private final Group cGroup_1_0 = (Group)cAlternatives_1.eContents().get(0); - private final Action cInterpretationBodyAction_1_0_0 = (Action)cGroup_1_0.eContents().get(0); - private final Keyword cColonKeyword_1_0_1 = (Keyword)cGroup_1_0.eContents().get(1); - private final Assignment cRangeAssignment_1_0_2 = (Assignment)cGroup_1_0.eContents().get(2); - private final RuleCall cRangeExpressionParserRuleCall_1_0_2_0 = (RuleCall)cRangeAssignment_1_0_2.eContents().get(0); + private final Action cAssertionExpressionAction_1_0_0 = (Action)cGroup_1_0.eContents().get(0); + private final Group cGroup_1_0_1 = (Group)cGroup_1_0.eContents().get(1); + private final Keyword cColonKeyword_1_0_1_0 = (Keyword)cGroup_1_0_1.eContents().get(0); + private final Assignment cRangeAssignment_1_0_1_1 = (Assignment)cGroup_1_0_1.eContents().get(1); + private final RuleCall cRangeExpressionParserRuleCall_1_0_1_1_0 = (RuleCall)cRangeAssignment_1_0_1_1.eContents().get(0); private final Group cGroup_1_1 = (Group)cAlternatives_1.eContents().get(1); private final Action cPredicateDefinitionHeadAction_1_1_0 = (Action)cGroup_1_1.eContents().get(0); private final Keyword cColonHyphenMinusKeyword_1_1_1 = (Keyword)cGroup_1_1.eContents().get(1); private final Assignment cBodyAssignment_1_1_2 = (Assignment)cGroup_1_1.eContents().get(2); private final RuleCall cBodyExpressionParserRuleCall_1_1_2_0 = (RuleCall)cBodyAssignment_1_1_2.eContents().get(0); private final Group cGroup_1_2 = (Group)cAlternatives_1.eContents().get(2); - private final Action cMetricDefinitionHeadAction_1_2_0 = (Action)cGroup_1_2.eContents().get(0); - private final Keyword cEqualsSignKeyword_1_2_1 = (Keyword)cGroup_1_2.eContents().get(1); + private final Action cFunctionDefinitionHeadAction_1_2_0 = (Action)cGroup_1_2.eContents().get(0); + private final Keyword cColonEqualsSignKeyword_1_2_1 = (Keyword)cGroup_1_2.eContents().get(1); private final Assignment cBodyAssignment_1_2_2 = (Assignment)cGroup_1_2.eContents().get(2); private final RuleCall cBodyExpressionParserRuleCall_1_2_2_0 = (RuleCall)cBodyAssignment_1_2_2.eContents().get(0); + private final RuleCall cFULL_STOPTerminalRuleCall_2 = (RuleCall)cGroup.eContents().get(2); //AssertionOrDefinition Statement: - // Expression ({Interpretation.body=current} ":" range=Expression | {PredicateDefinition.head=current} ":-" - // body=Expression | {MetricDefinition.head=current} "=" body=Expression)?; + // Expression ({Assertion.expression=current} (":" range=Expression)? | {PredicateDefinition.head=current} ":-" + // body=Expression | {FunctionDefinition.head=current} ":=" body=Expression) FULL_STOP; @Override public ParserRule getRule() { return rule; } - //Expression ({Interpretation.body=current} ":" range=Expression | {PredicateDefinition.head=current} ":-" body=Expression - //| {MetricDefinition.head=current} "=" body=Expression)? + //Expression ({Assertion.expression=current} (":" range=Expression)? | {PredicateDefinition.head=current} ":-" + //body=Expression | {FunctionDefinition.head=current} ":=" body=Expression) FULL_STOP public Group getGroup() { return cGroup; } //Expression public RuleCall getExpressionParserRuleCall_0() { return cExpressionParserRuleCall_0; } - //({Interpretation.body=current} ":" range=Expression | {PredicateDefinition.head=current} ":-" body=Expression | - //{MetricDefinition.head=current} "=" body=Expression)? + //({Assertion.expression=current} (":" range=Expression)? | {PredicateDefinition.head=current} ":-" body=Expression | + //{FunctionDefinition.head=current} ":=" body=Expression) public Alternatives getAlternatives_1() { return cAlternatives_1; } - //{Interpretation.body=current} ":" range=Expression + //{Assertion.expression=current} (":" range=Expression)? public Group getGroup_1_0() { return cGroup_1_0; } - //{Interpretation.body=current} - public Action getInterpretationBodyAction_1_0_0() { return cInterpretationBodyAction_1_0_0; } + //{Assertion.expression=current} + public Action getAssertionExpressionAction_1_0_0() { return cAssertionExpressionAction_1_0_0; } + + //(":" range=Expression)? + public Group getGroup_1_0_1() { return cGroup_1_0_1; } //":" - public Keyword getColonKeyword_1_0_1() { return cColonKeyword_1_0_1; } + public Keyword getColonKeyword_1_0_1_0() { return cColonKeyword_1_0_1_0; } //range=Expression - public Assignment getRangeAssignment_1_0_2() { return cRangeAssignment_1_0_2; } + public Assignment getRangeAssignment_1_0_1_1() { return cRangeAssignment_1_0_1_1; } //Expression - public RuleCall getRangeExpressionParserRuleCall_1_0_2_0() { return cRangeExpressionParserRuleCall_1_0_2_0; } + public RuleCall getRangeExpressionParserRuleCall_1_0_1_1_0() { return cRangeExpressionParserRuleCall_1_0_1_1_0; } //{PredicateDefinition.head=current} ":-" body=Expression public Group getGroup_1_1() { return cGroup_1_1; } @@ -182,20 +311,23 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder { //Expression public RuleCall getBodyExpressionParserRuleCall_1_1_2_0() { return cBodyExpressionParserRuleCall_1_1_2_0; } - //{MetricDefinition.head=current} "=" body=Expression + //{FunctionDefinition.head=current} ":=" body=Expression public Group getGroup_1_2() { return cGroup_1_2; } - //{MetricDefinition.head=current} - public Action getMetricDefinitionHeadAction_1_2_0() { return cMetricDefinitionHeadAction_1_2_0; } + //{FunctionDefinition.head=current} + public Action getFunctionDefinitionHeadAction_1_2_0() { return cFunctionDefinitionHeadAction_1_2_0; } - //"=" - public Keyword getEqualsSignKeyword_1_2_1() { return cEqualsSignKeyword_1_2_1; } + //":=" + public Keyword getColonEqualsSignKeyword_1_2_1() { return cColonEqualsSignKeyword_1_2_1; } //body=Expression public Assignment getBodyAssignment_1_2_2() { return cBodyAssignment_1_2_2; } //Expression public RuleCall getBodyExpressionParserRuleCall_1_2_2_0() { return cBodyExpressionParserRuleCall_1_2_2_0; } + + //FULL_STOP + public RuleCall getFULL_STOPTerminalRuleCall_2() { return cFULL_STOPTerminalRuleCall_2; } } public class PredicateDefinitionElements extends AbstractParserRuleElementFinder { private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.PredicateDefinition"); @@ -216,12 +348,15 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder { private final Keyword cColonHyphenMinusKeyword_2 = (Keyword)cGroup.eContents().get(2); private final Assignment cBodyAssignment_3 = (Assignment)cGroup.eContents().get(3); private final RuleCall cBodyExpressionParserRuleCall_3_0 = (RuleCall)cBodyAssignment_3.eContents().get(0); + private final RuleCall cFULL_STOPTerminalRuleCall_4 = (RuleCall)cGroup.eContents().get(4); //PredicateDefinition: - // (functional?="functional" error?="error"? | error?="error" functional?="functional"?) head=Call ":-" body=Expression; + // (functional?="functional" error?="error"? | error?="error" functional?="functional"?) head=Call ":-" body=Expression + // FULL_STOP; @Override public ParserRule getRule() { return rule; } //(functional?="functional" error?="error"? | error?="error" functional?="functional"?) head=Call ":-" body=Expression + //FULL_STOP public Group getGroup() { return cGroup; } //(functional?="functional" error?="error"? | error?="error" functional?="functional"?) @@ -271,9 +406,12 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder { //Expression public RuleCall getBodyExpressionParserRuleCall_3_0() { return cBodyExpressionParserRuleCall_3_0; } + + //FULL_STOP + public RuleCall getFULL_STOPTerminalRuleCall_4() { return cFULL_STOPTerminalRuleCall_4; } } - public class UnnamedErrorPrediateDefinitionElements extends AbstractParserRuleElementFinder { - private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.UnnamedErrorPrediateDefinition"); + public class UnnamedErrorPredicateDefintionElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.UnnamedErrorPredicateDefintion"); private final Group cGroup = (Group)rule.eContents().get(1); private final Keyword cErrorKeyword_0 = (Keyword)cGroup.eContents().get(0); private final Assignment cArgumentListAssignment_1 = (Assignment)cGroup.eContents().get(1); @@ -281,12 +419,13 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder { private final Keyword cColonHyphenMinusKeyword_2 = (Keyword)cGroup.eContents().get(2); private final Assignment cBodyAssignment_3 = (Assignment)cGroup.eContents().get(3); private final RuleCall cBodyExpressionParserRuleCall_3_0 = (RuleCall)cBodyAssignment_3.eContents().get(0); + private final RuleCall cFULL_STOPTerminalRuleCall_4 = (RuleCall)cGroup.eContents().get(4); - //UnnamedErrorPrediateDefinition: - // "error" argumentList=ArgumentList ":-" body=Expression; + //UnnamedErrorPredicateDefintion: + // "error" argumentList=ArgumentList ":-" body=Expression FULL_STOP; @Override public ParserRule getRule() { return rule; } - //"error" argumentList=ArgumentList ":-" body=Expression + //"error" argumentList=ArgumentList ":-" body=Expression FULL_STOP public Group getGroup() { return cGroup; } //"error" @@ -306,69 +445,81 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder { //Expression public RuleCall getBodyExpressionParserRuleCall_3_0() { return cBodyExpressionParserRuleCall_3_0; } + + //FULL_STOP + public RuleCall getFULL_STOPTerminalRuleCall_4() { return cFULL_STOPTerminalRuleCall_4; } } - public class DefaultDefinitionElements extends AbstractParserRuleElementFinder { - private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.DefaultDefinition"); + public class DefaultAssertionElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.DefaultAssertion"); private final Group cGroup = (Group)rule.eContents().get(1); private final Keyword cDefaultKeyword_0 = (Keyword)cGroup.eContents().get(0); - private final Assignment cHeadAssignment_1 = (Assignment)cGroup.eContents().get(1); - private final RuleCall cHeadCallParserRuleCall_1_0 = (RuleCall)cHeadAssignment_1.eContents().get(0); - private final Keyword cColonKeyword_2 = (Keyword)cGroup.eContents().get(2); - private final Assignment cRangeAssignment_3 = (Assignment)cGroup.eContents().get(3); - private final RuleCall cRangeExpressionParserRuleCall_3_0 = (RuleCall)cRangeAssignment_3.eContents().get(0); + private final Assignment cExpressionAssignment_1 = (Assignment)cGroup.eContents().get(1); + private final RuleCall cExpressionCallParserRuleCall_1_0 = (RuleCall)cExpressionAssignment_1.eContents().get(0); + private final Group cGroup_2 = (Group)cGroup.eContents().get(2); + private final Keyword cColonKeyword_2_0 = (Keyword)cGroup_2.eContents().get(0); + private final Assignment cRangeAssignment_2_1 = (Assignment)cGroup_2.eContents().get(1); + private final RuleCall cRangeExpressionParserRuleCall_2_1_0 = (RuleCall)cRangeAssignment_2_1.eContents().get(0); + private final RuleCall cFULL_STOPTerminalRuleCall_3 = (RuleCall)cGroup.eContents().get(3); - //DefaultDefinition: - // "default" head=Call ":" range=Expression; + //DefaultAssertion: + // "default" expression=Call (":" range=Expression)? FULL_STOP; @Override public ParserRule getRule() { return rule; } - //"default" head=Call ":" range=Expression + //"default" expression=Call (":" range=Expression)? FULL_STOP public Group getGroup() { return cGroup; } //"default" public Keyword getDefaultKeyword_0() { return cDefaultKeyword_0; } - //head=Call - public Assignment getHeadAssignment_1() { return cHeadAssignment_1; } + //expression=Call + public Assignment getExpressionAssignment_1() { return cExpressionAssignment_1; } //Call - public RuleCall getHeadCallParserRuleCall_1_0() { return cHeadCallParserRuleCall_1_0; } + public RuleCall getExpressionCallParserRuleCall_1_0() { return cExpressionCallParserRuleCall_1_0; } + + //(":" range=Expression)? + public Group getGroup_2() { return cGroup_2; } //":" - public Keyword getColonKeyword_2() { return cColonKeyword_2; } + public Keyword getColonKeyword_2_0() { return cColonKeyword_2_0; } //range=Expression - public Assignment getRangeAssignment_3() { return cRangeAssignment_3; } + public Assignment getRangeAssignment_2_1() { return cRangeAssignment_2_1; } //Expression - public RuleCall getRangeExpressionParserRuleCall_3_0() { return cRangeExpressionParserRuleCall_3_0; } + public RuleCall getRangeExpressionParserRuleCall_2_1_0() { return cRangeExpressionParserRuleCall_2_1_0; } + + //FULL_STOP + public RuleCall getFULL_STOPTerminalRuleCall_3() { return cFULL_STOPTerminalRuleCall_3; } } - public class MetricDefinitionElements extends AbstractParserRuleElementFinder { - private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.MetricDefinition"); + public class FunctionDefinitionElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.FunctionDefinition"); private final Group cGroup = (Group)rule.eContents().get(1); - private final Assignment cTypeAssignment_0 = (Assignment)cGroup.eContents().get(0); - private final CrossReference cTypeNamedElementCrossReference_0_0 = (CrossReference)cTypeAssignment_0.eContents().get(0); - private final RuleCall cTypeNamedElementQualifiedNameParserRuleCall_0_0_1 = (RuleCall)cTypeNamedElementCrossReference_0_0.eContents().get(1); + private final Assignment cResultTypeAssignment_0 = (Assignment)cGroup.eContents().get(0); + private final CrossReference cResultTypeSymbolCrossReference_0_0 = (CrossReference)cResultTypeAssignment_0.eContents().get(0); + private final RuleCall cResultTypeSymbolQualifiedNameParserRuleCall_0_0_1 = (RuleCall)cResultTypeSymbolCrossReference_0_0.eContents().get(1); private final Assignment cHeadAssignment_1 = (Assignment)cGroup.eContents().get(1); private final RuleCall cHeadCallParserRuleCall_1_0 = (RuleCall)cHeadAssignment_1.eContents().get(0); - private final Keyword cEqualsSignKeyword_2 = (Keyword)cGroup.eContents().get(2); + private final Keyword cColonEqualsSignKeyword_2 = (Keyword)cGroup.eContents().get(2); private final Assignment cBodyAssignment_3 = (Assignment)cGroup.eContents().get(3); private final RuleCall cBodyExpressionParserRuleCall_3_0 = (RuleCall)cBodyAssignment_3.eContents().get(0); + private final RuleCall cFULL_STOPTerminalRuleCall_4 = (RuleCall)cGroup.eContents().get(4); - //MetricDefinition: - // type=[NamedElement|QualifiedName] head=Call "=" body=Expression; + //FunctionDefinition: + // resultType=[Symbol|QualifiedName] head=Call ":=" body=Expression FULL_STOP; @Override public ParserRule getRule() { return rule; } - //type=[NamedElement|QualifiedName] head=Call "=" body=Expression + //resultType=[Symbol|QualifiedName] head=Call ":=" body=Expression FULL_STOP public Group getGroup() { return cGroup; } - //type=[NamedElement|QualifiedName] - public Assignment getTypeAssignment_0() { return cTypeAssignment_0; } + //resultType=[Symbol|QualifiedName] + public Assignment getResultTypeAssignment_0() { return cResultTypeAssignment_0; } - //[NamedElement|QualifiedName] - public CrossReference getTypeNamedElementCrossReference_0_0() { return cTypeNamedElementCrossReference_0_0; } + //[Symbol|QualifiedName] + public CrossReference getResultTypeSymbolCrossReference_0_0() { return cResultTypeSymbolCrossReference_0_0; } //QualifiedName - public RuleCall getTypeNamedElementQualifiedNameParserRuleCall_0_0_1() { return cTypeNamedElementQualifiedNameParserRuleCall_0_0_1; } + public RuleCall getResultTypeSymbolQualifiedNameParserRuleCall_0_0_1() { return cResultTypeSymbolQualifiedNameParserRuleCall_0_0_1; } //head=Call public Assignment getHeadAssignment_1() { return cHeadAssignment_1; } @@ -376,76 +527,199 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder { //Call public RuleCall getHeadCallParserRuleCall_1_0() { return cHeadCallParserRuleCall_1_0; } - //"=" - public Keyword getEqualsSignKeyword_2() { return cEqualsSignKeyword_2; } + //":=" + public Keyword getColonEqualsSignKeyword_2() { return cColonEqualsSignKeyword_2; } //body=Expression public Assignment getBodyAssignment_3() { return cBodyAssignment_3; } //Expression public RuleCall getBodyExpressionParserRuleCall_3_0() { return cBodyExpressionParserRuleCall_3_0; } + + //FULL_STOP + public RuleCall getFULL_STOPTerminalRuleCall_4() { return cFULL_STOPTerminalRuleCall_4; } + } + public class TypeReferenceElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.TypeReference"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final Assignment cTypeAssignment_0 = (Assignment)cGroup.eContents().get(0); + private final CrossReference cTypeSymbolCrossReference_0_0 = (CrossReference)cTypeAssignment_0.eContents().get(0); + private final RuleCall cTypeSymbolQualifiedNameParserRuleCall_0_0_1 = (RuleCall)cTypeSymbolCrossReference_0_0.eContents().get(1); + private final Assignment cForceObjectTypeAssignment_1 = (Assignment)cGroup.eContents().get(1); + private final Keyword cForceObjectTypeObjectKeyword_1_0 = (Keyword)cForceObjectTypeAssignment_1.eContents().get(0); + + //TypeReference: + // type=[Symbol|QualifiedName] forceObjectType?="object"?; + @Override public ParserRule getRule() { return rule; } + + //type=[Symbol|QualifiedName] forceObjectType?="object"? + public Group getGroup() { return cGroup; } + + //type=[Symbol|QualifiedName] + public Assignment getTypeAssignment_0() { return cTypeAssignment_0; } + + //[Symbol|QualifiedName] + public CrossReference getTypeSymbolCrossReference_0_0() { return cTypeSymbolCrossReference_0_0; } + + //QualifiedName + public RuleCall getTypeSymbolQualifiedNameParserRuleCall_0_0_1() { return cTypeSymbolQualifiedNameParserRuleCall_0_0_1; } + + //forceObjectType?="object"? + public Assignment getForceObjectTypeAssignment_1() { return cForceObjectTypeAssignment_1; } + + //"object" + public Keyword getForceObjectTypeObjectKeyword_1_0() { return cForceObjectTypeObjectKeyword_1_0; } + } + public class AttributeElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.Attribute"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final Assignment cKindAssignment_0 = (Assignment)cGroup.eContents().get(0); + private final RuleCall cKindAttributeKindEnumRuleCall_0_0 = (RuleCall)cKindAssignment_0.eContents().get(0); + private final Assignment cTargetAssignment_1 = (Assignment)cGroup.eContents().get(1); + private final CrossReference cTargetSymbolCrossReference_1_0 = (CrossReference)cTargetAssignment_1.eContents().get(0); + private final RuleCall cTargetSymbolQualifiedNameParserRuleCall_1_0_1 = (RuleCall)cTargetSymbolCrossReference_1_0.eContents().get(1); + private final RuleCall cFULL_STOPTerminalRuleCall_2 = (RuleCall)cGroup.eContents().get(2); + + //Attribute: + // kind=AttributeKind target=[Symbol|QualifiedName] FULL_STOP; + @Override public ParserRule getRule() { return rule; } + + //kind=AttributeKind target=[Symbol|QualifiedName] FULL_STOP + public Group getGroup() { return cGroup; } + + //kind=AttributeKind + public Assignment getKindAssignment_0() { return cKindAssignment_0; } + + //AttributeKind + public RuleCall getKindAttributeKindEnumRuleCall_0_0() { return cKindAttributeKindEnumRuleCall_0_0; } + + //target=[Symbol|QualifiedName] + public Assignment getTargetAssignment_1() { return cTargetAssignment_1; } + + //[Symbol|QualifiedName] + public CrossReference getTargetSymbolCrossReference_1_0() { return cTargetSymbolCrossReference_1_0; } + + //QualifiedName + public RuleCall getTargetSymbolQualifiedNameParserRuleCall_1_0_1() { return cTargetSymbolQualifiedNameParserRuleCall_1_0_1; } + + //FULL_STOP + public RuleCall getFULL_STOPTerminalRuleCall_2() { return cFULL_STOPTerminalRuleCall_2; } } - public class ExternPredicateDefinitionElements extends AbstractParserRuleElementFinder { - private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.ExternPredicateDefinition"); + public class ExternDeclarationElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.ExternDeclaration"); + private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); + private final RuleCall cExternPredicateDeclarationParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0); + private final RuleCall cExternFunctionDeclarationParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1); + private final RuleCall cExternAggregationOperatorDeclarationParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2); + private final RuleCall cExternDatatypeDeclarationParserRuleCall_3 = (RuleCall)cAlternatives.eContents().get(3); + + //ExternDeclaration: + // ExternPredicateDeclaration | ExternFunctionDeclaration | ExternAggregationOperatorDeclaration | + // ExternDatatypeDeclaration; + @Override public ParserRule getRule() { return rule; } + + //ExternPredicateDeclaration | ExternFunctionDeclaration | ExternAggregationOperatorDeclaration | + //ExternDatatypeDeclaration + public Alternatives getAlternatives() { return cAlternatives; } + + //ExternPredicateDeclaration + public RuleCall getExternPredicateDeclarationParserRuleCall_0() { return cExternPredicateDeclarationParserRuleCall_0; } + + //ExternFunctionDeclaration + public RuleCall getExternFunctionDeclarationParserRuleCall_1() { return cExternFunctionDeclarationParserRuleCall_1; } + + //ExternAggregationOperatorDeclaration + public RuleCall getExternAggregationOperatorDeclarationParserRuleCall_2() { return cExternAggregationOperatorDeclarationParserRuleCall_2; } + + //ExternDatatypeDeclaration + public RuleCall getExternDatatypeDeclarationParserRuleCall_3() { return cExternDatatypeDeclarationParserRuleCall_3; } + } + public class ExternPredicateDeclarationElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.ExternPredicateDeclaration"); private final Group cGroup = (Group)rule.eContents().get(1); private final Keyword cExternKeyword_0 = (Keyword)cGroup.eContents().get(0); - private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1); - private final RuleCall cNameQualifiedNameParserRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0); - private final Assignment cArgumentListAssignment_2 = (Assignment)cGroup.eContents().get(2); - private final RuleCall cArgumentListArgumentListParserRuleCall_2_0 = (RuleCall)cArgumentListAssignment_2.eContents().get(0); + private final UnorderedGroup cUnorderedGroup_1 = (UnorderedGroup)cGroup.eContents().get(1); + private final Assignment cFunctionalAssignment_1_0 = (Assignment)cUnorderedGroup_1.eContents().get(0); + private final Keyword cFunctionalFunctionalKeyword_1_0_0 = (Keyword)cFunctionalAssignment_1_0.eContents().get(0); + private final Assignment cErrorAssignment_1_1 = (Assignment)cUnorderedGroup_1.eContents().get(1); + private final Keyword cErrorErrorKeyword_1_1_0 = (Keyword)cErrorAssignment_1_1.eContents().get(0); + private final Assignment cNameAssignment_2 = (Assignment)cGroup.eContents().get(2); + private final RuleCall cNameQualifiedNameParserRuleCall_2_0 = (RuleCall)cNameAssignment_2.eContents().get(0); + private final Assignment cArgumentListAssignment_3 = (Assignment)cGroup.eContents().get(3); + private final RuleCall cArgumentListArgumentListParserRuleCall_3_0 = (RuleCall)cArgumentListAssignment_3.eContents().get(0); + private final RuleCall cFULL_STOPTerminalRuleCall_4 = (RuleCall)cGroup.eContents().get(4); - //ExternPredicateDefinition: - // "extern" name=QualifiedName argumentList=ArgumentList; + //ExternPredicateDeclaration: + // "extern" (functional?="functional"? & error?="error"?) name=QualifiedName argumentList=ArgumentList FULL_STOP; @Override public ParserRule getRule() { return rule; } - //"extern" name=QualifiedName argumentList=ArgumentList + //"extern" (functional?="functional"? & error?="error"?) name=QualifiedName argumentList=ArgumentList FULL_STOP public Group getGroup() { return cGroup; } //"extern" public Keyword getExternKeyword_0() { return cExternKeyword_0; } + //(functional?="functional"? & error?="error"?) + public UnorderedGroup getUnorderedGroup_1() { return cUnorderedGroup_1; } + + //functional?="functional"? + public Assignment getFunctionalAssignment_1_0() { return cFunctionalAssignment_1_0; } + + //"functional" + public Keyword getFunctionalFunctionalKeyword_1_0_0() { return cFunctionalFunctionalKeyword_1_0_0; } + + //error?="error"? + public Assignment getErrorAssignment_1_1() { return cErrorAssignment_1_1; } + + //"error" + public Keyword getErrorErrorKeyword_1_1_0() { return cErrorErrorKeyword_1_1_0; } + //name=QualifiedName - public Assignment getNameAssignment_1() { return cNameAssignment_1; } + public Assignment getNameAssignment_2() { return cNameAssignment_2; } //QualifiedName - public RuleCall getNameQualifiedNameParserRuleCall_1_0() { return cNameQualifiedNameParserRuleCall_1_0; } + public RuleCall getNameQualifiedNameParserRuleCall_2_0() { return cNameQualifiedNameParserRuleCall_2_0; } //argumentList=ArgumentList - public Assignment getArgumentListAssignment_2() { return cArgumentListAssignment_2; } + public Assignment getArgumentListAssignment_3() { return cArgumentListAssignment_3; } //ArgumentList - public RuleCall getArgumentListArgumentListParserRuleCall_2_0() { return cArgumentListArgumentListParserRuleCall_2_0; } + public RuleCall getArgumentListArgumentListParserRuleCall_3_0() { return cArgumentListArgumentListParserRuleCall_3_0; } + + //FULL_STOP + public RuleCall getFULL_STOPTerminalRuleCall_4() { return cFULL_STOPTerminalRuleCall_4; } } - public class ExternMetricDefinitionElements extends AbstractParserRuleElementFinder { - private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.ExternMetricDefinition"); + public class ExternFunctionDeclarationElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.ExternFunctionDeclaration"); private final Group cGroup = (Group)rule.eContents().get(1); private final Keyword cExternKeyword_0 = (Keyword)cGroup.eContents().get(0); - private final Assignment cTypeAssignment_1 = (Assignment)cGroup.eContents().get(1); - private final CrossReference cTypeNamedElementCrossReference_1_0 = (CrossReference)cTypeAssignment_1.eContents().get(0); - private final RuleCall cTypeNamedElementQualifiedNameParserRuleCall_1_0_1 = (RuleCall)cTypeNamedElementCrossReference_1_0.eContents().get(1); + private final Assignment cResultTypeAssignment_1 = (Assignment)cGroup.eContents().get(1); + private final CrossReference cResultTypeSymbolCrossReference_1_0 = (CrossReference)cResultTypeAssignment_1.eContents().get(0); + private final RuleCall cResultTypeSymbolQualifiedNameParserRuleCall_1_0_1 = (RuleCall)cResultTypeSymbolCrossReference_1_0.eContents().get(1); private final Assignment cNameAssignment_2 = (Assignment)cGroup.eContents().get(2); private final RuleCall cNameQualifiedNameParserRuleCall_2_0 = (RuleCall)cNameAssignment_2.eContents().get(0); private final Assignment cArgumentListAssignment_3 = (Assignment)cGroup.eContents().get(3); private final RuleCall cArgumentListArgumentListParserRuleCall_3_0 = (RuleCall)cArgumentListAssignment_3.eContents().get(0); + private final RuleCall cFULL_STOPTerminalRuleCall_4 = (RuleCall)cGroup.eContents().get(4); - //ExternMetricDefinition: - // "extern" type=[NamedElement|QualifiedName] name=QualifiedName argumentList=ArgumentList; + //ExternFunctionDeclaration: + // "extern" resultType=[Symbol|QualifiedName] name=QualifiedName argumentList=ArgumentList FULL_STOP; @Override public ParserRule getRule() { return rule; } - //"extern" type=[NamedElement|QualifiedName] name=QualifiedName argumentList=ArgumentList + //"extern" resultType=[Symbol|QualifiedName] name=QualifiedName argumentList=ArgumentList FULL_STOP public Group getGroup() { return cGroup; } //"extern" public Keyword getExternKeyword_0() { return cExternKeyword_0; } - //type=[NamedElement|QualifiedName] - public Assignment getTypeAssignment_1() { return cTypeAssignment_1; } + //resultType=[Symbol|QualifiedName] + public Assignment getResultTypeAssignment_1() { return cResultTypeAssignment_1; } - //[NamedElement|QualifiedName] - public CrossReference getTypeNamedElementCrossReference_1_0() { return cTypeNamedElementCrossReference_1_0; } + //[Symbol|QualifiedName] + public CrossReference getResultTypeSymbolCrossReference_1_0() { return cResultTypeSymbolCrossReference_1_0; } //QualifiedName - public RuleCall getTypeNamedElementQualifiedNameParserRuleCall_1_0_1() { return cTypeNamedElementQualifiedNameParserRuleCall_1_0_1; } + public RuleCall getResultTypeSymbolQualifiedNameParserRuleCall_1_0_1() { return cResultTypeSymbolQualifiedNameParserRuleCall_1_0_1; } //name=QualifiedName public Assignment getNameAssignment_2() { return cNameAssignment_2; } @@ -458,41 +732,47 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder { //ArgumentList public RuleCall getArgumentListArgumentListParserRuleCall_3_0() { return cArgumentListArgumentListParserRuleCall_3_0; } + + //FULL_STOP + public RuleCall getFULL_STOPTerminalRuleCall_4() { return cFULL_STOPTerminalRuleCall_4; } } - public class ExternAggregatorDefinitionElements extends AbstractParserRuleElementFinder { - private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.ExternAggregatorDefinition"); + public class ExternAggregationOperatorDeclarationElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.ExternAggregationOperatorDeclaration"); private final Group cGroup = (Group)rule.eContents().get(1); private final Keyword cExternKeyword_0 = (Keyword)cGroup.eContents().get(0); - private final Assignment cTypeAssignment_1 = (Assignment)cGroup.eContents().get(1); - private final CrossReference cTypeNamedElementCrossReference_1_0 = (CrossReference)cTypeAssignment_1.eContents().get(0); - private final RuleCall cTypeNamedElementQualifiedNameParserRuleCall_1_0_1 = (RuleCall)cTypeNamedElementCrossReference_1_0.eContents().get(1); + private final Assignment cResultTypeAssignment_1 = (Assignment)cGroup.eContents().get(1); + private final CrossReference cResultTypeSymbolCrossReference_1_0 = (CrossReference)cResultTypeAssignment_1.eContents().get(0); + private final RuleCall cResultTypeSymbolQualifiedNameParserRuleCall_1_0_1 = (RuleCall)cResultTypeSymbolCrossReference_1_0.eContents().get(1); private final Assignment cNameAssignment_2 = (Assignment)cGroup.eContents().get(2); private final RuleCall cNameQualifiedNameParserRuleCall_2_0 = (RuleCall)cNameAssignment_2.eContents().get(0); private final Keyword cLeftCurlyBracketKeyword_3 = (Keyword)cGroup.eContents().get(3); - private final Assignment cInputTypeAssignment_4 = (Assignment)cGroup.eContents().get(4); - private final CrossReference cInputTypeNamedElementCrossReference_4_0 = (CrossReference)cInputTypeAssignment_4.eContents().get(0); - private final RuleCall cInputTypeNamedElementQualifiedNameParserRuleCall_4_0_1 = (RuleCall)cInputTypeNamedElementCrossReference_4_0.eContents().get(1); + private final Assignment cArgumentTypeAssignment_4 = (Assignment)cGroup.eContents().get(4); + private final CrossReference cArgumentTypeSymbolCrossReference_4_0 = (CrossReference)cArgumentTypeAssignment_4.eContents().get(0); + private final RuleCall cArgumentTypeSymbolQualifiedNameParserRuleCall_4_0_1 = (RuleCall)cArgumentTypeSymbolCrossReference_4_0.eContents().get(1); private final Keyword cFullStopFullStopFullStopKeyword_5 = (Keyword)cGroup.eContents().get(5); private final Keyword cRightCurlyBracketKeyword_6 = (Keyword)cGroup.eContents().get(6); + private final RuleCall cFULL_STOPTerminalRuleCall_7 = (RuleCall)cGroup.eContents().get(7); - //ExternAggregatorDefinition: - // "extern" type=[NamedElement|QualifiedName] name=QualifiedName "{" inputType=[NamedElement|QualifiedName] "..." "}"; + //ExternAggregationOperatorDeclaration: + // "extern" resultType=[Symbol|QualifiedName] name=QualifiedName "{" argumentType=[Symbol|QualifiedName] "..." "}" + // FULL_STOP; @Override public ParserRule getRule() { return rule; } - //"extern" type=[NamedElement|QualifiedName] name=QualifiedName "{" inputType=[NamedElement|QualifiedName] "..." "}" + //"extern" resultType=[Symbol|QualifiedName] name=QualifiedName "{" argumentType=[Symbol|QualifiedName] "..." "}" + //FULL_STOP public Group getGroup() { return cGroup; } //"extern" public Keyword getExternKeyword_0() { return cExternKeyword_0; } - //type=[NamedElement|QualifiedName] - public Assignment getTypeAssignment_1() { return cTypeAssignment_1; } + //resultType=[Symbol|QualifiedName] + public Assignment getResultTypeAssignment_1() { return cResultTypeAssignment_1; } - //[NamedElement|QualifiedName] - public CrossReference getTypeNamedElementCrossReference_1_0() { return cTypeNamedElementCrossReference_1_0; } + //[Symbol|QualifiedName] + public CrossReference getResultTypeSymbolCrossReference_1_0() { return cResultTypeSymbolCrossReference_1_0; } //QualifiedName - public RuleCall getTypeNamedElementQualifiedNameParserRuleCall_1_0_1() { return cTypeNamedElementQualifiedNameParserRuleCall_1_0_1; } + public RuleCall getResultTypeSymbolQualifiedNameParserRuleCall_1_0_1() { return cResultTypeSymbolQualifiedNameParserRuleCall_1_0_1; } //name=QualifiedName public Assignment getNameAssignment_2() { return cNameAssignment_2; } @@ -503,46 +783,38 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder { //"{" public Keyword getLeftCurlyBracketKeyword_3() { return cLeftCurlyBracketKeyword_3; } - //inputType=[NamedElement|QualifiedName] - public Assignment getInputTypeAssignment_4() { return cInputTypeAssignment_4; } + //argumentType=[Symbol|QualifiedName] + public Assignment getArgumentTypeAssignment_4() { return cArgumentTypeAssignment_4; } - //[NamedElement|QualifiedName] - public CrossReference getInputTypeNamedElementCrossReference_4_0() { return cInputTypeNamedElementCrossReference_4_0; } + //[Symbol|QualifiedName] + public CrossReference getArgumentTypeSymbolCrossReference_4_0() { return cArgumentTypeSymbolCrossReference_4_0; } //QualifiedName - public RuleCall getInputTypeNamedElementQualifiedNameParserRuleCall_4_0_1() { return cInputTypeNamedElementQualifiedNameParserRuleCall_4_0_1; } + public RuleCall getArgumentTypeSymbolQualifiedNameParserRuleCall_4_0_1() { return cArgumentTypeSymbolQualifiedNameParserRuleCall_4_0_1; } //"..." public Keyword getFullStopFullStopFullStopKeyword_5() { return cFullStopFullStopFullStopKeyword_5; } //"}" public Keyword getRightCurlyBracketKeyword_6() { return cRightCurlyBracketKeyword_6; } + + //FULL_STOP + public RuleCall getFULL_STOPTerminalRuleCall_7() { return cFULL_STOPTerminalRuleCall_7; } } - public class ExternDatatypeDefinitionElements extends AbstractParserRuleElementFinder { - private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.ExternDatatypeDefinition"); + public class ExternDatatypeDeclarationElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.ExternDatatypeDeclaration"); private final Group cGroup = (Group)rule.eContents().get(1); private final Keyword cExternKeyword_0 = (Keyword)cGroup.eContents().get(0); private final Keyword cDatatypeKeyword_1 = (Keyword)cGroup.eContents().get(1); private final Assignment cNameAssignment_2 = (Assignment)cGroup.eContents().get(2); private final RuleCall cNameQualifiedNameParserRuleCall_2_0 = (RuleCall)cNameAssignment_2.eContents().get(0); - private final Group cGroup_3 = (Group)cGroup.eContents().get(3); - private final Keyword cExtendsKeyword_3_0 = (Keyword)cGroup_3.eContents().get(0); - private final Assignment cSupertypesAssignment_3_1 = (Assignment)cGroup_3.eContents().get(1); - private final CrossReference cSupertypesNamedElementCrossReference_3_1_0 = (CrossReference)cSupertypesAssignment_3_1.eContents().get(0); - private final RuleCall cSupertypesNamedElementQualifiedNameParserRuleCall_3_1_0_1 = (RuleCall)cSupertypesNamedElementCrossReference_3_1_0.eContents().get(1); - private final Group cGroup_3_2 = (Group)cGroup_3.eContents().get(2); - private final Keyword cCommaKeyword_3_2_0 = (Keyword)cGroup_3_2.eContents().get(0); - private final Assignment cSupertypesAssignment_3_2_1 = (Assignment)cGroup_3_2.eContents().get(1); - private final CrossReference cSupertypesNamedElementCrossReference_3_2_1_0 = (CrossReference)cSupertypesAssignment_3_2_1.eContents().get(0); - private final RuleCall cSupertypesNamedElementQualifiedNameParserRuleCall_3_2_1_0_1 = (RuleCall)cSupertypesNamedElementCrossReference_3_2_1_0.eContents().get(1); + private final RuleCall cFULL_STOPTerminalRuleCall_3 = (RuleCall)cGroup.eContents().get(3); - //ExternDatatypeDefinition: - // "extern" "datatype" name=QualifiedName ("extends" supertypes+=[NamedElement|QualifiedName] ("," - // supertypes+=[NamedElement|QualifiedName])*); + //ExternDatatypeDeclaration: + // "extern" "datatype" name=QualifiedName FULL_STOP; @Override public ParserRule getRule() { return rule; } - //"extern" "datatype" name=QualifiedName ("extends" supertypes+=[NamedElement|QualifiedName] ("," - //supertypes+=[NamedElement|QualifiedName])*) + //"extern" "datatype" name=QualifiedName FULL_STOP public Group getGroup() { return cGroup; } //"extern" @@ -557,96 +829,64 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder { //QualifiedName public RuleCall getNameQualifiedNameParserRuleCall_2_0() { return cNameQualifiedNameParserRuleCall_2_0; } - //("extends" supertypes+=[NamedElement|QualifiedName] ("," supertypes+=[NamedElement|QualifiedName])*) - public Group getGroup_3() { return cGroup_3; } - - //"extends" - public Keyword getExtendsKeyword_3_0() { return cExtendsKeyword_3_0; } - - //supertypes+=[NamedElement|QualifiedName] - public Assignment getSupertypesAssignment_3_1() { return cSupertypesAssignment_3_1; } - - //[NamedElement|QualifiedName] - public CrossReference getSupertypesNamedElementCrossReference_3_1_0() { return cSupertypesNamedElementCrossReference_3_1_0; } - - //QualifiedName - public RuleCall getSupertypesNamedElementQualifiedNameParserRuleCall_3_1_0_1() { return cSupertypesNamedElementQualifiedNameParserRuleCall_3_1_0_1; } - - //("," supertypes+=[NamedElement|QualifiedName])* - public Group getGroup_3_2() { return cGroup_3_2; } - - //"," - public Keyword getCommaKeyword_3_2_0() { return cCommaKeyword_3_2_0; } - - //supertypes+=[NamedElement|QualifiedName] - public Assignment getSupertypesAssignment_3_2_1() { return cSupertypesAssignment_3_2_1; } - - //[NamedElement|QualifiedName] - public CrossReference getSupertypesNamedElementCrossReference_3_2_1_0() { return cSupertypesNamedElementCrossReference_3_2_1_0; } - - //QualifiedName - public RuleCall getSupertypesNamedElementQualifiedNameParserRuleCall_3_2_1_0_1() { return cSupertypesNamedElementQualifiedNameParserRuleCall_3_2_1_0_1; } + //FULL_STOP + public RuleCall getFULL_STOPTerminalRuleCall_3() { return cFULL_STOPTerminalRuleCall_3; } } - public class VariableElements extends AbstractParserRuleElementFinder { - private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.Variable"); - private final Group cGroup = (Group)rule.eContents().get(1); - private final Assignment cTypeAssignment_0 = (Assignment)cGroup.eContents().get(0); - private final CrossReference cTypeNamedElementCrossReference_0_0 = (CrossReference)cTypeAssignment_0.eContents().get(0); - private final RuleCall cTypeNamedElementQualifiedNameParserRuleCall_0_0_1 = (RuleCall)cTypeNamedElementCrossReference_0_0.eContents().get(1); - private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1); - private final RuleCall cNameIDTerminalRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0); + public class ExpressionElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.Expression"); + private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); + private final RuleCall cConditionalExpressionParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0); + private final RuleCall cLetExpressionParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1); + private final Group cGroup_2 = (Group)cAlternatives.eContents().get(2); + private final RuleCall cDisjunctiveExpressionParserRuleCall_2_0 = (RuleCall)cGroup_2.eContents().get(0); + private final Group cGroup_2_1 = (Group)cGroup_2.eContents().get(1); + private final Action cForallConditionAction_2_1_0 = (Action)cGroup_2_1.eContents().get(0); + private final Keyword cEqualsSignGreaterThanSignKeyword_2_1_1 = (Keyword)cGroup_2_1.eContents().get(1); + private final Assignment cBodyAssignment_2_1_2 = (Assignment)cGroup_2_1.eContents().get(2); + private final RuleCall cBodyDisjunctiveExpressionParserRuleCall_2_1_2_0 = (RuleCall)cBodyAssignment_2_1_2.eContents().get(0); - //Variable: - // type=[NamedElement|QualifiedName]? name=ID; + //Expression: + // ConditionalExpression | LetExpression | DisjunctiveExpression ({Forall.condition=current} "=>" + // body=DisjunctiveExpression)?; @Override public ParserRule getRule() { return rule; } - //type=[NamedElement|QualifiedName]? name=ID - public Group getGroup() { return cGroup; } - - //type=[NamedElement|QualifiedName]? - public Assignment getTypeAssignment_0() { return cTypeAssignment_0; } + //ConditionalExpression | LetExpression | DisjunctiveExpression ({Forall.condition=current} "=>" + //body=DisjunctiveExpression)? + public Alternatives getAlternatives() { return cAlternatives; } - //[NamedElement|QualifiedName] - public CrossReference getTypeNamedElementCrossReference_0_0() { return cTypeNamedElementCrossReference_0_0; } + //ConditionalExpression + public RuleCall getConditionalExpressionParserRuleCall_0() { return cConditionalExpressionParserRuleCall_0; } - //QualifiedName - public RuleCall getTypeNamedElementQualifiedNameParserRuleCall_0_0_1() { return cTypeNamedElementQualifiedNameParserRuleCall_0_0_1; } + //LetExpression + public RuleCall getLetExpressionParserRuleCall_1() { return cLetExpressionParserRuleCall_1; } - //name=ID - public Assignment getNameAssignment_1() { return cNameAssignment_1; } + //DisjunctiveExpression ({Forall.condition=current} "=>" body=DisjunctiveExpression)? + public Group getGroup_2() { return cGroup_2; } - //ID - public RuleCall getNameIDTerminalRuleCall_1_0() { return cNameIDTerminalRuleCall_1_0; } - } - public class ExpressionElements extends AbstractParserRuleElementFinder { - private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.Expression"); - private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); - private final RuleCall cIfElseParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0); - private final RuleCall cLetParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1); - private final RuleCall cImplicationExpressionParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2); + //DisjunctiveExpression + public RuleCall getDisjunctiveExpressionParserRuleCall_2_0() { return cDisjunctiveExpressionParserRuleCall_2_0; } - //Expression: - // IfElse | Let | ImplicationExpression; - @Override public ParserRule getRule() { return rule; } + //({Forall.condition=current} "=>" body=DisjunctiveExpression)? + public Group getGroup_2_1() { return cGroup_2_1; } - //IfElse | Let | ImplicationExpression - public Alternatives getAlternatives() { return cAlternatives; } + //{Forall.condition=current} + public Action getForallConditionAction_2_1_0() { return cForallConditionAction_2_1_0; } - //IfElse - public RuleCall getIfElseParserRuleCall_0() { return cIfElseParserRuleCall_0; } + //"=>" + public Keyword getEqualsSignGreaterThanSignKeyword_2_1_1() { return cEqualsSignGreaterThanSignKeyword_2_1_1; } - //Let - public RuleCall getLetParserRuleCall_1() { return cLetParserRuleCall_1; } + //body=DisjunctiveExpression + public Assignment getBodyAssignment_2_1_2() { return cBodyAssignment_2_1_2; } - //ImplicationExpression - public RuleCall getImplicationExpressionParserRuleCall_2() { return cImplicationExpressionParserRuleCall_2; } + //DisjunctiveExpression + public RuleCall getBodyDisjunctiveExpressionParserRuleCall_2_1_2_0() { return cBodyDisjunctiveExpressionParserRuleCall_2_1_2_0; } } - public class IfElseElements extends AbstractParserRuleElementFinder { - private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.IfElse"); + public class ConditionalExpressionElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.ConditionalExpression"); private final Group cGroup = (Group)rule.eContents().get(1); private final Keyword cIfKeyword_0 = (Keyword)cGroup.eContents().get(0); private final Assignment cConditionAssignment_1 = (Assignment)cGroup.eContents().get(1); - private final RuleCall cConditionExpressionParserRuleCall_1_0 = (RuleCall)cConditionAssignment_1.eContents().get(0); + private final RuleCall cConditionDisjunctiveExpressionParserRuleCall_1_0 = (RuleCall)cConditionAssignment_1.eContents().get(0); private final Keyword cThenKeyword_2 = (Keyword)cGroup.eContents().get(2); private final Assignment cThenAssignment_3 = (Assignment)cGroup.eContents().get(3); private final RuleCall cThenExpressionParserRuleCall_3_0 = (RuleCall)cThenAssignment_3.eContents().get(0); @@ -654,21 +894,21 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder { private final Assignment cElseAssignment_5 = (Assignment)cGroup.eContents().get(5); private final RuleCall cElseExpressionParserRuleCall_5_0 = (RuleCall)cElseAssignment_5.eContents().get(0); - //IfElse: - // "if" condition=Expression "then" then=Expression "else" else=Expression; + //ConditionalExpression: + // "if" condition=DisjunctiveExpression "then" then=Expression "else" else=Expression; @Override public ParserRule getRule() { return rule; } - //"if" condition=Expression "then" then=Expression "else" else=Expression + //"if" condition=DisjunctiveExpression "then" then=Expression "else" else=Expression public Group getGroup() { return cGroup; } //"if" public Keyword getIfKeyword_0() { return cIfKeyword_0; } - //condition=Expression + //condition=DisjunctiveExpression public Assignment getConditionAssignment_1() { return cConditionAssignment_1; } - //Expression - public RuleCall getConditionExpressionParserRuleCall_1_0() { return cConditionExpressionParserRuleCall_1_0; } + //DisjunctiveExpression + public RuleCall getConditionDisjunctiveExpressionParserRuleCall_1_0() { return cConditionDisjunctiveExpressionParserRuleCall_1_0; } //"then" public Keyword getThenKeyword_2() { return cThenKeyword_2; } @@ -688,8 +928,8 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder { //Expression public RuleCall getElseExpressionParserRuleCall_5_0() { return cElseExpressionParserRuleCall_5_0; } } - public class LetElements extends AbstractParserRuleElementFinder { - private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.Let"); + public class LetExpressionElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.LetExpression"); private final Group cGroup = (Group)rule.eContents().get(1); private final Keyword cLetKeyword_0 = (Keyword)cGroup.eContents().get(0); private final Assignment cBindingsAssignment_1 = (Assignment)cGroup.eContents().get(1); @@ -702,7 +942,7 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder { private final Assignment cBodyAssignment_4 = (Assignment)cGroup.eContents().get(4); private final RuleCall cBodyExpressionParserRuleCall_4_0 = (RuleCall)cBodyAssignment_4.eContents().get(0); - //Let: + //LetExpression: // "let" bindings+=LetBinding ("," bindings+=LetBinding)* "in" body=Expression; @Override public ParserRule getRule() { return rule; } @@ -742,72 +982,45 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder { public class LetBindingElements extends AbstractParserRuleElementFinder { private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.LetBinding"); private final Group cGroup = (Group)rule.eContents().get(1); - private final Assignment cVariableAssignment_0 = (Assignment)cGroup.eContents().get(0); - private final RuleCall cVariableVariableParserRuleCall_0_0 = (RuleCall)cVariableAssignment_0.eContents().get(0); - private final Keyword cEqualsSignKeyword_1 = (Keyword)cGroup.eContents().get(1); - private final Assignment cValueAssignment_2 = (Assignment)cGroup.eContents().get(2); - private final RuleCall cValueAdditiveExpressionParserRuleCall_2_0 = (RuleCall)cValueAssignment_2.eContents().get(0); + private final Assignment cTypeAssignment_0 = (Assignment)cGroup.eContents().get(0); + private final CrossReference cTypeSymbolCrossReference_0_0 = (CrossReference)cTypeAssignment_0.eContents().get(0); + private final RuleCall cTypeSymbolQualifiedNameParserRuleCall_0_0_1 = (RuleCall)cTypeSymbolCrossReference_0_0.eContents().get(1); + private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1); + private final RuleCall cNameIDTerminalRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0); + private final Keyword cEqualsSignKeyword_2 = (Keyword)cGroup.eContents().get(2); + private final Assignment cValueAssignment_3 = (Assignment)cGroup.eContents().get(3); + private final RuleCall cValueAdditiveExpressionParserRuleCall_3_0 = (RuleCall)cValueAssignment_3.eContents().get(0); //LetBinding: - // variable=Variable "=" value=AdditiveExpression; + // type=[Symbol|QualifiedName]? name=ID "=" value=AdditiveExpression; @Override public ParserRule getRule() { return rule; } - //variable=Variable "=" value=AdditiveExpression + //type=[Symbol|QualifiedName]? name=ID "=" value=AdditiveExpression public Group getGroup() { return cGroup; } - //variable=Variable - public Assignment getVariableAssignment_0() { return cVariableAssignment_0; } - - //Variable - public RuleCall getVariableVariableParserRuleCall_0_0() { return cVariableVariableParserRuleCall_0_0; } - - //"=" - public Keyword getEqualsSignKeyword_1() { return cEqualsSignKeyword_1; } - - //value=AdditiveExpression - public Assignment getValueAssignment_2() { return cValueAssignment_2; } - - //AdditiveExpression - public RuleCall getValueAdditiveExpressionParserRuleCall_2_0() { return cValueAdditiveExpressionParserRuleCall_2_0; } - } - public class ImplicationExpressionElements extends AbstractParserRuleElementFinder { - private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.ImplicationExpression"); - private final Group cGroup = (Group)rule.eContents().get(1); - private final RuleCall cDisjunctiveExpressionParserRuleCall_0 = (RuleCall)cGroup.eContents().get(0); - private final Group cGroup_1 = (Group)cGroup.eContents().get(1); - private final Action cBinaryExpressionLeftAction_1_0 = (Action)cGroup_1.eContents().get(0); - private final Assignment cOpAssignment_1_1 = (Assignment)cGroup_1.eContents().get(1); - private final RuleCall cOpImplicationOperatorEnumRuleCall_1_1_0 = (RuleCall)cOpAssignment_1_1.eContents().get(0); - private final Assignment cRightAssignment_1_2 = (Assignment)cGroup_1.eContents().get(2); - private final RuleCall cRightImplicationExpressionParserRuleCall_1_2_0 = (RuleCall)cRightAssignment_1_2.eContents().get(0); - - //ImplicationExpression Expression: - // DisjunctiveExpression ({BinaryExpression.left=current} op=ImplicationOperator right=ImplicationExpression)?; - @Override public ParserRule getRule() { return rule; } - - //DisjunctiveExpression ({BinaryExpression.left=current} op=ImplicationOperator right=ImplicationExpression)? - public Group getGroup() { return cGroup; } + //type=[Symbol|QualifiedName]? + public Assignment getTypeAssignment_0() { return cTypeAssignment_0; } - //DisjunctiveExpression - public RuleCall getDisjunctiveExpressionParserRuleCall_0() { return cDisjunctiveExpressionParserRuleCall_0; } + //[Symbol|QualifiedName] + public CrossReference getTypeSymbolCrossReference_0_0() { return cTypeSymbolCrossReference_0_0; } - //({BinaryExpression.left=current} op=ImplicationOperator right=ImplicationExpression)? - public Group getGroup_1() { return cGroup_1; } + //QualifiedName + public RuleCall getTypeSymbolQualifiedNameParserRuleCall_0_0_1() { return cTypeSymbolQualifiedNameParserRuleCall_0_0_1; } - //{BinaryExpression.left=current} - public Action getBinaryExpressionLeftAction_1_0() { return cBinaryExpressionLeftAction_1_0; } + //name=ID + public Assignment getNameAssignment_1() { return cNameAssignment_1; } - //op=ImplicationOperator - public Assignment getOpAssignment_1_1() { return cOpAssignment_1_1; } + //ID + public RuleCall getNameIDTerminalRuleCall_1_0() { return cNameIDTerminalRuleCall_1_0; } - //ImplicationOperator - public RuleCall getOpImplicationOperatorEnumRuleCall_1_1_0() { return cOpImplicationOperatorEnumRuleCall_1_1_0; } + //"=" + public Keyword getEqualsSignKeyword_2() { return cEqualsSignKeyword_2; } - //right=ImplicationExpression - public Assignment getRightAssignment_1_2() { return cRightAssignment_1_2; } + //value=AdditiveExpression + public Assignment getValueAssignment_3() { return cValueAssignment_3; } - //ImplicationExpression - public RuleCall getRightImplicationExpressionParserRuleCall_1_2_0() { return cRightImplicationExpressionParserRuleCall_1_2_0; } + //AdditiveExpression + public RuleCall getValueAdditiveExpressionParserRuleCall_3_0() { return cValueAdditiveExpressionParserRuleCall_3_0; } } public class DisjunctiveExpressionElements extends AbstractParserRuleElementFinder { private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.DisjunctiveExpression"); @@ -970,27 +1183,27 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder { private final Group cGroup = (Group)rule.eContents().get(1); private final RuleCall cAdditiveExpressionParserRuleCall_0 = (RuleCall)cGroup.eContents().get(0); private final Group cGroup_1 = (Group)cGroup.eContents().get(1); - private final Action cComparisonLeftAction_1_0 = (Action)cGroup_1.eContents().get(0); + private final Action cBinaryExpressionLeftAction_1_0 = (Action)cGroup_1.eContents().get(0); private final Assignment cOpAssignment_1_1 = (Assignment)cGroup_1.eContents().get(1); private final RuleCall cOpComparisonOperatorEnumRuleCall_1_1_0 = (RuleCall)cOpAssignment_1_1.eContents().get(0); private final Assignment cRightAssignment_1_2 = (Assignment)cGroup_1.eContents().get(2); private final RuleCall cRightAdditiveExpressionParserRuleCall_1_2_0 = (RuleCall)cRightAssignment_1_2.eContents().get(0); //ComparisonExpression Expression: - // AdditiveExpression ({Comparison.left=current} op=ComparisonOperator right=AdditiveExpression)?; + // AdditiveExpression ({BinaryExpression.left=current} op=ComparisonOperator right=AdditiveExpression)?; @Override public ParserRule getRule() { return rule; } - //AdditiveExpression ({Comparison.left=current} op=ComparisonOperator right=AdditiveExpression)? + //AdditiveExpression ({BinaryExpression.left=current} op=ComparisonOperator right=AdditiveExpression)? public Group getGroup() { return cGroup; } //AdditiveExpression public RuleCall getAdditiveExpressionParserRuleCall_0() { return cAdditiveExpressionParserRuleCall_0; } - //({Comparison.left=current} op=ComparisonOperator right=AdditiveExpression)? + //({BinaryExpression.left=current} op=ComparisonOperator right=AdditiveExpression)? public Group getGroup_1() { return cGroup_1; } - //{Comparison.left=current} - public Action getComparisonLeftAction_1_0() { return cComparisonLeftAction_1_0; } + //{BinaryExpression.left=current} + public Action getBinaryExpressionLeftAction_1_0() { return cBinaryExpressionLeftAction_1_0; } //op=ComparisonOperator public Assignment getOpAssignment_1_1() { return cOpAssignment_1_1; } @@ -1128,21 +1341,21 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder { private final Group cGroup_1 = (Group)cGroup.eContents().get(1); private final Action cCastExpressionBodyAction_1_0 = (Action)cGroup_1.eContents().get(0); private final Keyword cAsKeyword_1_1 = (Keyword)cGroup_1.eContents().get(1); - private final Assignment cTypeAssignment_1_2 = (Assignment)cGroup_1.eContents().get(2); - private final CrossReference cTypeNamedElementCrossReference_1_2_0 = (CrossReference)cTypeAssignment_1_2.eContents().get(0); - private final RuleCall cTypeNamedElementQualifiedNameParserRuleCall_1_2_0_1 = (RuleCall)cTypeNamedElementCrossReference_1_2_0.eContents().get(1); + private final Assignment cTargetTypeAssignment_1_2 = (Assignment)cGroup_1.eContents().get(2); + private final CrossReference cTargetTypeSymbolCrossReference_1_2_0 = (CrossReference)cTargetTypeAssignment_1_2.eContents().get(0); + private final RuleCall cTargetTypeSymbolQualifiedNameParserRuleCall_1_2_0_1 = (RuleCall)cTargetTypeSymbolCrossReference_1_2_0.eContents().get(1); //CastExpression Expression: - // UnaryExpression ({CastExpression.body=current} "as" type=[NamedElement|QualifiedName])?; + // UnaryExpression ({CastExpression.body=current} "as" targetType=[Symbol|QualifiedName])?; @Override public ParserRule getRule() { return rule; } - //UnaryExpression ({CastExpression.body=current} "as" type=[NamedElement|QualifiedName])? + //UnaryExpression ({CastExpression.body=current} "as" targetType=[Symbol|QualifiedName])? public Group getGroup() { return cGroup; } //UnaryExpression public RuleCall getUnaryExpressionParserRuleCall_0() { return cUnaryExpressionParserRuleCall_0; } - //({CastExpression.body=current} "as" type=[NamedElement|QualifiedName])? + //({CastExpression.body=current} "as" targetType=[Symbol|QualifiedName])? public Group getGroup_1() { return cGroup_1; } //{CastExpression.body=current} @@ -1151,233 +1364,158 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder { //"as" public Keyword getAsKeyword_1_1() { return cAsKeyword_1_1; } - //type=[NamedElement|QualifiedName] - public Assignment getTypeAssignment_1_2() { return cTypeAssignment_1_2; } + //targetType=[Symbol|QualifiedName] + public Assignment getTargetTypeAssignment_1_2() { return cTargetTypeAssignment_1_2; } - //[NamedElement|QualifiedName] - public CrossReference getTypeNamedElementCrossReference_1_2_0() { return cTypeNamedElementCrossReference_1_2_0; } + //[Symbol|QualifiedName] + public CrossReference getTargetTypeSymbolCrossReference_1_2_0() { return cTargetTypeSymbolCrossReference_1_2_0; } //QualifiedName - public RuleCall getTypeNamedElementQualifiedNameParserRuleCall_1_2_0_1() { return cTypeNamedElementQualifiedNameParserRuleCall_1_2_0_1; } + public RuleCall getTargetTypeSymbolQualifiedNameParserRuleCall_1_2_0_1() { return cTargetTypeSymbolQualifiedNameParserRuleCall_1_2_0_1; } } public class UnaryExpressionElements extends AbstractParserRuleElementFinder { private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.UnaryExpression"); private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); - private final RuleCall cAggregationExpressionParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0); + private final RuleCall cBracedAggregateExpressionParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0); private final Group cGroup_1 = (Group)cAlternatives.eContents().get(1); private final Action cUnaryExpressionAction_1_0 = (Action)cGroup_1.eContents().get(0); private final Assignment cOpAssignment_1_1 = (Assignment)cGroup_1.eContents().get(1); - private final RuleCall cOpUnaryOpEnumRuleCall_1_1_0 = (RuleCall)cOpAssignment_1_1.eContents().get(0); + private final RuleCall cOpUnaryOperatorEnumRuleCall_1_1_0 = (RuleCall)cOpAssignment_1_1.eContents().get(0); private final Assignment cBodyAssignment_1_2 = (Assignment)cGroup_1.eContents().get(2); - private final RuleCall cBodyAggregationExpressionParserRuleCall_1_2_0 = (RuleCall)cBodyAssignment_1_2.eContents().get(0); + private final RuleCall cBodyBracedAggregateExpressionParserRuleCall_1_2_0 = (RuleCall)cBodyAssignment_1_2.eContents().get(0); //UnaryExpression Expression: - // AggregationExpression | {UnaryExpression} op=UnaryOp body=AggregationExpression; + // BracedAggregateExpression | {UnaryExpression} op=UnaryOperator body=BracedAggregateExpression; @Override public ParserRule getRule() { return rule; } - //AggregationExpression | {UnaryExpression} op=UnaryOp body=AggregationExpression + //BracedAggregateExpression | {UnaryExpression} op=UnaryOperator body=BracedAggregateExpression public Alternatives getAlternatives() { return cAlternatives; } - //AggregationExpression - public RuleCall getAggregationExpressionParserRuleCall_0() { return cAggregationExpressionParserRuleCall_0; } + //BracedAggregateExpression + public RuleCall getBracedAggregateExpressionParserRuleCall_0() { return cBracedAggregateExpressionParserRuleCall_0; } - //{UnaryExpression} op=UnaryOp body=AggregationExpression + //{UnaryExpression} op=UnaryOperator body=BracedAggregateExpression public Group getGroup_1() { return cGroup_1; } //{UnaryExpression} public Action getUnaryExpressionAction_1_0() { return cUnaryExpressionAction_1_0; } - //op=UnaryOp + //op=UnaryOperator public Assignment getOpAssignment_1_1() { return cOpAssignment_1_1; } - //UnaryOp - public RuleCall getOpUnaryOpEnumRuleCall_1_1_0() { return cOpUnaryOpEnumRuleCall_1_1_0; } + //UnaryOperator + public RuleCall getOpUnaryOperatorEnumRuleCall_1_1_0() { return cOpUnaryOperatorEnumRuleCall_1_1_0; } - //body=AggregationExpression + //body=BracedAggregateExpression public Assignment getBodyAssignment_1_2() { return cBodyAssignment_1_2; } - //AggregationExpression - public RuleCall getBodyAggregationExpressionParserRuleCall_1_2_0() { return cBodyAggregationExpressionParserRuleCall_1_2_0; } + //BracedAggregateExpression + public RuleCall getBodyBracedAggregateExpressionParserRuleCall_1_2_0() { return cBodyBracedAggregateExpressionParserRuleCall_1_2_0; } } - public class AggregationExpressionElements extends AbstractParserRuleElementFinder { - private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.AggregationExpression"); + public class BracedAggregateExpressionElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.BracedAggregateExpression"); private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); private final RuleCall cAtomicExpressionParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0); - private final RuleCall cQuantifiedExpressionParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1); - private final RuleCall cAggregationParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2); + private final RuleCall cAggregationParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1); + private final RuleCall cCountParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2); - //AggregationExpression Expression: - // AtomicExpression | QuantifiedExpression | Aggregation; + //BracedAggregateExpression Expression: + // AtomicExpression | Aggregation | Count; @Override public ParserRule getRule() { return rule; } - //AtomicExpression | QuantifiedExpression | Aggregation + //AtomicExpression | Aggregation | Count public Alternatives getAlternatives() { return cAlternatives; } //AtomicExpression public RuleCall getAtomicExpressionParserRuleCall_0() { return cAtomicExpressionParserRuleCall_0; } - //QuantifiedExpression - public RuleCall getQuantifiedExpressionParserRuleCall_1() { return cQuantifiedExpressionParserRuleCall_1; } - //Aggregation - public RuleCall getAggregationParserRuleCall_2() { return cAggregationParserRuleCall_2; } + public RuleCall getAggregationParserRuleCall_1() { return cAggregationParserRuleCall_1; } + + //Count + public RuleCall getCountParserRuleCall_2() { return cCountParserRuleCall_2; } } - public class LocalVariablesElements extends AbstractParserRuleElementFinder { - private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.LocalVariables"); + public class AggregationElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.Aggregation"); private final Group cGroup = (Group)rule.eContents().get(1); - private final Action cLocalVariablesAction_0 = (Action)cGroup.eContents().get(0); - private final Keyword cLeftSquareBracketKeyword_1 = (Keyword)cGroup.eContents().get(1); - private final Group cGroup_2 = (Group)cGroup.eContents().get(2); - private final Assignment cVariablesAssignment_2_0 = (Assignment)cGroup_2.eContents().get(0); - private final RuleCall cVariablesVariableParserRuleCall_2_0_0 = (RuleCall)cVariablesAssignment_2_0.eContents().get(0); - private final Group cGroup_2_1 = (Group)cGroup_2.eContents().get(1); - private final Keyword cCommaKeyword_2_1_0 = (Keyword)cGroup_2_1.eContents().get(0); - private final Assignment cVariablesAssignment_2_1_1 = (Assignment)cGroup_2_1.eContents().get(1); - private final RuleCall cVariablesVariableParserRuleCall_2_1_1_0 = (RuleCall)cVariablesAssignment_2_1_1.eContents().get(0); - private final Keyword cRightSquareBracketKeyword_3 = (Keyword)cGroup.eContents().get(3); + private final Assignment cOpAssignment_0 = (Assignment)cGroup.eContents().get(0); + private final CrossReference cOpSymbolCrossReference_0_0 = (CrossReference)cOpAssignment_0.eContents().get(0); + private final RuleCall cOpSymbolQualifiedNameParserRuleCall_0_0_1 = (RuleCall)cOpSymbolCrossReference_0_0.eContents().get(1); + private final Keyword cLeftCurlyBracketKeyword_1 = (Keyword)cGroup.eContents().get(1); + private final Assignment cValueAssignment_2 = (Assignment)cGroup.eContents().get(2); + private final RuleCall cValueExpressionParserRuleCall_2_0 = (RuleCall)cValueAssignment_2.eContents().get(0); + private final Keyword cVerticalLineKeyword_3 = (Keyword)cGroup.eContents().get(3); + private final Assignment cConditionAssignment_4 = (Assignment)cGroup.eContents().get(4); + private final RuleCall cConditionExpressionParserRuleCall_4_0 = (RuleCall)cConditionAssignment_4.eContents().get(0); + private final Keyword cRightCurlyBracketKeyword_5 = (Keyword)cGroup.eContents().get(5); - //LocalVariables: - // {LocalVariables} "[" (variables+=Variable ("," variables+=Variable)*)? "]"; + //Aggregation: + // op=[Symbol|QualifiedName] "{" value=Expression "|" condition=Expression "}"; @Override public ParserRule getRule() { return rule; } - //{LocalVariables} "[" (variables+=Variable ("," variables+=Variable)*)? "]" + //op=[Symbol|QualifiedName] "{" value=Expression "|" condition=Expression "}" public Group getGroup() { return cGroup; } - //{LocalVariables} - public Action getLocalVariablesAction_0() { return cLocalVariablesAction_0; } - - //"[" - public Keyword getLeftSquareBracketKeyword_1() { return cLeftSquareBracketKeyword_1; } - - //(variables+=Variable ("," variables+=Variable)*)? - public Group getGroup_2() { return cGroup_2; } - - //variables+=Variable - public Assignment getVariablesAssignment_2_0() { return cVariablesAssignment_2_0; } - - //Variable - public RuleCall getVariablesVariableParserRuleCall_2_0_0() { return cVariablesVariableParserRuleCall_2_0_0; } - - //("," variables+=Variable)* - public Group getGroup_2_1() { return cGroup_2_1; } - - //"," - public Keyword getCommaKeyword_2_1_0() { return cCommaKeyword_2_1_0; } - - //variables+=Variable - public Assignment getVariablesAssignment_2_1_1() { return cVariablesAssignment_2_1_1; } - - //Variable - public RuleCall getVariablesVariableParserRuleCall_2_1_1_0() { return cVariablesVariableParserRuleCall_2_1_1_0; } - - //"]" - public Keyword getRightSquareBracketKeyword_3() { return cRightSquareBracketKeyword_3; } - } - public class QuantifiedExpressionElements extends AbstractParserRuleElementFinder { - private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.QuantifiedExpression"); - private final Group cGroup = (Group)rule.eContents().get(1); - private final Assignment cQuantifierAssignment_0 = (Assignment)cGroup.eContents().get(0); - private final RuleCall cQuantifierQuantifierEnumRuleCall_0_0 = (RuleCall)cQuantifierAssignment_0.eContents().get(0); - private final Assignment cLocalVariablesAssignment_1 = (Assignment)cGroup.eContents().get(1); - private final RuleCall cLocalVariablesLocalVariablesParserRuleCall_1_0 = (RuleCall)cLocalVariablesAssignment_1.eContents().get(0); - private final Keyword cLeftCurlyBracketKeyword_2 = (Keyword)cGroup.eContents().get(2); - private final Assignment cBodyAssignment_3 = (Assignment)cGroup.eContents().get(3); - private final RuleCall cBodyExpressionParserRuleCall_3_0 = (RuleCall)cBodyAssignment_3.eContents().get(0); - private final Keyword cRightCurlyBracketKeyword_4 = (Keyword)cGroup.eContents().get(4); - - //QuantifiedExpression: - // quantifier=Quantifier localVariables=LocalVariables? "{" body=Expression "}"; - @Override public ParserRule getRule() { return rule; } + //op=[Symbol|QualifiedName] + public Assignment getOpAssignment_0() { return cOpAssignment_0; } - //quantifier=Quantifier localVariables=LocalVariables? "{" body=Expression "}" - public Group getGroup() { return cGroup; } + //[Symbol|QualifiedName] + public CrossReference getOpSymbolCrossReference_0_0() { return cOpSymbolCrossReference_0_0; } - //quantifier=Quantifier - public Assignment getQuantifierAssignment_0() { return cQuantifierAssignment_0; } + //QualifiedName + public RuleCall getOpSymbolQualifiedNameParserRuleCall_0_0_1() { return cOpSymbolQualifiedNameParserRuleCall_0_0_1; } - //Quantifier - public RuleCall getQuantifierQuantifierEnumRuleCall_0_0() { return cQuantifierQuantifierEnumRuleCall_0_0; } + //"{" + public Keyword getLeftCurlyBracketKeyword_1() { return cLeftCurlyBracketKeyword_1; } - //localVariables=LocalVariables? - public Assignment getLocalVariablesAssignment_1() { return cLocalVariablesAssignment_1; } + //value=Expression + public Assignment getValueAssignment_2() { return cValueAssignment_2; } - //LocalVariables - public RuleCall getLocalVariablesLocalVariablesParserRuleCall_1_0() { return cLocalVariablesLocalVariablesParserRuleCall_1_0; } + //Expression + public RuleCall getValueExpressionParserRuleCall_2_0() { return cValueExpressionParserRuleCall_2_0; } - //"{" - public Keyword getLeftCurlyBracketKeyword_2() { return cLeftCurlyBracketKeyword_2; } + //"|" + public Keyword getVerticalLineKeyword_3() { return cVerticalLineKeyword_3; } - //body=Expression - public Assignment getBodyAssignment_3() { return cBodyAssignment_3; } + //condition=Expression + public Assignment getConditionAssignment_4() { return cConditionAssignment_4; } //Expression - public RuleCall getBodyExpressionParserRuleCall_3_0() { return cBodyExpressionParserRuleCall_3_0; } + public RuleCall getConditionExpressionParserRuleCall_4_0() { return cConditionExpressionParserRuleCall_4_0; } //"}" - public Keyword getRightCurlyBracketKeyword_4() { return cRightCurlyBracketKeyword_4; } + public Keyword getRightCurlyBracketKeyword_5() { return cRightCurlyBracketKeyword_5; } } - public class AggregationElements extends AbstractParserRuleElementFinder { - private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.Aggregation"); + public class CountElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.Count"); private final Group cGroup = (Group)rule.eContents().get(1); - private final Assignment cOpAssignment_0 = (Assignment)cGroup.eContents().get(0); - private final CrossReference cOpNamedElementCrossReference_0_0 = (CrossReference)cOpAssignment_0.eContents().get(0); - private final RuleCall cOpNamedElementQualifiedNameParserRuleCall_0_0_1 = (RuleCall)cOpNamedElementCrossReference_0_0.eContents().get(1); - private final Assignment cLocalVariablesAssignment_1 = (Assignment)cGroup.eContents().get(1); - private final RuleCall cLocalVariablesLocalVariablesParserRuleCall_1_0 = (RuleCall)cLocalVariablesAssignment_1.eContents().get(0); - private final Keyword cLeftCurlyBracketKeyword_2 = (Keyword)cGroup.eContents().get(2); - private final Assignment cBodyAssignment_3 = (Assignment)cGroup.eContents().get(3); - private final RuleCall cBodyExpressionParserRuleCall_3_0 = (RuleCall)cBodyAssignment_3.eContents().get(0); - private final Group cGroup_4 = (Group)cGroup.eContents().get(4); - private final Keyword cVerticalLineKeyword_4_0 = (Keyword)cGroup_4.eContents().get(0); - private final Assignment cConditionAssignment_4_1 = (Assignment)cGroup_4.eContents().get(1); - private final RuleCall cConditionExpressionParserRuleCall_4_1_0 = (RuleCall)cConditionAssignment_4_1.eContents().get(0); - private final Keyword cRightCurlyBracketKeyword_5 = (Keyword)cGroup.eContents().get(5); - - //Aggregation: - // op=[NamedElement|QualifiedName] localVariables=LocalVariables? "{" body=Expression ("|" condition=Expression)? "}"; + private final Keyword cCountKeyword_0 = (Keyword)cGroup.eContents().get(0); + private final Keyword cLeftCurlyBracketKeyword_1 = (Keyword)cGroup.eContents().get(1); + private final Assignment cConditionAssignment_2 = (Assignment)cGroup.eContents().get(2); + private final RuleCall cConditionExpressionParserRuleCall_2_0 = (RuleCall)cConditionAssignment_2.eContents().get(0); + private final Keyword cRightCurlyBracketKeyword_3 = (Keyword)cGroup.eContents().get(3); + + //Count: + // "count" "{" condition=Expression "}"; @Override public ParserRule getRule() { return rule; } - //op=[NamedElement|QualifiedName] localVariables=LocalVariables? "{" body=Expression ("|" condition=Expression)? "}" + //"count" "{" condition=Expression "}" public Group getGroup() { return cGroup; } - //op=[NamedElement|QualifiedName] - public Assignment getOpAssignment_0() { return cOpAssignment_0; } - - //[NamedElement|QualifiedName] - public CrossReference getOpNamedElementCrossReference_0_0() { return cOpNamedElementCrossReference_0_0; } - - //QualifiedName - public RuleCall getOpNamedElementQualifiedNameParserRuleCall_0_0_1() { return cOpNamedElementQualifiedNameParserRuleCall_0_0_1; } - - //localVariables=LocalVariables? - public Assignment getLocalVariablesAssignment_1() { return cLocalVariablesAssignment_1; } - - //LocalVariables - public RuleCall getLocalVariablesLocalVariablesParserRuleCall_1_0() { return cLocalVariablesLocalVariablesParserRuleCall_1_0; } + //"count" + public Keyword getCountKeyword_0() { return cCountKeyword_0; } //"{" - public Keyword getLeftCurlyBracketKeyword_2() { return cLeftCurlyBracketKeyword_2; } - - //body=Expression - public Assignment getBodyAssignment_3() { return cBodyAssignment_3; } - - //Expression - public RuleCall getBodyExpressionParserRuleCall_3_0() { return cBodyExpressionParserRuleCall_3_0; } - - //("|" condition=Expression)? - public Group getGroup_4() { return cGroup_4; } - - //"|" - public Keyword getVerticalLineKeyword_4_0() { return cVerticalLineKeyword_4_0; } + public Keyword getLeftCurlyBracketKeyword_1() { return cLeftCurlyBracketKeyword_1; } //condition=Expression - public Assignment getConditionAssignment_4_1() { return cConditionAssignment_4_1; } + public Assignment getConditionAssignment_2() { return cConditionAssignment_2; } //Expression - public RuleCall getConditionExpressionParserRuleCall_4_1_0() { return cConditionExpressionParserRuleCall_4_1_0; } + public RuleCall getConditionExpressionParserRuleCall_2_0() { return cConditionExpressionParserRuleCall_2_0; } //"}" - public Keyword getRightCurlyBracketKeyword_5() { return cRightCurlyBracketKeyword_5; } + public Keyword getRightCurlyBracketKeyword_3() { return cRightCurlyBracketKeyword_3; } } public class AtomicExpressionElements extends AbstractParserRuleElementFinder { private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.AtomicExpression"); @@ -1427,21 +1565,14 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder { private final Group cGroup = (Group)rule.eContents().get(1); private final Assignment cFunctorAssignment_0 = (Assignment)cGroup.eContents().get(0); private final RuleCall cFunctorReferenceParserRuleCall_0_0 = (RuleCall)cFunctorAssignment_0.eContents().get(0); - private final Alternatives cAlternatives_1 = (Alternatives)cGroup.eContents().get(1); - private final Assignment cTransitiveClosureAssignment_1_0 = (Assignment)cAlternatives_1.eContents().get(0); - private final RuleCall cTransitiveClosureTRANSITIVE_CLOSURETerminalRuleCall_1_0_0 = (RuleCall)cTransitiveClosureAssignment_1_0.eContents().get(0); - private final Assignment cReflexiveTransitiveClosureAssignment_1_1 = (Assignment)cAlternatives_1.eContents().get(1); - private final RuleCall cReflexiveTransitiveClosureREFLEXIVE_TRANSITIVE_CLOSURETerminalRuleCall_1_1_0 = (RuleCall)cReflexiveTransitiveClosureAssignment_1_1.eContents().get(0); - private final Assignment cArgumentListAssignment_2 = (Assignment)cGroup.eContents().get(2); - private final RuleCall cArgumentListArgumentListParserRuleCall_2_0 = (RuleCall)cArgumentListAssignment_2.eContents().get(0); + private final Assignment cArgumentListAssignment_1 = (Assignment)cGroup.eContents().get(1); + private final RuleCall cArgumentListArgumentListParserRuleCall_1_0 = (RuleCall)cArgumentListAssignment_1.eContents().get(0); //Call: - // functor=Reference (transitiveClosure?=TRANSITIVE_CLOSURE | reflexiveTransitiveClosure?=REFLEXIVE_TRANSITIVE_CLOSURE)? - // argumentList=ArgumentList; + // functor=Reference argumentList=ArgumentList; @Override public ParserRule getRule() { return rule; } - //functor=Reference (transitiveClosure?=TRANSITIVE_CLOSURE | reflexiveTransitiveClosure?=REFLEXIVE_TRANSITIVE_CLOSURE)? - //argumentList=ArgumentList + //functor=Reference argumentList=ArgumentList public Group getGroup() { return cGroup; } //functor=Reference @@ -1450,26 +1581,11 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder { //Reference public RuleCall getFunctorReferenceParserRuleCall_0_0() { return cFunctorReferenceParserRuleCall_0_0; } - //(transitiveClosure?=TRANSITIVE_CLOSURE | reflexiveTransitiveClosure?=REFLEXIVE_TRANSITIVE_CLOSURE)? - public Alternatives getAlternatives_1() { return cAlternatives_1; } - - //transitiveClosure?=TRANSITIVE_CLOSURE - public Assignment getTransitiveClosureAssignment_1_0() { return cTransitiveClosureAssignment_1_0; } - - //TRANSITIVE_CLOSURE - public RuleCall getTransitiveClosureTRANSITIVE_CLOSURETerminalRuleCall_1_0_0() { return cTransitiveClosureTRANSITIVE_CLOSURETerminalRuleCall_1_0_0; } - - //reflexiveTransitiveClosure?=REFLEXIVE_TRANSITIVE_CLOSURE - public Assignment getReflexiveTransitiveClosureAssignment_1_1() { return cReflexiveTransitiveClosureAssignment_1_1; } - - //REFLEXIVE_TRANSITIVE_CLOSURE - public RuleCall getReflexiveTransitiveClosureREFLEXIVE_TRANSITIVE_CLOSURETerminalRuleCall_1_1_0() { return cReflexiveTransitiveClosureREFLEXIVE_TRANSITIVE_CLOSURETerminalRuleCall_1_1_0; } - //argumentList=ArgumentList - public Assignment getArgumentListAssignment_2() { return cArgumentListAssignment_2; } + public Assignment getArgumentListAssignment_1() { return cArgumentListAssignment_1; } //ArgumentList - public RuleCall getArgumentListArgumentListParserRuleCall_2_0() { return cArgumentListArgumentListParserRuleCall_2_0; } + public RuleCall getArgumentListArgumentListParserRuleCall_1_0() { return cArgumentListArgumentListParserRuleCall_1_0; } } public class ArgumentListElements extends AbstractParserRuleElementFinder { private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.ArgumentList"); @@ -1527,14 +1643,14 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder { private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); private final RuleCall cExpressionArgumentParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0); private final RuleCall cStarArgumentParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1); - private final RuleCall cTypedArgumentParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2); + private final RuleCall cTypedVariableArgumentParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2); private final RuleCall cTypedStarArgumentParserRuleCall_3 = (RuleCall)cAlternatives.eContents().get(3); //Argument: - // ExpressionArgument | StarArgument | TypedArgument | TypedStarArgument; + // ExpressionArgument | StarArgument | TypedVariableArgument | TypedStarArgument; @Override public ParserRule getRule() { return rule; } - //ExpressionArgument | StarArgument | TypedArgument | TypedStarArgument + //ExpressionArgument | StarArgument | TypedVariableArgument | TypedStarArgument public Alternatives getAlternatives() { return cAlternatives; } //ExpressionArgument @@ -1543,26 +1659,26 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder { //StarArgument public RuleCall getStarArgumentParserRuleCall_1() { return cStarArgumentParserRuleCall_1; } - //TypedArgument - public RuleCall getTypedArgumentParserRuleCall_2() { return cTypedArgumentParserRuleCall_2; } + //TypedVariableArgument + public RuleCall getTypedVariableArgumentParserRuleCall_2() { return cTypedVariableArgumentParserRuleCall_2; } //TypedStarArgument public RuleCall getTypedStarArgumentParserRuleCall_3() { return cTypedStarArgumentParserRuleCall_3; } } public class ExpressionArgumentElements extends AbstractParserRuleElementFinder { private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.ExpressionArgument"); - private final Assignment cBodyAssignment = (Assignment)rule.eContents().get(1); - private final RuleCall cBodyComparisonExpressionParserRuleCall_0 = (RuleCall)cBodyAssignment.eContents().get(0); + private final Assignment cExpressionAssignment = (Assignment)rule.eContents().get(1); + private final RuleCall cExpressionComparisonExpressionParserRuleCall_0 = (RuleCall)cExpressionAssignment.eContents().get(0); //ExpressionArgument: - // body=ComparisonExpression; + // expression=ComparisonExpression; @Override public ParserRule getRule() { return rule; } - //body=ComparisonExpression - public Assignment getBodyAssignment() { return cBodyAssignment; } + //expression=ComparisonExpression + public Assignment getExpressionAssignment() { return cExpressionAssignment; } //ComparisonExpression - public RuleCall getBodyComparisonExpressionParserRuleCall_0() { return cBodyComparisonExpressionParserRuleCall_0; } + public RuleCall getExpressionComparisonExpressionParserRuleCall_0() { return cExpressionComparisonExpressionParserRuleCall_0; } } public class StarArgumentElements extends AbstractParserRuleElementFinder { private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.StarArgument"); @@ -1583,122 +1699,179 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder { //"*" public Keyword getAsteriskKeyword_1() { return cAsteriskKeyword_1; } } - public class TypedArgumentElements extends AbstractParserRuleElementFinder { - private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.TypedArgument"); + public class TypedVariableArgumentElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.TypedVariableArgument"); private final Group cGroup = (Group)rule.eContents().get(1); - private final Assignment cTypeAssignment_0 = (Assignment)cGroup.eContents().get(0); - private final CrossReference cTypeNamedElementCrossReference_0_0 = (CrossReference)cTypeAssignment_0.eContents().get(0); - private final RuleCall cTypeNamedElementQualifiedNameParserRuleCall_0_0_1 = (RuleCall)cTypeNamedElementCrossReference_0_0.eContents().get(1); - private final Assignment cVariableAssignment_1 = (Assignment)cGroup.eContents().get(1); - private final CrossReference cVariableNamedElementCrossReference_1_0 = (CrossReference)cVariableAssignment_1.eContents().get(0); - private final RuleCall cVariableNamedElementQualifiedNameParserRuleCall_1_0_1 = (RuleCall)cVariableNamedElementCrossReference_1_0.eContents().get(1); + private final Assignment cTypeReferenceAssignment_0 = (Assignment)cGroup.eContents().get(0); + private final RuleCall cTypeReferenceTypeReferenceParserRuleCall_0_0 = (RuleCall)cTypeReferenceAssignment_0.eContents().get(0); + private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1); + private final RuleCall cNameIDTerminalRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0); - //TypedArgument: - // type=[NamedElement|QualifiedName] variable=[NamedElement|QualifiedName]; + //TypedVariableArgument: + // typeReference=TypeReference name=ID; @Override public ParserRule getRule() { return rule; } - //type=[NamedElement|QualifiedName] variable=[NamedElement|QualifiedName] + //typeReference=TypeReference name=ID public Group getGroup() { return cGroup; } - //type=[NamedElement|QualifiedName] - public Assignment getTypeAssignment_0() { return cTypeAssignment_0; } - - //[NamedElement|QualifiedName] - public CrossReference getTypeNamedElementCrossReference_0_0() { return cTypeNamedElementCrossReference_0_0; } - - //QualifiedName - public RuleCall getTypeNamedElementQualifiedNameParserRuleCall_0_0_1() { return cTypeNamedElementQualifiedNameParserRuleCall_0_0_1; } + //typeReference=TypeReference + public Assignment getTypeReferenceAssignment_0() { return cTypeReferenceAssignment_0; } - //variable=[NamedElement|QualifiedName] - public Assignment getVariableAssignment_1() { return cVariableAssignment_1; } + //TypeReference + public RuleCall getTypeReferenceTypeReferenceParserRuleCall_0_0() { return cTypeReferenceTypeReferenceParserRuleCall_0_0; } - //[NamedElement|QualifiedName] - public CrossReference getVariableNamedElementCrossReference_1_0() { return cVariableNamedElementCrossReference_1_0; } + //name=ID + public Assignment getNameAssignment_1() { return cNameAssignment_1; } - //QualifiedName - public RuleCall getVariableNamedElementQualifiedNameParserRuleCall_1_0_1() { return cVariableNamedElementQualifiedNameParserRuleCall_1_0_1; } + //ID + public RuleCall getNameIDTerminalRuleCall_1_0() { return cNameIDTerminalRuleCall_1_0; } } public class TypedStarArgumentElements extends AbstractParserRuleElementFinder { private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.TypedStarArgument"); private final Group cGroup = (Group)rule.eContents().get(1); - private final Assignment cTypeAssignment_0 = (Assignment)cGroup.eContents().get(0); - private final CrossReference cTypeNamedElementCrossReference_0_0 = (CrossReference)cTypeAssignment_0.eContents().get(0); - private final RuleCall cTypeNamedElementQualifiedNameParserRuleCall_0_0_1 = (RuleCall)cTypeNamedElementCrossReference_0_0.eContents().get(1); + private final Assignment cTypeReferenceAssignment_0 = (Assignment)cGroup.eContents().get(0); + private final RuleCall cTypeReferenceTypeReferenceParserRuleCall_0_0 = (RuleCall)cTypeReferenceAssignment_0.eContents().get(0); private final Keyword cAsteriskKeyword_1 = (Keyword)cGroup.eContents().get(1); //TypedStarArgument: - // type=[NamedElement|QualifiedName] "*"; + // typeReference=TypeReference "*"; @Override public ParserRule getRule() { return rule; } - //type=[NamedElement|QualifiedName] "*" + //typeReference=TypeReference "*" public Group getGroup() { return cGroup; } - //type=[NamedElement|QualifiedName] - public Assignment getTypeAssignment_0() { return cTypeAssignment_0; } - - //[NamedElement|QualifiedName] - public CrossReference getTypeNamedElementCrossReference_0_0() { return cTypeNamedElementCrossReference_0_0; } + //typeReference=TypeReference + public Assignment getTypeReferenceAssignment_0() { return cTypeReferenceAssignment_0; } - //QualifiedName - public RuleCall getTypeNamedElementQualifiedNameParserRuleCall_0_0_1() { return cTypeNamedElementQualifiedNameParserRuleCall_0_0_1; } + //TypeReference + public RuleCall getTypeReferenceTypeReferenceParserRuleCall_0_0() { return cTypeReferenceTypeReferenceParserRuleCall_0_0; } //"*" public Keyword getAsteriskKeyword_1() { return cAsteriskKeyword_1; } } public class ReferenceElements extends AbstractParserRuleElementFinder { private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.Reference"); - private final Assignment cReferredAssignment = (Assignment)rule.eContents().get(1); - private final CrossReference cReferredNamedElementCrossReference_0 = (CrossReference)cReferredAssignment.eContents().get(0); - private final RuleCall cReferredNamedElementQualifiedNameParserRuleCall_0_1 = (RuleCall)cReferredNamedElementCrossReference_0.eContents().get(1); + private final Group cGroup = (Group)rule.eContents().get(1); + private final Assignment cComponentsAssignment_0 = (Assignment)cGroup.eContents().get(0); + private final RuleCall cComponentsPathComponentParserRuleCall_0_0 = (RuleCall)cComponentsAssignment_0.eContents().get(0); + private final Group cGroup_1 = (Group)cGroup.eContents().get(1); + private final Keyword cFullStopKeyword_1_0 = (Keyword)cGroup_1.eContents().get(0); + private final Assignment cComponentsAssignment_1_1 = (Assignment)cGroup_1.eContents().get(1); + private final RuleCall cComponentsPathComponentParserRuleCall_1_1_0 = (RuleCall)cComponentsAssignment_1_1.eContents().get(0); //Reference: - // referred=[NamedElement|QualifiedName]; + // components+=PathComponent ("." components+=PathComponent)*; + @Override public ParserRule getRule() { return rule; } + + //components+=PathComponent ("." components+=PathComponent)* + public Group getGroup() { return cGroup; } + + //components+=PathComponent + public Assignment getComponentsAssignment_0() { return cComponentsAssignment_0; } + + //PathComponent + public RuleCall getComponentsPathComponentParserRuleCall_0_0() { return cComponentsPathComponentParserRuleCall_0_0; } + + //("." components+=PathComponent)* + public Group getGroup_1() { return cGroup_1; } + + //"." + public Keyword getFullStopKeyword_1_0() { return cFullStopKeyword_1_0; } + + //components+=PathComponent + public Assignment getComponentsAssignment_1_1() { return cComponentsAssignment_1_1; } + + //PathComponent + public RuleCall getComponentsPathComponentParserRuleCall_1_1_0() { return cComponentsPathComponentParserRuleCall_1_1_0; } + } + public class PathComponentElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.PathComponent"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final Assignment cInverseAssignment_0 = (Assignment)cGroup.eContents().get(0); + private final Keyword cInverseTildeKeyword_0_0 = (Keyword)cInverseAssignment_0.eContents().get(0); + private final Assignment cSymbolAssignment_1 = (Assignment)cGroup.eContents().get(1); + private final CrossReference cSymbolSymbolCrossReference_1_0 = (CrossReference)cSymbolAssignment_1.eContents().get(0); + private final RuleCall cSymbolSymbolQualifiedNameParserRuleCall_1_0_1 = (RuleCall)cSymbolSymbolCrossReference_1_0.eContents().get(1); + private final Alternatives cAlternatives_2 = (Alternatives)cGroup.eContents().get(2); + private final Assignment cTransitiveClosureAssignment_2_0 = (Assignment)cAlternatives_2.eContents().get(0); + private final RuleCall cTransitiveClosureTRANSITIVE_CLOSURETerminalRuleCall_2_0_0 = (RuleCall)cTransitiveClosureAssignment_2_0.eContents().get(0); + private final Assignment cReflexiveTransitiveClosureAssignment_2_1 = (Assignment)cAlternatives_2.eContents().get(1); + private final RuleCall cReflexiveTransitiveClosureREFLEXIVE_TRANSITIVE_CLOSURETerminalRuleCall_2_1_0 = (RuleCall)cReflexiveTransitiveClosureAssignment_2_1.eContents().get(0); + + //PathComponent: + // inverse?="~"? symbol=[Symbol|QualifiedName] (transitiveClosure?=TRANSITIVE_CLOSURE | + // reflexiveTransitiveClosure?=REFLEXIVE_TRANSITIVE_CLOSURE)?; @Override public ParserRule getRule() { return rule; } - //referred=[NamedElement|QualifiedName] - public Assignment getReferredAssignment() { return cReferredAssignment; } + //inverse?="~"? symbol=[Symbol|QualifiedName] (transitiveClosure?=TRANSITIVE_CLOSURE | + //reflexiveTransitiveClosure?=REFLEXIVE_TRANSITIVE_CLOSURE)? + public Group getGroup() { return cGroup; } + + //inverse?="~"? + public Assignment getInverseAssignment_0() { return cInverseAssignment_0; } + + //"~" + public Keyword getInverseTildeKeyword_0_0() { return cInverseTildeKeyword_0_0; } - //[NamedElement|QualifiedName] - public CrossReference getReferredNamedElementCrossReference_0() { return cReferredNamedElementCrossReference_0; } + //symbol=[Symbol|QualifiedName] + public Assignment getSymbolAssignment_1() { return cSymbolAssignment_1; } + + //[Symbol|QualifiedName] + public CrossReference getSymbolSymbolCrossReference_1_0() { return cSymbolSymbolCrossReference_1_0; } //QualifiedName - public RuleCall getReferredNamedElementQualifiedNameParserRuleCall_0_1() { return cReferredNamedElementQualifiedNameParserRuleCall_0_1; } + public RuleCall getSymbolSymbolQualifiedNameParserRuleCall_1_0_1() { return cSymbolSymbolQualifiedNameParserRuleCall_1_0_1; } + + //(transitiveClosure?=TRANSITIVE_CLOSURE | reflexiveTransitiveClosure?=REFLEXIVE_TRANSITIVE_CLOSURE)? + public Alternatives getAlternatives_2() { return cAlternatives_2; } + + //transitiveClosure?=TRANSITIVE_CLOSURE + public Assignment getTransitiveClosureAssignment_2_0() { return cTransitiveClosureAssignment_2_0; } + + //TRANSITIVE_CLOSURE + public RuleCall getTransitiveClosureTRANSITIVE_CLOSURETerminalRuleCall_2_0_0() { return cTransitiveClosureTRANSITIVE_CLOSURETerminalRuleCall_2_0_0; } + + //reflexiveTransitiveClosure?=REFLEXIVE_TRANSITIVE_CLOSURE + public Assignment getReflexiveTransitiveClosureAssignment_2_1() { return cReflexiveTransitiveClosureAssignment_2_1; } + + //REFLEXIVE_TRANSITIVE_CLOSURE + public RuleCall getReflexiveTransitiveClosureREFLEXIVE_TRANSITIVE_CLOSURETerminalRuleCall_2_1_0() { return cReflexiveTransitiveClosureREFLEXIVE_TRANSITIVE_CLOSURETerminalRuleCall_2_1_0; } } public class IntervalElements extends AbstractParserRuleElementFinder { private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.Interval"); private final Group cGroup = (Group)rule.eContents().get(1); private final Keyword cLeftSquareBracketKeyword_0 = (Keyword)cGroup.eContents().get(0); private final Assignment cLowerBoundAssignment_1 = (Assignment)cGroup.eContents().get(1); - private final RuleCall cLowerBoundExpressionParserRuleCall_1_0 = (RuleCall)cLowerBoundAssignment_1.eContents().get(0); - private final Keyword cFullStopFullStopKeyword_2 = (Keyword)cGroup.eContents().get(2); + private final RuleCall cLowerBoundAdditiveExpressionParserRuleCall_1_0 = (RuleCall)cLowerBoundAssignment_1.eContents().get(0); + private final Keyword cCommaKeyword_2 = (Keyword)cGroup.eContents().get(2); private final Assignment cUpperBoundAssignment_3 = (Assignment)cGroup.eContents().get(3); - private final RuleCall cUpperBoundExpressionParserRuleCall_3_0 = (RuleCall)cUpperBoundAssignment_3.eContents().get(0); + private final RuleCall cUpperBoundAdditiveExpressionParserRuleCall_3_0 = (RuleCall)cUpperBoundAssignment_3.eContents().get(0); private final Keyword cRightSquareBracketKeyword_4 = (Keyword)cGroup.eContents().get(4); //Interval: - // "[" lowerBound=Expression ".." upperBound=Expression "]"; + // "[" lowerBound=AdditiveExpression "," upperBound=AdditiveExpression "]"; @Override public ParserRule getRule() { return rule; } - //"[" lowerBound=Expression ".." upperBound=Expression "]" + //"[" lowerBound=AdditiveExpression "," upperBound=AdditiveExpression "]" public Group getGroup() { return cGroup; } //"[" public Keyword getLeftSquareBracketKeyword_0() { return cLeftSquareBracketKeyword_0; } - //lowerBound=Expression + //lowerBound=AdditiveExpression public Assignment getLowerBoundAssignment_1() { return cLowerBoundAssignment_1; } - //Expression - public RuleCall getLowerBoundExpressionParserRuleCall_1_0() { return cLowerBoundExpressionParserRuleCall_1_0; } + //AdditiveExpression + public RuleCall getLowerBoundAdditiveExpressionParserRuleCall_1_0() { return cLowerBoundAdditiveExpressionParserRuleCall_1_0; } - //".." - public Keyword getFullStopFullStopKeyword_2() { return cFullStopFullStopKeyword_2; } + //"," + public Keyword getCommaKeyword_2() { return cCommaKeyword_2; } - //upperBound=Expression + //upperBound=AdditiveExpression public Assignment getUpperBoundAssignment_3() { return cUpperBoundAssignment_3; } - //Expression - public RuleCall getUpperBoundExpressionParserRuleCall_3_0() { return cUpperBoundExpressionParserRuleCall_3_0; } + //AdditiveExpression + public RuleCall getUpperBoundAdditiveExpressionParserRuleCall_3_0() { return cUpperBoundAdditiveExpressionParserRuleCall_3_0; } //"]" public Keyword getRightSquareBracketKeyword_4() { return cRightSquareBracketKeyword_4; } @@ -1707,32 +1880,36 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder { private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.Literal"); private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); private final RuleCall cLogicLiteralParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0); - private final RuleCall cNumericLiteralParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1); - private final RuleCall cInfinityLiteralParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2); - private final RuleCall cEmptyIntervalLiteralParserRuleCall_3 = (RuleCall)cAlternatives.eContents().get(3); - private final RuleCall cStringLiteralParserRuleCall_4 = (RuleCall)cAlternatives.eContents().get(4); + private final RuleCall cIntLiteralParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1); + private final RuleCall cRealLiteralParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2); + private final RuleCall cInfinityLiteralParserRuleCall_3 = (RuleCall)cAlternatives.eContents().get(3); + private final RuleCall cEmptyLiteralParserRuleCall_4 = (RuleCall)cAlternatives.eContents().get(4); + private final RuleCall cStringLiteralParserRuleCall_5 = (RuleCall)cAlternatives.eContents().get(5); //Literal: - // LogicLiteral | NumericLiteral | InfinityLiteral | EmptyIntervalLiteral | StringLiteral; + // LogicLiteral | IntLiteral | RealLiteral | InfinityLiteral | EmptyLiteral | StringLiteral; @Override public ParserRule getRule() { return rule; } - //LogicLiteral | NumericLiteral | InfinityLiteral | EmptyIntervalLiteral | StringLiteral + //LogicLiteral | IntLiteral | RealLiteral | InfinityLiteral | EmptyLiteral | StringLiteral public Alternatives getAlternatives() { return cAlternatives; } //LogicLiteral public RuleCall getLogicLiteralParserRuleCall_0() { return cLogicLiteralParserRuleCall_0; } - //NumericLiteral - public RuleCall getNumericLiteralParserRuleCall_1() { return cNumericLiteralParserRuleCall_1; } + //IntLiteral + public RuleCall getIntLiteralParserRuleCall_1() { return cIntLiteralParserRuleCall_1; } + + //RealLiteral + public RuleCall getRealLiteralParserRuleCall_2() { return cRealLiteralParserRuleCall_2; } //InfinityLiteral - public RuleCall getInfinityLiteralParserRuleCall_2() { return cInfinityLiteralParserRuleCall_2; } + public RuleCall getInfinityLiteralParserRuleCall_3() { return cInfinityLiteralParserRuleCall_3; } - //EmptyIntervalLiteral - public RuleCall getEmptyIntervalLiteralParserRuleCall_3() { return cEmptyIntervalLiteralParserRuleCall_3; } + //EmptyLiteral + public RuleCall getEmptyLiteralParserRuleCall_4() { return cEmptyLiteralParserRuleCall_4; } //StringLiteral - public RuleCall getStringLiteralParserRuleCall_4() { return cStringLiteralParserRuleCall_4; } + public RuleCall getStringLiteralParserRuleCall_5() { return cStringLiteralParserRuleCall_5; } } public class LogicLiteralElements extends AbstractParserRuleElementFinder { private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.LogicLiteral"); @@ -1749,12 +1926,27 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder { //LogicValue public RuleCall getValueLogicValueEnumRuleCall_0() { return cValueLogicValueEnumRuleCall_0; } } - public class NumericLiteralElements extends AbstractParserRuleElementFinder { - private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.NumericLiteral"); + public class IntLiteralElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.IntLiteral"); + private final Assignment cValueAssignment = (Assignment)rule.eContents().get(1); + private final RuleCall cValueINTTerminalRuleCall_0 = (RuleCall)cValueAssignment.eContents().get(0); + + //IntLiteral: + // value=INT; + @Override public ParserRule getRule() { return rule; } + + //value=INT + public Assignment getValueAssignment() { return cValueAssignment; } + + //INT + public RuleCall getValueINTTerminalRuleCall_0() { return cValueINTTerminalRuleCall_0; } + } + public class RealLiteralElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.RealLiteral"); private final Assignment cValueAssignment = (Assignment)rule.eContents().get(1); private final RuleCall cValueRealParserRuleCall_0 = (RuleCall)cValueAssignment.eContents().get(0); - //NumericLiteral: + //RealLiteral: // value=Real; @Override public ParserRule getRule() { return rule; } @@ -1783,21 +1975,21 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder { //"inf" public Keyword getInfKeyword_1() { return cInfKeyword_1; } } - public class EmptyIntervalLiteralElements extends AbstractParserRuleElementFinder { - private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.EmptyIntervalLiteral"); + public class EmptyLiteralElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.EmptyLiteral"); private final Group cGroup = (Group)rule.eContents().get(1); - private final Action cEmptyIntervalLiteralAction_0 = (Action)cGroup.eContents().get(0); + private final Action cEmptyLiteralAction_0 = (Action)cGroup.eContents().get(0); private final Keyword cEmptyKeyword_1 = (Keyword)cGroup.eContents().get(1); - //EmptyIntervalLiteral: - // {EmptyIntervalLiteral} "empty"; + //EmptyLiteral: + // {EmptyLiteral} "empty"; @Override public ParserRule getRule() { return rule; } - //{EmptyIntervalLiteral} "empty" + //{EmptyLiteral} "empty" public Group getGroup() { return cGroup; } - //{EmptyIntervalLiteral} - public Action getEmptyIntervalLiteralAction_0() { return cEmptyIntervalLiteralAction_0; } + //{EmptyLiteral} + public Action getEmptyLiteralAction_0() { return cEmptyLiteralAction_0; } //"empty" public Keyword getEmptyKeyword_1() { return cEmptyKeyword_1; } @@ -1817,44 +2009,58 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder { //STRING public RuleCall getValueSTRINGTerminalRuleCall_0() { return cValueSTRINGTerminalRuleCall_0; } } - public class ClassDefinitionElements extends AbstractParserRuleElementFinder { - private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.ClassDefinition"); + public class ClassDeclarationElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.ClassDeclaration"); private final Group cGroup = (Group)rule.eContents().get(1); - private final Assignment cAbstractAssignment_0 = (Assignment)cGroup.eContents().get(0); - private final Keyword cAbstractAbstractKeyword_0_0 = (Keyword)cAbstractAssignment_0.eContents().get(0); + private final UnorderedGroup cUnorderedGroup_0 = (UnorderedGroup)cGroup.eContents().get(0); + private final Assignment cAbstractAssignment_0_0 = (Assignment)cUnorderedGroup_0.eContents().get(0); + private final Keyword cAbstractAbstractKeyword_0_0_0 = (Keyword)cAbstractAssignment_0_0.eContents().get(0); + private final Assignment cRootAssignment_0_1 = (Assignment)cUnorderedGroup_0.eContents().get(1); + private final Keyword cRootRootKeyword_0_1_0 = (Keyword)cRootAssignment_0_1.eContents().get(0); private final Keyword cClassKeyword_1 = (Keyword)cGroup.eContents().get(1); private final Assignment cNameAssignment_2 = (Assignment)cGroup.eContents().get(2); private final RuleCall cNameIDTerminalRuleCall_2_0 = (RuleCall)cNameAssignment_2.eContents().get(0); private final Group cGroup_3 = (Group)cGroup.eContents().get(3); private final Keyword cExtendsKeyword_3_0 = (Keyword)cGroup_3.eContents().get(0); - private final Assignment cSuperclassesAssignment_3_1 = (Assignment)cGroup_3.eContents().get(1); - private final CrossReference cSuperclassesNamedElementCrossReference_3_1_0 = (CrossReference)cSuperclassesAssignment_3_1.eContents().get(0); - private final RuleCall cSuperclassesNamedElementQualifiedNameParserRuleCall_3_1_0_1 = (RuleCall)cSuperclassesNamedElementCrossReference_3_1_0.eContents().get(1); + private final Assignment cSupertypesAssignment_3_1 = (Assignment)cGroup_3.eContents().get(1); + private final CrossReference cSupertypesSymbolCrossReference_3_1_0 = (CrossReference)cSupertypesAssignment_3_1.eContents().get(0); + private final RuleCall cSupertypesSymbolQualifiedNameParserRuleCall_3_1_0_1 = (RuleCall)cSupertypesSymbolCrossReference_3_1_0.eContents().get(1); private final Group cGroup_3_2 = (Group)cGroup_3.eContents().get(2); private final Keyword cCommaKeyword_3_2_0 = (Keyword)cGroup_3_2.eContents().get(0); - private final Assignment cSuperclassesAssignment_3_2_1 = (Assignment)cGroup_3_2.eContents().get(1); - private final CrossReference cSuperclassesNamedElementCrossReference_3_2_1_0 = (CrossReference)cSuperclassesAssignment_3_2_1.eContents().get(0); - private final RuleCall cSuperclassesNamedElementQualifiedNameParserRuleCall_3_2_1_0_1 = (RuleCall)cSuperclassesNamedElementCrossReference_3_2_1_0.eContents().get(1); - private final Keyword cLeftCurlyBracketKeyword_4 = (Keyword)cGroup.eContents().get(4); - private final Assignment cMembersAssignment_5 = (Assignment)cGroup.eContents().get(5); - private final RuleCall cMembersMemberDefinitionParserRuleCall_5_0 = (RuleCall)cMembersAssignment_5.eContents().get(0); - private final Keyword cRightCurlyBracketKeyword_6 = (Keyword)cGroup.eContents().get(6); - - //ClassDefinition: - // abstract?="abstract"? "class" name=ID ("extends" superclasses+=[NamedElement|QualifiedName] ("," - // superclasses+=[NamedElement|QualifiedName])*)? - // "{" members+=MemberDefinition* "}"; + private final Assignment cSupertypesAssignment_3_2_1 = (Assignment)cGroup_3_2.eContents().get(1); + private final CrossReference cSupertypesSymbolCrossReference_3_2_1_0 = (CrossReference)cSupertypesAssignment_3_2_1.eContents().get(0); + private final RuleCall cSupertypesSymbolQualifiedNameParserRuleCall_3_2_1_0_1 = (RuleCall)cSupertypesSymbolCrossReference_3_2_1_0.eContents().get(1); + private final Alternatives cAlternatives_4 = (Alternatives)cGroup.eContents().get(4); + private final Group cGroup_4_0 = (Group)cAlternatives_4.eContents().get(0); + private final Keyword cLeftCurlyBracketKeyword_4_0_0 = (Keyword)cGroup_4_0.eContents().get(0); + private final Assignment cFieldsAssignment_4_0_1 = (Assignment)cGroup_4_0.eContents().get(1); + private final RuleCall cFieldsFieldParserRuleCall_4_0_1_0 = (RuleCall)cFieldsAssignment_4_0_1.eContents().get(0); + private final Keyword cRightCurlyBracketKeyword_4_0_2 = (Keyword)cGroup_4_0.eContents().get(2); + private final RuleCall cFULL_STOPTerminalRuleCall_4_1 = (RuleCall)cAlternatives_4.eContents().get(1); + + //ClassDeclaration: + // (abstract?="abstract"? & root?="root"?) "class" name=ID ("extends" supertypes+=[Symbol|QualifiedName] ("," + // supertypes+=[Symbol|QualifiedName])*)? ("{" fields+=Field* "}" | FULL_STOP); @Override public ParserRule getRule() { return rule; } - //abstract?="abstract"? "class" name=ID ("extends" superclasses+=[NamedElement|QualifiedName] ("," - //superclasses+=[NamedElement|QualifiedName])*)? "{" members+=MemberDefinition* "}" + //(abstract?="abstract"? & root?="root"?) "class" name=ID ("extends" supertypes+=[Symbol|QualifiedName] ("," + //supertypes+=[Symbol|QualifiedName])*)? ("{" fields+=Field* "}" | FULL_STOP) public Group getGroup() { return cGroup; } + //(abstract?="abstract"? & root?="root"?) + public UnorderedGroup getUnorderedGroup_0() { return cUnorderedGroup_0; } + //abstract?="abstract"? - public Assignment getAbstractAssignment_0() { return cAbstractAssignment_0; } + public Assignment getAbstractAssignment_0_0() { return cAbstractAssignment_0_0; } //"abstract" - public Keyword getAbstractAbstractKeyword_0_0() { return cAbstractAbstractKeyword_0_0; } + public Keyword getAbstractAbstractKeyword_0_0_0() { return cAbstractAbstractKeyword_0_0_0; } + + //root?="root"? + public Assignment getRootAssignment_0_1() { return cRootAssignment_0_1; } + + //"root" + public Keyword getRootRootKeyword_0_1_0() { return cRootRootKeyword_0_1_0; } //"class" public Keyword getClassKeyword_1() { return cClassKeyword_1; } @@ -1865,56 +2071,68 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder { //ID public RuleCall getNameIDTerminalRuleCall_2_0() { return cNameIDTerminalRuleCall_2_0; } - //("extends" superclasses+=[NamedElement|QualifiedName] ("," superclasses+=[NamedElement|QualifiedName])*)? + //("extends" supertypes+=[Symbol|QualifiedName] ("," supertypes+=[Symbol|QualifiedName])*)? public Group getGroup_3() { return cGroup_3; } //"extends" public Keyword getExtendsKeyword_3_0() { return cExtendsKeyword_3_0; } - //superclasses+=[NamedElement|QualifiedName] - public Assignment getSuperclassesAssignment_3_1() { return cSuperclassesAssignment_3_1; } + //supertypes+=[Symbol|QualifiedName] + public Assignment getSupertypesAssignment_3_1() { return cSupertypesAssignment_3_1; } - //[NamedElement|QualifiedName] - public CrossReference getSuperclassesNamedElementCrossReference_3_1_0() { return cSuperclassesNamedElementCrossReference_3_1_0; } + //[Symbol|QualifiedName] + public CrossReference getSupertypesSymbolCrossReference_3_1_0() { return cSupertypesSymbolCrossReference_3_1_0; } //QualifiedName - public RuleCall getSuperclassesNamedElementQualifiedNameParserRuleCall_3_1_0_1() { return cSuperclassesNamedElementQualifiedNameParserRuleCall_3_1_0_1; } + public RuleCall getSupertypesSymbolQualifiedNameParserRuleCall_3_1_0_1() { return cSupertypesSymbolQualifiedNameParserRuleCall_3_1_0_1; } - //("," superclasses+=[NamedElement|QualifiedName])* + //("," supertypes+=[Symbol|QualifiedName])* public Group getGroup_3_2() { return cGroup_3_2; } //"," public Keyword getCommaKeyword_3_2_0() { return cCommaKeyword_3_2_0; } - //superclasses+=[NamedElement|QualifiedName] - public Assignment getSuperclassesAssignment_3_2_1() { return cSuperclassesAssignment_3_2_1; } + //supertypes+=[Symbol|QualifiedName] + public Assignment getSupertypesAssignment_3_2_1() { return cSupertypesAssignment_3_2_1; } - //[NamedElement|QualifiedName] - public CrossReference getSuperclassesNamedElementCrossReference_3_2_1_0() { return cSuperclassesNamedElementCrossReference_3_2_1_0; } + //[Symbol|QualifiedName] + public CrossReference getSupertypesSymbolCrossReference_3_2_1_0() { return cSupertypesSymbolCrossReference_3_2_1_0; } //QualifiedName - public RuleCall getSuperclassesNamedElementQualifiedNameParserRuleCall_3_2_1_0_1() { return cSuperclassesNamedElementQualifiedNameParserRuleCall_3_2_1_0_1; } + public RuleCall getSupertypesSymbolQualifiedNameParserRuleCall_3_2_1_0_1() { return cSupertypesSymbolQualifiedNameParserRuleCall_3_2_1_0_1; } + + //("{" fields+=Field* "}" | FULL_STOP) + public Alternatives getAlternatives_4() { return cAlternatives_4; } + + //"{" fields+=Field* "}" + public Group getGroup_4_0() { return cGroup_4_0; } //"{" - public Keyword getLeftCurlyBracketKeyword_4() { return cLeftCurlyBracketKeyword_4; } + public Keyword getLeftCurlyBracketKeyword_4_0_0() { return cLeftCurlyBracketKeyword_4_0_0; } - //members+=MemberDefinition* - public Assignment getMembersAssignment_5() { return cMembersAssignment_5; } + //fields+=Field* + public Assignment getFieldsAssignment_4_0_1() { return cFieldsAssignment_4_0_1; } - //MemberDefinition - public RuleCall getMembersMemberDefinitionParserRuleCall_5_0() { return cMembersMemberDefinitionParserRuleCall_5_0; } + //Field + public RuleCall getFieldsFieldParserRuleCall_4_0_1_0() { return cFieldsFieldParserRuleCall_4_0_1_0; } //"}" - public Keyword getRightCurlyBracketKeyword_6() { return cRightCurlyBracketKeyword_6; } + public Keyword getRightCurlyBracketKeyword_4_0_2() { return cRightCurlyBracketKeyword_4_0_2; } + + //FULL_STOP + public RuleCall getFULL_STOPTerminalRuleCall_4_1() { return cFULL_STOPTerminalRuleCall_4_1; } } - public class MemberDefinitionElements extends AbstractParserRuleElementFinder { - private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.MemberDefinition"); + public class FieldElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.Field"); private final Group cGroup = (Group)rule.eContents().get(1); - private final Assignment cContainmentAssignment_0 = (Assignment)cGroup.eContents().get(0); - private final Keyword cContainmentContainsKeyword_0_0 = (Keyword)cContainmentAssignment_0.eContents().get(0); + private final Alternatives cAlternatives_0 = (Alternatives)cGroup.eContents().get(0); + private final Assignment cContainmentAssignment_0_0 = (Assignment)cAlternatives_0.eContents().get(0); + private final Keyword cContainmentContainsKeyword_0_0_0 = (Keyword)cContainmentAssignment_0_0.eContents().get(0); + private final Assignment cCrossReferenceAssignment_0_1 = (Assignment)cAlternatives_0.eContents().get(1); + private final Keyword cCrossReferenceRefersKeyword_0_1_0 = (Keyword)cCrossReferenceAssignment_0_1.eContents().get(0); private final Assignment cTypeAssignment_1 = (Assignment)cGroup.eContents().get(1); - private final CrossReference cTypeNamedElementCrossReference_1_0 = (CrossReference)cTypeAssignment_1.eContents().get(0); - private final RuleCall cTypeNamedElementQualifiedNameParserRuleCall_1_0_1 = (RuleCall)cTypeNamedElementCrossReference_1_0.eContents().get(1); + private final CrossReference cTypeSymbolCrossReference_1_0 = (CrossReference)cTypeAssignment_1.eContents().get(0); + private final RuleCall cTypeSymbolQualifiedNameParserRuleCall_1_0_1 = (RuleCall)cTypeSymbolCrossReference_1_0.eContents().get(1); private final Assignment cMultiplicityAssignment_2 = (Assignment)cGroup.eContents().get(2); private final RuleCall cMultiplicityMultiplicityParserRuleCall_2_0 = (RuleCall)cMultiplicityAssignment_2.eContents().get(0); private final Assignment cNameAssignment_3 = (Assignment)cGroup.eContents().get(3); @@ -1922,33 +2140,42 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder { private final Group cGroup_4 = (Group)cGroup.eContents().get(4); private final Keyword cOppositeKeyword_4_0 = (Keyword)cGroup_4.eContents().get(0); private final Assignment cOppositeAssignment_4_1 = (Assignment)cGroup_4.eContents().get(1); - private final CrossReference cOppositeNamedElementCrossReference_4_1_0 = (CrossReference)cOppositeAssignment_4_1.eContents().get(0); - private final RuleCall cOppositeNamedElementQualifiedNameParserRuleCall_4_1_0_1 = (RuleCall)cOppositeNamedElementCrossReference_4_1_0.eContents().get(1); + private final CrossReference cOppositeSymbolCrossReference_4_1_0 = (CrossReference)cOppositeAssignment_4_1.eContents().get(0); + private final RuleCall cOppositeSymbolQualifiedNameParserRuleCall_4_1_0_1 = (RuleCall)cOppositeSymbolCrossReference_4_1_0.eContents().get(1); private final Keyword cSemicolonKeyword_5 = (Keyword)cGroup.eContents().get(5); - //MemberDefinition: - // containment?="contains"? type=[NamedElement|QualifiedName] multiplicity=Multiplicity? name=ID ("opposite" - // opposite=[NamedElement|QualifiedName])? ";"?; + //Field: + // (containment?="contains" | crossReference?="refers")? type=[Symbol|QualifiedName] multiplicity=Multiplicity? + // name=ID ("opposite" opposite=[Symbol|QualifiedName])? ";"?; @Override public ParserRule getRule() { return rule; } - //containment?="contains"? type=[NamedElement|QualifiedName] multiplicity=Multiplicity? name=ID ("opposite" - //opposite=[NamedElement|QualifiedName])? ";"? + //(containment?="contains" | crossReference?="refers")? type=[Symbol|QualifiedName] multiplicity=Multiplicity? name=ID + //("opposite" opposite=[Symbol|QualifiedName])? ";"? public Group getGroup() { return cGroup; } - //containment?="contains"? - public Assignment getContainmentAssignment_0() { return cContainmentAssignment_0; } + //(containment?="contains" | crossReference?="refers")? + public Alternatives getAlternatives_0() { return cAlternatives_0; } + + //containment?="contains" + public Assignment getContainmentAssignment_0_0() { return cContainmentAssignment_0_0; } //"contains" - public Keyword getContainmentContainsKeyword_0_0() { return cContainmentContainsKeyword_0_0; } + public Keyword getContainmentContainsKeyword_0_0_0() { return cContainmentContainsKeyword_0_0_0; } + + //crossReference?="refers" + public Assignment getCrossReferenceAssignment_0_1() { return cCrossReferenceAssignment_0_1; } + + //"refers" + public Keyword getCrossReferenceRefersKeyword_0_1_0() { return cCrossReferenceRefersKeyword_0_1_0; } - //type=[NamedElement|QualifiedName] + //type=[Symbol|QualifiedName] public Assignment getTypeAssignment_1() { return cTypeAssignment_1; } - //[NamedElement|QualifiedName] - public CrossReference getTypeNamedElementCrossReference_1_0() { return cTypeNamedElementCrossReference_1_0; } + //[Symbol|QualifiedName] + public CrossReference getTypeSymbolCrossReference_1_0() { return cTypeSymbolCrossReference_1_0; } //QualifiedName - public RuleCall getTypeNamedElementQualifiedNameParserRuleCall_1_0_1() { return cTypeNamedElementQualifiedNameParserRuleCall_1_0_1; } + public RuleCall getTypeSymbolQualifiedNameParserRuleCall_1_0_1() { return cTypeSymbolQualifiedNameParserRuleCall_1_0_1; } //multiplicity=Multiplicity? public Assignment getMultiplicityAssignment_2() { return cMultiplicityAssignment_2; } @@ -1962,20 +2189,20 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder { //ID public RuleCall getNameIDTerminalRuleCall_3_0() { return cNameIDTerminalRuleCall_3_0; } - //("opposite" opposite=[NamedElement|QualifiedName])? + //("opposite" opposite=[Symbol|QualifiedName])? public Group getGroup_4() { return cGroup_4; } //"opposite" public Keyword getOppositeKeyword_4_0() { return cOppositeKeyword_4_0; } - //opposite=[NamedElement|QualifiedName] + //opposite=[Symbol|QualifiedName] public Assignment getOppositeAssignment_4_1() { return cOppositeAssignment_4_1; } - //[NamedElement|QualifiedName] - public CrossReference getOppositeNamedElementCrossReference_4_1_0() { return cOppositeNamedElementCrossReference_4_1_0; } + //[Symbol|QualifiedName] + public CrossReference getOppositeSymbolCrossReference_4_1_0() { return cOppositeSymbolCrossReference_4_1_0; } //QualifiedName - public RuleCall getOppositeNamedElementQualifiedNameParserRuleCall_4_1_0_1() { return cOppositeNamedElementQualifiedNameParserRuleCall_4_1_0_1; } + public RuleCall getOppositeSymbolQualifiedNameParserRuleCall_4_1_0_1() { return cOppositeSymbolQualifiedNameParserRuleCall_4_1_0_1; } //";"? public Keyword getSemicolonKeyword_5() { return cSemicolonKeyword_5; } @@ -1983,19 +2210,19 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder { public class MultiplicityElements extends AbstractParserRuleElementFinder { private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.Multiplicity"); private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); - private final RuleCall cManyMultiplicityParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0); + private final RuleCall cUnboundedMultiplicityParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0); private final RuleCall cExactMultiplicityParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1); private final RuleCall cBoundedMultiplicityParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2); //Multiplicity: - // ManyMultiplicity | ExactMultiplicity | BoundedMultiplicity; + // UnboundedMultiplicity | ExactMultiplicity | BoundedMultiplicity; @Override public ParserRule getRule() { return rule; } - //ManyMultiplicity | ExactMultiplicity | BoundedMultiplicity + //UnboundedMultiplicity | ExactMultiplicity | BoundedMultiplicity public Alternatives getAlternatives() { return cAlternatives; } - //ManyMultiplicity - public RuleCall getManyMultiplicityParserRuleCall_0() { return cManyMultiplicityParserRuleCall_0; } + //UnboundedMultiplicity + public RuleCall getUnboundedMultiplicityParserRuleCall_0() { return cUnboundedMultiplicityParserRuleCall_0; } //ExactMultiplicity public RuleCall getExactMultiplicityParserRuleCall_1() { return cExactMultiplicityParserRuleCall_1; } @@ -2003,22 +2230,22 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder { //BoundedMultiplicity public RuleCall getBoundedMultiplicityParserRuleCall_2() { return cBoundedMultiplicityParserRuleCall_2; } } - public class ManyMultiplicityElements extends AbstractParserRuleElementFinder { - private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.ManyMultiplicity"); + public class UnboundedMultiplicityElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.UnboundedMultiplicity"); private final Group cGroup = (Group)rule.eContents().get(1); - private final Action cManyMultiplicityAction_0 = (Action)cGroup.eContents().get(0); + private final Action cUnboundedMultiplicityAction_0 = (Action)cGroup.eContents().get(0); private final Keyword cLeftSquareBracketKeyword_1 = (Keyword)cGroup.eContents().get(1); private final Keyword cRightSquareBracketKeyword_2 = (Keyword)cGroup.eContents().get(2); - //ManyMultiplicity: - // {ManyMultiplicity} "[" "]"; + //UnboundedMultiplicity: + // {UnboundedMultiplicity} "[" "]"; @Override public ParserRule getRule() { return rule; } - //{ManyMultiplicity} "[" "]" + //{UnboundedMultiplicity} "[" "]" public Group getGroup() { return cGroup; } - //{ManyMultiplicity} - public Action getManyMultiplicityAction_0() { return cManyMultiplicityAction_0; } + //{UnboundedMultiplicity} + public Action getUnboundedMultiplicityAction_0() { return cUnboundedMultiplicityAction_0; } //"[" public Keyword getLeftSquareBracketKeyword_1() { return cLeftSquareBracketKeyword_1; } @@ -2030,25 +2257,25 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder { private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.ExactMultiplicity"); private final Group cGroup = (Group)rule.eContents().get(1); private final Keyword cLeftSquareBracketKeyword_0 = (Keyword)cGroup.eContents().get(0); - private final Assignment cMultiplicityAssignment_1 = (Assignment)cGroup.eContents().get(1); - private final RuleCall cMultiplicityUpperMultiplictyParserRuleCall_1_0 = (RuleCall)cMultiplicityAssignment_1.eContents().get(0); + private final Assignment cValueAssignment_1 = (Assignment)cGroup.eContents().get(1); + private final RuleCall cValueUpperMultiplictyParserRuleCall_1_0 = (RuleCall)cValueAssignment_1.eContents().get(0); private final Keyword cRightSquareBracketKeyword_2 = (Keyword)cGroup.eContents().get(2); //ExactMultiplicity: - // "[" multiplicity=UpperMultiplicty "]"; + // "[" value=UpperMultiplicty "]"; @Override public ParserRule getRule() { return rule; } - //"[" multiplicity=UpperMultiplicty "]" + //"[" value=UpperMultiplicty "]" public Group getGroup() { return cGroup; } //"[" public Keyword getLeftSquareBracketKeyword_0() { return cLeftSquareBracketKeyword_0; } - //multiplicity=UpperMultiplicty - public Assignment getMultiplicityAssignment_1() { return cMultiplicityAssignment_1; } + //value=UpperMultiplicty + public Assignment getValueAssignment_1() { return cValueAssignment_1; } //UpperMultiplicty - public RuleCall getMultiplicityUpperMultiplictyParserRuleCall_1_0() { return cMultiplicityUpperMultiplictyParserRuleCall_1_0; } + public RuleCall getValueUpperMultiplictyParserRuleCall_1_0() { return cValueUpperMultiplictyParserRuleCall_1_0; } //"]" public Keyword getRightSquareBracketKeyword_2() { return cRightSquareBracketKeyword_2; } @@ -2059,16 +2286,16 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder { private final Keyword cLeftSquareBracketKeyword_0 = (Keyword)cGroup.eContents().get(0); private final Assignment cLowerBoundAssignment_1 = (Assignment)cGroup.eContents().get(1); private final RuleCall cLowerBoundINTTerminalRuleCall_1_0 = (RuleCall)cLowerBoundAssignment_1.eContents().get(0); - private final Keyword cFullStopFullStopKeyword_2 = (Keyword)cGroup.eContents().get(2); + private final Keyword cCommaKeyword_2 = (Keyword)cGroup.eContents().get(2); private final Assignment cUpperBoundAssignment_3 = (Assignment)cGroup.eContents().get(3); private final RuleCall cUpperBoundUpperMultiplictyParserRuleCall_3_0 = (RuleCall)cUpperBoundAssignment_3.eContents().get(0); private final Keyword cRightSquareBracketKeyword_4 = (Keyword)cGroup.eContents().get(4); //BoundedMultiplicity: - // "[" lowerBound=INT ".." upperBound=UpperMultiplicty "]"; + // "[" lowerBound=INT "," upperBound=UpperMultiplicty "]"; @Override public ParserRule getRule() { return rule; } - //"[" lowerBound=INT ".." upperBound=UpperMultiplicty "]" + //"[" lowerBound=INT "," upperBound=UpperMultiplicty "]" public Group getGroup() { return cGroup; } //"[" @@ -2080,8 +2307,8 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder { //INT public RuleCall getLowerBoundINTTerminalRuleCall_1_0() { return cLowerBoundINTTerminalRuleCall_1_0; } - //".." - public Keyword getFullStopFullStopKeyword_2() { return cFullStopFullStopKeyword_2; } + //"," + public Keyword getCommaKeyword_2() { return cCommaKeyword_2; } //upperBound=UpperMultiplicty public Assignment getUpperBoundAssignment_3() { return cUpperBoundAssignment_3; } @@ -2092,70 +2319,160 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder { //"]" public Keyword getRightSquareBracketKeyword_4() { return cRightSquareBracketKeyword_4; } } - public class ScopeDefinitionElements extends AbstractParserRuleElementFinder { - private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.ScopeDefinition"); + public class EnumDeclarationElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.EnumDeclaration"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final Keyword cEnumKeyword_0 = (Keyword)cGroup.eContents().get(0); + private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1); + private final RuleCall cNameIDTerminalRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0); + private final Alternatives cAlternatives_2 = (Alternatives)cGroup.eContents().get(2); + private final Group cGroup_2_0 = (Group)cAlternatives_2.eContents().get(0); + private final Keyword cLeftCurlyBracketKeyword_2_0_0 = (Keyword)cGroup_2_0.eContents().get(0); + private final Group cGroup_2_0_1 = (Group)cGroup_2_0.eContents().get(1); + private final Assignment cLiteralsAssignment_2_0_1_0 = (Assignment)cGroup_2_0_1.eContents().get(0); + private final RuleCall cLiteralsEnumLiteralParserRuleCall_2_0_1_0_0 = (RuleCall)cLiteralsAssignment_2_0_1_0.eContents().get(0); + private final Group cGroup_2_0_1_1 = (Group)cGroup_2_0_1.eContents().get(1); + private final Keyword cCommaKeyword_2_0_1_1_0 = (Keyword)cGroup_2_0_1_1.eContents().get(0); + private final Assignment cLiteralsAssignment_2_0_1_1_1 = (Assignment)cGroup_2_0_1_1.eContents().get(1); + private final RuleCall cLiteralsEnumLiteralParserRuleCall_2_0_1_1_1_0 = (RuleCall)cLiteralsAssignment_2_0_1_1_1.eContents().get(0); + private final Keyword cRightCurlyBracketKeyword_2_0_2 = (Keyword)cGroup_2_0.eContents().get(2); + private final RuleCall cFULL_STOPTerminalRuleCall_2_1 = (RuleCall)cAlternatives_2.eContents().get(1); + + //EnumDeclaration: + // "enum" name=ID ("{" (literals+=EnumLiteral (","? literals+=EnumLiteral)*)? "}" | FULL_STOP); + @Override public ParserRule getRule() { return rule; } + + //"enum" name=ID ("{" (literals+=EnumLiteral (","? literals+=EnumLiteral)*)? "}" | FULL_STOP) + public Group getGroup() { return cGroup; } + + //"enum" + public Keyword getEnumKeyword_0() { return cEnumKeyword_0; } + + //name=ID + public Assignment getNameAssignment_1() { return cNameAssignment_1; } + + //ID + public RuleCall getNameIDTerminalRuleCall_1_0() { return cNameIDTerminalRuleCall_1_0; } + + //("{" (literals+=EnumLiteral (","? literals+=EnumLiteral)*)? "}" | FULL_STOP) + public Alternatives getAlternatives_2() { return cAlternatives_2; } + + //"{" (literals+=EnumLiteral (","? literals+=EnumLiteral)*)? "}" + public Group getGroup_2_0() { return cGroup_2_0; } + + //"{" + public Keyword getLeftCurlyBracketKeyword_2_0_0() { return cLeftCurlyBracketKeyword_2_0_0; } + + //(literals+=EnumLiteral (","? literals+=EnumLiteral)*)? + public Group getGroup_2_0_1() { return cGroup_2_0_1; } + + //literals+=EnumLiteral + public Assignment getLiteralsAssignment_2_0_1_0() { return cLiteralsAssignment_2_0_1_0; } + + //EnumLiteral + public RuleCall getLiteralsEnumLiteralParserRuleCall_2_0_1_0_0() { return cLiteralsEnumLiteralParserRuleCall_2_0_1_0_0; } + + //(","? literals+=EnumLiteral)* + public Group getGroup_2_0_1_1() { return cGroup_2_0_1_1; } + + //","? + public Keyword getCommaKeyword_2_0_1_1_0() { return cCommaKeyword_2_0_1_1_0; } + + //literals+=EnumLiteral + public Assignment getLiteralsAssignment_2_0_1_1_1() { return cLiteralsAssignment_2_0_1_1_1; } + + //EnumLiteral + public RuleCall getLiteralsEnumLiteralParserRuleCall_2_0_1_1_1_0() { return cLiteralsEnumLiteralParserRuleCall_2_0_1_1_1_0; } + + //"}" + public Keyword getRightCurlyBracketKeyword_2_0_2() { return cRightCurlyBracketKeyword_2_0_2; } + + //FULL_STOP + public RuleCall getFULL_STOPTerminalRuleCall_2_1() { return cFULL_STOPTerminalRuleCall_2_1; } + } + public class EnumLiteralElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.EnumLiteral"); + private final Assignment cNameAssignment = (Assignment)rule.eContents().get(1); + private final RuleCall cNameIDTerminalRuleCall_0 = (RuleCall)cNameAssignment.eContents().get(0); + + //EnumLiteral: + // name=ID; + @Override public ParserRule getRule() { return rule; } + + //name=ID + public Assignment getNameAssignment() { return cNameAssignment; } + + //ID + public RuleCall getNameIDTerminalRuleCall_0() { return cNameIDTerminalRuleCall_0; } + } + public class ScopeDeclarationElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.ScopeDeclaration"); private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); - private final RuleCall cExactScopeDefinitionParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0); - private final RuleCall cBoundedScopeDefinitionParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1); - private final RuleCall cLowerBoundedScopeDefinitionParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2); + private final RuleCall cExactScopeParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0); + private final RuleCall cBoundedScopeParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1); + private final RuleCall cLowerBoundedScopeParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2); - //ScopeDefinition: - // ExactScopeDefinition | BoundedScopeDefinition | LowerBoundedScopeDefinition; + //ScopeDeclaration: + // ExactScope | BoundedScope | LowerBoundedScope; @Override public ParserRule getRule() { return rule; } - //ExactScopeDefinition | BoundedScopeDefinition | LowerBoundedScopeDefinition + //ExactScope | BoundedScope | LowerBoundedScope public Alternatives getAlternatives() { return cAlternatives; } - //ExactScopeDefinition - public RuleCall getExactScopeDefinitionParserRuleCall_0() { return cExactScopeDefinitionParserRuleCall_0; } + //ExactScope + public RuleCall getExactScopeParserRuleCall_0() { return cExactScopeParserRuleCall_0; } - //BoundedScopeDefinition - public RuleCall getBoundedScopeDefinitionParserRuleCall_1() { return cBoundedScopeDefinitionParserRuleCall_1; } + //BoundedScope + public RuleCall getBoundedScopeParserRuleCall_1() { return cBoundedScopeParserRuleCall_1; } - //LowerBoundedScopeDefinition - public RuleCall getLowerBoundedScopeDefinitionParserRuleCall_2() { return cLowerBoundedScopeDefinitionParserRuleCall_2; } + //LowerBoundedScope + public RuleCall getLowerBoundedScopeParserRuleCall_2() { return cLowerBoundedScopeParserRuleCall_2; } } - public class ExactScopeDefinitionElements extends AbstractParserRuleElementFinder { - private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.ExactScopeDefinition"); + public class ExactScopeElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.ExactScope"); private final Group cGroup = (Group)rule.eContents().get(1); private final Keyword cScopeKeyword_0 = (Keyword)cGroup.eContents().get(0); private final Assignment cTypeAssignment_1 = (Assignment)cGroup.eContents().get(1); - private final CrossReference cTypeNamedElementCrossReference_1_0 = (CrossReference)cTypeAssignment_1.eContents().get(0); - private final RuleCall cTypeNamedElementQualifiedNameParserRuleCall_1_0_1 = (RuleCall)cTypeNamedElementCrossReference_1_0.eContents().get(1); + private final CrossReference cTypeSymbolCrossReference_1_0 = (CrossReference)cTypeAssignment_1.eContents().get(0); + private final RuleCall cTypeSymbolQualifiedNameParserRuleCall_1_0_1 = (RuleCall)cTypeSymbolCrossReference_1_0.eContents().get(1); private final Keyword cEqualsSignEqualsSignKeyword_2 = (Keyword)cGroup.eContents().get(2); - private final Assignment cExactScopeAssignment_3 = (Assignment)cGroup.eContents().get(3); - private final RuleCall cExactScopeINTTerminalRuleCall_3_0 = (RuleCall)cExactScopeAssignment_3.eContents().get(0); + private final Assignment cSizeAssignment_3 = (Assignment)cGroup.eContents().get(3); + private final RuleCall cSizeINTTerminalRuleCall_3_0 = (RuleCall)cSizeAssignment_3.eContents().get(0); + private final RuleCall cFULL_STOPTerminalRuleCall_4 = (RuleCall)cGroup.eContents().get(4); - //ExactScopeDefinition: - // "scope" type=[NamedElement|QualifiedName] "==" exactScope=INT; + //ExactScope: + // "scope" type=[Symbol|QualifiedName] "==" size=INT FULL_STOP; @Override public ParserRule getRule() { return rule; } - //"scope" type=[NamedElement|QualifiedName] "==" exactScope=INT + //"scope" type=[Symbol|QualifiedName] "==" size=INT FULL_STOP public Group getGroup() { return cGroup; } //"scope" public Keyword getScopeKeyword_0() { return cScopeKeyword_0; } - //type=[NamedElement|QualifiedName] + //type=[Symbol|QualifiedName] public Assignment getTypeAssignment_1() { return cTypeAssignment_1; } - //[NamedElement|QualifiedName] - public CrossReference getTypeNamedElementCrossReference_1_0() { return cTypeNamedElementCrossReference_1_0; } + //[Symbol|QualifiedName] + public CrossReference getTypeSymbolCrossReference_1_0() { return cTypeSymbolCrossReference_1_0; } //QualifiedName - public RuleCall getTypeNamedElementQualifiedNameParserRuleCall_1_0_1() { return cTypeNamedElementQualifiedNameParserRuleCall_1_0_1; } + public RuleCall getTypeSymbolQualifiedNameParserRuleCall_1_0_1() { return cTypeSymbolQualifiedNameParserRuleCall_1_0_1; } //"==" public Keyword getEqualsSignEqualsSignKeyword_2() { return cEqualsSignEqualsSignKeyword_2; } - //exactScope=INT - public Assignment getExactScopeAssignment_3() { return cExactScopeAssignment_3; } + //size=INT + public Assignment getSizeAssignment_3() { return cSizeAssignment_3; } //INT - public RuleCall getExactScopeINTTerminalRuleCall_3_0() { return cExactScopeINTTerminalRuleCall_3_0; } + public RuleCall getSizeINTTerminalRuleCall_3_0() { return cSizeINTTerminalRuleCall_3_0; } + + //FULL_STOP + public RuleCall getFULL_STOPTerminalRuleCall_4() { return cFULL_STOPTerminalRuleCall_4; } } - public class BoundedScopeDefinitionElements extends AbstractParserRuleElementFinder { - private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.BoundedScopeDefinition"); + public class BoundedScopeElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.BoundedScope"); private final Group cGroup = (Group)rule.eContents().get(1); private final Keyword cScopeKeyword_0 = (Keyword)cGroup.eContents().get(0); private final Alternatives cAlternatives_1 = (Alternatives)cGroup.eContents().get(1); @@ -2165,8 +2482,8 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder { private final RuleCall cLowerBoundINTTerminalRuleCall_1_0_0_0_0 = (RuleCall)cLowerBoundAssignment_1_0_0_0.eContents().get(0); private final Keyword cLessThanSignEqualsSignKeyword_1_0_0_1 = (Keyword)cGroup_1_0_0.eContents().get(1); private final Assignment cTypeAssignment_1_0_1 = (Assignment)cGroup_1_0.eContents().get(1); - private final CrossReference cTypeNamedElementCrossReference_1_0_1_0 = (CrossReference)cTypeAssignment_1_0_1.eContents().get(0); - private final RuleCall cTypeNamedElementQualifiedNameParserRuleCall_1_0_1_0_1 = (RuleCall)cTypeNamedElementCrossReference_1_0_1_0.eContents().get(1); + private final CrossReference cTypeSymbolCrossReference_1_0_1_0 = (CrossReference)cTypeAssignment_1_0_1.eContents().get(0); + private final RuleCall cTypeSymbolQualifiedNameParserRuleCall_1_0_1_0_1 = (RuleCall)cTypeSymbolCrossReference_1_0_1_0.eContents().get(1); private final Keyword cLessThanSignEqualsSignKeyword_1_0_2 = (Keyword)cGroup_1_0.eContents().get(2); private final Assignment cUpperBoundAssignment_1_0_3 = (Assignment)cGroup_1_0.eContents().get(3); private final RuleCall cUpperBoundINTTerminalRuleCall_1_0_3_0 = (RuleCall)cUpperBoundAssignment_1_0_3.eContents().get(0); @@ -2175,30 +2492,31 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder { private final RuleCall cUpperBoundINTTerminalRuleCall_1_1_0_0 = (RuleCall)cUpperBoundAssignment_1_1_0.eContents().get(0); private final Keyword cGreaterThanSignEqualsSignKeyword_1_1_1 = (Keyword)cGroup_1_1.eContents().get(1); private final Assignment cTypeAssignment_1_1_2 = (Assignment)cGroup_1_1.eContents().get(2); - private final CrossReference cTypeNamedElementCrossReference_1_1_2_0 = (CrossReference)cTypeAssignment_1_1_2.eContents().get(0); - private final RuleCall cTypeNamedElementQualifiedNameParserRuleCall_1_1_2_0_1 = (RuleCall)cTypeNamedElementCrossReference_1_1_2_0.eContents().get(1); + private final CrossReference cTypeSymbolCrossReference_1_1_2_0 = (CrossReference)cTypeAssignment_1_1_2.eContents().get(0); + private final RuleCall cTypeSymbolQualifiedNameParserRuleCall_1_1_2_0_1 = (RuleCall)cTypeSymbolCrossReference_1_1_2_0.eContents().get(1); private final Group cGroup_1_1_3 = (Group)cGroup_1_1.eContents().get(3); private final Keyword cGreaterThanSignEqualsSignKeyword_1_1_3_0 = (Keyword)cGroup_1_1_3.eContents().get(0); private final Assignment cLowerBoundAssignment_1_1_3_1 = (Assignment)cGroup_1_1_3.eContents().get(1); private final RuleCall cLowerBoundINTTerminalRuleCall_1_1_3_1_0 = (RuleCall)cLowerBoundAssignment_1_1_3_1.eContents().get(0); + private final RuleCall cFULL_STOPTerminalRuleCall_2 = (RuleCall)cGroup.eContents().get(2); - //BoundedScopeDefinition: - // "scope" ((lowerBound=INT "<=")? type=[NamedElement|QualifiedName] "<=" upperBound=INT | upperBound=INT ">=" - // type=[NamedElement|QualifiedName] (">=" lowerBound=INT)?); + //BoundedScope: + // "scope" ((lowerBound=INT "<=")? type=[Symbol|QualifiedName] "<=" upperBound=INT | upperBound=INT ">=" + // type=[Symbol|QualifiedName] (">=" lowerBound=INT)?) FULL_STOP; @Override public ParserRule getRule() { return rule; } - //"scope" ((lowerBound=INT "<=")? type=[NamedElement|QualifiedName] "<=" upperBound=INT | upperBound=INT ">=" - //type=[NamedElement|QualifiedName] (">=" lowerBound=INT)?) + //"scope" ((lowerBound=INT "<=")? type=[Symbol|QualifiedName] "<=" upperBound=INT | upperBound=INT ">=" + //type=[Symbol|QualifiedName] (">=" lowerBound=INT)?) FULL_STOP public Group getGroup() { return cGroup; } //"scope" public Keyword getScopeKeyword_0() { return cScopeKeyword_0; } - //((lowerBound=INT "<=")? type=[NamedElement|QualifiedName] "<=" upperBound=INT | upperBound=INT ">=" - //type=[NamedElement|QualifiedName] (">=" lowerBound=INT)?) + //((lowerBound=INT "<=")? type=[Symbol|QualifiedName] "<=" upperBound=INT | upperBound=INT ">=" + //type=[Symbol|QualifiedName] (">=" lowerBound=INT)?) public Alternatives getAlternatives_1() { return cAlternatives_1; } - //(lowerBound=INT "<=")? type=[NamedElement|QualifiedName] "<=" upperBound=INT + //(lowerBound=INT "<=")? type=[Symbol|QualifiedName] "<=" upperBound=INT public Group getGroup_1_0() { return cGroup_1_0; } //(lowerBound=INT "<=")? @@ -2213,14 +2531,14 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder { //"<=" public Keyword getLessThanSignEqualsSignKeyword_1_0_0_1() { return cLessThanSignEqualsSignKeyword_1_0_0_1; } - //type=[NamedElement|QualifiedName] + //type=[Symbol|QualifiedName] public Assignment getTypeAssignment_1_0_1() { return cTypeAssignment_1_0_1; } - //[NamedElement|QualifiedName] - public CrossReference getTypeNamedElementCrossReference_1_0_1_0() { return cTypeNamedElementCrossReference_1_0_1_0; } + //[Symbol|QualifiedName] + public CrossReference getTypeSymbolCrossReference_1_0_1_0() { return cTypeSymbolCrossReference_1_0_1_0; } //QualifiedName - public RuleCall getTypeNamedElementQualifiedNameParserRuleCall_1_0_1_0_1() { return cTypeNamedElementQualifiedNameParserRuleCall_1_0_1_0_1; } + public RuleCall getTypeSymbolQualifiedNameParserRuleCall_1_0_1_0_1() { return cTypeSymbolQualifiedNameParserRuleCall_1_0_1_0_1; } //"<=" public Keyword getLessThanSignEqualsSignKeyword_1_0_2() { return cLessThanSignEqualsSignKeyword_1_0_2; } @@ -2231,7 +2549,7 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder { //INT public RuleCall getUpperBoundINTTerminalRuleCall_1_0_3_0() { return cUpperBoundINTTerminalRuleCall_1_0_3_0; } - //upperBound=INT ">=" type=[NamedElement|QualifiedName] (">=" lowerBound=INT)? + //upperBound=INT ">=" type=[Symbol|QualifiedName] (">=" lowerBound=INT)? public Group getGroup_1_1() { return cGroup_1_1; } //upperBound=INT @@ -2243,14 +2561,14 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder { //">=" public Keyword getGreaterThanSignEqualsSignKeyword_1_1_1() { return cGreaterThanSignEqualsSignKeyword_1_1_1; } - //type=[NamedElement|QualifiedName] + //type=[Symbol|QualifiedName] public Assignment getTypeAssignment_1_1_2() { return cTypeAssignment_1_1_2; } - //[NamedElement|QualifiedName] - public CrossReference getTypeNamedElementCrossReference_1_1_2_0() { return cTypeNamedElementCrossReference_1_1_2_0; } + //[Symbol|QualifiedName] + public CrossReference getTypeSymbolCrossReference_1_1_2_0() { return cTypeSymbolCrossReference_1_1_2_0; } //QualifiedName - public RuleCall getTypeNamedElementQualifiedNameParserRuleCall_1_1_2_0_1() { return cTypeNamedElementQualifiedNameParserRuleCall_1_1_2_0_1; } + public RuleCall getTypeSymbolQualifiedNameParserRuleCall_1_1_2_0_1() { return cTypeSymbolQualifiedNameParserRuleCall_1_1_2_0_1; } //(">=" lowerBound=INT)? public Group getGroup_1_1_3() { return cGroup_1_1_3; } @@ -2263,9 +2581,12 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder { //INT public RuleCall getLowerBoundINTTerminalRuleCall_1_1_3_1_0() { return cLowerBoundINTTerminalRuleCall_1_1_3_1_0; } + + //FULL_STOP + public RuleCall getFULL_STOPTerminalRuleCall_2() { return cFULL_STOPTerminalRuleCall_2; } } - public class LowerBoundedScopeDefinitionElements extends AbstractParserRuleElementFinder { - private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.LowerBoundedScopeDefinition"); + public class LowerBoundedScopeElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.LowerBoundedScope"); private final Group cGroup = (Group)rule.eContents().get(1); private final Keyword cScopeKeyword_0 = (Keyword)cGroup.eContents().get(0); private final Alternatives cAlternatives_1 = (Alternatives)cGroup.eContents().get(1); @@ -2274,31 +2595,32 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder { private final RuleCall cLowerBoundINTTerminalRuleCall_1_0_0_0 = (RuleCall)cLowerBoundAssignment_1_0_0.eContents().get(0); private final Keyword cLessThanSignEqualsSignKeyword_1_0_1 = (Keyword)cGroup_1_0.eContents().get(1); private final Assignment cTypeAssignment_1_0_2 = (Assignment)cGroup_1_0.eContents().get(2); - private final CrossReference cTypeNamedElementCrossReference_1_0_2_0 = (CrossReference)cTypeAssignment_1_0_2.eContents().get(0); - private final RuleCall cTypeNamedElementQualifiedNameParserRuleCall_1_0_2_0_1 = (RuleCall)cTypeNamedElementCrossReference_1_0_2_0.eContents().get(1); + private final CrossReference cTypeSymbolCrossReference_1_0_2_0 = (CrossReference)cTypeAssignment_1_0_2.eContents().get(0); + private final RuleCall cTypeSymbolQualifiedNameParserRuleCall_1_0_2_0_1 = (RuleCall)cTypeSymbolCrossReference_1_0_2_0.eContents().get(1); private final Group cGroup_1_1 = (Group)cAlternatives_1.eContents().get(1); private final Assignment cTypeAssignment_1_1_0 = (Assignment)cGroup_1_1.eContents().get(0); - private final CrossReference cTypeNamedElementCrossReference_1_1_0_0 = (CrossReference)cTypeAssignment_1_1_0.eContents().get(0); - private final RuleCall cTypeNamedElementQualifiedNameParserRuleCall_1_1_0_0_1 = (RuleCall)cTypeNamedElementCrossReference_1_1_0_0.eContents().get(1); + private final CrossReference cTypeSymbolCrossReference_1_1_0_0 = (CrossReference)cTypeAssignment_1_1_0.eContents().get(0); + private final RuleCall cTypeSymbolQualifiedNameParserRuleCall_1_1_0_0_1 = (RuleCall)cTypeSymbolCrossReference_1_1_0_0.eContents().get(1); private final Keyword cGreaterThanSignEqualsSignKeyword_1_1_1 = (Keyword)cGroup_1_1.eContents().get(1); private final Assignment cLowerBoundAssignment_1_1_2 = (Assignment)cGroup_1_1.eContents().get(2); private final RuleCall cLowerBoundINTTerminalRuleCall_1_1_2_0 = (RuleCall)cLowerBoundAssignment_1_1_2.eContents().get(0); + private final RuleCall cFULL_STOPTerminalRuleCall_2 = (RuleCall)cGroup.eContents().get(2); - //LowerBoundedScopeDefinition: - // "scope" (lowerBound=INT "<=" type=[NamedElement|QualifiedName] | type=[NamedElement|QualifiedName] ">=" - // lowerBound=INT); + //LowerBoundedScope: + // "scope" (lowerBound=INT "<=" type=[Symbol|QualifiedName] | type=[Symbol|QualifiedName] ">=" lowerBound=INT) + // FULL_STOP; @Override public ParserRule getRule() { return rule; } - //"scope" (lowerBound=INT "<=" type=[NamedElement|QualifiedName] | type=[NamedElement|QualifiedName] ">=" lowerBound=INT) + //"scope" (lowerBound=INT "<=" type=[Symbol|QualifiedName] | type=[Symbol|QualifiedName] ">=" lowerBound=INT) FULL_STOP public Group getGroup() { return cGroup; } //"scope" public Keyword getScopeKeyword_0() { return cScopeKeyword_0; } - //(lowerBound=INT "<=" type=[NamedElement|QualifiedName] | type=[NamedElement|QualifiedName] ">=" lowerBound=INT) + //(lowerBound=INT "<=" type=[Symbol|QualifiedName] | type=[Symbol|QualifiedName] ">=" lowerBound=INT) public Alternatives getAlternatives_1() { return cAlternatives_1; } - //lowerBound=INT "<=" type=[NamedElement|QualifiedName] + //lowerBound=INT "<=" type=[Symbol|QualifiedName] public Group getGroup_1_0() { return cGroup_1_0; } //lowerBound=INT @@ -2310,26 +2632,26 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder { //"<=" public Keyword getLessThanSignEqualsSignKeyword_1_0_1() { return cLessThanSignEqualsSignKeyword_1_0_1; } - //type=[NamedElement|QualifiedName] + //type=[Symbol|QualifiedName] public Assignment getTypeAssignment_1_0_2() { return cTypeAssignment_1_0_2; } - //[NamedElement|QualifiedName] - public CrossReference getTypeNamedElementCrossReference_1_0_2_0() { return cTypeNamedElementCrossReference_1_0_2_0; } + //[Symbol|QualifiedName] + public CrossReference getTypeSymbolCrossReference_1_0_2_0() { return cTypeSymbolCrossReference_1_0_2_0; } //QualifiedName - public RuleCall getTypeNamedElementQualifiedNameParserRuleCall_1_0_2_0_1() { return cTypeNamedElementQualifiedNameParserRuleCall_1_0_2_0_1; } + public RuleCall getTypeSymbolQualifiedNameParserRuleCall_1_0_2_0_1() { return cTypeSymbolQualifiedNameParserRuleCall_1_0_2_0_1; } - //type=[NamedElement|QualifiedName] ">=" lowerBound=INT + //type=[Symbol|QualifiedName] ">=" lowerBound=INT public Group getGroup_1_1() { return cGroup_1_1; } - //type=[NamedElement|QualifiedName] + //type=[Symbol|QualifiedName] public Assignment getTypeAssignment_1_1_0() { return cTypeAssignment_1_1_0; } - //[NamedElement|QualifiedName] - public CrossReference getTypeNamedElementCrossReference_1_1_0_0() { return cTypeNamedElementCrossReference_1_1_0_0; } + //[Symbol|QualifiedName] + public CrossReference getTypeSymbolCrossReference_1_1_0_0() { return cTypeSymbolCrossReference_1_1_0_0; } //QualifiedName - public RuleCall getTypeNamedElementQualifiedNameParserRuleCall_1_1_0_0_1() { return cTypeNamedElementQualifiedNameParserRuleCall_1_1_0_0_1; } + public RuleCall getTypeSymbolQualifiedNameParserRuleCall_1_1_0_0_1() { return cTypeSymbolQualifiedNameParserRuleCall_1_1_0_0_1; } //">=" public Keyword getGreaterThanSignEqualsSignKeyword_1_1_1() { return cGreaterThanSignEqualsSignKeyword_1_1_1; } @@ -2339,20 +2661,24 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder { //INT public RuleCall getLowerBoundINTTerminalRuleCall_1_1_2_0() { return cLowerBoundINTTerminalRuleCall_1_1_2_0; } + + //FULL_STOP + public RuleCall getFULL_STOPTerminalRuleCall_2() { return cFULL_STOPTerminalRuleCall_2; } } - public class ObjectiveDefinitionElements extends AbstractParserRuleElementFinder { - private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.ObjectiveDefinition"); + public class ObjectiveDeclarationElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.ObjectiveDeclaration"); private final Group cGroup = (Group)rule.eContents().get(1); private final Assignment cKindAssignment_0 = (Assignment)cGroup.eContents().get(0); private final RuleCall cKindObjectiveKindEnumRuleCall_0_0 = (RuleCall)cKindAssignment_0.eContents().get(0); private final Assignment cObjectiveAssignment_1 = (Assignment)cGroup.eContents().get(1); private final RuleCall cObjectiveExpressionParserRuleCall_1_0 = (RuleCall)cObjectiveAssignment_1.eContents().get(0); + private final RuleCall cFULL_STOPTerminalRuleCall_2 = (RuleCall)cGroup.eContents().get(2); - //ObjectiveDefinition: - // kind=ObjectiveKind objective=Expression; + //ObjectiveDeclaration: + // kind=ObjectiveKind objective=Expression FULL_STOP; @Override public ParserRule getRule() { return rule; } - //kind=ObjectiveKind objective=Expression + //kind=ObjectiveKind objective=Expression FULL_STOP public Group getGroup() { return cGroup; } //kind=ObjectiveKind @@ -2366,6 +2692,9 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder { //Expression public RuleCall getObjectiveExpressionParserRuleCall_1_0() { return cObjectiveExpressionParserRuleCall_1_0; } + + //FULL_STOP + public RuleCall getFULL_STOPTerminalRuleCall_2() { return cFULL_STOPTerminalRuleCall_2; } } public class UpperMultiplictyElements extends AbstractParserRuleElementFinder { private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.UpperMultiplicty"); @@ -2390,116 +2719,155 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder { private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.Real"); private final Group cGroup = (Group)rule.eContents().get(1); private final RuleCall cINTTerminalRuleCall_0 = (RuleCall)cGroup.eContents().get(0); - private final Group cGroup_1 = (Group)cGroup.eContents().get(1); - private final Keyword cFullStopKeyword_1_0 = (Keyword)cGroup_1.eContents().get(0); - private final RuleCall cINTTerminalRuleCall_1_1 = (RuleCall)cGroup_1.eContents().get(1); + private final Keyword cFullStopKeyword_1 = (Keyword)cGroup.eContents().get(1); + private final RuleCall cINTTerminalRuleCall_2 = (RuleCall)cGroup.eContents().get(2); //Real ecore::EBigDecimal hidden(): - // INT ("." INT)?; + // INT "." INT; @Override public ParserRule getRule() { return rule; } - //INT ("." INT)? + //INT "." INT public Group getGroup() { return cGroup; } //INT public RuleCall getINTTerminalRuleCall_0() { return cINTTerminalRuleCall_0; } - //("." INT)? - public Group getGroup_1() { return cGroup_1; } - //"." - public Keyword getFullStopKeyword_1_0() { return cFullStopKeyword_1_0; } + public Keyword getFullStopKeyword_1() { return cFullStopKeyword_1; } //INT - public RuleCall getINTTerminalRuleCall_1_1() { return cINTTerminalRuleCall_1_1; } + public RuleCall getINTTerminalRuleCall_2() { return cINTTerminalRuleCall_2; } } - public class QualifiedNameElements extends AbstractParserRuleElementFinder { - private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.QualifiedName"); + public class QualifiedNameSegmentElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.QualifiedNameSegment"); private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); - private final Group cGroup_0 = (Group)cAlternatives.eContents().get(0); - private final RuleCall cIDTerminalRuleCall_0_0 = (RuleCall)cGroup_0.eContents().get(0); - private final Group cGroup_0_1 = (Group)cGroup_0.eContents().get(1); - private final Keyword cFullStopKeyword_0_1_0 = (Keyword)cGroup_0_1.eContents().get(0); - private final RuleCall cIDTerminalRuleCall_0_1_1 = (RuleCall)cGroup_0_1.eContents().get(1); + private final RuleCall cIDTerminalRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0); private final RuleCall cQUOTED_IDTerminalRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1); + private final Keyword cObjectKeyword_2 = (Keyword)cAlternatives.eContents().get(2); - //QualifiedName hidden(): - // ID ("." ID)* | QUOTED_ID; + //QualifiedNameSegment: + // ID | QUOTED_ID | "object"; @Override public ParserRule getRule() { return rule; } - //ID ("." ID)* | QUOTED_ID + //ID | QUOTED_ID | "object" public Alternatives getAlternatives() { return cAlternatives; } - //ID ("." ID)* - public Group getGroup_0() { return cGroup_0; } - //ID - public RuleCall getIDTerminalRuleCall_0_0() { return cIDTerminalRuleCall_0_0; } + public RuleCall getIDTerminalRuleCall_0() { return cIDTerminalRuleCall_0; } - //("." ID)* - public Group getGroup_0_1() { return cGroup_0_1; } + //QUOTED_ID + public RuleCall getQUOTED_IDTerminalRuleCall_1() { return cQUOTED_IDTerminalRuleCall_1; } - //"." - public Keyword getFullStopKeyword_0_1_0() { return cFullStopKeyword_0_1_0; } + //"object" + public Keyword getObjectKeyword_2() { return cObjectKeyword_2; } + } + public class QualifiedNameElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.QualifiedName"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final RuleCall cQualifiedNameSegmentParserRuleCall_0 = (RuleCall)cGroup.eContents().get(0); + private final Group cGroup_1 = (Group)cGroup.eContents().get(1); + private final Keyword cColonColonKeyword_1_0 = (Keyword)cGroup_1.eContents().get(0); + private final RuleCall cQualifiedNameSegmentParserRuleCall_1_1 = (RuleCall)cGroup_1.eContents().get(1); - //ID - public RuleCall getIDTerminalRuleCall_0_1_1() { return cIDTerminalRuleCall_0_1_1; } + //QualifiedName hidden(): + // QualifiedNameSegment ("::" QualifiedNameSegment)*; + @Override public ParserRule getRule() { return rule; } - //QUOTED_ID - public RuleCall getQUOTED_IDTerminalRuleCall_1() { return cQUOTED_IDTerminalRuleCall_1; } + //QualifiedNameSegment ("::" QualifiedNameSegment)* + public Group getGroup() { return cGroup; } + + //QualifiedNameSegment + public RuleCall getQualifiedNameSegmentParserRuleCall_0() { return cQualifiedNameSegmentParserRuleCall_0; } + + //("::" QualifiedNameSegment)* + public Group getGroup_1() { return cGroup_1; } + + //"::" + public Keyword getColonColonKeyword_1_0() { return cColonColonKeyword_1_0; } + + //QualifiedNameSegment + public RuleCall getQualifiedNameSegmentParserRuleCall_1_1() { return cQualifiedNameSegmentParserRuleCall_1_1; } } - public class ImplicationOperatorElements extends AbstractEnumRuleElementFinder { - private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.ImplicationOperator"); - private final EnumLiteralDeclaration cIMPLIESEnumLiteralDeclaration = (EnumLiteralDeclaration)rule.eContents().get(1); - private final Keyword cIMPLIESEqualsSignGreaterThanSignKeyword_0 = (Keyword)cIMPLIESEnumLiteralDeclaration.eContents().get(0); - - //enum ImplicationOperator returns BinaryOperator: - // IMPLIES="=>"; + public class AttributeKindElements extends AbstractEnumRuleElementFinder { + private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.AttributeKind"); + private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); + private final EnumLiteralDeclaration cFUNCTIONALEnumLiteralDeclaration_0 = (EnumLiteralDeclaration)cAlternatives.eContents().get(0); + private final Keyword cFUNCTIONALFunctionalKeyword_0_0 = (Keyword)cFUNCTIONALEnumLiteralDeclaration_0.eContents().get(0); + private final EnumLiteralDeclaration cERROREnumLiteralDeclaration_1 = (EnumLiteralDeclaration)cAlternatives.eContents().get(1); + private final Keyword cERRORErrorKeyword_1_0 = (Keyword)cERROREnumLiteralDeclaration_1.eContents().get(0); + private final EnumLiteralDeclaration cROOTEnumLiteralDeclaration_2 = (EnumLiteralDeclaration)cAlternatives.eContents().get(2); + private final Keyword cROOTRootKeyword_2_0 = (Keyword)cROOTEnumLiteralDeclaration_2.eContents().get(0); + private final EnumLiteralDeclaration cCONTAINMENTEnumLiteralDeclaration_3 = (EnumLiteralDeclaration)cAlternatives.eContents().get(3); + private final Keyword cCONTAINMENTContainmentKeyword_3_0 = (Keyword)cCONTAINMENTEnumLiteralDeclaration_3.eContents().get(0); + + //enum AttributeKind: + // FUNCTIONAL="functional" | ERROR="error" | ROOT="root" | CONTAINMENT="containment"; public EnumRule getRule() { return rule; } - //IMPLIES="=>" - public EnumLiteralDeclaration getIMPLIESEnumLiteralDeclaration() { return cIMPLIESEnumLiteralDeclaration; } + //FUNCTIONAL="functional" | ERROR="error" | ROOT="root" | CONTAINMENT="containment" + public Alternatives getAlternatives() { return cAlternatives; } + + //FUNCTIONAL="functional" + public EnumLiteralDeclaration getFUNCTIONALEnumLiteralDeclaration_0() { return cFUNCTIONALEnumLiteralDeclaration_0; } - //"=>" - public Keyword getIMPLIESEqualsSignGreaterThanSignKeyword_0() { return cIMPLIESEqualsSignGreaterThanSignKeyword_0; } + //"functional" + public Keyword getFUNCTIONALFunctionalKeyword_0_0() { return cFUNCTIONALFunctionalKeyword_0_0; } + + //ERROR="error" + public EnumLiteralDeclaration getERROREnumLiteralDeclaration_1() { return cERROREnumLiteralDeclaration_1; } + + //"error" + public Keyword getERRORErrorKeyword_1_0() { return cERRORErrorKeyword_1_0; } + + //ROOT="root" + public EnumLiteralDeclaration getROOTEnumLiteralDeclaration_2() { return cROOTEnumLiteralDeclaration_2; } + + //"root" + public Keyword getROOTRootKeyword_2_0() { return cROOTRootKeyword_2_0; } + + //CONTAINMENT="containment" + public EnumLiteralDeclaration getCONTAINMENTEnumLiteralDeclaration_3() { return cCONTAINMENTEnumLiteralDeclaration_3; } + + //"containment" + public Keyword getCONTAINMENTContainmentKeyword_3_0() { return cCONTAINMENTContainmentKeyword_3_0; } } public class ComparisonOperatorElements extends AbstractEnumRuleElementFinder { private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.ComparisonOperator"); private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); - private final EnumLiteralDeclaration cEQEnumLiteralDeclaration_0 = (EnumLiteralDeclaration)cAlternatives.eContents().get(0); - private final Keyword cEQEqualsSignEqualsSignKeyword_0_0 = (Keyword)cEQEnumLiteralDeclaration_0.eContents().get(0); - private final EnumLiteralDeclaration cNOT_EQEnumLiteralDeclaration_1 = (EnumLiteralDeclaration)cAlternatives.eContents().get(1); - private final Keyword cNOT_EQExclamationMarkEqualsSignKeyword_1_0 = (Keyword)cNOT_EQEnumLiteralDeclaration_1.eContents().get(0); + private final EnumLiteralDeclaration cEQUALSEnumLiteralDeclaration_0 = (EnumLiteralDeclaration)cAlternatives.eContents().get(0); + private final Keyword cEQUALSEqualsSignEqualsSignKeyword_0_0 = (Keyword)cEQUALSEnumLiteralDeclaration_0.eContents().get(0); + private final EnumLiteralDeclaration cNOT_EQUALSEnumLiteralDeclaration_1 = (EnumLiteralDeclaration)cAlternatives.eContents().get(1); + private final Keyword cNOT_EQUALSExclamationMarkEqualsSignKeyword_1_0 = (Keyword)cNOT_EQUALSEnumLiteralDeclaration_1.eContents().get(0); private final EnumLiteralDeclaration cLESSEnumLiteralDeclaration_2 = (EnumLiteralDeclaration)cAlternatives.eContents().get(2); private final Keyword cLESSLessThanSignKeyword_2_0 = (Keyword)cLESSEnumLiteralDeclaration_2.eContents().get(0); - private final EnumLiteralDeclaration cLESS_EQEnumLiteralDeclaration_3 = (EnumLiteralDeclaration)cAlternatives.eContents().get(3); - private final Keyword cLESS_EQLessThanSignEqualsSignKeyword_3_0 = (Keyword)cLESS_EQEnumLiteralDeclaration_3.eContents().get(0); + private final EnumLiteralDeclaration cLESS_EQUALSEnumLiteralDeclaration_3 = (EnumLiteralDeclaration)cAlternatives.eContents().get(3); + private final Keyword cLESS_EQUALSLessThanSignEqualsSignKeyword_3_0 = (Keyword)cLESS_EQUALSEnumLiteralDeclaration_3.eContents().get(0); private final EnumLiteralDeclaration cGREATEREnumLiteralDeclaration_4 = (EnumLiteralDeclaration)cAlternatives.eContents().get(4); private final Keyword cGREATERGreaterThanSignKeyword_4_0 = (Keyword)cGREATEREnumLiteralDeclaration_4.eContents().get(0); - private final EnumLiteralDeclaration cGREATER_EQEnumLiteralDeclaration_5 = (EnumLiteralDeclaration)cAlternatives.eContents().get(5); - private final Keyword cGREATER_EQGreaterThanSignEqualsSignKeyword_5_0 = (Keyword)cGREATER_EQEnumLiteralDeclaration_5.eContents().get(0); + private final EnumLiteralDeclaration cGREATER_EQUALSEnumLiteralDeclaration_5 = (EnumLiteralDeclaration)cAlternatives.eContents().get(5); + private final Keyword cGREATER_EQUALSGreaterThanSignEqualsSignKeyword_5_0 = (Keyword)cGREATER_EQUALSEnumLiteralDeclaration_5.eContents().get(0); private final EnumLiteralDeclaration cINEnumLiteralDeclaration_6 = (EnumLiteralDeclaration)cAlternatives.eContents().get(6); private final Keyword cINInKeyword_6_0 = (Keyword)cINEnumLiteralDeclaration_6.eContents().get(0); //enum ComparisonOperator returns BinaryOperator: - // EQ="==" | NOT_EQ="!=" | LESS="<" | LESS_EQ="<=" | GREATER=">" | GREATER_EQ=">=" | IN="in"; + // EQUALS="==" | NOT_EQUALS="!=" | LESS="<" | LESS_EQUALS="<=" | GREATER=">" | GREATER_EQUALS=">=" | IN="in"; public EnumRule getRule() { return rule; } - //EQ="==" | NOT_EQ="!=" | LESS="<" | LESS_EQ="<=" | GREATER=">" | GREATER_EQ=">=" | IN="in" + //EQUALS="==" | NOT_EQUALS="!=" | LESS="<" | LESS_EQUALS="<=" | GREATER=">" | GREATER_EQUALS=">=" | IN="in" public Alternatives getAlternatives() { return cAlternatives; } - //EQ="==" - public EnumLiteralDeclaration getEQEnumLiteralDeclaration_0() { return cEQEnumLiteralDeclaration_0; } + //EQUALS="==" + public EnumLiteralDeclaration getEQUALSEnumLiteralDeclaration_0() { return cEQUALSEnumLiteralDeclaration_0; } //"==" - public Keyword getEQEqualsSignEqualsSignKeyword_0_0() { return cEQEqualsSignEqualsSignKeyword_0_0; } + public Keyword getEQUALSEqualsSignEqualsSignKeyword_0_0() { return cEQUALSEqualsSignEqualsSignKeyword_0_0; } - //NOT_EQ="!=" - public EnumLiteralDeclaration getNOT_EQEnumLiteralDeclaration_1() { return cNOT_EQEnumLiteralDeclaration_1; } + //NOT_EQUALS="!=" + public EnumLiteralDeclaration getNOT_EQUALSEnumLiteralDeclaration_1() { return cNOT_EQUALSEnumLiteralDeclaration_1; } //"!=" - public Keyword getNOT_EQExclamationMarkEqualsSignKeyword_1_0() { return cNOT_EQExclamationMarkEqualsSignKeyword_1_0; } + public Keyword getNOT_EQUALSExclamationMarkEqualsSignKeyword_1_0() { return cNOT_EQUALSExclamationMarkEqualsSignKeyword_1_0; } //LESS="<" public EnumLiteralDeclaration getLESSEnumLiteralDeclaration_2() { return cLESSEnumLiteralDeclaration_2; } @@ -2507,11 +2875,11 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder { //"<" public Keyword getLESSLessThanSignKeyword_2_0() { return cLESSLessThanSignKeyword_2_0; } - //LESS_EQ="<=" - public EnumLiteralDeclaration getLESS_EQEnumLiteralDeclaration_3() { return cLESS_EQEnumLiteralDeclaration_3; } + //LESS_EQUALS="<=" + public EnumLiteralDeclaration getLESS_EQUALSEnumLiteralDeclaration_3() { return cLESS_EQUALSEnumLiteralDeclaration_3; } //"<=" - public Keyword getLESS_EQLessThanSignEqualsSignKeyword_3_0() { return cLESS_EQLessThanSignEqualsSignKeyword_3_0; } + public Keyword getLESS_EQUALSLessThanSignEqualsSignKeyword_3_0() { return cLESS_EQUALSLessThanSignEqualsSignKeyword_3_0; } //GREATER=">" public EnumLiteralDeclaration getGREATEREnumLiteralDeclaration_4() { return cGREATEREnumLiteralDeclaration_4; } @@ -2519,11 +2887,11 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder { //">" public Keyword getGREATERGreaterThanSignKeyword_4_0() { return cGREATERGreaterThanSignKeyword_4_0; } - //GREATER_EQ=">=" - public EnumLiteralDeclaration getGREATER_EQEnumLiteralDeclaration_5() { return cGREATER_EQEnumLiteralDeclaration_5; } + //GREATER_EQUALS=">=" + public EnumLiteralDeclaration getGREATER_EQUALSEnumLiteralDeclaration_5() { return cGREATER_EQUALSEnumLiteralDeclaration_5; } //">=" - public Keyword getGREATER_EQGreaterThanSignEqualsSignKeyword_5_0() { return cGREATER_EQGreaterThanSignEqualsSignKeyword_5_0; } + public Keyword getGREATER_EQUALSGreaterThanSignEqualsSignKeyword_5_0() { return cGREATER_EQUALSGreaterThanSignEqualsSignKeyword_5_0; } //IN="in" public EnumLiteralDeclaration getINEnumLiteralDeclaration_6() { return cINEnumLiteralDeclaration_6; } @@ -2534,56 +2902,56 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder { public class AdditiveBinaryOperatorElements extends AbstractEnumRuleElementFinder { private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.AdditiveBinaryOperator"); private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); - private final EnumLiteralDeclaration cADDEnumLiteralDeclaration_0 = (EnumLiteralDeclaration)cAlternatives.eContents().get(0); - private final Keyword cADDPlusSignKeyword_0_0 = (Keyword)cADDEnumLiteralDeclaration_0.eContents().get(0); - private final EnumLiteralDeclaration cSUBEnumLiteralDeclaration_1 = (EnumLiteralDeclaration)cAlternatives.eContents().get(1); - private final Keyword cSUBHyphenMinusKeyword_1_0 = (Keyword)cSUBEnumLiteralDeclaration_1.eContents().get(0); + private final EnumLiteralDeclaration cPLUSEnumLiteralDeclaration_0 = (EnumLiteralDeclaration)cAlternatives.eContents().get(0); + private final Keyword cPLUSPlusSignKeyword_0_0 = (Keyword)cPLUSEnumLiteralDeclaration_0.eContents().get(0); + private final EnumLiteralDeclaration cMINUSEnumLiteralDeclaration_1 = (EnumLiteralDeclaration)cAlternatives.eContents().get(1); + private final Keyword cMINUSHyphenMinusKeyword_1_0 = (Keyword)cMINUSEnumLiteralDeclaration_1.eContents().get(0); //enum AdditiveBinaryOperator returns BinaryOperator: - // ADD="+" | SUB="-"; + // PLUS="+" | MINUS="-"; public EnumRule getRule() { return rule; } - //ADD="+" | SUB="-" + //PLUS="+" | MINUS="-" public Alternatives getAlternatives() { return cAlternatives; } - //ADD="+" - public EnumLiteralDeclaration getADDEnumLiteralDeclaration_0() { return cADDEnumLiteralDeclaration_0; } + //PLUS="+" + public EnumLiteralDeclaration getPLUSEnumLiteralDeclaration_0() { return cPLUSEnumLiteralDeclaration_0; } //"+" - public Keyword getADDPlusSignKeyword_0_0() { return cADDPlusSignKeyword_0_0; } + public Keyword getPLUSPlusSignKeyword_0_0() { return cPLUSPlusSignKeyword_0_0; } - //SUB="-" - public EnumLiteralDeclaration getSUBEnumLiteralDeclaration_1() { return cSUBEnumLiteralDeclaration_1; } + //MINUS="-" + public EnumLiteralDeclaration getMINUSEnumLiteralDeclaration_1() { return cMINUSEnumLiteralDeclaration_1; } //"-" - public Keyword getSUBHyphenMinusKeyword_1_0() { return cSUBHyphenMinusKeyword_1_0; } + public Keyword getMINUSHyphenMinusKeyword_1_0() { return cMINUSHyphenMinusKeyword_1_0; } } public class MultiplicativeBinaryOperatorElements extends AbstractEnumRuleElementFinder { private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.MultiplicativeBinaryOperator"); private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); - private final EnumLiteralDeclaration cMULEnumLiteralDeclaration_0 = (EnumLiteralDeclaration)cAlternatives.eContents().get(0); - private final Keyword cMULAsteriskKeyword_0_0 = (Keyword)cMULEnumLiteralDeclaration_0.eContents().get(0); - private final EnumLiteralDeclaration cDIVEnumLiteralDeclaration_1 = (EnumLiteralDeclaration)cAlternatives.eContents().get(1); - private final Keyword cDIVSolidusKeyword_1_0 = (Keyword)cDIVEnumLiteralDeclaration_1.eContents().get(0); + private final EnumLiteralDeclaration cMULTIPLYEnumLiteralDeclaration_0 = (EnumLiteralDeclaration)cAlternatives.eContents().get(0); + private final Keyword cMULTIPLYAsteriskKeyword_0_0 = (Keyword)cMULTIPLYEnumLiteralDeclaration_0.eContents().get(0); + private final EnumLiteralDeclaration cDIVIDEEnumLiteralDeclaration_1 = (EnumLiteralDeclaration)cAlternatives.eContents().get(1); + private final Keyword cDIVIDESolidusKeyword_1_0 = (Keyword)cDIVIDEEnumLiteralDeclaration_1.eContents().get(0); //enum MultiplicativeBinaryOperator returns BinaryOperator: - // MUL="*" | DIV="/"; + // MULTIPLY="*" | DIVIDE="/"; public EnumRule getRule() { return rule; } - //MUL="*" | DIV="/" + //MULTIPLY="*" | DIVIDE="/" public Alternatives getAlternatives() { return cAlternatives; } - //MUL="*" - public EnumLiteralDeclaration getMULEnumLiteralDeclaration_0() { return cMULEnumLiteralDeclaration_0; } + //MULTIPLY="*" + public EnumLiteralDeclaration getMULTIPLYEnumLiteralDeclaration_0() { return cMULTIPLYEnumLiteralDeclaration_0; } //"*" - public Keyword getMULAsteriskKeyword_0_0() { return cMULAsteriskKeyword_0_0; } + public Keyword getMULTIPLYAsteriskKeyword_0_0() { return cMULTIPLYAsteriskKeyword_0_0; } - //DIV="/" - public EnumLiteralDeclaration getDIVEnumLiteralDeclaration_1() { return cDIVEnumLiteralDeclaration_1; } + //DIVIDE="/" + public EnumLiteralDeclaration getDIVIDEEnumLiteralDeclaration_1() { return cDIVIDEEnumLiteralDeclaration_1; } //"/" - public Keyword getDIVSolidusKeyword_1_0() { return cDIVSolidusKeyword_1_0; } + public Keyword getDIVIDESolidusKeyword_1_0() { return cDIVIDESolidusKeyword_1_0; } } public class ExponentialOpElements extends AbstractEnumRuleElementFinder { private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.ExponentialOp"); @@ -2600,34 +2968,30 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder { //"^" public Keyword getPOWCircumflexAccentKeyword_0() { return cPOWCircumflexAccentKeyword_0; } } - public class UnaryOpElements extends AbstractEnumRuleElementFinder { - private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.UnaryOp"); + public class UnaryOperatorElements extends AbstractEnumRuleElementFinder { + private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.UnaryOperator"); private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); - private final EnumLiteralDeclaration cNEGEnumLiteralDeclaration_0 = (EnumLiteralDeclaration)cAlternatives.eContents().get(0); - private final Keyword cNEGExclamationMarkKeyword_0_0 = (Keyword)cNEGEnumLiteralDeclaration_0.eContents().get(0); + private final EnumLiteralDeclaration cNOTEnumLiteralDeclaration_0 = (EnumLiteralDeclaration)cAlternatives.eContents().get(0); + private final Keyword cNOTExclamationMarkKeyword_0_0 = (Keyword)cNOTEnumLiteralDeclaration_0.eContents().get(0); private final EnumLiteralDeclaration cPLUSEnumLiteralDeclaration_1 = (EnumLiteralDeclaration)cAlternatives.eContents().get(1); private final Keyword cPLUSPlusSignKeyword_1_0 = (Keyword)cPLUSEnumLiteralDeclaration_1.eContents().get(0); private final EnumLiteralDeclaration cMINUSEnumLiteralDeclaration_2 = (EnumLiteralDeclaration)cAlternatives.eContents().get(2); private final Keyword cMINUSHyphenMinusKeyword_2_0 = (Keyword)cMINUSEnumLiteralDeclaration_2.eContents().get(0); - private final EnumLiteralDeclaration cMAYEnumLiteralDeclaration_3 = (EnumLiteralDeclaration)cAlternatives.eContents().get(3); - private final Keyword cMAYMayKeyword_3_0 = (Keyword)cMAYEnumLiteralDeclaration_3.eContents().get(0); - private final EnumLiteralDeclaration cMUSTEnumLiteralDeclaration_4 = (EnumLiteralDeclaration)cAlternatives.eContents().get(4); - private final Keyword cMUSTMustKeyword_4_0 = (Keyword)cMUSTEnumLiteralDeclaration_4.eContents().get(0); - private final EnumLiteralDeclaration cCURRENTEnumLiteralDeclaration_5 = (EnumLiteralDeclaration)cAlternatives.eContents().get(5); - private final Keyword cCURRENTCurrentKeyword_5_0 = (Keyword)cCURRENTEnumLiteralDeclaration_5.eContents().get(0); - - //enum UnaryOp: - // NEG="!" | PLUS="+" | MINUS="-" | MAY="may" | MUST="must" | CURRENT="current"; + private final EnumLiteralDeclaration cMAYBEEnumLiteralDeclaration_3 = (EnumLiteralDeclaration)cAlternatives.eContents().get(3); + private final Keyword cMAYBEQuestionMarkKeyword_3_0 = (Keyword)cMAYBEEnumLiteralDeclaration_3.eContents().get(0); + + //enum UnaryOperator: + // NOT="!" | PLUS="+" | MINUS="-" | MAYBE="?"; public EnumRule getRule() { return rule; } - //NEG="!" | PLUS="+" | MINUS="-" | MAY="may" | MUST="must" | CURRENT="current" + //NOT="!" | PLUS="+" | MINUS="-" | MAYBE="?" public Alternatives getAlternatives() { return cAlternatives; } - //NEG="!" - public EnumLiteralDeclaration getNEGEnumLiteralDeclaration_0() { return cNEGEnumLiteralDeclaration_0; } + //NOT="!" + public EnumLiteralDeclaration getNOTEnumLiteralDeclaration_0() { return cNOTEnumLiteralDeclaration_0; } //"!" - public Keyword getNEGExclamationMarkKeyword_0_0() { return cNEGExclamationMarkKeyword_0_0; } + public Keyword getNOTExclamationMarkKeyword_0_0() { return cNOTExclamationMarkKeyword_0_0; } //PLUS="+" public EnumLiteralDeclaration getPLUSEnumLiteralDeclaration_1() { return cPLUSEnumLiteralDeclaration_1; } @@ -2641,58 +3005,11 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder { //"-" public Keyword getMINUSHyphenMinusKeyword_2_0() { return cMINUSHyphenMinusKeyword_2_0; } - //MAY="may" - public EnumLiteralDeclaration getMAYEnumLiteralDeclaration_3() { return cMAYEnumLiteralDeclaration_3; } - - //"may" - public Keyword getMAYMayKeyword_3_0() { return cMAYMayKeyword_3_0; } - - //MUST="must" - public EnumLiteralDeclaration getMUSTEnumLiteralDeclaration_4() { return cMUSTEnumLiteralDeclaration_4; } - - //"must" - public Keyword getMUSTMustKeyword_4_0() { return cMUSTMustKeyword_4_0; } - - //CURRENT="current" - public EnumLiteralDeclaration getCURRENTEnumLiteralDeclaration_5() { return cCURRENTEnumLiteralDeclaration_5; } + //MAYBE="?" + public EnumLiteralDeclaration getMAYBEEnumLiteralDeclaration_3() { return cMAYBEEnumLiteralDeclaration_3; } - //"current" - public Keyword getCURRENTCurrentKeyword_5_0() { return cCURRENTCurrentKeyword_5_0; } - } - public class QuantifierElements extends AbstractEnumRuleElementFinder { - private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.Quantifier"); - private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); - private final EnumLiteralDeclaration cEXISTSEnumLiteralDeclaration_0 = (EnumLiteralDeclaration)cAlternatives.eContents().get(0); - private final Keyword cEXISTSExistsKeyword_0_0 = (Keyword)cEXISTSEnumLiteralDeclaration_0.eContents().get(0); - private final EnumLiteralDeclaration cFORALLEnumLiteralDeclaration_1 = (EnumLiteralDeclaration)cAlternatives.eContents().get(1); - private final Keyword cFORALLForallKeyword_1_0 = (Keyword)cFORALLEnumLiteralDeclaration_1.eContents().get(0); - private final EnumLiteralDeclaration cCOUNTEnumLiteralDeclaration_2 = (EnumLiteralDeclaration)cAlternatives.eContents().get(2); - private final Keyword cCOUNTCountKeyword_2_0 = (Keyword)cCOUNTEnumLiteralDeclaration_2.eContents().get(0); - - //enum Quantifier: - // EXISTS="exists" | FORALL="forall" | COUNT="count"; - public EnumRule getRule() { return rule; } - - //EXISTS="exists" | FORALL="forall" | COUNT="count" - public Alternatives getAlternatives() { return cAlternatives; } - - //EXISTS="exists" - public EnumLiteralDeclaration getEXISTSEnumLiteralDeclaration_0() { return cEXISTSEnumLiteralDeclaration_0; } - - //"exists" - public Keyword getEXISTSExistsKeyword_0_0() { return cEXISTSExistsKeyword_0_0; } - - //FORALL="forall" - public EnumLiteralDeclaration getFORALLEnumLiteralDeclaration_1() { return cFORALLEnumLiteralDeclaration_1; } - - //"forall" - public Keyword getFORALLForallKeyword_1_0() { return cFORALLForallKeyword_1_0; } - - //COUNT="count" - public EnumLiteralDeclaration getCOUNTEnumLiteralDeclaration_2() { return cCOUNTEnumLiteralDeclaration_2; } - - //"count" - public Keyword getCOUNTCountKeyword_2_0() { return cCOUNTCountKeyword_2_0; } + //"?" + public Keyword getMAYBEQuestionMarkKeyword_3_0() { return cMAYBEQuestionMarkKeyword_3_0; } } public class LogicValueElements extends AbstractEnumRuleElementFinder { private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.LogicValue"); @@ -2740,49 +3057,53 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder { public class ObjectiveKindElements extends AbstractEnumRuleElementFinder { private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.ObjectiveKind"); private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); - private final EnumLiteralDeclaration cMINIMIZEEnumLiteralDeclaration_0 = (EnumLiteralDeclaration)cAlternatives.eContents().get(0); - private final Keyword cMINIMIZEMinimizeKeyword_0_0 = (Keyword)cMINIMIZEEnumLiteralDeclaration_0.eContents().get(0); - private final EnumLiteralDeclaration cMAXIMIZEEnumLiteralDeclaration_1 = (EnumLiteralDeclaration)cAlternatives.eContents().get(1); - private final Keyword cMAXIMIZEMaximizeKeyword_1_0 = (Keyword)cMAXIMIZEEnumLiteralDeclaration_1.eContents().get(0); + private final EnumLiteralDeclaration cMINIMIZATIONEnumLiteralDeclaration_0 = (EnumLiteralDeclaration)cAlternatives.eContents().get(0); + private final Keyword cMINIMIZATIONMinimizeKeyword_0_0 = (Keyword)cMINIMIZATIONEnumLiteralDeclaration_0.eContents().get(0); + private final EnumLiteralDeclaration cMAXIMIZATIONEnumLiteralDeclaration_1 = (EnumLiteralDeclaration)cAlternatives.eContents().get(1); + private final Keyword cMAXIMIZATIONMaximizeKeyword_1_0 = (Keyword)cMAXIMIZATIONEnumLiteralDeclaration_1.eContents().get(0); //enum ObjectiveKind: - // MINIMIZE="minimize" | MAXIMIZE="maximize"; + // MINIMIZATION="minimize" | MAXIMIZATION="maximize"; public EnumRule getRule() { return rule; } - //MINIMIZE="minimize" | MAXIMIZE="maximize" + //MINIMIZATION="minimize" | MAXIMIZATION="maximize" public Alternatives getAlternatives() { return cAlternatives; } - //MINIMIZE="minimize" - public EnumLiteralDeclaration getMINIMIZEEnumLiteralDeclaration_0() { return cMINIMIZEEnumLiteralDeclaration_0; } + //MINIMIZATION="minimize" + public EnumLiteralDeclaration getMINIMIZATIONEnumLiteralDeclaration_0() { return cMINIMIZATIONEnumLiteralDeclaration_0; } //"minimize" - public Keyword getMINIMIZEMinimizeKeyword_0_0() { return cMINIMIZEMinimizeKeyword_0_0; } + public Keyword getMINIMIZATIONMinimizeKeyword_0_0() { return cMINIMIZATIONMinimizeKeyword_0_0; } - //MAXIMIZE="maximize" - public EnumLiteralDeclaration getMAXIMIZEEnumLiteralDeclaration_1() { return cMAXIMIZEEnumLiteralDeclaration_1; } + //MAXIMIZATION="maximize" + public EnumLiteralDeclaration getMAXIMIZATIONEnumLiteralDeclaration_1() { return cMAXIMIZATIONEnumLiteralDeclaration_1; } //"maximize" - public Keyword getMAXIMIZEMaximizeKeyword_1_0() { return cMAXIMIZEMaximizeKeyword_1_0; } + public Keyword getMAXIMIZATIONMaximizeKeyword_1_0() { return cMAXIMIZATIONMaximizeKeyword_1_0; } } private final ProblemElements pProblem; private final StatementElements pStatement; + private final ImportElements pImport; + private final UriImportElements pUriImport; + private final NamespaceImportElements pNamespaceImport; private final AssertionOrDefinitionElements pAssertionOrDefinition; private final PredicateDefinitionElements pPredicateDefinition; - private final UnnamedErrorPrediateDefinitionElements pUnnamedErrorPrediateDefinition; - private final DefaultDefinitionElements pDefaultDefinition; - private final MetricDefinitionElements pMetricDefinition; - private final ExternPredicateDefinitionElements pExternPredicateDefinition; - private final ExternMetricDefinitionElements pExternMetricDefinition; - private final ExternAggregatorDefinitionElements pExternAggregatorDefinition; - private final ExternDatatypeDefinitionElements pExternDatatypeDefinition; - private final VariableElements pVariable; + private final UnnamedErrorPredicateDefintionElements pUnnamedErrorPredicateDefintion; + private final DefaultAssertionElements pDefaultAssertion; + private final FunctionDefinitionElements pFunctionDefinition; + private final TypeReferenceElements pTypeReference; + private final AttributeKindElements eAttributeKind; + private final AttributeElements pAttribute; + private final ExternDeclarationElements pExternDeclaration; + private final ExternPredicateDeclarationElements pExternPredicateDeclaration; + private final ExternFunctionDeclarationElements pExternFunctionDeclaration; + private final ExternAggregationOperatorDeclarationElements pExternAggregationOperatorDeclaration; + private final ExternDatatypeDeclarationElements pExternDatatypeDeclaration; private final ExpressionElements pExpression; - private final IfElseElements pIfElse; - private final LetElements pLet; + private final ConditionalExpressionElements pConditionalExpression; + private final LetExpressionElements pLetExpression; private final LetBindingElements pLetBinding; - private final ImplicationOperatorElements eImplicationOperator; - private final ImplicationExpressionElements pImplicationExpression; private final DisjunctiveExpressionElements pDisjunctiveExpression; private final CaseElements pCase; private final ConjunctiveExpressionElements pConjunctiveExpression; @@ -2795,44 +3116,47 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder { private final ExponentialOpElements eExponentialOp; private final ExponentialExpressionElements pExponentialExpression; private final CastExpressionElements pCastExpression; - private final UnaryOpElements eUnaryOp; + private final UnaryOperatorElements eUnaryOperator; private final UnaryExpressionElements pUnaryExpression; - private final AggregationExpressionElements pAggregationExpression; - private final LocalVariablesElements pLocalVariables; - private final QuantifierElements eQuantifier; - private final QuantifiedExpressionElements pQuantifiedExpression; + private final BracedAggregateExpressionElements pBracedAggregateExpression; private final AggregationElements pAggregation; + private final CountElements pCount; private final AtomicExpressionElements pAtomicExpression; private final CallElements pCall; private final ArgumentListElements pArgumentList; private final ArgumentElements pArgument; private final ExpressionArgumentElements pExpressionArgument; private final StarArgumentElements pStarArgument; - private final TypedArgumentElements pTypedArgument; + private final TypedVariableArgumentElements pTypedVariableArgument; private final TypedStarArgumentElements pTypedStarArgument; private final ReferenceElements pReference; + private final PathComponentElements pPathComponent; private final IntervalElements pInterval; private final LiteralElements pLiteral; private final LogicValueElements eLogicValue; private final LogicLiteralElements pLogicLiteral; - private final NumericLiteralElements pNumericLiteral; + private final IntLiteralElements pIntLiteral; + private final RealLiteralElements pRealLiteral; private final InfinityLiteralElements pInfinityLiteral; - private final EmptyIntervalLiteralElements pEmptyIntervalLiteral; + private final EmptyLiteralElements pEmptyLiteral; private final StringLiteralElements pStringLiteral; - private final ClassDefinitionElements pClassDefinition; - private final MemberDefinitionElements pMemberDefinition; + private final ClassDeclarationElements pClassDeclaration; + private final FieldElements pField; private final MultiplicityElements pMultiplicity; - private final ManyMultiplicityElements pManyMultiplicity; + private final UnboundedMultiplicityElements pUnboundedMultiplicity; private final ExactMultiplicityElements pExactMultiplicity; private final BoundedMultiplicityElements pBoundedMultiplicity; - private final ScopeDefinitionElements pScopeDefinition; - private final ExactScopeDefinitionElements pExactScopeDefinition; - private final BoundedScopeDefinitionElements pBoundedScopeDefinition; - private final LowerBoundedScopeDefinitionElements pLowerBoundedScopeDefinition; + private final EnumDeclarationElements pEnumDeclaration; + private final EnumLiteralElements pEnumLiteral; + private final ScopeDeclarationElements pScopeDeclaration; + private final ExactScopeElements pExactScope; + private final BoundedScopeElements pBoundedScope; + private final LowerBoundedScopeElements pLowerBoundedScope; private final ObjectiveKindElements eObjectiveKind; - private final ObjectiveDefinitionElements pObjectiveDefinition; + private final ObjectiveDeclarationElements pObjectiveDeclaration; private final UpperMultiplictyElements pUpperMultiplicty; private final RealElements pReal; + private final QualifiedNameSegmentElements pQualifiedNameSegment; private final QualifiedNameElements pQualifiedName; private final TerminalRule tSTRING; private final TerminalRule tQUOTED_ID; @@ -2852,22 +3176,26 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder { this.gaTerminals = gaTerminals; this.pProblem = new ProblemElements(); this.pStatement = new StatementElements(); + this.pImport = new ImportElements(); + this.pUriImport = new UriImportElements(); + this.pNamespaceImport = new NamespaceImportElements(); this.pAssertionOrDefinition = new AssertionOrDefinitionElements(); this.pPredicateDefinition = new PredicateDefinitionElements(); - this.pUnnamedErrorPrediateDefinition = new UnnamedErrorPrediateDefinitionElements(); - this.pDefaultDefinition = new DefaultDefinitionElements(); - this.pMetricDefinition = new MetricDefinitionElements(); - this.pExternPredicateDefinition = new ExternPredicateDefinitionElements(); - this.pExternMetricDefinition = new ExternMetricDefinitionElements(); - this.pExternAggregatorDefinition = new ExternAggregatorDefinitionElements(); - this.pExternDatatypeDefinition = new ExternDatatypeDefinitionElements(); - this.pVariable = new VariableElements(); + this.pUnnamedErrorPredicateDefintion = new UnnamedErrorPredicateDefintionElements(); + this.pDefaultAssertion = new DefaultAssertionElements(); + this.pFunctionDefinition = new FunctionDefinitionElements(); + this.pTypeReference = new TypeReferenceElements(); + this.eAttributeKind = new AttributeKindElements(); + this.pAttribute = new AttributeElements(); + this.pExternDeclaration = new ExternDeclarationElements(); + this.pExternPredicateDeclaration = new ExternPredicateDeclarationElements(); + this.pExternFunctionDeclaration = new ExternFunctionDeclarationElements(); + this.pExternAggregationOperatorDeclaration = new ExternAggregationOperatorDeclarationElements(); + this.pExternDatatypeDeclaration = new ExternDatatypeDeclarationElements(); this.pExpression = new ExpressionElements(); - this.pIfElse = new IfElseElements(); - this.pLet = new LetElements(); + this.pConditionalExpression = new ConditionalExpressionElements(); + this.pLetExpression = new LetExpressionElements(); this.pLetBinding = new LetBindingElements(); - this.eImplicationOperator = new ImplicationOperatorElements(); - this.pImplicationExpression = new ImplicationExpressionElements(); this.pDisjunctiveExpression = new DisjunctiveExpressionElements(); this.pCase = new CaseElements(); this.pConjunctiveExpression = new ConjunctiveExpressionElements(); @@ -2880,44 +3208,47 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder { this.eExponentialOp = new ExponentialOpElements(); this.pExponentialExpression = new ExponentialExpressionElements(); this.pCastExpression = new CastExpressionElements(); - this.eUnaryOp = new UnaryOpElements(); + this.eUnaryOperator = new UnaryOperatorElements(); this.pUnaryExpression = new UnaryExpressionElements(); - this.pAggregationExpression = new AggregationExpressionElements(); - this.pLocalVariables = new LocalVariablesElements(); - this.eQuantifier = new QuantifierElements(); - this.pQuantifiedExpression = new QuantifiedExpressionElements(); + this.pBracedAggregateExpression = new BracedAggregateExpressionElements(); this.pAggregation = new AggregationElements(); + this.pCount = new CountElements(); this.pAtomicExpression = new AtomicExpressionElements(); this.pCall = new CallElements(); this.pArgumentList = new ArgumentListElements(); this.pArgument = new ArgumentElements(); this.pExpressionArgument = new ExpressionArgumentElements(); this.pStarArgument = new StarArgumentElements(); - this.pTypedArgument = new TypedArgumentElements(); + this.pTypedVariableArgument = new TypedVariableArgumentElements(); this.pTypedStarArgument = new TypedStarArgumentElements(); this.pReference = new ReferenceElements(); + this.pPathComponent = new PathComponentElements(); this.pInterval = new IntervalElements(); this.pLiteral = new LiteralElements(); this.eLogicValue = new LogicValueElements(); this.pLogicLiteral = new LogicLiteralElements(); - this.pNumericLiteral = new NumericLiteralElements(); + this.pIntLiteral = new IntLiteralElements(); + this.pRealLiteral = new RealLiteralElements(); this.pInfinityLiteral = new InfinityLiteralElements(); - this.pEmptyIntervalLiteral = new EmptyIntervalLiteralElements(); + this.pEmptyLiteral = new EmptyLiteralElements(); this.pStringLiteral = new StringLiteralElements(); - this.pClassDefinition = new ClassDefinitionElements(); - this.pMemberDefinition = new MemberDefinitionElements(); + this.pClassDeclaration = new ClassDeclarationElements(); + this.pField = new FieldElements(); this.pMultiplicity = new MultiplicityElements(); - this.pManyMultiplicity = new ManyMultiplicityElements(); + this.pUnboundedMultiplicity = new UnboundedMultiplicityElements(); this.pExactMultiplicity = new ExactMultiplicityElements(); this.pBoundedMultiplicity = new BoundedMultiplicityElements(); - this.pScopeDefinition = new ScopeDefinitionElements(); - this.pExactScopeDefinition = new ExactScopeDefinitionElements(); - this.pBoundedScopeDefinition = new BoundedScopeDefinitionElements(); - this.pLowerBoundedScopeDefinition = new LowerBoundedScopeDefinitionElements(); + this.pEnumDeclaration = new EnumDeclarationElements(); + this.pEnumLiteral = new EnumLiteralElements(); + this.pScopeDeclaration = new ScopeDeclarationElements(); + this.pExactScope = new ExactScopeElements(); + this.pBoundedScope = new BoundedScopeElements(); + this.pLowerBoundedScope = new LowerBoundedScopeElements(); this.eObjectiveKind = new ObjectiveKindElements(); - this.pObjectiveDefinition = new ObjectiveDefinitionElements(); + this.pObjectiveDeclaration = new ObjectiveDeclarationElements(); this.pUpperMultiplicty = new UpperMultiplictyElements(); this.pReal = new RealElements(); + this.pQualifiedNameSegment = new QualifiedNameSegmentElements(); this.pQualifiedName = new QualifiedNameElements(); this.tSTRING = (TerminalRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.STRING"); this.tQUOTED_ID = (TerminalRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.QUOTED_ID"); @@ -2955,6 +3286,8 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder { //Problem: + // ("problem" name=QualifiedName FULL_STOP)? + // imports+=Import* // statements+=Statement*; public ProblemElements getProblemAccess() { return pProblem; @@ -2965,9 +3298,8 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder { } //Statement: - // (AssertionOrDefinition | PredicateDefinition | UnnamedErrorPrediateDefinition | DefaultDefinition | MetricDefinition - // | ExternPredicateDefinition | ExternMetricDefinition | ExternAggregatorDefinition | ExternDatatypeDefinition | - // ClassDefinition | ScopeDefinition | ObjectiveDefinition) FULL_STOP; + // AssertionOrDefinition | PredicateDefinition | UnnamedErrorPredicateDefintion | DefaultAssertion | FunctionDefinition + // | Attribute | ExternDeclaration | ScopeDeclaration | ObjectiveDeclaration | ClassDeclaration | EnumDeclaration; public StatementElements getStatementAccess() { return pStatement; } @@ -2976,9 +3308,39 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder { return getStatementAccess().getRule(); } + //Import: + // UriImport | NamespaceImport; + public ImportElements getImportAccess() { + return pImport; + } + + public ParserRule getImportRule() { + return getImportAccess().getRule(); + } + + //UriImport: + // "import" uri=STRING ("as" alias=QualifiedName) FULL_STOP; + public UriImportElements getUriImportAccess() { + return pUriImport; + } + + public ParserRule getUriImportRule() { + return getUriImportAccess().getRule(); + } + + //NamespaceImport: + // "import" importedNamespace=QualifiedName ("as" alias=QualifiedName) FULL_STOP; + public NamespaceImportElements getNamespaceImportAccess() { + return pNamespaceImport; + } + + public ParserRule getNamespaceImportRule() { + return getNamespaceImportAccess().getRule(); + } + //AssertionOrDefinition Statement: - // Expression ({Interpretation.body=current} ":" range=Expression | {PredicateDefinition.head=current} ":-" - // body=Expression | {MetricDefinition.head=current} "=" body=Expression)?; + // Expression ({Assertion.expression=current} (":" range=Expression)? | {PredicateDefinition.head=current} ":-" + // body=Expression | {FunctionDefinition.head=current} ":=" body=Expression) FULL_STOP; public AssertionOrDefinitionElements getAssertionOrDefinitionAccess() { return pAssertionOrDefinition; } @@ -2988,7 +3350,8 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder { } //PredicateDefinition: - // (functional?="functional" error?="error"? | error?="error" functional?="functional"?) head=Call ":-" body=Expression; + // (functional?="functional" error?="error"? | error?="error" functional?="functional"?) head=Call ":-" body=Expression + // FULL_STOP; public PredicateDefinitionElements getPredicateDefinitionAccess() { return pPredicateDefinition; } @@ -2997,89 +3360,121 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder { return getPredicateDefinitionAccess().getRule(); } - //UnnamedErrorPrediateDefinition: - // "error" argumentList=ArgumentList ":-" body=Expression; - public UnnamedErrorPrediateDefinitionElements getUnnamedErrorPrediateDefinitionAccess() { - return pUnnamedErrorPrediateDefinition; + //UnnamedErrorPredicateDefintion: + // "error" argumentList=ArgumentList ":-" body=Expression FULL_STOP; + public UnnamedErrorPredicateDefintionElements getUnnamedErrorPredicateDefintionAccess() { + return pUnnamedErrorPredicateDefintion; + } + + public ParserRule getUnnamedErrorPredicateDefintionRule() { + return getUnnamedErrorPredicateDefintionAccess().getRule(); + } + + //DefaultAssertion: + // "default" expression=Call (":" range=Expression)? FULL_STOP; + public DefaultAssertionElements getDefaultAssertionAccess() { + return pDefaultAssertion; + } + + public ParserRule getDefaultAssertionRule() { + return getDefaultAssertionAccess().getRule(); + } + + //FunctionDefinition: + // resultType=[Symbol|QualifiedName] head=Call ":=" body=Expression FULL_STOP; + public FunctionDefinitionElements getFunctionDefinitionAccess() { + return pFunctionDefinition; } - public ParserRule getUnnamedErrorPrediateDefinitionRule() { - return getUnnamedErrorPrediateDefinitionAccess().getRule(); + public ParserRule getFunctionDefinitionRule() { + return getFunctionDefinitionAccess().getRule(); } - //DefaultDefinition: - // "default" head=Call ":" range=Expression; - public DefaultDefinitionElements getDefaultDefinitionAccess() { - return pDefaultDefinition; + //TypeReference: + // type=[Symbol|QualifiedName] forceObjectType?="object"?; + public TypeReferenceElements getTypeReferenceAccess() { + return pTypeReference; } - public ParserRule getDefaultDefinitionRule() { - return getDefaultDefinitionAccess().getRule(); + public ParserRule getTypeReferenceRule() { + return getTypeReferenceAccess().getRule(); } - //MetricDefinition: - // type=[NamedElement|QualifiedName] head=Call "=" body=Expression; - public MetricDefinitionElements getMetricDefinitionAccess() { - return pMetricDefinition; + //enum AttributeKind: + // FUNCTIONAL="functional" | ERROR="error" | ROOT="root" | CONTAINMENT="containment"; + public AttributeKindElements getAttributeKindAccess() { + return eAttributeKind; } - public ParserRule getMetricDefinitionRule() { - return getMetricDefinitionAccess().getRule(); + public EnumRule getAttributeKindRule() { + return getAttributeKindAccess().getRule(); } - //ExternPredicateDefinition: - // "extern" name=QualifiedName argumentList=ArgumentList; - public ExternPredicateDefinitionElements getExternPredicateDefinitionAccess() { - return pExternPredicateDefinition; + //Attribute: + // kind=AttributeKind target=[Symbol|QualifiedName] FULL_STOP; + public AttributeElements getAttributeAccess() { + return pAttribute; } - public ParserRule getExternPredicateDefinitionRule() { - return getExternPredicateDefinitionAccess().getRule(); + public ParserRule getAttributeRule() { + return getAttributeAccess().getRule(); } - //ExternMetricDefinition: - // "extern" type=[NamedElement|QualifiedName] name=QualifiedName argumentList=ArgumentList; - public ExternMetricDefinitionElements getExternMetricDefinitionAccess() { - return pExternMetricDefinition; + //ExternDeclaration: + // ExternPredicateDeclaration | ExternFunctionDeclaration | ExternAggregationOperatorDeclaration | + // ExternDatatypeDeclaration; + public ExternDeclarationElements getExternDeclarationAccess() { + return pExternDeclaration; } - public ParserRule getExternMetricDefinitionRule() { - return getExternMetricDefinitionAccess().getRule(); + public ParserRule getExternDeclarationRule() { + return getExternDeclarationAccess().getRule(); } - //ExternAggregatorDefinition: - // "extern" type=[NamedElement|QualifiedName] name=QualifiedName "{" inputType=[NamedElement|QualifiedName] "..." "}"; - public ExternAggregatorDefinitionElements getExternAggregatorDefinitionAccess() { - return pExternAggregatorDefinition; + //ExternPredicateDeclaration: + // "extern" (functional?="functional"? & error?="error"?) name=QualifiedName argumentList=ArgumentList FULL_STOP; + public ExternPredicateDeclarationElements getExternPredicateDeclarationAccess() { + return pExternPredicateDeclaration; } - public ParserRule getExternAggregatorDefinitionRule() { - return getExternAggregatorDefinitionAccess().getRule(); + public ParserRule getExternPredicateDeclarationRule() { + return getExternPredicateDeclarationAccess().getRule(); } - //ExternDatatypeDefinition: - // "extern" "datatype" name=QualifiedName ("extends" supertypes+=[NamedElement|QualifiedName] ("," - // supertypes+=[NamedElement|QualifiedName])*); - public ExternDatatypeDefinitionElements getExternDatatypeDefinitionAccess() { - return pExternDatatypeDefinition; + //ExternFunctionDeclaration: + // "extern" resultType=[Symbol|QualifiedName] name=QualifiedName argumentList=ArgumentList FULL_STOP; + public ExternFunctionDeclarationElements getExternFunctionDeclarationAccess() { + return pExternFunctionDeclaration; } - public ParserRule getExternDatatypeDefinitionRule() { - return getExternDatatypeDefinitionAccess().getRule(); + public ParserRule getExternFunctionDeclarationRule() { + return getExternFunctionDeclarationAccess().getRule(); } - //Variable: - // type=[NamedElement|QualifiedName]? name=ID; - public VariableElements getVariableAccess() { - return pVariable; + //ExternAggregationOperatorDeclaration: + // "extern" resultType=[Symbol|QualifiedName] name=QualifiedName "{" argumentType=[Symbol|QualifiedName] "..." "}" + // FULL_STOP; + public ExternAggregationOperatorDeclarationElements getExternAggregationOperatorDeclarationAccess() { + return pExternAggregationOperatorDeclaration; } - public ParserRule getVariableRule() { - return getVariableAccess().getRule(); + public ParserRule getExternAggregationOperatorDeclarationRule() { + return getExternAggregationOperatorDeclarationAccess().getRule(); + } + + //ExternDatatypeDeclaration: + // "extern" "datatype" name=QualifiedName FULL_STOP; + public ExternDatatypeDeclarationElements getExternDatatypeDeclarationAccess() { + return pExternDatatypeDeclaration; + } + + public ParserRule getExternDatatypeDeclarationRule() { + return getExternDatatypeDeclarationAccess().getRule(); } //Expression: - // IfElse | Let | ImplicationExpression; + // ConditionalExpression | LetExpression | DisjunctiveExpression ({Forall.condition=current} "=>" + // body=DisjunctiveExpression)?; public ExpressionElements getExpressionAccess() { return pExpression; } @@ -3088,28 +3483,28 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder { return getExpressionAccess().getRule(); } - //IfElse: - // "if" condition=Expression "then" then=Expression "else" else=Expression; - public IfElseElements getIfElseAccess() { - return pIfElse; + //ConditionalExpression: + // "if" condition=DisjunctiveExpression "then" then=Expression "else" else=Expression; + public ConditionalExpressionElements getConditionalExpressionAccess() { + return pConditionalExpression; } - public ParserRule getIfElseRule() { - return getIfElseAccess().getRule(); + public ParserRule getConditionalExpressionRule() { + return getConditionalExpressionAccess().getRule(); } - //Let: + //LetExpression: // "let" bindings+=LetBinding ("," bindings+=LetBinding)* "in" body=Expression; - public LetElements getLetAccess() { - return pLet; + public LetExpressionElements getLetExpressionAccess() { + return pLetExpression; } - public ParserRule getLetRule() { - return getLetAccess().getRule(); + public ParserRule getLetExpressionRule() { + return getLetExpressionAccess().getRule(); } //LetBinding: - // variable=Variable "=" value=AdditiveExpression; + // type=[Symbol|QualifiedName]? name=ID "=" value=AdditiveExpression; public LetBindingElements getLetBindingAccess() { return pLetBinding; } @@ -3118,26 +3513,6 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder { return getLetBindingAccess().getRule(); } - //enum ImplicationOperator returns BinaryOperator: - // IMPLIES="=>"; - public ImplicationOperatorElements getImplicationOperatorAccess() { - return eImplicationOperator; - } - - public EnumRule getImplicationOperatorRule() { - return getImplicationOperatorAccess().getRule(); - } - - //ImplicationExpression Expression: - // DisjunctiveExpression ({BinaryExpression.left=current} op=ImplicationOperator right=ImplicationExpression)?; - public ImplicationExpressionElements getImplicationExpressionAccess() { - return pImplicationExpression; - } - - public ParserRule getImplicationExpressionRule() { - return getImplicationExpressionAccess().getRule(); - } - //DisjunctiveExpression Expression: // ConjunctiveExpression ({Disjunction.children+=current} (";" children+=ConjunctiveExpression)+ | // {Case.condition=current} "->" body=ConjunctiveExpression {Switch.cases+=current} (";" cases+=Case)*)?; @@ -3170,7 +3545,7 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder { } //enum ComparisonOperator returns BinaryOperator: - // EQ="==" | NOT_EQ="!=" | LESS="<" | LESS_EQ="<=" | GREATER=">" | GREATER_EQ=">=" | IN="in"; + // EQUALS="==" | NOT_EQUALS="!=" | LESS="<" | LESS_EQUALS="<=" | GREATER=">" | GREATER_EQUALS=">=" | IN="in"; public ComparisonOperatorElements getComparisonOperatorAccess() { return eComparisonOperator; } @@ -3180,7 +3555,7 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder { } //ComparisonExpression Expression: - // AdditiveExpression ({Comparison.left=current} op=ComparisonOperator right=AdditiveExpression)?; + // AdditiveExpression ({BinaryExpression.left=current} op=ComparisonOperator right=AdditiveExpression)?; public ComparisonExpressionElements getComparisonExpressionAccess() { return pComparisonExpression; } @@ -3190,7 +3565,7 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder { } //enum AdditiveBinaryOperator returns BinaryOperator: - // ADD="+" | SUB="-"; + // PLUS="+" | MINUS="-"; public AdditiveBinaryOperatorElements getAdditiveBinaryOperatorAccess() { return eAdditiveBinaryOperator; } @@ -3210,7 +3585,7 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder { } //enum MultiplicativeBinaryOperator returns BinaryOperator: - // MUL="*" | DIV="/"; + // MULTIPLY="*" | DIVIDE="/"; public MultiplicativeBinaryOperatorElements getMultiplicativeBinaryOperatorAccess() { return eMultiplicativeBinaryOperator; } @@ -3250,7 +3625,7 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder { } //CastExpression Expression: - // UnaryExpression ({CastExpression.body=current} "as" type=[NamedElement|QualifiedName])?; + // UnaryExpression ({CastExpression.body=current} "as" targetType=[Symbol|QualifiedName])?; public CastExpressionElements getCastExpressionAccess() { return pCastExpression; } @@ -3259,18 +3634,18 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder { return getCastExpressionAccess().getRule(); } - //enum UnaryOp: - // NEG="!" | PLUS="+" | MINUS="-" | MAY="may" | MUST="must" | CURRENT="current"; - public UnaryOpElements getUnaryOpAccess() { - return eUnaryOp; + //enum UnaryOperator: + // NOT="!" | PLUS="+" | MINUS="-" | MAYBE="?"; + public UnaryOperatorElements getUnaryOperatorAccess() { + return eUnaryOperator; } - public EnumRule getUnaryOpRule() { - return getUnaryOpAccess().getRule(); + public EnumRule getUnaryOperatorRule() { + return getUnaryOperatorAccess().getRule(); } //UnaryExpression Expression: - // AggregationExpression | {UnaryExpression} op=UnaryOp body=AggregationExpression; + // BracedAggregateExpression | {UnaryExpression} op=UnaryOperator body=BracedAggregateExpression; public UnaryExpressionElements getUnaryExpressionAccess() { return pUnaryExpression; } @@ -3279,48 +3654,18 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder { return getUnaryExpressionAccess().getRule(); } - //AggregationExpression Expression: - // AtomicExpression | QuantifiedExpression | Aggregation; - public AggregationExpressionElements getAggregationExpressionAccess() { - return pAggregationExpression; - } - - public ParserRule getAggregationExpressionRule() { - return getAggregationExpressionAccess().getRule(); - } - - //LocalVariables: - // {LocalVariables} "[" (variables+=Variable ("," variables+=Variable)*)? "]"; - public LocalVariablesElements getLocalVariablesAccess() { - return pLocalVariables; + //BracedAggregateExpression Expression: + // AtomicExpression | Aggregation | Count; + public BracedAggregateExpressionElements getBracedAggregateExpressionAccess() { + return pBracedAggregateExpression; } - public ParserRule getLocalVariablesRule() { - return getLocalVariablesAccess().getRule(); - } - - //enum Quantifier: - // EXISTS="exists" | FORALL="forall" | COUNT="count"; - public QuantifierElements getQuantifierAccess() { - return eQuantifier; - } - - public EnumRule getQuantifierRule() { - return getQuantifierAccess().getRule(); - } - - //QuantifiedExpression: - // quantifier=Quantifier localVariables=LocalVariables? "{" body=Expression "}"; - public QuantifiedExpressionElements getQuantifiedExpressionAccess() { - return pQuantifiedExpression; - } - - public ParserRule getQuantifiedExpressionRule() { - return getQuantifiedExpressionAccess().getRule(); + public ParserRule getBracedAggregateExpressionRule() { + return getBracedAggregateExpressionAccess().getRule(); } //Aggregation: - // op=[NamedElement|QualifiedName] localVariables=LocalVariables? "{" body=Expression ("|" condition=Expression)? "}"; + // op=[Symbol|QualifiedName] "{" value=Expression "|" condition=Expression "}"; public AggregationElements getAggregationAccess() { return pAggregation; } @@ -3329,6 +3674,16 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder { return getAggregationAccess().getRule(); } + //Count: + // "count" "{" condition=Expression "}"; + public CountElements getCountAccess() { + return pCount; + } + + public ParserRule getCountRule() { + return getCountAccess().getRule(); + } + //AtomicExpression Expression: // Reference | Call | Interval | Literal | "(" Expression ")"; public AtomicExpressionElements getAtomicExpressionAccess() { @@ -3340,8 +3695,7 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder { } //Call: - // functor=Reference (transitiveClosure?=TRANSITIVE_CLOSURE | reflexiveTransitiveClosure?=REFLEXIVE_TRANSITIVE_CLOSURE)? - // argumentList=ArgumentList; + // functor=Reference argumentList=ArgumentList; public CallElements getCallAccess() { return pCall; } @@ -3361,7 +3715,7 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder { } //Argument: - // ExpressionArgument | StarArgument | TypedArgument | TypedStarArgument; + // ExpressionArgument | StarArgument | TypedVariableArgument | TypedStarArgument; public ArgumentElements getArgumentAccess() { return pArgument; } @@ -3371,7 +3725,7 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder { } //ExpressionArgument: - // body=ComparisonExpression; + // expression=ComparisonExpression; public ExpressionArgumentElements getExpressionArgumentAccess() { return pExpressionArgument; } @@ -3390,18 +3744,18 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder { return getStarArgumentAccess().getRule(); } - //TypedArgument: - // type=[NamedElement|QualifiedName] variable=[NamedElement|QualifiedName]; - public TypedArgumentElements getTypedArgumentAccess() { - return pTypedArgument; + //TypedVariableArgument: + // typeReference=TypeReference name=ID; + public TypedVariableArgumentElements getTypedVariableArgumentAccess() { + return pTypedVariableArgument; } - public ParserRule getTypedArgumentRule() { - return getTypedArgumentAccess().getRule(); + public ParserRule getTypedVariableArgumentRule() { + return getTypedVariableArgumentAccess().getRule(); } //TypedStarArgument: - // type=[NamedElement|QualifiedName] "*"; + // typeReference=TypeReference "*"; public TypedStarArgumentElements getTypedStarArgumentAccess() { return pTypedStarArgument; } @@ -3411,7 +3765,7 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder { } //Reference: - // referred=[NamedElement|QualifiedName]; + // components+=PathComponent ("." components+=PathComponent)*; public ReferenceElements getReferenceAccess() { return pReference; } @@ -3420,8 +3774,19 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder { return getReferenceAccess().getRule(); } + //PathComponent: + // inverse?="~"? symbol=[Symbol|QualifiedName] (transitiveClosure?=TRANSITIVE_CLOSURE | + // reflexiveTransitiveClosure?=REFLEXIVE_TRANSITIVE_CLOSURE)?; + public PathComponentElements getPathComponentAccess() { + return pPathComponent; + } + + public ParserRule getPathComponentRule() { + return getPathComponentAccess().getRule(); + } + //Interval: - // "[" lowerBound=Expression ".." upperBound=Expression "]"; + // "[" lowerBound=AdditiveExpression "," upperBound=AdditiveExpression "]"; public IntervalElements getIntervalAccess() { return pInterval; } @@ -3431,7 +3796,7 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder { } //Literal: - // LogicLiteral | NumericLiteral | InfinityLiteral | EmptyIntervalLiteral | StringLiteral; + // LogicLiteral | IntLiteral | RealLiteral | InfinityLiteral | EmptyLiteral | StringLiteral; public LiteralElements getLiteralAccess() { return pLiteral; } @@ -3460,14 +3825,24 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder { return getLogicLiteralAccess().getRule(); } - //NumericLiteral: + //IntLiteral: + // value=INT; + public IntLiteralElements getIntLiteralAccess() { + return pIntLiteral; + } + + public ParserRule getIntLiteralRule() { + return getIntLiteralAccess().getRule(); + } + + //RealLiteral: // value=Real; - public NumericLiteralElements getNumericLiteralAccess() { - return pNumericLiteral; + public RealLiteralElements getRealLiteralAccess() { + return pRealLiteral; } - public ParserRule getNumericLiteralRule() { - return getNumericLiteralAccess().getRule(); + public ParserRule getRealLiteralRule() { + return getRealLiteralAccess().getRule(); } //InfinityLiteral: @@ -3480,14 +3855,14 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder { return getInfinityLiteralAccess().getRule(); } - //EmptyIntervalLiteral: - // {EmptyIntervalLiteral} "empty"; - public EmptyIntervalLiteralElements getEmptyIntervalLiteralAccess() { - return pEmptyIntervalLiteral; + //EmptyLiteral: + // {EmptyLiteral} "empty"; + public EmptyLiteralElements getEmptyLiteralAccess() { + return pEmptyLiteral; } - public ParserRule getEmptyIntervalLiteralRule() { - return getEmptyIntervalLiteralAccess().getRule(); + public ParserRule getEmptyLiteralRule() { + return getEmptyLiteralAccess().getRule(); } //StringLiteral: @@ -3500,31 +3875,30 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder { return getStringLiteralAccess().getRule(); } - //ClassDefinition: - // abstract?="abstract"? "class" name=ID ("extends" superclasses+=[NamedElement|QualifiedName] ("," - // superclasses+=[NamedElement|QualifiedName])*)? - // "{" members+=MemberDefinition* "}"; - public ClassDefinitionElements getClassDefinitionAccess() { - return pClassDefinition; + //ClassDeclaration: + // (abstract?="abstract"? & root?="root"?) "class" name=ID ("extends" supertypes+=[Symbol|QualifiedName] ("," + // supertypes+=[Symbol|QualifiedName])*)? ("{" fields+=Field* "}" | FULL_STOP); + public ClassDeclarationElements getClassDeclarationAccess() { + return pClassDeclaration; } - public ParserRule getClassDefinitionRule() { - return getClassDefinitionAccess().getRule(); + public ParserRule getClassDeclarationRule() { + return getClassDeclarationAccess().getRule(); } - //MemberDefinition: - // containment?="contains"? type=[NamedElement|QualifiedName] multiplicity=Multiplicity? name=ID ("opposite" - // opposite=[NamedElement|QualifiedName])? ";"?; - public MemberDefinitionElements getMemberDefinitionAccess() { - return pMemberDefinition; + //Field: + // (containment?="contains" | crossReference?="refers")? type=[Symbol|QualifiedName] multiplicity=Multiplicity? + // name=ID ("opposite" opposite=[Symbol|QualifiedName])? ";"?; + public FieldElements getFieldAccess() { + return pField; } - public ParserRule getMemberDefinitionRule() { - return getMemberDefinitionAccess().getRule(); + public ParserRule getFieldRule() { + return getFieldAccess().getRule(); } //Multiplicity: - // ManyMultiplicity | ExactMultiplicity | BoundedMultiplicity; + // UnboundedMultiplicity | ExactMultiplicity | BoundedMultiplicity; public MultiplicityElements getMultiplicityAccess() { return pMultiplicity; } @@ -3533,18 +3907,18 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder { return getMultiplicityAccess().getRule(); } - //ManyMultiplicity: - // {ManyMultiplicity} "[" "]"; - public ManyMultiplicityElements getManyMultiplicityAccess() { - return pManyMultiplicity; + //UnboundedMultiplicity: + // {UnboundedMultiplicity} "[" "]"; + public UnboundedMultiplicityElements getUnboundedMultiplicityAccess() { + return pUnboundedMultiplicity; } - public ParserRule getManyMultiplicityRule() { - return getManyMultiplicityAccess().getRule(); + public ParserRule getUnboundedMultiplicityRule() { + return getUnboundedMultiplicityAccess().getRule(); } //ExactMultiplicity: - // "[" multiplicity=UpperMultiplicty "]"; + // "[" value=UpperMultiplicty "]"; public ExactMultiplicityElements getExactMultiplicityAccess() { return pExactMultiplicity; } @@ -3554,7 +3928,7 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder { } //BoundedMultiplicity: - // "[" lowerBound=INT ".." upperBound=UpperMultiplicty "]"; + // "[" lowerBound=INT "," upperBound=UpperMultiplicty "]"; public BoundedMultiplicityElements getBoundedMultiplicityAccess() { return pBoundedMultiplicity; } @@ -3563,50 +3937,70 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder { return getBoundedMultiplicityAccess().getRule(); } - //ScopeDefinition: - // ExactScopeDefinition | BoundedScopeDefinition | LowerBoundedScopeDefinition; - public ScopeDefinitionElements getScopeDefinitionAccess() { - return pScopeDefinition; + //EnumDeclaration: + // "enum" name=ID ("{" (literals+=EnumLiteral (","? literals+=EnumLiteral)*)? "}" | FULL_STOP); + public EnumDeclarationElements getEnumDeclarationAccess() { + return pEnumDeclaration; + } + + public ParserRule getEnumDeclarationRule() { + return getEnumDeclarationAccess().getRule(); + } + + //EnumLiteral: + // name=ID; + public EnumLiteralElements getEnumLiteralAccess() { + return pEnumLiteral; } - public ParserRule getScopeDefinitionRule() { - return getScopeDefinitionAccess().getRule(); + public ParserRule getEnumLiteralRule() { + return getEnumLiteralAccess().getRule(); } - //ExactScopeDefinition: - // "scope" type=[NamedElement|QualifiedName] "==" exactScope=INT; - public ExactScopeDefinitionElements getExactScopeDefinitionAccess() { - return pExactScopeDefinition; + //ScopeDeclaration: + // ExactScope | BoundedScope | LowerBoundedScope; + public ScopeDeclarationElements getScopeDeclarationAccess() { + return pScopeDeclaration; } - public ParserRule getExactScopeDefinitionRule() { - return getExactScopeDefinitionAccess().getRule(); + public ParserRule getScopeDeclarationRule() { + return getScopeDeclarationAccess().getRule(); } - //BoundedScopeDefinition: - // "scope" ((lowerBound=INT "<=")? type=[NamedElement|QualifiedName] "<=" upperBound=INT | upperBound=INT ">=" - // type=[NamedElement|QualifiedName] (">=" lowerBound=INT)?); - public BoundedScopeDefinitionElements getBoundedScopeDefinitionAccess() { - return pBoundedScopeDefinition; + //ExactScope: + // "scope" type=[Symbol|QualifiedName] "==" size=INT FULL_STOP; + public ExactScopeElements getExactScopeAccess() { + return pExactScope; } - public ParserRule getBoundedScopeDefinitionRule() { - return getBoundedScopeDefinitionAccess().getRule(); + public ParserRule getExactScopeRule() { + return getExactScopeAccess().getRule(); } - //LowerBoundedScopeDefinition: - // "scope" (lowerBound=INT "<=" type=[NamedElement|QualifiedName] | type=[NamedElement|QualifiedName] ">=" - // lowerBound=INT); - public LowerBoundedScopeDefinitionElements getLowerBoundedScopeDefinitionAccess() { - return pLowerBoundedScopeDefinition; + //BoundedScope: + // "scope" ((lowerBound=INT "<=")? type=[Symbol|QualifiedName] "<=" upperBound=INT | upperBound=INT ">=" + // type=[Symbol|QualifiedName] (">=" lowerBound=INT)?) FULL_STOP; + public BoundedScopeElements getBoundedScopeAccess() { + return pBoundedScope; } - public ParserRule getLowerBoundedScopeDefinitionRule() { - return getLowerBoundedScopeDefinitionAccess().getRule(); + public ParserRule getBoundedScopeRule() { + return getBoundedScopeAccess().getRule(); + } + + //LowerBoundedScope: + // "scope" (lowerBound=INT "<=" type=[Symbol|QualifiedName] | type=[Symbol|QualifiedName] ">=" lowerBound=INT) + // FULL_STOP; + public LowerBoundedScopeElements getLowerBoundedScopeAccess() { + return pLowerBoundedScope; + } + + public ParserRule getLowerBoundedScopeRule() { + return getLowerBoundedScopeAccess().getRule(); } //enum ObjectiveKind: - // MINIMIZE="minimize" | MAXIMIZE="maximize"; + // MINIMIZATION="minimize" | MAXIMIZATION="maximize"; public ObjectiveKindElements getObjectiveKindAccess() { return eObjectiveKind; } @@ -3615,14 +4009,14 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder { return getObjectiveKindAccess().getRule(); } - //ObjectiveDefinition: - // kind=ObjectiveKind objective=Expression; - public ObjectiveDefinitionElements getObjectiveDefinitionAccess() { - return pObjectiveDefinition; + //ObjectiveDeclaration: + // kind=ObjectiveKind objective=Expression FULL_STOP; + public ObjectiveDeclarationElements getObjectiveDeclarationAccess() { + return pObjectiveDeclaration; } - public ParserRule getObjectiveDefinitionRule() { - return getObjectiveDefinitionAccess().getRule(); + public ParserRule getObjectiveDeclarationRule() { + return getObjectiveDeclarationAccess().getRule(); } //UpperMultiplicty ecore::EInt: @@ -3636,7 +4030,7 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder { } //Real ecore::EBigDecimal hidden(): - // INT ("." INT)?; + // INT "." INT; public RealElements getRealAccess() { return pReal; } @@ -3645,8 +4039,18 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder { return getRealAccess().getRule(); } + //QualifiedNameSegment: + // ID | QUOTED_ID | "object"; + public QualifiedNameSegmentElements getQualifiedNameSegmentAccess() { + return pQualifiedNameSegment; + } + + public ParserRule getQualifiedNameSegmentRule() { + return getQualifiedNameSegmentAccess().getRule(); + } + //QualifiedName hidden(): - // ID ("." ID)* | QUOTED_ID; + // QualifiedNameSegment ("::" QualifiedNameSegment)*; public QualifiedNameElements getQualifiedNameAccess() { return pQualifiedName; } -- cgit v1.2.3-70-g09d2