Merge remote-tracking branch 'Polarsys/neon' into 562302-Implement-unit-tests-for-existing-features
diff --git a/.gitignore b/.gitignore
index 01da01d..78db911 100644
--- a/.gitignore
+++ b/.gitignore
@@ -7,3 +7,5 @@
plugins/fla/org.polarsys.chess.xtext.fladsl.ui/xtend-gen/org/polarsys/chess/xtext/ui/labeling/.FlaDslLabelProvider.xtendbin
plugins/fla/org.polarsys.chess.xtext.fladsl.ui/xtend-gen/org/polarsys/chess/xtext/ui/outline/.FlaDslOutlineTreeProvider.xtendbin
plugins/fla/org.polarsys.chess.xtext.fladsl.ui/xtend-gen/org/polarsys/chess/xtext/ui/quickfix/.FlaDslQuickfixProvider.xtendbin
+/plugins/fla/org.polarsys.chess.xtext.fladsl/xtend-gen
+/plugins/fla/org.polarsys.chess.xtext.fladsl.ui/xtend-gen
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl.ui/.classpath b/plugins/fla/org.polarsys.chess.xtext.fladsl.ui/.classpath
index bc001b4..29ba398 100644
--- a/plugins/fla/org.polarsys.chess.xtext.fladsl.ui/.classpath
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl.ui/.classpath
@@ -1,9 +1,9 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
- <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
- <classpathentry kind="src" path="src"/>
- <classpathentry kind="src" path="src-gen"/>
- <classpathentry kind="src" path="xtend-gen"/>
- <classpathentry kind="output" path="bin"/>
-</classpath>
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="src" path="xtend-gen"/>
+ <classpathentry kind="src" path="src-gen"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl.ui/META-INF/MANIFEST.MF b/plugins/fla/org.polarsys.chess.xtext.fladsl.ui/META-INF/MANIFEST.MF
index 6252526..4a71ac4 100644
--- a/plugins/fla/org.polarsys.chess.xtext.fladsl.ui/META-INF/MANIFEST.MF
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl.ui/META-INF/MANIFEST.MF
@@ -1,30 +1,30 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: org.polarsys.chess.xtext.fladsl.ui
-Bundle-Vendor: Intecs
-Bundle-Version: 1.0.0.qualifier
-Bundle-SymbolicName: org.polarsys.chess.xtext.fladsl.ui;singleton:=true
-Bundle-ActivationPolicy: lazy
-Require-Bundle: org.eclipse.xtext.ui,
- org.eclipse.ui.editors;bundle-version="3.8.200",
- org.eclipse.ui.ide;bundle-version="3.10.0",
- org.eclipse.xtext.ui.shared,
- org.eclipse.ui,
- org.eclipse.xtext.builder,
- org.eclipse.xtext.common.types.ui,
- org.eclipse.xtext.ui.codetemplates.ui,
- org.eclipse.compare,
- org.eclipse.xtext.xbase.lib,
- org.eclipse.uml2.uml.editor;bundle-version="5.0.1",
- org.polarsys.chess.xtext.fladsl,
- org.antlr.runtime
-Import-Package: org.apache.log4j,
- org.eclipse.xtext.xbase.lib
-Bundle-RequiredExecutionEnvironment: JavaSE-1.8
-Export-Package: org.polarsys.chess.xtext.ui.contentassist.antlr,
- org.polarsys.chess.xtext.ui.internal,
- org.polarsys.chess.xtext.ui,
- org.polarsys.chess.xtext.ui.contentassist,
- org.polarsys.chess.xtext.ui.quickfix,
- org.polarsys.chess.xtext.ui.contentassist.antlr.internal
-Bundle-Activator: org.polarsys.chess.xtext.ui.internal.FlaDslActivator
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: org.polarsys.chess.xtext.fladsl.ui
+Bundle-Vendor: Intecs
+Bundle-Version: 1.0.0.qualifier
+Bundle-SymbolicName: org.polarsys.chess.xtext.fladsl.ui;singleton:=true
+Bundle-ActivationPolicy: lazy
+Require-Bundle: org.eclipse.xtext.ui,
+ org.eclipse.ui.editors;bundle-version="3.8.200",
+ org.eclipse.ui.ide;bundle-version="3.10.0",
+ org.eclipse.xtext.ui.shared,
+ org.eclipse.ui,
+ org.eclipse.xtext.builder,
+ org.eclipse.xtext.common.types.ui,
+ org.eclipse.xtext.ui.codetemplates.ui,
+ org.eclipse.compare,
+ org.eclipse.xtext.xbase.lib,
+ org.eclipse.uml2.uml.editor;bundle-version="5.0.1",
+ org.polarsys.chess.xtext.fladsl,
+ org.antlr.runtime
+Import-Package: org.apache.log4j,
+ org.eclipse.xtext.xbase.lib
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Export-Package: org.polarsys.chess.xtext.ui,
+ org.polarsys.chess.xtext.ui.contentassist,
+ org.polarsys.chess.xtext.ui.quickfix,
+ org.polarsys.chess.xtext.ui.internal,
+ org.polarsys.chess.xtext.ui.contentassist.antlr,
+ org.polarsys.chess.xtext.ui.contentassist.antlr.internal
+Bundle-Activator: org.polarsys.chess.xtext.ui.internal.FlaDslActivator
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl.ui/plugin.xml_gen b/plugins/fla/org.polarsys.chess.xtext.fladsl.ui/plugin.xml_gen
index d179911..125b903 100644
--- a/plugins/fla/org.polarsys.chess.xtext.fladsl.ui/plugin.xml_gen
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl.ui/plugin.xml_gen
@@ -1,425 +1,425 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-
-<plugin>
-
- <extension
- point="org.eclipse.ui.editors">
- <editor
- class="org.polarsys.chess.xtext.ui.FlaDslExecutableExtensionFactory:org.eclipse.xtext.ui.editor.XtextEditor"
- contributorClass="org.eclipse.ui.editors.text.TextEditorActionContributor"
- default="true"
- extensions="fladsl"
- id="org.polarsys.chess.xtext.FlaDsl"
- name="FlaDsl Editor">
- </editor>
- </extension>
- <extension
- point="org.eclipse.ui.handlers">
- <handler
- class="org.polarsys.chess.xtext.ui.FlaDslExecutableExtensionFactory:org.eclipse.xtext.ui.editor.hyperlinking.OpenDeclarationHandler"
- commandId="org.eclipse.xtext.ui.editor.hyperlinking.OpenDeclaration">
- <activeWhen>
- <reference
- definitionId="org.polarsys.chess.xtext.FlaDsl.Editor.opened">
- </reference>
- </activeWhen>
- </handler>
- <handler
- class="org.polarsys.chess.xtext.ui.FlaDslExecutableExtensionFactory:org.eclipse.xtext.ui.editor.handler.ValidateActionHandler"
- commandId="org.polarsys.chess.xtext.FlaDsl.validate">
- <activeWhen>
- <reference
- definitionId="org.polarsys.chess.xtext.FlaDsl.Editor.opened">
- </reference>
- </activeWhen>
- </handler>
- <!-- copy qualified name -->
- <handler
- class="org.polarsys.chess.xtext.ui.FlaDslExecutableExtensionFactory:org.eclipse.xtext.ui.editor.copyqualifiedname.EditorCopyQualifiedNameHandler"
- commandId="org.eclipse.xtext.ui.editor.copyqualifiedname.EditorCopyQualifiedName">
- <activeWhen>
- <reference definitionId="org.polarsys.chess.xtext.FlaDsl.Editor.opened" />
- </activeWhen>
- </handler>
- <handler
- class="org.polarsys.chess.xtext.ui.FlaDslExecutableExtensionFactory:org.eclipse.xtext.ui.editor.copyqualifiedname.OutlineCopyQualifiedNameHandler"
- commandId="org.eclipse.xtext.ui.editor.copyqualifiedname.OutlineCopyQualifiedName">
- <activeWhen>
- <and>
- <reference definitionId="org.polarsys.chess.xtext.FlaDsl.XtextEditor.opened" />
- <iterate>
- <adapt type="org.eclipse.xtext.ui.editor.outline.IOutlineNode" />
- </iterate>
- </and>
- </activeWhen>
- </handler>
- </extension>
- <extension point="org.eclipse.core.expressions.definitions">
- <definition id="org.polarsys.chess.xtext.FlaDsl.Editor.opened">
- <and>
- <reference definitionId="isActiveEditorAnInstanceOfXtextEditor"/>
- <with variable="activeEditor">
- <test property="org.eclipse.xtext.ui.editor.XtextEditor.languageName"
- value="org.polarsys.chess.xtext.FlaDsl"
- forcePluginActivation="true"/>
- </with>
- </and>
- </definition>
- <definition id="org.polarsys.chess.xtext.FlaDsl.XtextEditor.opened">
- <and>
- <reference definitionId="isXtextEditorActive"/>
- <with variable="activeEditor">
- <test property="org.eclipse.xtext.ui.editor.XtextEditor.languageName"
- value="org.polarsys.chess.xtext.FlaDsl"
- forcePluginActivation="true"/>
- </with>
- </and>
- </definition>
- </extension>
- <extension
- point="org.eclipse.ui.preferencePages">
- <page
- class="org.polarsys.chess.xtext.ui.FlaDslExecutableExtensionFactory:org.eclipse.xtext.ui.editor.preferences.LanguageRootPreferencePage"
- id="org.polarsys.chess.xtext.FlaDsl"
- name="FlaDsl">
- <keywordReference id="org.polarsys.chess.xtext.ui.keyword_FlaDsl"/>
- </page>
- <page
- category="org.polarsys.chess.xtext.FlaDsl"
- class="org.polarsys.chess.xtext.ui.FlaDslExecutableExtensionFactory:org.eclipse.xtext.ui.editor.syntaxcoloring.SyntaxColoringPreferencePage"
- id="org.polarsys.chess.xtext.FlaDsl.coloring"
- name="Syntax Coloring">
- <keywordReference id="org.polarsys.chess.xtext.ui.keyword_FlaDsl"/>
- </page>
- <page
- category="org.polarsys.chess.xtext.FlaDsl"
- class="org.polarsys.chess.xtext.ui.FlaDslExecutableExtensionFactory:org.eclipse.xtext.ui.editor.templates.XtextTemplatePreferencePage"
- id="org.polarsys.chess.xtext.FlaDsl.templates"
- name="Templates">
- <keywordReference id="org.polarsys.chess.xtext.ui.keyword_FlaDsl"/>
- </page>
- </extension>
- <extension
- point="org.eclipse.ui.propertyPages">
- <page
- class="org.polarsys.chess.xtext.ui.FlaDslExecutableExtensionFactory:org.eclipse.xtext.ui.editor.preferences.LanguageRootPreferencePage"
- id="org.polarsys.chess.xtext.FlaDsl"
- name="FlaDsl">
- <keywordReference id="org.polarsys.chess.xtext.ui.keyword_FlaDsl"/>
- <enabledWhen>
- <adapt type="org.eclipse.core.resources.IProject"/>
- </enabledWhen>
- <filter name="projectNature" value="org.eclipse.xtext.ui.shared.xtextNature"/>
- </page>
- </extension>
- <extension
- point="org.eclipse.ui.keywords">
- <keyword
- id="org.polarsys.chess.xtext.ui.keyword_FlaDsl"
- label="FlaDsl"/>
- </extension>
- <extension
- point="org.eclipse.ui.commands">
- <command
- description="Trigger expensive validation"
- id="org.polarsys.chess.xtext.FlaDsl.validate"
- name="Validate">
- </command>
- <!-- copy qualified name -->
- <command
- id="org.eclipse.xtext.ui.editor.copyqualifiedname.EditorCopyQualifiedName"
- categoryId="org.eclipse.ui.category.edit"
- description="Copy the qualified name for the selected element"
- name="Copy Qualified Name">
- </command>
- <command
- id="org.eclipse.xtext.ui.editor.copyqualifiedname.OutlineCopyQualifiedName"
- categoryId="org.eclipse.ui.category.edit"
- description="Copy the qualified name for the selected element"
- name="Copy Qualified Name">
- </command>
- </extension>
- <extension point="org.eclipse.ui.menus">
- <menuContribution
- locationURI="popup:#TextEditorContext?after=group.edit">
- <command
- commandId="org.polarsys.chess.xtext.FlaDsl.validate"
- style="push"
- tooltip="Trigger expensive validation">
- <visibleWhen checkEnabled="false">
- <reference
- definitionId="org.polarsys.chess.xtext.FlaDsl.Editor.opened">
- </reference>
- </visibleWhen>
- </command>
- </menuContribution>
- <!-- copy qualified name -->
- <menuContribution locationURI="popup:#TextEditorContext?after=copy">
- <command commandId="org.eclipse.xtext.ui.editor.copyqualifiedname.EditorCopyQualifiedName"
- style="push" tooltip="Copy Qualified Name">
- <visibleWhen checkEnabled="false">
- <reference definitionId="org.polarsys.chess.xtext.FlaDsl.Editor.opened" />
- </visibleWhen>
- </command>
- </menuContribution>
- <menuContribution locationURI="menu:edit?after=copy">
- <command commandId="org.eclipse.xtext.ui.editor.copyqualifiedname.EditorCopyQualifiedName"
- style="push" tooltip="Copy Qualified Name">
- <visibleWhen checkEnabled="false">
- <reference definitionId="org.polarsys.chess.xtext.FlaDsl.Editor.opened" />
- </visibleWhen>
- </command>
- </menuContribution>
- <menuContribution locationURI="popup:org.eclipse.xtext.ui.outline?after=additions">
- <command commandId="org.eclipse.xtext.ui.editor.copyqualifiedname.OutlineCopyQualifiedName"
- style="push" tooltip="Copy Qualified Name">
- <visibleWhen checkEnabled="false">
- <and>
- <reference definitionId="org.polarsys.chess.xtext.FlaDsl.XtextEditor.opened" />
- <iterate>
- <adapt type="org.eclipse.xtext.ui.editor.outline.IOutlineNode" />
- </iterate>
- </and>
- </visibleWhen>
- </command>
- </menuContribution>
- </extension>
- <extension point="org.eclipse.ui.menus">
- <menuContribution locationURI="popup:#TextEditorContext?endof=group.find">
- <command commandId="org.eclipse.xtext.ui.editor.FindReferences">
- <visibleWhen checkEnabled="false">
- <reference definitionId="org.polarsys.chess.xtext.FlaDsl.Editor.opened">
- </reference>
- </visibleWhen>
- </command>
- </menuContribution>
- </extension>
- <extension point="org.eclipse.ui.handlers">
- <handler
- class="org.polarsys.chess.xtext.ui.FlaDslExecutableExtensionFactory:org.eclipse.xtext.ui.editor.findrefs.FindReferencesHandler"
- commandId="org.eclipse.xtext.ui.editor.FindReferences">
- <activeWhen>
- <reference
- definitionId="org.polarsys.chess.xtext.FlaDsl.Editor.opened">
- </reference>
- </activeWhen>
- </handler>
- </extension>
-
-<!-- adding resource factories -->
-
- <extension
- point="org.eclipse.emf.ecore.extension_parser">
- <parser
- class="org.polarsys.chess.xtext.ui.FlaDslExecutableExtensionFactory:org.eclipse.xtext.resource.IResourceFactory"
- type="fladsl">
- </parser>
- </extension>
- <extension point="org.eclipse.xtext.extension_resourceServiceProvider">
- <resourceServiceProvider
- class="org.polarsys.chess.xtext.ui.FlaDslExecutableExtensionFactory:org.eclipse.xtext.ui.resource.IResourceUIServiceProvider"
- uriExtension="fladsl">
- </resourceServiceProvider>
- </extension>
-
-
- <!-- marker definitions for org.polarsys.chess.xtext.FlaDsl -->
- <extension
- id="fladsl.check.fast"
- name="FlaDsl Problem"
- point="org.eclipse.core.resources.markers">
- <super type="org.eclipse.xtext.ui.check.fast"/>
- <persistent value="true"/>
- </extension>
- <extension
- id="fladsl.check.normal"
- name="FlaDsl Problem"
- point="org.eclipse.core.resources.markers">
- <super type="org.eclipse.xtext.ui.check.normal"/>
- <persistent value="true"/>
- </extension>
- <extension
- id="fladsl.check.expensive"
- name="FlaDsl Problem"
- point="org.eclipse.core.resources.markers">
- <super type="org.eclipse.xtext.ui.check.expensive"/>
- <persistent value="true"/>
- </extension>
-
- <extension
- point="org.eclipse.xtext.builder.participant">
- <participant
- class="org.polarsys.chess.xtext.ui.FlaDslExecutableExtensionFactory:org.eclipse.xtext.builder.IXtextBuilderParticipant"
- fileExtensions="fladsl"
- >
- </participant>
- </extension>
- <extension
- point="org.eclipse.ui.preferencePages">
- <page
- category="org.polarsys.chess.xtext.FlaDsl"
- class="org.polarsys.chess.xtext.ui.FlaDslExecutableExtensionFactory:org.eclipse.xtext.builder.preferences.BuilderPreferencePage"
- id="org.polarsys.chess.xtext.FlaDsl.compiler.preferencePage"
- name="Compiler">
- <keywordReference id="org.polarsys.chess.xtext.ui.keyword_FlaDsl"/>
- </page>
- </extension>
- <extension
- point="org.eclipse.ui.propertyPages">
- <page
- category="org.polarsys.chess.xtext.FlaDsl"
- class="org.polarsys.chess.xtext.ui.FlaDslExecutableExtensionFactory:org.eclipse.xtext.builder.preferences.BuilderPreferencePage"
- id="org.polarsys.chess.xtext.FlaDsl.compiler.propertyPage"
- name="Compiler">
- <keywordReference id="org.polarsys.chess.xtext.ui.keyword_FlaDsl"/>
- <enabledWhen>
- <adapt type="org.eclipse.core.resources.IProject"/>
- </enabledWhen>
- <filter name="projectNature" value="org.eclipse.xtext.ui.shared.xtextNature"/>
- </page>
- </extension>
- <extension point="org.eclipse.ui.menus">
- <menuContribution locationURI="popup:#TextEditorContext?after=xtext.ui.openDeclaration">
- <command
- commandId="org.eclipse.xtext.ui.OpenGeneratedFileCommand"
- id="org.polarsys.chess.xtext.FlaDsl.OpenGeneratedCode"
- style="push">
- <visibleWhen checkEnabled="false">
- <reference definitionId="org.polarsys.chess.xtext.FlaDsl.Editor.opened" />
- </visibleWhen>
- </command>
- </menuContribution>
- </extension>
- <extension point="org.eclipse.ui.handlers">
- <handler
- class="org.polarsys.chess.xtext.ui.FlaDslExecutableExtensionFactory:org.eclipse.xtext.ui.generator.trace.OpenGeneratedFileHandler"
- commandId="org.eclipse.xtext.ui.OpenGeneratedFileCommand">
- <activeWhen>
- <reference definitionId="org.polarsys.chess.xtext.FlaDsl.Editor.opened" />
- </activeWhen>
- </handler>
- </extension>
-
- <!-- Quick Outline -->
- <extension
- point="org.eclipse.ui.handlers">
- <handler
- class="org.polarsys.chess.xtext.ui.FlaDslExecutableExtensionFactory:org.eclipse.xtext.ui.editor.outline.quickoutline.ShowQuickOutlineActionHandler"
- commandId="org.eclipse.xtext.ui.editor.outline.QuickOutline">
- <activeWhen>
- <reference
- definitionId="org.polarsys.chess.xtext.FlaDsl.Editor.opened">
- </reference>
- </activeWhen>
- </handler>
- </extension>
- <extension
- point="org.eclipse.ui.commands">
- <command
- description="Open the quick outline."
- id="org.eclipse.xtext.ui.editor.outline.QuickOutline"
- name="Quick Outline">
- </command>
- </extension>
- <extension point="org.eclipse.ui.menus">
- <menuContribution
- locationURI="popup:#TextEditorContext?after=group.open">
- <command commandId="org.eclipse.xtext.ui.editor.outline.QuickOutline"
- style="push"
- tooltip="Open Quick Outline">
- <visibleWhen checkEnabled="false">
- <reference definitionId="org.polarsys.chess.xtext.FlaDsl.Editor.opened"/>
- </visibleWhen>
- </command>
- </menuContribution>
- </extension>
- <!-- quickfix marker resolution generator for org.polarsys.chess.xtext.FlaDsl -->
- <extension
- point="org.eclipse.ui.ide.markerResolution">
- <markerResolutionGenerator
- class="org.polarsys.chess.xtext.ui.FlaDslExecutableExtensionFactory:org.eclipse.xtext.ui.editor.quickfix.MarkerResolutionGenerator"
- markerType="org.polarsys.chess.xtext.ui.fladsl.check.fast">
- <attribute
- name="FIXABLE_KEY"
- value="true">
- </attribute>
- </markerResolutionGenerator>
- <markerResolutionGenerator
- class="org.polarsys.chess.xtext.ui.FlaDslExecutableExtensionFactory:org.eclipse.xtext.ui.editor.quickfix.MarkerResolutionGenerator"
- markerType="org.polarsys.chess.xtext.ui.fladsl.check.normal">
- <attribute
- name="FIXABLE_KEY"
- value="true">
- </attribute>
- </markerResolutionGenerator>
- <markerResolutionGenerator
- class="org.polarsys.chess.xtext.ui.FlaDslExecutableExtensionFactory:org.eclipse.xtext.ui.editor.quickfix.MarkerResolutionGenerator"
- markerType="org.polarsys.chess.xtext.ui.fladsl.check.expensive">
- <attribute
- name="FIXABLE_KEY"
- value="true">
- </attribute>
- </markerResolutionGenerator>
- </extension>
- <!-- Rename Refactoring -->
- <extension point="org.eclipse.ui.handlers">
- <handler
- class="org.polarsys.chess.xtext.ui.FlaDslExecutableExtensionFactory:org.eclipse.xtext.ui.refactoring.ui.DefaultRenameElementHandler"
- commandId="org.eclipse.xtext.ui.refactoring.RenameElement">
- <activeWhen>
- <reference
- definitionId="org.polarsys.chess.xtext.FlaDsl.Editor.opened">
- </reference>
- </activeWhen>
- </handler>
- </extension>
- <extension point="org.eclipse.ui.menus">
- <menuContribution
- locationURI="popup:#TextEditorContext?after=group.edit">
- <command commandId="org.eclipse.xtext.ui.refactoring.RenameElement"
- style="push">
- <visibleWhen checkEnabled="false">
- <reference
- definitionId="org.polarsys.chess.xtext.FlaDsl.Editor.opened">
- </reference>
- </visibleWhen>
- </command>
- </menuContribution>
- </extension>
- <extension point="org.eclipse.ui.preferencePages">
- <page
- category="org.polarsys.chess.xtext.FlaDsl"
- class="org.polarsys.chess.xtext.ui.FlaDslExecutableExtensionFactory:org.eclipse.xtext.ui.refactoring.ui.RefactoringPreferencePage"
- id="org.polarsys.chess.xtext.FlaDsl.refactoring"
- name="Refactoring">
- <keywordReference id="org.polarsys.chess.xtext.ui.keyword_FlaDsl"/>
- </page>
- </extension>
-
- <extension point="org.eclipse.compare.contentViewers">
- <viewer id="org.polarsys.chess.xtext.FlaDsl.compare.contentViewers"
- class="org.polarsys.chess.xtext.ui.FlaDslExecutableExtensionFactory:org.eclipse.xtext.ui.compare.InjectableViewerCreator"
- extensions="fladsl">
- </viewer>
- </extension>
- <extension point="org.eclipse.compare.contentMergeViewers">
- <viewer id="org.polarsys.chess.xtext.FlaDsl.compare.contentMergeViewers"
- class="org.polarsys.chess.xtext.ui.FlaDslExecutableExtensionFactory:org.eclipse.xtext.ui.compare.InjectableViewerCreator"
- extensions="fladsl" label="FlaDsl Compare">
- </viewer>
- </extension>
- <extension point="org.eclipse.ui.editors.documentProviders">
- <provider id="org.polarsys.chess.xtext.FlaDsl.editors.documentProviders"
- class="org.polarsys.chess.xtext.ui.FlaDslExecutableExtensionFactory:org.eclipse.xtext.ui.editor.model.XtextDocumentProvider"
- extensions="fladsl">
- </provider>
- </extension>
- <extension point="org.eclipse.team.core.fileTypes">
- <fileTypes
- extension="fladsl"
- type="text">
- </fileTypes>
- </extension>
-
-</plugin>
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+
+<plugin>
+
+ <extension
+ point="org.eclipse.ui.editors">
+ <editor
+ class="org.polarsys.chess.xtext.ui.FlaDslExecutableExtensionFactory:org.eclipse.xtext.ui.editor.XtextEditor"
+ contributorClass="org.eclipse.ui.editors.text.TextEditorActionContributor"
+ default="true"
+ extensions="fladsl"
+ id="org.polarsys.chess.xtext.FlaDsl"
+ name="FlaDsl Editor">
+ </editor>
+ </extension>
+ <extension
+ point="org.eclipse.ui.handlers">
+ <handler
+ class="org.polarsys.chess.xtext.ui.FlaDslExecutableExtensionFactory:org.eclipse.xtext.ui.editor.hyperlinking.OpenDeclarationHandler"
+ commandId="org.eclipse.xtext.ui.editor.hyperlinking.OpenDeclaration">
+ <activeWhen>
+ <reference
+ definitionId="org.polarsys.chess.xtext.FlaDsl.Editor.opened">
+ </reference>
+ </activeWhen>
+ </handler>
+ <handler
+ class="org.polarsys.chess.xtext.ui.FlaDslExecutableExtensionFactory:org.eclipse.xtext.ui.editor.handler.ValidateActionHandler"
+ commandId="org.polarsys.chess.xtext.FlaDsl.validate">
+ <activeWhen>
+ <reference
+ definitionId="org.polarsys.chess.xtext.FlaDsl.Editor.opened">
+ </reference>
+ </activeWhen>
+ </handler>
+ <!-- copy qualified name -->
+ <handler
+ class="org.polarsys.chess.xtext.ui.FlaDslExecutableExtensionFactory:org.eclipse.xtext.ui.editor.copyqualifiedname.EditorCopyQualifiedNameHandler"
+ commandId="org.eclipse.xtext.ui.editor.copyqualifiedname.EditorCopyQualifiedName">
+ <activeWhen>
+ <reference definitionId="org.polarsys.chess.xtext.FlaDsl.Editor.opened" />
+ </activeWhen>
+ </handler>
+ <handler
+ class="org.polarsys.chess.xtext.ui.FlaDslExecutableExtensionFactory:org.eclipse.xtext.ui.editor.copyqualifiedname.OutlineCopyQualifiedNameHandler"
+ commandId="org.eclipse.xtext.ui.editor.copyqualifiedname.OutlineCopyQualifiedName">
+ <activeWhen>
+ <and>
+ <reference definitionId="org.polarsys.chess.xtext.FlaDsl.XtextEditor.opened" />
+ <iterate>
+ <adapt type="org.eclipse.xtext.ui.editor.outline.IOutlineNode" />
+ </iterate>
+ </and>
+ </activeWhen>
+ </handler>
+ </extension>
+ <extension point="org.eclipse.core.expressions.definitions">
+ <definition id="org.polarsys.chess.xtext.FlaDsl.Editor.opened">
+ <and>
+ <reference definitionId="isActiveEditorAnInstanceOfXtextEditor"/>
+ <with variable="activeEditor">
+ <test property="org.eclipse.xtext.ui.editor.XtextEditor.languageName"
+ value="org.polarsys.chess.xtext.FlaDsl"
+ forcePluginActivation="true"/>
+ </with>
+ </and>
+ </definition>
+ <definition id="org.polarsys.chess.xtext.FlaDsl.XtextEditor.opened">
+ <and>
+ <reference definitionId="isXtextEditorActive"/>
+ <with variable="activeEditor">
+ <test property="org.eclipse.xtext.ui.editor.XtextEditor.languageName"
+ value="org.polarsys.chess.xtext.FlaDsl"
+ forcePluginActivation="true"/>
+ </with>
+ </and>
+ </definition>
+ </extension>
+ <extension
+ point="org.eclipse.ui.preferencePages">
+ <page
+ class="org.polarsys.chess.xtext.ui.FlaDslExecutableExtensionFactory:org.eclipse.xtext.ui.editor.preferences.LanguageRootPreferencePage"
+ id="org.polarsys.chess.xtext.FlaDsl"
+ name="FlaDsl">
+ <keywordReference id="org.polarsys.chess.xtext.ui.keyword_FlaDsl"/>
+ </page>
+ <page
+ category="org.polarsys.chess.xtext.FlaDsl"
+ class="org.polarsys.chess.xtext.ui.FlaDslExecutableExtensionFactory:org.eclipse.xtext.ui.editor.syntaxcoloring.SyntaxColoringPreferencePage"
+ id="org.polarsys.chess.xtext.FlaDsl.coloring"
+ name="Syntax Coloring">
+ <keywordReference id="org.polarsys.chess.xtext.ui.keyword_FlaDsl"/>
+ </page>
+ <page
+ category="org.polarsys.chess.xtext.FlaDsl"
+ class="org.polarsys.chess.xtext.ui.FlaDslExecutableExtensionFactory:org.eclipse.xtext.ui.editor.templates.XtextTemplatePreferencePage"
+ id="org.polarsys.chess.xtext.FlaDsl.templates"
+ name="Templates">
+ <keywordReference id="org.polarsys.chess.xtext.ui.keyword_FlaDsl"/>
+ </page>
+ </extension>
+ <extension
+ point="org.eclipse.ui.propertyPages">
+ <page
+ class="org.polarsys.chess.xtext.ui.FlaDslExecutableExtensionFactory:org.eclipse.xtext.ui.editor.preferences.LanguageRootPreferencePage"
+ id="org.polarsys.chess.xtext.FlaDsl"
+ name="FlaDsl">
+ <keywordReference id="org.polarsys.chess.xtext.ui.keyword_FlaDsl"/>
+ <enabledWhen>
+ <adapt type="org.eclipse.core.resources.IProject"/>
+ </enabledWhen>
+ <filter name="projectNature" value="org.eclipse.xtext.ui.shared.xtextNature"/>
+ </page>
+ </extension>
+ <extension
+ point="org.eclipse.ui.keywords">
+ <keyword
+ id="org.polarsys.chess.xtext.ui.keyword_FlaDsl"
+ label="FlaDsl"/>
+ </extension>
+ <extension
+ point="org.eclipse.ui.commands">
+ <command
+ description="Trigger expensive validation"
+ id="org.polarsys.chess.xtext.FlaDsl.validate"
+ name="Validate">
+ </command>
+ <!-- copy qualified name -->
+ <command
+ id="org.eclipse.xtext.ui.editor.copyqualifiedname.EditorCopyQualifiedName"
+ categoryId="org.eclipse.ui.category.edit"
+ description="Copy the qualified name for the selected element"
+ name="Copy Qualified Name">
+ </command>
+ <command
+ id="org.eclipse.xtext.ui.editor.copyqualifiedname.OutlineCopyQualifiedName"
+ categoryId="org.eclipse.ui.category.edit"
+ description="Copy the qualified name for the selected element"
+ name="Copy Qualified Name">
+ </command>
+ </extension>
+ <extension point="org.eclipse.ui.menus">
+ <menuContribution
+ locationURI="popup:#TextEditorContext?after=group.edit">
+ <command
+ commandId="org.polarsys.chess.xtext.FlaDsl.validate"
+ style="push"
+ tooltip="Trigger expensive validation">
+ <visibleWhen checkEnabled="false">
+ <reference
+ definitionId="org.polarsys.chess.xtext.FlaDsl.Editor.opened">
+ </reference>
+ </visibleWhen>
+ </command>
+ </menuContribution>
+ <!-- copy qualified name -->
+ <menuContribution locationURI="popup:#TextEditorContext?after=copy">
+ <command commandId="org.eclipse.xtext.ui.editor.copyqualifiedname.EditorCopyQualifiedName"
+ style="push" tooltip="Copy Qualified Name">
+ <visibleWhen checkEnabled="false">
+ <reference definitionId="org.polarsys.chess.xtext.FlaDsl.Editor.opened" />
+ </visibleWhen>
+ </command>
+ </menuContribution>
+ <menuContribution locationURI="menu:edit?after=copy">
+ <command commandId="org.eclipse.xtext.ui.editor.copyqualifiedname.EditorCopyQualifiedName"
+ style="push" tooltip="Copy Qualified Name">
+ <visibleWhen checkEnabled="false">
+ <reference definitionId="org.polarsys.chess.xtext.FlaDsl.Editor.opened" />
+ </visibleWhen>
+ </command>
+ </menuContribution>
+ <menuContribution locationURI="popup:org.eclipse.xtext.ui.outline?after=additions">
+ <command commandId="org.eclipse.xtext.ui.editor.copyqualifiedname.OutlineCopyQualifiedName"
+ style="push" tooltip="Copy Qualified Name">
+ <visibleWhen checkEnabled="false">
+ <and>
+ <reference definitionId="org.polarsys.chess.xtext.FlaDsl.XtextEditor.opened" />
+ <iterate>
+ <adapt type="org.eclipse.xtext.ui.editor.outline.IOutlineNode" />
+ </iterate>
+ </and>
+ </visibleWhen>
+ </command>
+ </menuContribution>
+ </extension>
+ <extension point="org.eclipse.ui.menus">
+ <menuContribution locationURI="popup:#TextEditorContext?endof=group.find">
+ <command commandId="org.eclipse.xtext.ui.editor.FindReferences">
+ <visibleWhen checkEnabled="false">
+ <reference definitionId="org.polarsys.chess.xtext.FlaDsl.Editor.opened">
+ </reference>
+ </visibleWhen>
+ </command>
+ </menuContribution>
+ </extension>
+ <extension point="org.eclipse.ui.handlers">
+ <handler
+ class="org.polarsys.chess.xtext.ui.FlaDslExecutableExtensionFactory:org.eclipse.xtext.ui.editor.findrefs.FindReferencesHandler"
+ commandId="org.eclipse.xtext.ui.editor.FindReferences">
+ <activeWhen>
+ <reference
+ definitionId="org.polarsys.chess.xtext.FlaDsl.Editor.opened">
+ </reference>
+ </activeWhen>
+ </handler>
+ </extension>
+
+<!-- adding resource factories -->
+
+ <extension
+ point="org.eclipse.emf.ecore.extension_parser">
+ <parser
+ class="org.polarsys.chess.xtext.ui.FlaDslExecutableExtensionFactory:org.eclipse.xtext.resource.IResourceFactory"
+ type="fladsl">
+ </parser>
+ </extension>
+ <extension point="org.eclipse.xtext.extension_resourceServiceProvider">
+ <resourceServiceProvider
+ class="org.polarsys.chess.xtext.ui.FlaDslExecutableExtensionFactory:org.eclipse.xtext.ui.resource.IResourceUIServiceProvider"
+ uriExtension="fladsl">
+ </resourceServiceProvider>
+ </extension>
+
+
+ <!-- marker definitions for org.polarsys.chess.xtext.FlaDsl -->
+ <extension
+ id="fladsl.check.fast"
+ name="FlaDsl Problem"
+ point="org.eclipse.core.resources.markers">
+ <super type="org.eclipse.xtext.ui.check.fast"/>
+ <persistent value="true"/>
+ </extension>
+ <extension
+ id="fladsl.check.normal"
+ name="FlaDsl Problem"
+ point="org.eclipse.core.resources.markers">
+ <super type="org.eclipse.xtext.ui.check.normal"/>
+ <persistent value="true"/>
+ </extension>
+ <extension
+ id="fladsl.check.expensive"
+ name="FlaDsl Problem"
+ point="org.eclipse.core.resources.markers">
+ <super type="org.eclipse.xtext.ui.check.expensive"/>
+ <persistent value="true"/>
+ </extension>
+
+ <extension
+ point="org.eclipse.xtext.builder.participant">
+ <participant
+ class="org.polarsys.chess.xtext.ui.FlaDslExecutableExtensionFactory:org.eclipse.xtext.builder.IXtextBuilderParticipant"
+ fileExtensions="fladsl"
+ >
+ </participant>
+ </extension>
+ <extension
+ point="org.eclipse.ui.preferencePages">
+ <page
+ category="org.polarsys.chess.xtext.FlaDsl"
+ class="org.polarsys.chess.xtext.ui.FlaDslExecutableExtensionFactory:org.eclipse.xtext.builder.preferences.BuilderPreferencePage"
+ id="org.polarsys.chess.xtext.FlaDsl.compiler.preferencePage"
+ name="Compiler">
+ <keywordReference id="org.polarsys.chess.xtext.ui.keyword_FlaDsl"/>
+ </page>
+ </extension>
+ <extension
+ point="org.eclipse.ui.propertyPages">
+ <page
+ category="org.polarsys.chess.xtext.FlaDsl"
+ class="org.polarsys.chess.xtext.ui.FlaDslExecutableExtensionFactory:org.eclipse.xtext.builder.preferences.BuilderPreferencePage"
+ id="org.polarsys.chess.xtext.FlaDsl.compiler.propertyPage"
+ name="Compiler">
+ <keywordReference id="org.polarsys.chess.xtext.ui.keyword_FlaDsl"/>
+ <enabledWhen>
+ <adapt type="org.eclipse.core.resources.IProject"/>
+ </enabledWhen>
+ <filter name="projectNature" value="org.eclipse.xtext.ui.shared.xtextNature"/>
+ </page>
+ </extension>
+ <extension point="org.eclipse.ui.menus">
+ <menuContribution locationURI="popup:#TextEditorContext?after=xtext.ui.openDeclaration">
+ <command
+ commandId="org.eclipse.xtext.ui.OpenGeneratedFileCommand"
+ id="org.polarsys.chess.xtext.FlaDsl.OpenGeneratedCode"
+ style="push">
+ <visibleWhen checkEnabled="false">
+ <reference definitionId="org.polarsys.chess.xtext.FlaDsl.Editor.opened" />
+ </visibleWhen>
+ </command>
+ </menuContribution>
+ </extension>
+ <extension point="org.eclipse.ui.handlers">
+ <handler
+ class="org.polarsys.chess.xtext.ui.FlaDslExecutableExtensionFactory:org.eclipse.xtext.ui.generator.trace.OpenGeneratedFileHandler"
+ commandId="org.eclipse.xtext.ui.OpenGeneratedFileCommand">
+ <activeWhen>
+ <reference definitionId="org.polarsys.chess.xtext.FlaDsl.Editor.opened" />
+ </activeWhen>
+ </handler>
+ </extension>
+
+ <!-- Quick Outline -->
+ <extension
+ point="org.eclipse.ui.handlers">
+ <handler
+ class="org.polarsys.chess.xtext.ui.FlaDslExecutableExtensionFactory:org.eclipse.xtext.ui.editor.outline.quickoutline.ShowQuickOutlineActionHandler"
+ commandId="org.eclipse.xtext.ui.editor.outline.QuickOutline">
+ <activeWhen>
+ <reference
+ definitionId="org.polarsys.chess.xtext.FlaDsl.Editor.opened">
+ </reference>
+ </activeWhen>
+ </handler>
+ </extension>
+ <extension
+ point="org.eclipse.ui.commands">
+ <command
+ description="Open the quick outline."
+ id="org.eclipse.xtext.ui.editor.outline.QuickOutline"
+ name="Quick Outline">
+ </command>
+ </extension>
+ <extension point="org.eclipse.ui.menus">
+ <menuContribution
+ locationURI="popup:#TextEditorContext?after=group.open">
+ <command commandId="org.eclipse.xtext.ui.editor.outline.QuickOutline"
+ style="push"
+ tooltip="Open Quick Outline">
+ <visibleWhen checkEnabled="false">
+ <reference definitionId="org.polarsys.chess.xtext.FlaDsl.Editor.opened"/>
+ </visibleWhen>
+ </command>
+ </menuContribution>
+ </extension>
+ <!-- quickfix marker resolution generator for org.polarsys.chess.xtext.FlaDsl -->
+ <extension
+ point="org.eclipse.ui.ide.markerResolution">
+ <markerResolutionGenerator
+ class="org.polarsys.chess.xtext.ui.FlaDslExecutableExtensionFactory:org.eclipse.xtext.ui.editor.quickfix.MarkerResolutionGenerator"
+ markerType="org.polarsys.chess.xtext.ui.fladsl.check.fast">
+ <attribute
+ name="FIXABLE_KEY"
+ value="true">
+ </attribute>
+ </markerResolutionGenerator>
+ <markerResolutionGenerator
+ class="org.polarsys.chess.xtext.ui.FlaDslExecutableExtensionFactory:org.eclipse.xtext.ui.editor.quickfix.MarkerResolutionGenerator"
+ markerType="org.polarsys.chess.xtext.ui.fladsl.check.normal">
+ <attribute
+ name="FIXABLE_KEY"
+ value="true">
+ </attribute>
+ </markerResolutionGenerator>
+ <markerResolutionGenerator
+ class="org.polarsys.chess.xtext.ui.FlaDslExecutableExtensionFactory:org.eclipse.xtext.ui.editor.quickfix.MarkerResolutionGenerator"
+ markerType="org.polarsys.chess.xtext.ui.fladsl.check.expensive">
+ <attribute
+ name="FIXABLE_KEY"
+ value="true">
+ </attribute>
+ </markerResolutionGenerator>
+ </extension>
+ <!-- Rename Refactoring -->
+ <extension point="org.eclipse.ui.handlers">
+ <handler
+ class="org.polarsys.chess.xtext.ui.FlaDslExecutableExtensionFactory:org.eclipse.xtext.ui.refactoring.ui.DefaultRenameElementHandler"
+ commandId="org.eclipse.xtext.ui.refactoring.RenameElement">
+ <activeWhen>
+ <reference
+ definitionId="org.polarsys.chess.xtext.FlaDsl.Editor.opened">
+ </reference>
+ </activeWhen>
+ </handler>
+ </extension>
+ <extension point="org.eclipse.ui.menus">
+ <menuContribution
+ locationURI="popup:#TextEditorContext?after=group.edit">
+ <command commandId="org.eclipse.xtext.ui.refactoring.RenameElement"
+ style="push">
+ <visibleWhen checkEnabled="false">
+ <reference
+ definitionId="org.polarsys.chess.xtext.FlaDsl.Editor.opened">
+ </reference>
+ </visibleWhen>
+ </command>
+ </menuContribution>
+ </extension>
+ <extension point="org.eclipse.ui.preferencePages">
+ <page
+ category="org.polarsys.chess.xtext.FlaDsl"
+ class="org.polarsys.chess.xtext.ui.FlaDslExecutableExtensionFactory:org.eclipse.xtext.ui.refactoring.ui.RefactoringPreferencePage"
+ id="org.polarsys.chess.xtext.FlaDsl.refactoring"
+ name="Refactoring">
+ <keywordReference id="org.polarsys.chess.xtext.ui.keyword_FlaDsl"/>
+ </page>
+ </extension>
+
+ <extension point="org.eclipse.compare.contentViewers">
+ <viewer id="org.polarsys.chess.xtext.FlaDsl.compare.contentViewers"
+ class="org.polarsys.chess.xtext.ui.FlaDslExecutableExtensionFactory:org.eclipse.xtext.ui.compare.InjectableViewerCreator"
+ extensions="fladsl">
+ </viewer>
+ </extension>
+ <extension point="org.eclipse.compare.contentMergeViewers">
+ <viewer id="org.polarsys.chess.xtext.FlaDsl.compare.contentMergeViewers"
+ class="org.polarsys.chess.xtext.ui.FlaDslExecutableExtensionFactory:org.eclipse.xtext.ui.compare.InjectableViewerCreator"
+ extensions="fladsl" label="FlaDsl Compare">
+ </viewer>
+ </extension>
+ <extension point="org.eclipse.ui.editors.documentProviders">
+ <provider id="org.polarsys.chess.xtext.FlaDsl.editors.documentProviders"
+ class="org.polarsys.chess.xtext.ui.FlaDslExecutableExtensionFactory:org.eclipse.xtext.ui.editor.model.XtextDocumentProvider"
+ extensions="fladsl">
+ </provider>
+ </extension>
+ <extension point="org.eclipse.team.core.fileTypes">
+ <fileTypes
+ extension="fladsl"
+ type="text">
+ </fileTypes>
+ </extension>
+
+</plugin>
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl.ui/src-gen/org/polarsys/chess/xtext/ui/AbstractFlaDslUiModule.java b/plugins/fla/org.polarsys.chess.xtext.fladsl.ui/src-gen/org/polarsys/chess/xtext/ui/AbstractFlaDslUiModule.java
new file mode 100644
index 0000000..f7927e9
--- /dev/null
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl.ui/src-gen/org/polarsys/chess/xtext/ui/AbstractFlaDslUiModule.java
@@ -0,0 +1,201 @@
+
+/*
+ * generated by Xtext
+ */
+package org.polarsys.chess.xtext.ui;
+
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+
+/**
+ * Manual modifications go to {org.polarsys.chess.xtext.ui.FlaDslUiModule}
+ */
+@SuppressWarnings("all")
+public abstract class AbstractFlaDslUiModule extends org.eclipse.xtext.common.types.ui.DefaultCommonTypesUiModule {
+
+ public AbstractFlaDslUiModule(AbstractUIPlugin plugin) {
+ super(plugin);
+ }
+
+
+ // contributed by org.eclipse.xtext.ui.generator.ImplicitUiFragment
+ public com.google.inject.Provider<org.eclipse.xtext.resource.containers.IAllContainersState> provideIAllContainersState() {
+ return org.eclipse.xtext.ui.shared.Access.getJavaProjectsState();
+ }
+
+ // contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment
+ public Class<? extends org.eclipse.xtext.ui.editor.contentassist.IProposalConflictHelper> bindIProposalConflictHelper() {
+ return org.eclipse.xtext.ui.editor.contentassist.antlr.AntlrProposalConflictHelper.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment
+ public void configureHighlightingLexer(com.google.inject.Binder binder) {
+ binder.bind(org.eclipse.xtext.parser.antlr.Lexer.class).annotatedWith(com.google.inject.name.Names.named(org.eclipse.xtext.ui.LexerUIBindings.HIGHLIGHTING)).to(org.polarsys.chess.xtext.parser.antlr.internal.InternalFlaDslLexer.class);
+ }
+
+ // contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment
+ public void configureHighlightingTokenDefProvider(com.google.inject.Binder binder) {
+ binder.bind(org.eclipse.xtext.parser.antlr.ITokenDefProvider.class).annotatedWith(com.google.inject.name.Names.named(org.eclipse.xtext.ui.LexerUIBindings.HIGHLIGHTING)).to(org.eclipse.xtext.parser.antlr.AntlrTokenDefProvider.class);
+ }
+
+ // contributed by org.eclipse.xtext.generator.exporting.QualifiedNamesFragment
+ public Class<? extends org.eclipse.xtext.ui.refactoring.IDependentElementsCalculator> bindIDependentElementsCalculator() {
+ return org.eclipse.xtext.ui.refactoring.impl.DefaultDependentElementsCalculator.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.builder.BuilderIntegrationFragment
+ public void configureIResourceDescriptionsBuilderScope(com.google.inject.Binder binder) {
+ binder.bind(org.eclipse.xtext.resource.IResourceDescriptions.class).annotatedWith(com.google.inject.name.Names.named(org.eclipse.xtext.resource.impl.ResourceDescriptionsProvider.NAMED_BUILDER_SCOPE)).to(org.eclipse.xtext.builder.clustering.CurrentDescriptions.ResourceSetAware.class);
+ }
+
+ // contributed by org.eclipse.xtext.generator.builder.BuilderIntegrationFragment
+ public Class<? extends org.eclipse.xtext.ui.editor.IXtextEditorCallback> bindIXtextEditorCallback() {
+ return org.eclipse.xtext.builder.nature.NatureAddingEditorCallback.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.builder.BuilderIntegrationFragment
+ public Class<? extends org.eclipse.xtext.generator.IContextualOutputConfigurationProvider> bindIContextualOutputConfigurationProvider() {
+ return org.eclipse.xtext.builder.EclipseOutputConfigurationProvider.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.builder.BuilderIntegrationFragment
+ public void configureIResourceDescriptionsPersisted(com.google.inject.Binder binder) {
+ binder.bind(org.eclipse.xtext.resource.IResourceDescriptions.class).annotatedWith(com.google.inject.name.Names.named(org.eclipse.xtext.resource.impl.ResourceDescriptionsProvider.PERSISTED_DESCRIPTIONS)).to(org.eclipse.xtext.builder.builderState.IBuilderState.class);
+ }
+
+ // contributed by org.eclipse.xtext.generator.builder.BuilderIntegrationFragment
+ public Class<? extends org.eclipse.xtext.ui.editor.DocumentBasedDirtyResource> bindDocumentBasedDirtyResource() {
+ return org.eclipse.xtext.builder.impl.PersistentDataAwareDirtyResource.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.generator.GeneratorFragment
+ public Class<? extends org.eclipse.xtext.builder.IXtextBuilderParticipant> bindIXtextBuilderParticipant() {
+ return org.eclipse.xtext.builder.BuilderParticipant.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.generator.GeneratorFragment
+ public org.eclipse.core.resources.IWorkspaceRoot bindIWorkspaceRootToInstance() {
+ return org.eclipse.core.resources.ResourcesPlugin.getWorkspace().getRoot();
+ }
+
+ // contributed by org.eclipse.xtext.generator.generator.GeneratorFragment
+ public void configureBuilderPreferenceStoreInitializer(com.google.inject.Binder binder) {
+ binder.bind(org.eclipse.xtext.ui.editor.preferences.IPreferenceStoreInitializer.class).annotatedWith(com.google.inject.name.Names.named("builderPreferenceInitializer")).to(org.eclipse.xtext.builder.preferences.BuilderPreferenceAccess.Initializer.class);
+ }
+
+ // contributed by org.eclipse.xtext.ui.generator.labeling.LabelProviderFragment
+ public Class<? extends org.eclipse.jface.viewers.ILabelProvider> bindILabelProvider() {
+ return org.polarsys.chess.xtext.ui.labeling.FlaDslLabelProvider.class;
+ }
+
+ // contributed by org.eclipse.xtext.ui.generator.labeling.LabelProviderFragment
+ public void configureResourceUIServiceLabelProvider(com.google.inject.Binder binder) {
+ binder.bind(org.eclipse.jface.viewers.ILabelProvider.class).annotatedWith(org.eclipse.xtext.ui.resource.ResourceServiceDescriptionLabelProvider.class).to(org.polarsys.chess.xtext.ui.labeling.FlaDslDescriptionLabelProvider.class);
+ }
+
+ // contributed by org.eclipse.xtext.ui.generator.outline.OutlineTreeProviderFragment
+ public Class<? extends org.eclipse.xtext.ui.editor.outline.IOutlineTreeProvider> bindIOutlineTreeProvider() {
+ return org.polarsys.chess.xtext.ui.outline.FlaDslOutlineTreeProvider.class;
+ }
+
+ // contributed by org.eclipse.xtext.ui.generator.outline.OutlineTreeProviderFragment
+ public Class<? extends org.eclipse.xtext.ui.editor.outline.impl.IOutlineTreeStructureProvider> bindIOutlineTreeStructureProvider() {
+ return org.polarsys.chess.xtext.ui.outline.FlaDslOutlineTreeProvider.class;
+ }
+
+ // contributed by org.eclipse.xtext.ui.generator.quickfix.QuickfixProviderFragment
+ public Class<? extends org.eclipse.xtext.ui.editor.quickfix.IssueResolutionProvider> bindIssueResolutionProvider() {
+ return org.polarsys.chess.xtext.ui.quickfix.FlaDslQuickfixProvider.class;
+ }
+
+ // contributed by org.eclipse.xtext.ui.generator.contentAssist.ContentAssistFragment
+ public Class<? extends org.eclipse.xtext.ui.editor.contentassist.IContentProposalProvider> bindIContentProposalProvider() {
+ return org.polarsys.chess.xtext.ui.contentassist.FlaDslProposalProvider.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrUiGeneratorFragment
+ public Class<? extends org.eclipse.xtext.ui.editor.contentassist.ContentAssistContext.Factory> bindContentAssistContext$Factory() {
+ return org.eclipse.xtext.ui.editor.contentassist.antlr.ParserBasedContentAssistContextFactory.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrUiGeneratorFragment
+ public Class<? extends org.eclipse.xtext.ui.editor.contentassist.antlr.IContentAssistParser> bindIContentAssistParser() {
+ return org.polarsys.chess.xtext.ui.contentassist.antlr.FlaDslParser.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrUiGeneratorFragment
+ public void configureContentAssistLexerProvider(com.google.inject.Binder binder) {
+ binder.bind(org.polarsys.chess.xtext.ui.contentassist.antlr.internal.InternalFlaDslLexer.class).toProvider(org.eclipse.xtext.parser.antlr.LexerProvider.create(org.polarsys.chess.xtext.ui.contentassist.antlr.internal.InternalFlaDslLexer.class));
+ }
+
+ // contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrUiGeneratorFragment
+ public void configureContentAssistLexer(com.google.inject.Binder binder) {
+ binder.bind(org.eclipse.xtext.ui.editor.contentassist.antlr.internal.Lexer.class).annotatedWith(com.google.inject.name.Names.named(org.eclipse.xtext.ui.LexerUIBindings.CONTENT_ASSIST)).to(org.polarsys.chess.xtext.ui.contentassist.antlr.internal.InternalFlaDslLexer.class);
+ }
+
+ // contributed by org.eclipse.xtext.ui.generator.refactoring.RefactorElementNameFragment
+ public Class<? extends org.eclipse.xtext.ui.refactoring.IRenameStrategy> bindIRenameStrategy() {
+ return org.eclipse.xtext.ui.refactoring.impl.DefaultRenameStrategy.class;
+ }
+
+ // contributed by org.eclipse.xtext.ui.generator.refactoring.RefactorElementNameFragment
+ public Class<? extends org.eclipse.xtext.ui.refactoring.IReferenceUpdater> bindIReferenceUpdater() {
+ return org.eclipse.xtext.ui.refactoring.impl.DefaultReferenceUpdater.class;
+ }
+
+ // contributed by org.eclipse.xtext.ui.generator.refactoring.RefactorElementNameFragment
+ public void configureIPreferenceStoreInitializer(com.google.inject.Binder binder) {
+ binder.bind(org.eclipse.xtext.ui.editor.preferences.IPreferenceStoreInitializer.class).annotatedWith(com.google.inject.name.Names.named("RefactoringPreferences")).to(org.eclipse.xtext.ui.refactoring.ui.RefactoringPreferences.Initializer.class);
+ }
+
+ // contributed by org.eclipse.xtext.ui.generator.refactoring.RefactorElementNameFragment
+ public Class<? extends org.eclipse.xtext.ui.refactoring.IRenameRefactoringProvider> bindIRenameRefactoringProvider() {
+ return org.eclipse.xtext.ui.refactoring.impl.DefaultRenameRefactoringProvider.class;
+ }
+
+ // contributed by org.eclipse.xtext.ui.generator.refactoring.RefactorElementNameFragment
+ public Class<? extends org.eclipse.xtext.ui.refactoring.ui.IRenameSupport.Factory> bindIRenameSupport$Factory() {
+ return org.eclipse.xtext.ui.refactoring.ui.DefaultRenameSupport.Factory.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.types.TypesGeneratorFragment
+ public Class<? extends org.eclipse.xtext.ui.editor.contentassist.PrefixMatcher> bindPrefixMatcher() {
+ return org.eclipse.xtext.ui.editor.contentassist.FQNPrefixMatcher.class;
+ }
+
+ // contributed by org.eclipse.xtext.ui.generator.templates.CodetemplatesGeneratorFragment
+ public com.google.inject.Provider<org.eclipse.xtext.ui.codetemplates.ui.preferences.TemplatesLanguageConfiguration> provideTemplatesLanguageConfiguration() {
+ return org.eclipse.xtext.ui.codetemplates.ui.AccessibleCodetemplatesActivator.getTemplatesLanguageConfigurationProvider();
+ }
+
+ // contributed by org.eclipse.xtext.ui.generator.templates.CodetemplatesGeneratorFragment
+ public com.google.inject.Provider<org.eclipse.xtext.ui.codetemplates.ui.registry.LanguageRegistry> provideLanguageRegistry() {
+ return org.eclipse.xtext.ui.codetemplates.ui.AccessibleCodetemplatesActivator.getLanguageRegistry();
+ }
+
+ // contributed by org.eclipse.xtext.ui.generator.templates.CodetemplatesGeneratorFragment
+ @org.eclipse.xtext.service.SingletonBinding(eager=true) public Class<? extends org.eclipse.xtext.ui.codetemplates.ui.registry.LanguageRegistrar> bindLanguageRegistrar() {
+ return org.eclipse.xtext.ui.codetemplates.ui.registry.LanguageRegistrar.class;
+ }
+
+ // contributed by org.eclipse.xtext.ui.generator.templates.CodetemplatesGeneratorFragment
+ public Class<? extends org.eclipse.xtext.ui.editor.templates.XtextTemplatePreferencePage> bindXtextTemplatePreferencePage() {
+ return org.eclipse.xtext.ui.codetemplates.ui.preferences.AdvancedTemplatesPreferencePage.class;
+ }
+
+ // contributed by org.eclipse.xtext.ui.generator.templates.CodetemplatesGeneratorFragment
+ public Class<? extends org.eclipse.xtext.ui.codetemplates.ui.partialEditing.IPartialContentAssistParser> bindIPartialContentAssistParser() {
+ return org.polarsys.chess.xtext.ui.contentassist.antlr.PartialFlaDslContentAssistParser.class;
+ }
+
+ // contributed by org.eclipse.xtext.ui.generator.compare.CompareFragment
+ public Class<? extends org.eclipse.compare.IViewerCreator> bindIViewerCreator() {
+ return org.eclipse.xtext.ui.compare.DefaultViewerCreator.class;
+ }
+
+ // contributed by org.eclipse.xtext.ui.generator.compare.CompareFragment
+ public void configureCompareViewerTitle(com.google.inject.Binder binder) {
+ binder.bind(String.class).annotatedWith(com.google.inject.name.Names.named(org.eclipse.xtext.ui.UIBindings.COMPARE_VIEWER_TITLE)).toInstance("FlaDsl Compare");
+ }
+
+
+}
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl.ui/src-gen/org/polarsys/chess/xtext/ui/FlaDslExecutableExtensionFactory.java b/plugins/fla/org.polarsys.chess.xtext.fladsl.ui/src-gen/org/polarsys/chess/xtext/ui/FlaDslExecutableExtensionFactory.java
new file mode 100644
index 0000000..bdea9a0
--- /dev/null
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl.ui/src-gen/org/polarsys/chess/xtext/ui/FlaDslExecutableExtensionFactory.java
@@ -0,0 +1,29 @@
+/*
+ * generated by Xtext
+ */
+package org.polarsys.chess.xtext.ui;
+
+import org.eclipse.xtext.ui.guice.AbstractGuiceAwareExecutableExtensionFactory;
+import org.osgi.framework.Bundle;
+
+import com.google.inject.Injector;
+
+import org.polarsys.chess.xtext.ui.internal.FlaDslActivator;
+
+/**
+ * This class was generated. Customizations should only happen in a newly
+ * introduced subclass.
+ */
+public class FlaDslExecutableExtensionFactory extends AbstractGuiceAwareExecutableExtensionFactory {
+
+ @Override
+ protected Bundle getBundle() {
+ return FlaDslActivator.getInstance().getBundle();
+ }
+
+ @Override
+ protected Injector getInjector() {
+ return FlaDslActivator.getInstance().getInjector(FlaDslActivator.ORG_POLARSYS_CHESS_XTEXT_FLADSL);
+ }
+
+}
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl.ui/src-gen/org/polarsys/chess/xtext/ui/contentassist/AbstractFlaDslProposalProvider.java b/plugins/fla/org.polarsys.chess.xtext.fladsl.ui/src-gen/org/polarsys/chess/xtext/ui/contentassist/AbstractFlaDslProposalProvider.java
new file mode 100644
index 0000000..345976e
--- /dev/null
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl.ui/src-gen/org/polarsys/chess/xtext/ui/contentassist/AbstractFlaDslProposalProvider.java
@@ -0,0 +1,176 @@
+/*
+ * generated by Xtext
+ */
+package org.polarsys.chess.xtext.ui.contentassist;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.xtext.*;
+import org.eclipse.xtext.ui.editor.contentassist.ICompletionProposalAcceptor;
+import org.eclipse.xtext.ui.editor.contentassist.ContentAssistContext;
+
+/**
+ * Represents a generated, default implementation of superclass {@link org.eclipse.xtext.common.ui.contentassist.TerminalsProposalProvider}.
+ * Methods are dynamically dispatched on the first parameter, i.e., you can override them
+ * with a more concrete subtype.
+ */
+@SuppressWarnings("all")
+public class AbstractFlaDslProposalProvider extends org.eclipse.xtext.common.ui.contentassist.TerminalsProposalProvider {
+
+ public void completeBehaviour_Rules(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeExpression_Lhs(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeExpression_Rhs(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeLhs_Failures(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeRhs_Failures(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeInputExpression_Ref(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeInputExpression_FailureExpr(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeOutputExpression_Ref(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeOutputExpression_FailureExpr(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeInFailureExpr_Failures(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeOutFailureExpr_Failures(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeFailureDefinition_Type(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeFailureDefinition_AcidAvoidable(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeComplexNofailureDefinition_AcidMitigation(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeVariableDefinition_VariableName(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeACIDavoidable_A(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeACIDavoidable_C(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeACIDavoidable_I(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeACIDavoidable_D(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeACIDMitigation_A(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeACIDMitigation_C(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeACIDMitigation_I(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeACIDMitigation_D(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+
+ public void complete_Behaviour(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_Expression(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_Lhs(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_Rhs(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_InputExpression(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_OutputExpression(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_InFailureExpr(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_OutFailureExpr(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_Definitions(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_FailureDefinition(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_NoFailureDefinition(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_ComplexNofailureDefinition(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_WildcardDefinition(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_VariableDefinition(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_FailureType(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_ActualFailureType(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_NoFailureType(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_Wildcard(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_ACIDavoidable(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_Aavoidable(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_Cavoidable(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_Iavoidable(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_Davoidable(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_ACIDMitigation(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_Amitigation(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_Cmitigation(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_Imitigation(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_Dmitigation(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_FQN(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+}
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl.ui/src-gen/org/polarsys/chess/xtext/ui/contentassist/antlr/FlaDslParser.java b/plugins/fla/org.polarsys.chess.xtext.fladsl.ui/src-gen/org/polarsys/chess/xtext/ui/contentassist/antlr/FlaDslParser.java
new file mode 100644
index 0000000..9117351
--- /dev/null
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl.ui/src-gen/org/polarsys/chess/xtext/ui/contentassist/antlr/FlaDslParser.java
@@ -0,0 +1,140 @@
+/*
+ * generated by Xtext
+ */
+package org.polarsys.chess.xtext.ui.contentassist.antlr;
+
+import java.util.Collection;
+import java.util.Map;
+import java.util.HashMap;
+
+import org.antlr.runtime.RecognitionException;
+import org.eclipse.xtext.AbstractElement;
+import org.eclipse.xtext.ui.editor.contentassist.antlr.AbstractContentAssistParser;
+import org.eclipse.xtext.ui.editor.contentassist.antlr.FollowElement;
+import org.eclipse.xtext.ui.editor.contentassist.antlr.internal.AbstractInternalContentAssistParser;
+
+import com.google.inject.Inject;
+
+import org.polarsys.chess.xtext.services.FlaDslGrammarAccess;
+
+public class FlaDslParser extends AbstractContentAssistParser {
+
+ @Inject
+ private FlaDslGrammarAccess grammarAccess;
+
+ private Map<AbstractElement, String> nameMappings;
+
+ @Override
+ protected org.polarsys.chess.xtext.ui.contentassist.antlr.internal.InternalFlaDslParser createParser() {
+ org.polarsys.chess.xtext.ui.contentassist.antlr.internal.InternalFlaDslParser result = new org.polarsys.chess.xtext.ui.contentassist.antlr.internal.InternalFlaDslParser(null);
+ result.setGrammarAccess(grammarAccess);
+ return result;
+ }
+
+ @Override
+ protected String getRuleName(AbstractElement element) {
+ if (nameMappings == null) {
+ nameMappings = new HashMap<AbstractElement, String>() {
+ private static final long serialVersionUID = 1L;
+ {
+ put(grammarAccess.getInputExpressionAccess().getAlternatives_0(), "rule__InputExpression__Alternatives_0");
+ put(grammarAccess.getOutputExpressionAccess().getAlternatives_0(), "rule__OutputExpression__Alternatives_0");
+ put(grammarAccess.getInFailureExprAccess().getAlternatives(), "rule__InFailureExpr__Alternatives");
+ put(grammarAccess.getOutFailureExprAccess().getAlternatives(), "rule__OutFailureExpr__Alternatives");
+ put(grammarAccess.getDefinitionsAccess().getAlternatives(), "rule__Definitions__Alternatives");
+ put(grammarAccess.getFailureTypeAccess().getAlternatives(), "rule__FailureType__Alternatives");
+ put(grammarAccess.getActualFailureTypeAccess().getAlternatives(), "rule__ActualFailureType__Alternatives");
+ put(grammarAccess.getAavoidableAccess().getAlternatives(), "rule__Aavoidable__Alternatives");
+ put(grammarAccess.getCavoidableAccess().getAlternatives(), "rule__Cavoidable__Alternatives");
+ put(grammarAccess.getIavoidableAccess().getAlternatives(), "rule__Iavoidable__Alternatives");
+ put(grammarAccess.getDavoidableAccess().getAlternatives(), "rule__Davoidable__Alternatives");
+ put(grammarAccess.getAmitigationAccess().getAlternatives(), "rule__Amitigation__Alternatives");
+ put(grammarAccess.getCmitigationAccess().getAlternatives(), "rule__Cmitigation__Alternatives");
+ put(grammarAccess.getImitigationAccess().getAlternatives(), "rule__Imitigation__Alternatives");
+ put(grammarAccess.getDmitigationAccess().getAlternatives(), "rule__Dmitigation__Alternatives");
+ put(grammarAccess.getExpressionAccess().getGroup(), "rule__Expression__Group__0");
+ put(grammarAccess.getLhsAccess().getGroup(), "rule__Lhs__Group__0");
+ put(grammarAccess.getLhsAccess().getGroup_1(), "rule__Lhs__Group_1__0");
+ put(grammarAccess.getRhsAccess().getGroup(), "rule__Rhs__Group__0");
+ put(grammarAccess.getRhsAccess().getGroup_1(), "rule__Rhs__Group_1__0");
+ put(grammarAccess.getInputExpressionAccess().getGroup(), "rule__InputExpression__Group__0");
+ put(grammarAccess.getOutputExpressionAccess().getGroup(), "rule__OutputExpression__Group__0");
+ put(grammarAccess.getInFailureExprAccess().getGroup_3(), "rule__InFailureExpr__Group_3__0");
+ put(grammarAccess.getInFailureExprAccess().getGroup_3_2(), "rule__InFailureExpr__Group_3_2__0");
+ put(grammarAccess.getOutFailureExprAccess().getGroup_3(), "rule__OutFailureExpr__Group_3__0");
+ put(grammarAccess.getOutFailureExprAccess().getGroup_3_2(), "rule__OutFailureExpr__Group_3_2__0");
+ put(grammarAccess.getFailureDefinitionAccess().getGroup(), "rule__FailureDefinition__Group__0");
+ put(grammarAccess.getFailureDefinitionAccess().getGroup_2(), "rule__FailureDefinition__Group_2__0");
+ put(grammarAccess.getNoFailureDefinitionAccess().getGroup(), "rule__NoFailureDefinition__Group__0");
+ put(grammarAccess.getComplexNofailureDefinitionAccess().getGroup(), "rule__ComplexNofailureDefinition__Group__0");
+ put(grammarAccess.getWildcardDefinitionAccess().getGroup(), "rule__WildcardDefinition__Group__0");
+ put(grammarAccess.getVariableDefinitionAccess().getGroup(), "rule__VariableDefinition__Group__0");
+ put(grammarAccess.getACIDavoidableAccess().getGroup(), "rule__ACIDavoidable__Group__0");
+ put(grammarAccess.getACIDMitigationAccess().getGroup(), "rule__ACIDMitigation__Group__0");
+ put(grammarAccess.getFQNAccess().getGroup(), "rule__FQN__Group__0");
+ put(grammarAccess.getFQNAccess().getGroup_1(), "rule__FQN__Group_1__0");
+ put(grammarAccess.getBehaviourAccess().getRulesAssignment(), "rule__Behaviour__RulesAssignment");
+ put(grammarAccess.getExpressionAccess().getLhsAssignment_1(), "rule__Expression__LhsAssignment_1");
+ put(grammarAccess.getExpressionAccess().getRhsAssignment_3(), "rule__Expression__RhsAssignment_3");
+ put(grammarAccess.getLhsAccess().getFailuresAssignment_0(), "rule__Lhs__FailuresAssignment_0");
+ put(grammarAccess.getLhsAccess().getFailuresAssignment_1_1(), "rule__Lhs__FailuresAssignment_1_1");
+ put(grammarAccess.getRhsAccess().getFailuresAssignment_0(), "rule__Rhs__FailuresAssignment_0");
+ put(grammarAccess.getRhsAccess().getFailuresAssignment_1_1(), "rule__Rhs__FailuresAssignment_1_1");
+ put(grammarAccess.getInputExpressionAccess().getRefAssignment_0_0(), "rule__InputExpression__RefAssignment_0_0");
+ put(grammarAccess.getInputExpressionAccess().getFailureExprAssignment_2(), "rule__InputExpression__FailureExprAssignment_2");
+ put(grammarAccess.getOutputExpressionAccess().getRefAssignment_0_0(), "rule__OutputExpression__RefAssignment_0_0");
+ put(grammarAccess.getOutputExpressionAccess().getFailureExprAssignment_2(), "rule__OutputExpression__FailureExprAssignment_2");
+ put(grammarAccess.getInFailureExprAccess().getFailuresAssignment_0(), "rule__InFailureExpr__FailuresAssignment_0");
+ put(grammarAccess.getInFailureExprAccess().getFailuresAssignment_1(), "rule__InFailureExpr__FailuresAssignment_1");
+ put(grammarAccess.getInFailureExprAccess().getFailuresAssignment_2(), "rule__InFailureExpr__FailuresAssignment_2");
+ put(grammarAccess.getInFailureExprAccess().getFailuresAssignment_3_1(), "rule__InFailureExpr__FailuresAssignment_3_1");
+ put(grammarAccess.getInFailureExprAccess().getFailuresAssignment_3_2_1(), "rule__InFailureExpr__FailuresAssignment_3_2_1");
+ put(grammarAccess.getInFailureExprAccess().getFailuresAssignment_4(), "rule__InFailureExpr__FailuresAssignment_4");
+ put(grammarAccess.getOutFailureExprAccess().getFailuresAssignment_0(), "rule__OutFailureExpr__FailuresAssignment_0");
+ put(grammarAccess.getOutFailureExprAccess().getFailuresAssignment_1(), "rule__OutFailureExpr__FailuresAssignment_1");
+ put(grammarAccess.getOutFailureExprAccess().getFailuresAssignment_2(), "rule__OutFailureExpr__FailuresAssignment_2");
+ put(grammarAccess.getOutFailureExprAccess().getFailuresAssignment_3_1(), "rule__OutFailureExpr__FailuresAssignment_3_1");
+ put(grammarAccess.getOutFailureExprAccess().getFailuresAssignment_3_2_1(), "rule__OutFailureExpr__FailuresAssignment_3_2_1");
+ put(grammarAccess.getOutFailureExprAccess().getFailuresAssignment_4(), "rule__OutFailureExpr__FailuresAssignment_4");
+ put(grammarAccess.getFailureDefinitionAccess().getTypeAssignment_1(), "rule__FailureDefinition__TypeAssignment_1");
+ put(grammarAccess.getFailureDefinitionAccess().getAcidAvoidableAssignment_2_1(), "rule__FailureDefinition__AcidAvoidableAssignment_2_1");
+ put(grammarAccess.getComplexNofailureDefinitionAccess().getAcidMitigationAssignment_3(), "rule__ComplexNofailureDefinition__AcidMitigationAssignment_3");
+ put(grammarAccess.getVariableDefinitionAccess().getVariableNameAssignment_1(), "rule__VariableDefinition__VariableNameAssignment_1");
+ put(grammarAccess.getACIDavoidableAccess().getAAssignment_0(), "rule__ACIDavoidable__AAssignment_0");
+ put(grammarAccess.getACIDavoidableAccess().getCAssignment_2(), "rule__ACIDavoidable__CAssignment_2");
+ put(grammarAccess.getACIDavoidableAccess().getIAssignment_4(), "rule__ACIDavoidable__IAssignment_4");
+ put(grammarAccess.getACIDavoidableAccess().getDAssignment_6(), "rule__ACIDavoidable__DAssignment_6");
+ put(grammarAccess.getACIDMitigationAccess().getAAssignment_0(), "rule__ACIDMitigation__AAssignment_0");
+ put(grammarAccess.getACIDMitigationAccess().getCAssignment_2(), "rule__ACIDMitigation__CAssignment_2");
+ put(grammarAccess.getACIDMitigationAccess().getIAssignment_4(), "rule__ACIDMitigation__IAssignment_4");
+ put(grammarAccess.getACIDMitigationAccess().getDAssignment_6(), "rule__ACIDMitigation__DAssignment_6");
+ }
+ };
+ }
+ return nameMappings.get(element);
+ }
+
+ @Override
+ protected Collection<FollowElement> getFollowElements(AbstractInternalContentAssistParser parser) {
+ try {
+ org.polarsys.chess.xtext.ui.contentassist.antlr.internal.InternalFlaDslParser typedParser = (org.polarsys.chess.xtext.ui.contentassist.antlr.internal.InternalFlaDslParser) parser;
+ typedParser.entryRuleBehaviour();
+ return typedParser.getFollowElements();
+ } catch(RecognitionException ex) {
+ throw new RuntimeException(ex);
+ }
+ }
+
+ @Override
+ protected String[] getInitialHiddenTokens() {
+ return new String[] { "RULE_WS", "RULE_ML_COMMENT", "RULE_SL_COMMENT" };
+ }
+
+ public FlaDslGrammarAccess getGrammarAccess() {
+ return this.grammarAccess;
+ }
+
+ public void setGrammarAccess(FlaDslGrammarAccess grammarAccess) {
+ this.grammarAccess = grammarAccess;
+ }
+}
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl.ui/src-gen/org/polarsys/chess/xtext/ui/contentassist/antlr/PartialFlaDslContentAssistParser.java b/plugins/fla/org.polarsys.chess.xtext.fladsl.ui/src-gen/org/polarsys/chess/xtext/ui/contentassist/antlr/PartialFlaDslContentAssistParser.java
new file mode 100644
index 0000000..8d2b405
--- /dev/null
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl.ui/src-gen/org/polarsys/chess/xtext/ui/contentassist/antlr/PartialFlaDslContentAssistParser.java
@@ -0,0 +1,38 @@
+/*
+ * generated by Xtext
+ */
+package org.polarsys.chess.xtext.ui.contentassist.antlr;
+
+import java.util.Collection;
+import java.util.Collections;
+
+import org.eclipse.xtext.AbstractRule;
+import org.eclipse.xtext.ui.codetemplates.ui.partialEditing.IPartialContentAssistParser;
+import org.eclipse.xtext.ui.editor.contentassist.antlr.FollowElement;
+import org.eclipse.xtext.ui.editor.contentassist.antlr.internal.AbstractInternalContentAssistParser;
+import org.eclipse.xtext.util.PolymorphicDispatcher;
+
+/*
+ * Template CodetemplatesGeneratorFragment.xpt
+ */
+public class PartialFlaDslContentAssistParser extends FlaDslParser implements IPartialContentAssistParser {
+
+ private AbstractRule rule;
+
+ @Override
+ public void initializeFor(AbstractRule rule) {
+ this.rule = rule;
+ }
+
+ @Override
+ protected Collection<FollowElement> getFollowElements(AbstractInternalContentAssistParser parser) {
+ if (rule == null || rule.eIsProxy())
+ return Collections.emptyList();
+ String methodName = "entryRule" + rule.getName();
+ PolymorphicDispatcher<Collection<FollowElement>> dispatcher =
+ new PolymorphicDispatcher<Collection<FollowElement>>(methodName, 0, 0, Collections.singletonList(parser));
+ dispatcher.invoke();
+ return parser.getFollowElements();
+ }
+
+}
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl.ui/src-gen/org/polarsys/chess/xtext/ui/contentassist/antlr/internal/InternalFlaDsl.g b/plugins/fla/org.polarsys.chess.xtext.fladsl.ui/src-gen/org/polarsys/chess/xtext/ui/contentassist/antlr/internal/InternalFlaDsl.g
new file mode 100644
index 0000000..d42f42f
--- /dev/null
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl.ui/src-gen/org/polarsys/chess/xtext/ui/contentassist/antlr/internal/InternalFlaDsl.g
@@ -0,0 +1,3592 @@
+/*
+ * generated by Xtext
+ */
+grammar InternalFlaDsl;
+
+options {
+ superClass=AbstractInternalContentAssistParser;
+
+}
+
+@lexer::header {
+package org.polarsys.chess.xtext.ui.contentassist.antlr.internal;
+
+// Hack: Use our own Lexer superclass by means of import.
+// Currently there is no other way to specify the superclass for the lexer.
+import org.eclipse.xtext.ui.editor.contentassist.antlr.internal.Lexer;
+}
+
+@parser::header {
+package org.polarsys.chess.xtext.ui.contentassist.antlr.internal;
+
+import java.io.InputStream;
+import org.eclipse.xtext.*;
+import org.eclipse.xtext.parser.*;
+import org.eclipse.xtext.parser.impl.*;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.xtext.parser.antlr.XtextTokenStream;
+import org.eclipse.xtext.parser.antlr.XtextTokenStream.HiddenTokens;
+import org.eclipse.xtext.ui.editor.contentassist.antlr.internal.AbstractInternalContentAssistParser;
+import org.eclipse.xtext.ui.editor.contentassist.antlr.internal.DFA;
+import org.polarsys.chess.xtext.services.FlaDslGrammarAccess;
+
+}
+
+@parser::members {
+
+ private FlaDslGrammarAccess grammarAccess;
+
+ public void setGrammarAccess(FlaDslGrammarAccess grammarAccess) {
+ this.grammarAccess = grammarAccess;
+ }
+
+ @Override
+ protected Grammar getGrammar() {
+ return grammarAccess.getGrammar();
+ }
+
+ @Override
+ protected String getValueForTokenName(String tokenName) {
+ return tokenName;
+ }
+
+}
+
+
+
+
+// Entry rule entryRuleBehaviour
+entryRuleBehaviour
+:
+{ before(grammarAccess.getBehaviourRule()); }
+ ruleBehaviour
+{ after(grammarAccess.getBehaviourRule()); }
+ EOF
+;
+
+// Rule Behaviour
+ruleBehaviour
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+(
+(
+{ before(grammarAccess.getBehaviourAccess().getRulesAssignment()); }
+(rule__Behaviour__RulesAssignment)
+{ after(grammarAccess.getBehaviourAccess().getRulesAssignment()); }
+)
+(
+{ before(grammarAccess.getBehaviourAccess().getRulesAssignment()); }
+(rule__Behaviour__RulesAssignment)*
+{ after(grammarAccess.getBehaviourAccess().getRulesAssignment()); }
+)
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleExpression
+entryRuleExpression
+:
+{ before(grammarAccess.getExpressionRule()); }
+ ruleExpression
+{ after(grammarAccess.getExpressionRule()); }
+ EOF
+;
+
+// Rule Expression
+ruleExpression
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+(
+{ before(grammarAccess.getExpressionAccess().getGroup()); }
+(rule__Expression__Group__0)
+{ after(grammarAccess.getExpressionAccess().getGroup()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleLhs
+entryRuleLhs
+:
+{ before(grammarAccess.getLhsRule()); }
+ ruleLhs
+{ after(grammarAccess.getLhsRule()); }
+ EOF
+;
+
+// Rule Lhs
+ruleLhs
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+(
+{ before(grammarAccess.getLhsAccess().getGroup()); }
+(rule__Lhs__Group__0)
+{ after(grammarAccess.getLhsAccess().getGroup()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleRhs
+entryRuleRhs
+:
+{ before(grammarAccess.getRhsRule()); }
+ ruleRhs
+{ after(grammarAccess.getRhsRule()); }
+ EOF
+;
+
+// Rule Rhs
+ruleRhs
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+(
+{ before(grammarAccess.getRhsAccess().getGroup()); }
+(rule__Rhs__Group__0)
+{ after(grammarAccess.getRhsAccess().getGroup()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleInputExpression
+entryRuleInputExpression
+:
+{ before(grammarAccess.getInputExpressionRule()); }
+ ruleInputExpression
+{ after(grammarAccess.getInputExpressionRule()); }
+ EOF
+;
+
+// Rule InputExpression
+ruleInputExpression
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+(
+{ before(grammarAccess.getInputExpressionAccess().getGroup()); }
+(rule__InputExpression__Group__0)
+{ after(grammarAccess.getInputExpressionAccess().getGroup()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleOutputExpression
+entryRuleOutputExpression
+:
+{ before(grammarAccess.getOutputExpressionRule()); }
+ ruleOutputExpression
+{ after(grammarAccess.getOutputExpressionRule()); }
+ EOF
+;
+
+// Rule OutputExpression
+ruleOutputExpression
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+(
+{ before(grammarAccess.getOutputExpressionAccess().getGroup()); }
+(rule__OutputExpression__Group__0)
+{ after(grammarAccess.getOutputExpressionAccess().getGroup()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleInFailureExpr
+entryRuleInFailureExpr
+:
+{ before(grammarAccess.getInFailureExprRule()); }
+ ruleInFailureExpr
+{ after(grammarAccess.getInFailureExprRule()); }
+ EOF
+;
+
+// Rule InFailureExpr
+ruleInFailureExpr
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+(
+{ before(grammarAccess.getInFailureExprAccess().getAlternatives()); }
+(rule__InFailureExpr__Alternatives)
+{ after(grammarAccess.getInFailureExprAccess().getAlternatives()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleOutFailureExpr
+entryRuleOutFailureExpr
+:
+{ before(grammarAccess.getOutFailureExprRule()); }
+ ruleOutFailureExpr
+{ after(grammarAccess.getOutFailureExprRule()); }
+ EOF
+;
+
+// Rule OutFailureExpr
+ruleOutFailureExpr
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+(
+{ before(grammarAccess.getOutFailureExprAccess().getAlternatives()); }
+(rule__OutFailureExpr__Alternatives)
+{ after(grammarAccess.getOutFailureExprAccess().getAlternatives()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+// Entry rule entryRuleFailureDefinition
+entryRuleFailureDefinition
+:
+{ before(grammarAccess.getFailureDefinitionRule()); }
+ ruleFailureDefinition
+{ after(grammarAccess.getFailureDefinitionRule()); }
+ EOF
+;
+
+// Rule FailureDefinition
+ruleFailureDefinition
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+(
+{ before(grammarAccess.getFailureDefinitionAccess().getGroup()); }
+(rule__FailureDefinition__Group__0)
+{ after(grammarAccess.getFailureDefinitionAccess().getGroup()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleNoFailureDefinition
+entryRuleNoFailureDefinition
+:
+{ before(grammarAccess.getNoFailureDefinitionRule()); }
+ ruleNoFailureDefinition
+{ after(grammarAccess.getNoFailureDefinitionRule()); }
+ EOF
+;
+
+// Rule NoFailureDefinition
+ruleNoFailureDefinition
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+(
+{ before(grammarAccess.getNoFailureDefinitionAccess().getGroup()); }
+(rule__NoFailureDefinition__Group__0)
+{ after(grammarAccess.getNoFailureDefinitionAccess().getGroup()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleComplexNofailureDefinition
+entryRuleComplexNofailureDefinition
+:
+{ before(grammarAccess.getComplexNofailureDefinitionRule()); }
+ ruleComplexNofailureDefinition
+{ after(grammarAccess.getComplexNofailureDefinitionRule()); }
+ EOF
+;
+
+// Rule ComplexNofailureDefinition
+ruleComplexNofailureDefinition
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+(
+{ before(grammarAccess.getComplexNofailureDefinitionAccess().getGroup()); }
+(rule__ComplexNofailureDefinition__Group__0)
+{ after(grammarAccess.getComplexNofailureDefinitionAccess().getGroup()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleWildcardDefinition
+entryRuleWildcardDefinition
+:
+{ before(grammarAccess.getWildcardDefinitionRule()); }
+ ruleWildcardDefinition
+{ after(grammarAccess.getWildcardDefinitionRule()); }
+ EOF
+;
+
+// Rule WildcardDefinition
+ruleWildcardDefinition
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+(
+{ before(grammarAccess.getWildcardDefinitionAccess().getGroup()); }
+(rule__WildcardDefinition__Group__0)
+{ after(grammarAccess.getWildcardDefinitionAccess().getGroup()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleVariableDefinition
+entryRuleVariableDefinition
+:
+{ before(grammarAccess.getVariableDefinitionRule()); }
+ ruleVariableDefinition
+{ after(grammarAccess.getVariableDefinitionRule()); }
+ EOF
+;
+
+// Rule VariableDefinition
+ruleVariableDefinition
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+(
+{ before(grammarAccess.getVariableDefinitionAccess().getGroup()); }
+(rule__VariableDefinition__Group__0)
+{ after(grammarAccess.getVariableDefinitionAccess().getGroup()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleACIDavoidable
+entryRuleACIDavoidable
+:
+{ before(grammarAccess.getACIDavoidableRule()); }
+ ruleACIDavoidable
+{ after(grammarAccess.getACIDavoidableRule()); }
+ EOF
+;
+
+// Rule ACIDavoidable
+ruleACIDavoidable
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+(
+{ before(grammarAccess.getACIDavoidableAccess().getGroup()); }
+(rule__ACIDavoidable__Group__0)
+{ after(grammarAccess.getACIDavoidableAccess().getGroup()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleACIDMitigation
+entryRuleACIDMitigation
+:
+{ before(grammarAccess.getACIDMitigationRule()); }
+ ruleACIDMitigation
+{ after(grammarAccess.getACIDMitigationRule()); }
+ EOF
+;
+
+// Rule ACIDMitigation
+ruleACIDMitigation
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+(
+{ before(grammarAccess.getACIDMitigationAccess().getGroup()); }
+(rule__ACIDMitigation__Group__0)
+{ after(grammarAccess.getACIDMitigationAccess().getGroup()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+// Rule ActualFailureType
+ruleActualFailureType
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getActualFailureTypeAccess().getAlternatives()); }
+(rule__ActualFailureType__Alternatives)
+{ after(grammarAccess.getActualFailureTypeAccess().getAlternatives()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+// Rule Aavoidable
+ruleAavoidable
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getAavoidableAccess().getAlternatives()); }
+(rule__Aavoidable__Alternatives)
+{ after(grammarAccess.getAavoidableAccess().getAlternatives()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+// Rule Cavoidable
+ruleCavoidable
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getCavoidableAccess().getAlternatives()); }
+(rule__Cavoidable__Alternatives)
+{ after(grammarAccess.getCavoidableAccess().getAlternatives()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+// Rule Iavoidable
+ruleIavoidable
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getIavoidableAccess().getAlternatives()); }
+(rule__Iavoidable__Alternatives)
+{ after(grammarAccess.getIavoidableAccess().getAlternatives()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+// Rule Davoidable
+ruleDavoidable
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getDavoidableAccess().getAlternatives()); }
+(rule__Davoidable__Alternatives)
+{ after(grammarAccess.getDavoidableAccess().getAlternatives()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+// Rule Amitigation
+ruleAmitigation
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getAmitigationAccess().getAlternatives()); }
+(rule__Amitigation__Alternatives)
+{ after(grammarAccess.getAmitigationAccess().getAlternatives()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+// Rule Cmitigation
+ruleCmitigation
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getCmitigationAccess().getAlternatives()); }
+(rule__Cmitigation__Alternatives)
+{ after(grammarAccess.getCmitigationAccess().getAlternatives()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+// Rule Imitigation
+ruleImitigation
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getImitigationAccess().getAlternatives()); }
+(rule__Imitigation__Alternatives)
+{ after(grammarAccess.getImitigationAccess().getAlternatives()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+// Rule Dmitigation
+ruleDmitigation
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getDmitigationAccess().getAlternatives()); }
+(rule__Dmitigation__Alternatives)
+{ after(grammarAccess.getDmitigationAccess().getAlternatives()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+rule__InputExpression__Alternatives_0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getInputExpressionAccess().getRefAssignment_0_0()); }
+(rule__InputExpression__RefAssignment_0_0)
+{ after(grammarAccess.getInputExpressionAccess().getRefAssignment_0_0()); }
+)
+
+ |(
+{ before(grammarAccess.getInputExpressionAccess().getUndefinedKeyword_0_1()); }
+
+ 'undefined'
+
+{ after(grammarAccess.getInputExpressionAccess().getUndefinedKeyword_0_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__OutputExpression__Alternatives_0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getOutputExpressionAccess().getRefAssignment_0_0()); }
+(rule__OutputExpression__RefAssignment_0_0)
+{ after(grammarAccess.getOutputExpressionAccess().getRefAssignment_0_0()); }
+)
+
+ |(
+{ before(grammarAccess.getOutputExpressionAccess().getUndefinedKeyword_0_1()); }
+
+ 'undefined'
+
+{ after(grammarAccess.getOutputExpressionAccess().getUndefinedKeyword_0_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__InFailureExpr__Alternatives
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getInFailureExprAccess().getFailuresAssignment_0()); }
+(rule__InFailureExpr__FailuresAssignment_0)
+{ after(grammarAccess.getInFailureExprAccess().getFailuresAssignment_0()); }
+)
+
+ |(
+{ before(grammarAccess.getInFailureExprAccess().getFailuresAssignment_1()); }
+(rule__InFailureExpr__FailuresAssignment_1)
+{ after(grammarAccess.getInFailureExprAccess().getFailuresAssignment_1()); }
+)
+
+ |(
+{ before(grammarAccess.getInFailureExprAccess().getFailuresAssignment_2()); }
+(rule__InFailureExpr__FailuresAssignment_2)
+{ after(grammarAccess.getInFailureExprAccess().getFailuresAssignment_2()); }
+)
+
+ |(
+{ before(grammarAccess.getInFailureExprAccess().getGroup_3()); }
+(rule__InFailureExpr__Group_3__0)
+{ after(grammarAccess.getInFailureExprAccess().getGroup_3()); }
+)
+
+ |(
+{ before(grammarAccess.getInFailureExprAccess().getFailuresAssignment_4()); }
+(rule__InFailureExpr__FailuresAssignment_4)
+{ after(grammarAccess.getInFailureExprAccess().getFailuresAssignment_4()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__OutFailureExpr__Alternatives
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getOutFailureExprAccess().getFailuresAssignment_0()); }
+(rule__OutFailureExpr__FailuresAssignment_0)
+{ after(grammarAccess.getOutFailureExprAccess().getFailuresAssignment_0()); }
+)
+
+ |(
+{ before(grammarAccess.getOutFailureExprAccess().getFailuresAssignment_1()); }
+(rule__OutFailureExpr__FailuresAssignment_1)
+{ after(grammarAccess.getOutFailureExprAccess().getFailuresAssignment_1()); }
+)
+
+ |(
+{ before(grammarAccess.getOutFailureExprAccess().getFailuresAssignment_2()); }
+(rule__OutFailureExpr__FailuresAssignment_2)
+{ after(grammarAccess.getOutFailureExprAccess().getFailuresAssignment_2()); }
+)
+
+ |(
+{ before(grammarAccess.getOutFailureExprAccess().getGroup_3()); }
+(rule__OutFailureExpr__Group_3__0)
+{ after(grammarAccess.getOutFailureExprAccess().getGroup_3()); }
+)
+
+ |(
+{ before(grammarAccess.getOutFailureExprAccess().getFailuresAssignment_4()); }
+(rule__OutFailureExpr__FailuresAssignment_4)
+{ after(grammarAccess.getOutFailureExprAccess().getFailuresAssignment_4()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+rule__ActualFailureType__Alternatives
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getActualFailureTypeAccess().getEARLYEnumLiteralDeclaration_0()); }
+( 'early'
+)
+{ after(grammarAccess.getActualFailureTypeAccess().getEARLYEnumLiteralDeclaration_0()); }
+)
+
+ |(
+{ before(grammarAccess.getActualFailureTypeAccess().getLATEEnumLiteralDeclaration_1()); }
+( 'late'
+)
+{ after(grammarAccess.getActualFailureTypeAccess().getLATEEnumLiteralDeclaration_1()); }
+)
+
+ |(
+{ before(grammarAccess.getActualFailureTypeAccess().getCOMMISSIONEnumLiteralDeclaration_2()); }
+( 'commission'
+)
+{ after(grammarAccess.getActualFailureTypeAccess().getCOMMISSIONEnumLiteralDeclaration_2()); }
+)
+
+ |(
+{ before(grammarAccess.getActualFailureTypeAccess().getOMISSIONEnumLiteralDeclaration_3()); }
+( 'omission'
+)
+{ after(grammarAccess.getActualFailureTypeAccess().getOMISSIONEnumLiteralDeclaration_3()); }
+)
+
+ |(
+{ before(grammarAccess.getActualFailureTypeAccess().getVALUE_SUBTLEEnumLiteralDeclaration_4()); }
+( 'valueSubtle'
+)
+{ after(grammarAccess.getActualFailureTypeAccess().getVALUE_SUBTLEEnumLiteralDeclaration_4()); }
+)
+
+ |(
+{ before(grammarAccess.getActualFailureTypeAccess().getVALUE_COARSEEnumLiteralDeclaration_5()); }
+( 'valueCoarse'
+)
+{ after(grammarAccess.getActualFailureTypeAccess().getVALUE_COARSEEnumLiteralDeclaration_5()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Aavoidable__Alternatives
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getAavoidableAccess().getINCOMPLETIONEnumLiteralDeclaration_0()); }
+( 'incompletion'
+)
+{ after(grammarAccess.getAavoidableAccess().getINCOMPLETIONEnumLiteralDeclaration_0()); }
+)
+
+ |(
+{ before(grammarAccess.getAavoidableAccess().getNONEEnumLiteralDeclaration_1()); }
+( 'none'
+)
+{ after(grammarAccess.getAavoidableAccess().getNONEEnumLiteralDeclaration_1()); }
+)
+
+ |(
+{ before(grammarAccess.getAavoidableAccess().getUNSPECIFIEDEnumLiteralDeclaration_2()); }
+( 'unspecified'
+)
+{ after(grammarAccess.getAavoidableAccess().getUNSPECIFIEDEnumLiteralDeclaration_2()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Cavoidable__Alternatives
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getCavoidableAccess().getINCONSISTENCYEnumLiteralDeclaration_0()); }
+( 'inconsistency'
+)
+{ after(grammarAccess.getCavoidableAccess().getINCONSISTENCYEnumLiteralDeclaration_0()); }
+)
+
+ |(
+{ before(grammarAccess.getCavoidableAccess().getNONEEnumLiteralDeclaration_1()); }
+( 'none'
+)
+{ after(grammarAccess.getCavoidableAccess().getNONEEnumLiteralDeclaration_1()); }
+)
+
+ |(
+{ before(grammarAccess.getCavoidableAccess().getUNSPECIFIEDEnumLiteralDeclaration_2()); }
+( 'unspecified'
+)
+{ after(grammarAccess.getCavoidableAccess().getUNSPECIFIEDEnumLiteralDeclaration_2()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Iavoidable__Alternatives
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getIavoidableAccess().getINTERFERENCEEnumLiteralDeclaration_0()); }
+( 'interference'
+)
+{ after(grammarAccess.getIavoidableAccess().getINTERFERENCEEnumLiteralDeclaration_0()); }
+)
+
+ |(
+{ before(grammarAccess.getIavoidableAccess().getNONEEnumLiteralDeclaration_1()); }
+( 'none'
+)
+{ after(grammarAccess.getIavoidableAccess().getNONEEnumLiteralDeclaration_1()); }
+)
+
+ |(
+{ before(grammarAccess.getIavoidableAccess().getUNSPECIFIEDEnumLiteralDeclaration_2()); }
+( 'unspecified'
+)
+{ after(grammarAccess.getIavoidableAccess().getUNSPECIFIEDEnumLiteralDeclaration_2()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Davoidable__Alternatives
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getDavoidableAccess().getIMPERMANENCEEnumLiteralDeclaration_0()); }
+( 'impermanence'
+)
+{ after(grammarAccess.getDavoidableAccess().getIMPERMANENCEEnumLiteralDeclaration_0()); }
+)
+
+ |(
+{ before(grammarAccess.getDavoidableAccess().getNONEEnumLiteralDeclaration_1()); }
+( 'none'
+)
+{ after(grammarAccess.getDavoidableAccess().getNONEEnumLiteralDeclaration_1()); }
+)
+
+ |(
+{ before(grammarAccess.getDavoidableAccess().getUNSPECIFIEDEnumLiteralDeclaration_2()); }
+( 'unspecified'
+)
+{ after(grammarAccess.getDavoidableAccess().getUNSPECIFIEDEnumLiteralDeclaration_2()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Amitigation__Alternatives
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getAmitigationAccess().getALL_OR_NOTHINGEnumLiteralDeclaration_0()); }
+( 'all_or_nothing'
+)
+{ after(grammarAccess.getAmitigationAccess().getALL_OR_NOTHINGEnumLiteralDeclaration_0()); }
+)
+
+ |(
+{ before(grammarAccess.getAmitigationAccess().getALL_OR_COMPENSATIONEnumLiteralDeclaration_1()); }
+( 'all_or_compensation'
+)
+{ after(grammarAccess.getAmitigationAccess().getALL_OR_COMPENSATIONEnumLiteralDeclaration_1()); }
+)
+
+ |(
+{ before(grammarAccess.getAmitigationAccess().getNONEEnumLiteralDeclaration_2()); }
+( 'none'
+)
+{ after(grammarAccess.getAmitigationAccess().getNONEEnumLiteralDeclaration_2()); }
+)
+
+ |(
+{ before(grammarAccess.getAmitigationAccess().getUNSPECIFIEDEnumLiteralDeclaration_3()); }
+( 'unspecified'
+)
+{ after(grammarAccess.getAmitigationAccess().getUNSPECIFIEDEnumLiteralDeclaration_3()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Cmitigation__Alternatives
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getCmitigationAccess().getFULL_CONSISTENCYEnumLiteralDeclaration_0()); }
+( 'full_consistency'
+)
+{ after(grammarAccess.getCmitigationAccess().getFULL_CONSISTENCYEnumLiteralDeclaration_0()); }
+)
+
+ |(
+{ before(grammarAccess.getCmitigationAccess().getRANGE_VIOLATION_ALLOWEDEnumLiteralDeclaration_1()); }
+( 'range_violation_allowed'
+)
+{ after(grammarAccess.getCmitigationAccess().getRANGE_VIOLATION_ALLOWEDEnumLiteralDeclaration_1()); }
+)
+
+ |(
+{ before(grammarAccess.getCmitigationAccess().getNONEEnumLiteralDeclaration_2()); }
+( 'none'
+)
+{ after(grammarAccess.getCmitigationAccess().getNONEEnumLiteralDeclaration_2()); }
+)
+
+ |(
+{ before(grammarAccess.getCmitigationAccess().getUNSPECIFIEDEnumLiteralDeclaration_3()); }
+( 'unspecified'
+)
+{ after(grammarAccess.getCmitigationAccess().getUNSPECIFIEDEnumLiteralDeclaration_3()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Imitigation__Alternatives
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getImitigationAccess().getSERIALIZABLEEnumLiteralDeclaration_0()); }
+( 'serializable'
+)
+{ after(grammarAccess.getImitigationAccess().getSERIALIZABLEEnumLiteralDeclaration_0()); }
+)
+
+ |(
+{ before(grammarAccess.getImitigationAccess().getPORTABLE_LEVELEnumLiteralDeclaration_1()); }
+( 'portable_level'
+)
+{ after(grammarAccess.getImitigationAccess().getPORTABLE_LEVELEnumLiteralDeclaration_1()); }
+)
+
+ |(
+{ before(grammarAccess.getImitigationAccess().getNONEEnumLiteralDeclaration_2()); }
+( 'none'
+)
+{ after(grammarAccess.getImitigationAccess().getNONEEnumLiteralDeclaration_2()); }
+)
+
+ |(
+{ before(grammarAccess.getImitigationAccess().getUNSPECIFIEDEnumLiteralDeclaration_3()); }
+( 'unspecified'
+)
+{ after(grammarAccess.getImitigationAccess().getUNSPECIFIEDEnumLiteralDeclaration_3()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Dmitigation__Alternatives
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getDmitigationAccess().getNO_LOSSEnumLiteralDeclaration_0()); }
+( 'no_loss'
+)
+{ after(grammarAccess.getDmitigationAccess().getNO_LOSSEnumLiteralDeclaration_0()); }
+)
+
+ |(
+{ before(grammarAccess.getDmitigationAccess().getPARTIAL_LOSS_ALLOWEDEnumLiteralDeclaration_1()); }
+( 'partial_loss_allowed'
+)
+{ after(grammarAccess.getDmitigationAccess().getPARTIAL_LOSS_ALLOWEDEnumLiteralDeclaration_1()); }
+)
+
+ |(
+{ before(grammarAccess.getDmitigationAccess().getNONEEnumLiteralDeclaration_2()); }
+( 'none'
+)
+{ after(grammarAccess.getDmitigationAccess().getNONEEnumLiteralDeclaration_2()); }
+)
+
+ |(
+{ before(grammarAccess.getDmitigationAccess().getUNSPECIFIEDEnumLiteralDeclaration_3()); }
+( 'unspecified'
+)
+{ after(grammarAccess.getDmitigationAccess().getUNSPECIFIEDEnumLiteralDeclaration_3()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+rule__Expression__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Expression__Group__0__Impl
+ rule__Expression__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Expression__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getExpressionAccess().getFLAKeyword_0()); }
+
+ 'FLA:'
+
+{ after(grammarAccess.getExpressionAccess().getFLAKeyword_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__Expression__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Expression__Group__1__Impl
+ rule__Expression__Group__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Expression__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getExpressionAccess().getLhsAssignment_1()); }
+(rule__Expression__LhsAssignment_1)
+{ after(grammarAccess.getExpressionAccess().getLhsAssignment_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__Expression__Group__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Expression__Group__2__Impl
+ rule__Expression__Group__3
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Expression__Group__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getExpressionAccess().getHyphenMinusGreaterThanSignKeyword_2()); }
+
+ '->'
+
+{ after(grammarAccess.getExpressionAccess().getHyphenMinusGreaterThanSignKeyword_2()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__Expression__Group__3
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Expression__Group__3__Impl
+ rule__Expression__Group__4
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Expression__Group__3__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getExpressionAccess().getRhsAssignment_3()); }
+(rule__Expression__RhsAssignment_3)
+{ after(grammarAccess.getExpressionAccess().getRhsAssignment_3()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__Expression__Group__4
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Expression__Group__4__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Expression__Group__4__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getExpressionAccess().getSemicolonKeyword_4()); }
+
+ ';'
+
+{ after(grammarAccess.getExpressionAccess().getSemicolonKeyword_4()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+rule__Lhs__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Lhs__Group__0__Impl
+ rule__Lhs__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Lhs__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getLhsAccess().getFailuresAssignment_0()); }
+(rule__Lhs__FailuresAssignment_0)
+{ after(grammarAccess.getLhsAccess().getFailuresAssignment_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__Lhs__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Lhs__Group__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Lhs__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getLhsAccess().getGroup_1()); }
+(rule__Lhs__Group_1__0)*
+{ after(grammarAccess.getLhsAccess().getGroup_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__Lhs__Group_1__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Lhs__Group_1__0__Impl
+ rule__Lhs__Group_1__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Lhs__Group_1__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getLhsAccess().getCommaKeyword_1_0()); }
+
+ ','
+
+{ after(grammarAccess.getLhsAccess().getCommaKeyword_1_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__Lhs__Group_1__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Lhs__Group_1__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Lhs__Group_1__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getLhsAccess().getFailuresAssignment_1_1()); }
+(rule__Lhs__FailuresAssignment_1_1)
+{ after(grammarAccess.getLhsAccess().getFailuresAssignment_1_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__Rhs__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Rhs__Group__0__Impl
+ rule__Rhs__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Rhs__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getRhsAccess().getFailuresAssignment_0()); }
+(rule__Rhs__FailuresAssignment_0)
+{ after(grammarAccess.getRhsAccess().getFailuresAssignment_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__Rhs__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Rhs__Group__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Rhs__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getRhsAccess().getGroup_1()); }
+(rule__Rhs__Group_1__0)*
+{ after(grammarAccess.getRhsAccess().getGroup_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__Rhs__Group_1__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Rhs__Group_1__0__Impl
+ rule__Rhs__Group_1__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Rhs__Group_1__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getRhsAccess().getCommaKeyword_1_0()); }
+
+ ','
+
+{ after(grammarAccess.getRhsAccess().getCommaKeyword_1_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__Rhs__Group_1__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Rhs__Group_1__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Rhs__Group_1__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getRhsAccess().getFailuresAssignment_1_1()); }
+(rule__Rhs__FailuresAssignment_1_1)
+{ after(grammarAccess.getRhsAccess().getFailuresAssignment_1_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__InputExpression__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__InputExpression__Group__0__Impl
+ rule__InputExpression__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__InputExpression__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getInputExpressionAccess().getAlternatives_0()); }
+(rule__InputExpression__Alternatives_0)
+{ after(grammarAccess.getInputExpressionAccess().getAlternatives_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__InputExpression__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__InputExpression__Group__1__Impl
+ rule__InputExpression__Group__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__InputExpression__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getInputExpressionAccess().getFullStopKeyword_1()); }
+
+ '.'
+
+{ after(grammarAccess.getInputExpressionAccess().getFullStopKeyword_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__InputExpression__Group__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__InputExpression__Group__2__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__InputExpression__Group__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getInputExpressionAccess().getFailureExprAssignment_2()); }
+(rule__InputExpression__FailureExprAssignment_2)
+{ after(grammarAccess.getInputExpressionAccess().getFailureExprAssignment_2()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+rule__OutputExpression__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__OutputExpression__Group__0__Impl
+ rule__OutputExpression__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__OutputExpression__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getOutputExpressionAccess().getAlternatives_0()); }
+(rule__OutputExpression__Alternatives_0)
+{ after(grammarAccess.getOutputExpressionAccess().getAlternatives_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__OutputExpression__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__OutputExpression__Group__1__Impl
+ rule__OutputExpression__Group__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__OutputExpression__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getOutputExpressionAccess().getFullStopKeyword_1()); }
+
+ '.'
+
+{ after(grammarAccess.getOutputExpressionAccess().getFullStopKeyword_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__OutputExpression__Group__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__OutputExpression__Group__2__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__OutputExpression__Group__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getOutputExpressionAccess().getFailureExprAssignment_2()); }
+(rule__OutputExpression__FailureExprAssignment_2)
+{ after(grammarAccess.getOutputExpressionAccess().getFailureExprAssignment_2()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+rule__InFailureExpr__Group_3__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__InFailureExpr__Group_3__0__Impl
+ rule__InFailureExpr__Group_3__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__InFailureExpr__Group_3__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getInFailureExprAccess().getLeftCurlyBracketKeyword_3_0()); }
+
+ '{'
+
+{ after(grammarAccess.getInFailureExprAccess().getLeftCurlyBracketKeyword_3_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__InFailureExpr__Group_3__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__InFailureExpr__Group_3__1__Impl
+ rule__InFailureExpr__Group_3__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__InFailureExpr__Group_3__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getInFailureExprAccess().getFailuresAssignment_3_1()); }
+(rule__InFailureExpr__FailuresAssignment_3_1)
+{ after(grammarAccess.getInFailureExprAccess().getFailuresAssignment_3_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__InFailureExpr__Group_3__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__InFailureExpr__Group_3__2__Impl
+ rule__InFailureExpr__Group_3__3
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__InFailureExpr__Group_3__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+(
+{ before(grammarAccess.getInFailureExprAccess().getGroup_3_2()); }
+(rule__InFailureExpr__Group_3_2__0)
+{ after(grammarAccess.getInFailureExprAccess().getGroup_3_2()); }
+)
+(
+{ before(grammarAccess.getInFailureExprAccess().getGroup_3_2()); }
+(rule__InFailureExpr__Group_3_2__0)*
+{ after(grammarAccess.getInFailureExprAccess().getGroup_3_2()); }
+)
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__InFailureExpr__Group_3__3
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__InFailureExpr__Group_3__3__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__InFailureExpr__Group_3__3__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getInFailureExprAccess().getRightCurlyBracketKeyword_3_3()); }
+
+ '}'
+
+{ after(grammarAccess.getInFailureExprAccess().getRightCurlyBracketKeyword_3_3()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+rule__InFailureExpr__Group_3_2__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__InFailureExpr__Group_3_2__0__Impl
+ rule__InFailureExpr__Group_3_2__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__InFailureExpr__Group_3_2__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getInFailureExprAccess().getCommaKeyword_3_2_0()); }
+
+ ','
+
+{ after(grammarAccess.getInFailureExprAccess().getCommaKeyword_3_2_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__InFailureExpr__Group_3_2__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__InFailureExpr__Group_3_2__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__InFailureExpr__Group_3_2__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getInFailureExprAccess().getFailuresAssignment_3_2_1()); }
+(rule__InFailureExpr__FailuresAssignment_3_2_1)
+{ after(grammarAccess.getInFailureExprAccess().getFailuresAssignment_3_2_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__OutFailureExpr__Group_3__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__OutFailureExpr__Group_3__0__Impl
+ rule__OutFailureExpr__Group_3__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__OutFailureExpr__Group_3__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getOutFailureExprAccess().getLeftCurlyBracketKeyword_3_0()); }
+
+ '{'
+
+{ after(grammarAccess.getOutFailureExprAccess().getLeftCurlyBracketKeyword_3_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__OutFailureExpr__Group_3__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__OutFailureExpr__Group_3__1__Impl
+ rule__OutFailureExpr__Group_3__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__OutFailureExpr__Group_3__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getOutFailureExprAccess().getFailuresAssignment_3_1()); }
+(rule__OutFailureExpr__FailuresAssignment_3_1)
+{ after(grammarAccess.getOutFailureExprAccess().getFailuresAssignment_3_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__OutFailureExpr__Group_3__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__OutFailureExpr__Group_3__2__Impl
+ rule__OutFailureExpr__Group_3__3
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__OutFailureExpr__Group_3__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+(
+{ before(grammarAccess.getOutFailureExprAccess().getGroup_3_2()); }
+(rule__OutFailureExpr__Group_3_2__0)
+{ after(grammarAccess.getOutFailureExprAccess().getGroup_3_2()); }
+)
+(
+{ before(grammarAccess.getOutFailureExprAccess().getGroup_3_2()); }
+(rule__OutFailureExpr__Group_3_2__0)*
+{ after(grammarAccess.getOutFailureExprAccess().getGroup_3_2()); }
+)
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__OutFailureExpr__Group_3__3
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__OutFailureExpr__Group_3__3__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__OutFailureExpr__Group_3__3__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getOutFailureExprAccess().getRightCurlyBracketKeyword_3_3()); }
+
+ '}'
+
+{ after(grammarAccess.getOutFailureExprAccess().getRightCurlyBracketKeyword_3_3()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+rule__OutFailureExpr__Group_3_2__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__OutFailureExpr__Group_3_2__0__Impl
+ rule__OutFailureExpr__Group_3_2__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__OutFailureExpr__Group_3_2__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getOutFailureExprAccess().getCommaKeyword_3_2_0()); }
+
+ ','
+
+{ after(grammarAccess.getOutFailureExprAccess().getCommaKeyword_3_2_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__OutFailureExpr__Group_3_2__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__OutFailureExpr__Group_3_2__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__OutFailureExpr__Group_3_2__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getOutFailureExprAccess().getFailuresAssignment_3_2_1()); }
+(rule__OutFailureExpr__FailuresAssignment_3_2_1)
+{ after(grammarAccess.getOutFailureExprAccess().getFailuresAssignment_3_2_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__FailureDefinition__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__FailureDefinition__Group__0__Impl
+ rule__FailureDefinition__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__FailureDefinition__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getFailureDefinitionAccess().getFailureDefinitionAction_0()); }
+(
+
+)
+{ after(grammarAccess.getFailureDefinitionAccess().getFailureDefinitionAction_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__FailureDefinition__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__FailureDefinition__Group__1__Impl
+ rule__FailureDefinition__Group__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__FailureDefinition__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getFailureDefinitionAccess().getTypeAssignment_1()); }
+(rule__FailureDefinition__TypeAssignment_1)
+{ after(grammarAccess.getFailureDefinitionAccess().getTypeAssignment_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__FailureDefinition__Group__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__FailureDefinition__Group__2__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__FailureDefinition__Group__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getFailureDefinitionAccess().getGroup_2()); }
+(rule__FailureDefinition__Group_2__0)?
+{ after(grammarAccess.getFailureDefinitionAccess().getGroup_2()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+rule__FailureDefinition__Group_2__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__FailureDefinition__Group_2__0__Impl
+ rule__FailureDefinition__Group_2__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__FailureDefinition__Group_2__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getFailureDefinitionAccess().getFullStopKeyword_2_0()); }
+
+ '.'
+
+{ after(grammarAccess.getFailureDefinitionAccess().getFullStopKeyword_2_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__FailureDefinition__Group_2__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__FailureDefinition__Group_2__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__FailureDefinition__Group_2__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getFailureDefinitionAccess().getAcidAvoidableAssignment_2_1()); }
+(rule__FailureDefinition__AcidAvoidableAssignment_2_1)
+{ after(grammarAccess.getFailureDefinitionAccess().getAcidAvoidableAssignment_2_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__NoFailureDefinition__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__NoFailureDefinition__Group__0__Impl
+ rule__NoFailureDefinition__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__NoFailureDefinition__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getNoFailureDefinitionAccess().getNoFailureDefinitionAction_0()); }
+(
+
+)
+{ after(grammarAccess.getNoFailureDefinitionAccess().getNoFailureDefinitionAction_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__NoFailureDefinition__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__NoFailureDefinition__Group__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__NoFailureDefinition__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getNoFailureDefinitionAccess().getNoFailureKeyword_1()); }
+
+ 'noFailure'
+
+{ after(grammarAccess.getNoFailureDefinitionAccess().getNoFailureKeyword_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__ComplexNofailureDefinition__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ComplexNofailureDefinition__Group__0__Impl
+ rule__ComplexNofailureDefinition__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ComplexNofailureDefinition__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getComplexNofailureDefinitionAccess().getNoFailureDefinitionAction_0()); }
+(
+
+)
+{ after(grammarAccess.getComplexNofailureDefinitionAccess().getNoFailureDefinitionAction_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__ComplexNofailureDefinition__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ComplexNofailureDefinition__Group__1__Impl
+ rule__ComplexNofailureDefinition__Group__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ComplexNofailureDefinition__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getComplexNofailureDefinitionAccess().getNoFailureKeyword_1()); }
+
+ 'noFailure'
+
+{ after(grammarAccess.getComplexNofailureDefinitionAccess().getNoFailureKeyword_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__ComplexNofailureDefinition__Group__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ComplexNofailureDefinition__Group__2__Impl
+ rule__ComplexNofailureDefinition__Group__3
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ComplexNofailureDefinition__Group__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getComplexNofailureDefinitionAccess().getFullStopKeyword_2()); }
+
+ '.'
+
+{ after(grammarAccess.getComplexNofailureDefinitionAccess().getFullStopKeyword_2()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__ComplexNofailureDefinition__Group__3
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ComplexNofailureDefinition__Group__3__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ComplexNofailureDefinition__Group__3__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getComplexNofailureDefinitionAccess().getAcidMitigationAssignment_3()); }
+(rule__ComplexNofailureDefinition__AcidMitigationAssignment_3)
+{ after(grammarAccess.getComplexNofailureDefinitionAccess().getAcidMitigationAssignment_3()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+rule__WildcardDefinition__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__WildcardDefinition__Group__0__Impl
+ rule__WildcardDefinition__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__WildcardDefinition__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getWildcardDefinitionAccess().getWildcardDefinitionAction_0()); }
+(
+
+)
+{ after(grammarAccess.getWildcardDefinitionAccess().getWildcardDefinitionAction_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__WildcardDefinition__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__WildcardDefinition__Group__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__WildcardDefinition__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getWildcardDefinitionAccess().getWildcardKeyword_1()); }
+
+ 'wildcard'
+
+{ after(grammarAccess.getWildcardDefinitionAccess().getWildcardKeyword_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__VariableDefinition__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__VariableDefinition__Group__0__Impl
+ rule__VariableDefinition__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__VariableDefinition__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getVariableDefinitionAccess().getVariableDefinitionAction_0()); }
+(
+
+)
+{ after(grammarAccess.getVariableDefinitionAccess().getVariableDefinitionAction_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__VariableDefinition__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__VariableDefinition__Group__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__VariableDefinition__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getVariableDefinitionAccess().getVariableNameAssignment_1()); }
+(rule__VariableDefinition__VariableNameAssignment_1)
+{ after(grammarAccess.getVariableDefinitionAccess().getVariableNameAssignment_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__ACIDavoidable__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ACIDavoidable__Group__0__Impl
+ rule__ACIDavoidable__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ACIDavoidable__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getACIDavoidableAccess().getAAssignment_0()); }
+(rule__ACIDavoidable__AAssignment_0)
+{ after(grammarAccess.getACIDavoidableAccess().getAAssignment_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__ACIDavoidable__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ACIDavoidable__Group__1__Impl
+ rule__ACIDavoidable__Group__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ACIDavoidable__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getACIDavoidableAccess().getFullStopKeyword_1()); }
+
+ '.'
+
+{ after(grammarAccess.getACIDavoidableAccess().getFullStopKeyword_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__ACIDavoidable__Group__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ACIDavoidable__Group__2__Impl
+ rule__ACIDavoidable__Group__3
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ACIDavoidable__Group__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getACIDavoidableAccess().getCAssignment_2()); }
+(rule__ACIDavoidable__CAssignment_2)
+{ after(grammarAccess.getACIDavoidableAccess().getCAssignment_2()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__ACIDavoidable__Group__3
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ACIDavoidable__Group__3__Impl
+ rule__ACIDavoidable__Group__4
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ACIDavoidable__Group__3__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getACIDavoidableAccess().getFullStopKeyword_3()); }
+
+ '.'
+
+{ after(grammarAccess.getACIDavoidableAccess().getFullStopKeyword_3()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__ACIDavoidable__Group__4
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ACIDavoidable__Group__4__Impl
+ rule__ACIDavoidable__Group__5
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ACIDavoidable__Group__4__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getACIDavoidableAccess().getIAssignment_4()); }
+(rule__ACIDavoidable__IAssignment_4)
+{ after(grammarAccess.getACIDavoidableAccess().getIAssignment_4()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__ACIDavoidable__Group__5
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ACIDavoidable__Group__5__Impl
+ rule__ACIDavoidable__Group__6
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ACIDavoidable__Group__5__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getACIDavoidableAccess().getFullStopKeyword_5()); }
+
+ '.'
+
+{ after(grammarAccess.getACIDavoidableAccess().getFullStopKeyword_5()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__ACIDavoidable__Group__6
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ACIDavoidable__Group__6__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ACIDavoidable__Group__6__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getACIDavoidableAccess().getDAssignment_6()); }
+(rule__ACIDavoidable__DAssignment_6)
+{ after(grammarAccess.getACIDavoidableAccess().getDAssignment_6()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__ACIDMitigation__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ACIDMitigation__Group__0__Impl
+ rule__ACIDMitigation__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ACIDMitigation__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getACIDMitigationAccess().getAAssignment_0()); }
+(rule__ACIDMitigation__AAssignment_0)
+{ after(grammarAccess.getACIDMitigationAccess().getAAssignment_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__ACIDMitigation__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ACIDMitigation__Group__1__Impl
+ rule__ACIDMitigation__Group__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ACIDMitigation__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getACIDMitigationAccess().getFullStopKeyword_1()); }
+
+ '.'
+
+{ after(grammarAccess.getACIDMitigationAccess().getFullStopKeyword_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__ACIDMitigation__Group__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ACIDMitigation__Group__2__Impl
+ rule__ACIDMitigation__Group__3
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ACIDMitigation__Group__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getACIDMitigationAccess().getCAssignment_2()); }
+(rule__ACIDMitigation__CAssignment_2)
+{ after(grammarAccess.getACIDMitigationAccess().getCAssignment_2()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__ACIDMitigation__Group__3
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ACIDMitigation__Group__3__Impl
+ rule__ACIDMitigation__Group__4
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ACIDMitigation__Group__3__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getACIDMitigationAccess().getFullStopKeyword_3()); }
+
+ '.'
+
+{ after(grammarAccess.getACIDMitigationAccess().getFullStopKeyword_3()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__ACIDMitigation__Group__4
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ACIDMitigation__Group__4__Impl
+ rule__ACIDMitigation__Group__5
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ACIDMitigation__Group__4__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getACIDMitigationAccess().getIAssignment_4()); }
+(rule__ACIDMitigation__IAssignment_4)
+{ after(grammarAccess.getACIDMitigationAccess().getIAssignment_4()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__ACIDMitigation__Group__5
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ACIDMitigation__Group__5__Impl
+ rule__ACIDMitigation__Group__6
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ACIDMitigation__Group__5__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getACIDMitigationAccess().getFullStopKeyword_5()); }
+
+ '.'
+
+{ after(grammarAccess.getACIDMitigationAccess().getFullStopKeyword_5()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__ACIDMitigation__Group__6
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ACIDMitigation__Group__6__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ACIDMitigation__Group__6__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getACIDMitigationAccess().getDAssignment_6()); }
+(rule__ACIDMitigation__DAssignment_6)
+{ after(grammarAccess.getACIDMitigationAccess().getDAssignment_6()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__Behaviour__RulesAssignment
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getBehaviourAccess().getRulesExpressionParserRuleCall_0()); }
+ ruleExpression{ after(grammarAccess.getBehaviourAccess().getRulesExpressionParserRuleCall_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Expression__LhsAssignment_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getExpressionAccess().getLhsLhsParserRuleCall_1_0()); }
+ ruleLhs{ after(grammarAccess.getExpressionAccess().getLhsLhsParserRuleCall_1_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Expression__RhsAssignment_3
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getExpressionAccess().getRhsRhsParserRuleCall_3_0()); }
+ ruleRhs{ after(grammarAccess.getExpressionAccess().getRhsRhsParserRuleCall_3_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Lhs__FailuresAssignment_0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getLhsAccess().getFailuresInputExpressionParserRuleCall_0_0()); }
+ ruleInputExpression{ after(grammarAccess.getLhsAccess().getFailuresInputExpressionParserRuleCall_0_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Lhs__FailuresAssignment_1_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getLhsAccess().getFailuresInputExpressionParserRuleCall_1_1_0()); }
+ ruleInputExpression{ after(grammarAccess.getLhsAccess().getFailuresInputExpressionParserRuleCall_1_1_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Rhs__FailuresAssignment_0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getRhsAccess().getFailuresOutputExpressionParserRuleCall_0_0()); }
+ ruleOutputExpression{ after(grammarAccess.getRhsAccess().getFailuresOutputExpressionParserRuleCall_0_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Rhs__FailuresAssignment_1_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getRhsAccess().getFailuresOutputExpressionParserRuleCall_1_1_0()); }
+ ruleOutputExpression{ after(grammarAccess.getRhsAccess().getFailuresOutputExpressionParserRuleCall_1_1_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__InputExpression__RefAssignment_0_0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getInputExpressionAccess().getRefPortCrossReference_0_0_0()); }
+(
+{ before(grammarAccess.getInputExpressionAccess().getRefPortIDTerminalRuleCall_0_0_0_1()); }
+ RULE_ID{ after(grammarAccess.getInputExpressionAccess().getRefPortIDTerminalRuleCall_0_0_0_1()); }
+)
+{ after(grammarAccess.getInputExpressionAccess().getRefPortCrossReference_0_0_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__InputExpression__FailureExprAssignment_2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getInputExpressionAccess().getFailureExprInFailureExprParserRuleCall_2_0()); }
+ ruleInFailureExpr{ after(grammarAccess.getInputExpressionAccess().getFailureExprInFailureExprParserRuleCall_2_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__OutputExpression__RefAssignment_0_0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getOutputExpressionAccess().getRefPortCrossReference_0_0_0()); }
+(
+{ before(grammarAccess.getOutputExpressionAccess().getRefPortIDTerminalRuleCall_0_0_0_1()); }
+ RULE_ID{ after(grammarAccess.getOutputExpressionAccess().getRefPortIDTerminalRuleCall_0_0_0_1()); }
+)
+{ after(grammarAccess.getOutputExpressionAccess().getRefPortCrossReference_0_0_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__OutputExpression__FailureExprAssignment_2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getOutputExpressionAccess().getFailureExprOutFailureExprParserRuleCall_2_0()); }
+ ruleOutFailureExpr{ after(grammarAccess.getOutputExpressionAccess().getFailureExprOutFailureExprParserRuleCall_2_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__InFailureExpr__FailuresAssignment_0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getInFailureExprAccess().getFailuresWildcardDefinitionParserRuleCall_0_0()); }
+ ruleWildcardDefinition{ after(grammarAccess.getInFailureExprAccess().getFailuresWildcardDefinitionParserRuleCall_0_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__InFailureExpr__FailuresAssignment_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getInFailureExprAccess().getFailuresNoFailureDefinitionParserRuleCall_1_0()); }
+ ruleNoFailureDefinition{ after(grammarAccess.getInFailureExprAccess().getFailuresNoFailureDefinitionParserRuleCall_1_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__InFailureExpr__FailuresAssignment_2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getInFailureExprAccess().getFailuresFailureDefinitionParserRuleCall_2_0()); }
+ ruleFailureDefinition{ after(grammarAccess.getInFailureExprAccess().getFailuresFailureDefinitionParserRuleCall_2_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__InFailureExpr__FailuresAssignment_3_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getInFailureExprAccess().getFailuresFailureDefinitionParserRuleCall_3_1_0()); }
+ ruleFailureDefinition{ after(grammarAccess.getInFailureExprAccess().getFailuresFailureDefinitionParserRuleCall_3_1_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__InFailureExpr__FailuresAssignment_3_2_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getInFailureExprAccess().getFailuresFailureDefinitionParserRuleCall_3_2_1_0()); }
+ ruleFailureDefinition{ after(grammarAccess.getInFailureExprAccess().getFailuresFailureDefinitionParserRuleCall_3_2_1_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__InFailureExpr__FailuresAssignment_4
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getInFailureExprAccess().getFailuresVariableDefinitionParserRuleCall_4_0()); }
+ ruleVariableDefinition{ after(grammarAccess.getInFailureExprAccess().getFailuresVariableDefinitionParserRuleCall_4_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__OutFailureExpr__FailuresAssignment_0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getOutFailureExprAccess().getFailuresNoFailureDefinitionParserRuleCall_0_0()); }
+ ruleNoFailureDefinition{ after(grammarAccess.getOutFailureExprAccess().getFailuresNoFailureDefinitionParserRuleCall_0_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__OutFailureExpr__FailuresAssignment_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getOutFailureExprAccess().getFailuresComplexNofailureDefinitionParserRuleCall_1_0()); }
+ ruleComplexNofailureDefinition{ after(grammarAccess.getOutFailureExprAccess().getFailuresComplexNofailureDefinitionParserRuleCall_1_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__OutFailureExpr__FailuresAssignment_2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getOutFailureExprAccess().getFailuresFailureDefinitionParserRuleCall_2_0()); }
+ ruleFailureDefinition{ after(grammarAccess.getOutFailureExprAccess().getFailuresFailureDefinitionParserRuleCall_2_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__OutFailureExpr__FailuresAssignment_3_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getOutFailureExprAccess().getFailuresFailureDefinitionParserRuleCall_3_1_0()); }
+ ruleFailureDefinition{ after(grammarAccess.getOutFailureExprAccess().getFailuresFailureDefinitionParserRuleCall_3_1_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__OutFailureExpr__FailuresAssignment_3_2_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getOutFailureExprAccess().getFailuresFailureDefinitionParserRuleCall_3_2_1_0()); }
+ ruleFailureDefinition{ after(grammarAccess.getOutFailureExprAccess().getFailuresFailureDefinitionParserRuleCall_3_2_1_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__OutFailureExpr__FailuresAssignment_4
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getOutFailureExprAccess().getFailuresVariableDefinitionParserRuleCall_4_0()); }
+ ruleVariableDefinition{ after(grammarAccess.getOutFailureExprAccess().getFailuresVariableDefinitionParserRuleCall_4_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__FailureDefinition__TypeAssignment_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getFailureDefinitionAccess().getTypeActualFailureTypeEnumRuleCall_1_0()); }
+ ruleActualFailureType{ after(grammarAccess.getFailureDefinitionAccess().getTypeActualFailureTypeEnumRuleCall_1_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__FailureDefinition__AcidAvoidableAssignment_2_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getFailureDefinitionAccess().getAcidAvoidableACIDavoidableParserRuleCall_2_1_0()); }
+ ruleACIDavoidable{ after(grammarAccess.getFailureDefinitionAccess().getAcidAvoidableACIDavoidableParserRuleCall_2_1_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ComplexNofailureDefinition__AcidMitigationAssignment_3
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getComplexNofailureDefinitionAccess().getAcidMitigationACIDMitigationParserRuleCall_3_0()); }
+ ruleACIDMitigation{ after(grammarAccess.getComplexNofailureDefinitionAccess().getAcidMitigationACIDMitigationParserRuleCall_3_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__VariableDefinition__VariableNameAssignment_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getVariableDefinitionAccess().getVariableNameIDTerminalRuleCall_1_0()); }
+ RULE_ID{ after(grammarAccess.getVariableDefinitionAccess().getVariableNameIDTerminalRuleCall_1_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ACIDavoidable__AAssignment_0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getACIDavoidableAccess().getAAavoidableEnumRuleCall_0_0()); }
+ ruleAavoidable{ after(grammarAccess.getACIDavoidableAccess().getAAavoidableEnumRuleCall_0_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ACIDavoidable__CAssignment_2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getACIDavoidableAccess().getCCavoidableEnumRuleCall_2_0()); }
+ ruleCavoidable{ after(grammarAccess.getACIDavoidableAccess().getCCavoidableEnumRuleCall_2_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ACIDavoidable__IAssignment_4
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getACIDavoidableAccess().getIIavoidableEnumRuleCall_4_0()); }
+ ruleIavoidable{ after(grammarAccess.getACIDavoidableAccess().getIIavoidableEnumRuleCall_4_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ACIDavoidable__DAssignment_6
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getACIDavoidableAccess().getDDavoidableEnumRuleCall_6_0()); }
+ ruleDavoidable{ after(grammarAccess.getACIDavoidableAccess().getDDavoidableEnumRuleCall_6_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ACIDMitigation__AAssignment_0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getACIDMitigationAccess().getAAmitigationEnumRuleCall_0_0()); }
+ ruleAmitigation{ after(grammarAccess.getACIDMitigationAccess().getAAmitigationEnumRuleCall_0_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ACIDMitigation__CAssignment_2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getACIDMitigationAccess().getCCmitigationEnumRuleCall_2_0()); }
+ ruleCmitigation{ after(grammarAccess.getACIDMitigationAccess().getCCmitigationEnumRuleCall_2_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ACIDMitigation__IAssignment_4
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getACIDMitigationAccess().getIImitigationEnumRuleCall_4_0()); }
+ ruleImitigation{ after(grammarAccess.getACIDMitigationAccess().getIImitigationEnumRuleCall_4_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ACIDMitigation__DAssignment_6
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getACIDMitigationAccess().getDDmitigationEnumRuleCall_6_0()); }
+ ruleDmitigation{ after(grammarAccess.getACIDMitigationAccess().getDDmitigationEnumRuleCall_6_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+RULE_ID : '^'? ('a'..'z'|'A'..'Z'|'_') ('a'..'z'|'A'..'Z'|'_'|'0'..'9')*;
+
+RULE_INT : ('0'..'9')+;
+
+RULE_STRING : ('"' ('\\' .|~(('\\'|'"')))* '"'|'\'' ('\\' .|~(('\\'|'\'')))* '\'');
+
+RULE_ML_COMMENT : '/*' ( options {greedy=false;} : . )*'*/';
+
+RULE_SL_COMMENT : '//' ~(('\n'|'\r'))* ('\r'? '\n')?;
+
+RULE_WS : (' '|'\t'|'\r'|'\n')+;
+
+RULE_ANY_OTHER : .;
+
+
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl.ui/src-gen/org/polarsys/chess/xtext/ui/contentassist/antlr/internal/InternalFlaDsl.tokens b/plugins/fla/org.polarsys.chess.xtext.fladsl.ui/src-gen/org/polarsys/chess/xtext/ui/contentassist/antlr/internal/InternalFlaDsl.tokens
new file mode 100644
index 0000000..fca6fb1
--- /dev/null
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl.ui/src-gen/org/polarsys/chess/xtext/ui/contentassist/antlr/internal/InternalFlaDsl.tokens
@@ -0,0 +1,67 @@
+','=35
+'->'=33
+'.'=36
+';'=34
+'FLA:'=32
+'all_or_compensation'=25
+'all_or_nothing'=24
+'commission'=14
+'early'=12
+'full_consistency'=26
+'impermanence'=23
+'incompletion'=18
+'inconsistency'=21
+'interference'=22
+'late'=13
+'noFailure'=39
+'no_loss'=30
+'none'=19
+'omission'=15
+'partial_loss_allowed'=31
+'portable_level'=29
+'range_violation_allowed'=27
+'serializable'=28
+'undefined'=11
+'unspecified'=20
+'valueCoarse'=17
+'valueSubtle'=16
+'wildcard'=40
+'{'=37
+'}'=38
+RULE_ANY_OTHER=10
+RULE_ID=4
+RULE_INT=5
+RULE_ML_COMMENT=7
+RULE_SL_COMMENT=8
+RULE_STRING=6
+RULE_WS=9
+T__11=11
+T__12=12
+T__13=13
+T__14=14
+T__15=15
+T__16=16
+T__17=17
+T__18=18
+T__19=19
+T__20=20
+T__21=21
+T__22=22
+T__23=23
+T__24=24
+T__25=25
+T__26=26
+T__27=27
+T__28=28
+T__29=29
+T__30=30
+T__31=31
+T__32=32
+T__33=33
+T__34=34
+T__35=35
+T__36=36
+T__37=37
+T__38=38
+T__39=39
+T__40=40
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl.ui/src-gen/org/polarsys/chess/xtext/ui/contentassist/antlr/internal/InternalFlaDslLexer.java b/plugins/fla/org.polarsys.chess.xtext.fladsl.ui/src-gen/org/polarsys/chess/xtext/ui/contentassist/antlr/internal/InternalFlaDslLexer.java
new file mode 100644
index 0000000..75a8ef9
--- /dev/null
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl.ui/src-gen/org/polarsys/chess/xtext/ui/contentassist/antlr/internal/InternalFlaDslLexer.java
@@ -0,0 +1,1897 @@
+package org.polarsys.chess.xtext.ui.contentassist.antlr.internal;
+
+// Hack: Use our own Lexer superclass by means of import.
+// Currently there is no other way to specify the superclass for the lexer.
+import org.eclipse.xtext.ui.editor.contentassist.antlr.internal.Lexer;
+
+
+import org.antlr.runtime.*;
+import java.util.Stack;
+import java.util.List;
+import java.util.ArrayList;
+
+@SuppressWarnings("all")
+public class InternalFlaDslLexer extends Lexer {
+ public static final int RULE_STRING=6;
+ public static final int RULE_SL_COMMENT=8;
+ public static final int T__19=19;
+ public static final int T__15=15;
+ public static final int T__37=37;
+ public static final int T__16=16;
+ public static final int T__38=38;
+ public static final int T__17=17;
+ public static final int T__39=39;
+ public static final int T__18=18;
+ public static final int T__11=11;
+ public static final int T__33=33;
+ public static final int T__12=12;
+ public static final int T__34=34;
+ public static final int T__13=13;
+ public static final int T__35=35;
+ public static final int T__14=14;
+ public static final int T__36=36;
+ public static final int EOF=-1;
+ public static final int T__30=30;
+ public static final int T__31=31;
+ public static final int T__32=32;
+ public static final int RULE_ID=4;
+ public static final int RULE_WS=9;
+ public static final int RULE_ANY_OTHER=10;
+ public static final int T__26=26;
+ public static final int T__27=27;
+ public static final int T__28=28;
+ public static final int RULE_INT=5;
+ public static final int T__29=29;
+ public static final int T__22=22;
+ public static final int RULE_ML_COMMENT=7;
+ public static final int T__23=23;
+ public static final int T__24=24;
+ public static final int T__25=25;
+ public static final int T__40=40;
+ public static final int T__20=20;
+ public static final int T__21=21;
+
+ // delegates
+ // delegators
+
+ public InternalFlaDslLexer() {;}
+ public InternalFlaDslLexer(CharStream input) {
+ this(input, new RecognizerSharedState());
+ }
+ public InternalFlaDslLexer(CharStream input, RecognizerSharedState state) {
+ super(input,state);
+
+ }
+ public String getGrammarFileName() { return "InternalFlaDsl.g"; }
+
+ // $ANTLR start "T__11"
+ public final void mT__11() throws RecognitionException {
+ try {
+ int _type = T__11;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalFlaDsl.g:11:7: ( 'undefined' )
+ // InternalFlaDsl.g:11:9: 'undefined'
+ {
+ match("undefined");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__11"
+
+ // $ANTLR start "T__12"
+ public final void mT__12() throws RecognitionException {
+ try {
+ int _type = T__12;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalFlaDsl.g:12:7: ( 'early' )
+ // InternalFlaDsl.g:12:9: 'early'
+ {
+ match("early");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__12"
+
+ // $ANTLR start "T__13"
+ public final void mT__13() throws RecognitionException {
+ try {
+ int _type = T__13;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalFlaDsl.g:13:7: ( 'late' )
+ // InternalFlaDsl.g:13:9: 'late'
+ {
+ match("late");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__13"
+
+ // $ANTLR start "T__14"
+ public final void mT__14() throws RecognitionException {
+ try {
+ int _type = T__14;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalFlaDsl.g:14:7: ( 'commission' )
+ // InternalFlaDsl.g:14:9: 'commission'
+ {
+ match("commission");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__14"
+
+ // $ANTLR start "T__15"
+ public final void mT__15() throws RecognitionException {
+ try {
+ int _type = T__15;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalFlaDsl.g:15:7: ( 'omission' )
+ // InternalFlaDsl.g:15:9: 'omission'
+ {
+ match("omission");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__15"
+
+ // $ANTLR start "T__16"
+ public final void mT__16() throws RecognitionException {
+ try {
+ int _type = T__16;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalFlaDsl.g:16:7: ( 'valueSubtle' )
+ // InternalFlaDsl.g:16:9: 'valueSubtle'
+ {
+ match("valueSubtle");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__16"
+
+ // $ANTLR start "T__17"
+ public final void mT__17() throws RecognitionException {
+ try {
+ int _type = T__17;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalFlaDsl.g:17:7: ( 'valueCoarse' )
+ // InternalFlaDsl.g:17:9: 'valueCoarse'
+ {
+ match("valueCoarse");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__17"
+
+ // $ANTLR start "T__18"
+ public final void mT__18() throws RecognitionException {
+ try {
+ int _type = T__18;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalFlaDsl.g:18:7: ( 'incompletion' )
+ // InternalFlaDsl.g:18:9: 'incompletion'
+ {
+ match("incompletion");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__18"
+
+ // $ANTLR start "T__19"
+ public final void mT__19() throws RecognitionException {
+ try {
+ int _type = T__19;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalFlaDsl.g:19:7: ( 'none' )
+ // InternalFlaDsl.g:19:9: 'none'
+ {
+ match("none");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__19"
+
+ // $ANTLR start "T__20"
+ public final void mT__20() throws RecognitionException {
+ try {
+ int _type = T__20;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalFlaDsl.g:20:7: ( 'unspecified' )
+ // InternalFlaDsl.g:20:9: 'unspecified'
+ {
+ match("unspecified");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__20"
+
+ // $ANTLR start "T__21"
+ public final void mT__21() throws RecognitionException {
+ try {
+ int _type = T__21;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalFlaDsl.g:21:7: ( 'inconsistency' )
+ // InternalFlaDsl.g:21:9: 'inconsistency'
+ {
+ match("inconsistency");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__21"
+
+ // $ANTLR start "T__22"
+ public final void mT__22() throws RecognitionException {
+ try {
+ int _type = T__22;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalFlaDsl.g:22:7: ( 'interference' )
+ // InternalFlaDsl.g:22:9: 'interference'
+ {
+ match("interference");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__22"
+
+ // $ANTLR start "T__23"
+ public final void mT__23() throws RecognitionException {
+ try {
+ int _type = T__23;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalFlaDsl.g:23:7: ( 'impermanence' )
+ // InternalFlaDsl.g:23:9: 'impermanence'
+ {
+ match("impermanence");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__23"
+
+ // $ANTLR start "T__24"
+ public final void mT__24() throws RecognitionException {
+ try {
+ int _type = T__24;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalFlaDsl.g:24:7: ( 'all_or_nothing' )
+ // InternalFlaDsl.g:24:9: 'all_or_nothing'
+ {
+ match("all_or_nothing");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__24"
+
+ // $ANTLR start "T__25"
+ public final void mT__25() throws RecognitionException {
+ try {
+ int _type = T__25;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalFlaDsl.g:25:7: ( 'all_or_compensation' )
+ // InternalFlaDsl.g:25:9: 'all_or_compensation'
+ {
+ match("all_or_compensation");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__25"
+
+ // $ANTLR start "T__26"
+ public final void mT__26() throws RecognitionException {
+ try {
+ int _type = T__26;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalFlaDsl.g:26:7: ( 'full_consistency' )
+ // InternalFlaDsl.g:26:9: 'full_consistency'
+ {
+ match("full_consistency");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__26"
+
+ // $ANTLR start "T__27"
+ public final void mT__27() throws RecognitionException {
+ try {
+ int _type = T__27;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalFlaDsl.g:27:7: ( 'range_violation_allowed' )
+ // InternalFlaDsl.g:27:9: 'range_violation_allowed'
+ {
+ match("range_violation_allowed");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__27"
+
+ // $ANTLR start "T__28"
+ public final void mT__28() throws RecognitionException {
+ try {
+ int _type = T__28;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalFlaDsl.g:28:7: ( 'serializable' )
+ // InternalFlaDsl.g:28:9: 'serializable'
+ {
+ match("serializable");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__28"
+
+ // $ANTLR start "T__29"
+ public final void mT__29() throws RecognitionException {
+ try {
+ int _type = T__29;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalFlaDsl.g:29:7: ( 'portable_level' )
+ // InternalFlaDsl.g:29:9: 'portable_level'
+ {
+ match("portable_level");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__29"
+
+ // $ANTLR start "T__30"
+ public final void mT__30() throws RecognitionException {
+ try {
+ int _type = T__30;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalFlaDsl.g:30:7: ( 'no_loss' )
+ // InternalFlaDsl.g:30:9: 'no_loss'
+ {
+ match("no_loss");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__30"
+
+ // $ANTLR start "T__31"
+ public final void mT__31() throws RecognitionException {
+ try {
+ int _type = T__31;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalFlaDsl.g:31:7: ( 'partial_loss_allowed' )
+ // InternalFlaDsl.g:31:9: 'partial_loss_allowed'
+ {
+ match("partial_loss_allowed");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__31"
+
+ // $ANTLR start "T__32"
+ public final void mT__32() throws RecognitionException {
+ try {
+ int _type = T__32;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalFlaDsl.g:32:7: ( 'FLA:' )
+ // InternalFlaDsl.g:32:9: 'FLA:'
+ {
+ match("FLA:");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__32"
+
+ // $ANTLR start "T__33"
+ public final void mT__33() throws RecognitionException {
+ try {
+ int _type = T__33;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalFlaDsl.g:33:7: ( '->' )
+ // InternalFlaDsl.g:33:9: '->'
+ {
+ match("->");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__33"
+
+ // $ANTLR start "T__34"
+ public final void mT__34() throws RecognitionException {
+ try {
+ int _type = T__34;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalFlaDsl.g:34:7: ( ';' )
+ // InternalFlaDsl.g:34:9: ';'
+ {
+ match(';');
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__34"
+
+ // $ANTLR start "T__35"
+ public final void mT__35() throws RecognitionException {
+ try {
+ int _type = T__35;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalFlaDsl.g:35:7: ( ',' )
+ // InternalFlaDsl.g:35:9: ','
+ {
+ match(',');
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__35"
+
+ // $ANTLR start "T__36"
+ public final void mT__36() throws RecognitionException {
+ try {
+ int _type = T__36;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalFlaDsl.g:36:7: ( '.' )
+ // InternalFlaDsl.g:36:9: '.'
+ {
+ match('.');
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__36"
+
+ // $ANTLR start "T__37"
+ public final void mT__37() throws RecognitionException {
+ try {
+ int _type = T__37;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalFlaDsl.g:37:7: ( '{' )
+ // InternalFlaDsl.g:37:9: '{'
+ {
+ match('{');
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__37"
+
+ // $ANTLR start "T__38"
+ public final void mT__38() throws RecognitionException {
+ try {
+ int _type = T__38;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalFlaDsl.g:38:7: ( '}' )
+ // InternalFlaDsl.g:38:9: '}'
+ {
+ match('}');
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__38"
+
+ // $ANTLR start "T__39"
+ public final void mT__39() throws RecognitionException {
+ try {
+ int _type = T__39;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalFlaDsl.g:39:7: ( 'noFailure' )
+ // InternalFlaDsl.g:39:9: 'noFailure'
+ {
+ match("noFailure");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__39"
+
+ // $ANTLR start "T__40"
+ public final void mT__40() throws RecognitionException {
+ try {
+ int _type = T__40;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalFlaDsl.g:40:7: ( 'wildcard' )
+ // InternalFlaDsl.g:40:9: 'wildcard'
+ {
+ match("wildcard");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__40"
+
+ // $ANTLR start "RULE_ID"
+ public final void mRULE_ID() throws RecognitionException {
+ try {
+ int _type = RULE_ID;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalFlaDsl.g:3578:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* )
+ // InternalFlaDsl.g:3578:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
+ {
+ // InternalFlaDsl.g:3578:11: ( '^' )?
+ int alt1=2;
+ int LA1_0 = input.LA(1);
+
+ if ( (LA1_0=='^') ) {
+ alt1=1;
+ }
+ switch (alt1) {
+ case 1 :
+ // InternalFlaDsl.g:3578:11: '^'
+ {
+ match('^');
+
+ }
+ break;
+
+ }
+
+ if ( (input.LA(1)>='A' && input.LA(1)<='Z')||input.LA(1)=='_'||(input.LA(1)>='a' && input.LA(1)<='z') ) {
+ input.consume();
+
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;}
+
+ // InternalFlaDsl.g:3578:40: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
+ loop2:
+ do {
+ int alt2=2;
+ int LA2_0 = input.LA(1);
+
+ if ( ((LA2_0>='0' && LA2_0<='9')||(LA2_0>='A' && LA2_0<='Z')||LA2_0=='_'||(LA2_0>='a' && LA2_0<='z')) ) {
+ alt2=1;
+ }
+
+
+ switch (alt2) {
+ case 1 :
+ // InternalFlaDsl.g:
+ {
+ if ( (input.LA(1)>='0' && input.LA(1)<='9')||(input.LA(1)>='A' && input.LA(1)<='Z')||input.LA(1)=='_'||(input.LA(1)>='a' && input.LA(1)<='z') ) {
+ input.consume();
+
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;}
+
+
+ }
+ break;
+
+ default :
+ break loop2;
+ }
+ } while (true);
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_ID"
+
+ // $ANTLR start "RULE_INT"
+ public final void mRULE_INT() throws RecognitionException {
+ try {
+ int _type = RULE_INT;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalFlaDsl.g:3580:10: ( ( '0' .. '9' )+ )
+ // InternalFlaDsl.g:3580:12: ( '0' .. '9' )+
+ {
+ // InternalFlaDsl.g:3580:12: ( '0' .. '9' )+
+ int cnt3=0;
+ loop3:
+ do {
+ int alt3=2;
+ int LA3_0 = input.LA(1);
+
+ if ( ((LA3_0>='0' && LA3_0<='9')) ) {
+ alt3=1;
+ }
+
+
+ switch (alt3) {
+ case 1 :
+ // InternalFlaDsl.g:3580:13: '0' .. '9'
+ {
+ matchRange('0','9');
+
+ }
+ break;
+
+ default :
+ if ( cnt3 >= 1 ) break loop3;
+ EarlyExitException eee =
+ new EarlyExitException(3, input);
+ throw eee;
+ }
+ cnt3++;
+ } while (true);
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_INT"
+
+ // $ANTLR start "RULE_STRING"
+ public final void mRULE_STRING() throws RecognitionException {
+ try {
+ int _type = RULE_STRING;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalFlaDsl.g:3582:13: ( ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' ) )
+ // InternalFlaDsl.g:3582:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
+ {
+ // InternalFlaDsl.g:3582:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
+ int alt6=2;
+ int LA6_0 = input.LA(1);
+
+ if ( (LA6_0=='\"') ) {
+ alt6=1;
+ }
+ else if ( (LA6_0=='\'') ) {
+ alt6=2;
+ }
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("", 6, 0, input);
+
+ throw nvae;
+ }
+ switch (alt6) {
+ case 1 :
+ // InternalFlaDsl.g:3582:16: '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"'
+ {
+ match('\"');
+ // InternalFlaDsl.g:3582:20: ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )*
+ loop4:
+ do {
+ int alt4=3;
+ int LA4_0 = input.LA(1);
+
+ if ( (LA4_0=='\\') ) {
+ alt4=1;
+ }
+ else if ( ((LA4_0>='\u0000' && LA4_0<='!')||(LA4_0>='#' && LA4_0<='[')||(LA4_0>=']' && LA4_0<='\uFFFF')) ) {
+ alt4=2;
+ }
+
+
+ switch (alt4) {
+ case 1 :
+ // InternalFlaDsl.g:3582:21: '\\\\' .
+ {
+ match('\\');
+ matchAny();
+
+ }
+ break;
+ case 2 :
+ // InternalFlaDsl.g:3582:28: ~ ( ( '\\\\' | '\"' ) )
+ {
+ if ( (input.LA(1)>='\u0000' && input.LA(1)<='!')||(input.LA(1)>='#' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) {
+ input.consume();
+
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;}
+
+
+ }
+ break;
+
+ default :
+ break loop4;
+ }
+ } while (true);
+
+ match('\"');
+
+ }
+ break;
+ case 2 :
+ // InternalFlaDsl.g:3582:48: '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\''
+ {
+ match('\'');
+ // InternalFlaDsl.g:3582:53: ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )*
+ loop5:
+ do {
+ int alt5=3;
+ int LA5_0 = input.LA(1);
+
+ if ( (LA5_0=='\\') ) {
+ alt5=1;
+ }
+ else if ( ((LA5_0>='\u0000' && LA5_0<='&')||(LA5_0>='(' && LA5_0<='[')||(LA5_0>=']' && LA5_0<='\uFFFF')) ) {
+ alt5=2;
+ }
+
+
+ switch (alt5) {
+ case 1 :
+ // InternalFlaDsl.g:3582:54: '\\\\' .
+ {
+ match('\\');
+ matchAny();
+
+ }
+ break;
+ case 2 :
+ // InternalFlaDsl.g:3582:61: ~ ( ( '\\\\' | '\\'' ) )
+ {
+ if ( (input.LA(1)>='\u0000' && input.LA(1)<='&')||(input.LA(1)>='(' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) {
+ input.consume();
+
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;}
+
+
+ }
+ break;
+
+ default :
+ break loop5;
+ }
+ } while (true);
+
+ match('\'');
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_STRING"
+
+ // $ANTLR start "RULE_ML_COMMENT"
+ public final void mRULE_ML_COMMENT() throws RecognitionException {
+ try {
+ int _type = RULE_ML_COMMENT;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalFlaDsl.g:3584:17: ( '/*' ( options {greedy=false; } : . )* '*/' )
+ // InternalFlaDsl.g:3584:19: '/*' ( options {greedy=false; } : . )* '*/'
+ {
+ match("/*");
+
+ // InternalFlaDsl.g:3584:24: ( options {greedy=false; } : . )*
+ loop7:
+ do {
+ int alt7=2;
+ int LA7_0 = input.LA(1);
+
+ if ( (LA7_0=='*') ) {
+ int LA7_1 = input.LA(2);
+
+ if ( (LA7_1=='/') ) {
+ alt7=2;
+ }
+ else if ( ((LA7_1>='\u0000' && LA7_1<='.')||(LA7_1>='0' && LA7_1<='\uFFFF')) ) {
+ alt7=1;
+ }
+
+
+ }
+ else if ( ((LA7_0>='\u0000' && LA7_0<=')')||(LA7_0>='+' && LA7_0<='\uFFFF')) ) {
+ alt7=1;
+ }
+
+
+ switch (alt7) {
+ case 1 :
+ // InternalFlaDsl.g:3584:52: .
+ {
+ matchAny();
+
+ }
+ break;
+
+ default :
+ break loop7;
+ }
+ } while (true);
+
+ match("*/");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_ML_COMMENT"
+
+ // $ANTLR start "RULE_SL_COMMENT"
+ public final void mRULE_SL_COMMENT() throws RecognitionException {
+ try {
+ int _type = RULE_SL_COMMENT;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalFlaDsl.g:3586:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? )
+ // InternalFlaDsl.g:3586:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )?
+ {
+ match("//");
+
+ // InternalFlaDsl.g:3586:24: (~ ( ( '\\n' | '\\r' ) ) )*
+ loop8:
+ do {
+ int alt8=2;
+ int LA8_0 = input.LA(1);
+
+ if ( ((LA8_0>='\u0000' && LA8_0<='\t')||(LA8_0>='\u000B' && LA8_0<='\f')||(LA8_0>='\u000E' && LA8_0<='\uFFFF')) ) {
+ alt8=1;
+ }
+
+
+ switch (alt8) {
+ case 1 :
+ // InternalFlaDsl.g:3586:24: ~ ( ( '\\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();
+
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;}
+
+
+ }
+ break;
+
+ default :
+ break loop8;
+ }
+ } while (true);
+
+ // InternalFlaDsl.g:3586:40: ( ( '\\r' )? '\\n' )?
+ int alt10=2;
+ int LA10_0 = input.LA(1);
+
+ if ( (LA10_0=='\n'||LA10_0=='\r') ) {
+ alt10=1;
+ }
+ switch (alt10) {
+ case 1 :
+ // InternalFlaDsl.g:3586:41: ( '\\r' )? '\\n'
+ {
+ // InternalFlaDsl.g:3586:41: ( '\\r' )?
+ int alt9=2;
+ int LA9_0 = input.LA(1);
+
+ if ( (LA9_0=='\r') ) {
+ alt9=1;
+ }
+ switch (alt9) {
+ case 1 :
+ // InternalFlaDsl.g:3586:41: '\\r'
+ {
+ match('\r');
+
+ }
+ break;
+
+ }
+
+ match('\n');
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_SL_COMMENT"
+
+ // $ANTLR start "RULE_WS"
+ public final void mRULE_WS() throws RecognitionException {
+ try {
+ int _type = RULE_WS;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalFlaDsl.g:3588:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ )
+ // InternalFlaDsl.g:3588:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
+ {
+ // InternalFlaDsl.g:3588:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
+ int cnt11=0;
+ loop11:
+ do {
+ int alt11=2;
+ int LA11_0 = input.LA(1);
+
+ if ( ((LA11_0>='\t' && LA11_0<='\n')||LA11_0=='\r'||LA11_0==' ') ) {
+ alt11=1;
+ }
+
+
+ switch (alt11) {
+ case 1 :
+ // InternalFlaDsl.g:
+ {
+ if ( (input.LA(1)>='\t' && input.LA(1)<='\n')||input.LA(1)=='\r'||input.LA(1)==' ' ) {
+ input.consume();
+
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;}
+
+
+ }
+ break;
+
+ default :
+ if ( cnt11 >= 1 ) break loop11;
+ EarlyExitException eee =
+ new EarlyExitException(11, input);
+ throw eee;
+ }
+ cnt11++;
+ } while (true);
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_WS"
+
+ // $ANTLR start "RULE_ANY_OTHER"
+ public final void mRULE_ANY_OTHER() throws RecognitionException {
+ try {
+ int _type = RULE_ANY_OTHER;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalFlaDsl.g:3590:16: ( . )
+ // InternalFlaDsl.g:3590:18: .
+ {
+ matchAny();
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_ANY_OTHER"
+
+ public void mTokens() throws RecognitionException {
+ // InternalFlaDsl.g:1:8: ( T__11 | T__12 | T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | RULE_ID | RULE_INT | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER )
+ int alt12=37;
+ alt12 = dfa12.predict(input);
+ switch (alt12) {
+ case 1 :
+ // InternalFlaDsl.g:1:10: T__11
+ {
+ mT__11();
+
+ }
+ break;
+ case 2 :
+ // InternalFlaDsl.g:1:16: T__12
+ {
+ mT__12();
+
+ }
+ break;
+ case 3 :
+ // InternalFlaDsl.g:1:22: T__13
+ {
+ mT__13();
+
+ }
+ break;
+ case 4 :
+ // InternalFlaDsl.g:1:28: T__14
+ {
+ mT__14();
+
+ }
+ break;
+ case 5 :
+ // InternalFlaDsl.g:1:34: T__15
+ {
+ mT__15();
+
+ }
+ break;
+ case 6 :
+ // InternalFlaDsl.g:1:40: T__16
+ {
+ mT__16();
+
+ }
+ break;
+ case 7 :
+ // InternalFlaDsl.g:1:46: T__17
+ {
+ mT__17();
+
+ }
+ break;
+ case 8 :
+ // InternalFlaDsl.g:1:52: T__18
+ {
+ mT__18();
+
+ }
+ break;
+ case 9 :
+ // InternalFlaDsl.g:1:58: T__19
+ {
+ mT__19();
+
+ }
+ break;
+ case 10 :
+ // InternalFlaDsl.g:1:64: T__20
+ {
+ mT__20();
+
+ }
+ break;
+ case 11 :
+ // InternalFlaDsl.g:1:70: T__21
+ {
+ mT__21();
+
+ }
+ break;
+ case 12 :
+ // InternalFlaDsl.g:1:76: T__22
+ {
+ mT__22();
+
+ }
+ break;
+ case 13 :
+ // InternalFlaDsl.g:1:82: T__23
+ {
+ mT__23();
+
+ }
+ break;
+ case 14 :
+ // InternalFlaDsl.g:1:88: T__24
+ {
+ mT__24();
+
+ }
+ break;
+ case 15 :
+ // InternalFlaDsl.g:1:94: T__25
+ {
+ mT__25();
+
+ }
+ break;
+ case 16 :
+ // InternalFlaDsl.g:1:100: T__26
+ {
+ mT__26();
+
+ }
+ break;
+ case 17 :
+ // InternalFlaDsl.g:1:106: T__27
+ {
+ mT__27();
+
+ }
+ break;
+ case 18 :
+ // InternalFlaDsl.g:1:112: T__28
+ {
+ mT__28();
+
+ }
+ break;
+ case 19 :
+ // InternalFlaDsl.g:1:118: T__29
+ {
+ mT__29();
+
+ }
+ break;
+ case 20 :
+ // InternalFlaDsl.g:1:124: T__30
+ {
+ mT__30();
+
+ }
+ break;
+ case 21 :
+ // InternalFlaDsl.g:1:130: T__31
+ {
+ mT__31();
+
+ }
+ break;
+ case 22 :
+ // InternalFlaDsl.g:1:136: T__32
+ {
+ mT__32();
+
+ }
+ break;
+ case 23 :
+ // InternalFlaDsl.g:1:142: T__33
+ {
+ mT__33();
+
+ }
+ break;
+ case 24 :
+ // InternalFlaDsl.g:1:148: T__34
+ {
+ mT__34();
+
+ }
+ break;
+ case 25 :
+ // InternalFlaDsl.g:1:154: T__35
+ {
+ mT__35();
+
+ }
+ break;
+ case 26 :
+ // InternalFlaDsl.g:1:160: T__36
+ {
+ mT__36();
+
+ }
+ break;
+ case 27 :
+ // InternalFlaDsl.g:1:166: T__37
+ {
+ mT__37();
+
+ }
+ break;
+ case 28 :
+ // InternalFlaDsl.g:1:172: T__38
+ {
+ mT__38();
+
+ }
+ break;
+ case 29 :
+ // InternalFlaDsl.g:1:178: T__39
+ {
+ mT__39();
+
+ }
+ break;
+ case 30 :
+ // InternalFlaDsl.g:1:184: T__40
+ {
+ mT__40();
+
+ }
+ break;
+ case 31 :
+ // InternalFlaDsl.g:1:190: RULE_ID
+ {
+ mRULE_ID();
+
+ }
+ break;
+ case 32 :
+ // InternalFlaDsl.g:1:198: RULE_INT
+ {
+ mRULE_INT();
+
+ }
+ break;
+ case 33 :
+ // InternalFlaDsl.g:1:207: RULE_STRING
+ {
+ mRULE_STRING();
+
+ }
+ break;
+ case 34 :
+ // InternalFlaDsl.g:1:219: RULE_ML_COMMENT
+ {
+ mRULE_ML_COMMENT();
+
+ }
+ break;
+ case 35 :
+ // InternalFlaDsl.g:1:235: RULE_SL_COMMENT
+ {
+ mRULE_SL_COMMENT();
+
+ }
+ break;
+ case 36 :
+ // InternalFlaDsl.g:1:251: RULE_WS
+ {
+ mRULE_WS();
+
+ }
+ break;
+ case 37 :
+ // InternalFlaDsl.g:1:259: RULE_ANY_OTHER
+ {
+ mRULE_ANY_OTHER();
+
+ }
+ break;
+
+ }
+
+ }
+
+
+ protected DFA12 dfa12 = new DFA12(this);
+ static final String DFA12_eotS =
+ "\1\uffff\16\37\1\35\5\uffff\1\37\1\35\2\uffff\3\35\2\uffff\1\37\1\uffff\17\37\6\uffff\1\37\5\uffff\30\37\1\150\6\37\1\160\10\37\1\uffff\3\37\1\174\1\uffff\7\37\1\uffff\13\37\1\uffff\33\37\1\u00ab\13\37\1\u00b8\6\37\1\uffff\10\37\1\u00c7\1\u00c8\2\37\1\uffff\6\37\1\u00d1\7\37\2\uffff\1\37\1\u00da\6\37\1\uffff\7\37\1\u00e8\1\uffff\1\u00e9\1\u00ea\13\37\3\uffff\1\u00f6\1\37\1\u00f8\1\u00f9\4\37\1\u00fe\2\37\1\uffff\1\u0101\2\uffff\4\37\1\uffff\2\37\1\uffff\1\u0108\3\37\1\u010c\1\37\1\uffff\3\37\1\uffff\2\37\1\u0113\3\37\1\uffff\5\37\1\u011c\2\37\1\uffff\1\37\1\u0120\1\37\1\uffff\1\37\1\u0123\1\uffff";
+ static final String DFA12_eofS =
+ "\u0124\uffff";
+ static final String DFA12_minS =
+ "\1\0\1\156\2\141\1\157\1\155\1\141\1\155\1\157\1\154\1\165\1\141\1\145\1\141\1\114\1\76\5\uffff\1\151\1\101\2\uffff\2\0\1\52\2\uffff\1\144\1\uffff\1\162\1\164\1\155\1\151\1\154\1\143\1\160\1\106\2\154\1\156\3\162\1\101\6\uffff\1\154\5\uffff\1\145\1\160\1\154\1\145\1\155\1\163\1\165\1\157\3\145\1\154\1\141\1\137\1\154\1\147\1\151\2\164\1\72\1\144\1\146\1\145\1\171\1\60\1\151\1\163\1\145\1\155\2\162\1\60\1\157\1\151\1\157\1\137\1\145\2\141\1\151\1\uffff\1\143\1\151\1\143\1\60\1\uffff\1\163\1\151\1\103\1\160\1\163\1\146\1\155\1\uffff\1\163\1\154\1\162\1\143\1\137\1\154\1\142\2\141\1\156\1\151\1\uffff\1\163\1\157\1\165\1\157\1\154\1\151\1\145\1\141\1\163\1\165\1\137\1\157\1\166\1\151\2\154\1\162\1\145\1\146\1\151\1\156\1\142\1\141\1\145\1\163\1\162\1\156\1\60\1\162\1\143\1\156\1\151\1\172\1\145\1\137\2\144\1\151\1\157\1\60\1\164\1\162\2\164\2\145\1\uffff\1\145\2\157\1\163\1\157\1\141\1\137\1\154\2\60\1\145\1\156\1\uffff\1\154\1\163\1\151\1\145\2\156\1\60\1\164\1\155\1\151\1\154\1\142\1\154\1\157\2\uffff\1\144\1\60\2\145\1\157\1\156\2\143\1\uffff\1\150\1\160\1\163\1\141\1\154\1\145\1\163\1\60\1\uffff\2\60\1\156\1\143\2\145\1\151\1\145\2\164\1\145\1\166\1\163\3\uffff\1\60\1\171\2\60\2\156\1\145\1\151\1\60\1\145\1\137\1\uffff\1\60\2\uffff\1\147\1\163\1\156\1\157\1\uffff\1\154\1\141\1\uffff\1\60\1\141\1\143\1\156\1\60\1\154\1\uffff\1\164\1\171\1\137\1\uffff\1\154\1\151\1\60\1\141\2\157\1\uffff\1\154\1\167\1\156\1\154\1\145\1\60\1\157\1\144\1\uffff\1\167\1\60\1\145\1\uffff\1\144\1\60\1\uffff";
+ static final String DFA12_maxS =
+ "\1\uffff\1\156\2\141\1\157\1\155\1\141\1\156\1\157\1\154\1\165\1\141\1\145\1\157\1\114\1\76\5\uffff\1\151\1\172\2\uffff\2\uffff\1\57\2\uffff\1\163\1\uffff\1\162\1\164\1\155\1\151\1\154\1\164\1\160\1\156\2\154\1\156\3\162\1\101\6\uffff\1\154\5\uffff\1\145\1\160\1\154\1\145\1\155\1\163\1\165\1\157\3\145\1\154\1\141\1\137\1\154\1\147\1\151\2\164\1\72\1\144\1\146\1\145\1\171\1\172\1\151\1\163\1\145\1\156\2\162\1\172\1\157\1\151\1\157\1\137\1\145\2\141\1\151\1\uffff\1\143\1\151\1\143\1\172\1\uffff\1\163\1\151\1\123\1\160\1\163\1\146\1\155\1\uffff\1\163\1\154\1\162\1\143\1\137\1\154\1\142\2\141\1\156\1\151\1\uffff\1\163\1\157\1\165\1\157\1\154\1\151\1\145\1\141\1\163\1\165\1\137\1\157\1\166\1\151\2\154\1\162\1\145\1\146\1\151\1\156\1\142\1\141\1\145\1\163\1\162\1\156\1\172\1\162\2\156\1\151\1\172\1\145\1\137\2\144\1\151\1\157\1\172\1\164\1\162\2\164\2\145\1\uffff\1\145\2\157\1\163\1\157\1\141\1\137\1\154\2\172\1\145\1\156\1\uffff\1\154\1\163\1\151\1\145\2\156\1\172\1\164\1\155\1\151\1\154\1\142\1\154\1\157\2\uffff\1\144\1\172\2\145\1\157\1\156\2\143\1\uffff\1\150\1\160\1\163\1\141\1\154\1\145\1\163\1\172\1\uffff\2\172\1\156\1\143\2\145\1\151\1\145\2\164\1\145\1\166\1\163\3\uffff\1\172\1\171\2\172\2\156\1\145\1\151\1\172\1\145\1\137\1\uffff\1\172\2\uffff\1\147\1\163\1\156\1\157\1\uffff\1\154\1\141\1\uffff\1\172\1\141\1\143\1\156\1\172\1\154\1\uffff\1\164\1\171\1\137\1\uffff\1\154\1\151\1\172\1\141\2\157\1\uffff\1\154\1\167\1\156\1\154\1\145\1\172\1\157\1\144\1\uffff\1\167\1\172\1\145\1\uffff\1\144\1\172\1\uffff";
+ static final String DFA12_acceptS =
+ "\20\uffff\1\30\1\31\1\32\1\33\1\34\2\uffff\1\37\1\40\3\uffff\1\44\1\45\1\uffff\1\37\17\uffff\1\27\1\30\1\31\1\32\1\33\1\34\1\uffff\1\40\1\41\1\42\1\43\1\44\50\uffff\1\26\4\uffff\1\3\7\uffff\1\11\13\uffff\1\2\56\uffff\1\24\14\uffff\1\5\16\uffff\1\36\1\1\10\uffff\1\35\10\uffff\1\4\15\uffff\1\12\1\6\1\7\13\uffff\1\10\1\uffff\1\14\1\15\4\uffff\1\22\2\uffff\1\13\6\uffff\1\16\3\uffff\1\23\6\uffff\1\20\10\uffff\1\17\3\uffff\1\25\2\uffff\1\21";
+ static final String DFA12_specialS =
+ "\1\2\30\uffff\1\0\1\1\u0109\uffff}>";
+ static final String[] DFA12_transitionS = {
+ "\11\35\2\34\2\35\1\34\22\35\1\34\1\35\1\31\4\35\1\32\4\35\1\21\1\17\1\22\1\33\12\30\1\35\1\20\5\35\5\27\1\16\24\27\3\35\1\26\1\27\1\35\1\11\1\27\1\4\1\27\1\2\1\12\2\27\1\7\2\27\1\3\1\27\1\10\1\5\1\15\1\27\1\13\1\14\1\27\1\1\1\6\1\25\3\27\1\23\1\35\1\24\uff82\35",
+ "\1\36",
+ "\1\40",
+ "\1\41",
+ "\1\42",
+ "\1\43",
+ "\1\44",
+ "\1\46\1\45",
+ "\1\47",
+ "\1\50",
+ "\1\51",
+ "\1\52",
+ "\1\53",
+ "\1\55\15\uffff\1\54",
+ "\1\56",
+ "\1\57",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "\1\65",
+ "\32\37\4\uffff\1\37\1\uffff\32\37",
+ "",
+ "",
+ "\0\67",
+ "\0\67",
+ "\1\70\4\uffff\1\71",
+ "",
+ "",
+ "\1\73\16\uffff\1\74",
+ "",
+ "\1\75",
+ "\1\76",
+ "\1\77",
+ "\1\100",
+ "\1\101",
+ "\1\102\20\uffff\1\103",
+ "\1\104",
+ "\1\107\30\uffff\1\106\16\uffff\1\105",
+ "\1\110",
+ "\1\111",
+ "\1\112",
+ "\1\113",
+ "\1\114",
+ "\1\115",
+ "\1\116",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "\1\117",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "\1\120",
+ "\1\121",
+ "\1\122",
+ "\1\123",
+ "\1\124",
+ "\1\125",
+ "\1\126",
+ "\1\127",
+ "\1\130",
+ "\1\131",
+ "\1\132",
+ "\1\133",
+ "\1\134",
+ "\1\135",
+ "\1\136",
+ "\1\137",
+ "\1\140",
+ "\1\141",
+ "\1\142",
+ "\1\143",
+ "\1\144",
+ "\1\145",
+ "\1\146",
+ "\1\147",
+ "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
+ "\1\151",
+ "\1\152",
+ "\1\153",
+ "\1\154\1\155",
+ "\1\156",
+ "\1\157",
+ "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
+ "\1\161",
+ "\1\162",
+ "\1\163",
+ "\1\164",
+ "\1\165",
+ "\1\166",
+ "\1\167",
+ "\1\170",
+ "",
+ "\1\171",
+ "\1\172",
+ "\1\173",
+ "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
+ "",
+ "\1\175",
+ "\1\176",
+ "\1\u0080\17\uffff\1\177",
+ "\1\u0081",
+ "\1\u0082",
+ "\1\u0083",
+ "\1\u0084",
+ "",
+ "\1\u0085",
+ "\1\u0086",
+ "\1\u0087",
+ "\1\u0088",
+ "\1\u0089",
+ "\1\u008a",
+ "\1\u008b",
+ "\1\u008c",
+ "\1\u008d",
+ "\1\u008e",
+ "\1\u008f",
+ "",
+ "\1\u0090",
+ "\1\u0091",
+ "\1\u0092",
+ "\1\u0093",
+ "\1\u0094",
+ "\1\u0095",
+ "\1\u0096",
+ "\1\u0097",
+ "\1\u0098",
+ "\1\u0099",
+ "\1\u009a",
+ "\1\u009b",
+ "\1\u009c",
+ "\1\u009d",
+ "\1\u009e",
+ "\1\u009f",
+ "\1\u00a0",
+ "\1\u00a1",
+ "\1\u00a2",
+ "\1\u00a3",
+ "\1\u00a4",
+ "\1\u00a5",
+ "\1\u00a6",
+ "\1\u00a7",
+ "\1\u00a8",
+ "\1\u00a9",
+ "\1\u00aa",
+ "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
+ "\1\u00ac",
+ "\1\u00ae\12\uffff\1\u00ad",
+ "\1\u00af",
+ "\1\u00b0",
+ "\1\u00b1",
+ "\1\u00b2",
+ "\1\u00b3",
+ "\1\u00b4",
+ "\1\u00b5",
+ "\1\u00b6",
+ "\1\u00b7",
+ "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
+ "\1\u00b9",
+ "\1\u00ba",
+ "\1\u00bb",
+ "\1\u00bc",
+ "\1\u00bd",
+ "\1\u00be",
+ "",
+ "\1\u00bf",
+ "\1\u00c0",
+ "\1\u00c1",
+ "\1\u00c2",
+ "\1\u00c3",
+ "\1\u00c4",
+ "\1\u00c5",
+ "\1\u00c6",
+ "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
+ "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
+ "\1\u00c9",
+ "\1\u00ca",
+ "",
+ "\1\u00cb",
+ "\1\u00cc",
+ "\1\u00cd",
+ "\1\u00ce",
+ "\1\u00cf",
+ "\1\u00d0",
+ "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
+ "\1\u00d2",
+ "\1\u00d3",
+ "\1\u00d4",
+ "\1\u00d5",
+ "\1\u00d6",
+ "\1\u00d7",
+ "\1\u00d8",
+ "",
+ "",
+ "\1\u00d9",
+ "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
+ "\1\u00db",
+ "\1\u00dc",
+ "\1\u00dd",
+ "\1\u00de",
+ "\1\u00df",
+ "\1\u00e0",
+ "",
+ "\1\u00e1",
+ "\1\u00e2",
+ "\1\u00e3",
+ "\1\u00e4",
+ "\1\u00e5",
+ "\1\u00e6",
+ "\1\u00e7",
+ "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
+ "",
+ "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
+ "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
+ "\1\u00eb",
+ "\1\u00ec",
+ "\1\u00ed",
+ "\1\u00ee",
+ "\1\u00ef",
+ "\1\u00f0",
+ "\1\u00f1",
+ "\1\u00f2",
+ "\1\u00f3",
+ "\1\u00f4",
+ "\1\u00f5",
+ "",
+ "",
+ "",
+ "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
+ "\1\u00f7",
+ "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
+ "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
+ "\1\u00fa",
+ "\1\u00fb",
+ "\1\u00fc",
+ "\1\u00fd",
+ "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
+ "\1\u00ff",
+ "\1\u0100",
+ "",
+ "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
+ "",
+ "",
+ "\1\u0102",
+ "\1\u0103",
+ "\1\u0104",
+ "\1\u0105",
+ "",
+ "\1\u0106",
+ "\1\u0107",
+ "",
+ "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
+ "\1\u0109",
+ "\1\u010a",
+ "\1\u010b",
+ "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
+ "\1\u010d",
+ "",
+ "\1\u010e",
+ "\1\u010f",
+ "\1\u0110",
+ "",
+ "\1\u0111",
+ "\1\u0112",
+ "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
+ "\1\u0114",
+ "\1\u0115",
+ "\1\u0116",
+ "",
+ "\1\u0117",
+ "\1\u0118",
+ "\1\u0119",
+ "\1\u011a",
+ "\1\u011b",
+ "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
+ "\1\u011d",
+ "\1\u011e",
+ "",
+ "\1\u011f",
+ "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
+ "\1\u0121",
+ "",
+ "\1\u0122",
+ "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
+ ""
+ };
+
+ static final short[] DFA12_eot = DFA.unpackEncodedString(DFA12_eotS);
+ static final short[] DFA12_eof = DFA.unpackEncodedString(DFA12_eofS);
+ static final char[] DFA12_min = DFA.unpackEncodedStringToUnsignedChars(DFA12_minS);
+ static final char[] DFA12_max = DFA.unpackEncodedStringToUnsignedChars(DFA12_maxS);
+ static final short[] DFA12_accept = DFA.unpackEncodedString(DFA12_acceptS);
+ static final short[] DFA12_special = DFA.unpackEncodedString(DFA12_specialS);
+ static final short[][] DFA12_transition;
+
+ static {
+ int numStates = DFA12_transitionS.length;
+ DFA12_transition = new short[numStates][];
+ for (int i=0; i<numStates; i++) {
+ DFA12_transition[i] = DFA.unpackEncodedString(DFA12_transitionS[i]);
+ }
+ }
+
+ class DFA12 extends DFA {
+
+ public DFA12(BaseRecognizer recognizer) {
+ this.recognizer = recognizer;
+ this.decisionNumber = 12;
+ this.eot = DFA12_eot;
+ this.eof = DFA12_eof;
+ this.min = DFA12_min;
+ this.max = DFA12_max;
+ this.accept = DFA12_accept;
+ this.special = DFA12_special;
+ this.transition = DFA12_transition;
+ }
+ public String getDescription() {
+ return "1:1: Tokens : ( T__11 | T__12 | T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | RULE_ID | RULE_INT | RULE_STRING | RULE_ML_COMMENT | RULE_SL_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_25 = input.LA(1);
+
+ s = -1;
+ if ( ((LA12_25>='\u0000' && LA12_25<='\uFFFF')) ) {s = 55;}
+
+ else s = 29;
+
+ if ( s>=0 ) return s;
+ break;
+ case 1 :
+ int LA12_26 = input.LA(1);
+
+ s = -1;
+ if ( ((LA12_26>='\u0000' && LA12_26<='\uFFFF')) ) {s = 55;}
+
+ else s = 29;
+
+ if ( s>=0 ) return s;
+ break;
+ case 2 :
+ int LA12_0 = input.LA(1);
+
+ s = -1;
+ if ( (LA12_0=='u') ) {s = 1;}
+
+ else if ( (LA12_0=='e') ) {s = 2;}
+
+ else if ( (LA12_0=='l') ) {s = 3;}
+
+ else if ( (LA12_0=='c') ) {s = 4;}
+
+ else if ( (LA12_0=='o') ) {s = 5;}
+
+ else if ( (LA12_0=='v') ) {s = 6;}
+
+ else if ( (LA12_0=='i') ) {s = 7;}
+
+ else if ( (LA12_0=='n') ) {s = 8;}
+
+ else if ( (LA12_0=='a') ) {s = 9;}
+
+ else if ( (LA12_0=='f') ) {s = 10;}
+
+ else if ( (LA12_0=='r') ) {s = 11;}
+
+ else if ( (LA12_0=='s') ) {s = 12;}
+
+ else if ( (LA12_0=='p') ) {s = 13;}
+
+ else if ( (LA12_0=='F') ) {s = 14;}
+
+ else if ( (LA12_0=='-') ) {s = 15;}
+
+ else if ( (LA12_0==';') ) {s = 16;}
+
+ else if ( (LA12_0==',') ) {s = 17;}
+
+ else if ( (LA12_0=='.') ) {s = 18;}
+
+ else if ( (LA12_0=='{') ) {s = 19;}
+
+ else if ( (LA12_0=='}') ) {s = 20;}
+
+ else if ( (LA12_0=='w') ) {s = 21;}
+
+ else if ( (LA12_0=='^') ) {s = 22;}
+
+ else if ( ((LA12_0>='A' && LA12_0<='E')||(LA12_0>='G' && LA12_0<='Z')||LA12_0=='_'||LA12_0=='b'||LA12_0=='d'||(LA12_0>='g' && LA12_0<='h')||(LA12_0>='j' && LA12_0<='k')||LA12_0=='m'||LA12_0=='q'||LA12_0=='t'||(LA12_0>='x' && LA12_0<='z')) ) {s = 23;}
+
+ else if ( ((LA12_0>='0' && LA12_0<='9')) ) {s = 24;}
+
+ else if ( (LA12_0=='\"') ) {s = 25;}
+
+ else if ( (LA12_0=='\'') ) {s = 26;}
+
+ else if ( (LA12_0=='/') ) {s = 27;}
+
+ else if ( ((LA12_0>='\t' && LA12_0<='\n')||LA12_0=='\r'||LA12_0==' ') ) {s = 28;}
+
+ 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>='[' && LA12_0<=']')||LA12_0=='`'||LA12_0=='|'||(LA12_0>='~' && LA12_0<='\uFFFF')) ) {s = 29;}
+
+ if ( s>=0 ) return s;
+ break;
+ }
+ NoViableAltException nvae =
+ new NoViableAltException(getDescription(), 12, _s, input);
+ error(nvae);
+ throw nvae;
+ }
+ }
+
+
+}
\ No newline at end of file
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl.ui/src-gen/org/polarsys/chess/xtext/ui/contentassist/antlr/internal/InternalFlaDslParser.java b/plugins/fla/org.polarsys.chess.xtext.fladsl.ui/src-gen/org/polarsys/chess/xtext/ui/contentassist/antlr/internal/InternalFlaDslParser.java
new file mode 100644
index 0000000..36dd9db
--- /dev/null
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl.ui/src-gen/org/polarsys/chess/xtext/ui/contentassist/antlr/internal/InternalFlaDslParser.java
@@ -0,0 +1,9787 @@
+package org.polarsys.chess.xtext.ui.contentassist.antlr.internal;
+
+import java.io.InputStream;
+import org.eclipse.xtext.*;
+import org.eclipse.xtext.parser.*;
+import org.eclipse.xtext.parser.impl.*;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.xtext.parser.antlr.XtextTokenStream;
+import org.eclipse.xtext.parser.antlr.XtextTokenStream.HiddenTokens;
+import org.eclipse.xtext.ui.editor.contentassist.antlr.internal.AbstractInternalContentAssistParser;
+import org.eclipse.xtext.ui.editor.contentassist.antlr.internal.DFA;
+import org.polarsys.chess.xtext.services.FlaDslGrammarAccess;
+
+
+
+import org.antlr.runtime.*;
+import java.util.Stack;
+import java.util.List;
+import java.util.ArrayList;
+
+@SuppressWarnings("all")
+public class InternalFlaDslParser extends AbstractInternalContentAssistParser {
+ public static final String[] tokenNames = new String[] {
+ "<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_ID", "RULE_INT", "RULE_STRING", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "'undefined'", "'early'", "'late'", "'commission'", "'omission'", "'valueSubtle'", "'valueCoarse'", "'incompletion'", "'none'", "'unspecified'", "'inconsistency'", "'interference'", "'impermanence'", "'all_or_nothing'", "'all_or_compensation'", "'full_consistency'", "'range_violation_allowed'", "'serializable'", "'portable_level'", "'no_loss'", "'partial_loss_allowed'", "'FLA:'", "'->'", "';'", "','", "'.'", "'{'", "'}'", "'noFailure'", "'wildcard'"
+ };
+ public static final int RULE_STRING=6;
+ public static final int RULE_SL_COMMENT=8;
+ public static final int T__19=19;
+ public static final int T__15=15;
+ public static final int T__37=37;
+ public static final int T__16=16;
+ public static final int T__38=38;
+ public static final int T__17=17;
+ public static final int T__39=39;
+ public static final int T__18=18;
+ public static final int T__11=11;
+ public static final int T__33=33;
+ public static final int T__12=12;
+ public static final int T__34=34;
+ public static final int T__13=13;
+ public static final int T__35=35;
+ public static final int T__14=14;
+ public static final int T__36=36;
+ public static final int EOF=-1;
+ public static final int T__30=30;
+ public static final int T__31=31;
+ public static final int T__32=32;
+ public static final int RULE_ID=4;
+ public static final int RULE_WS=9;
+ public static final int RULE_ANY_OTHER=10;
+ public static final int T__26=26;
+ public static final int T__27=27;
+ public static final int T__28=28;
+ public static final int RULE_INT=5;
+ public static final int T__29=29;
+ public static final int T__22=22;
+ public static final int RULE_ML_COMMENT=7;
+ public static final int T__23=23;
+ public static final int T__24=24;
+ public static final int T__25=25;
+ public static final int T__40=40;
+ public static final int T__20=20;
+ public static final int T__21=21;
+
+ // delegates
+ // delegators
+
+
+ public InternalFlaDslParser(TokenStream input) {
+ this(input, new RecognizerSharedState());
+ }
+ public InternalFlaDslParser(TokenStream input, RecognizerSharedState state) {
+ super(input, state);
+
+ }
+
+
+ public String[] getTokenNames() { return InternalFlaDslParser.tokenNames; }
+ public String getGrammarFileName() { return "InternalFlaDsl.g"; }
+
+
+
+ private FlaDslGrammarAccess grammarAccess;
+
+ public void setGrammarAccess(FlaDslGrammarAccess grammarAccess) {
+ this.grammarAccess = grammarAccess;
+ }
+
+ @Override
+ protected Grammar getGrammar() {
+ return grammarAccess.getGrammar();
+ }
+
+ @Override
+ protected String getValueForTokenName(String tokenName) {
+ return tokenName;
+ }
+
+
+
+
+ // $ANTLR start "entryRuleBehaviour"
+ // InternalFlaDsl.g:60:1: entryRuleBehaviour : ruleBehaviour EOF ;
+ public final void entryRuleBehaviour() throws RecognitionException {
+ try {
+ // InternalFlaDsl.g:61:1: ( ruleBehaviour EOF )
+ // InternalFlaDsl.g:62:1: ruleBehaviour EOF
+ {
+ before(grammarAccess.getBehaviourRule());
+ pushFollow(FOLLOW_1);
+ ruleBehaviour();
+
+ state._fsp--;
+
+ after(grammarAccess.getBehaviourRule());
+ match(input,EOF,FOLLOW_2);
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleBehaviour"
+
+
+ // $ANTLR start "ruleBehaviour"
+ // InternalFlaDsl.g:69:1: ruleBehaviour : ( ( ( rule__Behaviour__RulesAssignment ) ) ( ( rule__Behaviour__RulesAssignment )* ) ) ;
+ public final void ruleBehaviour() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:73:2: ( ( ( ( rule__Behaviour__RulesAssignment ) ) ( ( rule__Behaviour__RulesAssignment )* ) ) )
+ // InternalFlaDsl.g:74:1: ( ( ( rule__Behaviour__RulesAssignment ) ) ( ( rule__Behaviour__RulesAssignment )* ) )
+ {
+ // InternalFlaDsl.g:74:1: ( ( ( rule__Behaviour__RulesAssignment ) ) ( ( rule__Behaviour__RulesAssignment )* ) )
+ // InternalFlaDsl.g:75:1: ( ( rule__Behaviour__RulesAssignment ) ) ( ( rule__Behaviour__RulesAssignment )* )
+ {
+ // InternalFlaDsl.g:75:1: ( ( rule__Behaviour__RulesAssignment ) )
+ // InternalFlaDsl.g:76:1: ( rule__Behaviour__RulesAssignment )
+ {
+ before(grammarAccess.getBehaviourAccess().getRulesAssignment());
+ // InternalFlaDsl.g:77:1: ( rule__Behaviour__RulesAssignment )
+ // InternalFlaDsl.g:77:2: rule__Behaviour__RulesAssignment
+ {
+ pushFollow(FOLLOW_3);
+ rule__Behaviour__RulesAssignment();
+
+ state._fsp--;
+
+
+ }
+
+ after(grammarAccess.getBehaviourAccess().getRulesAssignment());
+
+ }
+
+ // InternalFlaDsl.g:80:1: ( ( rule__Behaviour__RulesAssignment )* )
+ // InternalFlaDsl.g:81:1: ( rule__Behaviour__RulesAssignment )*
+ {
+ before(grammarAccess.getBehaviourAccess().getRulesAssignment());
+ // InternalFlaDsl.g:82:1: ( rule__Behaviour__RulesAssignment )*
+ loop1:
+ do {
+ int alt1=2;
+ int LA1_0 = input.LA(1);
+
+ if ( (LA1_0==32) ) {
+ alt1=1;
+ }
+
+
+ switch (alt1) {
+ case 1 :
+ // InternalFlaDsl.g:82:2: rule__Behaviour__RulesAssignment
+ {
+ pushFollow(FOLLOW_3);
+ rule__Behaviour__RulesAssignment();
+
+ state._fsp--;
+
+
+ }
+ break;
+
+ default :
+ break loop1;
+ }
+ } while (true);
+
+ after(grammarAccess.getBehaviourAccess().getRulesAssignment());
+
+ }
+
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleBehaviour"
+
+
+ // $ANTLR start "entryRuleExpression"
+ // InternalFlaDsl.g:95:1: entryRuleExpression : ruleExpression EOF ;
+ public final void entryRuleExpression() throws RecognitionException {
+ try {
+ // InternalFlaDsl.g:96:1: ( ruleExpression EOF )
+ // InternalFlaDsl.g:97:1: ruleExpression EOF
+ {
+ before(grammarAccess.getExpressionRule());
+ pushFollow(FOLLOW_1);
+ ruleExpression();
+
+ state._fsp--;
+
+ after(grammarAccess.getExpressionRule());
+ match(input,EOF,FOLLOW_2);
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleExpression"
+
+
+ // $ANTLR start "ruleExpression"
+ // InternalFlaDsl.g:104:1: ruleExpression : ( ( rule__Expression__Group__0 ) ) ;
+ public final void ruleExpression() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:108:2: ( ( ( rule__Expression__Group__0 ) ) )
+ // InternalFlaDsl.g:109:1: ( ( rule__Expression__Group__0 ) )
+ {
+ // InternalFlaDsl.g:109:1: ( ( rule__Expression__Group__0 ) )
+ // InternalFlaDsl.g:110:1: ( rule__Expression__Group__0 )
+ {
+ before(grammarAccess.getExpressionAccess().getGroup());
+ // InternalFlaDsl.g:111:1: ( rule__Expression__Group__0 )
+ // InternalFlaDsl.g:111:2: rule__Expression__Group__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__Expression__Group__0();
+
+ state._fsp--;
+
+
+ }
+
+ after(grammarAccess.getExpressionAccess().getGroup());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleExpression"
+
+
+ // $ANTLR start "entryRuleLhs"
+ // InternalFlaDsl.g:123:1: entryRuleLhs : ruleLhs EOF ;
+ public final void entryRuleLhs() throws RecognitionException {
+ try {
+ // InternalFlaDsl.g:124:1: ( ruleLhs EOF )
+ // InternalFlaDsl.g:125:1: ruleLhs EOF
+ {
+ before(grammarAccess.getLhsRule());
+ pushFollow(FOLLOW_1);
+ ruleLhs();
+
+ state._fsp--;
+
+ after(grammarAccess.getLhsRule());
+ match(input,EOF,FOLLOW_2);
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleLhs"
+
+
+ // $ANTLR start "ruleLhs"
+ // InternalFlaDsl.g:132:1: ruleLhs : ( ( rule__Lhs__Group__0 ) ) ;
+ public final void ruleLhs() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:136:2: ( ( ( rule__Lhs__Group__0 ) ) )
+ // InternalFlaDsl.g:137:1: ( ( rule__Lhs__Group__0 ) )
+ {
+ // InternalFlaDsl.g:137:1: ( ( rule__Lhs__Group__0 ) )
+ // InternalFlaDsl.g:138:1: ( rule__Lhs__Group__0 )
+ {
+ before(grammarAccess.getLhsAccess().getGroup());
+ // InternalFlaDsl.g:139:1: ( rule__Lhs__Group__0 )
+ // InternalFlaDsl.g:139:2: rule__Lhs__Group__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__Lhs__Group__0();
+
+ state._fsp--;
+
+
+ }
+
+ after(grammarAccess.getLhsAccess().getGroup());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleLhs"
+
+
+ // $ANTLR start "entryRuleRhs"
+ // InternalFlaDsl.g:151:1: entryRuleRhs : ruleRhs EOF ;
+ public final void entryRuleRhs() throws RecognitionException {
+ try {
+ // InternalFlaDsl.g:152:1: ( ruleRhs EOF )
+ // InternalFlaDsl.g:153:1: ruleRhs EOF
+ {
+ before(grammarAccess.getRhsRule());
+ pushFollow(FOLLOW_1);
+ ruleRhs();
+
+ state._fsp--;
+
+ after(grammarAccess.getRhsRule());
+ match(input,EOF,FOLLOW_2);
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleRhs"
+
+
+ // $ANTLR start "ruleRhs"
+ // InternalFlaDsl.g:160:1: ruleRhs : ( ( rule__Rhs__Group__0 ) ) ;
+ public final void ruleRhs() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:164:2: ( ( ( rule__Rhs__Group__0 ) ) )
+ // InternalFlaDsl.g:165:1: ( ( rule__Rhs__Group__0 ) )
+ {
+ // InternalFlaDsl.g:165:1: ( ( rule__Rhs__Group__0 ) )
+ // InternalFlaDsl.g:166:1: ( rule__Rhs__Group__0 )
+ {
+ before(grammarAccess.getRhsAccess().getGroup());
+ // InternalFlaDsl.g:167:1: ( rule__Rhs__Group__0 )
+ // InternalFlaDsl.g:167:2: rule__Rhs__Group__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__Rhs__Group__0();
+
+ state._fsp--;
+
+
+ }
+
+ after(grammarAccess.getRhsAccess().getGroup());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleRhs"
+
+
+ // $ANTLR start "entryRuleInputExpression"
+ // InternalFlaDsl.g:179:1: entryRuleInputExpression : ruleInputExpression EOF ;
+ public final void entryRuleInputExpression() throws RecognitionException {
+ try {
+ // InternalFlaDsl.g:180:1: ( ruleInputExpression EOF )
+ // InternalFlaDsl.g:181:1: ruleInputExpression EOF
+ {
+ before(grammarAccess.getInputExpressionRule());
+ pushFollow(FOLLOW_1);
+ ruleInputExpression();
+
+ state._fsp--;
+
+ after(grammarAccess.getInputExpressionRule());
+ match(input,EOF,FOLLOW_2);
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleInputExpression"
+
+
+ // $ANTLR start "ruleInputExpression"
+ // InternalFlaDsl.g:188:1: ruleInputExpression : ( ( rule__InputExpression__Group__0 ) ) ;
+ public final void ruleInputExpression() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:192:2: ( ( ( rule__InputExpression__Group__0 ) ) )
+ // InternalFlaDsl.g:193:1: ( ( rule__InputExpression__Group__0 ) )
+ {
+ // InternalFlaDsl.g:193:1: ( ( rule__InputExpression__Group__0 ) )
+ // InternalFlaDsl.g:194:1: ( rule__InputExpression__Group__0 )
+ {
+ before(grammarAccess.getInputExpressionAccess().getGroup());
+ // InternalFlaDsl.g:195:1: ( rule__InputExpression__Group__0 )
+ // InternalFlaDsl.g:195:2: rule__InputExpression__Group__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__InputExpression__Group__0();
+
+ state._fsp--;
+
+
+ }
+
+ after(grammarAccess.getInputExpressionAccess().getGroup());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleInputExpression"
+
+
+ // $ANTLR start "entryRuleOutputExpression"
+ // InternalFlaDsl.g:207:1: entryRuleOutputExpression : ruleOutputExpression EOF ;
+ public final void entryRuleOutputExpression() throws RecognitionException {
+ try {
+ // InternalFlaDsl.g:208:1: ( ruleOutputExpression EOF )
+ // InternalFlaDsl.g:209:1: ruleOutputExpression EOF
+ {
+ before(grammarAccess.getOutputExpressionRule());
+ pushFollow(FOLLOW_1);
+ ruleOutputExpression();
+
+ state._fsp--;
+
+ after(grammarAccess.getOutputExpressionRule());
+ match(input,EOF,FOLLOW_2);
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleOutputExpression"
+
+
+ // $ANTLR start "ruleOutputExpression"
+ // InternalFlaDsl.g:216:1: ruleOutputExpression : ( ( rule__OutputExpression__Group__0 ) ) ;
+ public final void ruleOutputExpression() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:220:2: ( ( ( rule__OutputExpression__Group__0 ) ) )
+ // InternalFlaDsl.g:221:1: ( ( rule__OutputExpression__Group__0 ) )
+ {
+ // InternalFlaDsl.g:221:1: ( ( rule__OutputExpression__Group__0 ) )
+ // InternalFlaDsl.g:222:1: ( rule__OutputExpression__Group__0 )
+ {
+ before(grammarAccess.getOutputExpressionAccess().getGroup());
+ // InternalFlaDsl.g:223:1: ( rule__OutputExpression__Group__0 )
+ // InternalFlaDsl.g:223:2: rule__OutputExpression__Group__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__OutputExpression__Group__0();
+
+ state._fsp--;
+
+
+ }
+
+ after(grammarAccess.getOutputExpressionAccess().getGroup());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleOutputExpression"
+
+
+ // $ANTLR start "entryRuleInFailureExpr"
+ // InternalFlaDsl.g:235:1: entryRuleInFailureExpr : ruleInFailureExpr EOF ;
+ public final void entryRuleInFailureExpr() throws RecognitionException {
+ try {
+ // InternalFlaDsl.g:236:1: ( ruleInFailureExpr EOF )
+ // InternalFlaDsl.g:237:1: ruleInFailureExpr EOF
+ {
+ before(grammarAccess.getInFailureExprRule());
+ pushFollow(FOLLOW_1);
+ ruleInFailureExpr();
+
+ state._fsp--;
+
+ after(grammarAccess.getInFailureExprRule());
+ match(input,EOF,FOLLOW_2);
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleInFailureExpr"
+
+
+ // $ANTLR start "ruleInFailureExpr"
+ // InternalFlaDsl.g:244:1: ruleInFailureExpr : ( ( rule__InFailureExpr__Alternatives ) ) ;
+ public final void ruleInFailureExpr() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:248:2: ( ( ( rule__InFailureExpr__Alternatives ) ) )
+ // InternalFlaDsl.g:249:1: ( ( rule__InFailureExpr__Alternatives ) )
+ {
+ // InternalFlaDsl.g:249:1: ( ( rule__InFailureExpr__Alternatives ) )
+ // InternalFlaDsl.g:250:1: ( rule__InFailureExpr__Alternatives )
+ {
+ before(grammarAccess.getInFailureExprAccess().getAlternatives());
+ // InternalFlaDsl.g:251:1: ( rule__InFailureExpr__Alternatives )
+ // InternalFlaDsl.g:251:2: rule__InFailureExpr__Alternatives
+ {
+ pushFollow(FOLLOW_2);
+ rule__InFailureExpr__Alternatives();
+
+ state._fsp--;
+
+
+ }
+
+ after(grammarAccess.getInFailureExprAccess().getAlternatives());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleInFailureExpr"
+
+
+ // $ANTLR start "entryRuleOutFailureExpr"
+ // InternalFlaDsl.g:263:1: entryRuleOutFailureExpr : ruleOutFailureExpr EOF ;
+ public final void entryRuleOutFailureExpr() throws RecognitionException {
+ try {
+ // InternalFlaDsl.g:264:1: ( ruleOutFailureExpr EOF )
+ // InternalFlaDsl.g:265:1: ruleOutFailureExpr EOF
+ {
+ before(grammarAccess.getOutFailureExprRule());
+ pushFollow(FOLLOW_1);
+ ruleOutFailureExpr();
+
+ state._fsp--;
+
+ after(grammarAccess.getOutFailureExprRule());
+ match(input,EOF,FOLLOW_2);
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleOutFailureExpr"
+
+
+ // $ANTLR start "ruleOutFailureExpr"
+ // InternalFlaDsl.g:272:1: ruleOutFailureExpr : ( ( rule__OutFailureExpr__Alternatives ) ) ;
+ public final void ruleOutFailureExpr() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:276:2: ( ( ( rule__OutFailureExpr__Alternatives ) ) )
+ // InternalFlaDsl.g:277:1: ( ( rule__OutFailureExpr__Alternatives ) )
+ {
+ // InternalFlaDsl.g:277:1: ( ( rule__OutFailureExpr__Alternatives ) )
+ // InternalFlaDsl.g:278:1: ( rule__OutFailureExpr__Alternatives )
+ {
+ before(grammarAccess.getOutFailureExprAccess().getAlternatives());
+ // InternalFlaDsl.g:279:1: ( rule__OutFailureExpr__Alternatives )
+ // InternalFlaDsl.g:279:2: rule__OutFailureExpr__Alternatives
+ {
+ pushFollow(FOLLOW_2);
+ rule__OutFailureExpr__Alternatives();
+
+ state._fsp--;
+
+
+ }
+
+ after(grammarAccess.getOutFailureExprAccess().getAlternatives());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleOutFailureExpr"
+
+
+ // $ANTLR start "entryRuleFailureDefinition"
+ // InternalFlaDsl.g:293:1: entryRuleFailureDefinition : ruleFailureDefinition EOF ;
+ public final void entryRuleFailureDefinition() throws RecognitionException {
+ try {
+ // InternalFlaDsl.g:294:1: ( ruleFailureDefinition EOF )
+ // InternalFlaDsl.g:295:1: ruleFailureDefinition EOF
+ {
+ before(grammarAccess.getFailureDefinitionRule());
+ pushFollow(FOLLOW_1);
+ ruleFailureDefinition();
+
+ state._fsp--;
+
+ after(grammarAccess.getFailureDefinitionRule());
+ match(input,EOF,FOLLOW_2);
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleFailureDefinition"
+
+
+ // $ANTLR start "ruleFailureDefinition"
+ // InternalFlaDsl.g:302:1: ruleFailureDefinition : ( ( rule__FailureDefinition__Group__0 ) ) ;
+ public final void ruleFailureDefinition() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:306:2: ( ( ( rule__FailureDefinition__Group__0 ) ) )
+ // InternalFlaDsl.g:307:1: ( ( rule__FailureDefinition__Group__0 ) )
+ {
+ // InternalFlaDsl.g:307:1: ( ( rule__FailureDefinition__Group__0 ) )
+ // InternalFlaDsl.g:308:1: ( rule__FailureDefinition__Group__0 )
+ {
+ before(grammarAccess.getFailureDefinitionAccess().getGroup());
+ // InternalFlaDsl.g:309:1: ( rule__FailureDefinition__Group__0 )
+ // InternalFlaDsl.g:309:2: rule__FailureDefinition__Group__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__FailureDefinition__Group__0();
+
+ state._fsp--;
+
+
+ }
+
+ after(grammarAccess.getFailureDefinitionAccess().getGroup());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleFailureDefinition"
+
+
+ // $ANTLR start "entryRuleNoFailureDefinition"
+ // InternalFlaDsl.g:321:1: entryRuleNoFailureDefinition : ruleNoFailureDefinition EOF ;
+ public final void entryRuleNoFailureDefinition() throws RecognitionException {
+ try {
+ // InternalFlaDsl.g:322:1: ( ruleNoFailureDefinition EOF )
+ // InternalFlaDsl.g:323:1: ruleNoFailureDefinition EOF
+ {
+ before(grammarAccess.getNoFailureDefinitionRule());
+ pushFollow(FOLLOW_1);
+ ruleNoFailureDefinition();
+
+ state._fsp--;
+
+ after(grammarAccess.getNoFailureDefinitionRule());
+ match(input,EOF,FOLLOW_2);
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleNoFailureDefinition"
+
+
+ // $ANTLR start "ruleNoFailureDefinition"
+ // InternalFlaDsl.g:330:1: ruleNoFailureDefinition : ( ( rule__NoFailureDefinition__Group__0 ) ) ;
+ public final void ruleNoFailureDefinition() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:334:2: ( ( ( rule__NoFailureDefinition__Group__0 ) ) )
+ // InternalFlaDsl.g:335:1: ( ( rule__NoFailureDefinition__Group__0 ) )
+ {
+ // InternalFlaDsl.g:335:1: ( ( rule__NoFailureDefinition__Group__0 ) )
+ // InternalFlaDsl.g:336:1: ( rule__NoFailureDefinition__Group__0 )
+ {
+ before(grammarAccess.getNoFailureDefinitionAccess().getGroup());
+ // InternalFlaDsl.g:337:1: ( rule__NoFailureDefinition__Group__0 )
+ // InternalFlaDsl.g:337:2: rule__NoFailureDefinition__Group__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__NoFailureDefinition__Group__0();
+
+ state._fsp--;
+
+
+ }
+
+ after(grammarAccess.getNoFailureDefinitionAccess().getGroup());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleNoFailureDefinition"
+
+
+ // $ANTLR start "entryRuleComplexNofailureDefinition"
+ // InternalFlaDsl.g:349:1: entryRuleComplexNofailureDefinition : ruleComplexNofailureDefinition EOF ;
+ public final void entryRuleComplexNofailureDefinition() throws RecognitionException {
+ try {
+ // InternalFlaDsl.g:350:1: ( ruleComplexNofailureDefinition EOF )
+ // InternalFlaDsl.g:351:1: ruleComplexNofailureDefinition EOF
+ {
+ before(grammarAccess.getComplexNofailureDefinitionRule());
+ pushFollow(FOLLOW_1);
+ ruleComplexNofailureDefinition();
+
+ state._fsp--;
+
+ after(grammarAccess.getComplexNofailureDefinitionRule());
+ match(input,EOF,FOLLOW_2);
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleComplexNofailureDefinition"
+
+
+ // $ANTLR start "ruleComplexNofailureDefinition"
+ // InternalFlaDsl.g:358:1: ruleComplexNofailureDefinition : ( ( rule__ComplexNofailureDefinition__Group__0 ) ) ;
+ public final void ruleComplexNofailureDefinition() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:362:2: ( ( ( rule__ComplexNofailureDefinition__Group__0 ) ) )
+ // InternalFlaDsl.g:363:1: ( ( rule__ComplexNofailureDefinition__Group__0 ) )
+ {
+ // InternalFlaDsl.g:363:1: ( ( rule__ComplexNofailureDefinition__Group__0 ) )
+ // InternalFlaDsl.g:364:1: ( rule__ComplexNofailureDefinition__Group__0 )
+ {
+ before(grammarAccess.getComplexNofailureDefinitionAccess().getGroup());
+ // InternalFlaDsl.g:365:1: ( rule__ComplexNofailureDefinition__Group__0 )
+ // InternalFlaDsl.g:365:2: rule__ComplexNofailureDefinition__Group__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__ComplexNofailureDefinition__Group__0();
+
+ state._fsp--;
+
+
+ }
+
+ after(grammarAccess.getComplexNofailureDefinitionAccess().getGroup());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleComplexNofailureDefinition"
+
+
+ // $ANTLR start "entryRuleWildcardDefinition"
+ // InternalFlaDsl.g:377:1: entryRuleWildcardDefinition : ruleWildcardDefinition EOF ;
+ public final void entryRuleWildcardDefinition() throws RecognitionException {
+ try {
+ // InternalFlaDsl.g:378:1: ( ruleWildcardDefinition EOF )
+ // InternalFlaDsl.g:379:1: ruleWildcardDefinition EOF
+ {
+ before(grammarAccess.getWildcardDefinitionRule());
+ pushFollow(FOLLOW_1);
+ ruleWildcardDefinition();
+
+ state._fsp--;
+
+ after(grammarAccess.getWildcardDefinitionRule());
+ match(input,EOF,FOLLOW_2);
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleWildcardDefinition"
+
+
+ // $ANTLR start "ruleWildcardDefinition"
+ // InternalFlaDsl.g:386:1: ruleWildcardDefinition : ( ( rule__WildcardDefinition__Group__0 ) ) ;
+ public final void ruleWildcardDefinition() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:390:2: ( ( ( rule__WildcardDefinition__Group__0 ) ) )
+ // InternalFlaDsl.g:391:1: ( ( rule__WildcardDefinition__Group__0 ) )
+ {
+ // InternalFlaDsl.g:391:1: ( ( rule__WildcardDefinition__Group__0 ) )
+ // InternalFlaDsl.g:392:1: ( rule__WildcardDefinition__Group__0 )
+ {
+ before(grammarAccess.getWildcardDefinitionAccess().getGroup());
+ // InternalFlaDsl.g:393:1: ( rule__WildcardDefinition__Group__0 )
+ // InternalFlaDsl.g:393:2: rule__WildcardDefinition__Group__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__WildcardDefinition__Group__0();
+
+ state._fsp--;
+
+
+ }
+
+ after(grammarAccess.getWildcardDefinitionAccess().getGroup());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleWildcardDefinition"
+
+
+ // $ANTLR start "entryRuleVariableDefinition"
+ // InternalFlaDsl.g:405:1: entryRuleVariableDefinition : ruleVariableDefinition EOF ;
+ public final void entryRuleVariableDefinition() throws RecognitionException {
+ try {
+ // InternalFlaDsl.g:406:1: ( ruleVariableDefinition EOF )
+ // InternalFlaDsl.g:407:1: ruleVariableDefinition EOF
+ {
+ before(grammarAccess.getVariableDefinitionRule());
+ pushFollow(FOLLOW_1);
+ ruleVariableDefinition();
+
+ state._fsp--;
+
+ after(grammarAccess.getVariableDefinitionRule());
+ match(input,EOF,FOLLOW_2);
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleVariableDefinition"
+
+
+ // $ANTLR start "ruleVariableDefinition"
+ // InternalFlaDsl.g:414:1: ruleVariableDefinition : ( ( rule__VariableDefinition__Group__0 ) ) ;
+ public final void ruleVariableDefinition() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:418:2: ( ( ( rule__VariableDefinition__Group__0 ) ) )
+ // InternalFlaDsl.g:419:1: ( ( rule__VariableDefinition__Group__0 ) )
+ {
+ // InternalFlaDsl.g:419:1: ( ( rule__VariableDefinition__Group__0 ) )
+ // InternalFlaDsl.g:420:1: ( rule__VariableDefinition__Group__0 )
+ {
+ before(grammarAccess.getVariableDefinitionAccess().getGroup());
+ // InternalFlaDsl.g:421:1: ( rule__VariableDefinition__Group__0 )
+ // InternalFlaDsl.g:421:2: rule__VariableDefinition__Group__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__VariableDefinition__Group__0();
+
+ state._fsp--;
+
+
+ }
+
+ after(grammarAccess.getVariableDefinitionAccess().getGroup());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleVariableDefinition"
+
+
+ // $ANTLR start "entryRuleACIDavoidable"
+ // InternalFlaDsl.g:433:1: entryRuleACIDavoidable : ruleACIDavoidable EOF ;
+ public final void entryRuleACIDavoidable() throws RecognitionException {
+ try {
+ // InternalFlaDsl.g:434:1: ( ruleACIDavoidable EOF )
+ // InternalFlaDsl.g:435:1: ruleACIDavoidable EOF
+ {
+ before(grammarAccess.getACIDavoidableRule());
+ pushFollow(FOLLOW_1);
+ ruleACIDavoidable();
+
+ state._fsp--;
+
+ after(grammarAccess.getACIDavoidableRule());
+ match(input,EOF,FOLLOW_2);
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleACIDavoidable"
+
+
+ // $ANTLR start "ruleACIDavoidable"
+ // InternalFlaDsl.g:442:1: ruleACIDavoidable : ( ( rule__ACIDavoidable__Group__0 ) ) ;
+ public final void ruleACIDavoidable() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:446:2: ( ( ( rule__ACIDavoidable__Group__0 ) ) )
+ // InternalFlaDsl.g:447:1: ( ( rule__ACIDavoidable__Group__0 ) )
+ {
+ // InternalFlaDsl.g:447:1: ( ( rule__ACIDavoidable__Group__0 ) )
+ // InternalFlaDsl.g:448:1: ( rule__ACIDavoidable__Group__0 )
+ {
+ before(grammarAccess.getACIDavoidableAccess().getGroup());
+ // InternalFlaDsl.g:449:1: ( rule__ACIDavoidable__Group__0 )
+ // InternalFlaDsl.g:449:2: rule__ACIDavoidable__Group__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__ACIDavoidable__Group__0();
+
+ state._fsp--;
+
+
+ }
+
+ after(grammarAccess.getACIDavoidableAccess().getGroup());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleACIDavoidable"
+
+
+ // $ANTLR start "entryRuleACIDMitigation"
+ // InternalFlaDsl.g:461:1: entryRuleACIDMitigation : ruleACIDMitigation EOF ;
+ public final void entryRuleACIDMitigation() throws RecognitionException {
+ try {
+ // InternalFlaDsl.g:462:1: ( ruleACIDMitigation EOF )
+ // InternalFlaDsl.g:463:1: ruleACIDMitigation EOF
+ {
+ before(grammarAccess.getACIDMitigationRule());
+ pushFollow(FOLLOW_1);
+ ruleACIDMitigation();
+
+ state._fsp--;
+
+ after(grammarAccess.getACIDMitigationRule());
+ match(input,EOF,FOLLOW_2);
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleACIDMitigation"
+
+
+ // $ANTLR start "ruleACIDMitigation"
+ // InternalFlaDsl.g:470:1: ruleACIDMitigation : ( ( rule__ACIDMitigation__Group__0 ) ) ;
+ public final void ruleACIDMitigation() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:474:2: ( ( ( rule__ACIDMitigation__Group__0 ) ) )
+ // InternalFlaDsl.g:475:1: ( ( rule__ACIDMitigation__Group__0 ) )
+ {
+ // InternalFlaDsl.g:475:1: ( ( rule__ACIDMitigation__Group__0 ) )
+ // InternalFlaDsl.g:476:1: ( rule__ACIDMitigation__Group__0 )
+ {
+ before(grammarAccess.getACIDMitigationAccess().getGroup());
+ // InternalFlaDsl.g:477:1: ( rule__ACIDMitigation__Group__0 )
+ // InternalFlaDsl.g:477:2: rule__ACIDMitigation__Group__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__ACIDMitigation__Group__0();
+
+ state._fsp--;
+
+
+ }
+
+ after(grammarAccess.getACIDMitigationAccess().getGroup());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleACIDMitigation"
+
+
+ // $ANTLR start "ruleActualFailureType"
+ // InternalFlaDsl.g:494:1: ruleActualFailureType : ( ( rule__ActualFailureType__Alternatives ) ) ;
+ public final void ruleActualFailureType() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:498:1: ( ( ( rule__ActualFailureType__Alternatives ) ) )
+ // InternalFlaDsl.g:499:1: ( ( rule__ActualFailureType__Alternatives ) )
+ {
+ // InternalFlaDsl.g:499:1: ( ( rule__ActualFailureType__Alternatives ) )
+ // InternalFlaDsl.g:500:1: ( rule__ActualFailureType__Alternatives )
+ {
+ before(grammarAccess.getActualFailureTypeAccess().getAlternatives());
+ // InternalFlaDsl.g:501:1: ( rule__ActualFailureType__Alternatives )
+ // InternalFlaDsl.g:501:2: rule__ActualFailureType__Alternatives
+ {
+ pushFollow(FOLLOW_2);
+ rule__ActualFailureType__Alternatives();
+
+ state._fsp--;
+
+
+ }
+
+ after(grammarAccess.getActualFailureTypeAccess().getAlternatives());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleActualFailureType"
+
+
+ // $ANTLR start "ruleAavoidable"
+ // InternalFlaDsl.g:517:1: ruleAavoidable : ( ( rule__Aavoidable__Alternatives ) ) ;
+ public final void ruleAavoidable() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:521:1: ( ( ( rule__Aavoidable__Alternatives ) ) )
+ // InternalFlaDsl.g:522:1: ( ( rule__Aavoidable__Alternatives ) )
+ {
+ // InternalFlaDsl.g:522:1: ( ( rule__Aavoidable__Alternatives ) )
+ // InternalFlaDsl.g:523:1: ( rule__Aavoidable__Alternatives )
+ {
+ before(grammarAccess.getAavoidableAccess().getAlternatives());
+ // InternalFlaDsl.g:524:1: ( rule__Aavoidable__Alternatives )
+ // InternalFlaDsl.g:524:2: rule__Aavoidable__Alternatives
+ {
+ pushFollow(FOLLOW_2);
+ rule__Aavoidable__Alternatives();
+
+ state._fsp--;
+
+
+ }
+
+ after(grammarAccess.getAavoidableAccess().getAlternatives());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleAavoidable"
+
+
+ // $ANTLR start "ruleCavoidable"
+ // InternalFlaDsl.g:536:1: ruleCavoidable : ( ( rule__Cavoidable__Alternatives ) ) ;
+ public final void ruleCavoidable() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:540:1: ( ( ( rule__Cavoidable__Alternatives ) ) )
+ // InternalFlaDsl.g:541:1: ( ( rule__Cavoidable__Alternatives ) )
+ {
+ // InternalFlaDsl.g:541:1: ( ( rule__Cavoidable__Alternatives ) )
+ // InternalFlaDsl.g:542:1: ( rule__Cavoidable__Alternatives )
+ {
+ before(grammarAccess.getCavoidableAccess().getAlternatives());
+ // InternalFlaDsl.g:543:1: ( rule__Cavoidable__Alternatives )
+ // InternalFlaDsl.g:543:2: rule__Cavoidable__Alternatives
+ {
+ pushFollow(FOLLOW_2);
+ rule__Cavoidable__Alternatives();
+
+ state._fsp--;
+
+
+ }
+
+ after(grammarAccess.getCavoidableAccess().getAlternatives());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleCavoidable"
+
+
+ // $ANTLR start "ruleIavoidable"
+ // InternalFlaDsl.g:555:1: ruleIavoidable : ( ( rule__Iavoidable__Alternatives ) ) ;
+ public final void ruleIavoidable() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:559:1: ( ( ( rule__Iavoidable__Alternatives ) ) )
+ // InternalFlaDsl.g:560:1: ( ( rule__Iavoidable__Alternatives ) )
+ {
+ // InternalFlaDsl.g:560:1: ( ( rule__Iavoidable__Alternatives ) )
+ // InternalFlaDsl.g:561:1: ( rule__Iavoidable__Alternatives )
+ {
+ before(grammarAccess.getIavoidableAccess().getAlternatives());
+ // InternalFlaDsl.g:562:1: ( rule__Iavoidable__Alternatives )
+ // InternalFlaDsl.g:562:2: rule__Iavoidable__Alternatives
+ {
+ pushFollow(FOLLOW_2);
+ rule__Iavoidable__Alternatives();
+
+ state._fsp--;
+
+
+ }
+
+ after(grammarAccess.getIavoidableAccess().getAlternatives());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleIavoidable"
+
+
+ // $ANTLR start "ruleDavoidable"
+ // InternalFlaDsl.g:574:1: ruleDavoidable : ( ( rule__Davoidable__Alternatives ) ) ;
+ public final void ruleDavoidable() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:578:1: ( ( ( rule__Davoidable__Alternatives ) ) )
+ // InternalFlaDsl.g:579:1: ( ( rule__Davoidable__Alternatives ) )
+ {
+ // InternalFlaDsl.g:579:1: ( ( rule__Davoidable__Alternatives ) )
+ // InternalFlaDsl.g:580:1: ( rule__Davoidable__Alternatives )
+ {
+ before(grammarAccess.getDavoidableAccess().getAlternatives());
+ // InternalFlaDsl.g:581:1: ( rule__Davoidable__Alternatives )
+ // InternalFlaDsl.g:581:2: rule__Davoidable__Alternatives
+ {
+ pushFollow(FOLLOW_2);
+ rule__Davoidable__Alternatives();
+
+ state._fsp--;
+
+
+ }
+
+ after(grammarAccess.getDavoidableAccess().getAlternatives());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleDavoidable"
+
+
+ // $ANTLR start "ruleAmitigation"
+ // InternalFlaDsl.g:593:1: ruleAmitigation : ( ( rule__Amitigation__Alternatives ) ) ;
+ public final void ruleAmitigation() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:597:1: ( ( ( rule__Amitigation__Alternatives ) ) )
+ // InternalFlaDsl.g:598:1: ( ( rule__Amitigation__Alternatives ) )
+ {
+ // InternalFlaDsl.g:598:1: ( ( rule__Amitigation__Alternatives ) )
+ // InternalFlaDsl.g:599:1: ( rule__Amitigation__Alternatives )
+ {
+ before(grammarAccess.getAmitigationAccess().getAlternatives());
+ // InternalFlaDsl.g:600:1: ( rule__Amitigation__Alternatives )
+ // InternalFlaDsl.g:600:2: rule__Amitigation__Alternatives
+ {
+ pushFollow(FOLLOW_2);
+ rule__Amitigation__Alternatives();
+
+ state._fsp--;
+
+
+ }
+
+ after(grammarAccess.getAmitigationAccess().getAlternatives());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleAmitigation"
+
+
+ // $ANTLR start "ruleCmitigation"
+ // InternalFlaDsl.g:612:1: ruleCmitigation : ( ( rule__Cmitigation__Alternatives ) ) ;
+ public final void ruleCmitigation() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:616:1: ( ( ( rule__Cmitigation__Alternatives ) ) )
+ // InternalFlaDsl.g:617:1: ( ( rule__Cmitigation__Alternatives ) )
+ {
+ // InternalFlaDsl.g:617:1: ( ( rule__Cmitigation__Alternatives ) )
+ // InternalFlaDsl.g:618:1: ( rule__Cmitigation__Alternatives )
+ {
+ before(grammarAccess.getCmitigationAccess().getAlternatives());
+ // InternalFlaDsl.g:619:1: ( rule__Cmitigation__Alternatives )
+ // InternalFlaDsl.g:619:2: rule__Cmitigation__Alternatives
+ {
+ pushFollow(FOLLOW_2);
+ rule__Cmitigation__Alternatives();
+
+ state._fsp--;
+
+
+ }
+
+ after(grammarAccess.getCmitigationAccess().getAlternatives());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleCmitigation"
+
+
+ // $ANTLR start "ruleImitigation"
+ // InternalFlaDsl.g:631:1: ruleImitigation : ( ( rule__Imitigation__Alternatives ) ) ;
+ public final void ruleImitigation() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:635:1: ( ( ( rule__Imitigation__Alternatives ) ) )
+ // InternalFlaDsl.g:636:1: ( ( rule__Imitigation__Alternatives ) )
+ {
+ // InternalFlaDsl.g:636:1: ( ( rule__Imitigation__Alternatives ) )
+ // InternalFlaDsl.g:637:1: ( rule__Imitigation__Alternatives )
+ {
+ before(grammarAccess.getImitigationAccess().getAlternatives());
+ // InternalFlaDsl.g:638:1: ( rule__Imitigation__Alternatives )
+ // InternalFlaDsl.g:638:2: rule__Imitigation__Alternatives
+ {
+ pushFollow(FOLLOW_2);
+ rule__Imitigation__Alternatives();
+
+ state._fsp--;
+
+
+ }
+
+ after(grammarAccess.getImitigationAccess().getAlternatives());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleImitigation"
+
+
+ // $ANTLR start "ruleDmitigation"
+ // InternalFlaDsl.g:650:1: ruleDmitigation : ( ( rule__Dmitigation__Alternatives ) ) ;
+ public final void ruleDmitigation() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:654:1: ( ( ( rule__Dmitigation__Alternatives ) ) )
+ // InternalFlaDsl.g:655:1: ( ( rule__Dmitigation__Alternatives ) )
+ {
+ // InternalFlaDsl.g:655:1: ( ( rule__Dmitigation__Alternatives ) )
+ // InternalFlaDsl.g:656:1: ( rule__Dmitigation__Alternatives )
+ {
+ before(grammarAccess.getDmitigationAccess().getAlternatives());
+ // InternalFlaDsl.g:657:1: ( rule__Dmitigation__Alternatives )
+ // InternalFlaDsl.g:657:2: rule__Dmitigation__Alternatives
+ {
+ pushFollow(FOLLOW_2);
+ rule__Dmitigation__Alternatives();
+
+ state._fsp--;
+
+
+ }
+
+ after(grammarAccess.getDmitigationAccess().getAlternatives());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleDmitigation"
+
+
+ // $ANTLR start "rule__InputExpression__Alternatives_0"
+ // InternalFlaDsl.g:668:1: rule__InputExpression__Alternatives_0 : ( ( ( rule__InputExpression__RefAssignment_0_0 ) ) | ( 'undefined' ) );
+ public final void rule__InputExpression__Alternatives_0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:672:1: ( ( ( rule__InputExpression__RefAssignment_0_0 ) ) | ( 'undefined' ) )
+ int alt2=2;
+ int LA2_0 = input.LA(1);
+
+ if ( (LA2_0==RULE_ID) ) {
+ alt2=1;
+ }
+ else if ( (LA2_0==11) ) {
+ alt2=2;
+ }
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("", 2, 0, input);
+
+ throw nvae;
+ }
+ switch (alt2) {
+ case 1 :
+ // InternalFlaDsl.g:673:1: ( ( rule__InputExpression__RefAssignment_0_0 ) )
+ {
+ // InternalFlaDsl.g:673:1: ( ( rule__InputExpression__RefAssignment_0_0 ) )
+ // InternalFlaDsl.g:674:1: ( rule__InputExpression__RefAssignment_0_0 )
+ {
+ before(grammarAccess.getInputExpressionAccess().getRefAssignment_0_0());
+ // InternalFlaDsl.g:675:1: ( rule__InputExpression__RefAssignment_0_0 )
+ // InternalFlaDsl.g:675:2: rule__InputExpression__RefAssignment_0_0
+ {
+ pushFollow(FOLLOW_2);
+ rule__InputExpression__RefAssignment_0_0();
+
+ state._fsp--;
+
+
+ }
+
+ after(grammarAccess.getInputExpressionAccess().getRefAssignment_0_0());
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // InternalFlaDsl.g:679:6: ( 'undefined' )
+ {
+ // InternalFlaDsl.g:679:6: ( 'undefined' )
+ // InternalFlaDsl.g:680:1: 'undefined'
+ {
+ before(grammarAccess.getInputExpressionAccess().getUndefinedKeyword_0_1());
+ match(input,11,FOLLOW_2);
+ after(grammarAccess.getInputExpressionAccess().getUndefinedKeyword_0_1());
+
+ }
+
+
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__InputExpression__Alternatives_0"
+
+
+ // $ANTLR start "rule__OutputExpression__Alternatives_0"
+ // InternalFlaDsl.g:692:1: rule__OutputExpression__Alternatives_0 : ( ( ( rule__OutputExpression__RefAssignment_0_0 ) ) | ( 'undefined' ) );
+ public final void rule__OutputExpression__Alternatives_0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:696:1: ( ( ( rule__OutputExpression__RefAssignment_0_0 ) ) | ( 'undefined' ) )
+ int alt3=2;
+ int LA3_0 = input.LA(1);
+
+ if ( (LA3_0==RULE_ID) ) {
+ alt3=1;
+ }
+ else if ( (LA3_0==11) ) {
+ alt3=2;
+ }
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("", 3, 0, input);
+
+ throw nvae;
+ }
+ switch (alt3) {
+ case 1 :
+ // InternalFlaDsl.g:697:1: ( ( rule__OutputExpression__RefAssignment_0_0 ) )
+ {
+ // InternalFlaDsl.g:697:1: ( ( rule__OutputExpression__RefAssignment_0_0 ) )
+ // InternalFlaDsl.g:698:1: ( rule__OutputExpression__RefAssignment_0_0 )
+ {
+ before(grammarAccess.getOutputExpressionAccess().getRefAssignment_0_0());
+ // InternalFlaDsl.g:699:1: ( rule__OutputExpression__RefAssignment_0_0 )
+ // InternalFlaDsl.g:699:2: rule__OutputExpression__RefAssignment_0_0
+ {
+ pushFollow(FOLLOW_2);
+ rule__OutputExpression__RefAssignment_0_0();
+
+ state._fsp--;
+
+
+ }
+
+ after(grammarAccess.getOutputExpressionAccess().getRefAssignment_0_0());
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // InternalFlaDsl.g:703:6: ( 'undefined' )
+ {
+ // InternalFlaDsl.g:703:6: ( 'undefined' )
+ // InternalFlaDsl.g:704:1: 'undefined'
+ {
+ before(grammarAccess.getOutputExpressionAccess().getUndefinedKeyword_0_1());
+ match(input,11,FOLLOW_2);
+ after(grammarAccess.getOutputExpressionAccess().getUndefinedKeyword_0_1());
+
+ }
+
+
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__OutputExpression__Alternatives_0"
+
+
+ // $ANTLR start "rule__InFailureExpr__Alternatives"
+ // InternalFlaDsl.g:716:1: rule__InFailureExpr__Alternatives : ( ( ( rule__InFailureExpr__FailuresAssignment_0 ) ) | ( ( rule__InFailureExpr__FailuresAssignment_1 ) ) | ( ( rule__InFailureExpr__FailuresAssignment_2 ) ) | ( ( rule__InFailureExpr__Group_3__0 ) ) | ( ( rule__InFailureExpr__FailuresAssignment_4 ) ) );
+ public final void rule__InFailureExpr__Alternatives() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:720:1: ( ( ( rule__InFailureExpr__FailuresAssignment_0 ) ) | ( ( rule__InFailureExpr__FailuresAssignment_1 ) ) | ( ( rule__InFailureExpr__FailuresAssignment_2 ) ) | ( ( rule__InFailureExpr__Group_3__0 ) ) | ( ( rule__InFailureExpr__FailuresAssignment_4 ) ) )
+ int alt4=5;
+ switch ( input.LA(1) ) {
+ case 40:
+ {
+ alt4=1;
+ }
+ break;
+ case 39:
+ {
+ alt4=2;
+ }
+ break;
+ case 12:
+ case 13:
+ case 14:
+ case 15:
+ case 16:
+ case 17:
+ {
+ alt4=3;
+ }
+ break;
+ case 37:
+ {
+ alt4=4;
+ }
+ break;
+ case RULE_ID:
+ {
+ alt4=5;
+ }
+ break;
+ default:
+ NoViableAltException nvae =
+ new NoViableAltException("", 4, 0, input);
+
+ throw nvae;
+ }
+
+ switch (alt4) {
+ case 1 :
+ // InternalFlaDsl.g:721:1: ( ( rule__InFailureExpr__FailuresAssignment_0 ) )
+ {
+ // InternalFlaDsl.g:721:1: ( ( rule__InFailureExpr__FailuresAssignment_0 ) )
+ // InternalFlaDsl.g:722:1: ( rule__InFailureExpr__FailuresAssignment_0 )
+ {
+ before(grammarAccess.getInFailureExprAccess().getFailuresAssignment_0());
+ // InternalFlaDsl.g:723:1: ( rule__InFailureExpr__FailuresAssignment_0 )
+ // InternalFlaDsl.g:723:2: rule__InFailureExpr__FailuresAssignment_0
+ {
+ pushFollow(FOLLOW_2);
+ rule__InFailureExpr__FailuresAssignment_0();
+
+ state._fsp--;
+
+
+ }
+
+ after(grammarAccess.getInFailureExprAccess().getFailuresAssignment_0());
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // InternalFlaDsl.g:727:6: ( ( rule__InFailureExpr__FailuresAssignment_1 ) )
+ {
+ // InternalFlaDsl.g:727:6: ( ( rule__InFailureExpr__FailuresAssignment_1 ) )
+ // InternalFlaDsl.g:728:1: ( rule__InFailureExpr__FailuresAssignment_1 )
+ {
+ before(grammarAccess.getInFailureExprAccess().getFailuresAssignment_1());
+ // InternalFlaDsl.g:729:1: ( rule__InFailureExpr__FailuresAssignment_1 )
+ // InternalFlaDsl.g:729:2: rule__InFailureExpr__FailuresAssignment_1
+ {
+ pushFollow(FOLLOW_2);
+ rule__InFailureExpr__FailuresAssignment_1();
+
+ state._fsp--;
+
+
+ }
+
+ after(grammarAccess.getInFailureExprAccess().getFailuresAssignment_1());
+
+ }
+
+
+ }
+ break;
+ case 3 :
+ // InternalFlaDsl.g:733:6: ( ( rule__InFailureExpr__FailuresAssignment_2 ) )
+ {
+ // InternalFlaDsl.g:733:6: ( ( rule__InFailureExpr__FailuresAssignment_2 ) )
+ // InternalFlaDsl.g:734:1: ( rule__InFailureExpr__FailuresAssignment_2 )
+ {
+ before(grammarAccess.getInFailureExprAccess().getFailuresAssignment_2());
+ // InternalFlaDsl.g:735:1: ( rule__InFailureExpr__FailuresAssignment_2 )
+ // InternalFlaDsl.g:735:2: rule__InFailureExpr__FailuresAssignment_2
+ {
+ pushFollow(FOLLOW_2);
+ rule__InFailureExpr__FailuresAssignment_2();
+
+ state._fsp--;
+
+
+ }
+
+ after(grammarAccess.getInFailureExprAccess().getFailuresAssignment_2());
+
+ }
+
+
+ }
+ break;
+ case 4 :
+ // InternalFlaDsl.g:739:6: ( ( rule__InFailureExpr__Group_3__0 ) )
+ {
+ // InternalFlaDsl.g:739:6: ( ( rule__InFailureExpr__Group_3__0 ) )
+ // InternalFlaDsl.g:740:1: ( rule__InFailureExpr__Group_3__0 )
+ {
+ before(grammarAccess.getInFailureExprAccess().getGroup_3());
+ // InternalFlaDsl.g:741:1: ( rule__InFailureExpr__Group_3__0 )
+ // InternalFlaDsl.g:741:2: rule__InFailureExpr__Group_3__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__InFailureExpr__Group_3__0();
+
+ state._fsp--;
+
+
+ }
+
+ after(grammarAccess.getInFailureExprAccess().getGroup_3());
+
+ }
+
+
+ }
+ break;
+ case 5 :
+ // InternalFlaDsl.g:745:6: ( ( rule__InFailureExpr__FailuresAssignment_4 ) )
+ {
+ // InternalFlaDsl.g:745:6: ( ( rule__InFailureExpr__FailuresAssignment_4 ) )
+ // InternalFlaDsl.g:746:1: ( rule__InFailureExpr__FailuresAssignment_4 )
+ {
+ before(grammarAccess.getInFailureExprAccess().getFailuresAssignment_4());
+ // InternalFlaDsl.g:747:1: ( rule__InFailureExpr__FailuresAssignment_4 )
+ // InternalFlaDsl.g:747:2: rule__InFailureExpr__FailuresAssignment_4
+ {
+ pushFollow(FOLLOW_2);
+ rule__InFailureExpr__FailuresAssignment_4();
+
+ state._fsp--;
+
+
+ }
+
+ after(grammarAccess.getInFailureExprAccess().getFailuresAssignment_4());
+
+ }
+
+
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__InFailureExpr__Alternatives"
+
+
+ // $ANTLR start "rule__OutFailureExpr__Alternatives"
+ // InternalFlaDsl.g:756:1: rule__OutFailureExpr__Alternatives : ( ( ( rule__OutFailureExpr__FailuresAssignment_0 ) ) | ( ( rule__OutFailureExpr__FailuresAssignment_1 ) ) | ( ( rule__OutFailureExpr__FailuresAssignment_2 ) ) | ( ( rule__OutFailureExpr__Group_3__0 ) ) | ( ( rule__OutFailureExpr__FailuresAssignment_4 ) ) );
+ public final void rule__OutFailureExpr__Alternatives() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:760:1: ( ( ( rule__OutFailureExpr__FailuresAssignment_0 ) ) | ( ( rule__OutFailureExpr__FailuresAssignment_1 ) ) | ( ( rule__OutFailureExpr__FailuresAssignment_2 ) ) | ( ( rule__OutFailureExpr__Group_3__0 ) ) | ( ( rule__OutFailureExpr__FailuresAssignment_4 ) ) )
+ int alt5=5;
+ switch ( input.LA(1) ) {
+ case 39:
+ {
+ int LA5_1 = input.LA(2);
+
+ if ( (LA5_1==EOF||(LA5_1>=34 && LA5_1<=35)) ) {
+ alt5=1;
+ }
+ else if ( (LA5_1==36) ) {
+ alt5=2;
+ }
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("", 5, 1, input);
+
+ throw nvae;
+ }
+ }
+ break;
+ case 12:
+ case 13:
+ case 14:
+ case 15:
+ case 16:
+ case 17:
+ {
+ alt5=3;
+ }
+ break;
+ case 37:
+ {
+ alt5=4;
+ }
+ break;
+ case RULE_ID:
+ {
+ alt5=5;
+ }
+ break;
+ default:
+ NoViableAltException nvae =
+ new NoViableAltException("", 5, 0, input);
+
+ throw nvae;
+ }
+
+ switch (alt5) {
+ case 1 :
+ // InternalFlaDsl.g:761:1: ( ( rule__OutFailureExpr__FailuresAssignment_0 ) )
+ {
+ // InternalFlaDsl.g:761:1: ( ( rule__OutFailureExpr__FailuresAssignment_0 ) )
+ // InternalFlaDsl.g:762:1: ( rule__OutFailureExpr__FailuresAssignment_0 )
+ {
+ before(grammarAccess.getOutFailureExprAccess().getFailuresAssignment_0());
+ // InternalFlaDsl.g:763:1: ( rule__OutFailureExpr__FailuresAssignment_0 )
+ // InternalFlaDsl.g:763:2: rule__OutFailureExpr__FailuresAssignment_0
+ {
+ pushFollow(FOLLOW_2);
+ rule__OutFailureExpr__FailuresAssignment_0();
+
+ state._fsp--;
+
+
+ }
+
+ after(grammarAccess.getOutFailureExprAccess().getFailuresAssignment_0());
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // InternalFlaDsl.g:767:6: ( ( rule__OutFailureExpr__FailuresAssignment_1 ) )
+ {
+ // InternalFlaDsl.g:767:6: ( ( rule__OutFailureExpr__FailuresAssignment_1 ) )
+ // InternalFlaDsl.g:768:1: ( rule__OutFailureExpr__FailuresAssignment_1 )
+ {
+ before(grammarAccess.getOutFailureExprAccess().getFailuresAssignment_1());
+ // InternalFlaDsl.g:769:1: ( rule__OutFailureExpr__FailuresAssignment_1 )
+ // InternalFlaDsl.g:769:2: rule__OutFailureExpr__FailuresAssignment_1
+ {
+ pushFollow(FOLLOW_2);
+ rule__OutFailureExpr__FailuresAssignment_1();
+
+ state._fsp--;
+
+
+ }
+
+ after(grammarAccess.getOutFailureExprAccess().getFailuresAssignment_1());
+
+ }
+
+
+ }
+ break;
+ case 3 :
+ // InternalFlaDsl.g:773:6: ( ( rule__OutFailureExpr__FailuresAssignment_2 ) )
+ {
+ // InternalFlaDsl.g:773:6: ( ( rule__OutFailureExpr__FailuresAssignment_2 ) )
+ // InternalFlaDsl.g:774:1: ( rule__OutFailureExpr__FailuresAssignment_2 )
+ {
+ before(grammarAccess.getOutFailureExprAccess().getFailuresAssignment_2());
+ // InternalFlaDsl.g:775:1: ( rule__OutFailureExpr__FailuresAssignment_2 )
+ // InternalFlaDsl.g:775:2: rule__OutFailureExpr__FailuresAssignment_2
+ {
+ pushFollow(FOLLOW_2);
+ rule__OutFailureExpr__FailuresAssignment_2();
+
+ state._fsp--;
+
+
+ }
+
+ after(grammarAccess.getOutFailureExprAccess().getFailuresAssignment_2());
+
+ }
+
+
+ }
+ break;
+ case 4 :
+ // InternalFlaDsl.g:779:6: ( ( rule__OutFailureExpr__Group_3__0 ) )
+ {
+ // InternalFlaDsl.g:779:6: ( ( rule__OutFailureExpr__Group_3__0 ) )
+ // InternalFlaDsl.g:780:1: ( rule__OutFailureExpr__Group_3__0 )
+ {
+ before(grammarAccess.getOutFailureExprAccess().getGroup_3());
+ // InternalFlaDsl.g:781:1: ( rule__OutFailureExpr__Group_3__0 )
+ // InternalFlaDsl.g:781:2: rule__OutFailureExpr__Group_3__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__OutFailureExpr__Group_3__0();
+
+ state._fsp--;
+
+
+ }
+
+ after(grammarAccess.getOutFailureExprAccess().getGroup_3());
+
+ }
+
+
+ }
+ break;
+ case 5 :
+ // InternalFlaDsl.g:785:6: ( ( rule__OutFailureExpr__FailuresAssignment_4 ) )
+ {
+ // InternalFlaDsl.g:785:6: ( ( rule__OutFailureExpr__FailuresAssignment_4 ) )
+ // InternalFlaDsl.g:786:1: ( rule__OutFailureExpr__FailuresAssignment_4 )
+ {
+ before(grammarAccess.getOutFailureExprAccess().getFailuresAssignment_4());
+ // InternalFlaDsl.g:787:1: ( rule__OutFailureExpr__FailuresAssignment_4 )
+ // InternalFlaDsl.g:787:2: rule__OutFailureExpr__FailuresAssignment_4
+ {
+ pushFollow(FOLLOW_2);
+ rule__OutFailureExpr__FailuresAssignment_4();
+
+ state._fsp--;
+
+
+ }
+
+ after(grammarAccess.getOutFailureExprAccess().getFailuresAssignment_4());
+
+ }
+
+
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__OutFailureExpr__Alternatives"
+
+
+ // $ANTLR start "rule__ActualFailureType__Alternatives"
+ // InternalFlaDsl.g:798:1: rule__ActualFailureType__Alternatives : ( ( ( 'early' ) ) | ( ( 'late' ) ) | ( ( 'commission' ) ) | ( ( 'omission' ) ) | ( ( 'valueSubtle' ) ) | ( ( 'valueCoarse' ) ) );
+ public final void rule__ActualFailureType__Alternatives() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:802:1: ( ( ( 'early' ) ) | ( ( 'late' ) ) | ( ( 'commission' ) ) | ( ( 'omission' ) ) | ( ( 'valueSubtle' ) ) | ( ( 'valueCoarse' ) ) )
+ int alt6=6;
+ switch ( input.LA(1) ) {
+ case 12:
+ {
+ alt6=1;
+ }
+ break;
+ case 13:
+ {
+ alt6=2;
+ }
+ break;
+ case 14:
+ {
+ alt6=3;
+ }
+ break;
+ case 15:
+ {
+ alt6=4;
+ }
+ break;
+ case 16:
+ {
+ alt6=5;
+ }
+ break;
+ case 17:
+ {
+ alt6=6;
+ }
+ break;
+ default:
+ NoViableAltException nvae =
+ new NoViableAltException("", 6, 0, input);
+
+ throw nvae;
+ }
+
+ switch (alt6) {
+ case 1 :
+ // InternalFlaDsl.g:803:1: ( ( 'early' ) )
+ {
+ // InternalFlaDsl.g:803:1: ( ( 'early' ) )
+ // InternalFlaDsl.g:804:1: ( 'early' )
+ {
+ before(grammarAccess.getActualFailureTypeAccess().getEARLYEnumLiteralDeclaration_0());
+ // InternalFlaDsl.g:805:1: ( 'early' )
+ // InternalFlaDsl.g:805:3: 'early'
+ {
+ match(input,12,FOLLOW_2);
+
+ }
+
+ after(grammarAccess.getActualFailureTypeAccess().getEARLYEnumLiteralDeclaration_0());
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // InternalFlaDsl.g:810:6: ( ( 'late' ) )
+ {
+ // InternalFlaDsl.g:810:6: ( ( 'late' ) )
+ // InternalFlaDsl.g:811:1: ( 'late' )
+ {
+ before(grammarAccess.getActualFailureTypeAccess().getLATEEnumLiteralDeclaration_1());
+ // InternalFlaDsl.g:812:1: ( 'late' )
+ // InternalFlaDsl.g:812:3: 'late'
+ {
+ match(input,13,FOLLOW_2);
+
+ }
+
+ after(grammarAccess.getActualFailureTypeAccess().getLATEEnumLiteralDeclaration_1());
+
+ }
+
+
+ }
+ break;
+ case 3 :
+ // InternalFlaDsl.g:817:6: ( ( 'commission' ) )
+ {
+ // InternalFlaDsl.g:817:6: ( ( 'commission' ) )
+ // InternalFlaDsl.g:818:1: ( 'commission' )
+ {
+ before(grammarAccess.getActualFailureTypeAccess().getCOMMISSIONEnumLiteralDeclaration_2());
+ // InternalFlaDsl.g:819:1: ( 'commission' )
+ // InternalFlaDsl.g:819:3: 'commission'
+ {
+ match(input,14,FOLLOW_2);
+
+ }
+
+ after(grammarAccess.getActualFailureTypeAccess().getCOMMISSIONEnumLiteralDeclaration_2());
+
+ }
+
+
+ }
+ break;
+ case 4 :
+ // InternalFlaDsl.g:824:6: ( ( 'omission' ) )
+ {
+ // InternalFlaDsl.g:824:6: ( ( 'omission' ) )
+ // InternalFlaDsl.g:825:1: ( 'omission' )
+ {
+ before(grammarAccess.getActualFailureTypeAccess().getOMISSIONEnumLiteralDeclaration_3());
+ // InternalFlaDsl.g:826:1: ( 'omission' )
+ // InternalFlaDsl.g:826:3: 'omission'
+ {
+ match(input,15,FOLLOW_2);
+
+ }
+
+ after(grammarAccess.getActualFailureTypeAccess().getOMISSIONEnumLiteralDeclaration_3());
+
+ }
+
+
+ }
+ break;
+ case 5 :
+ // InternalFlaDsl.g:831:6: ( ( 'valueSubtle' ) )
+ {
+ // InternalFlaDsl.g:831:6: ( ( 'valueSubtle' ) )
+ // InternalFlaDsl.g:832:1: ( 'valueSubtle' )
+ {
+ before(grammarAccess.getActualFailureTypeAccess().getVALUE_SUBTLEEnumLiteralDeclaration_4());
+ // InternalFlaDsl.g:833:1: ( 'valueSubtle' )
+ // InternalFlaDsl.g:833:3: 'valueSubtle'
+ {
+ match(input,16,FOLLOW_2);
+
+ }
+
+ after(grammarAccess.getActualFailureTypeAccess().getVALUE_SUBTLEEnumLiteralDeclaration_4());
+
+ }
+
+
+ }
+ break;
+ case 6 :
+ // InternalFlaDsl.g:838:6: ( ( 'valueCoarse' ) )
+ {
+ // InternalFlaDsl.g:838:6: ( ( 'valueCoarse' ) )
+ // InternalFlaDsl.g:839:1: ( 'valueCoarse' )
+ {
+ before(grammarAccess.getActualFailureTypeAccess().getVALUE_COARSEEnumLiteralDeclaration_5());
+ // InternalFlaDsl.g:840:1: ( 'valueCoarse' )
+ // InternalFlaDsl.g:840:3: 'valueCoarse'
+ {
+ match(input,17,FOLLOW_2);
+
+ }
+
+ after(grammarAccess.getActualFailureTypeAccess().getVALUE_COARSEEnumLiteralDeclaration_5());
+
+ }
+
+
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ActualFailureType__Alternatives"
+
+
+ // $ANTLR start "rule__Aavoidable__Alternatives"
+ // InternalFlaDsl.g:850:1: rule__Aavoidable__Alternatives : ( ( ( 'incompletion' ) ) | ( ( 'none' ) ) | ( ( 'unspecified' ) ) );
+ public final void rule__Aavoidable__Alternatives() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:854:1: ( ( ( 'incompletion' ) ) | ( ( 'none' ) ) | ( ( 'unspecified' ) ) )
+ int alt7=3;
+ switch ( input.LA(1) ) {
+ case 18:
+ {
+ alt7=1;
+ }
+ break;
+ case 19:
+ {
+ alt7=2;
+ }
+ break;
+ case 20:
+ {
+ alt7=3;
+ }
+ break;
+ default:
+ NoViableAltException nvae =
+ new NoViableAltException("", 7, 0, input);
+
+ throw nvae;
+ }
+
+ switch (alt7) {
+ case 1 :
+ // InternalFlaDsl.g:855:1: ( ( 'incompletion' ) )
+ {
+ // InternalFlaDsl.g:855:1: ( ( 'incompletion' ) )
+ // InternalFlaDsl.g:856:1: ( 'incompletion' )
+ {
+ before(grammarAccess.getAavoidableAccess().getINCOMPLETIONEnumLiteralDeclaration_0());
+ // InternalFlaDsl.g:857:1: ( 'incompletion' )
+ // InternalFlaDsl.g:857:3: 'incompletion'
+ {
+ match(input,18,FOLLOW_2);
+
+ }
+
+ after(grammarAccess.getAavoidableAccess().getINCOMPLETIONEnumLiteralDeclaration_0());
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // InternalFlaDsl.g:862:6: ( ( 'none' ) )
+ {
+ // InternalFlaDsl.g:862:6: ( ( 'none' ) )
+ // InternalFlaDsl.g:863:1: ( 'none' )
+ {
+ before(grammarAccess.getAavoidableAccess().getNONEEnumLiteralDeclaration_1());
+ // InternalFlaDsl.g:864:1: ( 'none' )
+ // InternalFlaDsl.g:864:3: 'none'
+ {
+ match(input,19,FOLLOW_2);
+
+ }
+
+ after(grammarAccess.getAavoidableAccess().getNONEEnumLiteralDeclaration_1());
+
+ }
+
+
+ }
+ break;
+ case 3 :
+ // InternalFlaDsl.g:869:6: ( ( 'unspecified' ) )
+ {
+ // InternalFlaDsl.g:869:6: ( ( 'unspecified' ) )
+ // InternalFlaDsl.g:870:1: ( 'unspecified' )
+ {
+ before(grammarAccess.getAavoidableAccess().getUNSPECIFIEDEnumLiteralDeclaration_2());
+ // InternalFlaDsl.g:871:1: ( 'unspecified' )
+ // InternalFlaDsl.g:871:3: 'unspecified'
+ {
+ match(input,20,FOLLOW_2);
+
+ }
+
+ after(grammarAccess.getAavoidableAccess().getUNSPECIFIEDEnumLiteralDeclaration_2());
+
+ }
+
+
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Aavoidable__Alternatives"
+
+
+ // $ANTLR start "rule__Cavoidable__Alternatives"
+ // InternalFlaDsl.g:881:1: rule__Cavoidable__Alternatives : ( ( ( 'inconsistency' ) ) | ( ( 'none' ) ) | ( ( 'unspecified' ) ) );
+ public final void rule__Cavoidable__Alternatives() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:885:1: ( ( ( 'inconsistency' ) ) | ( ( 'none' ) ) | ( ( 'unspecified' ) ) )
+ int alt8=3;
+ switch ( input.LA(1) ) {
+ case 21:
+ {
+ alt8=1;
+ }
+ break;
+ case 19:
+ {
+ alt8=2;
+ }
+ break;
+ case 20:
+ {
+ alt8=3;
+ }
+ break;
+ default:
+ NoViableAltException nvae =
+ new NoViableAltException("", 8, 0, input);
+
+ throw nvae;
+ }
+
+ switch (alt8) {
+ case 1 :
+ // InternalFlaDsl.g:886:1: ( ( 'inconsistency' ) )
+ {
+ // InternalFlaDsl.g:886:1: ( ( 'inconsistency' ) )
+ // InternalFlaDsl.g:887:1: ( 'inconsistency' )
+ {
+ before(grammarAccess.getCavoidableAccess().getINCONSISTENCYEnumLiteralDeclaration_0());
+ // InternalFlaDsl.g:888:1: ( 'inconsistency' )
+ // InternalFlaDsl.g:888:3: 'inconsistency'
+ {
+ match(input,21,FOLLOW_2);
+
+ }
+
+ after(grammarAccess.getCavoidableAccess().getINCONSISTENCYEnumLiteralDeclaration_0());
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // InternalFlaDsl.g:893:6: ( ( 'none' ) )
+ {
+ // InternalFlaDsl.g:893:6: ( ( 'none' ) )
+ // InternalFlaDsl.g:894:1: ( 'none' )
+ {
+ before(grammarAccess.getCavoidableAccess().getNONEEnumLiteralDeclaration_1());
+ // InternalFlaDsl.g:895:1: ( 'none' )
+ // InternalFlaDsl.g:895:3: 'none'
+ {
+ match(input,19,FOLLOW_2);
+
+ }
+
+ after(grammarAccess.getCavoidableAccess().getNONEEnumLiteralDeclaration_1());
+
+ }
+
+
+ }
+ break;
+ case 3 :
+ // InternalFlaDsl.g:900:6: ( ( 'unspecified' ) )
+ {
+ // InternalFlaDsl.g:900:6: ( ( 'unspecified' ) )
+ // InternalFlaDsl.g:901:1: ( 'unspecified' )
+ {
+ before(grammarAccess.getCavoidableAccess().getUNSPECIFIEDEnumLiteralDeclaration_2());
+ // InternalFlaDsl.g:902:1: ( 'unspecified' )
+ // InternalFlaDsl.g:902:3: 'unspecified'
+ {
+ match(input,20,FOLLOW_2);
+
+ }
+
+ after(grammarAccess.getCavoidableAccess().getUNSPECIFIEDEnumLiteralDeclaration_2());
+
+ }
+
+
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Cavoidable__Alternatives"
+
+
+ // $ANTLR start "rule__Iavoidable__Alternatives"
+ // InternalFlaDsl.g:912:1: rule__Iavoidable__Alternatives : ( ( ( 'interference' ) ) | ( ( 'none' ) ) | ( ( 'unspecified' ) ) );
+ public final void rule__Iavoidable__Alternatives() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:916:1: ( ( ( 'interference' ) ) | ( ( 'none' ) ) | ( ( 'unspecified' ) ) )
+ int alt9=3;
+ switch ( input.LA(1) ) {
+ case 22:
+ {
+ alt9=1;
+ }
+ break;
+ case 19:
+ {
+ alt9=2;
+ }
+ break;
+ case 20:
+ {
+ alt9=3;
+ }
+ break;
+ default:
+ NoViableAltException nvae =
+ new NoViableAltException("", 9, 0, input);
+
+ throw nvae;
+ }
+
+ switch (alt9) {
+ case 1 :
+ // InternalFlaDsl.g:917:1: ( ( 'interference' ) )
+ {
+ // InternalFlaDsl.g:917:1: ( ( 'interference' ) )
+ // InternalFlaDsl.g:918:1: ( 'interference' )
+ {
+ before(grammarAccess.getIavoidableAccess().getINTERFERENCEEnumLiteralDeclaration_0());
+ // InternalFlaDsl.g:919:1: ( 'interference' )
+ // InternalFlaDsl.g:919:3: 'interference'
+ {
+ match(input,22,FOLLOW_2);
+
+ }
+
+ after(grammarAccess.getIavoidableAccess().getINTERFERENCEEnumLiteralDeclaration_0());
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // InternalFlaDsl.g:924:6: ( ( 'none' ) )
+ {
+ // InternalFlaDsl.g:924:6: ( ( 'none' ) )
+ // InternalFlaDsl.g:925:1: ( 'none' )
+ {
+ before(grammarAccess.getIavoidableAccess().getNONEEnumLiteralDeclaration_1());
+ // InternalFlaDsl.g:926:1: ( 'none' )
+ // InternalFlaDsl.g:926:3: 'none'
+ {
+ match(input,19,FOLLOW_2);
+
+ }
+
+ after(grammarAccess.getIavoidableAccess().getNONEEnumLiteralDeclaration_1());
+
+ }
+
+
+ }
+ break;
+ case 3 :
+ // InternalFlaDsl.g:931:6: ( ( 'unspecified' ) )
+ {
+ // InternalFlaDsl.g:931:6: ( ( 'unspecified' ) )
+ // InternalFlaDsl.g:932:1: ( 'unspecified' )
+ {
+ before(grammarAccess.getIavoidableAccess().getUNSPECIFIEDEnumLiteralDeclaration_2());
+ // InternalFlaDsl.g:933:1: ( 'unspecified' )
+ // InternalFlaDsl.g:933:3: 'unspecified'
+ {
+ match(input,20,FOLLOW_2);
+
+ }
+
+ after(grammarAccess.getIavoidableAccess().getUNSPECIFIEDEnumLiteralDeclaration_2());
+
+ }
+
+
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Iavoidable__Alternatives"
+
+
+ // $ANTLR start "rule__Davoidable__Alternatives"
+ // InternalFlaDsl.g:943:1: rule__Davoidable__Alternatives : ( ( ( 'impermanence' ) ) | ( ( 'none' ) ) | ( ( 'unspecified' ) ) );
+ public final void rule__Davoidable__Alternatives() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:947:1: ( ( ( 'impermanence' ) ) | ( ( 'none' ) ) | ( ( 'unspecified' ) ) )
+ int alt10=3;
+ switch ( input.LA(1) ) {
+ case 23:
+ {
+ alt10=1;
+ }
+ break;
+ case 19:
+ {
+ alt10=2;
+ }
+ break;
+ case 20:
+ {
+ alt10=3;
+ }
+ break;
+ default:
+ NoViableAltException nvae =
+ new NoViableAltException("", 10, 0, input);
+
+ throw nvae;
+ }
+
+ switch (alt10) {
+ case 1 :
+ // InternalFlaDsl.g:948:1: ( ( 'impermanence' ) )
+ {
+ // InternalFlaDsl.g:948:1: ( ( 'impermanence' ) )
+ // InternalFlaDsl.g:949:1: ( 'impermanence' )
+ {
+ before(grammarAccess.getDavoidableAccess().getIMPERMANENCEEnumLiteralDeclaration_0());
+ // InternalFlaDsl.g:950:1: ( 'impermanence' )
+ // InternalFlaDsl.g:950:3: 'impermanence'
+ {
+ match(input,23,FOLLOW_2);
+
+ }
+
+ after(grammarAccess.getDavoidableAccess().getIMPERMANENCEEnumLiteralDeclaration_0());
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // InternalFlaDsl.g:955:6: ( ( 'none' ) )
+ {
+ // InternalFlaDsl.g:955:6: ( ( 'none' ) )
+ // InternalFlaDsl.g:956:1: ( 'none' )
+ {
+ before(grammarAccess.getDavoidableAccess().getNONEEnumLiteralDeclaration_1());
+ // InternalFlaDsl.g:957:1: ( 'none' )
+ // InternalFlaDsl.g:957:3: 'none'
+ {
+ match(input,19,FOLLOW_2);
+
+ }
+
+ after(grammarAccess.getDavoidableAccess().getNONEEnumLiteralDeclaration_1());
+
+ }
+
+
+ }
+ break;
+ case 3 :
+ // InternalFlaDsl.g:962:6: ( ( 'unspecified' ) )
+ {
+ // InternalFlaDsl.g:962:6: ( ( 'unspecified' ) )
+ // InternalFlaDsl.g:963:1: ( 'unspecified' )
+ {
+ before(grammarAccess.getDavoidableAccess().getUNSPECIFIEDEnumLiteralDeclaration_2());
+ // InternalFlaDsl.g:964:1: ( 'unspecified' )
+ // InternalFlaDsl.g:964:3: 'unspecified'
+ {
+ match(input,20,FOLLOW_2);
+
+ }
+
+ after(grammarAccess.getDavoidableAccess().getUNSPECIFIEDEnumLiteralDeclaration_2());
+
+ }
+
+
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Davoidable__Alternatives"
+
+
+ // $ANTLR start "rule__Amitigation__Alternatives"
+ // InternalFlaDsl.g:974:1: rule__Amitigation__Alternatives : ( ( ( 'all_or_nothing' ) ) | ( ( 'all_or_compensation' ) ) | ( ( 'none' ) ) | ( ( 'unspecified' ) ) );
+ public final void rule__Amitigation__Alternatives() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:978:1: ( ( ( 'all_or_nothing' ) ) | ( ( 'all_or_compensation' ) ) | ( ( 'none' ) ) | ( ( 'unspecified' ) ) )
+ int alt11=4;
+ switch ( input.LA(1) ) {
+ case 24:
+ {
+ alt11=1;
+ }
+ break;
+ case 25:
+ {
+ alt11=2;
+ }
+ break;
+ case 19:
+ {
+ alt11=3;
+ }
+ break;
+ case 20:
+ {
+ alt11=4;
+ }
+ break;
+ default:
+ NoViableAltException nvae =
+ new NoViableAltException("", 11, 0, input);
+
+ throw nvae;
+ }
+
+ switch (alt11) {
+ case 1 :
+ // InternalFlaDsl.g:979:1: ( ( 'all_or_nothing' ) )
+ {
+ // InternalFlaDsl.g:979:1: ( ( 'all_or_nothing' ) )
+ // InternalFlaDsl.g:980:1: ( 'all_or_nothing' )
+ {
+ before(grammarAccess.getAmitigationAccess().getALL_OR_NOTHINGEnumLiteralDeclaration_0());
+ // InternalFlaDsl.g:981:1: ( 'all_or_nothing' )
+ // InternalFlaDsl.g:981:3: 'all_or_nothing'
+ {
+ match(input,24,FOLLOW_2);
+
+ }
+
+ after(grammarAccess.getAmitigationAccess().getALL_OR_NOTHINGEnumLiteralDeclaration_0());
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // InternalFlaDsl.g:986:6: ( ( 'all_or_compensation' ) )
+ {
+ // InternalFlaDsl.g:986:6: ( ( 'all_or_compensation' ) )
+ // InternalFlaDsl.g:987:1: ( 'all_or_compensation' )
+ {
+ before(grammarAccess.getAmitigationAccess().getALL_OR_COMPENSATIONEnumLiteralDeclaration_1());
+ // InternalFlaDsl.g:988:1: ( 'all_or_compensation' )
+ // InternalFlaDsl.g:988:3: 'all_or_compensation'
+ {
+ match(input,25,FOLLOW_2);
+
+ }
+
+ after(grammarAccess.getAmitigationAccess().getALL_OR_COMPENSATIONEnumLiteralDeclaration_1());
+
+ }
+
+
+ }
+ break;
+ case 3 :
+ // InternalFlaDsl.g:993:6: ( ( 'none' ) )
+ {
+ // InternalFlaDsl.g:993:6: ( ( 'none' ) )
+ // InternalFlaDsl.g:994:1: ( 'none' )
+ {
+ before(grammarAccess.getAmitigationAccess().getNONEEnumLiteralDeclaration_2());
+ // InternalFlaDsl.g:995:1: ( 'none' )
+ // InternalFlaDsl.g:995:3: 'none'
+ {
+ match(input,19,FOLLOW_2);
+
+ }
+
+ after(grammarAccess.getAmitigationAccess().getNONEEnumLiteralDeclaration_2());
+
+ }
+
+
+ }
+ break;
+ case 4 :
+ // InternalFlaDsl.g:1000:6: ( ( 'unspecified' ) )
+ {
+ // InternalFlaDsl.g:1000:6: ( ( 'unspecified' ) )
+ // InternalFlaDsl.g:1001:1: ( 'unspecified' )
+ {
+ before(grammarAccess.getAmitigationAccess().getUNSPECIFIEDEnumLiteralDeclaration_3());
+ // InternalFlaDsl.g:1002:1: ( 'unspecified' )
+ // InternalFlaDsl.g:1002:3: 'unspecified'
+ {
+ match(input,20,FOLLOW_2);
+
+ }
+
+ after(grammarAccess.getAmitigationAccess().getUNSPECIFIEDEnumLiteralDeclaration_3());
+
+ }
+
+
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Amitigation__Alternatives"
+
+
+ // $ANTLR start "rule__Cmitigation__Alternatives"
+ // InternalFlaDsl.g:1012:1: rule__Cmitigation__Alternatives : ( ( ( 'full_consistency' ) ) | ( ( 'range_violation_allowed' ) ) | ( ( 'none' ) ) | ( ( 'unspecified' ) ) );
+ public final void rule__Cmitigation__Alternatives() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:1016:1: ( ( ( 'full_consistency' ) ) | ( ( 'range_violation_allowed' ) ) | ( ( 'none' ) ) | ( ( 'unspecified' ) ) )
+ int alt12=4;
+ switch ( input.LA(1) ) {
+ case 26:
+ {
+ alt12=1;
+ }
+ break;
+ case 27:
+ {
+ alt12=2;
+ }
+ break;
+ case 19:
+ {
+ alt12=3;
+ }
+ break;
+ case 20:
+ {
+ alt12=4;
+ }
+ break;
+ default:
+ NoViableAltException nvae =
+ new NoViableAltException("", 12, 0, input);
+
+ throw nvae;
+ }
+
+ switch (alt12) {
+ case 1 :
+ // InternalFlaDsl.g:1017:1: ( ( 'full_consistency' ) )
+ {
+ // InternalFlaDsl.g:1017:1: ( ( 'full_consistency' ) )
+ // InternalFlaDsl.g:1018:1: ( 'full_consistency' )
+ {
+ before(grammarAccess.getCmitigationAccess().getFULL_CONSISTENCYEnumLiteralDeclaration_0());
+ // InternalFlaDsl.g:1019:1: ( 'full_consistency' )
+ // InternalFlaDsl.g:1019:3: 'full_consistency'
+ {
+ match(input,26,FOLLOW_2);
+
+ }
+
+ after(grammarAccess.getCmitigationAccess().getFULL_CONSISTENCYEnumLiteralDeclaration_0());
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // InternalFlaDsl.g:1024:6: ( ( 'range_violation_allowed' ) )
+ {
+ // InternalFlaDsl.g:1024:6: ( ( 'range_violation_allowed' ) )
+ // InternalFlaDsl.g:1025:1: ( 'range_violation_allowed' )
+ {
+ before(grammarAccess.getCmitigationAccess().getRANGE_VIOLATION_ALLOWEDEnumLiteralDeclaration_1());
+ // InternalFlaDsl.g:1026:1: ( 'range_violation_allowed' )
+ // InternalFlaDsl.g:1026:3: 'range_violation_allowed'
+ {
+ match(input,27,FOLLOW_2);
+
+ }
+
+ after(grammarAccess.getCmitigationAccess().getRANGE_VIOLATION_ALLOWEDEnumLiteralDeclaration_1());
+
+ }
+
+
+ }
+ break;
+ case 3 :
+ // InternalFlaDsl.g:1031:6: ( ( 'none' ) )
+ {
+ // InternalFlaDsl.g:1031:6: ( ( 'none' ) )
+ // InternalFlaDsl.g:1032:1: ( 'none' )
+ {
+ before(grammarAccess.getCmitigationAccess().getNONEEnumLiteralDeclaration_2());
+ // InternalFlaDsl.g:1033:1: ( 'none' )
+ // InternalFlaDsl.g:1033:3: 'none'
+ {
+ match(input,19,FOLLOW_2);
+
+ }
+
+ after(grammarAccess.getCmitigationAccess().getNONEEnumLiteralDeclaration_2());
+
+ }
+
+
+ }
+ break;
+ case 4 :
+ // InternalFlaDsl.g:1038:6: ( ( 'unspecified' ) )
+ {
+ // InternalFlaDsl.g:1038:6: ( ( 'unspecified' ) )
+ // InternalFlaDsl.g:1039:1: ( 'unspecified' )
+ {
+ before(grammarAccess.getCmitigationAccess().getUNSPECIFIEDEnumLiteralDeclaration_3());
+ // InternalFlaDsl.g:1040:1: ( 'unspecified' )
+ // InternalFlaDsl.g:1040:3: 'unspecified'
+ {
+ match(input,20,FOLLOW_2);
+
+ }
+
+ after(grammarAccess.getCmitigationAccess().getUNSPECIFIEDEnumLiteralDeclaration_3());
+
+ }
+
+
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Cmitigation__Alternatives"
+
+
+ // $ANTLR start "rule__Imitigation__Alternatives"
+ // InternalFlaDsl.g:1050:1: rule__Imitigation__Alternatives : ( ( ( 'serializable' ) ) | ( ( 'portable_level' ) ) | ( ( 'none' ) ) | ( ( 'unspecified' ) ) );
+ public final void rule__Imitigation__Alternatives() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:1054:1: ( ( ( 'serializable' ) ) | ( ( 'portable_level' ) ) | ( ( 'none' ) ) | ( ( 'unspecified' ) ) )
+ int alt13=4;
+ switch ( input.LA(1) ) {
+ case 28:
+ {
+ alt13=1;
+ }
+ break;
+ case 29:
+ {
+ alt13=2;
+ }
+ break;
+ case 19:
+ {
+ alt13=3;
+ }
+ break;
+ case 20:
+ {
+ alt13=4;
+ }
+ break;
+ default:
+ NoViableAltException nvae =
+ new NoViableAltException("", 13, 0, input);
+
+ throw nvae;
+ }
+
+ switch (alt13) {
+ case 1 :
+ // InternalFlaDsl.g:1055:1: ( ( 'serializable' ) )
+ {
+ // InternalFlaDsl.g:1055:1: ( ( 'serializable' ) )
+ // InternalFlaDsl.g:1056:1: ( 'serializable' )
+ {
+ before(grammarAccess.getImitigationAccess().getSERIALIZABLEEnumLiteralDeclaration_0());
+ // InternalFlaDsl.g:1057:1: ( 'serializable' )
+ // InternalFlaDsl.g:1057:3: 'serializable'
+ {
+ match(input,28,FOLLOW_2);
+
+ }
+
+ after(grammarAccess.getImitigationAccess().getSERIALIZABLEEnumLiteralDeclaration_0());
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // InternalFlaDsl.g:1062:6: ( ( 'portable_level' ) )
+ {
+ // InternalFlaDsl.g:1062:6: ( ( 'portable_level' ) )
+ // InternalFlaDsl.g:1063:1: ( 'portable_level' )
+ {
+ before(grammarAccess.getImitigationAccess().getPORTABLE_LEVELEnumLiteralDeclaration_1());
+ // InternalFlaDsl.g:1064:1: ( 'portable_level' )
+ // InternalFlaDsl.g:1064:3: 'portable_level'
+ {
+ match(input,29,FOLLOW_2);
+
+ }
+
+ after(grammarAccess.getImitigationAccess().getPORTABLE_LEVELEnumLiteralDeclaration_1());
+
+ }
+
+
+ }
+ break;
+ case 3 :
+ // InternalFlaDsl.g:1069:6: ( ( 'none' ) )
+ {
+ // InternalFlaDsl.g:1069:6: ( ( 'none' ) )
+ // InternalFlaDsl.g:1070:1: ( 'none' )
+ {
+ before(grammarAccess.getImitigationAccess().getNONEEnumLiteralDeclaration_2());
+ // InternalFlaDsl.g:1071:1: ( 'none' )
+ // InternalFlaDsl.g:1071:3: 'none'
+ {
+ match(input,19,FOLLOW_2);
+
+ }
+
+ after(grammarAccess.getImitigationAccess().getNONEEnumLiteralDeclaration_2());
+
+ }
+
+
+ }
+ break;
+ case 4 :
+ // InternalFlaDsl.g:1076:6: ( ( 'unspecified' ) )
+ {
+ // InternalFlaDsl.g:1076:6: ( ( 'unspecified' ) )
+ // InternalFlaDsl.g:1077:1: ( 'unspecified' )
+ {
+ before(grammarAccess.getImitigationAccess().getUNSPECIFIEDEnumLiteralDeclaration_3());
+ // InternalFlaDsl.g:1078:1: ( 'unspecified' )
+ // InternalFlaDsl.g:1078:3: 'unspecified'
+ {
+ match(input,20,FOLLOW_2);
+
+ }
+
+ after(grammarAccess.getImitigationAccess().getUNSPECIFIEDEnumLiteralDeclaration_3());
+
+ }
+
+
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Imitigation__Alternatives"
+
+
+ // $ANTLR start "rule__Dmitigation__Alternatives"
+ // InternalFlaDsl.g:1088:1: rule__Dmitigation__Alternatives : ( ( ( 'no_loss' ) ) | ( ( 'partial_loss_allowed' ) ) | ( ( 'none' ) ) | ( ( 'unspecified' ) ) );
+ public final void rule__Dmitigation__Alternatives() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:1092:1: ( ( ( 'no_loss' ) ) | ( ( 'partial_loss_allowed' ) ) | ( ( 'none' ) ) | ( ( 'unspecified' ) ) )
+ int alt14=4;
+ switch ( input.LA(1) ) {
+ case 30:
+ {
+ alt14=1;
+ }
+ break;
+ case 31:
+ {
+ alt14=2;
+ }
+ break;
+ case 19:
+ {
+ alt14=3;
+ }
+ break;
+ case 20:
+ {
+ alt14=4;
+ }
+ break;
+ default:
+ NoViableAltException nvae =
+ new NoViableAltException("", 14, 0, input);
+
+ throw nvae;
+ }
+
+ switch (alt14) {
+ case 1 :
+ // InternalFlaDsl.g:1093:1: ( ( 'no_loss' ) )
+ {
+ // InternalFlaDsl.g:1093:1: ( ( 'no_loss' ) )
+ // InternalFlaDsl.g:1094:1: ( 'no_loss' )
+ {
+ before(grammarAccess.getDmitigationAccess().getNO_LOSSEnumLiteralDeclaration_0());
+ // InternalFlaDsl.g:1095:1: ( 'no_loss' )
+ // InternalFlaDsl.g:1095:3: 'no_loss'
+ {
+ match(input,30,FOLLOW_2);
+
+ }
+
+ after(grammarAccess.getDmitigationAccess().getNO_LOSSEnumLiteralDeclaration_0());
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // InternalFlaDsl.g:1100:6: ( ( 'partial_loss_allowed' ) )
+ {
+ // InternalFlaDsl.g:1100:6: ( ( 'partial_loss_allowed' ) )
+ // InternalFlaDsl.g:1101:1: ( 'partial_loss_allowed' )
+ {
+ before(grammarAccess.getDmitigationAccess().getPARTIAL_LOSS_ALLOWEDEnumLiteralDeclaration_1());
+ // InternalFlaDsl.g:1102:1: ( 'partial_loss_allowed' )
+ // InternalFlaDsl.g:1102:3: 'partial_loss_allowed'
+ {
+ match(input,31,FOLLOW_2);
+
+ }
+
+ after(grammarAccess.getDmitigationAccess().getPARTIAL_LOSS_ALLOWEDEnumLiteralDeclaration_1());
+
+ }
+
+
+ }
+ break;
+ case 3 :
+ // InternalFlaDsl.g:1107:6: ( ( 'none' ) )
+ {
+ // InternalFlaDsl.g:1107:6: ( ( 'none' ) )
+ // InternalFlaDsl.g:1108:1: ( 'none' )
+ {
+ before(grammarAccess.getDmitigationAccess().getNONEEnumLiteralDeclaration_2());
+ // InternalFlaDsl.g:1109:1: ( 'none' )
+ // InternalFlaDsl.g:1109:3: 'none'
+ {
+ match(input,19,FOLLOW_2);
+
+ }
+
+ after(grammarAccess.getDmitigationAccess().getNONEEnumLiteralDeclaration_2());
+
+ }
+
+
+ }
+ break;
+ case 4 :
+ // InternalFlaDsl.g:1114:6: ( ( 'unspecified' ) )
+ {
+ // InternalFlaDsl.g:1114:6: ( ( 'unspecified' ) )
+ // InternalFlaDsl.g:1115:1: ( 'unspecified' )
+ {
+ before(grammarAccess.getDmitigationAccess().getUNSPECIFIEDEnumLiteralDeclaration_3());
+ // InternalFlaDsl.g:1116:1: ( 'unspecified' )
+ // InternalFlaDsl.g:1116:3: 'unspecified'
+ {
+ match(input,20,FOLLOW_2);
+
+ }
+
+ after(grammarAccess.getDmitigationAccess().getUNSPECIFIEDEnumLiteralDeclaration_3());
+
+ }
+
+
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Dmitigation__Alternatives"
+
+
+ // $ANTLR start "rule__Expression__Group__0"
+ // InternalFlaDsl.g:1128:1: rule__Expression__Group__0 : rule__Expression__Group__0__Impl rule__Expression__Group__1 ;
+ public final void rule__Expression__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:1132:1: ( rule__Expression__Group__0__Impl rule__Expression__Group__1 )
+ // InternalFlaDsl.g:1133:2: rule__Expression__Group__0__Impl rule__Expression__Group__1
+ {
+ pushFollow(FOLLOW_4);
+ rule__Expression__Group__0__Impl();
+
+ state._fsp--;
+
+ pushFollow(FOLLOW_2);
+ rule__Expression__Group__1();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Expression__Group__0"
+
+
+ // $ANTLR start "rule__Expression__Group__0__Impl"
+ // InternalFlaDsl.g:1140:1: rule__Expression__Group__0__Impl : ( 'FLA:' ) ;
+ public final void rule__Expression__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:1144:1: ( ( 'FLA:' ) )
+ // InternalFlaDsl.g:1145:1: ( 'FLA:' )
+ {
+ // InternalFlaDsl.g:1145:1: ( 'FLA:' )
+ // InternalFlaDsl.g:1146:1: 'FLA:'
+ {
+ before(grammarAccess.getExpressionAccess().getFLAKeyword_0());
+ match(input,32,FOLLOW_2);
+ after(grammarAccess.getExpressionAccess().getFLAKeyword_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Expression__Group__0__Impl"
+
+
+ // $ANTLR start "rule__Expression__Group__1"
+ // InternalFlaDsl.g:1159:1: rule__Expression__Group__1 : rule__Expression__Group__1__Impl rule__Expression__Group__2 ;
+ public final void rule__Expression__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:1163:1: ( rule__Expression__Group__1__Impl rule__Expression__Group__2 )
+ // InternalFlaDsl.g:1164:2: rule__Expression__Group__1__Impl rule__Expression__Group__2
+ {
+ pushFollow(FOLLOW_5);
+ rule__Expression__Group__1__Impl();
+
+ state._fsp--;
+
+ pushFollow(FOLLOW_2);
+ rule__Expression__Group__2();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Expression__Group__1"
+
+
+ // $ANTLR start "rule__Expression__Group__1__Impl"
+ // InternalFlaDsl.g:1171:1: rule__Expression__Group__1__Impl : ( ( rule__Expression__LhsAssignment_1 ) ) ;
+ public final void rule__Expression__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:1175:1: ( ( ( rule__Expression__LhsAssignment_1 ) ) )
+ // InternalFlaDsl.g:1176:1: ( ( rule__Expression__LhsAssignment_1 ) )
+ {
+ // InternalFlaDsl.g:1176:1: ( ( rule__Expression__LhsAssignment_1 ) )
+ // InternalFlaDsl.g:1177:1: ( rule__Expression__LhsAssignment_1 )
+ {
+ before(grammarAccess.getExpressionAccess().getLhsAssignment_1());
+ // InternalFlaDsl.g:1178:1: ( rule__Expression__LhsAssignment_1 )
+ // InternalFlaDsl.g:1178:2: rule__Expression__LhsAssignment_1
+ {
+ pushFollow(FOLLOW_2);
+ rule__Expression__LhsAssignment_1();
+
+ state._fsp--;
+
+
+ }
+
+ after(grammarAccess.getExpressionAccess().getLhsAssignment_1());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Expression__Group__1__Impl"
+
+
+ // $ANTLR start "rule__Expression__Group__2"
+ // InternalFlaDsl.g:1188:1: rule__Expression__Group__2 : rule__Expression__Group__2__Impl rule__Expression__Group__3 ;
+ public final void rule__Expression__Group__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:1192:1: ( rule__Expression__Group__2__Impl rule__Expression__Group__3 )
+ // InternalFlaDsl.g:1193:2: rule__Expression__Group__2__Impl rule__Expression__Group__3
+ {
+ pushFollow(FOLLOW_4);
+ rule__Expression__Group__2__Impl();
+
+ state._fsp--;
+
+ pushFollow(FOLLOW_2);
+ rule__Expression__Group__3();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Expression__Group__2"
+
+
+ // $ANTLR start "rule__Expression__Group__2__Impl"
+ // InternalFlaDsl.g:1200:1: rule__Expression__Group__2__Impl : ( '->' ) ;
+ public final void rule__Expression__Group__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:1204:1: ( ( '->' ) )
+ // InternalFlaDsl.g:1205:1: ( '->' )
+ {
+ // InternalFlaDsl.g:1205:1: ( '->' )
+ // InternalFlaDsl.g:1206:1: '->'
+ {
+ before(grammarAccess.getExpressionAccess().getHyphenMinusGreaterThanSignKeyword_2());
+ match(input,33,FOLLOW_2);
+ after(grammarAccess.getExpressionAccess().getHyphenMinusGreaterThanSignKeyword_2());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Expression__Group__2__Impl"
+
+
+ // $ANTLR start "rule__Expression__Group__3"
+ // InternalFlaDsl.g:1219:1: rule__Expression__Group__3 : rule__Expression__Group__3__Impl rule__Expression__Group__4 ;
+ public final void rule__Expression__Group__3() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:1223:1: ( rule__Expression__Group__3__Impl rule__Expression__Group__4 )
+ // InternalFlaDsl.g:1224:2: rule__Expression__Group__3__Impl rule__Expression__Group__4
+ {
+ pushFollow(FOLLOW_6);
+ rule__Expression__Group__3__Impl();
+
+ state._fsp--;
+
+ pushFollow(FOLLOW_2);
+ rule__Expression__Group__4();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Expression__Group__3"
+
+
+ // $ANTLR start "rule__Expression__Group__3__Impl"
+ // InternalFlaDsl.g:1231:1: rule__Expression__Group__3__Impl : ( ( rule__Expression__RhsAssignment_3 ) ) ;
+ public final void rule__Expression__Group__3__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:1235:1: ( ( ( rule__Expression__RhsAssignment_3 ) ) )
+ // InternalFlaDsl.g:1236:1: ( ( rule__Expression__RhsAssignment_3 ) )
+ {
+ // InternalFlaDsl.g:1236:1: ( ( rule__Expression__RhsAssignment_3 ) )
+ // InternalFlaDsl.g:1237:1: ( rule__Expression__RhsAssignment_3 )
+ {
+ before(grammarAccess.getExpressionAccess().getRhsAssignment_3());
+ // InternalFlaDsl.g:1238:1: ( rule__Expression__RhsAssignment_3 )
+ // InternalFlaDsl.g:1238:2: rule__Expression__RhsAssignment_3
+ {
+ pushFollow(FOLLOW_2);
+ rule__Expression__RhsAssignment_3();
+
+ state._fsp--;
+
+
+ }
+
+ after(grammarAccess.getExpressionAccess().getRhsAssignment_3());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Expression__Group__3__Impl"
+
+
+ // $ANTLR start "rule__Expression__Group__4"
+ // InternalFlaDsl.g:1248:1: rule__Expression__Group__4 : rule__Expression__Group__4__Impl ;
+ public final void rule__Expression__Group__4() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:1252:1: ( rule__Expression__Group__4__Impl )
+ // InternalFlaDsl.g:1253:2: rule__Expression__Group__4__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__Expression__Group__4__Impl();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Expression__Group__4"
+
+
+ // $ANTLR start "rule__Expression__Group__4__Impl"
+ // InternalFlaDsl.g:1259:1: rule__Expression__Group__4__Impl : ( ';' ) ;
+ public final void rule__Expression__Group__4__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:1263:1: ( ( ';' ) )
+ // InternalFlaDsl.g:1264:1: ( ';' )
+ {
+ // InternalFlaDsl.g:1264:1: ( ';' )
+ // InternalFlaDsl.g:1265:1: ';'
+ {
+ before(grammarAccess.getExpressionAccess().getSemicolonKeyword_4());
+ match(input,34,FOLLOW_2);
+ after(grammarAccess.getExpressionAccess().getSemicolonKeyword_4());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Expression__Group__4__Impl"
+
+
+ // $ANTLR start "rule__Lhs__Group__0"
+ // InternalFlaDsl.g:1288:1: rule__Lhs__Group__0 : rule__Lhs__Group__0__Impl rule__Lhs__Group__1 ;
+ public final void rule__Lhs__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:1292:1: ( rule__Lhs__Group__0__Impl rule__Lhs__Group__1 )
+ // InternalFlaDsl.g:1293:2: rule__Lhs__Group__0__Impl rule__Lhs__Group__1
+ {
+ pushFollow(FOLLOW_7);
+ rule__Lhs__Group__0__Impl();
+
+ state._fsp--;
+
+ pushFollow(FOLLOW_2);
+ rule__Lhs__Group__1();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Lhs__Group__0"
+
+
+ // $ANTLR start "rule__Lhs__Group__0__Impl"
+ // InternalFlaDsl.g:1300:1: rule__Lhs__Group__0__Impl : ( ( rule__Lhs__FailuresAssignment_0 ) ) ;
+ public final void rule__Lhs__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:1304:1: ( ( ( rule__Lhs__FailuresAssignment_0 ) ) )
+ // InternalFlaDsl.g:1305:1: ( ( rule__Lhs__FailuresAssignment_0 ) )
+ {
+ // InternalFlaDsl.g:1305:1: ( ( rule__Lhs__FailuresAssignment_0 ) )
+ // InternalFlaDsl.g:1306:1: ( rule__Lhs__FailuresAssignment_0 )
+ {
+ before(grammarAccess.getLhsAccess().getFailuresAssignment_0());
+ // InternalFlaDsl.g:1307:1: ( rule__Lhs__FailuresAssignment_0 )
+ // InternalFlaDsl.g:1307:2: rule__Lhs__FailuresAssignment_0
+ {
+ pushFollow(FOLLOW_2);
+ rule__Lhs__FailuresAssignment_0();
+
+ state._fsp--;
+
+
+ }
+
+ after(grammarAccess.getLhsAccess().getFailuresAssignment_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Lhs__Group__0__Impl"
+
+
+ // $ANTLR start "rule__Lhs__Group__1"
+ // InternalFlaDsl.g:1317:1: rule__Lhs__Group__1 : rule__Lhs__Group__1__Impl ;
+ public final void rule__Lhs__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:1321:1: ( rule__Lhs__Group__1__Impl )
+ // InternalFlaDsl.g:1322:2: rule__Lhs__Group__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__Lhs__Group__1__Impl();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Lhs__Group__1"
+
+
+ // $ANTLR start "rule__Lhs__Group__1__Impl"
+ // InternalFlaDsl.g:1328:1: rule__Lhs__Group__1__Impl : ( ( rule__Lhs__Group_1__0 )* ) ;
+ public final void rule__Lhs__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:1332:1: ( ( ( rule__Lhs__Group_1__0 )* ) )
+ // InternalFlaDsl.g:1333:1: ( ( rule__Lhs__Group_1__0 )* )
+ {
+ // InternalFlaDsl.g:1333:1: ( ( rule__Lhs__Group_1__0 )* )
+ // InternalFlaDsl.g:1334:1: ( rule__Lhs__Group_1__0 )*
+ {
+ before(grammarAccess.getLhsAccess().getGroup_1());
+ // InternalFlaDsl.g:1335:1: ( rule__Lhs__Group_1__0 )*
+ loop15:
+ do {
+ int alt15=2;
+ int LA15_0 = input.LA(1);
+
+ if ( (LA15_0==35) ) {
+ alt15=1;
+ }
+
+
+ switch (alt15) {
+ case 1 :
+ // InternalFlaDsl.g:1335:2: rule__Lhs__Group_1__0
+ {
+ pushFollow(FOLLOW_8);
+ rule__Lhs__Group_1__0();
+
+ state._fsp--;
+
+
+ }
+ break;
+
+ default :
+ break loop15;
+ }
+ } while (true);
+
+ after(grammarAccess.getLhsAccess().getGroup_1());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Lhs__Group__1__Impl"
+
+
+ // $ANTLR start "rule__Lhs__Group_1__0"
+ // InternalFlaDsl.g:1349:1: rule__Lhs__Group_1__0 : rule__Lhs__Group_1__0__Impl rule__Lhs__Group_1__1 ;
+ public final void rule__Lhs__Group_1__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:1353:1: ( rule__Lhs__Group_1__0__Impl rule__Lhs__Group_1__1 )
+ // InternalFlaDsl.g:1354:2: rule__Lhs__Group_1__0__Impl rule__Lhs__Group_1__1
+ {
+ pushFollow(FOLLOW_4);
+ rule__Lhs__Group_1__0__Impl();
+
+ state._fsp--;
+
+ pushFollow(FOLLOW_2);
+ rule__Lhs__Group_1__1();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Lhs__Group_1__0"
+
+
+ // $ANTLR start "rule__Lhs__Group_1__0__Impl"
+ // InternalFlaDsl.g:1361:1: rule__Lhs__Group_1__0__Impl : ( ',' ) ;
+ public final void rule__Lhs__Group_1__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:1365:1: ( ( ',' ) )
+ // InternalFlaDsl.g:1366:1: ( ',' )
+ {
+ // InternalFlaDsl.g:1366:1: ( ',' )
+ // InternalFlaDsl.g:1367:1: ','
+ {
+ before(grammarAccess.getLhsAccess().getCommaKeyword_1_0());
+ match(input,35,FOLLOW_2);
+ after(grammarAccess.getLhsAccess().getCommaKeyword_1_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Lhs__Group_1__0__Impl"
+
+
+ // $ANTLR start "rule__Lhs__Group_1__1"
+ // InternalFlaDsl.g:1380:1: rule__Lhs__Group_1__1 : rule__Lhs__Group_1__1__Impl ;
+ public final void rule__Lhs__Group_1__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:1384:1: ( rule__Lhs__Group_1__1__Impl )
+ // InternalFlaDsl.g:1385:2: rule__Lhs__Group_1__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__Lhs__Group_1__1__Impl();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Lhs__Group_1__1"
+
+
+ // $ANTLR start "rule__Lhs__Group_1__1__Impl"
+ // InternalFlaDsl.g:1391:1: rule__Lhs__Group_1__1__Impl : ( ( rule__Lhs__FailuresAssignment_1_1 ) ) ;
+ public final void rule__Lhs__Group_1__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:1395:1: ( ( ( rule__Lhs__FailuresAssignment_1_1 ) ) )
+ // InternalFlaDsl.g:1396:1: ( ( rule__Lhs__FailuresAssignment_1_1 ) )
+ {
+ // InternalFlaDsl.g:1396:1: ( ( rule__Lhs__FailuresAssignment_1_1 ) )
+ // InternalFlaDsl.g:1397:1: ( rule__Lhs__FailuresAssignment_1_1 )
+ {
+ before(grammarAccess.getLhsAccess().getFailuresAssignment_1_1());
+ // InternalFlaDsl.g:1398:1: ( rule__Lhs__FailuresAssignment_1_1 )
+ // InternalFlaDsl.g:1398:2: rule__Lhs__FailuresAssignment_1_1
+ {
+ pushFollow(FOLLOW_2);
+ rule__Lhs__FailuresAssignment_1_1();
+
+ state._fsp--;
+
+
+ }
+
+ after(grammarAccess.getLhsAccess().getFailuresAssignment_1_1());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Lhs__Group_1__1__Impl"
+
+
+ // $ANTLR start "rule__Rhs__Group__0"
+ // InternalFlaDsl.g:1412:1: rule__Rhs__Group__0 : rule__Rhs__Group__0__Impl rule__Rhs__Group__1 ;
+ public final void rule__Rhs__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:1416:1: ( rule__Rhs__Group__0__Impl rule__Rhs__Group__1 )
+ // InternalFlaDsl.g:1417:2: rule__Rhs__Group__0__Impl rule__Rhs__Group__1
+ {
+ pushFollow(FOLLOW_7);
+ rule__Rhs__Group__0__Impl();
+
+ state._fsp--;
+
+ pushFollow(FOLLOW_2);
+ rule__Rhs__Group__1();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Rhs__Group__0"
+
+
+ // $ANTLR start "rule__Rhs__Group__0__Impl"
+ // InternalFlaDsl.g:1424:1: rule__Rhs__Group__0__Impl : ( ( rule__Rhs__FailuresAssignment_0 ) ) ;
+ public final void rule__Rhs__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:1428:1: ( ( ( rule__Rhs__FailuresAssignment_0 ) ) )
+ // InternalFlaDsl.g:1429:1: ( ( rule__Rhs__FailuresAssignment_0 ) )
+ {
+ // InternalFlaDsl.g:1429:1: ( ( rule__Rhs__FailuresAssignment_0 ) )
+ // InternalFlaDsl.g:1430:1: ( rule__Rhs__FailuresAssignment_0 )
+ {
+ before(grammarAccess.getRhsAccess().getFailuresAssignment_0());
+ // InternalFlaDsl.g:1431:1: ( rule__Rhs__FailuresAssignment_0 )
+ // InternalFlaDsl.g:1431:2: rule__Rhs__FailuresAssignment_0
+ {
+ pushFollow(FOLLOW_2);
+ rule__Rhs__FailuresAssignment_0();
+
+ state._fsp--;
+
+
+ }
+
+ after(grammarAccess.getRhsAccess().getFailuresAssignment_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Rhs__Group__0__Impl"
+
+
+ // $ANTLR start "rule__Rhs__Group__1"
+ // InternalFlaDsl.g:1441:1: rule__Rhs__Group__1 : rule__Rhs__Group__1__Impl ;
+ public final void rule__Rhs__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:1445:1: ( rule__Rhs__Group__1__Impl )
+ // InternalFlaDsl.g:1446:2: rule__Rhs__Group__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__Rhs__Group__1__Impl();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Rhs__Group__1"
+
+
+ // $ANTLR start "rule__Rhs__Group__1__Impl"
+ // InternalFlaDsl.g:1452:1: rule__Rhs__Group__1__Impl : ( ( rule__Rhs__Group_1__0 )* ) ;
+ public final void rule__Rhs__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:1456:1: ( ( ( rule__Rhs__Group_1__0 )* ) )
+ // InternalFlaDsl.g:1457:1: ( ( rule__Rhs__Group_1__0 )* )
+ {
+ // InternalFlaDsl.g:1457:1: ( ( rule__Rhs__Group_1__0 )* )
+ // InternalFlaDsl.g:1458:1: ( rule__Rhs__Group_1__0 )*
+ {
+ before(grammarAccess.getRhsAccess().getGroup_1());
+ // InternalFlaDsl.g:1459:1: ( rule__Rhs__Group_1__0 )*
+ loop16:
+ do {
+ int alt16=2;
+ int LA16_0 = input.LA(1);
+
+ if ( (LA16_0==35) ) {
+ alt16=1;
+ }
+
+
+ switch (alt16) {
+ case 1 :
+ // InternalFlaDsl.g:1459:2: rule__Rhs__Group_1__0
+ {
+ pushFollow(FOLLOW_8);
+ rule__Rhs__Group_1__0();
+
+ state._fsp--;
+
+
+ }
+ break;
+
+ default :
+ break loop16;
+ }
+ } while (true);
+
+ after(grammarAccess.getRhsAccess().getGroup_1());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Rhs__Group__1__Impl"
+
+
+ // $ANTLR start "rule__Rhs__Group_1__0"
+ // InternalFlaDsl.g:1473:1: rule__Rhs__Group_1__0 : rule__Rhs__Group_1__0__Impl rule__Rhs__Group_1__1 ;
+ public final void rule__Rhs__Group_1__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:1477:1: ( rule__Rhs__Group_1__0__Impl rule__Rhs__Group_1__1 )
+ // InternalFlaDsl.g:1478:2: rule__Rhs__Group_1__0__Impl rule__Rhs__Group_1__1
+ {
+ pushFollow(FOLLOW_4);
+ rule__Rhs__Group_1__0__Impl();
+
+ state._fsp--;
+
+ pushFollow(FOLLOW_2);
+ rule__Rhs__Group_1__1();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Rhs__Group_1__0"
+
+
+ // $ANTLR start "rule__Rhs__Group_1__0__Impl"
+ // InternalFlaDsl.g:1485:1: rule__Rhs__Group_1__0__Impl : ( ',' ) ;
+ public final void rule__Rhs__Group_1__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:1489:1: ( ( ',' ) )
+ // InternalFlaDsl.g:1490:1: ( ',' )
+ {
+ // InternalFlaDsl.g:1490:1: ( ',' )
+ // InternalFlaDsl.g:1491:1: ','
+ {
+ before(grammarAccess.getRhsAccess().getCommaKeyword_1_0());
+ match(input,35,FOLLOW_2);
+ after(grammarAccess.getRhsAccess().getCommaKeyword_1_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Rhs__Group_1__0__Impl"
+
+
+ // $ANTLR start "rule__Rhs__Group_1__1"
+ // InternalFlaDsl.g:1504:1: rule__Rhs__Group_1__1 : rule__Rhs__Group_1__1__Impl ;
+ public final void rule__Rhs__Group_1__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:1508:1: ( rule__Rhs__Group_1__1__Impl )
+ // InternalFlaDsl.g:1509:2: rule__Rhs__Group_1__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__Rhs__Group_1__1__Impl();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Rhs__Group_1__1"
+
+
+ // $ANTLR start "rule__Rhs__Group_1__1__Impl"
+ // InternalFlaDsl.g:1515:1: rule__Rhs__Group_1__1__Impl : ( ( rule__Rhs__FailuresAssignment_1_1 ) ) ;
+ public final void rule__Rhs__Group_1__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:1519:1: ( ( ( rule__Rhs__FailuresAssignment_1_1 ) ) )
+ // InternalFlaDsl.g:1520:1: ( ( rule__Rhs__FailuresAssignment_1_1 ) )
+ {
+ // InternalFlaDsl.g:1520:1: ( ( rule__Rhs__FailuresAssignment_1_1 ) )
+ // InternalFlaDsl.g:1521:1: ( rule__Rhs__FailuresAssignment_1_1 )
+ {
+ before(grammarAccess.getRhsAccess().getFailuresAssignment_1_1());
+ // InternalFlaDsl.g:1522:1: ( rule__Rhs__FailuresAssignment_1_1 )
+ // InternalFlaDsl.g:1522:2: rule__Rhs__FailuresAssignment_1_1
+ {
+ pushFollow(FOLLOW_2);
+ rule__Rhs__FailuresAssignment_1_1();
+
+ state._fsp--;
+
+
+ }
+
+ after(grammarAccess.getRhsAccess().getFailuresAssignment_1_1());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Rhs__Group_1__1__Impl"
+
+
+ // $ANTLR start "rule__InputExpression__Group__0"
+ // InternalFlaDsl.g:1536:1: rule__InputExpression__Group__0 : rule__InputExpression__Group__0__Impl rule__InputExpression__Group__1 ;
+ public final void rule__InputExpression__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:1540:1: ( rule__InputExpression__Group__0__Impl rule__InputExpression__Group__1 )
+ // InternalFlaDsl.g:1541:2: rule__InputExpression__Group__0__Impl rule__InputExpression__Group__1
+ {
+ pushFollow(FOLLOW_9);
+ rule__InputExpression__Group__0__Impl();
+
+ state._fsp--;
+
+ pushFollow(FOLLOW_2);
+ rule__InputExpression__Group__1();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__InputExpression__Group__0"
+
+
+ // $ANTLR start "rule__InputExpression__Group__0__Impl"
+ // InternalFlaDsl.g:1548:1: rule__InputExpression__Group__0__Impl : ( ( rule__InputExpression__Alternatives_0 ) ) ;
+ public final void rule__InputExpression__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:1552:1: ( ( ( rule__InputExpression__Alternatives_0 ) ) )
+ // InternalFlaDsl.g:1553:1: ( ( rule__InputExpression__Alternatives_0 ) )
+ {
+ // InternalFlaDsl.g:1553:1: ( ( rule__InputExpression__Alternatives_0 ) )
+ // InternalFlaDsl.g:1554:1: ( rule__InputExpression__Alternatives_0 )
+ {
+ before(grammarAccess.getInputExpressionAccess().getAlternatives_0());
+ // InternalFlaDsl.g:1555:1: ( rule__InputExpression__Alternatives_0 )
+ // InternalFlaDsl.g:1555:2: rule__InputExpression__Alternatives_0
+ {
+ pushFollow(FOLLOW_2);
+ rule__InputExpression__Alternatives_0();
+
+ state._fsp--;
+
+
+ }
+
+ after(grammarAccess.getInputExpressionAccess().getAlternatives_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__InputExpression__Group__0__Impl"
+
+
+ // $ANTLR start "rule__InputExpression__Group__1"
+ // InternalFlaDsl.g:1565:1: rule__InputExpression__Group__1 : rule__InputExpression__Group__1__Impl rule__InputExpression__Group__2 ;
+ public final void rule__InputExpression__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:1569:1: ( rule__InputExpression__Group__1__Impl rule__InputExpression__Group__2 )
+ // InternalFlaDsl.g:1570:2: rule__InputExpression__Group__1__Impl rule__InputExpression__Group__2
+ {
+ pushFollow(FOLLOW_10);
+ rule__InputExpression__Group__1__Impl();
+
+ state._fsp--;
+
+ pushFollow(FOLLOW_2);
+ rule__InputExpression__Group__2();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__InputExpression__Group__1"
+
+
+ // $ANTLR start "rule__InputExpression__Group__1__Impl"
+ // InternalFlaDsl.g:1577:1: rule__InputExpression__Group__1__Impl : ( '.' ) ;
+ public final void rule__InputExpression__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:1581:1: ( ( '.' ) )
+ // InternalFlaDsl.g:1582:1: ( '.' )
+ {
+ // InternalFlaDsl.g:1582:1: ( '.' )
+ // InternalFlaDsl.g:1583:1: '.'
+ {
+ before(grammarAccess.getInputExpressionAccess().getFullStopKeyword_1());
+ match(input,36,FOLLOW_2);
+ after(grammarAccess.getInputExpressionAccess().getFullStopKeyword_1());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__InputExpression__Group__1__Impl"
+
+
+ // $ANTLR start "rule__InputExpression__Group__2"
+ // InternalFlaDsl.g:1596:1: rule__InputExpression__Group__2 : rule__InputExpression__Group__2__Impl ;
+ public final void rule__InputExpression__Group__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:1600:1: ( rule__InputExpression__Group__2__Impl )
+ // InternalFlaDsl.g:1601:2: rule__InputExpression__Group__2__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__InputExpression__Group__2__Impl();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__InputExpression__Group__2"
+
+
+ // $ANTLR start "rule__InputExpression__Group__2__Impl"
+ // InternalFlaDsl.g:1607:1: rule__InputExpression__Group__2__Impl : ( ( rule__InputExpression__FailureExprAssignment_2 ) ) ;
+ public final void rule__InputExpression__Group__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:1611:1: ( ( ( rule__InputExpression__FailureExprAssignment_2 ) ) )
+ // InternalFlaDsl.g:1612:1: ( ( rule__InputExpression__FailureExprAssignment_2 ) )
+ {
+ // InternalFlaDsl.g:1612:1: ( ( rule__InputExpression__FailureExprAssignment_2 ) )
+ // InternalFlaDsl.g:1613:1: ( rule__InputExpression__FailureExprAssignment_2 )
+ {
+ before(grammarAccess.getInputExpressionAccess().getFailureExprAssignment_2());
+ // InternalFlaDsl.g:1614:1: ( rule__InputExpression__FailureExprAssignment_2 )
+ // InternalFlaDsl.g:1614:2: rule__InputExpression__FailureExprAssignment_2
+ {
+ pushFollow(FOLLOW_2);
+ rule__InputExpression__FailureExprAssignment_2();
+
+ state._fsp--;
+
+
+ }
+
+ after(grammarAccess.getInputExpressionAccess().getFailureExprAssignment_2());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__InputExpression__Group__2__Impl"
+
+
+ // $ANTLR start "rule__OutputExpression__Group__0"
+ // InternalFlaDsl.g:1630:1: rule__OutputExpression__Group__0 : rule__OutputExpression__Group__0__Impl rule__OutputExpression__Group__1 ;
+ public final void rule__OutputExpression__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:1634:1: ( rule__OutputExpression__Group__0__Impl rule__OutputExpression__Group__1 )
+ // InternalFlaDsl.g:1635:2: rule__OutputExpression__Group__0__Impl rule__OutputExpression__Group__1
+ {
+ pushFollow(FOLLOW_9);
+ rule__OutputExpression__Group__0__Impl();
+
+ state._fsp--;
+
+ pushFollow(FOLLOW_2);
+ rule__OutputExpression__Group__1();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__OutputExpression__Group__0"
+
+
+ // $ANTLR start "rule__OutputExpression__Group__0__Impl"
+ // InternalFlaDsl.g:1642:1: rule__OutputExpression__Group__0__Impl : ( ( rule__OutputExpression__Alternatives_0 ) ) ;
+ public final void rule__OutputExpression__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:1646:1: ( ( ( rule__OutputExpression__Alternatives_0 ) ) )
+ // InternalFlaDsl.g:1647:1: ( ( rule__OutputExpression__Alternatives_0 ) )
+ {
+ // InternalFlaDsl.g:1647:1: ( ( rule__OutputExpression__Alternatives_0 ) )
+ // InternalFlaDsl.g:1648:1: ( rule__OutputExpression__Alternatives_0 )
+ {
+ before(grammarAccess.getOutputExpressionAccess().getAlternatives_0());
+ // InternalFlaDsl.g:1649:1: ( rule__OutputExpression__Alternatives_0 )
+ // InternalFlaDsl.g:1649:2: rule__OutputExpression__Alternatives_0
+ {
+ pushFollow(FOLLOW_2);
+ rule__OutputExpression__Alternatives_0();
+
+ state._fsp--;
+
+
+ }
+
+ after(grammarAccess.getOutputExpressionAccess().getAlternatives_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__OutputExpression__Group__0__Impl"
+
+
+ // $ANTLR start "rule__OutputExpression__Group__1"
+ // InternalFlaDsl.g:1659:1: rule__OutputExpression__Group__1 : rule__OutputExpression__Group__1__Impl rule__OutputExpression__Group__2 ;
+ public final void rule__OutputExpression__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:1663:1: ( rule__OutputExpression__Group__1__Impl rule__OutputExpression__Group__2 )
+ // InternalFlaDsl.g:1664:2: rule__OutputExpression__Group__1__Impl rule__OutputExpression__Group__2
+ {
+ pushFollow(FOLLOW_10);
+ rule__OutputExpression__Group__1__Impl();
+
+ state._fsp--;
+
+ pushFollow(FOLLOW_2);
+ rule__OutputExpression__Group__2();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__OutputExpression__Group__1"
+
+
+ // $ANTLR start "rule__OutputExpression__Group__1__Impl"
+ // InternalFlaDsl.g:1671:1: rule__OutputExpression__Group__1__Impl : ( '.' ) ;
+ public final void rule__OutputExpression__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:1675:1: ( ( '.' ) )
+ // InternalFlaDsl.g:1676:1: ( '.' )
+ {
+ // InternalFlaDsl.g:1676:1: ( '.' )
+ // InternalFlaDsl.g:1677:1: '.'
+ {
+ before(grammarAccess.getOutputExpressionAccess().getFullStopKeyword_1());
+ match(input,36,FOLLOW_2);
+ after(grammarAccess.getOutputExpressionAccess().getFullStopKeyword_1());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__OutputExpression__Group__1__Impl"
+
+
+ // $ANTLR start "rule__OutputExpression__Group__2"
+ // InternalFlaDsl.g:1690:1: rule__OutputExpression__Group__2 : rule__OutputExpression__Group__2__Impl ;
+ public final void rule__OutputExpression__Group__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:1694:1: ( rule__OutputExpression__Group__2__Impl )
+ // InternalFlaDsl.g:1695:2: rule__OutputExpression__Group__2__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__OutputExpression__Group__2__Impl();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__OutputExpression__Group__2"
+
+
+ // $ANTLR start "rule__OutputExpression__Group__2__Impl"
+ // InternalFlaDsl.g:1701:1: rule__OutputExpression__Group__2__Impl : ( ( rule__OutputExpression__FailureExprAssignment_2 ) ) ;
+ public final void rule__OutputExpression__Group__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:1705:1: ( ( ( rule__OutputExpression__FailureExprAssignment_2 ) ) )
+ // InternalFlaDsl.g:1706:1: ( ( rule__OutputExpression__FailureExprAssignment_2 ) )
+ {
+ // InternalFlaDsl.g:1706:1: ( ( rule__OutputExpression__FailureExprAssignment_2 ) )
+ // InternalFlaDsl.g:1707:1: ( rule__OutputExpression__FailureExprAssignment_2 )
+ {
+ before(grammarAccess.getOutputExpressionAccess().getFailureExprAssignment_2());
+ // InternalFlaDsl.g:1708:1: ( rule__OutputExpression__FailureExprAssignment_2 )
+ // InternalFlaDsl.g:1708:2: rule__OutputExpression__FailureExprAssignment_2
+ {
+ pushFollow(FOLLOW_2);
+ rule__OutputExpression__FailureExprAssignment_2();
+
+ state._fsp--;
+
+
+ }
+
+ after(grammarAccess.getOutputExpressionAccess().getFailureExprAssignment_2());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__OutputExpression__Group__2__Impl"
+
+
+ // $ANTLR start "rule__InFailureExpr__Group_3__0"
+ // InternalFlaDsl.g:1724:1: rule__InFailureExpr__Group_3__0 : rule__InFailureExpr__Group_3__0__Impl rule__InFailureExpr__Group_3__1 ;
+ public final void rule__InFailureExpr__Group_3__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:1728:1: ( rule__InFailureExpr__Group_3__0__Impl rule__InFailureExpr__Group_3__1 )
+ // InternalFlaDsl.g:1729:2: rule__InFailureExpr__Group_3__0__Impl rule__InFailureExpr__Group_3__1
+ {
+ pushFollow(FOLLOW_11);
+ rule__InFailureExpr__Group_3__0__Impl();
+
+ state._fsp--;
+
+ pushFollow(FOLLOW_2);
+ rule__InFailureExpr__Group_3__1();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__InFailureExpr__Group_3__0"
+
+
+ // $ANTLR start "rule__InFailureExpr__Group_3__0__Impl"
+ // InternalFlaDsl.g:1736:1: rule__InFailureExpr__Group_3__0__Impl : ( '{' ) ;
+ public final void rule__InFailureExpr__Group_3__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:1740:1: ( ( '{' ) )
+ // InternalFlaDsl.g:1741:1: ( '{' )
+ {
+ // InternalFlaDsl.g:1741:1: ( '{' )
+ // InternalFlaDsl.g:1742:1: '{'
+ {
+ before(grammarAccess.getInFailureExprAccess().getLeftCurlyBracketKeyword_3_0());
+ match(input,37,FOLLOW_2);
+ after(grammarAccess.getInFailureExprAccess().getLeftCurlyBracketKeyword_3_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__InFailureExpr__Group_3__0__Impl"
+
+
+ // $ANTLR start "rule__InFailureExpr__Group_3__1"
+ // InternalFlaDsl.g:1755:1: rule__InFailureExpr__Group_3__1 : rule__InFailureExpr__Group_3__1__Impl rule__InFailureExpr__Group_3__2 ;
+ public final void rule__InFailureExpr__Group_3__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:1759:1: ( rule__InFailureExpr__Group_3__1__Impl rule__InFailureExpr__Group_3__2 )
+ // InternalFlaDsl.g:1760:2: rule__InFailureExpr__Group_3__1__Impl rule__InFailureExpr__Group_3__2
+ {
+ pushFollow(FOLLOW_7);
+ rule__InFailureExpr__Group_3__1__Impl();
+
+ state._fsp--;
+
+ pushFollow(FOLLOW_2);
+ rule__InFailureExpr__Group_3__2();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__InFailureExpr__Group_3__1"
+
+
+ // $ANTLR start "rule__InFailureExpr__Group_3__1__Impl"
+ // InternalFlaDsl.g:1767:1: rule__InFailureExpr__Group_3__1__Impl : ( ( rule__InFailureExpr__FailuresAssignment_3_1 ) ) ;
+ public final void rule__InFailureExpr__Group_3__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:1771:1: ( ( ( rule__InFailureExpr__FailuresAssignment_3_1 ) ) )
+ // InternalFlaDsl.g:1772:1: ( ( rule__InFailureExpr__FailuresAssignment_3_1 ) )
+ {
+ // InternalFlaDsl.g:1772:1: ( ( rule__InFailureExpr__FailuresAssignment_3_1 ) )
+ // InternalFlaDsl.g:1773:1: ( rule__InFailureExpr__FailuresAssignment_3_1 )
+ {
+ before(grammarAccess.getInFailureExprAccess().getFailuresAssignment_3_1());
+ // InternalFlaDsl.g:1774:1: ( rule__InFailureExpr__FailuresAssignment_3_1 )
+ // InternalFlaDsl.g:1774:2: rule__InFailureExpr__FailuresAssignment_3_1
+ {
+ pushFollow(FOLLOW_2);
+ rule__InFailureExpr__FailuresAssignment_3_1();
+
+ state._fsp--;
+
+
+ }
+
+ after(grammarAccess.getInFailureExprAccess().getFailuresAssignment_3_1());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__InFailureExpr__Group_3__1__Impl"
+
+
+ // $ANTLR start "rule__InFailureExpr__Group_3__2"
+ // InternalFlaDsl.g:1784:1: rule__InFailureExpr__Group_3__2 : rule__InFailureExpr__Group_3__2__Impl rule__InFailureExpr__Group_3__3 ;
+ public final void rule__InFailureExpr__Group_3__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:1788:1: ( rule__InFailureExpr__Group_3__2__Impl rule__InFailureExpr__Group_3__3 )
+ // InternalFlaDsl.g:1789:2: rule__InFailureExpr__Group_3__2__Impl rule__InFailureExpr__Group_3__3
+ {
+ pushFollow(FOLLOW_12);
+ rule__InFailureExpr__Group_3__2__Impl();
+
+ state._fsp--;
+
+ pushFollow(FOLLOW_2);
+ rule__InFailureExpr__Group_3__3();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__InFailureExpr__Group_3__2"
+
+
+ // $ANTLR start "rule__InFailureExpr__Group_3__2__Impl"
+ // InternalFlaDsl.g:1796:1: rule__InFailureExpr__Group_3__2__Impl : ( ( ( rule__InFailureExpr__Group_3_2__0 ) ) ( ( rule__InFailureExpr__Group_3_2__0 )* ) ) ;
+ public final void rule__InFailureExpr__Group_3__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:1800:1: ( ( ( ( rule__InFailureExpr__Group_3_2__0 ) ) ( ( rule__InFailureExpr__Group_3_2__0 )* ) ) )
+ // InternalFlaDsl.g:1801:1: ( ( ( rule__InFailureExpr__Group_3_2__0 ) ) ( ( rule__InFailureExpr__Group_3_2__0 )* ) )
+ {
+ // InternalFlaDsl.g:1801:1: ( ( ( rule__InFailureExpr__Group_3_2__0 ) ) ( ( rule__InFailureExpr__Group_3_2__0 )* ) )
+ // InternalFlaDsl.g:1802:1: ( ( rule__InFailureExpr__Group_3_2__0 ) ) ( ( rule__InFailureExpr__Group_3_2__0 )* )
+ {
+ // InternalFlaDsl.g:1802:1: ( ( rule__InFailureExpr__Group_3_2__0 ) )
+ // InternalFlaDsl.g:1803:1: ( rule__InFailureExpr__Group_3_2__0 )
+ {
+ before(grammarAccess.getInFailureExprAccess().getGroup_3_2());
+ // InternalFlaDsl.g:1804:1: ( rule__InFailureExpr__Group_3_2__0 )
+ // InternalFlaDsl.g:1804:2: rule__InFailureExpr__Group_3_2__0
+ {
+ pushFollow(FOLLOW_8);
+ rule__InFailureExpr__Group_3_2__0();
+
+ state._fsp--;
+
+
+ }
+
+ after(grammarAccess.getInFailureExprAccess().getGroup_3_2());
+
+ }
+
+ // InternalFlaDsl.g:1807:1: ( ( rule__InFailureExpr__Group_3_2__0 )* )
+ // InternalFlaDsl.g:1808:1: ( rule__InFailureExpr__Group_3_2__0 )*
+ {
+ before(grammarAccess.getInFailureExprAccess().getGroup_3_2());
+ // InternalFlaDsl.g:1809:1: ( rule__InFailureExpr__Group_3_2__0 )*
+ loop17:
+ do {
+ int alt17=2;
+ int LA17_0 = input.LA(1);
+
+ if ( (LA17_0==35) ) {
+ alt17=1;
+ }
+
+
+ switch (alt17) {
+ case 1 :
+ // InternalFlaDsl.g:1809:2: rule__InFailureExpr__Group_3_2__0
+ {
+ pushFollow(FOLLOW_8);
+ rule__InFailureExpr__Group_3_2__0();
+
+ state._fsp--;
+
+
+ }
+ break;
+
+ default :
+ break loop17;
+ }
+ } while (true);
+
+ after(grammarAccess.getInFailureExprAccess().getGroup_3_2());
+
+ }
+
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__InFailureExpr__Group_3__2__Impl"
+
+
+ // $ANTLR start "rule__InFailureExpr__Group_3__3"
+ // InternalFlaDsl.g:1820:1: rule__InFailureExpr__Group_3__3 : rule__InFailureExpr__Group_3__3__Impl ;
+ public final void rule__InFailureExpr__Group_3__3() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:1824:1: ( rule__InFailureExpr__Group_3__3__Impl )
+ // InternalFlaDsl.g:1825:2: rule__InFailureExpr__Group_3__3__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__InFailureExpr__Group_3__3__Impl();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__InFailureExpr__Group_3__3"
+
+
+ // $ANTLR start "rule__InFailureExpr__Group_3__3__Impl"
+ // InternalFlaDsl.g:1831:1: rule__InFailureExpr__Group_3__3__Impl : ( '}' ) ;
+ public final void rule__InFailureExpr__Group_3__3__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:1835:1: ( ( '}' ) )
+ // InternalFlaDsl.g:1836:1: ( '}' )
+ {
+ // InternalFlaDsl.g:1836:1: ( '}' )
+ // InternalFlaDsl.g:1837:1: '}'
+ {
+ before(grammarAccess.getInFailureExprAccess().getRightCurlyBracketKeyword_3_3());
+ match(input,38,FOLLOW_2);
+ after(grammarAccess.getInFailureExprAccess().getRightCurlyBracketKeyword_3_3());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__InFailureExpr__Group_3__3__Impl"
+
+
+ // $ANTLR start "rule__InFailureExpr__Group_3_2__0"
+ // InternalFlaDsl.g:1858:1: rule__InFailureExpr__Group_3_2__0 : rule__InFailureExpr__Group_3_2__0__Impl rule__InFailureExpr__Group_3_2__1 ;
+ public final void rule__InFailureExpr__Group_3_2__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:1862:1: ( rule__InFailureExpr__Group_3_2__0__Impl rule__InFailureExpr__Group_3_2__1 )
+ // InternalFlaDsl.g:1863:2: rule__InFailureExpr__Group_3_2__0__Impl rule__InFailureExpr__Group_3_2__1
+ {
+ pushFollow(FOLLOW_11);
+ rule__InFailureExpr__Group_3_2__0__Impl();
+
+ state._fsp--;
+
+ pushFollow(FOLLOW_2);
+ rule__InFailureExpr__Group_3_2__1();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__InFailureExpr__Group_3_2__0"
+
+
+ // $ANTLR start "rule__InFailureExpr__Group_3_2__0__Impl"
+ // InternalFlaDsl.g:1870:1: rule__InFailureExpr__Group_3_2__0__Impl : ( ',' ) ;
+ public final void rule__InFailureExpr__Group_3_2__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:1874:1: ( ( ',' ) )
+ // InternalFlaDsl.g:1875:1: ( ',' )
+ {
+ // InternalFlaDsl.g:1875:1: ( ',' )
+ // InternalFlaDsl.g:1876:1: ','
+ {
+ before(grammarAccess.getInFailureExprAccess().getCommaKeyword_3_2_0());
+ match(input,35,FOLLOW_2);
+ after(grammarAccess.getInFailureExprAccess().getCommaKeyword_3_2_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__InFailureExpr__Group_3_2__0__Impl"
+
+
+ // $ANTLR start "rule__InFailureExpr__Group_3_2__1"
+ // InternalFlaDsl.g:1889:1: rule__InFailureExpr__Group_3_2__1 : rule__InFailureExpr__Group_3_2__1__Impl ;
+ public final void rule__InFailureExpr__Group_3_2__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:1893:1: ( rule__InFailureExpr__Group_3_2__1__Impl )
+ // InternalFlaDsl.g:1894:2: rule__InFailureExpr__Group_3_2__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__InFailureExpr__Group_3_2__1__Impl();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__InFailureExpr__Group_3_2__1"
+
+
+ // $ANTLR start "rule__InFailureExpr__Group_3_2__1__Impl"
+ // InternalFlaDsl.g:1900:1: rule__InFailureExpr__Group_3_2__1__Impl : ( ( rule__InFailureExpr__FailuresAssignment_3_2_1 ) ) ;
+ public final void rule__InFailureExpr__Group_3_2__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:1904:1: ( ( ( rule__InFailureExpr__FailuresAssignment_3_2_1 ) ) )
+ // InternalFlaDsl.g:1905:1: ( ( rule__InFailureExpr__FailuresAssignment_3_2_1 ) )
+ {
+ // InternalFlaDsl.g:1905:1: ( ( rule__InFailureExpr__FailuresAssignment_3_2_1 ) )
+ // InternalFlaDsl.g:1906:1: ( rule__InFailureExpr__FailuresAssignment_3_2_1 )
+ {
+ before(grammarAccess.getInFailureExprAccess().getFailuresAssignment_3_2_1());
+ // InternalFlaDsl.g:1907:1: ( rule__InFailureExpr__FailuresAssignment_3_2_1 )
+ // InternalFlaDsl.g:1907:2: rule__InFailureExpr__FailuresAssignment_3_2_1
+ {
+ pushFollow(FOLLOW_2);
+ rule__InFailureExpr__FailuresAssignment_3_2_1();
+
+ state._fsp--;
+
+
+ }
+
+ after(grammarAccess.getInFailureExprAccess().getFailuresAssignment_3_2_1());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__InFailureExpr__Group_3_2__1__Impl"
+
+
+ // $ANTLR start "rule__OutFailureExpr__Group_3__0"
+ // InternalFlaDsl.g:1921:1: rule__OutFailureExpr__Group_3__0 : rule__OutFailureExpr__Group_3__0__Impl rule__OutFailureExpr__Group_3__1 ;
+ public final void rule__OutFailureExpr__Group_3__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:1925:1: ( rule__OutFailureExpr__Group_3__0__Impl rule__OutFailureExpr__Group_3__1 )
+ // InternalFlaDsl.g:1926:2: rule__OutFailureExpr__Group_3__0__Impl rule__OutFailureExpr__Group_3__1
+ {
+ pushFollow(FOLLOW_11);
+ rule__OutFailureExpr__Group_3__0__Impl();
+
+ state._fsp--;
+
+ pushFollow(FOLLOW_2);
+ rule__OutFailureExpr__Group_3__1();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__OutFailureExpr__Group_3__0"
+
+
+ // $ANTLR start "rule__OutFailureExpr__Group_3__0__Impl"
+ // InternalFlaDsl.g:1933:1: rule__OutFailureExpr__Group_3__0__Impl : ( '{' ) ;
+ public final void rule__OutFailureExpr__Group_3__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:1937:1: ( ( '{' ) )
+ // InternalFlaDsl.g:1938:1: ( '{' )
+ {
+ // InternalFlaDsl.g:1938:1: ( '{' )
+ // InternalFlaDsl.g:1939:1: '{'
+ {
+ before(grammarAccess.getOutFailureExprAccess().getLeftCurlyBracketKeyword_3_0());
+ match(input,37,FOLLOW_2);
+ after(grammarAccess.getOutFailureExprAccess().getLeftCurlyBracketKeyword_3_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__OutFailureExpr__Group_3__0__Impl"
+
+
+ // $ANTLR start "rule__OutFailureExpr__Group_3__1"
+ // InternalFlaDsl.g:1952:1: rule__OutFailureExpr__Group_3__1 : rule__OutFailureExpr__Group_3__1__Impl rule__OutFailureExpr__Group_3__2 ;
+ public final void rule__OutFailureExpr__Group_3__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:1956:1: ( rule__OutFailureExpr__Group_3__1__Impl rule__OutFailureExpr__Group_3__2 )
+ // InternalFlaDsl.g:1957:2: rule__OutFailureExpr__Group_3__1__Impl rule__OutFailureExpr__Group_3__2
+ {
+ pushFollow(FOLLOW_7);
+ rule__OutFailureExpr__Group_3__1__Impl();
+
+ state._fsp--;
+
+ pushFollow(FOLLOW_2);
+ rule__OutFailureExpr__Group_3__2();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__OutFailureExpr__Group_3__1"
+
+
+ // $ANTLR start "rule__OutFailureExpr__Group_3__1__Impl"
+ // InternalFlaDsl.g:1964:1: rule__OutFailureExpr__Group_3__1__Impl : ( ( rule__OutFailureExpr__FailuresAssignment_3_1 ) ) ;
+ public final void rule__OutFailureExpr__Group_3__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:1968:1: ( ( ( rule__OutFailureExpr__FailuresAssignment_3_1 ) ) )
+ // InternalFlaDsl.g:1969:1: ( ( rule__OutFailureExpr__FailuresAssignment_3_1 ) )
+ {
+ // InternalFlaDsl.g:1969:1: ( ( rule__OutFailureExpr__FailuresAssignment_3_1 ) )
+ // InternalFlaDsl.g:1970:1: ( rule__OutFailureExpr__FailuresAssignment_3_1 )
+ {
+ before(grammarAccess.getOutFailureExprAccess().getFailuresAssignment_3_1());
+ // InternalFlaDsl.g:1971:1: ( rule__OutFailureExpr__FailuresAssignment_3_1 )
+ // InternalFlaDsl.g:1971:2: rule__OutFailureExpr__FailuresAssignment_3_1
+ {
+ pushFollow(FOLLOW_2);
+ rule__OutFailureExpr__FailuresAssignment_3_1();
+
+ state._fsp--;
+
+
+ }
+
+ after(grammarAccess.getOutFailureExprAccess().getFailuresAssignment_3_1());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__OutFailureExpr__Group_3__1__Impl"
+
+
+ // $ANTLR start "rule__OutFailureExpr__Group_3__2"
+ // InternalFlaDsl.g:1981:1: rule__OutFailureExpr__Group_3__2 : rule__OutFailureExpr__Group_3__2__Impl rule__OutFailureExpr__Group_3__3 ;
+ public final void rule__OutFailureExpr__Group_3__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:1985:1: ( rule__OutFailureExpr__Group_3__2__Impl rule__OutFailureExpr__Group_3__3 )
+ // InternalFlaDsl.g:1986:2: rule__OutFailureExpr__Group_3__2__Impl rule__OutFailureExpr__Group_3__3
+ {
+ pushFollow(FOLLOW_12);
+ rule__OutFailureExpr__Group_3__2__Impl();
+
+ state._fsp--;
+
+ pushFollow(FOLLOW_2);
+ rule__OutFailureExpr__Group_3__3();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__OutFailureExpr__Group_3__2"
+
+
+ // $ANTLR start "rule__OutFailureExpr__Group_3__2__Impl"
+ // InternalFlaDsl.g:1993:1: rule__OutFailureExpr__Group_3__2__Impl : ( ( ( rule__OutFailureExpr__Group_3_2__0 ) ) ( ( rule__OutFailureExpr__Group_3_2__0 )* ) ) ;
+ public final void rule__OutFailureExpr__Group_3__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:1997:1: ( ( ( ( rule__OutFailureExpr__Group_3_2__0 ) ) ( ( rule__OutFailureExpr__Group_3_2__0 )* ) ) )
+ // InternalFlaDsl.g:1998:1: ( ( ( rule__OutFailureExpr__Group_3_2__0 ) ) ( ( rule__OutFailureExpr__Group_3_2__0 )* ) )
+ {
+ // InternalFlaDsl.g:1998:1: ( ( ( rule__OutFailureExpr__Group_3_2__0 ) ) ( ( rule__OutFailureExpr__Group_3_2__0 )* ) )
+ // InternalFlaDsl.g:1999:1: ( ( rule__OutFailureExpr__Group_3_2__0 ) ) ( ( rule__OutFailureExpr__Group_3_2__0 )* )
+ {
+ // InternalFlaDsl.g:1999:1: ( ( rule__OutFailureExpr__Group_3_2__0 ) )
+ // InternalFlaDsl.g:2000:1: ( rule__OutFailureExpr__Group_3_2__0 )
+ {
+ before(grammarAccess.getOutFailureExprAccess().getGroup_3_2());
+ // InternalFlaDsl.g:2001:1: ( rule__OutFailureExpr__Group_3_2__0 )
+ // InternalFlaDsl.g:2001:2: rule__OutFailureExpr__Group_3_2__0
+ {
+ pushFollow(FOLLOW_8);
+ rule__OutFailureExpr__Group_3_2__0();
+
+ state._fsp--;
+
+
+ }
+
+ after(grammarAccess.getOutFailureExprAccess().getGroup_3_2());
+
+ }
+
+ // InternalFlaDsl.g:2004:1: ( ( rule__OutFailureExpr__Group_3_2__0 )* )
+ // InternalFlaDsl.g:2005:1: ( rule__OutFailureExpr__Group_3_2__0 )*
+ {
+ before(grammarAccess.getOutFailureExprAccess().getGroup_3_2());
+ // InternalFlaDsl.g:2006:1: ( rule__OutFailureExpr__Group_3_2__0 )*
+ loop18:
+ do {
+ int alt18=2;
+ int LA18_0 = input.LA(1);
+
+ if ( (LA18_0==35) ) {
+ alt18=1;
+ }
+
+
+ switch (alt18) {
+ case 1 :
+ // InternalFlaDsl.g:2006:2: rule__OutFailureExpr__Group_3_2__0
+ {
+ pushFollow(FOLLOW_8);
+ rule__OutFailureExpr__Group_3_2__0();
+
+ state._fsp--;
+
+
+ }
+ break;
+
+ default :
+ break loop18;
+ }
+ } while (true);
+
+ after(grammarAccess.getOutFailureExprAccess().getGroup_3_2());
+
+ }
+
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__OutFailureExpr__Group_3__2__Impl"
+
+
+ // $ANTLR start "rule__OutFailureExpr__Group_3__3"
+ // InternalFlaDsl.g:2017:1: rule__OutFailureExpr__Group_3__3 : rule__OutFailureExpr__Group_3__3__Impl ;
+ public final void rule__OutFailureExpr__Group_3__3() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:2021:1: ( rule__OutFailureExpr__Group_3__3__Impl )
+ // InternalFlaDsl.g:2022:2: rule__OutFailureExpr__Group_3__3__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__OutFailureExpr__Group_3__3__Impl();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__OutFailureExpr__Group_3__3"
+
+
+ // $ANTLR start "rule__OutFailureExpr__Group_3__3__Impl"
+ // InternalFlaDsl.g:2028:1: rule__OutFailureExpr__Group_3__3__Impl : ( '}' ) ;
+ public final void rule__OutFailureExpr__Group_3__3__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:2032:1: ( ( '}' ) )
+ // InternalFlaDsl.g:2033:1: ( '}' )
+ {
+ // InternalFlaDsl.g:2033:1: ( '}' )
+ // InternalFlaDsl.g:2034:1: '}'
+ {
+ before(grammarAccess.getOutFailureExprAccess().getRightCurlyBracketKeyword_3_3());
+ match(input,38,FOLLOW_2);
+ after(grammarAccess.getOutFailureExprAccess().getRightCurlyBracketKeyword_3_3());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__OutFailureExpr__Group_3__3__Impl"
+
+
+ // $ANTLR start "rule__OutFailureExpr__Group_3_2__0"
+ // InternalFlaDsl.g:2055:1: rule__OutFailureExpr__Group_3_2__0 : rule__OutFailureExpr__Group_3_2__0__Impl rule__OutFailureExpr__Group_3_2__1 ;
+ public final void rule__OutFailureExpr__Group_3_2__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:2059:1: ( rule__OutFailureExpr__Group_3_2__0__Impl rule__OutFailureExpr__Group_3_2__1 )
+ // InternalFlaDsl.g:2060:2: rule__OutFailureExpr__Group_3_2__0__Impl rule__OutFailureExpr__Group_3_2__1
+ {
+ pushFollow(FOLLOW_11);
+ rule__OutFailureExpr__Group_3_2__0__Impl();
+
+ state._fsp--;
+
+ pushFollow(FOLLOW_2);
+ rule__OutFailureExpr__Group_3_2__1();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__OutFailureExpr__Group_3_2__0"
+
+
+ // $ANTLR start "rule__OutFailureExpr__Group_3_2__0__Impl"
+ // InternalFlaDsl.g:2067:1: rule__OutFailureExpr__Group_3_2__0__Impl : ( ',' ) ;
+ public final void rule__OutFailureExpr__Group_3_2__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:2071:1: ( ( ',' ) )
+ // InternalFlaDsl.g:2072:1: ( ',' )
+ {
+ // InternalFlaDsl.g:2072:1: ( ',' )
+ // InternalFlaDsl.g:2073:1: ','
+ {
+ before(grammarAccess.getOutFailureExprAccess().getCommaKeyword_3_2_0());
+ match(input,35,FOLLOW_2);
+ after(grammarAccess.getOutFailureExprAccess().getCommaKeyword_3_2_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__OutFailureExpr__Group_3_2__0__Impl"
+
+
+ // $ANTLR start "rule__OutFailureExpr__Group_3_2__1"
+ // InternalFlaDsl.g:2086:1: rule__OutFailureExpr__Group_3_2__1 : rule__OutFailureExpr__Group_3_2__1__Impl ;
+ public final void rule__OutFailureExpr__Group_3_2__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:2090:1: ( rule__OutFailureExpr__Group_3_2__1__Impl )
+ // InternalFlaDsl.g:2091:2: rule__OutFailureExpr__Group_3_2__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__OutFailureExpr__Group_3_2__1__Impl();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__OutFailureExpr__Group_3_2__1"
+
+
+ // $ANTLR start "rule__OutFailureExpr__Group_3_2__1__Impl"
+ // InternalFlaDsl.g:2097:1: rule__OutFailureExpr__Group_3_2__1__Impl : ( ( rule__OutFailureExpr__FailuresAssignment_3_2_1 ) ) ;
+ public final void rule__OutFailureExpr__Group_3_2__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:2101:1: ( ( ( rule__OutFailureExpr__FailuresAssignment_3_2_1 ) ) )
+ // InternalFlaDsl.g:2102:1: ( ( rule__OutFailureExpr__FailuresAssignment_3_2_1 ) )
+ {
+ // InternalFlaDsl.g:2102:1: ( ( rule__OutFailureExpr__FailuresAssignment_3_2_1 ) )
+ // InternalFlaDsl.g:2103:1: ( rule__OutFailureExpr__FailuresAssignment_3_2_1 )
+ {
+ before(grammarAccess.getOutFailureExprAccess().getFailuresAssignment_3_2_1());
+ // InternalFlaDsl.g:2104:1: ( rule__OutFailureExpr__FailuresAssignment_3_2_1 )
+ // InternalFlaDsl.g:2104:2: rule__OutFailureExpr__FailuresAssignment_3_2_1
+ {
+ pushFollow(FOLLOW_2);
+ rule__OutFailureExpr__FailuresAssignment_3_2_1();
+
+ state._fsp--;
+
+
+ }
+
+ after(grammarAccess.getOutFailureExprAccess().getFailuresAssignment_3_2_1());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__OutFailureExpr__Group_3_2__1__Impl"
+
+
+ // $ANTLR start "rule__FailureDefinition__Group__0"
+ // InternalFlaDsl.g:2118:1: rule__FailureDefinition__Group__0 : rule__FailureDefinition__Group__0__Impl rule__FailureDefinition__Group__1 ;
+ public final void rule__FailureDefinition__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:2122:1: ( rule__FailureDefinition__Group__0__Impl rule__FailureDefinition__Group__1 )
+ // InternalFlaDsl.g:2123:2: rule__FailureDefinition__Group__0__Impl rule__FailureDefinition__Group__1
+ {
+ pushFollow(FOLLOW_11);
+ rule__FailureDefinition__Group__0__Impl();
+
+ state._fsp--;
+
+ pushFollow(FOLLOW_2);
+ rule__FailureDefinition__Group__1();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__FailureDefinition__Group__0"
+
+
+ // $ANTLR start "rule__FailureDefinition__Group__0__Impl"
+ // InternalFlaDsl.g:2130:1: rule__FailureDefinition__Group__0__Impl : ( () ) ;
+ public final void rule__FailureDefinition__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:2134:1: ( ( () ) )
+ // InternalFlaDsl.g:2135:1: ( () )
+ {
+ // InternalFlaDsl.g:2135:1: ( () )
+ // InternalFlaDsl.g:2136:1: ()
+ {
+ before(grammarAccess.getFailureDefinitionAccess().getFailureDefinitionAction_0());
+ // InternalFlaDsl.g:2137:1: ()
+ // InternalFlaDsl.g:2139:1:
+ {
+ }
+
+ after(grammarAccess.getFailureDefinitionAccess().getFailureDefinitionAction_0());
+
+ }
+
+
+ }
+
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__FailureDefinition__Group__0__Impl"
+
+
+ // $ANTLR start "rule__FailureDefinition__Group__1"
+ // InternalFlaDsl.g:2149:1: rule__FailureDefinition__Group__1 : rule__FailureDefinition__Group__1__Impl rule__FailureDefinition__Group__2 ;
+ public final void rule__FailureDefinition__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:2153:1: ( rule__FailureDefinition__Group__1__Impl rule__FailureDefinition__Group__2 )
+ // InternalFlaDsl.g:2154:2: rule__FailureDefinition__Group__1__Impl rule__FailureDefinition__Group__2
+ {
+ pushFollow(FOLLOW_9);
+ rule__FailureDefinition__Group__1__Impl();
+
+ state._fsp--;
+
+ pushFollow(FOLLOW_2);
+ rule__FailureDefinition__Group__2();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__FailureDefinition__Group__1"
+
+
+ // $ANTLR start "rule__FailureDefinition__Group__1__Impl"
+ // InternalFlaDsl.g:2161:1: rule__FailureDefinition__Group__1__Impl : ( ( rule__FailureDefinition__TypeAssignment_1 ) ) ;
+ public final void rule__FailureDefinition__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:2165:1: ( ( ( rule__FailureDefinition__TypeAssignment_1 ) ) )
+ // InternalFlaDsl.g:2166:1: ( ( rule__FailureDefinition__TypeAssignment_1 ) )
+ {
+ // InternalFlaDsl.g:2166:1: ( ( rule__FailureDefinition__TypeAssignment_1 ) )
+ // InternalFlaDsl.g:2167:1: ( rule__FailureDefinition__TypeAssignment_1 )
+ {
+ before(grammarAccess.getFailureDefinitionAccess().getTypeAssignment_1());
+ // InternalFlaDsl.g:2168:1: ( rule__FailureDefinition__TypeAssignment_1 )
+ // InternalFlaDsl.g:2168:2: rule__FailureDefinition__TypeAssignment_1
+ {
+ pushFollow(FOLLOW_2);
+ rule__FailureDefinition__TypeAssignment_1();
+
+ state._fsp--;
+
+
+ }
+
+ after(grammarAccess.getFailureDefinitionAccess().getTypeAssignment_1());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__FailureDefinition__Group__1__Impl"
+
+
+ // $ANTLR start "rule__FailureDefinition__Group__2"
+ // InternalFlaDsl.g:2178:1: rule__FailureDefinition__Group__2 : rule__FailureDefinition__Group__2__Impl ;
+ public final void rule__FailureDefinition__Group__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:2182:1: ( rule__FailureDefinition__Group__2__Impl )
+ // InternalFlaDsl.g:2183:2: rule__FailureDefinition__Group__2__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__FailureDefinition__Group__2__Impl();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__FailureDefinition__Group__2"
+
+
+ // $ANTLR start "rule__FailureDefinition__Group__2__Impl"
+ // InternalFlaDsl.g:2189:1: rule__FailureDefinition__Group__2__Impl : ( ( rule__FailureDefinition__Group_2__0 )? ) ;
+ public final void rule__FailureDefinition__Group__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:2193:1: ( ( ( rule__FailureDefinition__Group_2__0 )? ) )
+ // InternalFlaDsl.g:2194:1: ( ( rule__FailureDefinition__Group_2__0 )? )
+ {
+ // InternalFlaDsl.g:2194:1: ( ( rule__FailureDefinition__Group_2__0 )? )
+ // InternalFlaDsl.g:2195:1: ( rule__FailureDefinition__Group_2__0 )?
+ {
+ before(grammarAccess.getFailureDefinitionAccess().getGroup_2());
+ // InternalFlaDsl.g:2196:1: ( rule__FailureDefinition__Group_2__0 )?
+ int alt19=2;
+ int LA19_0 = input.LA(1);
+
+ if ( (LA19_0==36) ) {
+ alt19=1;
+ }
+ switch (alt19) {
+ case 1 :
+ // InternalFlaDsl.g:2196:2: rule__FailureDefinition__Group_2__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__FailureDefinition__Group_2__0();
+
+ state._fsp--;
+
+
+ }
+ break;
+
+ }
+
+ after(grammarAccess.getFailureDefinitionAccess().getGroup_2());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__FailureDefinition__Group__2__Impl"
+
+
+ // $ANTLR start "rule__FailureDefinition__Group_2__0"
+ // InternalFlaDsl.g:2212:1: rule__FailureDefinition__Group_2__0 : rule__FailureDefinition__Group_2__0__Impl rule__FailureDefinition__Group_2__1 ;
+ public final void rule__FailureDefinition__Group_2__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:2216:1: ( rule__FailureDefinition__Group_2__0__Impl rule__FailureDefinition__Group_2__1 )
+ // InternalFlaDsl.g:2217:2: rule__FailureDefinition__Group_2__0__Impl rule__FailureDefinition__Group_2__1
+ {
+ pushFollow(FOLLOW_13);
+ rule__FailureDefinition__Group_2__0__Impl();
+
+ state._fsp--;
+
+ pushFollow(FOLLOW_2);
+ rule__FailureDefinition__Group_2__1();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__FailureDefinition__Group_2__0"
+
+
+ // $ANTLR start "rule__FailureDefinition__Group_2__0__Impl"
+ // InternalFlaDsl.g:2224:1: rule__FailureDefinition__Group_2__0__Impl : ( '.' ) ;
+ public final void rule__FailureDefinition__Group_2__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:2228:1: ( ( '.' ) )
+ // InternalFlaDsl.g:2229:1: ( '.' )
+ {
+ // InternalFlaDsl.g:2229:1: ( '.' )
+ // InternalFlaDsl.g:2230:1: '.'
+ {
+ before(grammarAccess.getFailureDefinitionAccess().getFullStopKeyword_2_0());
+ match(input,36,FOLLOW_2);
+ after(grammarAccess.getFailureDefinitionAccess().getFullStopKeyword_2_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__FailureDefinition__Group_2__0__Impl"
+
+
+ // $ANTLR start "rule__FailureDefinition__Group_2__1"
+ // InternalFlaDsl.g:2243:1: rule__FailureDefinition__Group_2__1 : rule__FailureDefinition__Group_2__1__Impl ;
+ public final void rule__FailureDefinition__Group_2__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:2247:1: ( rule__FailureDefinition__Group_2__1__Impl )
+ // InternalFlaDsl.g:2248:2: rule__FailureDefinition__Group_2__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__FailureDefinition__Group_2__1__Impl();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__FailureDefinition__Group_2__1"
+
+
+ // $ANTLR start "rule__FailureDefinition__Group_2__1__Impl"
+ // InternalFlaDsl.g:2254:1: rule__FailureDefinition__Group_2__1__Impl : ( ( rule__FailureDefinition__AcidAvoidableAssignment_2_1 ) ) ;
+ public final void rule__FailureDefinition__Group_2__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:2258:1: ( ( ( rule__FailureDefinition__AcidAvoidableAssignment_2_1 ) ) )
+ // InternalFlaDsl.g:2259:1: ( ( rule__FailureDefinition__AcidAvoidableAssignment_2_1 ) )
+ {
+ // InternalFlaDsl.g:2259:1: ( ( rule__FailureDefinition__AcidAvoidableAssignment_2_1 ) )
+ // InternalFlaDsl.g:2260:1: ( rule__FailureDefinition__AcidAvoidableAssignment_2_1 )
+ {
+ before(grammarAccess.getFailureDefinitionAccess().getAcidAvoidableAssignment_2_1());
+ // InternalFlaDsl.g:2261:1: ( rule__FailureDefinition__AcidAvoidableAssignment_2_1 )
+ // InternalFlaDsl.g:2261:2: rule__FailureDefinition__AcidAvoidableAssignment_2_1
+ {
+ pushFollow(FOLLOW_2);
+ rule__FailureDefinition__AcidAvoidableAssignment_2_1();
+
+ state._fsp--;
+
+
+ }
+
+ after(grammarAccess.getFailureDefinitionAccess().getAcidAvoidableAssignment_2_1());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__FailureDefinition__Group_2__1__Impl"
+
+
+ // $ANTLR start "rule__NoFailureDefinition__Group__0"
+ // InternalFlaDsl.g:2275:1: rule__NoFailureDefinition__Group__0 : rule__NoFailureDefinition__Group__0__Impl rule__NoFailureDefinition__Group__1 ;
+ public final void rule__NoFailureDefinition__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:2279:1: ( rule__NoFailureDefinition__Group__0__Impl rule__NoFailureDefinition__Group__1 )
+ // InternalFlaDsl.g:2280:2: rule__NoFailureDefinition__Group__0__Impl rule__NoFailureDefinition__Group__1
+ {
+ pushFollow(FOLLOW_14);
+ rule__NoFailureDefinition__Group__0__Impl();
+
+ state._fsp--;
+
+ pushFollow(FOLLOW_2);
+ rule__NoFailureDefinition__Group__1();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__NoFailureDefinition__Group__0"
+
+
+ // $ANTLR start "rule__NoFailureDefinition__Group__0__Impl"
+ // InternalFlaDsl.g:2287:1: rule__NoFailureDefinition__Group__0__Impl : ( () ) ;
+ public final void rule__NoFailureDefinition__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:2291:1: ( ( () ) )
+ // InternalFlaDsl.g:2292:1: ( () )
+ {
+ // InternalFlaDsl.g:2292:1: ( () )
+ // InternalFlaDsl.g:2293:1: ()
+ {
+ before(grammarAccess.getNoFailureDefinitionAccess().getNoFailureDefinitionAction_0());
+ // InternalFlaDsl.g:2294:1: ()
+ // InternalFlaDsl.g:2296:1:
+ {
+ }
+
+ after(grammarAccess.getNoFailureDefinitionAccess().getNoFailureDefinitionAction_0());
+
+ }
+
+
+ }
+
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__NoFailureDefinition__Group__0__Impl"
+
+
+ // $ANTLR start "rule__NoFailureDefinition__Group__1"
+ // InternalFlaDsl.g:2306:1: rule__NoFailureDefinition__Group__1 : rule__NoFailureDefinition__Group__1__Impl ;
+ public final void rule__NoFailureDefinition__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:2310:1: ( rule__NoFailureDefinition__Group__1__Impl )
+ // InternalFlaDsl.g:2311:2: rule__NoFailureDefinition__Group__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__NoFailureDefinition__Group__1__Impl();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__NoFailureDefinition__Group__1"
+
+
+ // $ANTLR start "rule__NoFailureDefinition__Group__1__Impl"
+ // InternalFlaDsl.g:2317:1: rule__NoFailureDefinition__Group__1__Impl : ( 'noFailure' ) ;
+ public final void rule__NoFailureDefinition__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:2321:1: ( ( 'noFailure' ) )
+ // InternalFlaDsl.g:2322:1: ( 'noFailure' )
+ {
+ // InternalFlaDsl.g:2322:1: ( 'noFailure' )
+ // InternalFlaDsl.g:2323:1: 'noFailure'
+ {
+ before(grammarAccess.getNoFailureDefinitionAccess().getNoFailureKeyword_1());
+ match(input,39,FOLLOW_2);
+ after(grammarAccess.getNoFailureDefinitionAccess().getNoFailureKeyword_1());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__NoFailureDefinition__Group__1__Impl"
+
+
+ // $ANTLR start "rule__ComplexNofailureDefinition__Group__0"
+ // InternalFlaDsl.g:2340:1: rule__ComplexNofailureDefinition__Group__0 : rule__ComplexNofailureDefinition__Group__0__Impl rule__ComplexNofailureDefinition__Group__1 ;
+ public final void rule__ComplexNofailureDefinition__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:2344:1: ( rule__ComplexNofailureDefinition__Group__0__Impl rule__ComplexNofailureDefinition__Group__1 )
+ // InternalFlaDsl.g:2345:2: rule__ComplexNofailureDefinition__Group__0__Impl rule__ComplexNofailureDefinition__Group__1
+ {
+ pushFollow(FOLLOW_14);
+ rule__ComplexNofailureDefinition__Group__0__Impl();
+
+ state._fsp--;
+
+ pushFollow(FOLLOW_2);
+ rule__ComplexNofailureDefinition__Group__1();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ComplexNofailureDefinition__Group__0"
+
+
+ // $ANTLR start "rule__ComplexNofailureDefinition__Group__0__Impl"
+ // InternalFlaDsl.g:2352:1: rule__ComplexNofailureDefinition__Group__0__Impl : ( () ) ;
+ public final void rule__ComplexNofailureDefinition__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:2356:1: ( ( () ) )
+ // InternalFlaDsl.g:2357:1: ( () )
+ {
+ // InternalFlaDsl.g:2357:1: ( () )
+ // InternalFlaDsl.g:2358:1: ()
+ {
+ before(grammarAccess.getComplexNofailureDefinitionAccess().getNoFailureDefinitionAction_0());
+ // InternalFlaDsl.g:2359:1: ()
+ // InternalFlaDsl.g:2361:1:
+ {
+ }
+
+ after(grammarAccess.getComplexNofailureDefinitionAccess().getNoFailureDefinitionAction_0());
+
+ }
+
+
+ }
+
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ComplexNofailureDefinition__Group__0__Impl"
+
+
+ // $ANTLR start "rule__ComplexNofailureDefinition__Group__1"
+ // InternalFlaDsl.g:2371:1: rule__ComplexNofailureDefinition__Group__1 : rule__ComplexNofailureDefinition__Group__1__Impl rule__ComplexNofailureDefinition__Group__2 ;
+ public final void rule__ComplexNofailureDefinition__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:2375:1: ( rule__ComplexNofailureDefinition__Group__1__Impl rule__ComplexNofailureDefinition__Group__2 )
+ // InternalFlaDsl.g:2376:2: rule__ComplexNofailureDefinition__Group__1__Impl rule__ComplexNofailureDefinition__Group__2
+ {
+ pushFollow(FOLLOW_9);
+ rule__ComplexNofailureDefinition__Group__1__Impl();
+
+ state._fsp--;
+
+ pushFollow(FOLLOW_2);
+ rule__ComplexNofailureDefinition__Group__2();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ComplexNofailureDefinition__Group__1"
+
+
+ // $ANTLR start "rule__ComplexNofailureDefinition__Group__1__Impl"
+ // InternalFlaDsl.g:2383:1: rule__ComplexNofailureDefinition__Group__1__Impl : ( 'noFailure' ) ;
+ public final void rule__ComplexNofailureDefinition__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:2387:1: ( ( 'noFailure' ) )
+ // InternalFlaDsl.g:2388:1: ( 'noFailure' )
+ {
+ // InternalFlaDsl.g:2388:1: ( 'noFailure' )
+ // InternalFlaDsl.g:2389:1: 'noFailure'
+ {
+ before(grammarAccess.getComplexNofailureDefinitionAccess().getNoFailureKeyword_1());
+ match(input,39,FOLLOW_2);
+ after(grammarAccess.getComplexNofailureDefinitionAccess().getNoFailureKeyword_1());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ComplexNofailureDefinition__Group__1__Impl"
+
+
+ // $ANTLR start "rule__ComplexNofailureDefinition__Group__2"
+ // InternalFlaDsl.g:2402:1: rule__ComplexNofailureDefinition__Group__2 : rule__ComplexNofailureDefinition__Group__2__Impl rule__ComplexNofailureDefinition__Group__3 ;
+ public final void rule__ComplexNofailureDefinition__Group__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:2406:1: ( rule__ComplexNofailureDefinition__Group__2__Impl rule__ComplexNofailureDefinition__Group__3 )
+ // InternalFlaDsl.g:2407:2: rule__ComplexNofailureDefinition__Group__2__Impl rule__ComplexNofailureDefinition__Group__3
+ {
+ pushFollow(FOLLOW_15);
+ rule__ComplexNofailureDefinition__Group__2__Impl();
+
+ state._fsp--;
+
+ pushFollow(FOLLOW_2);
+ rule__ComplexNofailureDefinition__Group__3();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ComplexNofailureDefinition__Group__2"
+
+
+ // $ANTLR start "rule__ComplexNofailureDefinition__Group__2__Impl"
+ // InternalFlaDsl.g:2414:1: rule__ComplexNofailureDefinition__Group__2__Impl : ( '.' ) ;
+ public final void rule__ComplexNofailureDefinition__Group__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:2418:1: ( ( '.' ) )
+ // InternalFlaDsl.g:2419:1: ( '.' )
+ {
+ // InternalFlaDsl.g:2419:1: ( '.' )
+ // InternalFlaDsl.g:2420:1: '.'
+ {
+ before(grammarAccess.getComplexNofailureDefinitionAccess().getFullStopKeyword_2());
+ match(input,36,FOLLOW_2);
+ after(grammarAccess.getComplexNofailureDefinitionAccess().getFullStopKeyword_2());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ComplexNofailureDefinition__Group__2__Impl"
+
+
+ // $ANTLR start "rule__ComplexNofailureDefinition__Group__3"
+ // InternalFlaDsl.g:2433:1: rule__ComplexNofailureDefinition__Group__3 : rule__ComplexNofailureDefinition__Group__3__Impl ;
+ public final void rule__ComplexNofailureDefinition__Group__3() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:2437:1: ( rule__ComplexNofailureDefinition__Group__3__Impl )
+ // InternalFlaDsl.g:2438:2: rule__ComplexNofailureDefinition__Group__3__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__ComplexNofailureDefinition__Group__3__Impl();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ComplexNofailureDefinition__Group__3"
+
+
+ // $ANTLR start "rule__ComplexNofailureDefinition__Group__3__Impl"
+ // InternalFlaDsl.g:2444:1: rule__ComplexNofailureDefinition__Group__3__Impl : ( ( rule__ComplexNofailureDefinition__AcidMitigationAssignment_3 ) ) ;
+ public final void rule__ComplexNofailureDefinition__Group__3__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:2448:1: ( ( ( rule__ComplexNofailureDefinition__AcidMitigationAssignment_3 ) ) )
+ // InternalFlaDsl.g:2449:1: ( ( rule__ComplexNofailureDefinition__AcidMitigationAssignment_3 ) )
+ {
+ // InternalFlaDsl.g:2449:1: ( ( rule__ComplexNofailureDefinition__AcidMitigationAssignment_3 ) )
+ // InternalFlaDsl.g:2450:1: ( rule__ComplexNofailureDefinition__AcidMitigationAssignment_3 )
+ {
+ before(grammarAccess.getComplexNofailureDefinitionAccess().getAcidMitigationAssignment_3());
+ // InternalFlaDsl.g:2451:1: ( rule__ComplexNofailureDefinition__AcidMitigationAssignment_3 )
+ // InternalFlaDsl.g:2451:2: rule__ComplexNofailureDefinition__AcidMitigationAssignment_3
+ {
+ pushFollow(FOLLOW_2);
+ rule__ComplexNofailureDefinition__AcidMitigationAssignment_3();
+
+ state._fsp--;
+
+
+ }
+
+ after(grammarAccess.getComplexNofailureDefinitionAccess().getAcidMitigationAssignment_3());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ComplexNofailureDefinition__Group__3__Impl"
+
+
+ // $ANTLR start "rule__WildcardDefinition__Group__0"
+ // InternalFlaDsl.g:2469:1: rule__WildcardDefinition__Group__0 : rule__WildcardDefinition__Group__0__Impl rule__WildcardDefinition__Group__1 ;
+ public final void rule__WildcardDefinition__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:2473:1: ( rule__WildcardDefinition__Group__0__Impl rule__WildcardDefinition__Group__1 )
+ // InternalFlaDsl.g:2474:2: rule__WildcardDefinition__Group__0__Impl rule__WildcardDefinition__Group__1
+ {
+ pushFollow(FOLLOW_16);
+ rule__WildcardDefinition__Group__0__Impl();
+
+ state._fsp--;
+
+ pushFollow(FOLLOW_2);
+ rule__WildcardDefinition__Group__1();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__WildcardDefinition__Group__0"
+
+
+ // $ANTLR start "rule__WildcardDefinition__Group__0__Impl"
+ // InternalFlaDsl.g:2481:1: rule__WildcardDefinition__Group__0__Impl : ( () ) ;
+ public final void rule__WildcardDefinition__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:2485:1: ( ( () ) )
+ // InternalFlaDsl.g:2486:1: ( () )
+ {
+ // InternalFlaDsl.g:2486:1: ( () )
+ // InternalFlaDsl.g:2487:1: ()
+ {
+ before(grammarAccess.getWildcardDefinitionAccess().getWildcardDefinitionAction_0());
+ // InternalFlaDsl.g:2488:1: ()
+ // InternalFlaDsl.g:2490:1:
+ {
+ }
+
+ after(grammarAccess.getWildcardDefinitionAccess().getWildcardDefinitionAction_0());
+
+ }
+
+
+ }
+
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__WildcardDefinition__Group__0__Impl"
+
+
+ // $ANTLR start "rule__WildcardDefinition__Group__1"
+ // InternalFlaDsl.g:2500:1: rule__WildcardDefinition__Group__1 : rule__WildcardDefinition__Group__1__Impl ;
+ public final void rule__WildcardDefinition__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:2504:1: ( rule__WildcardDefinition__Group__1__Impl )
+ // InternalFlaDsl.g:2505:2: rule__WildcardDefinition__Group__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__WildcardDefinition__Group__1__Impl();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__WildcardDefinition__Group__1"
+
+
+ // $ANTLR start "rule__WildcardDefinition__Group__1__Impl"
+ // InternalFlaDsl.g:2511:1: rule__WildcardDefinition__Group__1__Impl : ( 'wildcard' ) ;
+ public final void rule__WildcardDefinition__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:2515:1: ( ( 'wildcard' ) )
+ // InternalFlaDsl.g:2516:1: ( 'wildcard' )
+ {
+ // InternalFlaDsl.g:2516:1: ( 'wildcard' )
+ // InternalFlaDsl.g:2517:1: 'wildcard'
+ {
+ before(grammarAccess.getWildcardDefinitionAccess().getWildcardKeyword_1());
+ match(input,40,FOLLOW_2);
+ after(grammarAccess.getWildcardDefinitionAccess().getWildcardKeyword_1());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__WildcardDefinition__Group__1__Impl"
+
+
+ // $ANTLR start "rule__VariableDefinition__Group__0"
+ // InternalFlaDsl.g:2534:1: rule__VariableDefinition__Group__0 : rule__VariableDefinition__Group__0__Impl rule__VariableDefinition__Group__1 ;
+ public final void rule__VariableDefinition__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:2538:1: ( rule__VariableDefinition__Group__0__Impl rule__VariableDefinition__Group__1 )
+ // InternalFlaDsl.g:2539:2: rule__VariableDefinition__Group__0__Impl rule__VariableDefinition__Group__1
+ {
+ pushFollow(FOLLOW_10);
+ rule__VariableDefinition__Group__0__Impl();
+
+ state._fsp--;
+
+ pushFollow(FOLLOW_2);
+ rule__VariableDefinition__Group__1();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__VariableDefinition__Group__0"
+
+
+ // $ANTLR start "rule__VariableDefinition__Group__0__Impl"
+ // InternalFlaDsl.g:2546:1: rule__VariableDefinition__Group__0__Impl : ( () ) ;
+ public final void rule__VariableDefinition__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:2550:1: ( ( () ) )
+ // InternalFlaDsl.g:2551:1: ( () )
+ {
+ // InternalFlaDsl.g:2551:1: ( () )
+ // InternalFlaDsl.g:2552:1: ()
+ {
+ before(grammarAccess.getVariableDefinitionAccess().getVariableDefinitionAction_0());
+ // InternalFlaDsl.g:2553:1: ()
+ // InternalFlaDsl.g:2555:1:
+ {
+ }
+
+ after(grammarAccess.getVariableDefinitionAccess().getVariableDefinitionAction_0());
+
+ }
+
+
+ }
+
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__VariableDefinition__Group__0__Impl"
+
+
+ // $ANTLR start "rule__VariableDefinition__Group__1"
+ // InternalFlaDsl.g:2565:1: rule__VariableDefinition__Group__1 : rule__VariableDefinition__Group__1__Impl ;
+ public final void rule__VariableDefinition__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:2569:1: ( rule__VariableDefinition__Group__1__Impl )
+ // InternalFlaDsl.g:2570:2: rule__VariableDefinition__Group__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__VariableDefinition__Group__1__Impl();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__VariableDefinition__Group__1"
+
+
+ // $ANTLR start "rule__VariableDefinition__Group__1__Impl"
+ // InternalFlaDsl.g:2576:1: rule__VariableDefinition__Group__1__Impl : ( ( rule__VariableDefinition__VariableNameAssignment_1 ) ) ;
+ public final void rule__VariableDefinition__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:2580:1: ( ( ( rule__VariableDefinition__VariableNameAssignment_1 ) ) )
+ // InternalFlaDsl.g:2581:1: ( ( rule__VariableDefinition__VariableNameAssignment_1 ) )
+ {
+ // InternalFlaDsl.g:2581:1: ( ( rule__VariableDefinition__VariableNameAssignment_1 ) )
+ // InternalFlaDsl.g:2582:1: ( rule__VariableDefinition__VariableNameAssignment_1 )
+ {
+ before(grammarAccess.getVariableDefinitionAccess().getVariableNameAssignment_1());
+ // InternalFlaDsl.g:2583:1: ( rule__VariableDefinition__VariableNameAssignment_1 )
+ // InternalFlaDsl.g:2583:2: rule__VariableDefinition__VariableNameAssignment_1
+ {
+ pushFollow(FOLLOW_2);
+ rule__VariableDefinition__VariableNameAssignment_1();
+
+ state._fsp--;
+
+
+ }
+
+ after(grammarAccess.getVariableDefinitionAccess().getVariableNameAssignment_1());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__VariableDefinition__Group__1__Impl"
+
+
+ // $ANTLR start "rule__ACIDavoidable__Group__0"
+ // InternalFlaDsl.g:2597:1: rule__ACIDavoidable__Group__0 : rule__ACIDavoidable__Group__0__Impl rule__ACIDavoidable__Group__1 ;
+ public final void rule__ACIDavoidable__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:2601:1: ( rule__ACIDavoidable__Group__0__Impl rule__ACIDavoidable__Group__1 )
+ // InternalFlaDsl.g:2602:2: rule__ACIDavoidable__Group__0__Impl rule__ACIDavoidable__Group__1
+ {
+ pushFollow(FOLLOW_9);
+ rule__ACIDavoidable__Group__0__Impl();
+
+ state._fsp--;
+
+ pushFollow(FOLLOW_2);
+ rule__ACIDavoidable__Group__1();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ACIDavoidable__Group__0"
+
+
+ // $ANTLR start "rule__ACIDavoidable__Group__0__Impl"
+ // InternalFlaDsl.g:2609:1: rule__ACIDavoidable__Group__0__Impl : ( ( rule__ACIDavoidable__AAssignment_0 ) ) ;
+ public final void rule__ACIDavoidable__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:2613:1: ( ( ( rule__ACIDavoidable__AAssignment_0 ) ) )
+ // InternalFlaDsl.g:2614:1: ( ( rule__ACIDavoidable__AAssignment_0 ) )
+ {
+ // InternalFlaDsl.g:2614:1: ( ( rule__ACIDavoidable__AAssignment_0 ) )
+ // InternalFlaDsl.g:2615:1: ( rule__ACIDavoidable__AAssignment_0 )
+ {
+ before(grammarAccess.getACIDavoidableAccess().getAAssignment_0());
+ // InternalFlaDsl.g:2616:1: ( rule__ACIDavoidable__AAssignment_0 )
+ // InternalFlaDsl.g:2616:2: rule__ACIDavoidable__AAssignment_0
+ {
+ pushFollow(FOLLOW_2);
+ rule__ACIDavoidable__AAssignment_0();
+
+ state._fsp--;
+
+
+ }
+
+ after(grammarAccess.getACIDavoidableAccess().getAAssignment_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ACIDavoidable__Group__0__Impl"
+
+
+ // $ANTLR start "rule__ACIDavoidable__Group__1"
+ // InternalFlaDsl.g:2626:1: rule__ACIDavoidable__Group__1 : rule__ACIDavoidable__Group__1__Impl rule__ACIDavoidable__Group__2 ;
+ public final void rule__ACIDavoidable__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:2630:1: ( rule__ACIDavoidable__Group__1__Impl rule__ACIDavoidable__Group__2 )
+ // InternalFlaDsl.g:2631:2: rule__ACIDavoidable__Group__1__Impl rule__ACIDavoidable__Group__2
+ {
+ pushFollow(FOLLOW_17);
+ rule__ACIDavoidable__Group__1__Impl();
+
+ state._fsp--;
+
+ pushFollow(FOLLOW_2);
+ rule__ACIDavoidable__Group__2();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ACIDavoidable__Group__1"
+
+
+ // $ANTLR start "rule__ACIDavoidable__Group__1__Impl"
+ // InternalFlaDsl.g:2638:1: rule__ACIDavoidable__Group__1__Impl : ( '.' ) ;
+ public final void rule__ACIDavoidable__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:2642:1: ( ( '.' ) )
+ // InternalFlaDsl.g:2643:1: ( '.' )
+ {
+ // InternalFlaDsl.g:2643:1: ( '.' )
+ // InternalFlaDsl.g:2644:1: '.'
+ {
+ before(grammarAccess.getACIDavoidableAccess().getFullStopKeyword_1());
+ match(input,36,FOLLOW_2);
+ after(grammarAccess.getACIDavoidableAccess().getFullStopKeyword_1());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ACIDavoidable__Group__1__Impl"
+
+
+ // $ANTLR start "rule__ACIDavoidable__Group__2"
+ // InternalFlaDsl.g:2657:1: rule__ACIDavoidable__Group__2 : rule__ACIDavoidable__Group__2__Impl rule__ACIDavoidable__Group__3 ;
+ public final void rule__ACIDavoidable__Group__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:2661:1: ( rule__ACIDavoidable__Group__2__Impl rule__ACIDavoidable__Group__3 )
+ // InternalFlaDsl.g:2662:2: rule__ACIDavoidable__Group__2__Impl rule__ACIDavoidable__Group__3
+ {
+ pushFollow(FOLLOW_9);
+ rule__ACIDavoidable__Group__2__Impl();
+
+ state._fsp--;
+
+ pushFollow(FOLLOW_2);
+ rule__ACIDavoidable__Group__3();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ACIDavoidable__Group__2"
+
+
+ // $ANTLR start "rule__ACIDavoidable__Group__2__Impl"
+ // InternalFlaDsl.g:2669:1: rule__ACIDavoidable__Group__2__Impl : ( ( rule__ACIDavoidable__CAssignment_2 ) ) ;
+ public final void rule__ACIDavoidable__Group__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:2673:1: ( ( ( rule__ACIDavoidable__CAssignment_2 ) ) )
+ // InternalFlaDsl.g:2674:1: ( ( rule__ACIDavoidable__CAssignment_2 ) )
+ {
+ // InternalFlaDsl.g:2674:1: ( ( rule__ACIDavoidable__CAssignment_2 ) )
+ // InternalFlaDsl.g:2675:1: ( rule__ACIDavoidable__CAssignment_2 )
+ {
+ before(grammarAccess.getACIDavoidableAccess().getCAssignment_2());
+ // InternalFlaDsl.g:2676:1: ( rule__ACIDavoidable__CAssignment_2 )
+ // InternalFlaDsl.g:2676:2: rule__ACIDavoidable__CAssignment_2
+ {
+ pushFollow(FOLLOW_2);
+ rule__ACIDavoidable__CAssignment_2();
+
+ state._fsp--;
+
+
+ }
+
+ after(grammarAccess.getACIDavoidableAccess().getCAssignment_2());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ACIDavoidable__Group__2__Impl"
+
+
+ // $ANTLR start "rule__ACIDavoidable__Group__3"
+ // InternalFlaDsl.g:2686:1: rule__ACIDavoidable__Group__3 : rule__ACIDavoidable__Group__3__Impl rule__ACIDavoidable__Group__4 ;
+ public final void rule__ACIDavoidable__Group__3() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:2690:1: ( rule__ACIDavoidable__Group__3__Impl rule__ACIDavoidable__Group__4 )
+ // InternalFlaDsl.g:2691:2: rule__ACIDavoidable__Group__3__Impl rule__ACIDavoidable__Group__4
+ {
+ pushFollow(FOLLOW_18);
+ rule__ACIDavoidable__Group__3__Impl();
+
+ state._fsp--;
+
+ pushFollow(FOLLOW_2);
+ rule__ACIDavoidable__Group__4();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ACIDavoidable__Group__3"
+
+
+ // $ANTLR start "rule__ACIDavoidable__Group__3__Impl"
+ // InternalFlaDsl.g:2698:1: rule__ACIDavoidable__Group__3__Impl : ( '.' ) ;
+ public final void rule__ACIDavoidable__Group__3__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:2702:1: ( ( '.' ) )
+ // InternalFlaDsl.g:2703:1: ( '.' )
+ {
+ // InternalFlaDsl.g:2703:1: ( '.' )
+ // InternalFlaDsl.g:2704:1: '.'
+ {
+ before(grammarAccess.getACIDavoidableAccess().getFullStopKeyword_3());
+ match(input,36,FOLLOW_2);
+ after(grammarAccess.getACIDavoidableAccess().getFullStopKeyword_3());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ACIDavoidable__Group__3__Impl"
+
+
+ // $ANTLR start "rule__ACIDavoidable__Group__4"
+ // InternalFlaDsl.g:2717:1: rule__ACIDavoidable__Group__4 : rule__ACIDavoidable__Group__4__Impl rule__ACIDavoidable__Group__5 ;
+ public final void rule__ACIDavoidable__Group__4() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:2721:1: ( rule__ACIDavoidable__Group__4__Impl rule__ACIDavoidable__Group__5 )
+ // InternalFlaDsl.g:2722:2: rule__ACIDavoidable__Group__4__Impl rule__ACIDavoidable__Group__5
+ {
+ pushFollow(FOLLOW_9);
+ rule__ACIDavoidable__Group__4__Impl();
+
+ state._fsp--;
+
+ pushFollow(FOLLOW_2);
+ rule__ACIDavoidable__Group__5();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ACIDavoidable__Group__4"
+
+
+ // $ANTLR start "rule__ACIDavoidable__Group__4__Impl"
+ // InternalFlaDsl.g:2729:1: rule__ACIDavoidable__Group__4__Impl : ( ( rule__ACIDavoidable__IAssignment_4 ) ) ;
+ public final void rule__ACIDavoidable__Group__4__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:2733:1: ( ( ( rule__ACIDavoidable__IAssignment_4 ) ) )
+ // InternalFlaDsl.g:2734:1: ( ( rule__ACIDavoidable__IAssignment_4 ) )
+ {
+ // InternalFlaDsl.g:2734:1: ( ( rule__ACIDavoidable__IAssignment_4 ) )
+ // InternalFlaDsl.g:2735:1: ( rule__ACIDavoidable__IAssignment_4 )
+ {
+ before(grammarAccess.getACIDavoidableAccess().getIAssignment_4());
+ // InternalFlaDsl.g:2736:1: ( rule__ACIDavoidable__IAssignment_4 )
+ // InternalFlaDsl.g:2736:2: rule__ACIDavoidable__IAssignment_4
+ {
+ pushFollow(FOLLOW_2);
+ rule__ACIDavoidable__IAssignment_4();
+
+ state._fsp--;
+
+
+ }
+
+ after(grammarAccess.getACIDavoidableAccess().getIAssignment_4());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ACIDavoidable__Group__4__Impl"
+
+
+ // $ANTLR start "rule__ACIDavoidable__Group__5"
+ // InternalFlaDsl.g:2746:1: rule__ACIDavoidable__Group__5 : rule__ACIDavoidable__Group__5__Impl rule__ACIDavoidable__Group__6 ;
+ public final void rule__ACIDavoidable__Group__5() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:2750:1: ( rule__ACIDavoidable__Group__5__Impl rule__ACIDavoidable__Group__6 )
+ // InternalFlaDsl.g:2751:2: rule__ACIDavoidable__Group__5__Impl rule__ACIDavoidable__Group__6
+ {
+ pushFollow(FOLLOW_19);
+ rule__ACIDavoidable__Group__5__Impl();
+
+ state._fsp--;
+
+ pushFollow(FOLLOW_2);
+ rule__ACIDavoidable__Group__6();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ACIDavoidable__Group__5"
+
+
+ // $ANTLR start "rule__ACIDavoidable__Group__5__Impl"
+ // InternalFlaDsl.g:2758:1: rule__ACIDavoidable__Group__5__Impl : ( '.' ) ;
+ public final void rule__ACIDavoidable__Group__5__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:2762:1: ( ( '.' ) )
+ // InternalFlaDsl.g:2763:1: ( '.' )
+ {
+ // InternalFlaDsl.g:2763:1: ( '.' )
+ // InternalFlaDsl.g:2764:1: '.'
+ {
+ before(grammarAccess.getACIDavoidableAccess().getFullStopKeyword_5());
+ match(input,36,FOLLOW_2);
+ after(grammarAccess.getACIDavoidableAccess().getFullStopKeyword_5());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ACIDavoidable__Group__5__Impl"
+
+
+ // $ANTLR start "rule__ACIDavoidable__Group__6"
+ // InternalFlaDsl.g:2777:1: rule__ACIDavoidable__Group__6 : rule__ACIDavoidable__Group__6__Impl ;
+ public final void rule__ACIDavoidable__Group__6() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:2781:1: ( rule__ACIDavoidable__Group__6__Impl )
+ // InternalFlaDsl.g:2782:2: rule__ACIDavoidable__Group__6__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__ACIDavoidable__Group__6__Impl();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ACIDavoidable__Group__6"
+
+
+ // $ANTLR start "rule__ACIDavoidable__Group__6__Impl"
+ // InternalFlaDsl.g:2788:1: rule__ACIDavoidable__Group__6__Impl : ( ( rule__ACIDavoidable__DAssignment_6 ) ) ;
+ public final void rule__ACIDavoidable__Group__6__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:2792:1: ( ( ( rule__ACIDavoidable__DAssignment_6 ) ) )
+ // InternalFlaDsl.g:2793:1: ( ( rule__ACIDavoidable__DAssignment_6 ) )
+ {
+ // InternalFlaDsl.g:2793:1: ( ( rule__ACIDavoidable__DAssignment_6 ) )
+ // InternalFlaDsl.g:2794:1: ( rule__ACIDavoidable__DAssignment_6 )
+ {
+ before(grammarAccess.getACIDavoidableAccess().getDAssignment_6());
+ // InternalFlaDsl.g:2795:1: ( rule__ACIDavoidable__DAssignment_6 )
+ // InternalFlaDsl.g:2795:2: rule__ACIDavoidable__DAssignment_6
+ {
+ pushFollow(FOLLOW_2);
+ rule__ACIDavoidable__DAssignment_6();
+
+ state._fsp--;
+
+
+ }
+
+ after(grammarAccess.getACIDavoidableAccess().getDAssignment_6());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ACIDavoidable__Group__6__Impl"
+
+
+ // $ANTLR start "rule__ACIDMitigation__Group__0"
+ // InternalFlaDsl.g:2819:1: rule__ACIDMitigation__Group__0 : rule__ACIDMitigation__Group__0__Impl rule__ACIDMitigation__Group__1 ;
+ public final void rule__ACIDMitigation__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:2823:1: ( rule__ACIDMitigation__Group__0__Impl rule__ACIDMitigation__Group__1 )
+ // InternalFlaDsl.g:2824:2: rule__ACIDMitigation__Group__0__Impl rule__ACIDMitigation__Group__1
+ {
+ pushFollow(FOLLOW_9);
+ rule__ACIDMitigation__Group__0__Impl();
+
+ state._fsp--;
+
+ pushFollow(FOLLOW_2);
+ rule__ACIDMitigation__Group__1();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ACIDMitigation__Group__0"
+
+
+ // $ANTLR start "rule__ACIDMitigation__Group__0__Impl"
+ // InternalFlaDsl.g:2831:1: rule__ACIDMitigation__Group__0__Impl : ( ( rule__ACIDMitigation__AAssignment_0 ) ) ;
+ public final void rule__ACIDMitigation__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:2835:1: ( ( ( rule__ACIDMitigation__AAssignment_0 ) ) )
+ // InternalFlaDsl.g:2836:1: ( ( rule__ACIDMitigation__AAssignment_0 ) )
+ {
+ // InternalFlaDsl.g:2836:1: ( ( rule__ACIDMitigation__AAssignment_0 ) )
+ // InternalFlaDsl.g:2837:1: ( rule__ACIDMitigation__AAssignment_0 )
+ {
+ before(grammarAccess.getACIDMitigationAccess().getAAssignment_0());
+ // InternalFlaDsl.g:2838:1: ( rule__ACIDMitigation__AAssignment_0 )
+ // InternalFlaDsl.g:2838:2: rule__ACIDMitigation__AAssignment_0
+ {
+ pushFollow(FOLLOW_2);
+ rule__ACIDMitigation__AAssignment_0();
+
+ state._fsp--;
+
+
+ }
+
+ after(grammarAccess.getACIDMitigationAccess().getAAssignment_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ACIDMitigation__Group__0__Impl"
+
+
+ // $ANTLR start "rule__ACIDMitigation__Group__1"
+ // InternalFlaDsl.g:2848:1: rule__ACIDMitigation__Group__1 : rule__ACIDMitigation__Group__1__Impl rule__ACIDMitigation__Group__2 ;
+ public final void rule__ACIDMitigation__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:2852:1: ( rule__ACIDMitigation__Group__1__Impl rule__ACIDMitigation__Group__2 )
+ // InternalFlaDsl.g:2853:2: rule__ACIDMitigation__Group__1__Impl rule__ACIDMitigation__Group__2
+ {
+ pushFollow(FOLLOW_20);
+ rule__ACIDMitigation__Group__1__Impl();
+
+ state._fsp--;
+
+ pushFollow(FOLLOW_2);
+ rule__ACIDMitigation__Group__2();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ACIDMitigation__Group__1"
+
+
+ // $ANTLR start "rule__ACIDMitigation__Group__1__Impl"
+ // InternalFlaDsl.g:2860:1: rule__ACIDMitigation__Group__1__Impl : ( '.' ) ;
+ public final void rule__ACIDMitigation__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:2864:1: ( ( '.' ) )
+ // InternalFlaDsl.g:2865:1: ( '.' )
+ {
+ // InternalFlaDsl.g:2865:1: ( '.' )
+ // InternalFlaDsl.g:2866:1: '.'
+ {
+ before(grammarAccess.getACIDMitigationAccess().getFullStopKeyword_1());
+ match(input,36,FOLLOW_2);
+ after(grammarAccess.getACIDMitigationAccess().getFullStopKeyword_1());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ACIDMitigation__Group__1__Impl"
+
+
+ // $ANTLR start "rule__ACIDMitigation__Group__2"
+ // InternalFlaDsl.g:2879:1: rule__ACIDMitigation__Group__2 : rule__ACIDMitigation__Group__2__Impl rule__ACIDMitigation__Group__3 ;
+ public final void rule__ACIDMitigation__Group__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:2883:1: ( rule__ACIDMitigation__Group__2__Impl rule__ACIDMitigation__Group__3 )
+ // InternalFlaDsl.g:2884:2: rule__ACIDMitigation__Group__2__Impl rule__ACIDMitigation__Group__3
+ {
+ pushFollow(FOLLOW_9);
+ rule__ACIDMitigation__Group__2__Impl();
+
+ state._fsp--;
+
+ pushFollow(FOLLOW_2);
+ rule__ACIDMitigation__Group__3();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ACIDMitigation__Group__2"
+
+
+ // $ANTLR start "rule__ACIDMitigation__Group__2__Impl"
+ // InternalFlaDsl.g:2891:1: rule__ACIDMitigation__Group__2__Impl : ( ( rule__ACIDMitigation__CAssignment_2 ) ) ;
+ public final void rule__ACIDMitigation__Group__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:2895:1: ( ( ( rule__ACIDMitigation__CAssignment_2 ) ) )
+ // InternalFlaDsl.g:2896:1: ( ( rule__ACIDMitigation__CAssignment_2 ) )
+ {
+ // InternalFlaDsl.g:2896:1: ( ( rule__ACIDMitigation__CAssignment_2 ) )
+ // InternalFlaDsl.g:2897:1: ( rule__ACIDMitigation__CAssignment_2 )
+ {
+ before(grammarAccess.getACIDMitigationAccess().getCAssignment_2());
+ // InternalFlaDsl.g:2898:1: ( rule__ACIDMitigation__CAssignment_2 )
+ // InternalFlaDsl.g:2898:2: rule__ACIDMitigation__CAssignment_2
+ {
+ pushFollow(FOLLOW_2);
+ rule__ACIDMitigation__CAssignment_2();
+
+ state._fsp--;
+
+
+ }
+
+ after(grammarAccess.getACIDMitigationAccess().getCAssignment_2());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ACIDMitigation__Group__2__Impl"
+
+
+ // $ANTLR start "rule__ACIDMitigation__Group__3"
+ // InternalFlaDsl.g:2908:1: rule__ACIDMitigation__Group__3 : rule__ACIDMitigation__Group__3__Impl rule__ACIDMitigation__Group__4 ;
+ public final void rule__ACIDMitigation__Group__3() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:2912:1: ( rule__ACIDMitigation__Group__3__Impl rule__ACIDMitigation__Group__4 )
+ // InternalFlaDsl.g:2913:2: rule__ACIDMitigation__Group__3__Impl rule__ACIDMitigation__Group__4
+ {
+ pushFollow(FOLLOW_21);
+ rule__ACIDMitigation__Group__3__Impl();
+
+ state._fsp--;
+
+ pushFollow(FOLLOW_2);
+ rule__ACIDMitigation__Group__4();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ACIDMitigation__Group__3"
+
+
+ // $ANTLR start "rule__ACIDMitigation__Group__3__Impl"
+ // InternalFlaDsl.g:2920:1: rule__ACIDMitigation__Group__3__Impl : ( '.' ) ;
+ public final void rule__ACIDMitigation__Group__3__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:2924:1: ( ( '.' ) )
+ // InternalFlaDsl.g:2925:1: ( '.' )
+ {
+ // InternalFlaDsl.g:2925:1: ( '.' )
+ // InternalFlaDsl.g:2926:1: '.'
+ {
+ before(grammarAccess.getACIDMitigationAccess().getFullStopKeyword_3());
+ match(input,36,FOLLOW_2);
+ after(grammarAccess.getACIDMitigationAccess().getFullStopKeyword_3());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ACIDMitigation__Group__3__Impl"
+
+
+ // $ANTLR start "rule__ACIDMitigation__Group__4"
+ // InternalFlaDsl.g:2939:1: rule__ACIDMitigation__Group__4 : rule__ACIDMitigation__Group__4__Impl rule__ACIDMitigation__Group__5 ;
+ public final void rule__ACIDMitigation__Group__4() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:2943:1: ( rule__ACIDMitigation__Group__4__Impl rule__ACIDMitigation__Group__5 )
+ // InternalFlaDsl.g:2944:2: rule__ACIDMitigation__Group__4__Impl rule__ACIDMitigation__Group__5
+ {
+ pushFollow(FOLLOW_9);
+ rule__ACIDMitigation__Group__4__Impl();
+
+ state._fsp--;
+
+ pushFollow(FOLLOW_2);
+ rule__ACIDMitigation__Group__5();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ACIDMitigation__Group__4"
+
+
+ // $ANTLR start "rule__ACIDMitigation__Group__4__Impl"
+ // InternalFlaDsl.g:2951:1: rule__ACIDMitigation__Group__4__Impl : ( ( rule__ACIDMitigation__IAssignment_4 ) ) ;
+ public final void rule__ACIDMitigation__Group__4__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:2955:1: ( ( ( rule__ACIDMitigation__IAssignment_4 ) ) )
+ // InternalFlaDsl.g:2956:1: ( ( rule__ACIDMitigation__IAssignment_4 ) )
+ {
+ // InternalFlaDsl.g:2956:1: ( ( rule__ACIDMitigation__IAssignment_4 ) )
+ // InternalFlaDsl.g:2957:1: ( rule__ACIDMitigation__IAssignment_4 )
+ {
+ before(grammarAccess.getACIDMitigationAccess().getIAssignment_4());
+ // InternalFlaDsl.g:2958:1: ( rule__ACIDMitigation__IAssignment_4 )
+ // InternalFlaDsl.g:2958:2: rule__ACIDMitigation__IAssignment_4
+ {
+ pushFollow(FOLLOW_2);
+ rule__ACIDMitigation__IAssignment_4();
+
+ state._fsp--;
+
+
+ }
+
+ after(grammarAccess.getACIDMitigationAccess().getIAssignment_4());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ACIDMitigation__Group__4__Impl"
+
+
+ // $ANTLR start "rule__ACIDMitigation__Group__5"
+ // InternalFlaDsl.g:2968:1: rule__ACIDMitigation__Group__5 : rule__ACIDMitigation__Group__5__Impl rule__ACIDMitigation__Group__6 ;
+ public final void rule__ACIDMitigation__Group__5() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:2972:1: ( rule__ACIDMitigation__Group__5__Impl rule__ACIDMitigation__Group__6 )
+ // InternalFlaDsl.g:2973:2: rule__ACIDMitigation__Group__5__Impl rule__ACIDMitigation__Group__6
+ {
+ pushFollow(FOLLOW_22);
+ rule__ACIDMitigation__Group__5__Impl();
+
+ state._fsp--;
+
+ pushFollow(FOLLOW_2);
+ rule__ACIDMitigation__Group__6();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ACIDMitigation__Group__5"
+
+
+ // $ANTLR start "rule__ACIDMitigation__Group__5__Impl"
+ // InternalFlaDsl.g:2980:1: rule__ACIDMitigation__Group__5__Impl : ( '.' ) ;
+ public final void rule__ACIDMitigation__Group__5__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:2984:1: ( ( '.' ) )
+ // InternalFlaDsl.g:2985:1: ( '.' )
+ {
+ // InternalFlaDsl.g:2985:1: ( '.' )
+ // InternalFlaDsl.g:2986:1: '.'
+ {
+ before(grammarAccess.getACIDMitigationAccess().getFullStopKeyword_5());
+ match(input,36,FOLLOW_2);
+ after(grammarAccess.getACIDMitigationAccess().getFullStopKeyword_5());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ACIDMitigation__Group__5__Impl"
+
+
+ // $ANTLR start "rule__ACIDMitigation__Group__6"
+ // InternalFlaDsl.g:2999:1: rule__ACIDMitigation__Group__6 : rule__ACIDMitigation__Group__6__Impl ;
+ public final void rule__ACIDMitigation__Group__6() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:3003:1: ( rule__ACIDMitigation__Group__6__Impl )
+ // InternalFlaDsl.g:3004:2: rule__ACIDMitigation__Group__6__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__ACIDMitigation__Group__6__Impl();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ACIDMitigation__Group__6"
+
+
+ // $ANTLR start "rule__ACIDMitigation__Group__6__Impl"
+ // InternalFlaDsl.g:3010:1: rule__ACIDMitigation__Group__6__Impl : ( ( rule__ACIDMitigation__DAssignment_6 ) ) ;
+ public final void rule__ACIDMitigation__Group__6__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:3014:1: ( ( ( rule__ACIDMitigation__DAssignment_6 ) ) )
+ // InternalFlaDsl.g:3015:1: ( ( rule__ACIDMitigation__DAssignment_6 ) )
+ {
+ // InternalFlaDsl.g:3015:1: ( ( rule__ACIDMitigation__DAssignment_6 ) )
+ // InternalFlaDsl.g:3016:1: ( rule__ACIDMitigation__DAssignment_6 )
+ {
+ before(grammarAccess.getACIDMitigationAccess().getDAssignment_6());
+ // InternalFlaDsl.g:3017:1: ( rule__ACIDMitigation__DAssignment_6 )
+ // InternalFlaDsl.g:3017:2: rule__ACIDMitigation__DAssignment_6
+ {
+ pushFollow(FOLLOW_2);
+ rule__ACIDMitigation__DAssignment_6();
+
+ state._fsp--;
+
+
+ }
+
+ after(grammarAccess.getACIDMitigationAccess().getDAssignment_6());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ACIDMitigation__Group__6__Impl"
+
+
+ // $ANTLR start "rule__Behaviour__RulesAssignment"
+ // InternalFlaDsl.g:3044:1: rule__Behaviour__RulesAssignment : ( ruleExpression ) ;
+ public final void rule__Behaviour__RulesAssignment() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:3048:1: ( ( ruleExpression ) )
+ // InternalFlaDsl.g:3049:1: ( ruleExpression )
+ {
+ // InternalFlaDsl.g:3049:1: ( ruleExpression )
+ // InternalFlaDsl.g:3050:1: ruleExpression
+ {
+ before(grammarAccess.getBehaviourAccess().getRulesExpressionParserRuleCall_0());
+ pushFollow(FOLLOW_2);
+ ruleExpression();
+
+ state._fsp--;
+
+ after(grammarAccess.getBehaviourAccess().getRulesExpressionParserRuleCall_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Behaviour__RulesAssignment"
+
+
+ // $ANTLR start "rule__Expression__LhsAssignment_1"
+ // InternalFlaDsl.g:3059:1: rule__Expression__LhsAssignment_1 : ( ruleLhs ) ;
+ public final void rule__Expression__LhsAssignment_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:3063:1: ( ( ruleLhs ) )
+ // InternalFlaDsl.g:3064:1: ( ruleLhs )
+ {
+ // InternalFlaDsl.g:3064:1: ( ruleLhs )
+ // InternalFlaDsl.g:3065:1: ruleLhs
+ {
+ before(grammarAccess.getExpressionAccess().getLhsLhsParserRuleCall_1_0());
+ pushFollow(FOLLOW_2);
+ ruleLhs();
+
+ state._fsp--;
+
+ after(grammarAccess.getExpressionAccess().getLhsLhsParserRuleCall_1_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Expression__LhsAssignment_1"
+
+
+ // $ANTLR start "rule__Expression__RhsAssignment_3"
+ // InternalFlaDsl.g:3074:1: rule__Expression__RhsAssignment_3 : ( ruleRhs ) ;
+ public final void rule__Expression__RhsAssignment_3() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:3078:1: ( ( ruleRhs ) )
+ // InternalFlaDsl.g:3079:1: ( ruleRhs )
+ {
+ // InternalFlaDsl.g:3079:1: ( ruleRhs )
+ // InternalFlaDsl.g:3080:1: ruleRhs
+ {
+ before(grammarAccess.getExpressionAccess().getRhsRhsParserRuleCall_3_0());
+ pushFollow(FOLLOW_2);
+ ruleRhs();
+
+ state._fsp--;
+
+ after(grammarAccess.getExpressionAccess().getRhsRhsParserRuleCall_3_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Expression__RhsAssignment_3"
+
+
+ // $ANTLR start "rule__Lhs__FailuresAssignment_0"
+ // InternalFlaDsl.g:3089:1: rule__Lhs__FailuresAssignment_0 : ( ruleInputExpression ) ;
+ public final void rule__Lhs__FailuresAssignment_0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:3093:1: ( ( ruleInputExpression ) )
+ // InternalFlaDsl.g:3094:1: ( ruleInputExpression )
+ {
+ // InternalFlaDsl.g:3094:1: ( ruleInputExpression )
+ // InternalFlaDsl.g:3095:1: ruleInputExpression
+ {
+ before(grammarAccess.getLhsAccess().getFailuresInputExpressionParserRuleCall_0_0());
+ pushFollow(FOLLOW_2);
+ ruleInputExpression();
+
+ state._fsp--;
+
+ after(grammarAccess.getLhsAccess().getFailuresInputExpressionParserRuleCall_0_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Lhs__FailuresAssignment_0"
+
+
+ // $ANTLR start "rule__Lhs__FailuresAssignment_1_1"
+ // InternalFlaDsl.g:3104:1: rule__Lhs__FailuresAssignment_1_1 : ( ruleInputExpression ) ;
+ public final void rule__Lhs__FailuresAssignment_1_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:3108:1: ( ( ruleInputExpression ) )
+ // InternalFlaDsl.g:3109:1: ( ruleInputExpression )
+ {
+ // InternalFlaDsl.g:3109:1: ( ruleInputExpression )
+ // InternalFlaDsl.g:3110:1: ruleInputExpression
+ {
+ before(grammarAccess.getLhsAccess().getFailuresInputExpressionParserRuleCall_1_1_0());
+ pushFollow(FOLLOW_2);
+ ruleInputExpression();
+
+ state._fsp--;
+
+ after(grammarAccess.getLhsAccess().getFailuresInputExpressionParserRuleCall_1_1_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Lhs__FailuresAssignment_1_1"
+
+
+ // $ANTLR start "rule__Rhs__FailuresAssignment_0"
+ // InternalFlaDsl.g:3119:1: rule__Rhs__FailuresAssignment_0 : ( ruleOutputExpression ) ;
+ public final void rule__Rhs__FailuresAssignment_0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:3123:1: ( ( ruleOutputExpression ) )
+ // InternalFlaDsl.g:3124:1: ( ruleOutputExpression )
+ {
+ // InternalFlaDsl.g:3124:1: ( ruleOutputExpression )
+ // InternalFlaDsl.g:3125:1: ruleOutputExpression
+ {
+ before(grammarAccess.getRhsAccess().getFailuresOutputExpressionParserRuleCall_0_0());
+ pushFollow(FOLLOW_2);
+ ruleOutputExpression();
+
+ state._fsp--;
+
+ after(grammarAccess.getRhsAccess().getFailuresOutputExpressionParserRuleCall_0_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Rhs__FailuresAssignment_0"
+
+
+ // $ANTLR start "rule__Rhs__FailuresAssignment_1_1"
+ // InternalFlaDsl.g:3134:1: rule__Rhs__FailuresAssignment_1_1 : ( ruleOutputExpression ) ;
+ public final void rule__Rhs__FailuresAssignment_1_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:3138:1: ( ( ruleOutputExpression ) )
+ // InternalFlaDsl.g:3139:1: ( ruleOutputExpression )
+ {
+ // InternalFlaDsl.g:3139:1: ( ruleOutputExpression )
+ // InternalFlaDsl.g:3140:1: ruleOutputExpression
+ {
+ before(grammarAccess.getRhsAccess().getFailuresOutputExpressionParserRuleCall_1_1_0());
+ pushFollow(FOLLOW_2);
+ ruleOutputExpression();
+
+ state._fsp--;
+
+ after(grammarAccess.getRhsAccess().getFailuresOutputExpressionParserRuleCall_1_1_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Rhs__FailuresAssignment_1_1"
+
+
+ // $ANTLR start "rule__InputExpression__RefAssignment_0_0"
+ // InternalFlaDsl.g:3149:1: rule__InputExpression__RefAssignment_0_0 : ( ( RULE_ID ) ) ;
+ public final void rule__InputExpression__RefAssignment_0_0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:3153:1: ( ( ( RULE_ID ) ) )
+ // InternalFlaDsl.g:3154:1: ( ( RULE_ID ) )
+ {
+ // InternalFlaDsl.g:3154:1: ( ( RULE_ID ) )
+ // InternalFlaDsl.g:3155:1: ( RULE_ID )
+ {
+ before(grammarAccess.getInputExpressionAccess().getRefPortCrossReference_0_0_0());
+ // InternalFlaDsl.g:3156:1: ( RULE_ID )
+ // InternalFlaDsl.g:3157:1: RULE_ID
+ {
+ before(grammarAccess.getInputExpressionAccess().getRefPortIDTerminalRuleCall_0_0_0_1());
+ match(input,RULE_ID,FOLLOW_2);
+ after(grammarAccess.getInputExpressionAccess().getRefPortIDTerminalRuleCall_0_0_0_1());
+
+ }
+
+ after(grammarAccess.getInputExpressionAccess().getRefPortCrossReference_0_0_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__InputExpression__RefAssignment_0_0"
+
+
+ // $ANTLR start "rule__InputExpression__FailureExprAssignment_2"
+ // InternalFlaDsl.g:3168:1: rule__InputExpression__FailureExprAssignment_2 : ( ruleInFailureExpr ) ;
+ public final void rule__InputExpression__FailureExprAssignment_2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:3172:1: ( ( ruleInFailureExpr ) )
+ // InternalFlaDsl.g:3173:1: ( ruleInFailureExpr )
+ {
+ // InternalFlaDsl.g:3173:1: ( ruleInFailureExpr )
+ // InternalFlaDsl.g:3174:1: ruleInFailureExpr
+ {
+ before(grammarAccess.getInputExpressionAccess().getFailureExprInFailureExprParserRuleCall_2_0());
+ pushFollow(FOLLOW_2);
+ ruleInFailureExpr();
+
+ state._fsp--;
+
+ after(grammarAccess.getInputExpressionAccess().getFailureExprInFailureExprParserRuleCall_2_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__InputExpression__FailureExprAssignment_2"
+
+
+ // $ANTLR start "rule__OutputExpression__RefAssignment_0_0"
+ // InternalFlaDsl.g:3183:1: rule__OutputExpression__RefAssignment_0_0 : ( ( RULE_ID ) ) ;
+ public final void rule__OutputExpression__RefAssignment_0_0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:3187:1: ( ( ( RULE_ID ) ) )
+ // InternalFlaDsl.g:3188:1: ( ( RULE_ID ) )
+ {
+ // InternalFlaDsl.g:3188:1: ( ( RULE_ID ) )
+ // InternalFlaDsl.g:3189:1: ( RULE_ID )
+ {
+ before(grammarAccess.getOutputExpressionAccess().getRefPortCrossReference_0_0_0());
+ // InternalFlaDsl.g:3190:1: ( RULE_ID )
+ // InternalFlaDsl.g:3191:1: RULE_ID
+ {
+ before(grammarAccess.getOutputExpressionAccess().getRefPortIDTerminalRuleCall_0_0_0_1());
+ match(input,RULE_ID,FOLLOW_2);
+ after(grammarAccess.getOutputExpressionAccess().getRefPortIDTerminalRuleCall_0_0_0_1());
+
+ }
+
+ after(grammarAccess.getOutputExpressionAccess().getRefPortCrossReference_0_0_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__OutputExpression__RefAssignment_0_0"
+
+
+ // $ANTLR start "rule__OutputExpression__FailureExprAssignment_2"
+ // InternalFlaDsl.g:3202:1: rule__OutputExpression__FailureExprAssignment_2 : ( ruleOutFailureExpr ) ;
+ public final void rule__OutputExpression__FailureExprAssignment_2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:3206:1: ( ( ruleOutFailureExpr ) )
+ // InternalFlaDsl.g:3207:1: ( ruleOutFailureExpr )
+ {
+ // InternalFlaDsl.g:3207:1: ( ruleOutFailureExpr )
+ // InternalFlaDsl.g:3208:1: ruleOutFailureExpr
+ {
+ before(grammarAccess.getOutputExpressionAccess().getFailureExprOutFailureExprParserRuleCall_2_0());
+ pushFollow(FOLLOW_2);
+ ruleOutFailureExpr();
+
+ state._fsp--;
+
+ after(grammarAccess.getOutputExpressionAccess().getFailureExprOutFailureExprParserRuleCall_2_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__OutputExpression__FailureExprAssignment_2"
+
+
+ // $ANTLR start "rule__InFailureExpr__FailuresAssignment_0"
+ // InternalFlaDsl.g:3217:1: rule__InFailureExpr__FailuresAssignment_0 : ( ruleWildcardDefinition ) ;
+ public final void rule__InFailureExpr__FailuresAssignment_0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:3221:1: ( ( ruleWildcardDefinition ) )
+ // InternalFlaDsl.g:3222:1: ( ruleWildcardDefinition )
+ {
+ // InternalFlaDsl.g:3222:1: ( ruleWildcardDefinition )
+ // InternalFlaDsl.g:3223:1: ruleWildcardDefinition
+ {
+ before(grammarAccess.getInFailureExprAccess().getFailuresWildcardDefinitionParserRuleCall_0_0());
+ pushFollow(FOLLOW_2);
+ ruleWildcardDefinition();
+
+ state._fsp--;
+
+ after(grammarAccess.getInFailureExprAccess().getFailuresWildcardDefinitionParserRuleCall_0_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__InFailureExpr__FailuresAssignment_0"
+
+
+ // $ANTLR start "rule__InFailureExpr__FailuresAssignment_1"
+ // InternalFlaDsl.g:3232:1: rule__InFailureExpr__FailuresAssignment_1 : ( ruleNoFailureDefinition ) ;
+ public final void rule__InFailureExpr__FailuresAssignment_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:3236:1: ( ( ruleNoFailureDefinition ) )
+ // InternalFlaDsl.g:3237:1: ( ruleNoFailureDefinition )
+ {
+ // InternalFlaDsl.g:3237:1: ( ruleNoFailureDefinition )
+ // InternalFlaDsl.g:3238:1: ruleNoFailureDefinition
+ {
+ before(grammarAccess.getInFailureExprAccess().getFailuresNoFailureDefinitionParserRuleCall_1_0());
+ pushFollow(FOLLOW_2);
+ ruleNoFailureDefinition();
+
+ state._fsp--;
+
+ after(grammarAccess.getInFailureExprAccess().getFailuresNoFailureDefinitionParserRuleCall_1_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__InFailureExpr__FailuresAssignment_1"
+
+
+ // $ANTLR start "rule__InFailureExpr__FailuresAssignment_2"
+ // InternalFlaDsl.g:3247:1: rule__InFailureExpr__FailuresAssignment_2 : ( ruleFailureDefinition ) ;
+ public final void rule__InFailureExpr__FailuresAssignment_2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:3251:1: ( ( ruleFailureDefinition ) )
+ // InternalFlaDsl.g:3252:1: ( ruleFailureDefinition )
+ {
+ // InternalFlaDsl.g:3252:1: ( ruleFailureDefinition )
+ // InternalFlaDsl.g:3253:1: ruleFailureDefinition
+ {
+ before(grammarAccess.getInFailureExprAccess().getFailuresFailureDefinitionParserRuleCall_2_0());
+ pushFollow(FOLLOW_2);
+ ruleFailureDefinition();
+
+ state._fsp--;
+
+ after(grammarAccess.getInFailureExprAccess().getFailuresFailureDefinitionParserRuleCall_2_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__InFailureExpr__FailuresAssignment_2"
+
+
+ // $ANTLR start "rule__InFailureExpr__FailuresAssignment_3_1"
+ // InternalFlaDsl.g:3262:1: rule__InFailureExpr__FailuresAssignment_3_1 : ( ruleFailureDefinition ) ;
+ public final void rule__InFailureExpr__FailuresAssignment_3_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:3266:1: ( ( ruleFailureDefinition ) )
+ // InternalFlaDsl.g:3267:1: ( ruleFailureDefinition )
+ {
+ // InternalFlaDsl.g:3267:1: ( ruleFailureDefinition )
+ // InternalFlaDsl.g:3268:1: ruleFailureDefinition
+ {
+ before(grammarAccess.getInFailureExprAccess().getFailuresFailureDefinitionParserRuleCall_3_1_0());
+ pushFollow(FOLLOW_2);
+ ruleFailureDefinition();
+
+ state._fsp--;
+
+ after(grammarAccess.getInFailureExprAccess().getFailuresFailureDefinitionParserRuleCall_3_1_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__InFailureExpr__FailuresAssignment_3_1"
+
+
+ // $ANTLR start "rule__InFailureExpr__FailuresAssignment_3_2_1"
+ // InternalFlaDsl.g:3277:1: rule__InFailureExpr__FailuresAssignment_3_2_1 : ( ruleFailureDefinition ) ;
+ public final void rule__InFailureExpr__FailuresAssignment_3_2_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:3281:1: ( ( ruleFailureDefinition ) )
+ // InternalFlaDsl.g:3282:1: ( ruleFailureDefinition )
+ {
+ // InternalFlaDsl.g:3282:1: ( ruleFailureDefinition )
+ // InternalFlaDsl.g:3283:1: ruleFailureDefinition
+ {
+ before(grammarAccess.getInFailureExprAccess().getFailuresFailureDefinitionParserRuleCall_3_2_1_0());
+ pushFollow(FOLLOW_2);
+ ruleFailureDefinition();
+
+ state._fsp--;
+
+ after(grammarAccess.getInFailureExprAccess().getFailuresFailureDefinitionParserRuleCall_3_2_1_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__InFailureExpr__FailuresAssignment_3_2_1"
+
+
+ // $ANTLR start "rule__InFailureExpr__FailuresAssignment_4"
+ // InternalFlaDsl.g:3292:1: rule__InFailureExpr__FailuresAssignment_4 : ( ruleVariableDefinition ) ;
+ public final void rule__InFailureExpr__FailuresAssignment_4() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:3296:1: ( ( ruleVariableDefinition ) )
+ // InternalFlaDsl.g:3297:1: ( ruleVariableDefinition )
+ {
+ // InternalFlaDsl.g:3297:1: ( ruleVariableDefinition )
+ // InternalFlaDsl.g:3298:1: ruleVariableDefinition
+ {
+ before(grammarAccess.getInFailureExprAccess().getFailuresVariableDefinitionParserRuleCall_4_0());
+ pushFollow(FOLLOW_2);
+ ruleVariableDefinition();
+
+ state._fsp--;
+
+ after(grammarAccess.getInFailureExprAccess().getFailuresVariableDefinitionParserRuleCall_4_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__InFailureExpr__FailuresAssignment_4"
+
+
+ // $ANTLR start "rule__OutFailureExpr__FailuresAssignment_0"
+ // InternalFlaDsl.g:3307:1: rule__OutFailureExpr__FailuresAssignment_0 : ( ruleNoFailureDefinition ) ;
+ public final void rule__OutFailureExpr__FailuresAssignment_0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:3311:1: ( ( ruleNoFailureDefinition ) )
+ // InternalFlaDsl.g:3312:1: ( ruleNoFailureDefinition )
+ {
+ // InternalFlaDsl.g:3312:1: ( ruleNoFailureDefinition )
+ // InternalFlaDsl.g:3313:1: ruleNoFailureDefinition
+ {
+ before(grammarAccess.getOutFailureExprAccess().getFailuresNoFailureDefinitionParserRuleCall_0_0());
+ pushFollow(FOLLOW_2);
+ ruleNoFailureDefinition();
+
+ state._fsp--;
+
+ after(grammarAccess.getOutFailureExprAccess().getFailuresNoFailureDefinitionParserRuleCall_0_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__OutFailureExpr__FailuresAssignment_0"
+
+
+ // $ANTLR start "rule__OutFailureExpr__FailuresAssignment_1"
+ // InternalFlaDsl.g:3322:1: rule__OutFailureExpr__FailuresAssignment_1 : ( ruleComplexNofailureDefinition ) ;
+ public final void rule__OutFailureExpr__FailuresAssignment_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:3326:1: ( ( ruleComplexNofailureDefinition ) )
+ // InternalFlaDsl.g:3327:1: ( ruleComplexNofailureDefinition )
+ {
+ // InternalFlaDsl.g:3327:1: ( ruleComplexNofailureDefinition )
+ // InternalFlaDsl.g:3328:1: ruleComplexNofailureDefinition
+ {
+ before(grammarAccess.getOutFailureExprAccess().getFailuresComplexNofailureDefinitionParserRuleCall_1_0());
+ pushFollow(FOLLOW_2);
+ ruleComplexNofailureDefinition();
+
+ state._fsp--;
+
+ after(grammarAccess.getOutFailureExprAccess().getFailuresComplexNofailureDefinitionParserRuleCall_1_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__OutFailureExpr__FailuresAssignment_1"
+
+
+ // $ANTLR start "rule__OutFailureExpr__FailuresAssignment_2"
+ // InternalFlaDsl.g:3337:1: rule__OutFailureExpr__FailuresAssignment_2 : ( ruleFailureDefinition ) ;
+ public final void rule__OutFailureExpr__FailuresAssignment_2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:3341:1: ( ( ruleFailureDefinition ) )
+ // InternalFlaDsl.g:3342:1: ( ruleFailureDefinition )
+ {
+ // InternalFlaDsl.g:3342:1: ( ruleFailureDefinition )
+ // InternalFlaDsl.g:3343:1: ruleFailureDefinition
+ {
+ before(grammarAccess.getOutFailureExprAccess().getFailuresFailureDefinitionParserRuleCall_2_0());
+ pushFollow(FOLLOW_2);
+ ruleFailureDefinition();
+
+ state._fsp--;
+
+ after(grammarAccess.getOutFailureExprAccess().getFailuresFailureDefinitionParserRuleCall_2_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__OutFailureExpr__FailuresAssignment_2"
+
+
+ // $ANTLR start "rule__OutFailureExpr__FailuresAssignment_3_1"
+ // InternalFlaDsl.g:3352:1: rule__OutFailureExpr__FailuresAssignment_3_1 : ( ruleFailureDefinition ) ;
+ public final void rule__OutFailureExpr__FailuresAssignment_3_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:3356:1: ( ( ruleFailureDefinition ) )
+ // InternalFlaDsl.g:3357:1: ( ruleFailureDefinition )
+ {
+ // InternalFlaDsl.g:3357:1: ( ruleFailureDefinition )
+ // InternalFlaDsl.g:3358:1: ruleFailureDefinition
+ {
+ before(grammarAccess.getOutFailureExprAccess().getFailuresFailureDefinitionParserRuleCall_3_1_0());
+ pushFollow(FOLLOW_2);
+ ruleFailureDefinition();
+
+ state._fsp--;
+
+ after(grammarAccess.getOutFailureExprAccess().getFailuresFailureDefinitionParserRuleCall_3_1_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__OutFailureExpr__FailuresAssignment_3_1"
+
+
+ // $ANTLR start "rule__OutFailureExpr__FailuresAssignment_3_2_1"
+ // InternalFlaDsl.g:3367:1: rule__OutFailureExpr__FailuresAssignment_3_2_1 : ( ruleFailureDefinition ) ;
+ public final void rule__OutFailureExpr__FailuresAssignment_3_2_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:3371:1: ( ( ruleFailureDefinition ) )
+ // InternalFlaDsl.g:3372:1: ( ruleFailureDefinition )
+ {
+ // InternalFlaDsl.g:3372:1: ( ruleFailureDefinition )
+ // InternalFlaDsl.g:3373:1: ruleFailureDefinition
+ {
+ before(grammarAccess.getOutFailureExprAccess().getFailuresFailureDefinitionParserRuleCall_3_2_1_0());
+ pushFollow(FOLLOW_2);
+ ruleFailureDefinition();
+
+ state._fsp--;
+
+ after(grammarAccess.getOutFailureExprAccess().getFailuresFailureDefinitionParserRuleCall_3_2_1_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__OutFailureExpr__FailuresAssignment_3_2_1"
+
+
+ // $ANTLR start "rule__OutFailureExpr__FailuresAssignment_4"
+ // InternalFlaDsl.g:3382:1: rule__OutFailureExpr__FailuresAssignment_4 : ( ruleVariableDefinition ) ;
+ public final void rule__OutFailureExpr__FailuresAssignment_4() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:3386:1: ( ( ruleVariableDefinition ) )
+ // InternalFlaDsl.g:3387:1: ( ruleVariableDefinition )
+ {
+ // InternalFlaDsl.g:3387:1: ( ruleVariableDefinition )
+ // InternalFlaDsl.g:3388:1: ruleVariableDefinition
+ {
+ before(grammarAccess.getOutFailureExprAccess().getFailuresVariableDefinitionParserRuleCall_4_0());
+ pushFollow(FOLLOW_2);
+ ruleVariableDefinition();
+
+ state._fsp--;
+
+ after(grammarAccess.getOutFailureExprAccess().getFailuresVariableDefinitionParserRuleCall_4_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__OutFailureExpr__FailuresAssignment_4"
+
+
+ // $ANTLR start "rule__FailureDefinition__TypeAssignment_1"
+ // InternalFlaDsl.g:3397:1: rule__FailureDefinition__TypeAssignment_1 : ( ruleActualFailureType ) ;
+ public final void rule__FailureDefinition__TypeAssignment_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:3401:1: ( ( ruleActualFailureType ) )
+ // InternalFlaDsl.g:3402:1: ( ruleActualFailureType )
+ {
+ // InternalFlaDsl.g:3402:1: ( ruleActualFailureType )
+ // InternalFlaDsl.g:3403:1: ruleActualFailureType
+ {
+ before(grammarAccess.getFailureDefinitionAccess().getTypeActualFailureTypeEnumRuleCall_1_0());
+ pushFollow(FOLLOW_2);
+ ruleActualFailureType();
+
+ state._fsp--;
+
+ after(grammarAccess.getFailureDefinitionAccess().getTypeActualFailureTypeEnumRuleCall_1_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__FailureDefinition__TypeAssignment_1"
+
+
+ // $ANTLR start "rule__FailureDefinition__AcidAvoidableAssignment_2_1"
+ // InternalFlaDsl.g:3412:1: rule__FailureDefinition__AcidAvoidableAssignment_2_1 : ( ruleACIDavoidable ) ;
+ public final void rule__FailureDefinition__AcidAvoidableAssignment_2_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:3416:1: ( ( ruleACIDavoidable ) )
+ // InternalFlaDsl.g:3417:1: ( ruleACIDavoidable )
+ {
+ // InternalFlaDsl.g:3417:1: ( ruleACIDavoidable )
+ // InternalFlaDsl.g:3418:1: ruleACIDavoidable
+ {
+ before(grammarAccess.getFailureDefinitionAccess().getAcidAvoidableACIDavoidableParserRuleCall_2_1_0());
+ pushFollow(FOLLOW_2);
+ ruleACIDavoidable();
+
+ state._fsp--;
+
+ after(grammarAccess.getFailureDefinitionAccess().getAcidAvoidableACIDavoidableParserRuleCall_2_1_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__FailureDefinition__AcidAvoidableAssignment_2_1"
+
+
+ // $ANTLR start "rule__ComplexNofailureDefinition__AcidMitigationAssignment_3"
+ // InternalFlaDsl.g:3427:1: rule__ComplexNofailureDefinition__AcidMitigationAssignment_3 : ( ruleACIDMitigation ) ;
+ public final void rule__ComplexNofailureDefinition__AcidMitigationAssignment_3() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:3431:1: ( ( ruleACIDMitigation ) )
+ // InternalFlaDsl.g:3432:1: ( ruleACIDMitigation )
+ {
+ // InternalFlaDsl.g:3432:1: ( ruleACIDMitigation )
+ // InternalFlaDsl.g:3433:1: ruleACIDMitigation
+ {
+ before(grammarAccess.getComplexNofailureDefinitionAccess().getAcidMitigationACIDMitigationParserRuleCall_3_0());
+ pushFollow(FOLLOW_2);
+ ruleACIDMitigation();
+
+ state._fsp--;
+
+ after(grammarAccess.getComplexNofailureDefinitionAccess().getAcidMitigationACIDMitigationParserRuleCall_3_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ComplexNofailureDefinition__AcidMitigationAssignment_3"
+
+
+ // $ANTLR start "rule__VariableDefinition__VariableNameAssignment_1"
+ // InternalFlaDsl.g:3442:1: rule__VariableDefinition__VariableNameAssignment_1 : ( RULE_ID ) ;
+ public final void rule__VariableDefinition__VariableNameAssignment_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:3446:1: ( ( RULE_ID ) )
+ // InternalFlaDsl.g:3447:1: ( RULE_ID )
+ {
+ // InternalFlaDsl.g:3447:1: ( RULE_ID )
+ // InternalFlaDsl.g:3448:1: RULE_ID
+ {
+ before(grammarAccess.getVariableDefinitionAccess().getVariableNameIDTerminalRuleCall_1_0());
+ match(input,RULE_ID,FOLLOW_2);
+ after(grammarAccess.getVariableDefinitionAccess().getVariableNameIDTerminalRuleCall_1_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__VariableDefinition__VariableNameAssignment_1"
+
+
+ // $ANTLR start "rule__ACIDavoidable__AAssignment_0"
+ // InternalFlaDsl.g:3457:1: rule__ACIDavoidable__AAssignment_0 : ( ruleAavoidable ) ;
+ public final void rule__ACIDavoidable__AAssignment_0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:3461:1: ( ( ruleAavoidable ) )
+ // InternalFlaDsl.g:3462:1: ( ruleAavoidable )
+ {
+ // InternalFlaDsl.g:3462:1: ( ruleAavoidable )
+ // InternalFlaDsl.g:3463:1: ruleAavoidable
+ {
+ before(grammarAccess.getACIDavoidableAccess().getAAavoidableEnumRuleCall_0_0());
+ pushFollow(FOLLOW_2);
+ ruleAavoidable();
+
+ state._fsp--;
+
+ after(grammarAccess.getACIDavoidableAccess().getAAavoidableEnumRuleCall_0_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ACIDavoidable__AAssignment_0"
+
+
+ // $ANTLR start "rule__ACIDavoidable__CAssignment_2"
+ // InternalFlaDsl.g:3472:1: rule__ACIDavoidable__CAssignment_2 : ( ruleCavoidable ) ;
+ public final void rule__ACIDavoidable__CAssignment_2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:3476:1: ( ( ruleCavoidable ) )
+ // InternalFlaDsl.g:3477:1: ( ruleCavoidable )
+ {
+ // InternalFlaDsl.g:3477:1: ( ruleCavoidable )
+ // InternalFlaDsl.g:3478:1: ruleCavoidable
+ {
+ before(grammarAccess.getACIDavoidableAccess().getCCavoidableEnumRuleCall_2_0());
+ pushFollow(FOLLOW_2);
+ ruleCavoidable();
+
+ state._fsp--;
+
+ after(grammarAccess.getACIDavoidableAccess().getCCavoidableEnumRuleCall_2_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ACIDavoidable__CAssignment_2"
+
+
+ // $ANTLR start "rule__ACIDavoidable__IAssignment_4"
+ // InternalFlaDsl.g:3487:1: rule__ACIDavoidable__IAssignment_4 : ( ruleIavoidable ) ;
+ public final void rule__ACIDavoidable__IAssignment_4() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:3491:1: ( ( ruleIavoidable ) )
+ // InternalFlaDsl.g:3492:1: ( ruleIavoidable )
+ {
+ // InternalFlaDsl.g:3492:1: ( ruleIavoidable )
+ // InternalFlaDsl.g:3493:1: ruleIavoidable
+ {
+ before(grammarAccess.getACIDavoidableAccess().getIIavoidableEnumRuleCall_4_0());
+ pushFollow(FOLLOW_2);
+ ruleIavoidable();
+
+ state._fsp--;
+
+ after(grammarAccess.getACIDavoidableAccess().getIIavoidableEnumRuleCall_4_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ACIDavoidable__IAssignment_4"
+
+
+ // $ANTLR start "rule__ACIDavoidable__DAssignment_6"
+ // InternalFlaDsl.g:3502:1: rule__ACIDavoidable__DAssignment_6 : ( ruleDavoidable ) ;
+ public final void rule__ACIDavoidable__DAssignment_6() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:3506:1: ( ( ruleDavoidable ) )
+ // InternalFlaDsl.g:3507:1: ( ruleDavoidable )
+ {
+ // InternalFlaDsl.g:3507:1: ( ruleDavoidable )
+ // InternalFlaDsl.g:3508:1: ruleDavoidable
+ {
+ before(grammarAccess.getACIDavoidableAccess().getDDavoidableEnumRuleCall_6_0());
+ pushFollow(FOLLOW_2);
+ ruleDavoidable();
+
+ state._fsp--;
+
+ after(grammarAccess.getACIDavoidableAccess().getDDavoidableEnumRuleCall_6_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ACIDavoidable__DAssignment_6"
+
+
+ // $ANTLR start "rule__ACIDMitigation__AAssignment_0"
+ // InternalFlaDsl.g:3517:1: rule__ACIDMitigation__AAssignment_0 : ( ruleAmitigation ) ;
+ public final void rule__ACIDMitigation__AAssignment_0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:3521:1: ( ( ruleAmitigation ) )
+ // InternalFlaDsl.g:3522:1: ( ruleAmitigation )
+ {
+ // InternalFlaDsl.g:3522:1: ( ruleAmitigation )
+ // InternalFlaDsl.g:3523:1: ruleAmitigation
+ {
+ before(grammarAccess.getACIDMitigationAccess().getAAmitigationEnumRuleCall_0_0());
+ pushFollow(FOLLOW_2);
+ ruleAmitigation();
+
+ state._fsp--;
+
+ after(grammarAccess.getACIDMitigationAccess().getAAmitigationEnumRuleCall_0_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ACIDMitigation__AAssignment_0"
+
+
+ // $ANTLR start "rule__ACIDMitigation__CAssignment_2"
+ // InternalFlaDsl.g:3532:1: rule__ACIDMitigation__CAssignment_2 : ( ruleCmitigation ) ;
+ public final void rule__ACIDMitigation__CAssignment_2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:3536:1: ( ( ruleCmitigation ) )
+ // InternalFlaDsl.g:3537:1: ( ruleCmitigation )
+ {
+ // InternalFlaDsl.g:3537:1: ( ruleCmitigation )
+ // InternalFlaDsl.g:3538:1: ruleCmitigation
+ {
+ before(grammarAccess.getACIDMitigationAccess().getCCmitigationEnumRuleCall_2_0());
+ pushFollow(FOLLOW_2);
+ ruleCmitigation();
+
+ state._fsp--;
+
+ after(grammarAccess.getACIDMitigationAccess().getCCmitigationEnumRuleCall_2_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ACIDMitigation__CAssignment_2"
+
+
+ // $ANTLR start "rule__ACIDMitigation__IAssignment_4"
+ // InternalFlaDsl.g:3547:1: rule__ACIDMitigation__IAssignment_4 : ( ruleImitigation ) ;
+ public final void rule__ACIDMitigation__IAssignment_4() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:3551:1: ( ( ruleImitigation ) )
+ // InternalFlaDsl.g:3552:1: ( ruleImitigation )
+ {
+ // InternalFlaDsl.g:3552:1: ( ruleImitigation )
+ // InternalFlaDsl.g:3553:1: ruleImitigation
+ {
+ before(grammarAccess.getACIDMitigationAccess().getIImitigationEnumRuleCall_4_0());
+ pushFollow(FOLLOW_2);
+ ruleImitigation();
+
+ state._fsp--;
+
+ after(grammarAccess.getACIDMitigationAccess().getIImitigationEnumRuleCall_4_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ACIDMitigation__IAssignment_4"
+
+
+ // $ANTLR start "rule__ACIDMitigation__DAssignment_6"
+ // InternalFlaDsl.g:3562:1: rule__ACIDMitigation__DAssignment_6 : ( ruleDmitigation ) ;
+ public final void rule__ACIDMitigation__DAssignment_6() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalFlaDsl.g:3566:1: ( ( ruleDmitigation ) )
+ // InternalFlaDsl.g:3567:1: ( ruleDmitigation )
+ {
+ // InternalFlaDsl.g:3567:1: ( ruleDmitigation )
+ // InternalFlaDsl.g:3568:1: ruleDmitigation
+ {
+ before(grammarAccess.getACIDMitigationAccess().getDDmitigationEnumRuleCall_6_0());
+ pushFollow(FOLLOW_2);
+ ruleDmitigation();
+
+ state._fsp--;
+
+ after(grammarAccess.getACIDMitigationAccess().getDDmitigationEnumRuleCall_6_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ACIDMitigation__DAssignment_6"
+
+ // Delegated rules
+
+
+
+
+ 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[]{0x0000000100000002L});
+ public static final BitSet FOLLOW_4 = new BitSet(new long[]{0x0000000000000810L});
+ public static final BitSet FOLLOW_5 = new BitSet(new long[]{0x0000000200000000L});
+ public static final BitSet FOLLOW_6 = new BitSet(new long[]{0x0000000400000000L});
+ public static final BitSet FOLLOW_7 = new BitSet(new long[]{0x0000000800000000L});
+ public static final BitSet FOLLOW_8 = new BitSet(new long[]{0x0000000800000002L});
+ public static final BitSet FOLLOW_9 = new BitSet(new long[]{0x0000001000000000L});
+ public static final BitSet FOLLOW_10 = new BitSet(new long[]{0x000001A00003F010L});
+ public static final BitSet FOLLOW_11 = new BitSet(new long[]{0x000000000003F000L});
+ public static final BitSet FOLLOW_12 = new BitSet(new long[]{0x0000004000000000L});
+ public static final BitSet FOLLOW_13 = new BitSet(new long[]{0x00000000001C0000L});
+ public static final BitSet FOLLOW_14 = new BitSet(new long[]{0x0000008000000000L});
+ public static final BitSet FOLLOW_15 = new BitSet(new long[]{0x0000000003180000L});
+ public static final BitSet FOLLOW_16 = new BitSet(new long[]{0x0000010000000000L});
+ public static final BitSet FOLLOW_17 = new BitSet(new long[]{0x0000000000380000L});
+ public static final BitSet FOLLOW_18 = new BitSet(new long[]{0x0000000000580000L});
+ public static final BitSet FOLLOW_19 = new BitSet(new long[]{0x0000000000980000L});
+ public static final BitSet FOLLOW_20 = new BitSet(new long[]{0x000000000C180000L});
+ public static final BitSet FOLLOW_21 = new BitSet(new long[]{0x0000000030180000L});
+ public static final BitSet FOLLOW_22 = new BitSet(new long[]{0x00000000C0180000L});
+
+}
\ No newline at end of file
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl.ui/src-gen/org/polarsys/chess/xtext/ui/internal/FlaDslActivator.java b/plugins/fla/org.polarsys.chess.xtext.fladsl.ui/src-gen/org/polarsys/chess/xtext/ui/internal/FlaDslActivator.java
new file mode 100644
index 0000000..7d03be7
--- /dev/null
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl.ui/src-gen/org/polarsys/chess/xtext/ui/internal/FlaDslActivator.java
@@ -0,0 +1,95 @@
+/*
+ * generated by Xtext
+ */
+package org.polarsys.chess.xtext.ui.internal;
+
+import java.util.Collections;
+import java.util.Map;
+
+import org.apache.log4j.Logger;
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.eclipse.xtext.ui.shared.SharedStateModule;
+import org.eclipse.xtext.util.Modules2;
+import org.osgi.framework.BundleContext;
+
+import com.google.common.collect.Maps;
+import com.google.inject.Guice;
+import com.google.inject.Injector;
+import com.google.inject.Module;
+
+/**
+ * This class was generated. Customizations should only happen in a newly
+ * introduced subclass.
+ */
+public class FlaDslActivator extends AbstractUIPlugin {
+
+ public static final String ORG_POLARSYS_CHESS_XTEXT_FLADSL = "org.polarsys.chess.xtext.FlaDsl";
+
+ private static final Logger logger = Logger.getLogger(FlaDslActivator.class);
+
+ private static FlaDslActivator INSTANCE;
+
+ private Map<String, Injector> injectors = Collections.synchronizedMap(Maps.<String, Injector> newHashMapWithExpectedSize(1));
+
+ @Override
+ public void start(BundleContext context) throws Exception {
+ super.start(context);
+ INSTANCE = this;
+ }
+
+ @Override
+ public void stop(BundleContext context) throws Exception {
+ injectors.clear();
+ INSTANCE = null;
+ super.stop(context);
+ }
+
+ public static FlaDslActivator getInstance() {
+ return INSTANCE;
+ }
+
+ public Injector getInjector(String language) {
+ synchronized (injectors) {
+ Injector injector = injectors.get(language);
+ if (injector == null) {
+ injectors.put(language, injector = createInjector(language));
+ }
+ return injector;
+ }
+ }
+
+ protected Injector createInjector(String language) {
+ try {
+ Module runtimeModule = getRuntimeModule(language);
+ Module sharedStateModule = getSharedStateModule();
+ Module uiModule = getUiModule(language);
+ Module mergedModule = Modules2.mixin(runtimeModule, sharedStateModule, uiModule);
+ return Guice.createInjector(mergedModule);
+ } catch (Exception e) {
+ logger.error("Failed to create injector for " + language);
+ logger.error(e.getMessage(), e);
+ throw new RuntimeException("Failed to create injector for " + language, e);
+ }
+ }
+
+ protected Module getRuntimeModule(String grammar) {
+ if (ORG_POLARSYS_CHESS_XTEXT_FLADSL.equals(grammar)) {
+ return new org.polarsys.chess.xtext.FlaDslRuntimeModule();
+ }
+
+ throw new IllegalArgumentException(grammar);
+ }
+
+ protected Module getUiModule(String grammar) {
+ if (ORG_POLARSYS_CHESS_XTEXT_FLADSL.equals(grammar)) {
+ return new org.polarsys.chess.xtext.ui.FlaDslUiModule(this);
+ }
+
+ throw new IllegalArgumentException(grammar);
+ }
+
+ protected Module getSharedStateModule() {
+ return new SharedStateModule();
+ }
+
+}
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl.ui/src/org/polarsys/chess/xtext/ui/FlaDslUiModule.java b/plugins/fla/org.polarsys.chess.xtext.fladsl.ui/src/org/polarsys/chess/xtext/ui/FlaDslUiModule.java
index e3eae64..cc1fd9b 100644
--- a/plugins/fla/org.polarsys.chess.xtext.fladsl.ui/src/org/polarsys/chess/xtext/ui/FlaDslUiModule.java
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl.ui/src/org/polarsys/chess/xtext/ui/FlaDslUiModule.java
@@ -1,21 +1,6 @@
/*
* generated by Xtext
*/
-/*------------------------------------------------------------------------------
- -
- - Copyright (c) 2013, 2015 Intecs SpA
- - All rights reserved. This program and the accompanying materials
- - are made available under the terms of the Eclipse Public License v1.0
- - which accompanies this distribution, and is available at
- - http://www.eclipse.org/legal/epl-v10.html
- -
- - Contributors:
- -
- - Stefano Puri stefano.puri@intecs.it
- -
- - Initial API and implementation and/or initial documentation
- ------------------------------------------------------------------------------*/
-
package org.polarsys.chess.xtext.ui;
import org.eclipse.ui.plugin.AbstractUIPlugin;
@@ -23,7 +8,7 @@
/**
* Use this class to register components to be used within the IDE.
*/
-public class FlaDslUiModule extends org.polarsys.chess.xtext.ui.AbstractFlaDslUiModule{
+public class FlaDslUiModule extends org.polarsys.chess.xtext.ui.AbstractFlaDslUiModule {
public FlaDslUiModule(AbstractUIPlugin plugin) {
super(plugin);
}
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl.ui/src/org/polarsys/chess/xtext/ui/contentassist/FlaDslProposalProvider.xtend b/plugins/fla/org.polarsys.chess.xtext.fladsl.ui/src/org/polarsys/chess/xtext/ui/contentassist/FlaDslProposalProvider.xtend
index 4a15321..a930674 100644
--- a/plugins/fla/org.polarsys.chess.xtext.fladsl.ui/src/org/polarsys/chess/xtext/ui/contentassist/FlaDslProposalProvider.xtend
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl.ui/src/org/polarsys/chess/xtext/ui/contentassist/FlaDslProposalProvider.xtend
@@ -1,21 +1,6 @@
/*
* generated by Xtext
*/
- /*------------------------------------------------------------------------------
- -
- - Copyright (c) 2013, 2015 Intecs SpA
- - All rights reserved. This program and the accompanying materials
- - are made available under the terms of the Eclipse Public License v1.0
- - which accompanies this distribution, and is available at
- - http://www.eclipse.org/legal/epl-v10.html
- -
- - Contributors:
- -
- - Stefano Puri stefano.puri@intecs.it
- -
- - Initial API and implementation and/or initial documentation
- ------------------------------------------------------------------------------*/
-
package org.polarsys.chess.xtext.ui.contentassist
import org.polarsys.chess.xtext.ui.contentassist.AbstractFlaDslProposalProvider
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl/.classpath b/plugins/fla/org.polarsys.chess.xtext.fladsl/.classpath
index 4a3597e..29ba398 100644
--- a/plugins/fla/org.polarsys.chess.xtext.fladsl/.classpath
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl/.classpath
@@ -1,9 +1,9 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
- <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
- <classpathentry kind="src" path="src"/>
- <classpathentry kind="src" path="xtend-gen"/>
- <classpathentry kind="src" path="src-gen"/>
- <classpathentry kind="output" path="bin"/>
-</classpath>
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="src" path="xtend-gen"/>
+ <classpathentry kind="src" path="src-gen"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl/META-INF/MANIFEST.MF b/plugins/fla/org.polarsys.chess.xtext.fladsl/META-INF/MANIFEST.MF
index 9191cea..73e2b6a 100644
--- a/plugins/fla/org.polarsys.chess.xtext.fladsl/META-INF/MANIFEST.MF
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl/META-INF/MANIFEST.MF
@@ -27,15 +27,15 @@
Import-Package: org.apache.log4j,
org.eclipse.xtext.xbase.lib
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
-Export-Package: org.polarsys.chess.xtext.flaDsl,
- org.polarsys.chess.xtext.flaDsl.impl,
- org.polarsys.chess.xtext.flaDsl.util,
- org.polarsys.chess.xtext.parser.antlr,
- org.polarsys.chess.xtext.parser.antlr.internal,
- org.polarsys.chess.xtext.serializer,
- org.polarsys.chess.xtext.services,
- org.polarsys.chess.xtext,
+Export-Package: org.polarsys.chess.xtext,
org.polarsys.chess.xtext.formatting,
org.polarsys.chess.xtext.generator,
org.polarsys.chess.xtext.scoping,
- org.polarsys.chess.xtext.validation
+ org.polarsys.chess.xtext.validation,
+ org.polarsys.chess.xtext.services,
+ org.polarsys.chess.xtext.flaDsl,
+ org.polarsys.chess.xtext.flaDsl.impl,
+ org.polarsys.chess.xtext.flaDsl.util,
+ org.polarsys.chess.xtext.serializer,
+ org.polarsys.chess.xtext.parser.antlr,
+ org.polarsys.chess.xtext.parser.antlr.internal
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl/model/generated/FlaDsl.ecore b/plugins/fla/org.polarsys.chess.xtext.fladsl/model/generated/FlaDsl.ecore
new file mode 100644
index 0000000..893b767
--- /dev/null
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl/model/generated/FlaDsl.ecore
@@ -0,0 +1,120 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="flaDsl" nsURI="http://www.intecs.org/chess/xtext/FlaDsl" nsPrefix="flaDsl">
+ <eClassifiers xsi:type="ecore:EClass" name="Behaviour">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="rules" upperBound="-1"
+ eType="#//Expression" containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Expression">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="lhs" eType="#//Lhs" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="rhs" eType="#//Rhs" containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Lhs">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="failures" upperBound="-1"
+ eType="#//InputExpression" containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Rhs">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="failures" upperBound="-1"
+ eType="#//OutputExpression" containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="InputExpression">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="ref" eType="ecore:EClass platform:/resource/org.eclipse.uml2.uml/model/UML.ecore#//Port"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="failureExpr" eType="#//InFailureExpr"
+ containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="OutputExpression">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="ref" eType="ecore:EClass platform:/resource/org.eclipse.uml2.uml/model/UML.ecore#//Port"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="failureExpr" eType="#//OutFailureExpr"
+ containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="InFailureExpr">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="failures" upperBound="-1"
+ eType="#//Definitions" containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="OutFailureExpr">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="failures" upperBound="-1"
+ eType="#//Definitions" containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Definitions"/>
+ <eClassifiers xsi:type="ecore:EClass" name="FailureDefinition" eSuperTypes="#//Definitions">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="type" eType="#//FailureType"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="acidAvoidable" eType="#//ACIDavoidable"
+ containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="NoFailureDefinition" eSuperTypes="#//Definitions #//ComplexNofailureDefinition">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="acidMitigation" eType="#//ACIDMitigation"
+ containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ComplexNofailureDefinition" eSuperTypes="#//Definitions"/>
+ <eClassifiers xsi:type="ecore:EClass" name="WildcardDefinition" eSuperTypes="#//Definitions"/>
+ <eClassifiers xsi:type="ecore:EClass" name="VariableDefinition" eSuperTypes="#//Definitions">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="variableName" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="FailureType">
+ <eLiterals name="NO_FAILURE" literal="noFailure"/>
+ <eLiterals name="EARLY" value="1" literal="early"/>
+ <eLiterals name="LATE" value="2" literal="late"/>
+ <eLiterals name="COMMISSION" value="3" literal="commission"/>
+ <eLiterals name="OMISSION" value="4" literal="omission"/>
+ <eLiterals name="VALUE_SUBTLE" value="5" literal="valueSubtle"/>
+ <eLiterals name="VALUE_COARSE" value="6" literal="valueCoarse"/>
+ <eLiterals name="WILDCARD" value="7" literal="wildcard"/>
+ <eLiterals name="VARIABLE" value="8" literal="variable"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ACIDavoidable">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="a" eType="#//Aavoidable"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="c" eType="#//Cavoidable"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="i" eType="#//Iavoidable"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="d" eType="#//Davoidable"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="Aavoidable">
+ <eLiterals name="INCOMPLETION" literal="incompletion"/>
+ <eLiterals name="NONE" value="1" literal="none"/>
+ <eLiterals name="UNSPECIFIED" value="2" literal="unspecified"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="Cavoidable">
+ <eLiterals name="INCONSISTENCY" literal="inconsistency"/>
+ <eLiterals name="NONE" value="1" literal="none"/>
+ <eLiterals name="UNSPECIFIED" value="2" literal="unspecified"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="Iavoidable">
+ <eLiterals name="INTERFERENCE" literal="interference"/>
+ <eLiterals name="NONE" value="1" literal="none"/>
+ <eLiterals name="UNSPECIFIED" value="2" literal="unspecified"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="Davoidable">
+ <eLiterals name="IMPERMANENCE" literal="impermanence"/>
+ <eLiterals name="NONE" value="1" literal="none"/>
+ <eLiterals name="UNSPECIFIED" value="2" literal="unspecified"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ACIDMitigation">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="a" eType="#//Amitigation"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="c" eType="#//Cmitigation"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="i" eType="#//Imitigation"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="d" eType="#//Dmitigation"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="Amitigation">
+ <eLiterals name="ALL_OR_NOTHING" literal="all_or_nothing"/>
+ <eLiterals name="ALL_OR_COMPENSATION" value="1" literal="all_or_compensation"/>
+ <eLiterals name="NONE" value="2" literal="none"/>
+ <eLiterals name="UNSPECIFIED" value="3" literal="unspecified"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="Cmitigation">
+ <eLiterals name="FULL_CONSISTENCY" literal="full_consistency"/>
+ <eLiterals name="RANGE_VIOLATION_ALLOWED" value="1" literal="range_violation_allowed"/>
+ <eLiterals name="NONE" value="2" literal="none"/>
+ <eLiterals name="UNSPECIFIED" value="3" literal="unspecified"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="Imitigation">
+ <eLiterals name="SERIALIZABLE" literal="serializable"/>
+ <eLiterals name="PORTABLE_LEVEL" value="1" literal="portable_level"/>
+ <eLiterals name="NONE" value="2" literal="none"/>
+ <eLiterals name="UNSPECIFIED" value="3" literal="unspecified"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="Dmitigation">
+ <eLiterals name="NO_LOSS" literal="no_loss"/>
+ <eLiterals name="PARTIAL_LOSS_ALLOWED" value="1" literal="partial_loss_allowed"/>
+ <eLiterals name="NONE" value="2" literal="none"/>
+ <eLiterals name="UNSPECIFIED" value="3" literal="unspecified"/>
+ </eClassifiers>
+</ecore:EPackage>
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl/model/generated/FlaDsl.genmodel b/plugins/fla/org.polarsys.chess.xtext.fladsl/model/generated/FlaDsl.genmodel
new file mode 100644
index 0000000..4caeb42
--- /dev/null
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl/model/generated/FlaDsl.genmodel
@@ -0,0 +1,119 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<genmodel:GenModel xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"
+ xmlns:genmodel="http://www.eclipse.org/emf/2002/GenModel" modelDirectory="/org.polarsys.chess.xtext.fladsl/src-gen" editDirectory="/org.polarsys.chess.xtext.fladsl.edit/src"
+ editorDirectory="/org.polarsys.chess.xtext.fladsl.editor/src" modelPluginID="org.polarsys.chess.xtext.fladsl"
+ forceOverwrite="true" modelName="FlaDsl" updateClasspath="false" rootExtendsClass="org.eclipse.emf.ecore.impl.MinimalEObjectImpl$Container"
+ complianceLevel="6.0" copyrightFields="false" editPluginID="org.polarsys.chess.xtext.fladsl.edit"
+ editorPluginID="org.polarsys.chess.xtext.fladsl.editor" runtimeVersion="2.12"
+ usedGenPackages="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.genmodel#//ecore platform:/resource/org.eclipse.uml2.uml/model/UML.genmodel#//uml">
+ <genPackages prefix="FlaDsl" basePackage="org.polarsys.chess.xtext" disposableProviderFactory="true"
+ fileExtensions="fladsl" ecorePackage="FlaDsl.ecore#/">
+ <genEnums typeSafeEnumCompatible="false" ecoreEnum="FlaDsl.ecore#//FailureType">
+ <genEnumLiterals ecoreEnumLiteral="FlaDsl.ecore#//FailureType/NO_FAILURE"/>
+ <genEnumLiterals ecoreEnumLiteral="FlaDsl.ecore#//FailureType/EARLY"/>
+ <genEnumLiterals ecoreEnumLiteral="FlaDsl.ecore#//FailureType/LATE"/>
+ <genEnumLiterals ecoreEnumLiteral="FlaDsl.ecore#//FailureType/COMMISSION"/>
+ <genEnumLiterals ecoreEnumLiteral="FlaDsl.ecore#//FailureType/OMISSION"/>
+ <genEnumLiterals ecoreEnumLiteral="FlaDsl.ecore#//FailureType/VALUE_SUBTLE"/>
+ <genEnumLiterals ecoreEnumLiteral="FlaDsl.ecore#//FailureType/VALUE_COARSE"/>
+ <genEnumLiterals ecoreEnumLiteral="FlaDsl.ecore#//FailureType/WILDCARD"/>
+ <genEnumLiterals ecoreEnumLiteral="FlaDsl.ecore#//FailureType/VARIABLE"/>
+ </genEnums>
+ <genEnums typeSafeEnumCompatible="false" ecoreEnum="FlaDsl.ecore#//Aavoidable">
+ <genEnumLiterals ecoreEnumLiteral="FlaDsl.ecore#//Aavoidable/INCOMPLETION"/>
+ <genEnumLiterals ecoreEnumLiteral="FlaDsl.ecore#//Aavoidable/NONE"/>
+ <genEnumLiterals ecoreEnumLiteral="FlaDsl.ecore#//Aavoidable/UNSPECIFIED"/>
+ </genEnums>
+ <genEnums typeSafeEnumCompatible="false" ecoreEnum="FlaDsl.ecore#//Cavoidable">
+ <genEnumLiterals ecoreEnumLiteral="FlaDsl.ecore#//Cavoidable/INCONSISTENCY"/>
+ <genEnumLiterals ecoreEnumLiteral="FlaDsl.ecore#//Cavoidable/NONE"/>
+ <genEnumLiterals ecoreEnumLiteral="FlaDsl.ecore#//Cavoidable/UNSPECIFIED"/>
+ </genEnums>
+ <genEnums typeSafeEnumCompatible="false" ecoreEnum="FlaDsl.ecore#//Iavoidable">
+ <genEnumLiterals ecoreEnumLiteral="FlaDsl.ecore#//Iavoidable/INTERFERENCE"/>
+ <genEnumLiterals ecoreEnumLiteral="FlaDsl.ecore#//Iavoidable/NONE"/>
+ <genEnumLiterals ecoreEnumLiteral="FlaDsl.ecore#//Iavoidable/UNSPECIFIED"/>
+ </genEnums>
+ <genEnums typeSafeEnumCompatible="false" ecoreEnum="FlaDsl.ecore#//Davoidable">
+ <genEnumLiterals ecoreEnumLiteral="FlaDsl.ecore#//Davoidable/IMPERMANENCE"/>
+ <genEnumLiterals ecoreEnumLiteral="FlaDsl.ecore#//Davoidable/NONE"/>
+ <genEnumLiterals ecoreEnumLiteral="FlaDsl.ecore#//Davoidable/UNSPECIFIED"/>
+ </genEnums>
+ <genEnums typeSafeEnumCompatible="false" ecoreEnum="FlaDsl.ecore#//Amitigation">
+ <genEnumLiterals ecoreEnumLiteral="FlaDsl.ecore#//Amitigation/ALL_OR_NOTHING"/>
+ <genEnumLiterals ecoreEnumLiteral="FlaDsl.ecore#//Amitigation/ALL_OR_COMPENSATION"/>
+ <genEnumLiterals ecoreEnumLiteral="FlaDsl.ecore#//Amitigation/NONE"/>
+ <genEnumLiterals ecoreEnumLiteral="FlaDsl.ecore#//Amitigation/UNSPECIFIED"/>
+ </genEnums>
+ <genEnums typeSafeEnumCompatible="false" ecoreEnum="FlaDsl.ecore#//Cmitigation">
+ <genEnumLiterals ecoreEnumLiteral="FlaDsl.ecore#//Cmitigation/FULL_CONSISTENCY"/>
+ <genEnumLiterals ecoreEnumLiteral="FlaDsl.ecore#//Cmitigation/RANGE_VIOLATION_ALLOWED"/>
+ <genEnumLiterals ecoreEnumLiteral="FlaDsl.ecore#//Cmitigation/NONE"/>
+ <genEnumLiterals ecoreEnumLiteral="FlaDsl.ecore#//Cmitigation/UNSPECIFIED"/>
+ </genEnums>
+ <genEnums typeSafeEnumCompatible="false" ecoreEnum="FlaDsl.ecore#//Imitigation">
+ <genEnumLiterals ecoreEnumLiteral="FlaDsl.ecore#//Imitigation/SERIALIZABLE"/>
+ <genEnumLiterals ecoreEnumLiteral="FlaDsl.ecore#//Imitigation/PORTABLE_LEVEL"/>
+ <genEnumLiterals ecoreEnumLiteral="FlaDsl.ecore#//Imitigation/NONE"/>
+ <genEnumLiterals ecoreEnumLiteral="FlaDsl.ecore#//Imitigation/UNSPECIFIED"/>
+ </genEnums>
+ <genEnums typeSafeEnumCompatible="false" ecoreEnum="FlaDsl.ecore#//Dmitigation">
+ <genEnumLiterals ecoreEnumLiteral="FlaDsl.ecore#//Dmitigation/NO_LOSS"/>
+ <genEnumLiterals ecoreEnumLiteral="FlaDsl.ecore#//Dmitigation/PARTIAL_LOSS_ALLOWED"/>
+ <genEnumLiterals ecoreEnumLiteral="FlaDsl.ecore#//Dmitigation/NONE"/>
+ <genEnumLiterals ecoreEnumLiteral="FlaDsl.ecore#//Dmitigation/UNSPECIFIED"/>
+ </genEnums>
+ <genClasses ecoreClass="FlaDsl.ecore#//Behaviour">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference FlaDsl.ecore#//Behaviour/rules"/>
+ </genClasses>
+ <genClasses ecoreClass="FlaDsl.ecore#//Expression">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference FlaDsl.ecore#//Expression/lhs"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference FlaDsl.ecore#//Expression/rhs"/>
+ </genClasses>
+ <genClasses ecoreClass="FlaDsl.ecore#//Lhs">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference FlaDsl.ecore#//Lhs/failures"/>
+ </genClasses>
+ <genClasses ecoreClass="FlaDsl.ecore#//Rhs">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference FlaDsl.ecore#//Rhs/failures"/>
+ </genClasses>
+ <genClasses ecoreClass="FlaDsl.ecore#//InputExpression">
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference FlaDsl.ecore#//InputExpression/ref"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference FlaDsl.ecore#//InputExpression/failureExpr"/>
+ </genClasses>
+ <genClasses ecoreClass="FlaDsl.ecore#//OutputExpression">
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference FlaDsl.ecore#//OutputExpression/ref"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference FlaDsl.ecore#//OutputExpression/failureExpr"/>
+ </genClasses>
+ <genClasses ecoreClass="FlaDsl.ecore#//InFailureExpr">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference FlaDsl.ecore#//InFailureExpr/failures"/>
+ </genClasses>
+ <genClasses ecoreClass="FlaDsl.ecore#//OutFailureExpr">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference FlaDsl.ecore#//OutFailureExpr/failures"/>
+ </genClasses>
+ <genClasses ecoreClass="FlaDsl.ecore#//Definitions"/>
+ <genClasses ecoreClass="FlaDsl.ecore#//FailureDefinition">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute FlaDsl.ecore#//FailureDefinition/type"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference FlaDsl.ecore#//FailureDefinition/acidAvoidable"/>
+ </genClasses>
+ <genClasses ecoreClass="FlaDsl.ecore#//NoFailureDefinition">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference FlaDsl.ecore#//NoFailureDefinition/acidMitigation"/>
+ </genClasses>
+ <genClasses ecoreClass="FlaDsl.ecore#//ComplexNofailureDefinition"/>
+ <genClasses ecoreClass="FlaDsl.ecore#//WildcardDefinition"/>
+ <genClasses ecoreClass="FlaDsl.ecore#//VariableDefinition">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute FlaDsl.ecore#//VariableDefinition/variableName"/>
+ </genClasses>
+ <genClasses ecoreClass="FlaDsl.ecore#//ACIDavoidable">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute FlaDsl.ecore#//ACIDavoidable/a"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute FlaDsl.ecore#//ACIDavoidable/c"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute FlaDsl.ecore#//ACIDavoidable/i"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute FlaDsl.ecore#//ACIDavoidable/d"/>
+ </genClasses>
+ <genClasses ecoreClass="FlaDsl.ecore#//ACIDMitigation">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute FlaDsl.ecore#//ACIDMitigation/a"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute FlaDsl.ecore#//ACIDMitigation/c"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute FlaDsl.ecore#//ACIDMitigation/i"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute FlaDsl.ecore#//ACIDMitigation/d"/>
+ </genClasses>
+ </genPackages>
+</genmodel:GenModel>
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl/plugin.xml_gen b/plugins/fla/org.polarsys.chess.xtext.fladsl/plugin.xml_gen
index eb3f0e7..ca15dd9 100644
--- a/plugins/fla/org.polarsys.chess.xtext.fladsl/plugin.xml_gen
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl/plugin.xml_gen
@@ -1,16 +1,16 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-
-<plugin>
-
- <extension point="org.eclipse.emf.ecore.generated_package">
- <package
- uri = "http://www.intecs.org/chess/xtext/FlaDsl"
- class = "org.polarsys.chess.xtext.flaDsl.FlaDslPackage"
- genModel = "model/generated/FlaDsl.genmodel" />
-
- </extension>
-
-
-
-</plugin>
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+
+<plugin>
+
+ <extension point="org.eclipse.emf.ecore.generated_package">
+ <package
+ uri = "http://www.intecs.org/chess/xtext/FlaDsl"
+ class = "org.polarsys.chess.xtext.flaDsl.FlaDslPackage"
+ genModel = "model/generated/FlaDsl.genmodel" />
+
+ </extension>
+
+
+
+</plugin>
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/AbstractFlaDslRuntimeModule.java b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/AbstractFlaDslRuntimeModule.java
new file mode 100644
index 0000000..d25a7cd
--- /dev/null
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/AbstractFlaDslRuntimeModule.java
@@ -0,0 +1,156 @@
+/*
+ * generated by Xtext
+ */
+package org.polarsys.chess.xtext;
+
+import java.util.Properties;
+
+import org.eclipse.xtext.Constants;
+
+import com.google.inject.Binder;
+import com.google.inject.name.Names;
+
+/**
+ * Manual modifications go to {org.polarsys.chess.xtext.FlaDslRuntimeModule}
+ */
+@SuppressWarnings("all")
+public abstract class AbstractFlaDslRuntimeModule extends org.eclipse.xtext.common.types.DefaultCommonTypesRuntimeModule {
+
+ protected Properties properties = null;
+
+ @Override
+ public void configure(Binder binder) {
+ properties = tryBindProperties(binder, "org/polarsys/chess/xtext/FlaDsl.properties");
+ super.configure(binder);
+ }
+
+ public void configureLanguageName(Binder binder) {
+ binder.bind(String.class).annotatedWith(Names.named(Constants.LANGUAGE_NAME)).toInstance("org.polarsys.chess.xtext.FlaDsl");
+ }
+
+ public void configureFileExtensions(Binder binder) {
+ if (properties == null || properties.getProperty(Constants.FILE_EXTENSIONS) == null)
+ binder.bind(String.class).annotatedWith(Names.named(Constants.FILE_EXTENSIONS)).toInstance("fladsl");
+ }
+
+ // contributed by org.eclipse.xtext.generator.grammarAccess.GrammarAccessFragment
+ public java.lang.ClassLoader bindClassLoaderToInstance() {
+ return getClass().getClassLoader();
+ }
+
+ // contributed by org.eclipse.xtext.generator.grammarAccess.GrammarAccessFragment
+ public Class<? extends org.eclipse.xtext.IGrammarAccess> bindIGrammarAccess() {
+ return org.polarsys.chess.xtext.services.FlaDslGrammarAccess.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.serializer.SerializerFragment
+ public Class<? extends org.eclipse.xtext.serializer.sequencer.ISemanticSequencer> bindISemanticSequencer() {
+ return org.polarsys.chess.xtext.serializer.FlaDslSemanticSequencer.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.serializer.SerializerFragment
+ public Class<? extends org.eclipse.xtext.serializer.sequencer.ISyntacticSequencer> bindISyntacticSequencer() {
+ return org.polarsys.chess.xtext.serializer.FlaDslSyntacticSequencer.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.serializer.SerializerFragment
+ public Class<? extends org.eclipse.xtext.serializer.ISerializer> bindISerializer() {
+ return org.eclipse.xtext.serializer.impl.Serializer.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment
+ public Class<? extends org.eclipse.xtext.parser.IParser> bindIParser() {
+ return org.polarsys.chess.xtext.parser.antlr.FlaDslParser.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment
+ public Class<? extends org.eclipse.xtext.parser.ITokenToStringConverter> bindITokenToStringConverter() {
+ return org.eclipse.xtext.parser.antlr.AntlrTokenToStringConverter.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment
+ public Class<? extends org.eclipse.xtext.parser.antlr.IAntlrTokenFileProvider> bindIAntlrTokenFileProvider() {
+ return org.polarsys.chess.xtext.parser.antlr.FlaDslAntlrTokenFileProvider.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment
+ public Class<? extends org.eclipse.xtext.parser.antlr.Lexer> bindLexer() {
+ return org.polarsys.chess.xtext.parser.antlr.internal.InternalFlaDslLexer.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment
+ public com.google.inject.Provider<org.polarsys.chess.xtext.parser.antlr.internal.InternalFlaDslLexer> provideInternalFlaDslLexer() {
+ return org.eclipse.xtext.parser.antlr.LexerProvider.create(org.polarsys.chess.xtext.parser.antlr.internal.InternalFlaDslLexer.class);
+ }
+
+ // contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment
+ public void configureRuntimeLexer(com.google.inject.Binder binder) {
+ binder.bind(org.eclipse.xtext.parser.antlr.Lexer.class).annotatedWith(com.google.inject.name.Names.named(org.eclipse.xtext.parser.antlr.LexerBindings.RUNTIME)).to(org.polarsys.chess.xtext.parser.antlr.internal.InternalFlaDslLexer.class);
+ }
+
+ // contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment
+ public Class<? extends org.eclipse.xtext.parser.antlr.ITokenDefProvider> bindITokenDefProvider() {
+ return org.eclipse.xtext.parser.antlr.AntlrTokenDefProvider.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.validation.ValidatorFragment
+ @org.eclipse.xtext.service.SingletonBinding(eager=true) public Class<? extends org.polarsys.chess.xtext.validation.FlaDslValidator> bindFlaDslValidator() {
+ return org.polarsys.chess.xtext.validation.FlaDslValidator.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.scoping.AbstractScopingFragment
+ public Class<? extends org.eclipse.xtext.scoping.IScopeProvider> bindIScopeProvider() {
+ return org.polarsys.chess.xtext.scoping.FlaDslScopeProvider.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.scoping.AbstractScopingFragment
+ public void configureIScopeProviderDelegate(com.google.inject.Binder binder) {
+ binder.bind(org.eclipse.xtext.scoping.IScopeProvider.class).annotatedWith(com.google.inject.name.Names.named(org.eclipse.xtext.scoping.impl.AbstractDeclarativeScopeProvider.NAMED_DELEGATE)).to(org.eclipse.xtext.scoping.impl.ImportedNamespaceAwareLocalScopeProvider.class);
+ }
+
+ // contributed by org.eclipse.xtext.generator.scoping.AbstractScopingFragment
+ public void configureIgnoreCaseLinking(com.google.inject.Binder binder) {
+ binder.bindConstant().annotatedWith(org.eclipse.xtext.scoping.IgnoreCaseLinking.class).to(false);
+ }
+
+ // contributed by org.eclipse.xtext.generator.exporting.QualifiedNamesFragment
+ public Class<? extends org.eclipse.xtext.naming.IQualifiedNameProvider> bindIQualifiedNameProvider() {
+ return org.eclipse.xtext.naming.DefaultDeclarativeQualifiedNameProvider.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.builder.BuilderIntegrationFragment
+ public Class<? extends org.eclipse.xtext.resource.IContainer.Manager> bindIContainer$Manager() {
+ return org.eclipse.xtext.resource.containers.StateBasedContainerManager.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.builder.BuilderIntegrationFragment
+ public Class<? extends org.eclipse.xtext.resource.containers.IAllContainersState.Provider> bindIAllContainersState$Provider() {
+ return org.eclipse.xtext.resource.containers.ResourceSetBasedAllContainersStateProvider.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.builder.BuilderIntegrationFragment
+ public void configureIResourceDescriptions(com.google.inject.Binder binder) {
+ binder.bind(org.eclipse.xtext.resource.IResourceDescriptions.class).to(org.eclipse.xtext.resource.impl.ResourceSetBasedResourceDescriptions.class);
+ }
+
+ // contributed by org.eclipse.xtext.generator.builder.BuilderIntegrationFragment
+ public void configureIResourceDescriptionsPersisted(com.google.inject.Binder binder) {
+ binder.bind(org.eclipse.xtext.resource.IResourceDescriptions.class).annotatedWith(com.google.inject.name.Names.named(org.eclipse.xtext.resource.impl.ResourceDescriptionsProvider.PERSISTED_DESCRIPTIONS)).to(org.eclipse.xtext.resource.impl.ResourceSetBasedResourceDescriptions.class);
+ }
+
+ // contributed by org.eclipse.xtext.generator.generator.GeneratorFragment
+ public Class<? extends org.eclipse.xtext.generator.IGenerator> bindIGenerator() {
+ return org.polarsys.chess.xtext.generator.FlaDslGenerator.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.formatting.FormatterFragment
+ public Class<? extends org.eclipse.xtext.formatting.IFormatter> bindIFormatter() {
+ return org.polarsys.chess.xtext.formatting.FlaDslFormatter.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.types.TypesGeneratorFragment
+ public Class<? extends org.eclipse.xtext.scoping.IGlobalScopeProvider> bindIGlobalScopeProvider() {
+ return org.eclipse.xtext.common.types.xtext.TypesAwareDefaultGlobalScopeProvider.class;
+ }
+
+}
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/FlaDsl.xtextbin b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/FlaDsl.xtextbin
new file mode 100644
index 0000000..23ee3c8
--- /dev/null
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/FlaDsl.xtextbin
Binary files differ
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/FlaDslStandaloneSetupGenerated.java b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/FlaDslStandaloneSetupGenerated.java
new file mode 100644
index 0000000..10a22a2
--- /dev/null
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/FlaDslStandaloneSetupGenerated.java
@@ -0,0 +1,45 @@
+/*
+ * generated by Xtext
+ */
+package org.polarsys.chess.xtext;
+
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.xtext.ISetup;
+
+import com.google.inject.Guice;
+import com.google.inject.Injector;
+
+/**
+ * Generated from StandaloneSetup.xpt!
+ */
+@SuppressWarnings("all")
+public class FlaDslStandaloneSetupGenerated implements ISetup {
+
+ @Override
+ public Injector createInjectorAndDoEMFRegistration() {
+ org.eclipse.xtext.common.TerminalsStandaloneSetup.doSetup();
+
+ Injector injector = createInjector();
+ register(injector);
+ return injector;
+ }
+
+ public Injector createInjector() {
+ return Guice.createInjector(new org.polarsys.chess.xtext.FlaDslRuntimeModule());
+ }
+
+ public void register(Injector injector) {
+ if (!EPackage.Registry.INSTANCE.containsKey("http://www.intecs.org/chess/xtext/FlaDsl")) {
+ EPackage.Registry.INSTANCE.put("http://www.intecs.org/chess/xtext/FlaDsl", org.polarsys.chess.xtext.flaDsl.FlaDslPackage.eINSTANCE);
+ }
+
+ org.eclipse.xtext.resource.IResourceFactory resourceFactory = injector.getInstance(org.eclipse.xtext.resource.IResourceFactory.class);
+ org.eclipse.xtext.resource.IResourceServiceProvider serviceProvider = injector.getInstance(org.eclipse.xtext.resource.IResourceServiceProvider.class);
+ Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap().put("fladsl", resourceFactory);
+ org.eclipse.xtext.resource.IResourceServiceProvider.Registry.INSTANCE.getExtensionToFactoryMap().put("fladsl", serviceProvider);
+
+
+
+ }
+}
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/ACIDMitigation.java b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/ACIDMitigation.java
new file mode 100644
index 0000000..818ea51
--- /dev/null
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/ACIDMitigation.java
@@ -0,0 +1,144 @@
+/**
+ */
+package org.polarsys.chess.xtext.flaDsl;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>ACID Mitigation</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.polarsys.chess.xtext.flaDsl.ACIDMitigation#getA <em>A</em>}</li>
+ * <li>{@link org.polarsys.chess.xtext.flaDsl.ACIDMitigation#getC <em>C</em>}</li>
+ * <li>{@link org.polarsys.chess.xtext.flaDsl.ACIDMitigation#getI <em>I</em>}</li>
+ * <li>{@link org.polarsys.chess.xtext.flaDsl.ACIDMitigation#getD <em>D</em>}</li>
+ * </ul>
+ *
+ * @see org.polarsys.chess.xtext.flaDsl.FlaDslPackage#getACIDMitigation()
+ * @model
+ * @generated
+ */
+public interface ACIDMitigation extends EObject
+{
+ /**
+ * Returns the value of the '<em><b>A</b></em>' attribute.
+ * The literals are from the enumeration {@link org.polarsys.chess.xtext.flaDsl.Amitigation}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>A</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>A</em>' attribute.
+ * @see org.polarsys.chess.xtext.flaDsl.Amitigation
+ * @see #setA(Amitigation)
+ * @see org.polarsys.chess.xtext.flaDsl.FlaDslPackage#getACIDMitigation_A()
+ * @model
+ * @generated
+ */
+ Amitigation getA();
+
+ /**
+ * Sets the value of the '{@link org.polarsys.chess.xtext.flaDsl.ACIDMitigation#getA <em>A</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>A</em>' attribute.
+ * @see org.polarsys.chess.xtext.flaDsl.Amitigation
+ * @see #getA()
+ * @generated
+ */
+ void setA(Amitigation value);
+
+ /**
+ * Returns the value of the '<em><b>C</b></em>' attribute.
+ * The literals are from the enumeration {@link org.polarsys.chess.xtext.flaDsl.Cmitigation}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>C</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>C</em>' attribute.
+ * @see org.polarsys.chess.xtext.flaDsl.Cmitigation
+ * @see #setC(Cmitigation)
+ * @see org.polarsys.chess.xtext.flaDsl.FlaDslPackage#getACIDMitigation_C()
+ * @model
+ * @generated
+ */
+ Cmitigation getC();
+
+ /**
+ * Sets the value of the '{@link org.polarsys.chess.xtext.flaDsl.ACIDMitigation#getC <em>C</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>C</em>' attribute.
+ * @see org.polarsys.chess.xtext.flaDsl.Cmitigation
+ * @see #getC()
+ * @generated
+ */
+ void setC(Cmitigation value);
+
+ /**
+ * Returns the value of the '<em><b>I</b></em>' attribute.
+ * The literals are from the enumeration {@link org.polarsys.chess.xtext.flaDsl.Imitigation}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>I</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>I</em>' attribute.
+ * @see org.polarsys.chess.xtext.flaDsl.Imitigation
+ * @see #setI(Imitigation)
+ * @see org.polarsys.chess.xtext.flaDsl.FlaDslPackage#getACIDMitigation_I()
+ * @model
+ * @generated
+ */
+ Imitigation getI();
+
+ /**
+ * Sets the value of the '{@link org.polarsys.chess.xtext.flaDsl.ACIDMitigation#getI <em>I</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>I</em>' attribute.
+ * @see org.polarsys.chess.xtext.flaDsl.Imitigation
+ * @see #getI()
+ * @generated
+ */
+ void setI(Imitigation value);
+
+ /**
+ * Returns the value of the '<em><b>D</b></em>' attribute.
+ * The literals are from the enumeration {@link org.polarsys.chess.xtext.flaDsl.Dmitigation}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>D</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>D</em>' attribute.
+ * @see org.polarsys.chess.xtext.flaDsl.Dmitigation
+ * @see #setD(Dmitigation)
+ * @see org.polarsys.chess.xtext.flaDsl.FlaDslPackage#getACIDMitigation_D()
+ * @model
+ * @generated
+ */
+ Dmitigation getD();
+
+ /**
+ * Sets the value of the '{@link org.polarsys.chess.xtext.flaDsl.ACIDMitigation#getD <em>D</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>D</em>' attribute.
+ * @see org.polarsys.chess.xtext.flaDsl.Dmitigation
+ * @see #getD()
+ * @generated
+ */
+ void setD(Dmitigation value);
+
+} // ACIDMitigation
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/ACIDavoidable.java b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/ACIDavoidable.java
new file mode 100644
index 0000000..9c9f407
--- /dev/null
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/ACIDavoidable.java
@@ -0,0 +1,144 @@
+/**
+ */
+package org.polarsys.chess.xtext.flaDsl;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>ACI Davoidable</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.polarsys.chess.xtext.flaDsl.ACIDavoidable#getA <em>A</em>}</li>
+ * <li>{@link org.polarsys.chess.xtext.flaDsl.ACIDavoidable#getC <em>C</em>}</li>
+ * <li>{@link org.polarsys.chess.xtext.flaDsl.ACIDavoidable#getI <em>I</em>}</li>
+ * <li>{@link org.polarsys.chess.xtext.flaDsl.ACIDavoidable#getD <em>D</em>}</li>
+ * </ul>
+ *
+ * @see org.polarsys.chess.xtext.flaDsl.FlaDslPackage#getACIDavoidable()
+ * @model
+ * @generated
+ */
+public interface ACIDavoidable extends EObject
+{
+ /**
+ * Returns the value of the '<em><b>A</b></em>' attribute.
+ * The literals are from the enumeration {@link org.polarsys.chess.xtext.flaDsl.Aavoidable}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>A</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>A</em>' attribute.
+ * @see org.polarsys.chess.xtext.flaDsl.Aavoidable
+ * @see #setA(Aavoidable)
+ * @see org.polarsys.chess.xtext.flaDsl.FlaDslPackage#getACIDavoidable_A()
+ * @model
+ * @generated
+ */
+ Aavoidable getA();
+
+ /**
+ * Sets the value of the '{@link org.polarsys.chess.xtext.flaDsl.ACIDavoidable#getA <em>A</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>A</em>' attribute.
+ * @see org.polarsys.chess.xtext.flaDsl.Aavoidable
+ * @see #getA()
+ * @generated
+ */
+ void setA(Aavoidable value);
+
+ /**
+ * Returns the value of the '<em><b>C</b></em>' attribute.
+ * The literals are from the enumeration {@link org.polarsys.chess.xtext.flaDsl.Cavoidable}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>C</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>C</em>' attribute.
+ * @see org.polarsys.chess.xtext.flaDsl.Cavoidable
+ * @see #setC(Cavoidable)
+ * @see org.polarsys.chess.xtext.flaDsl.FlaDslPackage#getACIDavoidable_C()
+ * @model
+ * @generated
+ */
+ Cavoidable getC();
+
+ /**
+ * Sets the value of the '{@link org.polarsys.chess.xtext.flaDsl.ACIDavoidable#getC <em>C</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>C</em>' attribute.
+ * @see org.polarsys.chess.xtext.flaDsl.Cavoidable
+ * @see #getC()
+ * @generated
+ */
+ void setC(Cavoidable value);
+
+ /**
+ * Returns the value of the '<em><b>I</b></em>' attribute.
+ * The literals are from the enumeration {@link org.polarsys.chess.xtext.flaDsl.Iavoidable}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>I</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>I</em>' attribute.
+ * @see org.polarsys.chess.xtext.flaDsl.Iavoidable
+ * @see #setI(Iavoidable)
+ * @see org.polarsys.chess.xtext.flaDsl.FlaDslPackage#getACIDavoidable_I()
+ * @model
+ * @generated
+ */
+ Iavoidable getI();
+
+ /**
+ * Sets the value of the '{@link org.polarsys.chess.xtext.flaDsl.ACIDavoidable#getI <em>I</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>I</em>' attribute.
+ * @see org.polarsys.chess.xtext.flaDsl.Iavoidable
+ * @see #getI()
+ * @generated
+ */
+ void setI(Iavoidable value);
+
+ /**
+ * Returns the value of the '<em><b>D</b></em>' attribute.
+ * The literals are from the enumeration {@link org.polarsys.chess.xtext.flaDsl.Davoidable}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>D</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>D</em>' attribute.
+ * @see org.polarsys.chess.xtext.flaDsl.Davoidable
+ * @see #setD(Davoidable)
+ * @see org.polarsys.chess.xtext.flaDsl.FlaDslPackage#getACIDavoidable_D()
+ * @model
+ * @generated
+ */
+ Davoidable getD();
+
+ /**
+ * Sets the value of the '{@link org.polarsys.chess.xtext.flaDsl.ACIDavoidable#getD <em>D</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>D</em>' attribute.
+ * @see org.polarsys.chess.xtext.flaDsl.Davoidable
+ * @see #getD()
+ * @generated
+ */
+ void setD(Davoidable value);
+
+} // ACIDavoidable
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/Aavoidable.java b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/Aavoidable.java
new file mode 100644
index 0000000..945f2c8
--- /dev/null
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/Aavoidable.java
@@ -0,0 +1,256 @@
+/**
+ */
+package org.polarsys.chess.xtext.flaDsl;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Aavoidable</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.polarsys.chess.xtext.flaDsl.FlaDslPackage#getAavoidable()
+ * @model
+ * @generated
+ */
+public enum Aavoidable implements Enumerator
+{
+ /**
+ * The '<em><b>INCOMPLETION</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #INCOMPLETION_VALUE
+ * @generated
+ * @ordered
+ */
+ INCOMPLETION(0, "INCOMPLETION", "incompletion"),
+
+ /**
+ * The '<em><b>NONE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #NONE_VALUE
+ * @generated
+ * @ordered
+ */
+ NONE(1, "NONE", "none"),
+
+ /**
+ * The '<em><b>UNSPECIFIED</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #UNSPECIFIED_VALUE
+ * @generated
+ * @ordered
+ */
+ UNSPECIFIED(2, "UNSPECIFIED", "unspecified");
+
+ /**
+ * The '<em><b>INCOMPLETION</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>INCOMPLETION</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #INCOMPLETION
+ * @model literal="incompletion"
+ * @generated
+ * @ordered
+ */
+ public static final int INCOMPLETION_VALUE = 0;
+
+ /**
+ * The '<em><b>NONE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>NONE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #NONE
+ * @model literal="none"
+ * @generated
+ * @ordered
+ */
+ public static final int NONE_VALUE = 1;
+
+ /**
+ * The '<em><b>UNSPECIFIED</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>UNSPECIFIED</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #UNSPECIFIED
+ * @model literal="unspecified"
+ * @generated
+ * @ordered
+ */
+ public static final int UNSPECIFIED_VALUE = 2;
+
+ /**
+ * An array of all the '<em><b>Aavoidable</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final Aavoidable[] VALUES_ARRAY =
+ new Aavoidable[]
+ {
+ INCOMPLETION,
+ NONE,
+ UNSPECIFIED,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Aavoidable</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<Aavoidable> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Aavoidable</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param literal the literal.
+ * @return the matching enumerator or <code>null</code>.
+ * @generated
+ */
+ public static Aavoidable get(String literal)
+ {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i)
+ {
+ Aavoidable result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal))
+ {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Aavoidable</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param name the name.
+ * @return the matching enumerator or <code>null</code>.
+ * @generated
+ */
+ public static Aavoidable getByName(String name)
+ {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i)
+ {
+ Aavoidable result = VALUES_ARRAY[i];
+ if (result.getName().equals(name))
+ {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Aavoidable</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the integer value.
+ * @return the matching enumerator or <code>null</code>.
+ * @generated
+ */
+ public static Aavoidable get(int value)
+ {
+ switch (value)
+ {
+ case INCOMPLETION_VALUE: return INCOMPLETION;
+ case NONE_VALUE: return NONE;
+ case UNSPECIFIED_VALUE: return UNSPECIFIED;
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final int value;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String name;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String literal;
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private Aavoidable(int value, String name, String literal)
+ {
+ this.value = value;
+ this.name = name;
+ this.literal = literal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getValue()
+ {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName()
+ {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getLiteral()
+ {
+ return literal;
+ }
+
+ /**
+ * Returns the literal value of the enumerator, which is its string representation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString()
+ {
+ return literal;
+ }
+
+} //Aavoidable
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/Amitigation.java b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/Amitigation.java
new file mode 100644
index 0000000..1be6da8
--- /dev/null
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/Amitigation.java
@@ -0,0 +1,283 @@
+/**
+ */
+package org.polarsys.chess.xtext.flaDsl;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Amitigation</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.polarsys.chess.xtext.flaDsl.FlaDslPackage#getAmitigation()
+ * @model
+ * @generated
+ */
+public enum Amitigation implements Enumerator
+{
+ /**
+ * The '<em><b>ALL OR NOTHING</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #ALL_OR_NOTHING_VALUE
+ * @generated
+ * @ordered
+ */
+ ALL_OR_NOTHING(0, "ALL_OR_NOTHING", "all_or_nothing"),
+
+ /**
+ * The '<em><b>ALL OR COMPENSATION</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #ALL_OR_COMPENSATION_VALUE
+ * @generated
+ * @ordered
+ */
+ ALL_OR_COMPENSATION(1, "ALL_OR_COMPENSATION", "all_or_compensation"),
+
+ /**
+ * The '<em><b>NONE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #NONE_VALUE
+ * @generated
+ * @ordered
+ */
+ NONE(2, "NONE", "none"),
+
+ /**
+ * The '<em><b>UNSPECIFIED</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #UNSPECIFIED_VALUE
+ * @generated
+ * @ordered
+ */
+ UNSPECIFIED(3, "UNSPECIFIED", "unspecified");
+
+ /**
+ * The '<em><b>ALL OR NOTHING</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>ALL OR NOTHING</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #ALL_OR_NOTHING
+ * @model literal="all_or_nothing"
+ * @generated
+ * @ordered
+ */
+ public static final int ALL_OR_NOTHING_VALUE = 0;
+
+ /**
+ * The '<em><b>ALL OR COMPENSATION</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>ALL OR COMPENSATION</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #ALL_OR_COMPENSATION
+ * @model literal="all_or_compensation"
+ * @generated
+ * @ordered
+ */
+ public static final int ALL_OR_COMPENSATION_VALUE = 1;
+
+ /**
+ * The '<em><b>NONE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>NONE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #NONE
+ * @model literal="none"
+ * @generated
+ * @ordered
+ */
+ public static final int NONE_VALUE = 2;
+
+ /**
+ * The '<em><b>UNSPECIFIED</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>UNSPECIFIED</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #UNSPECIFIED
+ * @model literal="unspecified"
+ * @generated
+ * @ordered
+ */
+ public static final int UNSPECIFIED_VALUE = 3;
+
+ /**
+ * An array of all the '<em><b>Amitigation</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final Amitigation[] VALUES_ARRAY =
+ new Amitigation[]
+ {
+ ALL_OR_NOTHING,
+ ALL_OR_COMPENSATION,
+ NONE,
+ UNSPECIFIED,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Amitigation</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<Amitigation> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Amitigation</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param literal the literal.
+ * @return the matching enumerator or <code>null</code>.
+ * @generated
+ */
+ public static Amitigation get(String literal)
+ {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i)
+ {
+ Amitigation result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal))
+ {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Amitigation</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param name the name.
+ * @return the matching enumerator or <code>null</code>.
+ * @generated
+ */
+ public static Amitigation getByName(String name)
+ {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i)
+ {
+ Amitigation result = VALUES_ARRAY[i];
+ if (result.getName().equals(name))
+ {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Amitigation</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the integer value.
+ * @return the matching enumerator or <code>null</code>.
+ * @generated
+ */
+ public static Amitigation get(int value)
+ {
+ switch (value)
+ {
+ case ALL_OR_NOTHING_VALUE: return ALL_OR_NOTHING;
+ case ALL_OR_COMPENSATION_VALUE: return ALL_OR_COMPENSATION;
+ case NONE_VALUE: return NONE;
+ case UNSPECIFIED_VALUE: return UNSPECIFIED;
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final int value;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String name;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String literal;
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private Amitigation(int value, String name, String literal)
+ {
+ this.value = value;
+ this.name = name;
+ this.literal = literal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getValue()
+ {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName()
+ {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getLiteral()
+ {
+ return literal;
+ }
+
+ /**
+ * Returns the literal value of the enumerator, which is its string representation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString()
+ {
+ return literal;
+ }
+
+} //Amitigation
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/Behaviour.java b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/Behaviour.java
new file mode 100644
index 0000000..ab762ea
--- /dev/null
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/Behaviour.java
@@ -0,0 +1,43 @@
+/**
+ */
+package org.polarsys.chess.xtext.flaDsl;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Behaviour</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.polarsys.chess.xtext.flaDsl.Behaviour#getRules <em>Rules</em>}</li>
+ * </ul>
+ *
+ * @see org.polarsys.chess.xtext.flaDsl.FlaDslPackage#getBehaviour()
+ * @model
+ * @generated
+ */
+public interface Behaviour extends EObject
+{
+ /**
+ * Returns the value of the '<em><b>Rules</b></em>' containment reference list.
+ * The list contents are of type {@link org.polarsys.chess.xtext.flaDsl.Expression}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Rules</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Rules</em>' containment reference list.
+ * @see org.polarsys.chess.xtext.flaDsl.FlaDslPackage#getBehaviour_Rules()
+ * @model containment="true"
+ * @generated
+ */
+ EList<Expression> getRules();
+
+} // Behaviour
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/Cavoidable.java b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/Cavoidable.java
new file mode 100644
index 0000000..c4d9c9a
--- /dev/null
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/Cavoidable.java
@@ -0,0 +1,256 @@
+/**
+ */
+package org.polarsys.chess.xtext.flaDsl;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Cavoidable</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.polarsys.chess.xtext.flaDsl.FlaDslPackage#getCavoidable()
+ * @model
+ * @generated
+ */
+public enum Cavoidable implements Enumerator
+{
+ /**
+ * The '<em><b>INCONSISTENCY</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #INCONSISTENCY_VALUE
+ * @generated
+ * @ordered
+ */
+ INCONSISTENCY(0, "INCONSISTENCY", "inconsistency"),
+
+ /**
+ * The '<em><b>NONE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #NONE_VALUE
+ * @generated
+ * @ordered
+ */
+ NONE(1, "NONE", "none"),
+
+ /**
+ * The '<em><b>UNSPECIFIED</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #UNSPECIFIED_VALUE
+ * @generated
+ * @ordered
+ */
+ UNSPECIFIED(2, "UNSPECIFIED", "unspecified");
+
+ /**
+ * The '<em><b>INCONSISTENCY</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>INCONSISTENCY</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #INCONSISTENCY
+ * @model literal="inconsistency"
+ * @generated
+ * @ordered
+ */
+ public static final int INCONSISTENCY_VALUE = 0;
+
+ /**
+ * The '<em><b>NONE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>NONE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #NONE
+ * @model literal="none"
+ * @generated
+ * @ordered
+ */
+ public static final int NONE_VALUE = 1;
+
+ /**
+ * The '<em><b>UNSPECIFIED</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>UNSPECIFIED</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #UNSPECIFIED
+ * @model literal="unspecified"
+ * @generated
+ * @ordered
+ */
+ public static final int UNSPECIFIED_VALUE = 2;
+
+ /**
+ * An array of all the '<em><b>Cavoidable</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final Cavoidable[] VALUES_ARRAY =
+ new Cavoidable[]
+ {
+ INCONSISTENCY,
+ NONE,
+ UNSPECIFIED,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Cavoidable</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<Cavoidable> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Cavoidable</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param literal the literal.
+ * @return the matching enumerator or <code>null</code>.
+ * @generated
+ */
+ public static Cavoidable get(String literal)
+ {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i)
+ {
+ Cavoidable result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal))
+ {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Cavoidable</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param name the name.
+ * @return the matching enumerator or <code>null</code>.
+ * @generated
+ */
+ public static Cavoidable getByName(String name)
+ {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i)
+ {
+ Cavoidable result = VALUES_ARRAY[i];
+ if (result.getName().equals(name))
+ {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Cavoidable</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the integer value.
+ * @return the matching enumerator or <code>null</code>.
+ * @generated
+ */
+ public static Cavoidable get(int value)
+ {
+ switch (value)
+ {
+ case INCONSISTENCY_VALUE: return INCONSISTENCY;
+ case NONE_VALUE: return NONE;
+ case UNSPECIFIED_VALUE: return UNSPECIFIED;
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final int value;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String name;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String literal;
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private Cavoidable(int value, String name, String literal)
+ {
+ this.value = value;
+ this.name = name;
+ this.literal = literal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getValue()
+ {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName()
+ {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getLiteral()
+ {
+ return literal;
+ }
+
+ /**
+ * Returns the literal value of the enumerator, which is its string representation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString()
+ {
+ return literal;
+ }
+
+} //Cavoidable
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/Cmitigation.java b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/Cmitigation.java
new file mode 100644
index 0000000..cbcadf1
--- /dev/null
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/Cmitigation.java
@@ -0,0 +1,283 @@
+/**
+ */
+package org.polarsys.chess.xtext.flaDsl;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Cmitigation</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.polarsys.chess.xtext.flaDsl.FlaDslPackage#getCmitigation()
+ * @model
+ * @generated
+ */
+public enum Cmitigation implements Enumerator
+{
+ /**
+ * The '<em><b>FULL CONSISTENCY</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #FULL_CONSISTENCY_VALUE
+ * @generated
+ * @ordered
+ */
+ FULL_CONSISTENCY(0, "FULL_CONSISTENCY", "full_consistency"),
+
+ /**
+ * The '<em><b>RANGE VIOLATION ALLOWED</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #RANGE_VIOLATION_ALLOWED_VALUE
+ * @generated
+ * @ordered
+ */
+ RANGE_VIOLATION_ALLOWED(1, "RANGE_VIOLATION_ALLOWED", "range_violation_allowed"),
+
+ /**
+ * The '<em><b>NONE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #NONE_VALUE
+ * @generated
+ * @ordered
+ */
+ NONE(2, "NONE", "none"),
+
+ /**
+ * The '<em><b>UNSPECIFIED</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #UNSPECIFIED_VALUE
+ * @generated
+ * @ordered
+ */
+ UNSPECIFIED(3, "UNSPECIFIED", "unspecified");
+
+ /**
+ * The '<em><b>FULL CONSISTENCY</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>FULL CONSISTENCY</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #FULL_CONSISTENCY
+ * @model literal="full_consistency"
+ * @generated
+ * @ordered
+ */
+ public static final int FULL_CONSISTENCY_VALUE = 0;
+
+ /**
+ * The '<em><b>RANGE VIOLATION ALLOWED</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>RANGE VIOLATION ALLOWED</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #RANGE_VIOLATION_ALLOWED
+ * @model literal="range_violation_allowed"
+ * @generated
+ * @ordered
+ */
+ public static final int RANGE_VIOLATION_ALLOWED_VALUE = 1;
+
+ /**
+ * The '<em><b>NONE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>NONE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #NONE
+ * @model literal="none"
+ * @generated
+ * @ordered
+ */
+ public static final int NONE_VALUE = 2;
+
+ /**
+ * The '<em><b>UNSPECIFIED</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>UNSPECIFIED</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #UNSPECIFIED
+ * @model literal="unspecified"
+ * @generated
+ * @ordered
+ */
+ public static final int UNSPECIFIED_VALUE = 3;
+
+ /**
+ * An array of all the '<em><b>Cmitigation</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final Cmitigation[] VALUES_ARRAY =
+ new Cmitigation[]
+ {
+ FULL_CONSISTENCY,
+ RANGE_VIOLATION_ALLOWED,
+ NONE,
+ UNSPECIFIED,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Cmitigation</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<Cmitigation> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Cmitigation</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param literal the literal.
+ * @return the matching enumerator or <code>null</code>.
+ * @generated
+ */
+ public static Cmitigation get(String literal)
+ {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i)
+ {
+ Cmitigation result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal))
+ {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Cmitigation</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param name the name.
+ * @return the matching enumerator or <code>null</code>.
+ * @generated
+ */
+ public static Cmitigation getByName(String name)
+ {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i)
+ {
+ Cmitigation result = VALUES_ARRAY[i];
+ if (result.getName().equals(name))
+ {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Cmitigation</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the integer value.
+ * @return the matching enumerator or <code>null</code>.
+ * @generated
+ */
+ public static Cmitigation get(int value)
+ {
+ switch (value)
+ {
+ case FULL_CONSISTENCY_VALUE: return FULL_CONSISTENCY;
+ case RANGE_VIOLATION_ALLOWED_VALUE: return RANGE_VIOLATION_ALLOWED;
+ case NONE_VALUE: return NONE;
+ case UNSPECIFIED_VALUE: return UNSPECIFIED;
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final int value;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String name;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String literal;
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private Cmitigation(int value, String name, String literal)
+ {
+ this.value = value;
+ this.name = name;
+ this.literal = literal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getValue()
+ {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName()
+ {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getLiteral()
+ {
+ return literal;
+ }
+
+ /**
+ * Returns the literal value of the enumerator, which is its string representation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString()
+ {
+ return literal;
+ }
+
+} //Cmitigation
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/ComplexNofailureDefinition.java b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/ComplexNofailureDefinition.java
new file mode 100644
index 0000000..57a48b6
--- /dev/null
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/ComplexNofailureDefinition.java
@@ -0,0 +1,18 @@
+/**
+ */
+package org.polarsys.chess.xtext.flaDsl;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Complex Nofailure Definition</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.polarsys.chess.xtext.flaDsl.FlaDslPackage#getComplexNofailureDefinition()
+ * @model
+ * @generated
+ */
+public interface ComplexNofailureDefinition extends Definitions
+{
+} // ComplexNofailureDefinition
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/Davoidable.java b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/Davoidable.java
new file mode 100644
index 0000000..f1c3681
--- /dev/null
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/Davoidable.java
@@ -0,0 +1,256 @@
+/**
+ */
+package org.polarsys.chess.xtext.flaDsl;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Davoidable</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.polarsys.chess.xtext.flaDsl.FlaDslPackage#getDavoidable()
+ * @model
+ * @generated
+ */
+public enum Davoidable implements Enumerator
+{
+ /**
+ * The '<em><b>IMPERMANENCE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #IMPERMANENCE_VALUE
+ * @generated
+ * @ordered
+ */
+ IMPERMANENCE(0, "IMPERMANENCE", "impermanence"),
+
+ /**
+ * The '<em><b>NONE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #NONE_VALUE
+ * @generated
+ * @ordered
+ */
+ NONE(1, "NONE", "none"),
+
+ /**
+ * The '<em><b>UNSPECIFIED</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #UNSPECIFIED_VALUE
+ * @generated
+ * @ordered
+ */
+ UNSPECIFIED(2, "UNSPECIFIED", "unspecified");
+
+ /**
+ * The '<em><b>IMPERMANENCE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>IMPERMANENCE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #IMPERMANENCE
+ * @model literal="impermanence"
+ * @generated
+ * @ordered
+ */
+ public static final int IMPERMANENCE_VALUE = 0;
+
+ /**
+ * The '<em><b>NONE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>NONE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #NONE
+ * @model literal="none"
+ * @generated
+ * @ordered
+ */
+ public static final int NONE_VALUE = 1;
+
+ /**
+ * The '<em><b>UNSPECIFIED</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>UNSPECIFIED</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #UNSPECIFIED
+ * @model literal="unspecified"
+ * @generated
+ * @ordered
+ */
+ public static final int UNSPECIFIED_VALUE = 2;
+
+ /**
+ * An array of all the '<em><b>Davoidable</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final Davoidable[] VALUES_ARRAY =
+ new Davoidable[]
+ {
+ IMPERMANENCE,
+ NONE,
+ UNSPECIFIED,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Davoidable</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<Davoidable> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Davoidable</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param literal the literal.
+ * @return the matching enumerator or <code>null</code>.
+ * @generated
+ */
+ public static Davoidable get(String literal)
+ {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i)
+ {
+ Davoidable result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal))
+ {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Davoidable</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param name the name.
+ * @return the matching enumerator or <code>null</code>.
+ * @generated
+ */
+ public static Davoidable getByName(String name)
+ {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i)
+ {
+ Davoidable result = VALUES_ARRAY[i];
+ if (result.getName().equals(name))
+ {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Davoidable</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the integer value.
+ * @return the matching enumerator or <code>null</code>.
+ * @generated
+ */
+ public static Davoidable get(int value)
+ {
+ switch (value)
+ {
+ case IMPERMANENCE_VALUE: return IMPERMANENCE;
+ case NONE_VALUE: return NONE;
+ case UNSPECIFIED_VALUE: return UNSPECIFIED;
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final int value;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String name;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String literal;
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private Davoidable(int value, String name, String literal)
+ {
+ this.value = value;
+ this.name = name;
+ this.literal = literal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getValue()
+ {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName()
+ {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getLiteral()
+ {
+ return literal;
+ }
+
+ /**
+ * Returns the literal value of the enumerator, which is its string representation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString()
+ {
+ return literal;
+ }
+
+} //Davoidable
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/Definitions.java b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/Definitions.java
new file mode 100644
index 0000000..39823de
--- /dev/null
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/Definitions.java
@@ -0,0 +1,19 @@
+/**
+ */
+package org.polarsys.chess.xtext.flaDsl;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Definitions</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.polarsys.chess.xtext.flaDsl.FlaDslPackage#getDefinitions()
+ * @model
+ * @generated
+ */
+public interface Definitions extends EObject
+{
+} // Definitions
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/Dmitigation.java b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/Dmitigation.java
new file mode 100644
index 0000000..677e27b
--- /dev/null
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/Dmitigation.java
@@ -0,0 +1,283 @@
+/**
+ */
+package org.polarsys.chess.xtext.flaDsl;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Dmitigation</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.polarsys.chess.xtext.flaDsl.FlaDslPackage#getDmitigation()
+ * @model
+ * @generated
+ */
+public enum Dmitigation implements Enumerator
+{
+ /**
+ * The '<em><b>NO LOSS</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #NO_LOSS_VALUE
+ * @generated
+ * @ordered
+ */
+ NO_LOSS(0, "NO_LOSS", "no_loss"),
+
+ /**
+ * The '<em><b>PARTIAL LOSS ALLOWED</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #PARTIAL_LOSS_ALLOWED_VALUE
+ * @generated
+ * @ordered
+ */
+ PARTIAL_LOSS_ALLOWED(1, "PARTIAL_LOSS_ALLOWED", "partial_loss_allowed"),
+
+ /**
+ * The '<em><b>NONE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #NONE_VALUE
+ * @generated
+ * @ordered
+ */
+ NONE(2, "NONE", "none"),
+
+ /**
+ * The '<em><b>UNSPECIFIED</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #UNSPECIFIED_VALUE
+ * @generated
+ * @ordered
+ */
+ UNSPECIFIED(3, "UNSPECIFIED", "unspecified");
+
+ /**
+ * The '<em><b>NO LOSS</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>NO LOSS</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #NO_LOSS
+ * @model literal="no_loss"
+ * @generated
+ * @ordered
+ */
+ public static final int NO_LOSS_VALUE = 0;
+
+ /**
+ * The '<em><b>PARTIAL LOSS ALLOWED</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>PARTIAL LOSS ALLOWED</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #PARTIAL_LOSS_ALLOWED
+ * @model literal="partial_loss_allowed"
+ * @generated
+ * @ordered
+ */
+ public static final int PARTIAL_LOSS_ALLOWED_VALUE = 1;
+
+ /**
+ * The '<em><b>NONE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>NONE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #NONE
+ * @model literal="none"
+ * @generated
+ * @ordered
+ */
+ public static final int NONE_VALUE = 2;
+
+ /**
+ * The '<em><b>UNSPECIFIED</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>UNSPECIFIED</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #UNSPECIFIED
+ * @model literal="unspecified"
+ * @generated
+ * @ordered
+ */
+ public static final int UNSPECIFIED_VALUE = 3;
+
+ /**
+ * An array of all the '<em><b>Dmitigation</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final Dmitigation[] VALUES_ARRAY =
+ new Dmitigation[]
+ {
+ NO_LOSS,
+ PARTIAL_LOSS_ALLOWED,
+ NONE,
+ UNSPECIFIED,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Dmitigation</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<Dmitigation> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Dmitigation</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param literal the literal.
+ * @return the matching enumerator or <code>null</code>.
+ * @generated
+ */
+ public static Dmitigation get(String literal)
+ {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i)
+ {
+ Dmitigation result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal))
+ {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Dmitigation</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param name the name.
+ * @return the matching enumerator or <code>null</code>.
+ * @generated
+ */
+ public static Dmitigation getByName(String name)
+ {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i)
+ {
+ Dmitigation result = VALUES_ARRAY[i];
+ if (result.getName().equals(name))
+ {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Dmitigation</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the integer value.
+ * @return the matching enumerator or <code>null</code>.
+ * @generated
+ */
+ public static Dmitigation get(int value)
+ {
+ switch (value)
+ {
+ case NO_LOSS_VALUE: return NO_LOSS;
+ case PARTIAL_LOSS_ALLOWED_VALUE: return PARTIAL_LOSS_ALLOWED;
+ case NONE_VALUE: return NONE;
+ case UNSPECIFIED_VALUE: return UNSPECIFIED;
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final int value;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String name;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String literal;
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private Dmitigation(int value, String name, String literal)
+ {
+ this.value = value;
+ this.name = name;
+ this.literal = literal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getValue()
+ {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName()
+ {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getLiteral()
+ {
+ return literal;
+ }
+
+ /**
+ * Returns the literal value of the enumerator, which is its string representation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString()
+ {
+ return literal;
+ }
+
+} //Dmitigation
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/Expression.java b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/Expression.java
new file mode 100644
index 0000000..57bdeb1
--- /dev/null
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/Expression.java
@@ -0,0 +1,78 @@
+/**
+ */
+package org.polarsys.chess.xtext.flaDsl;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Expression</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.polarsys.chess.xtext.flaDsl.Expression#getLhs <em>Lhs</em>}</li>
+ * <li>{@link org.polarsys.chess.xtext.flaDsl.Expression#getRhs <em>Rhs</em>}</li>
+ * </ul>
+ *
+ * @see org.polarsys.chess.xtext.flaDsl.FlaDslPackage#getExpression()
+ * @model
+ * @generated
+ */
+public interface Expression extends EObject
+{
+ /**
+ * Returns the value of the '<em><b>Lhs</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Lhs</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Lhs</em>' containment reference.
+ * @see #setLhs(Lhs)
+ * @see org.polarsys.chess.xtext.flaDsl.FlaDslPackage#getExpression_Lhs()
+ * @model containment="true"
+ * @generated
+ */
+ Lhs getLhs();
+
+ /**
+ * Sets the value of the '{@link org.polarsys.chess.xtext.flaDsl.Expression#getLhs <em>Lhs</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Lhs</em>' containment reference.
+ * @see #getLhs()
+ * @generated
+ */
+ void setLhs(Lhs value);
+
+ /**
+ * Returns the value of the '<em><b>Rhs</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Rhs</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Rhs</em>' containment reference.
+ * @see #setRhs(Rhs)
+ * @see org.polarsys.chess.xtext.flaDsl.FlaDslPackage#getExpression_Rhs()
+ * @model containment="true"
+ * @generated
+ */
+ Rhs getRhs();
+
+ /**
+ * Sets the value of the '{@link org.polarsys.chess.xtext.flaDsl.Expression#getRhs <em>Rhs</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Rhs</em>' containment reference.
+ * @see #getRhs()
+ * @generated
+ */
+ void setRhs(Rhs value);
+
+} // Expression
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/FailureDefinition.java b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/FailureDefinition.java
new file mode 100644
index 0000000..e354da3
--- /dev/null
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/FailureDefinition.java
@@ -0,0 +1,80 @@
+/**
+ */
+package org.polarsys.chess.xtext.flaDsl;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Failure Definition</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.polarsys.chess.xtext.flaDsl.FailureDefinition#getType <em>Type</em>}</li>
+ * <li>{@link org.polarsys.chess.xtext.flaDsl.FailureDefinition#getAcidAvoidable <em>Acid Avoidable</em>}</li>
+ * </ul>
+ *
+ * @see org.polarsys.chess.xtext.flaDsl.FlaDslPackage#getFailureDefinition()
+ * @model
+ * @generated
+ */
+public interface FailureDefinition extends Definitions
+{
+ /**
+ * Returns the value of the '<em><b>Type</b></em>' attribute.
+ * The literals are from the enumeration {@link org.polarsys.chess.xtext.flaDsl.FailureType}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Type</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Type</em>' attribute.
+ * @see org.polarsys.chess.xtext.flaDsl.FailureType
+ * @see #setType(FailureType)
+ * @see org.polarsys.chess.xtext.flaDsl.FlaDslPackage#getFailureDefinition_Type()
+ * @model
+ * @generated
+ */
+ FailureType getType();
+
+ /**
+ * Sets the value of the '{@link org.polarsys.chess.xtext.flaDsl.FailureDefinition#getType <em>Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Type</em>' attribute.
+ * @see org.polarsys.chess.xtext.flaDsl.FailureType
+ * @see #getType()
+ * @generated
+ */
+ void setType(FailureType value);
+
+ /**
+ * Returns the value of the '<em><b>Acid Avoidable</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Acid Avoidable</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Acid Avoidable</em>' containment reference.
+ * @see #setAcidAvoidable(ACIDavoidable)
+ * @see org.polarsys.chess.xtext.flaDsl.FlaDslPackage#getFailureDefinition_AcidAvoidable()
+ * @model containment="true"
+ * @generated
+ */
+ ACIDavoidable getAcidAvoidable();
+
+ /**
+ * Sets the value of the '{@link org.polarsys.chess.xtext.flaDsl.FailureDefinition#getAcidAvoidable <em>Acid Avoidable</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Acid Avoidable</em>' containment reference.
+ * @see #getAcidAvoidable()
+ * @generated
+ */
+ void setAcidAvoidable(ACIDavoidable value);
+
+} // FailureDefinition
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/FailureType.java b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/FailureType.java
new file mode 100644
index 0000000..ef396b2
--- /dev/null
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/FailureType.java
@@ -0,0 +1,418 @@
+/**
+ */
+package org.polarsys.chess.xtext.flaDsl;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Failure Type</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.polarsys.chess.xtext.flaDsl.FlaDslPackage#getFailureType()
+ * @model
+ * @generated
+ */
+public enum FailureType implements Enumerator
+{
+ /**
+ * The '<em><b>NO FAILURE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #NO_FAILURE_VALUE
+ * @generated
+ * @ordered
+ */
+ NO_FAILURE(0, "NO_FAILURE", "noFailure"),
+
+ /**
+ * The '<em><b>EARLY</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #EARLY_VALUE
+ * @generated
+ * @ordered
+ */
+ EARLY(1, "EARLY", "early"),
+
+ /**
+ * The '<em><b>LATE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #LATE_VALUE
+ * @generated
+ * @ordered
+ */
+ LATE(2, "LATE", "late"),
+
+ /**
+ * The '<em><b>COMMISSION</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #COMMISSION_VALUE
+ * @generated
+ * @ordered
+ */
+ COMMISSION(3, "COMMISSION", "commission"),
+
+ /**
+ * The '<em><b>OMISSION</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #OMISSION_VALUE
+ * @generated
+ * @ordered
+ */
+ OMISSION(4, "OMISSION", "omission"),
+
+ /**
+ * The '<em><b>VALUE SUBTLE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #VALUE_SUBTLE_VALUE
+ * @generated
+ * @ordered
+ */
+ VALUE_SUBTLE(5, "VALUE_SUBTLE", "valueSubtle"),
+
+ /**
+ * The '<em><b>VALUE COARSE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #VALUE_COARSE_VALUE
+ * @generated
+ * @ordered
+ */
+ VALUE_COARSE(6, "VALUE_COARSE", "valueCoarse"),
+
+ /**
+ * The '<em><b>WILDCARD</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #WILDCARD_VALUE
+ * @generated
+ * @ordered
+ */
+ WILDCARD(7, "WILDCARD", "wildcard"),
+
+ /**
+ * The '<em><b>VARIABLE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #VARIABLE_VALUE
+ * @generated
+ * @ordered
+ */
+ VARIABLE(8, "VARIABLE", "variable");
+
+ /**
+ * The '<em><b>NO FAILURE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>NO FAILURE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #NO_FAILURE
+ * @model literal="noFailure"
+ * @generated
+ * @ordered
+ */
+ public static final int NO_FAILURE_VALUE = 0;
+
+ /**
+ * The '<em><b>EARLY</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>EARLY</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #EARLY
+ * @model literal="early"
+ * @generated
+ * @ordered
+ */
+ public static final int EARLY_VALUE = 1;
+
+ /**
+ * The '<em><b>LATE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>LATE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #LATE
+ * @model literal="late"
+ * @generated
+ * @ordered
+ */
+ public static final int LATE_VALUE = 2;
+
+ /**
+ * The '<em><b>COMMISSION</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>COMMISSION</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #COMMISSION
+ * @model literal="commission"
+ * @generated
+ * @ordered
+ */
+ public static final int COMMISSION_VALUE = 3;
+
+ /**
+ * The '<em><b>OMISSION</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>OMISSION</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #OMISSION
+ * @model literal="omission"
+ * @generated
+ * @ordered
+ */
+ public static final int OMISSION_VALUE = 4;
+
+ /**
+ * The '<em><b>VALUE SUBTLE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>VALUE SUBTLE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #VALUE_SUBTLE
+ * @model literal="valueSubtle"
+ * @generated
+ * @ordered
+ */
+ public static final int VALUE_SUBTLE_VALUE = 5;
+
+ /**
+ * The '<em><b>VALUE COARSE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>VALUE COARSE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #VALUE_COARSE
+ * @model literal="valueCoarse"
+ * @generated
+ * @ordered
+ */
+ public static final int VALUE_COARSE_VALUE = 6;
+
+ /**
+ * The '<em><b>WILDCARD</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>WILDCARD</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #WILDCARD
+ * @model literal="wildcard"
+ * @generated
+ * @ordered
+ */
+ public static final int WILDCARD_VALUE = 7;
+
+ /**
+ * The '<em><b>VARIABLE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>VARIABLE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #VARIABLE
+ * @model literal="variable"
+ * @generated
+ * @ordered
+ */
+ public static final int VARIABLE_VALUE = 8;
+
+ /**
+ * An array of all the '<em><b>Failure Type</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final FailureType[] VALUES_ARRAY =
+ new FailureType[]
+ {
+ NO_FAILURE,
+ EARLY,
+ LATE,
+ COMMISSION,
+ OMISSION,
+ VALUE_SUBTLE,
+ VALUE_COARSE,
+ WILDCARD,
+ VARIABLE,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Failure Type</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<FailureType> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Failure Type</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param literal the literal.
+ * @return the matching enumerator or <code>null</code>.
+ * @generated
+ */
+ public static FailureType get(String literal)
+ {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i)
+ {
+ FailureType result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal))
+ {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Failure Type</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param name the name.
+ * @return the matching enumerator or <code>null</code>.
+ * @generated
+ */
+ public static FailureType getByName(String name)
+ {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i)
+ {
+ FailureType result = VALUES_ARRAY[i];
+ if (result.getName().equals(name))
+ {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Failure Type</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the integer value.
+ * @return the matching enumerator or <code>null</code>.
+ * @generated
+ */
+ public static FailureType get(int value)
+ {
+ switch (value)
+ {
+ case NO_FAILURE_VALUE: return NO_FAILURE;
+ case EARLY_VALUE: return EARLY;
+ case LATE_VALUE: return LATE;
+ case COMMISSION_VALUE: return COMMISSION;
+ case OMISSION_VALUE: return OMISSION;
+ case VALUE_SUBTLE_VALUE: return VALUE_SUBTLE;
+ case VALUE_COARSE_VALUE: return VALUE_COARSE;
+ case WILDCARD_VALUE: return WILDCARD;
+ case VARIABLE_VALUE: return VARIABLE;
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final int value;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String name;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String literal;
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private FailureType(int value, String name, String literal)
+ {
+ this.value = value;
+ this.name = name;
+ this.literal = literal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getValue()
+ {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName()
+ {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getLiteral()
+ {
+ return literal;
+ }
+
+ /**
+ * Returns the literal value of the enumerator, which is its string representation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString()
+ {
+ return literal;
+ }
+
+} //FailureType
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/FlaDslFactory.java b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/FlaDslFactory.java
new file mode 100644
index 0000000..1bade94
--- /dev/null
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/FlaDslFactory.java
@@ -0,0 +1,178 @@
+/**
+ */
+package org.polarsys.chess.xtext.flaDsl;
+
+import org.eclipse.emf.ecore.EFactory;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Factory</b> for the model.
+ * It provides a create method for each non-abstract class of the model.
+ * <!-- end-user-doc -->
+ * @see org.polarsys.chess.xtext.flaDsl.FlaDslPackage
+ * @generated
+ */
+public interface FlaDslFactory extends EFactory
+{
+ /**
+ * The singleton instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ FlaDslFactory eINSTANCE = org.polarsys.chess.xtext.flaDsl.impl.FlaDslFactoryImpl.init();
+
+ /**
+ * Returns a new object of class '<em>Behaviour</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Behaviour</em>'.
+ * @generated
+ */
+ Behaviour createBehaviour();
+
+ /**
+ * Returns a new object of class '<em>Expression</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Expression</em>'.
+ * @generated
+ */
+ Expression createExpression();
+
+ /**
+ * Returns a new object of class '<em>Lhs</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Lhs</em>'.
+ * @generated
+ */
+ Lhs createLhs();
+
+ /**
+ * Returns a new object of class '<em>Rhs</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Rhs</em>'.
+ * @generated
+ */
+ Rhs createRhs();
+
+ /**
+ * Returns a new object of class '<em>Input Expression</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Input Expression</em>'.
+ * @generated
+ */
+ InputExpression createInputExpression();
+
+ /**
+ * Returns a new object of class '<em>Output Expression</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Output Expression</em>'.
+ * @generated
+ */
+ OutputExpression createOutputExpression();
+
+ /**
+ * Returns a new object of class '<em>In Failure Expr</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>In Failure Expr</em>'.
+ * @generated
+ */
+ InFailureExpr createInFailureExpr();
+
+ /**
+ * Returns a new object of class '<em>Out Failure Expr</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Out Failure Expr</em>'.
+ * @generated
+ */
+ OutFailureExpr createOutFailureExpr();
+
+ /**
+ * Returns a new object of class '<em>Definitions</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Definitions</em>'.
+ * @generated
+ */
+ Definitions createDefinitions();
+
+ /**
+ * Returns a new object of class '<em>Failure Definition</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Failure Definition</em>'.
+ * @generated
+ */
+ FailureDefinition createFailureDefinition();
+
+ /**
+ * Returns a new object of class '<em>No Failure Definition</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>No Failure Definition</em>'.
+ * @generated
+ */
+ NoFailureDefinition createNoFailureDefinition();
+
+ /**
+ * Returns a new object of class '<em>Complex Nofailure Definition</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Complex Nofailure Definition</em>'.
+ * @generated
+ */
+ ComplexNofailureDefinition createComplexNofailureDefinition();
+
+ /**
+ * Returns a new object of class '<em>Wildcard Definition</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Wildcard Definition</em>'.
+ * @generated
+ */
+ WildcardDefinition createWildcardDefinition();
+
+ /**
+ * Returns a new object of class '<em>Variable Definition</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Variable Definition</em>'.
+ * @generated
+ */
+ VariableDefinition createVariableDefinition();
+
+ /**
+ * Returns a new object of class '<em>ACI Davoidable</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>ACI Davoidable</em>'.
+ * @generated
+ */
+ ACIDavoidable createACIDavoidable();
+
+ /**
+ * Returns a new object of class '<em>ACID Mitigation</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>ACID Mitigation</em>'.
+ * @generated
+ */
+ ACIDMitigation createACIDMitigation();
+
+ /**
+ * Returns the package supported by this factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the package supported by this factory.
+ * @generated
+ */
+ FlaDslPackage getFlaDslPackage();
+
+} //FlaDslFactory
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/FlaDslPackage.java b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/FlaDslPackage.java
new file mode 100644
index 0000000..c65a5e3
--- /dev/null
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/FlaDslPackage.java
@@ -0,0 +1,1624 @@
+/**
+ */
+package org.polarsys.chess.xtext.flaDsl;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EEnum;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Package</b> for the model.
+ * It contains accessors for the meta objects to represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @see org.polarsys.chess.xtext.flaDsl.FlaDslFactory
+ * @model kind="package"
+ * @generated
+ */
+public interface FlaDslPackage extends EPackage
+{
+ /**
+ * The package name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNAME = "flaDsl";
+
+ /**
+ * The package namespace URI.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_URI = "http://www.intecs.org/chess/xtext/FlaDsl";
+
+ /**
+ * The package namespace name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_PREFIX = "flaDsl";
+
+ /**
+ * The singleton instance of the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ FlaDslPackage eINSTANCE = org.polarsys.chess.xtext.flaDsl.impl.FlaDslPackageImpl.init();
+
+ /**
+ * The meta object id for the '{@link org.polarsys.chess.xtext.flaDsl.impl.BehaviourImpl <em>Behaviour</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.polarsys.chess.xtext.flaDsl.impl.BehaviourImpl
+ * @see org.polarsys.chess.xtext.flaDsl.impl.FlaDslPackageImpl#getBehaviour()
+ * @generated
+ */
+ int BEHAVIOUR = 0;
+
+ /**
+ * The feature id for the '<em><b>Rules</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BEHAVIOUR__RULES = 0;
+
+ /**
+ * The number of structural features of the '<em>Behaviour</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BEHAVIOUR_FEATURE_COUNT = 1;
+
+ /**
+ * The meta object id for the '{@link org.polarsys.chess.xtext.flaDsl.impl.ExpressionImpl <em>Expression</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.polarsys.chess.xtext.flaDsl.impl.ExpressionImpl
+ * @see org.polarsys.chess.xtext.flaDsl.impl.FlaDslPackageImpl#getExpression()
+ * @generated
+ */
+ int EXPRESSION = 1;
+
+ /**
+ * The feature id for the '<em><b>Lhs</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EXPRESSION__LHS = 0;
+
+ /**
+ * The feature id for the '<em><b>Rhs</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EXPRESSION__RHS = 1;
+
+ /**
+ * The number of structural features of the '<em>Expression</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EXPRESSION_FEATURE_COUNT = 2;
+
+ /**
+ * The meta object id for the '{@link org.polarsys.chess.xtext.flaDsl.impl.LhsImpl <em>Lhs</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.polarsys.chess.xtext.flaDsl.impl.LhsImpl
+ * @see org.polarsys.chess.xtext.flaDsl.impl.FlaDslPackageImpl#getLhs()
+ * @generated
+ */
+ int LHS = 2;
+
+ /**
+ * The feature id for the '<em><b>Failures</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LHS__FAILURES = 0;
+
+ /**
+ * The number of structural features of the '<em>Lhs</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LHS_FEATURE_COUNT = 1;
+
+ /**
+ * The meta object id for the '{@link org.polarsys.chess.xtext.flaDsl.impl.RhsImpl <em>Rhs</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.polarsys.chess.xtext.flaDsl.impl.RhsImpl
+ * @see org.polarsys.chess.xtext.flaDsl.impl.FlaDslPackageImpl#getRhs()
+ * @generated
+ */
+ int RHS = 3;
+
+ /**
+ * The feature id for the '<em><b>Failures</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RHS__FAILURES = 0;
+
+ /**
+ * The number of structural features of the '<em>Rhs</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RHS_FEATURE_COUNT = 1;
+
+ /**
+ * The meta object id for the '{@link org.polarsys.chess.xtext.flaDsl.impl.InputExpressionImpl <em>Input Expression</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.polarsys.chess.xtext.flaDsl.impl.InputExpressionImpl
+ * @see org.polarsys.chess.xtext.flaDsl.impl.FlaDslPackageImpl#getInputExpression()
+ * @generated
+ */
+ int INPUT_EXPRESSION = 4;
+
+ /**
+ * The feature id for the '<em><b>Ref</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INPUT_EXPRESSION__REF = 0;
+
+ /**
+ * The feature id for the '<em><b>Failure Expr</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INPUT_EXPRESSION__FAILURE_EXPR = 1;
+
+ /**
+ * The number of structural features of the '<em>Input Expression</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INPUT_EXPRESSION_FEATURE_COUNT = 2;
+
+ /**
+ * The meta object id for the '{@link org.polarsys.chess.xtext.flaDsl.impl.OutputExpressionImpl <em>Output Expression</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.polarsys.chess.xtext.flaDsl.impl.OutputExpressionImpl
+ * @see org.polarsys.chess.xtext.flaDsl.impl.FlaDslPackageImpl#getOutputExpression()
+ * @generated
+ */
+ int OUTPUT_EXPRESSION = 5;
+
+ /**
+ * The feature id for the '<em><b>Ref</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int OUTPUT_EXPRESSION__REF = 0;
+
+ /**
+ * The feature id for the '<em><b>Failure Expr</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int OUTPUT_EXPRESSION__FAILURE_EXPR = 1;
+
+ /**
+ * The number of structural features of the '<em>Output Expression</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int OUTPUT_EXPRESSION_FEATURE_COUNT = 2;
+
+ /**
+ * The meta object id for the '{@link org.polarsys.chess.xtext.flaDsl.impl.InFailureExprImpl <em>In Failure Expr</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.polarsys.chess.xtext.flaDsl.impl.InFailureExprImpl
+ * @see org.polarsys.chess.xtext.flaDsl.impl.FlaDslPackageImpl#getInFailureExpr()
+ * @generated
+ */
+ int IN_FAILURE_EXPR = 6;
+
+ /**
+ * The feature id for the '<em><b>Failures</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IN_FAILURE_EXPR__FAILURES = 0;
+
+ /**
+ * The number of structural features of the '<em>In Failure Expr</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IN_FAILURE_EXPR_FEATURE_COUNT = 1;
+
+ /**
+ * The meta object id for the '{@link org.polarsys.chess.xtext.flaDsl.impl.OutFailureExprImpl <em>Out Failure Expr</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.polarsys.chess.xtext.flaDsl.impl.OutFailureExprImpl
+ * @see org.polarsys.chess.xtext.flaDsl.impl.FlaDslPackageImpl#getOutFailureExpr()
+ * @generated
+ */
+ int OUT_FAILURE_EXPR = 7;
+
+ /**
+ * The feature id for the '<em><b>Failures</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int OUT_FAILURE_EXPR__FAILURES = 0;
+
+ /**
+ * The number of structural features of the '<em>Out Failure Expr</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int OUT_FAILURE_EXPR_FEATURE_COUNT = 1;
+
+ /**
+ * The meta object id for the '{@link org.polarsys.chess.xtext.flaDsl.impl.DefinitionsImpl <em>Definitions</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.polarsys.chess.xtext.flaDsl.impl.DefinitionsImpl
+ * @see org.polarsys.chess.xtext.flaDsl.impl.FlaDslPackageImpl#getDefinitions()
+ * @generated
+ */
+ int DEFINITIONS = 8;
+
+ /**
+ * The number of structural features of the '<em>Definitions</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DEFINITIONS_FEATURE_COUNT = 0;
+
+ /**
+ * The meta object id for the '{@link org.polarsys.chess.xtext.flaDsl.impl.FailureDefinitionImpl <em>Failure Definition</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.polarsys.chess.xtext.flaDsl.impl.FailureDefinitionImpl
+ * @see org.polarsys.chess.xtext.flaDsl.impl.FlaDslPackageImpl#getFailureDefinition()
+ * @generated
+ */
+ int FAILURE_DEFINITION = 9;
+
+ /**
+ * The feature id for the '<em><b>Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FAILURE_DEFINITION__TYPE = DEFINITIONS_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Acid Avoidable</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FAILURE_DEFINITION__ACID_AVOIDABLE = DEFINITIONS_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the '<em>Failure Definition</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FAILURE_DEFINITION_FEATURE_COUNT = DEFINITIONS_FEATURE_COUNT + 2;
+
+ /**
+ * The meta object id for the '{@link org.polarsys.chess.xtext.flaDsl.impl.NoFailureDefinitionImpl <em>No Failure Definition</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.polarsys.chess.xtext.flaDsl.impl.NoFailureDefinitionImpl
+ * @see org.polarsys.chess.xtext.flaDsl.impl.FlaDslPackageImpl#getNoFailureDefinition()
+ * @generated
+ */
+ int NO_FAILURE_DEFINITION = 10;
+
+ /**
+ * The feature id for the '<em><b>Acid Mitigation</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NO_FAILURE_DEFINITION__ACID_MITIGATION = DEFINITIONS_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>No Failure Definition</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NO_FAILURE_DEFINITION_FEATURE_COUNT = DEFINITIONS_FEATURE_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link org.polarsys.chess.xtext.flaDsl.impl.ComplexNofailureDefinitionImpl <em>Complex Nofailure Definition</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.polarsys.chess.xtext.flaDsl.impl.ComplexNofailureDefinitionImpl
+ * @see org.polarsys.chess.xtext.flaDsl.impl.FlaDslPackageImpl#getComplexNofailureDefinition()
+ * @generated
+ */
+ int COMPLEX_NOFAILURE_DEFINITION = 11;
+
+ /**
+ * The number of structural features of the '<em>Complex Nofailure Definition</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int COMPLEX_NOFAILURE_DEFINITION_FEATURE_COUNT = DEFINITIONS_FEATURE_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.polarsys.chess.xtext.flaDsl.impl.WildcardDefinitionImpl <em>Wildcard Definition</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.polarsys.chess.xtext.flaDsl.impl.WildcardDefinitionImpl
+ * @see org.polarsys.chess.xtext.flaDsl.impl.FlaDslPackageImpl#getWildcardDefinition()
+ * @generated
+ */
+ int WILDCARD_DEFINITION = 12;
+
+ /**
+ * The number of structural features of the '<em>Wildcard Definition</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int WILDCARD_DEFINITION_FEATURE_COUNT = DEFINITIONS_FEATURE_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.polarsys.chess.xtext.flaDsl.impl.VariableDefinitionImpl <em>Variable Definition</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.polarsys.chess.xtext.flaDsl.impl.VariableDefinitionImpl
+ * @see org.polarsys.chess.xtext.flaDsl.impl.FlaDslPackageImpl#getVariableDefinition()
+ * @generated
+ */
+ int VARIABLE_DEFINITION = 13;
+
+ /**
+ * The feature id for the '<em><b>Variable Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VARIABLE_DEFINITION__VARIABLE_NAME = DEFINITIONS_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Variable Definition</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VARIABLE_DEFINITION_FEATURE_COUNT = DEFINITIONS_FEATURE_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link org.polarsys.chess.xtext.flaDsl.impl.ACIDavoidableImpl <em>ACI Davoidable</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.polarsys.chess.xtext.flaDsl.impl.ACIDavoidableImpl
+ * @see org.polarsys.chess.xtext.flaDsl.impl.FlaDslPackageImpl#getACIDavoidable()
+ * @generated
+ */
+ int ACI_DAVOIDABLE = 14;
+
+ /**
+ * The feature id for the '<em><b>A</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ACI_DAVOIDABLE__A = 0;
+
+ /**
+ * The feature id for the '<em><b>C</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ACI_DAVOIDABLE__C = 1;
+
+ /**
+ * The feature id for the '<em><b>I</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ACI_DAVOIDABLE__I = 2;
+
+ /**
+ * The feature id for the '<em><b>D</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ACI_DAVOIDABLE__D = 3;
+
+ /**
+ * The number of structural features of the '<em>ACI Davoidable</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ACI_DAVOIDABLE_FEATURE_COUNT = 4;
+
+ /**
+ * The meta object id for the '{@link org.polarsys.chess.xtext.flaDsl.impl.ACIDMitigationImpl <em>ACID Mitigation</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.polarsys.chess.xtext.flaDsl.impl.ACIDMitigationImpl
+ * @see org.polarsys.chess.xtext.flaDsl.impl.FlaDslPackageImpl#getACIDMitigation()
+ * @generated
+ */
+ int ACID_MITIGATION = 15;
+
+ /**
+ * The feature id for the '<em><b>A</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ACID_MITIGATION__A = 0;
+
+ /**
+ * The feature id for the '<em><b>C</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ACID_MITIGATION__C = 1;
+
+ /**
+ * The feature id for the '<em><b>I</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ACID_MITIGATION__I = 2;
+
+ /**
+ * The feature id for the '<em><b>D</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ACID_MITIGATION__D = 3;
+
+ /**
+ * The number of structural features of the '<em>ACID Mitigation</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ACID_MITIGATION_FEATURE_COUNT = 4;
+
+ /**
+ * The meta object id for the '{@link org.polarsys.chess.xtext.flaDsl.FailureType <em>Failure Type</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.polarsys.chess.xtext.flaDsl.FailureType
+ * @see org.polarsys.chess.xtext.flaDsl.impl.FlaDslPackageImpl#getFailureType()
+ * @generated
+ */
+ int FAILURE_TYPE = 16;
+
+ /**
+ * The meta object id for the '{@link org.polarsys.chess.xtext.flaDsl.Aavoidable <em>Aavoidable</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.polarsys.chess.xtext.flaDsl.Aavoidable
+ * @see org.polarsys.chess.xtext.flaDsl.impl.FlaDslPackageImpl#getAavoidable()
+ * @generated
+ */
+ int AAVOIDABLE = 17;
+
+ /**
+ * The meta object id for the '{@link org.polarsys.chess.xtext.flaDsl.Cavoidable <em>Cavoidable</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.polarsys.chess.xtext.flaDsl.Cavoidable
+ * @see org.polarsys.chess.xtext.flaDsl.impl.FlaDslPackageImpl#getCavoidable()
+ * @generated
+ */
+ int CAVOIDABLE = 18;
+
+ /**
+ * The meta object id for the '{@link org.polarsys.chess.xtext.flaDsl.Iavoidable <em>Iavoidable</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.polarsys.chess.xtext.flaDsl.Iavoidable
+ * @see org.polarsys.chess.xtext.flaDsl.impl.FlaDslPackageImpl#getIavoidable()
+ * @generated
+ */
+ int IAVOIDABLE = 19;
+
+ /**
+ * The meta object id for the '{@link org.polarsys.chess.xtext.flaDsl.Davoidable <em>Davoidable</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.polarsys.chess.xtext.flaDsl.Davoidable
+ * @see org.polarsys.chess.xtext.flaDsl.impl.FlaDslPackageImpl#getDavoidable()
+ * @generated
+ */
+ int DAVOIDABLE = 20;
+
+ /**
+ * The meta object id for the '{@link org.polarsys.chess.xtext.flaDsl.Amitigation <em>Amitigation</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.polarsys.chess.xtext.flaDsl.Amitigation
+ * @see org.polarsys.chess.xtext.flaDsl.impl.FlaDslPackageImpl#getAmitigation()
+ * @generated
+ */
+ int AMITIGATION = 21;
+
+ /**
+ * The meta object id for the '{@link org.polarsys.chess.xtext.flaDsl.Cmitigation <em>Cmitigation</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.polarsys.chess.xtext.flaDsl.Cmitigation
+ * @see org.polarsys.chess.xtext.flaDsl.impl.FlaDslPackageImpl#getCmitigation()
+ * @generated
+ */
+ int CMITIGATION = 22;
+
+ /**
+ * The meta object id for the '{@link org.polarsys.chess.xtext.flaDsl.Imitigation <em>Imitigation</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.polarsys.chess.xtext.flaDsl.Imitigation
+ * @see org.polarsys.chess.xtext.flaDsl.impl.FlaDslPackageImpl#getImitigation()
+ * @generated
+ */
+ int IMITIGATION = 23;
+
+ /**
+ * The meta object id for the '{@link org.polarsys.chess.xtext.flaDsl.Dmitigation <em>Dmitigation</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.polarsys.chess.xtext.flaDsl.Dmitigation
+ * @see org.polarsys.chess.xtext.flaDsl.impl.FlaDslPackageImpl#getDmitigation()
+ * @generated
+ */
+ int DMITIGATION = 24;
+
+
+ /**
+ * Returns the meta object for class '{@link org.polarsys.chess.xtext.flaDsl.Behaviour <em>Behaviour</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Behaviour</em>'.
+ * @see org.polarsys.chess.xtext.flaDsl.Behaviour
+ * @generated
+ */
+ EClass getBehaviour();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.polarsys.chess.xtext.flaDsl.Behaviour#getRules <em>Rules</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Rules</em>'.
+ * @see org.polarsys.chess.xtext.flaDsl.Behaviour#getRules()
+ * @see #getBehaviour()
+ * @generated
+ */
+ EReference getBehaviour_Rules();
+
+ /**
+ * Returns the meta object for class '{@link org.polarsys.chess.xtext.flaDsl.Expression <em>Expression</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Expression</em>'.
+ * @see org.polarsys.chess.xtext.flaDsl.Expression
+ * @generated
+ */
+ EClass getExpression();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.polarsys.chess.xtext.flaDsl.Expression#getLhs <em>Lhs</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Lhs</em>'.
+ * @see org.polarsys.chess.xtext.flaDsl.Expression#getLhs()
+ * @see #getExpression()
+ * @generated
+ */
+ EReference getExpression_Lhs();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.polarsys.chess.xtext.flaDsl.Expression#getRhs <em>Rhs</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Rhs</em>'.
+ * @see org.polarsys.chess.xtext.flaDsl.Expression#getRhs()
+ * @see #getExpression()
+ * @generated
+ */
+ EReference getExpression_Rhs();
+
+ /**
+ * Returns the meta object for class '{@link org.polarsys.chess.xtext.flaDsl.Lhs <em>Lhs</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Lhs</em>'.
+ * @see org.polarsys.chess.xtext.flaDsl.Lhs
+ * @generated
+ */
+ EClass getLhs();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.polarsys.chess.xtext.flaDsl.Lhs#getFailures <em>Failures</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Failures</em>'.
+ * @see org.polarsys.chess.xtext.flaDsl.Lhs#getFailures()
+ * @see #getLhs()
+ * @generated
+ */
+ EReference getLhs_Failures();
+
+ /**
+ * Returns the meta object for class '{@link org.polarsys.chess.xtext.flaDsl.Rhs <em>Rhs</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Rhs</em>'.
+ * @see org.polarsys.chess.xtext.flaDsl.Rhs
+ * @generated
+ */
+ EClass getRhs();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.polarsys.chess.xtext.flaDsl.Rhs#getFailures <em>Failures</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Failures</em>'.
+ * @see org.polarsys.chess.xtext.flaDsl.Rhs#getFailures()
+ * @see #getRhs()
+ * @generated
+ */
+ EReference getRhs_Failures();
+
+ /**
+ * Returns the meta object for class '{@link org.polarsys.chess.xtext.flaDsl.InputExpression <em>Input Expression</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Input Expression</em>'.
+ * @see org.polarsys.chess.xtext.flaDsl.InputExpression
+ * @generated
+ */
+ EClass getInputExpression();
+
+ /**
+ * Returns the meta object for the reference '{@link org.polarsys.chess.xtext.flaDsl.InputExpression#getRef <em>Ref</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Ref</em>'.
+ * @see org.polarsys.chess.xtext.flaDsl.InputExpression#getRef()
+ * @see #getInputExpression()
+ * @generated
+ */
+ EReference getInputExpression_Ref();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.polarsys.chess.xtext.flaDsl.InputExpression#getFailureExpr <em>Failure Expr</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Failure Expr</em>'.
+ * @see org.polarsys.chess.xtext.flaDsl.InputExpression#getFailureExpr()
+ * @see #getInputExpression()
+ * @generated
+ */
+ EReference getInputExpression_FailureExpr();
+
+ /**
+ * Returns the meta object for class '{@link org.polarsys.chess.xtext.flaDsl.OutputExpression <em>Output Expression</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Output Expression</em>'.
+ * @see org.polarsys.chess.xtext.flaDsl.OutputExpression
+ * @generated
+ */
+ EClass getOutputExpression();
+
+ /**
+ * Returns the meta object for the reference '{@link org.polarsys.chess.xtext.flaDsl.OutputExpression#getRef <em>Ref</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Ref</em>'.
+ * @see org.polarsys.chess.xtext.flaDsl.OutputExpression#getRef()
+ * @see #getOutputExpression()
+ * @generated
+ */
+ EReference getOutputExpression_Ref();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.polarsys.chess.xtext.flaDsl.OutputExpression#getFailureExpr <em>Failure Expr</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Failure Expr</em>'.
+ * @see org.polarsys.chess.xtext.flaDsl.OutputExpression#getFailureExpr()
+ * @see #getOutputExpression()
+ * @generated
+ */
+ EReference getOutputExpression_FailureExpr();
+
+ /**
+ * Returns the meta object for class '{@link org.polarsys.chess.xtext.flaDsl.InFailureExpr <em>In Failure Expr</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>In Failure Expr</em>'.
+ * @see org.polarsys.chess.xtext.flaDsl.InFailureExpr
+ * @generated
+ */
+ EClass getInFailureExpr();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.polarsys.chess.xtext.flaDsl.InFailureExpr#getFailures <em>Failures</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Failures</em>'.
+ * @see org.polarsys.chess.xtext.flaDsl.InFailureExpr#getFailures()
+ * @see #getInFailureExpr()
+ * @generated
+ */
+ EReference getInFailureExpr_Failures();
+
+ /**
+ * Returns the meta object for class '{@link org.polarsys.chess.xtext.flaDsl.OutFailureExpr <em>Out Failure Expr</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Out Failure Expr</em>'.
+ * @see org.polarsys.chess.xtext.flaDsl.OutFailureExpr
+ * @generated
+ */
+ EClass getOutFailureExpr();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.polarsys.chess.xtext.flaDsl.OutFailureExpr#getFailures <em>Failures</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Failures</em>'.
+ * @see org.polarsys.chess.xtext.flaDsl.OutFailureExpr#getFailures()
+ * @see #getOutFailureExpr()
+ * @generated
+ */
+ EReference getOutFailureExpr_Failures();
+
+ /**
+ * Returns the meta object for class '{@link org.polarsys.chess.xtext.flaDsl.Definitions <em>Definitions</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Definitions</em>'.
+ * @see org.polarsys.chess.xtext.flaDsl.Definitions
+ * @generated
+ */
+ EClass getDefinitions();
+
+ /**
+ * Returns the meta object for class '{@link org.polarsys.chess.xtext.flaDsl.FailureDefinition <em>Failure Definition</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Failure Definition</em>'.
+ * @see org.polarsys.chess.xtext.flaDsl.FailureDefinition
+ * @generated
+ */
+ EClass getFailureDefinition();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.polarsys.chess.xtext.flaDsl.FailureDefinition#getType <em>Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Type</em>'.
+ * @see org.polarsys.chess.xtext.flaDsl.FailureDefinition#getType()
+ * @see #getFailureDefinition()
+ * @generated
+ */
+ EAttribute getFailureDefinition_Type();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.polarsys.chess.xtext.flaDsl.FailureDefinition#getAcidAvoidable <em>Acid Avoidable</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Acid Avoidable</em>'.
+ * @see org.polarsys.chess.xtext.flaDsl.FailureDefinition#getAcidAvoidable()
+ * @see #getFailureDefinition()
+ * @generated
+ */
+ EReference getFailureDefinition_AcidAvoidable();
+
+ /**
+ * Returns the meta object for class '{@link org.polarsys.chess.xtext.flaDsl.NoFailureDefinition <em>No Failure Definition</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>No Failure Definition</em>'.
+ * @see org.polarsys.chess.xtext.flaDsl.NoFailureDefinition
+ * @generated
+ */
+ EClass getNoFailureDefinition();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.polarsys.chess.xtext.flaDsl.NoFailureDefinition#getAcidMitigation <em>Acid Mitigation</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Acid Mitigation</em>'.
+ * @see org.polarsys.chess.xtext.flaDsl.NoFailureDefinition#getAcidMitigation()
+ * @see #getNoFailureDefinition()
+ * @generated
+ */
+ EReference getNoFailureDefinition_AcidMitigation();
+
+ /**
+ * Returns the meta object for class '{@link org.polarsys.chess.xtext.flaDsl.ComplexNofailureDefinition <em>Complex Nofailure Definition</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Complex Nofailure Definition</em>'.
+ * @see org.polarsys.chess.xtext.flaDsl.ComplexNofailureDefinition
+ * @generated
+ */
+ EClass getComplexNofailureDefinition();
+
+ /**
+ * Returns the meta object for class '{@link org.polarsys.chess.xtext.flaDsl.WildcardDefinition <em>Wildcard Definition</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Wildcard Definition</em>'.
+ * @see org.polarsys.chess.xtext.flaDsl.WildcardDefinition
+ * @generated
+ */
+ EClass getWildcardDefinition();
+
+ /**
+ * Returns the meta object for class '{@link org.polarsys.chess.xtext.flaDsl.VariableDefinition <em>Variable Definition</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Variable Definition</em>'.
+ * @see org.polarsys.chess.xtext.flaDsl.VariableDefinition
+ * @generated
+ */
+ EClass getVariableDefinition();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.polarsys.chess.xtext.flaDsl.VariableDefinition#getVariableName <em>Variable Name</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Variable Name</em>'.
+ * @see org.polarsys.chess.xtext.flaDsl.VariableDefinition#getVariableName()
+ * @see #getVariableDefinition()
+ * @generated
+ */
+ EAttribute getVariableDefinition_VariableName();
+
+ /**
+ * Returns the meta object for class '{@link org.polarsys.chess.xtext.flaDsl.ACIDavoidable <em>ACI Davoidable</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>ACI Davoidable</em>'.
+ * @see org.polarsys.chess.xtext.flaDsl.ACIDavoidable
+ * @generated
+ */
+ EClass getACIDavoidable();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.polarsys.chess.xtext.flaDsl.ACIDavoidable#getA <em>A</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>A</em>'.
+ * @see org.polarsys.chess.xtext.flaDsl.ACIDavoidable#getA()
+ * @see #getACIDavoidable()
+ * @generated
+ */
+ EAttribute getACIDavoidable_A();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.polarsys.chess.xtext.flaDsl.ACIDavoidable#getC <em>C</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>C</em>'.
+ * @see org.polarsys.chess.xtext.flaDsl.ACIDavoidable#getC()
+ * @see #getACIDavoidable()
+ * @generated
+ */
+ EAttribute getACIDavoidable_C();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.polarsys.chess.xtext.flaDsl.ACIDavoidable#getI <em>I</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>I</em>'.
+ * @see org.polarsys.chess.xtext.flaDsl.ACIDavoidable#getI()
+ * @see #getACIDavoidable()
+ * @generated
+ */
+ EAttribute getACIDavoidable_I();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.polarsys.chess.xtext.flaDsl.ACIDavoidable#getD <em>D</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>D</em>'.
+ * @see org.polarsys.chess.xtext.flaDsl.ACIDavoidable#getD()
+ * @see #getACIDavoidable()
+ * @generated
+ */
+ EAttribute getACIDavoidable_D();
+
+ /**
+ * Returns the meta object for class '{@link org.polarsys.chess.xtext.flaDsl.ACIDMitigation <em>ACID Mitigation</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>ACID Mitigation</em>'.
+ * @see org.polarsys.chess.xtext.flaDsl.ACIDMitigation
+ * @generated
+ */
+ EClass getACIDMitigation();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.polarsys.chess.xtext.flaDsl.ACIDMitigation#getA <em>A</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>A</em>'.
+ * @see org.polarsys.chess.xtext.flaDsl.ACIDMitigation#getA()
+ * @see #getACIDMitigation()
+ * @generated
+ */
+ EAttribute getACIDMitigation_A();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.polarsys.chess.xtext.flaDsl.ACIDMitigation#getC <em>C</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>C</em>'.
+ * @see org.polarsys.chess.xtext.flaDsl.ACIDMitigation#getC()
+ * @see #getACIDMitigation()
+ * @generated
+ */
+ EAttribute getACIDMitigation_C();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.polarsys.chess.xtext.flaDsl.ACIDMitigation#getI <em>I</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>I</em>'.
+ * @see org.polarsys.chess.xtext.flaDsl.ACIDMitigation#getI()
+ * @see #getACIDMitigation()
+ * @generated
+ */
+ EAttribute getACIDMitigation_I();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.polarsys.chess.xtext.flaDsl.ACIDMitigation#getD <em>D</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>D</em>'.
+ * @see org.polarsys.chess.xtext.flaDsl.ACIDMitigation#getD()
+ * @see #getACIDMitigation()
+ * @generated
+ */
+ EAttribute getACIDMitigation_D();
+
+ /**
+ * Returns the meta object for enum '{@link org.polarsys.chess.xtext.flaDsl.FailureType <em>Failure Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Failure Type</em>'.
+ * @see org.polarsys.chess.xtext.flaDsl.FailureType
+ * @generated
+ */
+ EEnum getFailureType();
+
+ /**
+ * Returns the meta object for enum '{@link org.polarsys.chess.xtext.flaDsl.Aavoidable <em>Aavoidable</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Aavoidable</em>'.
+ * @see org.polarsys.chess.xtext.flaDsl.Aavoidable
+ * @generated
+ */
+ EEnum getAavoidable();
+
+ /**
+ * Returns the meta object for enum '{@link org.polarsys.chess.xtext.flaDsl.Cavoidable <em>Cavoidable</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Cavoidable</em>'.
+ * @see org.polarsys.chess.xtext.flaDsl.Cavoidable
+ * @generated
+ */
+ EEnum getCavoidable();
+
+ /**
+ * Returns the meta object for enum '{@link org.polarsys.chess.xtext.flaDsl.Iavoidable <em>Iavoidable</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Iavoidable</em>'.
+ * @see org.polarsys.chess.xtext.flaDsl.Iavoidable
+ * @generated
+ */
+ EEnum getIavoidable();
+
+ /**
+ * Returns the meta object for enum '{@link org.polarsys.chess.xtext.flaDsl.Davoidable <em>Davoidable</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Davoidable</em>'.
+ * @see org.polarsys.chess.xtext.flaDsl.Davoidable
+ * @generated
+ */
+ EEnum getDavoidable();
+
+ /**
+ * Returns the meta object for enum '{@link org.polarsys.chess.xtext.flaDsl.Amitigation <em>Amitigation</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Amitigation</em>'.
+ * @see org.polarsys.chess.xtext.flaDsl.Amitigation
+ * @generated
+ */
+ EEnum getAmitigation();
+
+ /**
+ * Returns the meta object for enum '{@link org.polarsys.chess.xtext.flaDsl.Cmitigation <em>Cmitigation</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Cmitigation</em>'.
+ * @see org.polarsys.chess.xtext.flaDsl.Cmitigation
+ * @generated
+ */
+ EEnum getCmitigation();
+
+ /**
+ * Returns the meta object for enum '{@link org.polarsys.chess.xtext.flaDsl.Imitigation <em>Imitigation</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Imitigation</em>'.
+ * @see org.polarsys.chess.xtext.flaDsl.Imitigation
+ * @generated
+ */
+ EEnum getImitigation();
+
+ /**
+ * Returns the meta object for enum '{@link org.polarsys.chess.xtext.flaDsl.Dmitigation <em>Dmitigation</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Dmitigation</em>'.
+ * @see org.polarsys.chess.xtext.flaDsl.Dmitigation
+ * @generated
+ */
+ EEnum getDmitigation();
+
+ /**
+ * Returns the factory that creates the instances of the model.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the factory that creates the instances of the model.
+ * @generated
+ */
+ FlaDslFactory getFlaDslFactory();
+
+ /**
+ * <!-- begin-user-doc -->
+ * Defines literals for the meta objects that represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ interface Literals
+ {
+ /**
+ * The meta object literal for the '{@link org.polarsys.chess.xtext.flaDsl.impl.BehaviourImpl <em>Behaviour</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.polarsys.chess.xtext.flaDsl.impl.BehaviourImpl
+ * @see org.polarsys.chess.xtext.flaDsl.impl.FlaDslPackageImpl#getBehaviour()
+ * @generated
+ */
+ EClass BEHAVIOUR = eINSTANCE.getBehaviour();
+
+ /**
+ * The meta object literal for the '<em><b>Rules</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference BEHAVIOUR__RULES = eINSTANCE.getBehaviour_Rules();
+
+ /**
+ * The meta object literal for the '{@link org.polarsys.chess.xtext.flaDsl.impl.ExpressionImpl <em>Expression</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.polarsys.chess.xtext.flaDsl.impl.ExpressionImpl
+ * @see org.polarsys.chess.xtext.flaDsl.impl.FlaDslPackageImpl#getExpression()
+ * @generated
+ */
+ EClass EXPRESSION = eINSTANCE.getExpression();
+
+ /**
+ * The meta object literal for the '<em><b>Lhs</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference EXPRESSION__LHS = eINSTANCE.getExpression_Lhs();
+
+ /**
+ * The meta object literal for the '<em><b>Rhs</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference EXPRESSION__RHS = eINSTANCE.getExpression_Rhs();
+
+ /**
+ * The meta object literal for the '{@link org.polarsys.chess.xtext.flaDsl.impl.LhsImpl <em>Lhs</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.polarsys.chess.xtext.flaDsl.impl.LhsImpl
+ * @see org.polarsys.chess.xtext.flaDsl.impl.FlaDslPackageImpl#getLhs()
+ * @generated
+ */
+ EClass LHS = eINSTANCE.getLhs();
+
+ /**
+ * The meta object literal for the '<em><b>Failures</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference LHS__FAILURES = eINSTANCE.getLhs_Failures();
+
+ /**
+ * The meta object literal for the '{@link org.polarsys.chess.xtext.flaDsl.impl.RhsImpl <em>Rhs</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.polarsys.chess.xtext.flaDsl.impl.RhsImpl
+ * @see org.polarsys.chess.xtext.flaDsl.impl.FlaDslPackageImpl#getRhs()
+ * @generated
+ */
+ EClass RHS = eINSTANCE.getRhs();
+
+ /**
+ * The meta object literal for the '<em><b>Failures</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference RHS__FAILURES = eINSTANCE.getRhs_Failures();
+
+ /**
+ * The meta object literal for the '{@link org.polarsys.chess.xtext.flaDsl.impl.InputExpressionImpl <em>Input Expression</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.polarsys.chess.xtext.flaDsl.impl.InputExpressionImpl
+ * @see org.polarsys.chess.xtext.flaDsl.impl.FlaDslPackageImpl#getInputExpression()
+ * @generated
+ */
+ EClass INPUT_EXPRESSION = eINSTANCE.getInputExpression();
+
+ /**
+ * The meta object literal for the '<em><b>Ref</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference INPUT_EXPRESSION__REF = eINSTANCE.getInputExpression_Ref();
+
+ /**
+ * The meta object literal for the '<em><b>Failure Expr</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference INPUT_EXPRESSION__FAILURE_EXPR = eINSTANCE.getInputExpression_FailureExpr();
+
+ /**
+ * The meta object literal for the '{@link org.polarsys.chess.xtext.flaDsl.impl.OutputExpressionImpl <em>Output Expression</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.polarsys.chess.xtext.flaDsl.impl.OutputExpressionImpl
+ * @see org.polarsys.chess.xtext.flaDsl.impl.FlaDslPackageImpl#getOutputExpression()
+ * @generated
+ */
+ EClass OUTPUT_EXPRESSION = eINSTANCE.getOutputExpression();
+
+ /**
+ * The meta object literal for the '<em><b>Ref</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference OUTPUT_EXPRESSION__REF = eINSTANCE.getOutputExpression_Ref();
+
+ /**
+ * The meta object literal for the '<em><b>Failure Expr</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference OUTPUT_EXPRESSION__FAILURE_EXPR = eINSTANCE.getOutputExpression_FailureExpr();
+
+ /**
+ * The meta object literal for the '{@link org.polarsys.chess.xtext.flaDsl.impl.InFailureExprImpl <em>In Failure Expr</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.polarsys.chess.xtext.flaDsl.impl.InFailureExprImpl
+ * @see org.polarsys.chess.xtext.flaDsl.impl.FlaDslPackageImpl#getInFailureExpr()
+ * @generated
+ */
+ EClass IN_FAILURE_EXPR = eINSTANCE.getInFailureExpr();
+
+ /**
+ * The meta object literal for the '<em><b>Failures</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference IN_FAILURE_EXPR__FAILURES = eINSTANCE.getInFailureExpr_Failures();
+
+ /**
+ * The meta object literal for the '{@link org.polarsys.chess.xtext.flaDsl.impl.OutFailureExprImpl <em>Out Failure Expr</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.polarsys.chess.xtext.flaDsl.impl.OutFailureExprImpl
+ * @see org.polarsys.chess.xtext.flaDsl.impl.FlaDslPackageImpl#getOutFailureExpr()
+ * @generated
+ */
+ EClass OUT_FAILURE_EXPR = eINSTANCE.getOutFailureExpr();
+
+ /**
+ * The meta object literal for the '<em><b>Failures</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference OUT_FAILURE_EXPR__FAILURES = eINSTANCE.getOutFailureExpr_Failures();
+
+ /**
+ * The meta object literal for the '{@link org.polarsys.chess.xtext.flaDsl.impl.DefinitionsImpl <em>Definitions</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.polarsys.chess.xtext.flaDsl.impl.DefinitionsImpl
+ * @see org.polarsys.chess.xtext.flaDsl.impl.FlaDslPackageImpl#getDefinitions()
+ * @generated
+ */
+ EClass DEFINITIONS = eINSTANCE.getDefinitions();
+
+ /**
+ * The meta object literal for the '{@link org.polarsys.chess.xtext.flaDsl.impl.FailureDefinitionImpl <em>Failure Definition</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.polarsys.chess.xtext.flaDsl.impl.FailureDefinitionImpl
+ * @see org.polarsys.chess.xtext.flaDsl.impl.FlaDslPackageImpl#getFailureDefinition()
+ * @generated
+ */
+ EClass FAILURE_DEFINITION = eINSTANCE.getFailureDefinition();
+
+ /**
+ * The meta object literal for the '<em><b>Type</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute FAILURE_DEFINITION__TYPE = eINSTANCE.getFailureDefinition_Type();
+
+ /**
+ * The meta object literal for the '<em><b>Acid Avoidable</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference FAILURE_DEFINITION__ACID_AVOIDABLE = eINSTANCE.getFailureDefinition_AcidAvoidable();
+
+ /**
+ * The meta object literal for the '{@link org.polarsys.chess.xtext.flaDsl.impl.NoFailureDefinitionImpl <em>No Failure Definition</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.polarsys.chess.xtext.flaDsl.impl.NoFailureDefinitionImpl
+ * @see org.polarsys.chess.xtext.flaDsl.impl.FlaDslPackageImpl#getNoFailureDefinition()
+ * @generated
+ */
+ EClass NO_FAILURE_DEFINITION = eINSTANCE.getNoFailureDefinition();
+
+ /**
+ * The meta object literal for the '<em><b>Acid Mitigation</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference NO_FAILURE_DEFINITION__ACID_MITIGATION = eINSTANCE.getNoFailureDefinition_AcidMitigation();
+
+ /**
+ * The meta object literal for the '{@link org.polarsys.chess.xtext.flaDsl.impl.ComplexNofailureDefinitionImpl <em>Complex Nofailure Definition</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.polarsys.chess.xtext.flaDsl.impl.ComplexNofailureDefinitionImpl
+ * @see org.polarsys.chess.xtext.flaDsl.impl.FlaDslPackageImpl#getComplexNofailureDefinition()
+ * @generated
+ */
+ EClass COMPLEX_NOFAILURE_DEFINITION = eINSTANCE.getComplexNofailureDefinition();
+
+ /**
+ * The meta object literal for the '{@link org.polarsys.chess.xtext.flaDsl.impl.WildcardDefinitionImpl <em>Wildcard Definition</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.polarsys.chess.xtext.flaDsl.impl.WildcardDefinitionImpl
+ * @see org.polarsys.chess.xtext.flaDsl.impl.FlaDslPackageImpl#getWildcardDefinition()
+ * @generated
+ */
+ EClass WILDCARD_DEFINITION = eINSTANCE.getWildcardDefinition();
+
+ /**
+ * The meta object literal for the '{@link org.polarsys.chess.xtext.flaDsl.impl.VariableDefinitionImpl <em>Variable Definition</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.polarsys.chess.xtext.flaDsl.impl.VariableDefinitionImpl
+ * @see org.polarsys.chess.xtext.flaDsl.impl.FlaDslPackageImpl#getVariableDefinition()
+ * @generated
+ */
+ EClass VARIABLE_DEFINITION = eINSTANCE.getVariableDefinition();
+
+ /**
+ * The meta object literal for the '<em><b>Variable Name</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute VARIABLE_DEFINITION__VARIABLE_NAME = eINSTANCE.getVariableDefinition_VariableName();
+
+ /**
+ * The meta object literal for the '{@link org.polarsys.chess.xtext.flaDsl.impl.ACIDavoidableImpl <em>ACI Davoidable</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.polarsys.chess.xtext.flaDsl.impl.ACIDavoidableImpl
+ * @see org.polarsys.chess.xtext.flaDsl.impl.FlaDslPackageImpl#getACIDavoidable()
+ * @generated
+ */
+ EClass ACI_DAVOIDABLE = eINSTANCE.getACIDavoidable();
+
+ /**
+ * The meta object literal for the '<em><b>A</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute ACI_DAVOIDABLE__A = eINSTANCE.getACIDavoidable_A();
+
+ /**
+ * The meta object literal for the '<em><b>C</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute ACI_DAVOIDABLE__C = eINSTANCE.getACIDavoidable_C();
+
+ /**
+ * The meta object literal for the '<em><b>I</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute ACI_DAVOIDABLE__I = eINSTANCE.getACIDavoidable_I();
+
+ /**
+ * The meta object literal for the '<em><b>D</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute ACI_DAVOIDABLE__D = eINSTANCE.getACIDavoidable_D();
+
+ /**
+ * The meta object literal for the '{@link org.polarsys.chess.xtext.flaDsl.impl.ACIDMitigationImpl <em>ACID Mitigation</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.polarsys.chess.xtext.flaDsl.impl.ACIDMitigationImpl
+ * @see org.polarsys.chess.xtext.flaDsl.impl.FlaDslPackageImpl#getACIDMitigation()
+ * @generated
+ */
+ EClass ACID_MITIGATION = eINSTANCE.getACIDMitigation();
+
+ /**
+ * The meta object literal for the '<em><b>A</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute ACID_MITIGATION__A = eINSTANCE.getACIDMitigation_A();
+
+ /**
+ * The meta object literal for the '<em><b>C</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute ACID_MITIGATION__C = eINSTANCE.getACIDMitigation_C();
+
+ /**
+ * The meta object literal for the '<em><b>I</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute ACID_MITIGATION__I = eINSTANCE.getACIDMitigation_I();
+
+ /**
+ * The meta object literal for the '<em><b>D</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute ACID_MITIGATION__D = eINSTANCE.getACIDMitigation_D();
+
+ /**
+ * The meta object literal for the '{@link org.polarsys.chess.xtext.flaDsl.FailureType <em>Failure Type</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.polarsys.chess.xtext.flaDsl.FailureType
+ * @see org.polarsys.chess.xtext.flaDsl.impl.FlaDslPackageImpl#getFailureType()
+ * @generated
+ */
+ EEnum FAILURE_TYPE = eINSTANCE.getFailureType();
+
+ /**
+ * The meta object literal for the '{@link org.polarsys.chess.xtext.flaDsl.Aavoidable <em>Aavoidable</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.polarsys.chess.xtext.flaDsl.Aavoidable
+ * @see org.polarsys.chess.xtext.flaDsl.impl.FlaDslPackageImpl#getAavoidable()
+ * @generated
+ */
+ EEnum AAVOIDABLE = eINSTANCE.getAavoidable();
+
+ /**
+ * The meta object literal for the '{@link org.polarsys.chess.xtext.flaDsl.Cavoidable <em>Cavoidable</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.polarsys.chess.xtext.flaDsl.Cavoidable
+ * @see org.polarsys.chess.xtext.flaDsl.impl.FlaDslPackageImpl#getCavoidable()
+ * @generated
+ */
+ EEnum CAVOIDABLE = eINSTANCE.getCavoidable();
+
+ /**
+ * The meta object literal for the '{@link org.polarsys.chess.xtext.flaDsl.Iavoidable <em>Iavoidable</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.polarsys.chess.xtext.flaDsl.Iavoidable
+ * @see org.polarsys.chess.xtext.flaDsl.impl.FlaDslPackageImpl#getIavoidable()
+ * @generated
+ */
+ EEnum IAVOIDABLE = eINSTANCE.getIavoidable();
+
+ /**
+ * The meta object literal for the '{@link org.polarsys.chess.xtext.flaDsl.Davoidable <em>Davoidable</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.polarsys.chess.xtext.flaDsl.Davoidable
+ * @see org.polarsys.chess.xtext.flaDsl.impl.FlaDslPackageImpl#getDavoidable()
+ * @generated
+ */
+ EEnum DAVOIDABLE = eINSTANCE.getDavoidable();
+
+ /**
+ * The meta object literal for the '{@link org.polarsys.chess.xtext.flaDsl.Amitigation <em>Amitigation</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.polarsys.chess.xtext.flaDsl.Amitigation
+ * @see org.polarsys.chess.xtext.flaDsl.impl.FlaDslPackageImpl#getAmitigation()
+ * @generated
+ */
+ EEnum AMITIGATION = eINSTANCE.getAmitigation();
+
+ /**
+ * The meta object literal for the '{@link org.polarsys.chess.xtext.flaDsl.Cmitigation <em>Cmitigation</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.polarsys.chess.xtext.flaDsl.Cmitigation
+ * @see org.polarsys.chess.xtext.flaDsl.impl.FlaDslPackageImpl#getCmitigation()
+ * @generated
+ */
+ EEnum CMITIGATION = eINSTANCE.getCmitigation();
+
+ /**
+ * The meta object literal for the '{@link org.polarsys.chess.xtext.flaDsl.Imitigation <em>Imitigation</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.polarsys.chess.xtext.flaDsl.Imitigation
+ * @see org.polarsys.chess.xtext.flaDsl.impl.FlaDslPackageImpl#getImitigation()
+ * @generated
+ */
+ EEnum IMITIGATION = eINSTANCE.getImitigation();
+
+ /**
+ * The meta object literal for the '{@link org.polarsys.chess.xtext.flaDsl.Dmitigation <em>Dmitigation</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.polarsys.chess.xtext.flaDsl.Dmitigation
+ * @see org.polarsys.chess.xtext.flaDsl.impl.FlaDslPackageImpl#getDmitigation()
+ * @generated
+ */
+ EEnum DMITIGATION = eINSTANCE.getDmitigation();
+
+ }
+
+} //FlaDslPackage
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/Iavoidable.java b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/Iavoidable.java
new file mode 100644
index 0000000..b9e242d
--- /dev/null
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/Iavoidable.java
@@ -0,0 +1,256 @@
+/**
+ */
+package org.polarsys.chess.xtext.flaDsl;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Iavoidable</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.polarsys.chess.xtext.flaDsl.FlaDslPackage#getIavoidable()
+ * @model
+ * @generated
+ */
+public enum Iavoidable implements Enumerator
+{
+ /**
+ * The '<em><b>INTERFERENCE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #INTERFERENCE_VALUE
+ * @generated
+ * @ordered
+ */
+ INTERFERENCE(0, "INTERFERENCE", "interference"),
+
+ /**
+ * The '<em><b>NONE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #NONE_VALUE
+ * @generated
+ * @ordered
+ */
+ NONE(1, "NONE", "none"),
+
+ /**
+ * The '<em><b>UNSPECIFIED</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #UNSPECIFIED_VALUE
+ * @generated
+ * @ordered
+ */
+ UNSPECIFIED(2, "UNSPECIFIED", "unspecified");
+
+ /**
+ * The '<em><b>INTERFERENCE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>INTERFERENCE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #INTERFERENCE
+ * @model literal="interference"
+ * @generated
+ * @ordered
+ */
+ public static final int INTERFERENCE_VALUE = 0;
+
+ /**
+ * The '<em><b>NONE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>NONE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #NONE
+ * @model literal="none"
+ * @generated
+ * @ordered
+ */
+ public static final int NONE_VALUE = 1;
+
+ /**
+ * The '<em><b>UNSPECIFIED</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>UNSPECIFIED</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #UNSPECIFIED
+ * @model literal="unspecified"
+ * @generated
+ * @ordered
+ */
+ public static final int UNSPECIFIED_VALUE = 2;
+
+ /**
+ * An array of all the '<em><b>Iavoidable</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final Iavoidable[] VALUES_ARRAY =
+ new Iavoidable[]
+ {
+ INTERFERENCE,
+ NONE,
+ UNSPECIFIED,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Iavoidable</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<Iavoidable> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Iavoidable</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param literal the literal.
+ * @return the matching enumerator or <code>null</code>.
+ * @generated
+ */
+ public static Iavoidable get(String literal)
+ {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i)
+ {
+ Iavoidable result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal))
+ {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Iavoidable</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param name the name.
+ * @return the matching enumerator or <code>null</code>.
+ * @generated
+ */
+ public static Iavoidable getByName(String name)
+ {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i)
+ {
+ Iavoidable result = VALUES_ARRAY[i];
+ if (result.getName().equals(name))
+ {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Iavoidable</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the integer value.
+ * @return the matching enumerator or <code>null</code>.
+ * @generated
+ */
+ public static Iavoidable get(int value)
+ {
+ switch (value)
+ {
+ case INTERFERENCE_VALUE: return INTERFERENCE;
+ case NONE_VALUE: return NONE;
+ case UNSPECIFIED_VALUE: return UNSPECIFIED;
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final int value;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String name;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String literal;
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private Iavoidable(int value, String name, String literal)
+ {
+ this.value = value;
+ this.name = name;
+ this.literal = literal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getValue()
+ {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName()
+ {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getLiteral()
+ {
+ return literal;
+ }
+
+ /**
+ * Returns the literal value of the enumerator, which is its string representation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString()
+ {
+ return literal;
+ }
+
+} //Iavoidable
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/Imitigation.java b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/Imitigation.java
new file mode 100644
index 0000000..c918e48
--- /dev/null
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/Imitigation.java
@@ -0,0 +1,283 @@
+/**
+ */
+package org.polarsys.chess.xtext.flaDsl;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Imitigation</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.polarsys.chess.xtext.flaDsl.FlaDslPackage#getImitigation()
+ * @model
+ * @generated
+ */
+public enum Imitigation implements Enumerator
+{
+ /**
+ * The '<em><b>SERIALIZABLE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #SERIALIZABLE_VALUE
+ * @generated
+ * @ordered
+ */
+ SERIALIZABLE(0, "SERIALIZABLE", "serializable"),
+
+ /**
+ * The '<em><b>PORTABLE LEVEL</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #PORTABLE_LEVEL_VALUE
+ * @generated
+ * @ordered
+ */
+ PORTABLE_LEVEL(1, "PORTABLE_LEVEL", "portable_level"),
+
+ /**
+ * The '<em><b>NONE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #NONE_VALUE
+ * @generated
+ * @ordered
+ */
+ NONE(2, "NONE", "none"),
+
+ /**
+ * The '<em><b>UNSPECIFIED</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #UNSPECIFIED_VALUE
+ * @generated
+ * @ordered
+ */
+ UNSPECIFIED(3, "UNSPECIFIED", "unspecified");
+
+ /**
+ * The '<em><b>SERIALIZABLE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>SERIALIZABLE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #SERIALIZABLE
+ * @model literal="serializable"
+ * @generated
+ * @ordered
+ */
+ public static final int SERIALIZABLE_VALUE = 0;
+
+ /**
+ * The '<em><b>PORTABLE LEVEL</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>PORTABLE LEVEL</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #PORTABLE_LEVEL
+ * @model literal="portable_level"
+ * @generated
+ * @ordered
+ */
+ public static final int PORTABLE_LEVEL_VALUE = 1;
+
+ /**
+ * The '<em><b>NONE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>NONE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #NONE
+ * @model literal="none"
+ * @generated
+ * @ordered
+ */
+ public static final int NONE_VALUE = 2;
+
+ /**
+ * The '<em><b>UNSPECIFIED</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>UNSPECIFIED</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #UNSPECIFIED
+ * @model literal="unspecified"
+ * @generated
+ * @ordered
+ */
+ public static final int UNSPECIFIED_VALUE = 3;
+
+ /**
+ * An array of all the '<em><b>Imitigation</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final Imitigation[] VALUES_ARRAY =
+ new Imitigation[]
+ {
+ SERIALIZABLE,
+ PORTABLE_LEVEL,
+ NONE,
+ UNSPECIFIED,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Imitigation</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<Imitigation> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Imitigation</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param literal the literal.
+ * @return the matching enumerator or <code>null</code>.
+ * @generated
+ */
+ public static Imitigation get(String literal)
+ {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i)
+ {
+ Imitigation result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal))
+ {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Imitigation</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param name the name.
+ * @return the matching enumerator or <code>null</code>.
+ * @generated
+ */
+ public static Imitigation getByName(String name)
+ {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i)
+ {
+ Imitigation result = VALUES_ARRAY[i];
+ if (result.getName().equals(name))
+ {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Imitigation</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the integer value.
+ * @return the matching enumerator or <code>null</code>.
+ * @generated
+ */
+ public static Imitigation get(int value)
+ {
+ switch (value)
+ {
+ case SERIALIZABLE_VALUE: return SERIALIZABLE;
+ case PORTABLE_LEVEL_VALUE: return PORTABLE_LEVEL;
+ case NONE_VALUE: return NONE;
+ case UNSPECIFIED_VALUE: return UNSPECIFIED;
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final int value;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String name;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String literal;
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private Imitigation(int value, String name, String literal)
+ {
+ this.value = value;
+ this.name = name;
+ this.literal = literal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getValue()
+ {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName()
+ {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getLiteral()
+ {
+ return literal;
+ }
+
+ /**
+ * Returns the literal value of the enumerator, which is its string representation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString()
+ {
+ return literal;
+ }
+
+} //Imitigation
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/InFailureExpr.java b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/InFailureExpr.java
new file mode 100644
index 0000000..cd9f793
--- /dev/null
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/InFailureExpr.java
@@ -0,0 +1,43 @@
+/**
+ */
+package org.polarsys.chess.xtext.flaDsl;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>In Failure Expr</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.polarsys.chess.xtext.flaDsl.InFailureExpr#getFailures <em>Failures</em>}</li>
+ * </ul>
+ *
+ * @see org.polarsys.chess.xtext.flaDsl.FlaDslPackage#getInFailureExpr()
+ * @model
+ * @generated
+ */
+public interface InFailureExpr extends EObject
+{
+ /**
+ * Returns the value of the '<em><b>Failures</b></em>' containment reference list.
+ * The list contents are of type {@link org.polarsys.chess.xtext.flaDsl.Definitions}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Failures</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Failures</em>' containment reference list.
+ * @see org.polarsys.chess.xtext.flaDsl.FlaDslPackage#getInFailureExpr_Failures()
+ * @model containment="true"
+ * @generated
+ */
+ EList<Definitions> getFailures();
+
+} // InFailureExpr
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/InputExpression.java b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/InputExpression.java
new file mode 100644
index 0000000..bc84614
--- /dev/null
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/InputExpression.java
@@ -0,0 +1,80 @@
+/**
+ */
+package org.polarsys.chess.xtext.flaDsl;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.uml2.uml.Port;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Input Expression</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.polarsys.chess.xtext.flaDsl.InputExpression#getRef <em>Ref</em>}</li>
+ * <li>{@link org.polarsys.chess.xtext.flaDsl.InputExpression#getFailureExpr <em>Failure Expr</em>}</li>
+ * </ul>
+ *
+ * @see org.polarsys.chess.xtext.flaDsl.FlaDslPackage#getInputExpression()
+ * @model
+ * @generated
+ */
+public interface InputExpression extends EObject
+{
+ /**
+ * Returns the value of the '<em><b>Ref</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Ref</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Ref</em>' reference.
+ * @see #setRef(Port)
+ * @see org.polarsys.chess.xtext.flaDsl.FlaDslPackage#getInputExpression_Ref()
+ * @model
+ * @generated
+ */
+ Port getRef();
+
+ /**
+ * Sets the value of the '{@link org.polarsys.chess.xtext.flaDsl.InputExpression#getRef <em>Ref</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Ref</em>' reference.
+ * @see #getRef()
+ * @generated
+ */
+ void setRef(Port value);
+
+ /**
+ * Returns the value of the '<em><b>Failure Expr</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Failure Expr</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Failure Expr</em>' containment reference.
+ * @see #setFailureExpr(InFailureExpr)
+ * @see org.polarsys.chess.xtext.flaDsl.FlaDslPackage#getInputExpression_FailureExpr()
+ * @model containment="true"
+ * @generated
+ */
+ InFailureExpr getFailureExpr();
+
+ /**
+ * Sets the value of the '{@link org.polarsys.chess.xtext.flaDsl.InputExpression#getFailureExpr <em>Failure Expr</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Failure Expr</em>' containment reference.
+ * @see #getFailureExpr()
+ * @generated
+ */
+ void setFailureExpr(InFailureExpr value);
+
+} // InputExpression
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/Lhs.java b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/Lhs.java
new file mode 100644
index 0000000..2027474
--- /dev/null
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/Lhs.java
@@ -0,0 +1,43 @@
+/**
+ */
+package org.polarsys.chess.xtext.flaDsl;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Lhs</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.polarsys.chess.xtext.flaDsl.Lhs#getFailures <em>Failures</em>}</li>
+ * </ul>
+ *
+ * @see org.polarsys.chess.xtext.flaDsl.FlaDslPackage#getLhs()
+ * @model
+ * @generated
+ */
+public interface Lhs extends EObject
+{
+ /**
+ * Returns the value of the '<em><b>Failures</b></em>' containment reference list.
+ * The list contents are of type {@link org.polarsys.chess.xtext.flaDsl.InputExpression}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Failures</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Failures</em>' containment reference list.
+ * @see org.polarsys.chess.xtext.flaDsl.FlaDslPackage#getLhs_Failures()
+ * @model containment="true"
+ * @generated
+ */
+ EList<InputExpression> getFailures();
+
+} // Lhs
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/NoFailureDefinition.java b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/NoFailureDefinition.java
new file mode 100644
index 0000000..29095fd
--- /dev/null
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/NoFailureDefinition.java
@@ -0,0 +1,50 @@
+/**
+ */
+package org.polarsys.chess.xtext.flaDsl;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>No Failure Definition</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.polarsys.chess.xtext.flaDsl.NoFailureDefinition#getAcidMitigation <em>Acid Mitigation</em>}</li>
+ * </ul>
+ *
+ * @see org.polarsys.chess.xtext.flaDsl.FlaDslPackage#getNoFailureDefinition()
+ * @model
+ * @generated
+ */
+public interface NoFailureDefinition extends Definitions, ComplexNofailureDefinition
+{
+ /**
+ * Returns the value of the '<em><b>Acid Mitigation</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Acid Mitigation</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Acid Mitigation</em>' containment reference.
+ * @see #setAcidMitigation(ACIDMitigation)
+ * @see org.polarsys.chess.xtext.flaDsl.FlaDslPackage#getNoFailureDefinition_AcidMitigation()
+ * @model containment="true"
+ * @generated
+ */
+ ACIDMitigation getAcidMitigation();
+
+ /**
+ * Sets the value of the '{@link org.polarsys.chess.xtext.flaDsl.NoFailureDefinition#getAcidMitigation <em>Acid Mitigation</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Acid Mitigation</em>' containment reference.
+ * @see #getAcidMitigation()
+ * @generated
+ */
+ void setAcidMitigation(ACIDMitigation value);
+
+} // NoFailureDefinition
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/OutFailureExpr.java b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/OutFailureExpr.java
new file mode 100644
index 0000000..ed776c6
--- /dev/null
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/OutFailureExpr.java
@@ -0,0 +1,43 @@
+/**
+ */
+package org.polarsys.chess.xtext.flaDsl;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Out Failure Expr</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.polarsys.chess.xtext.flaDsl.OutFailureExpr#getFailures <em>Failures</em>}</li>
+ * </ul>
+ *
+ * @see org.polarsys.chess.xtext.flaDsl.FlaDslPackage#getOutFailureExpr()
+ * @model
+ * @generated
+ */
+public interface OutFailureExpr extends EObject
+{
+ /**
+ * Returns the value of the '<em><b>Failures</b></em>' containment reference list.
+ * The list contents are of type {@link org.polarsys.chess.xtext.flaDsl.Definitions}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Failures</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Failures</em>' containment reference list.
+ * @see org.polarsys.chess.xtext.flaDsl.FlaDslPackage#getOutFailureExpr_Failures()
+ * @model containment="true"
+ * @generated
+ */
+ EList<Definitions> getFailures();
+
+} // OutFailureExpr
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/OutputExpression.java b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/OutputExpression.java
new file mode 100644
index 0000000..01a45f5
--- /dev/null
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/OutputExpression.java
@@ -0,0 +1,80 @@
+/**
+ */
+package org.polarsys.chess.xtext.flaDsl;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.uml2.uml.Port;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Output Expression</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.polarsys.chess.xtext.flaDsl.OutputExpression#getRef <em>Ref</em>}</li>
+ * <li>{@link org.polarsys.chess.xtext.flaDsl.OutputExpression#getFailureExpr <em>Failure Expr</em>}</li>
+ * </ul>
+ *
+ * @see org.polarsys.chess.xtext.flaDsl.FlaDslPackage#getOutputExpression()
+ * @model
+ * @generated
+ */
+public interface OutputExpression extends EObject
+{
+ /**
+ * Returns the value of the '<em><b>Ref</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Ref</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Ref</em>' reference.
+ * @see #setRef(Port)
+ * @see org.polarsys.chess.xtext.flaDsl.FlaDslPackage#getOutputExpression_Ref()
+ * @model
+ * @generated
+ */
+ Port getRef();
+
+ /**
+ * Sets the value of the '{@link org.polarsys.chess.xtext.flaDsl.OutputExpression#getRef <em>Ref</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Ref</em>' reference.
+ * @see #getRef()
+ * @generated
+ */
+ void setRef(Port value);
+
+ /**
+ * Returns the value of the '<em><b>Failure Expr</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Failure Expr</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Failure Expr</em>' containment reference.
+ * @see #setFailureExpr(OutFailureExpr)
+ * @see org.polarsys.chess.xtext.flaDsl.FlaDslPackage#getOutputExpression_FailureExpr()
+ * @model containment="true"
+ * @generated
+ */
+ OutFailureExpr getFailureExpr();
+
+ /**
+ * Sets the value of the '{@link org.polarsys.chess.xtext.flaDsl.OutputExpression#getFailureExpr <em>Failure Expr</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Failure Expr</em>' containment reference.
+ * @see #getFailureExpr()
+ * @generated
+ */
+ void setFailureExpr(OutFailureExpr value);
+
+} // OutputExpression
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/Rhs.java b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/Rhs.java
new file mode 100644
index 0000000..94a9dac
--- /dev/null
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/Rhs.java
@@ -0,0 +1,43 @@
+/**
+ */
+package org.polarsys.chess.xtext.flaDsl;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Rhs</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.polarsys.chess.xtext.flaDsl.Rhs#getFailures <em>Failures</em>}</li>
+ * </ul>
+ *
+ * @see org.polarsys.chess.xtext.flaDsl.FlaDslPackage#getRhs()
+ * @model
+ * @generated
+ */
+public interface Rhs extends EObject
+{
+ /**
+ * Returns the value of the '<em><b>Failures</b></em>' containment reference list.
+ * The list contents are of type {@link org.polarsys.chess.xtext.flaDsl.OutputExpression}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Failures</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Failures</em>' containment reference list.
+ * @see org.polarsys.chess.xtext.flaDsl.FlaDslPackage#getRhs_Failures()
+ * @model containment="true"
+ * @generated
+ */
+ EList<OutputExpression> getFailures();
+
+} // Rhs
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/VariableDefinition.java b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/VariableDefinition.java
new file mode 100644
index 0000000..507e359
--- /dev/null
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/VariableDefinition.java
@@ -0,0 +1,50 @@
+/**
+ */
+package org.polarsys.chess.xtext.flaDsl;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Variable Definition</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.polarsys.chess.xtext.flaDsl.VariableDefinition#getVariableName <em>Variable Name</em>}</li>
+ * </ul>
+ *
+ * @see org.polarsys.chess.xtext.flaDsl.FlaDslPackage#getVariableDefinition()
+ * @model
+ * @generated
+ */
+public interface VariableDefinition extends Definitions
+{
+ /**
+ * Returns the value of the '<em><b>Variable Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Variable Name</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Variable Name</em>' attribute.
+ * @see #setVariableName(String)
+ * @see org.polarsys.chess.xtext.flaDsl.FlaDslPackage#getVariableDefinition_VariableName()
+ * @model
+ * @generated
+ */
+ String getVariableName();
+
+ /**
+ * Sets the value of the '{@link org.polarsys.chess.xtext.flaDsl.VariableDefinition#getVariableName <em>Variable Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Variable Name</em>' attribute.
+ * @see #getVariableName()
+ * @generated
+ */
+ void setVariableName(String value);
+
+} // VariableDefinition
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/WildcardDefinition.java b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/WildcardDefinition.java
new file mode 100644
index 0000000..f7841d2
--- /dev/null
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/WildcardDefinition.java
@@ -0,0 +1,18 @@
+/**
+ */
+package org.polarsys.chess.xtext.flaDsl;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Wildcard Definition</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.polarsys.chess.xtext.flaDsl.FlaDslPackage#getWildcardDefinition()
+ * @model
+ * @generated
+ */
+public interface WildcardDefinition extends Definitions
+{
+} // WildcardDefinition
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/impl/ACIDMitigationImpl.java b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/impl/ACIDMitigationImpl.java
new file mode 100644
index 0000000..215e3a2
--- /dev/null
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/impl/ACIDMitigationImpl.java
@@ -0,0 +1,349 @@
+/**
+ */
+package org.polarsys.chess.xtext.flaDsl.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.polarsys.chess.xtext.flaDsl.ACIDMitigation;
+import org.polarsys.chess.xtext.flaDsl.Amitigation;
+import org.polarsys.chess.xtext.flaDsl.Cmitigation;
+import org.polarsys.chess.xtext.flaDsl.Dmitigation;
+import org.polarsys.chess.xtext.flaDsl.FlaDslPackage;
+import org.polarsys.chess.xtext.flaDsl.Imitigation;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>ACID Mitigation</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.polarsys.chess.xtext.flaDsl.impl.ACIDMitigationImpl#getA <em>A</em>}</li>
+ * <li>{@link org.polarsys.chess.xtext.flaDsl.impl.ACIDMitigationImpl#getC <em>C</em>}</li>
+ * <li>{@link org.polarsys.chess.xtext.flaDsl.impl.ACIDMitigationImpl#getI <em>I</em>}</li>
+ * <li>{@link org.polarsys.chess.xtext.flaDsl.impl.ACIDMitigationImpl#getD <em>D</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class ACIDMitigationImpl extends MinimalEObjectImpl.Container implements ACIDMitigation
+{
+ /**
+ * The default value of the '{@link #getA() <em>A</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getA()
+ * @generated
+ * @ordered
+ */
+ protected static final Amitigation A_EDEFAULT = Amitigation.ALL_OR_NOTHING;
+
+ /**
+ * The cached value of the '{@link #getA() <em>A</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getA()
+ * @generated
+ * @ordered
+ */
+ protected Amitigation a = A_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getC() <em>C</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getC()
+ * @generated
+ * @ordered
+ */
+ protected static final Cmitigation C_EDEFAULT = Cmitigation.FULL_CONSISTENCY;
+
+ /**
+ * The cached value of the '{@link #getC() <em>C</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getC()
+ * @generated
+ * @ordered
+ */
+ protected Cmitigation c = C_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getI() <em>I</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getI()
+ * @generated
+ * @ordered
+ */
+ protected static final Imitigation I_EDEFAULT = Imitigation.SERIALIZABLE;
+
+ /**
+ * The cached value of the '{@link #getI() <em>I</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getI()
+ * @generated
+ * @ordered
+ */
+ protected Imitigation i = I_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getD() <em>D</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getD()
+ * @generated
+ * @ordered
+ */
+ protected static final Dmitigation D_EDEFAULT = Dmitigation.NO_LOSS;
+
+ /**
+ * The cached value of the '{@link #getD() <em>D</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getD()
+ * @generated
+ * @ordered
+ */
+ protected Dmitigation d = D_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ACIDMitigationImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return FlaDslPackage.Literals.ACID_MITIGATION;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Amitigation getA()
+ {
+ return a;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setA(Amitigation newA)
+ {
+ Amitigation oldA = a;
+ a = newA == null ? A_EDEFAULT : newA;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FlaDslPackage.ACID_MITIGATION__A, oldA, a));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Cmitigation getC()
+ {
+ return c;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setC(Cmitigation newC)
+ {
+ Cmitigation oldC = c;
+ c = newC == null ? C_EDEFAULT : newC;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FlaDslPackage.ACID_MITIGATION__C, oldC, c));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Imitigation getI()
+ {
+ return i;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setI(Imitigation newI)
+ {
+ Imitigation oldI = i;
+ i = newI == null ? I_EDEFAULT : newI;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FlaDslPackage.ACID_MITIGATION__I, oldI, i));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Dmitigation getD()
+ {
+ return d;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setD(Dmitigation newD)
+ {
+ Dmitigation oldD = d;
+ d = newD == null ? D_EDEFAULT : newD;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FlaDslPackage.ACID_MITIGATION__D, oldD, d));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case FlaDslPackage.ACID_MITIGATION__A:
+ return getA();
+ case FlaDslPackage.ACID_MITIGATION__C:
+ return getC();
+ case FlaDslPackage.ACID_MITIGATION__I:
+ return getI();
+ case FlaDslPackage.ACID_MITIGATION__D:
+ return getD();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case FlaDslPackage.ACID_MITIGATION__A:
+ setA((Amitigation)newValue);
+ return;
+ case FlaDslPackage.ACID_MITIGATION__C:
+ setC((Cmitigation)newValue);
+ return;
+ case FlaDslPackage.ACID_MITIGATION__I:
+ setI((Imitigation)newValue);
+ return;
+ case FlaDslPackage.ACID_MITIGATION__D:
+ setD((Dmitigation)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case FlaDslPackage.ACID_MITIGATION__A:
+ setA(A_EDEFAULT);
+ return;
+ case FlaDslPackage.ACID_MITIGATION__C:
+ setC(C_EDEFAULT);
+ return;
+ case FlaDslPackage.ACID_MITIGATION__I:
+ setI(I_EDEFAULT);
+ return;
+ case FlaDslPackage.ACID_MITIGATION__D:
+ setD(D_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case FlaDslPackage.ACID_MITIGATION__A:
+ return a != A_EDEFAULT;
+ case FlaDslPackage.ACID_MITIGATION__C:
+ return c != C_EDEFAULT;
+ case FlaDslPackage.ACID_MITIGATION__I:
+ return i != I_EDEFAULT;
+ case FlaDslPackage.ACID_MITIGATION__D:
+ return d != D_EDEFAULT;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString()
+ {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (a: ");
+ result.append(a);
+ result.append(", c: ");
+ result.append(c);
+ result.append(", i: ");
+ result.append(i);
+ result.append(", d: ");
+ result.append(d);
+ result.append(')');
+ return result.toString();
+ }
+
+} //ACIDMitigationImpl
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/impl/ACIDavoidableImpl.java b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/impl/ACIDavoidableImpl.java
new file mode 100644
index 0000000..b33a393
--- /dev/null
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/impl/ACIDavoidableImpl.java
@@ -0,0 +1,349 @@
+/**
+ */
+package org.polarsys.chess.xtext.flaDsl.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.polarsys.chess.xtext.flaDsl.ACIDavoidable;
+import org.polarsys.chess.xtext.flaDsl.Aavoidable;
+import org.polarsys.chess.xtext.flaDsl.Cavoidable;
+import org.polarsys.chess.xtext.flaDsl.Davoidable;
+import org.polarsys.chess.xtext.flaDsl.FlaDslPackage;
+import org.polarsys.chess.xtext.flaDsl.Iavoidable;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>ACI Davoidable</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.polarsys.chess.xtext.flaDsl.impl.ACIDavoidableImpl#getA <em>A</em>}</li>
+ * <li>{@link org.polarsys.chess.xtext.flaDsl.impl.ACIDavoidableImpl#getC <em>C</em>}</li>
+ * <li>{@link org.polarsys.chess.xtext.flaDsl.impl.ACIDavoidableImpl#getI <em>I</em>}</li>
+ * <li>{@link org.polarsys.chess.xtext.flaDsl.impl.ACIDavoidableImpl#getD <em>D</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class ACIDavoidableImpl extends MinimalEObjectImpl.Container implements ACIDavoidable
+{
+ /**
+ * The default value of the '{@link #getA() <em>A</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getA()
+ * @generated
+ * @ordered
+ */
+ protected static final Aavoidable A_EDEFAULT = Aavoidable.INCOMPLETION;
+
+ /**
+ * The cached value of the '{@link #getA() <em>A</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getA()
+ * @generated
+ * @ordered
+ */
+ protected Aavoidable a = A_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getC() <em>C</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getC()
+ * @generated
+ * @ordered
+ */
+ protected static final Cavoidable C_EDEFAULT = Cavoidable.INCONSISTENCY;
+
+ /**
+ * The cached value of the '{@link #getC() <em>C</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getC()
+ * @generated
+ * @ordered
+ */
+ protected Cavoidable c = C_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getI() <em>I</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getI()
+ * @generated
+ * @ordered
+ */
+ protected static final Iavoidable I_EDEFAULT = Iavoidable.INTERFERENCE;
+
+ /**
+ * The cached value of the '{@link #getI() <em>I</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getI()
+ * @generated
+ * @ordered
+ */
+ protected Iavoidable i = I_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getD() <em>D</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getD()
+ * @generated
+ * @ordered
+ */
+ protected static final Davoidable D_EDEFAULT = Davoidable.IMPERMANENCE;
+
+ /**
+ * The cached value of the '{@link #getD() <em>D</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getD()
+ * @generated
+ * @ordered
+ */
+ protected Davoidable d = D_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ACIDavoidableImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return FlaDslPackage.Literals.ACI_DAVOIDABLE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Aavoidable getA()
+ {
+ return a;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setA(Aavoidable newA)
+ {
+ Aavoidable oldA = a;
+ a = newA == null ? A_EDEFAULT : newA;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FlaDslPackage.ACI_DAVOIDABLE__A, oldA, a));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Cavoidable getC()
+ {
+ return c;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setC(Cavoidable newC)
+ {
+ Cavoidable oldC = c;
+ c = newC == null ? C_EDEFAULT : newC;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FlaDslPackage.ACI_DAVOIDABLE__C, oldC, c));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Iavoidable getI()
+ {
+ return i;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setI(Iavoidable newI)
+ {
+ Iavoidable oldI = i;
+ i = newI == null ? I_EDEFAULT : newI;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FlaDslPackage.ACI_DAVOIDABLE__I, oldI, i));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Davoidable getD()
+ {
+ return d;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setD(Davoidable newD)
+ {
+ Davoidable oldD = d;
+ d = newD == null ? D_EDEFAULT : newD;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FlaDslPackage.ACI_DAVOIDABLE__D, oldD, d));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case FlaDslPackage.ACI_DAVOIDABLE__A:
+ return getA();
+ case FlaDslPackage.ACI_DAVOIDABLE__C:
+ return getC();
+ case FlaDslPackage.ACI_DAVOIDABLE__I:
+ return getI();
+ case FlaDslPackage.ACI_DAVOIDABLE__D:
+ return getD();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case FlaDslPackage.ACI_DAVOIDABLE__A:
+ setA((Aavoidable)newValue);
+ return;
+ case FlaDslPackage.ACI_DAVOIDABLE__C:
+ setC((Cavoidable)newValue);
+ return;
+ case FlaDslPackage.ACI_DAVOIDABLE__I:
+ setI((Iavoidable)newValue);
+ return;
+ case FlaDslPackage.ACI_DAVOIDABLE__D:
+ setD((Davoidable)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case FlaDslPackage.ACI_DAVOIDABLE__A:
+ setA(A_EDEFAULT);
+ return;
+ case FlaDslPackage.ACI_DAVOIDABLE__C:
+ setC(C_EDEFAULT);
+ return;
+ case FlaDslPackage.ACI_DAVOIDABLE__I:
+ setI(I_EDEFAULT);
+ return;
+ case FlaDslPackage.ACI_DAVOIDABLE__D:
+ setD(D_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case FlaDslPackage.ACI_DAVOIDABLE__A:
+ return a != A_EDEFAULT;
+ case FlaDslPackage.ACI_DAVOIDABLE__C:
+ return c != C_EDEFAULT;
+ case FlaDslPackage.ACI_DAVOIDABLE__I:
+ return i != I_EDEFAULT;
+ case FlaDslPackage.ACI_DAVOIDABLE__D:
+ return d != D_EDEFAULT;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString()
+ {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (a: ");
+ result.append(a);
+ result.append(", c: ");
+ result.append(c);
+ result.append(", i: ");
+ result.append(i);
+ result.append(", d: ");
+ result.append(d);
+ result.append(')');
+ return result.toString();
+ }
+
+} //ACIDavoidableImpl
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/impl/BehaviourImpl.java b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/impl/BehaviourImpl.java
new file mode 100644
index 0000000..d81ff2e
--- /dev/null
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/impl/BehaviourImpl.java
@@ -0,0 +1,167 @@
+/**
+ */
+package org.polarsys.chess.xtext.flaDsl.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.polarsys.chess.xtext.flaDsl.Behaviour;
+import org.polarsys.chess.xtext.flaDsl.Expression;
+import org.polarsys.chess.xtext.flaDsl.FlaDslPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Behaviour</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.polarsys.chess.xtext.flaDsl.impl.BehaviourImpl#getRules <em>Rules</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class BehaviourImpl extends MinimalEObjectImpl.Container implements Behaviour
+{
+ /**
+ * The cached value of the '{@link #getRules() <em>Rules</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getRules()
+ * @generated
+ * @ordered
+ */
+ protected EList<Expression> rules;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected BehaviourImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return FlaDslPackage.Literals.BEHAVIOUR;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<Expression> getRules()
+ {
+ if (rules == null)
+ {
+ rules = new EObjectContainmentEList<Expression>(Expression.class, this, FlaDslPackage.BEHAVIOUR__RULES);
+ }
+ return rules;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case FlaDslPackage.BEHAVIOUR__RULES:
+ return ((InternalEList<?>)getRules()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case FlaDslPackage.BEHAVIOUR__RULES:
+ return getRules();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case FlaDslPackage.BEHAVIOUR__RULES:
+ getRules().clear();
+ getRules().addAll((Collection<? extends Expression>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case FlaDslPackage.BEHAVIOUR__RULES:
+ getRules().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case FlaDslPackage.BEHAVIOUR__RULES:
+ return rules != null && !rules.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //BehaviourImpl
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/impl/ComplexNofailureDefinitionImpl.java b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/impl/ComplexNofailureDefinitionImpl.java
new file mode 100644
index 0000000..91737e4
--- /dev/null
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/impl/ComplexNofailureDefinitionImpl.java
@@ -0,0 +1,40 @@
+/**
+ */
+package org.polarsys.chess.xtext.flaDsl.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.polarsys.chess.xtext.flaDsl.ComplexNofailureDefinition;
+import org.polarsys.chess.xtext.flaDsl.FlaDslPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Complex Nofailure Definition</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class ComplexNofailureDefinitionImpl extends DefinitionsImpl implements ComplexNofailureDefinition
+{
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ComplexNofailureDefinitionImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return FlaDslPackage.Literals.COMPLEX_NOFAILURE_DEFINITION;
+ }
+
+} //ComplexNofailureDefinitionImpl
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/impl/DefinitionsImpl.java b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/impl/DefinitionsImpl.java
new file mode 100644
index 0000000..4166a3f
--- /dev/null
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/impl/DefinitionsImpl.java
@@ -0,0 +1,42 @@
+/**
+ */
+package org.polarsys.chess.xtext.flaDsl.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.polarsys.chess.xtext.flaDsl.Definitions;
+import org.polarsys.chess.xtext.flaDsl.FlaDslPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Definitions</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class DefinitionsImpl extends MinimalEObjectImpl.Container implements Definitions
+{
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected DefinitionsImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return FlaDslPackage.Literals.DEFINITIONS;
+ }
+
+} //DefinitionsImpl
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/impl/ExpressionImpl.java b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/impl/ExpressionImpl.java
new file mode 100644
index 0000000..3f2b608
--- /dev/null
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/impl/ExpressionImpl.java
@@ -0,0 +1,266 @@
+/**
+ */
+package org.polarsys.chess.xtext.flaDsl.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.polarsys.chess.xtext.flaDsl.Expression;
+import org.polarsys.chess.xtext.flaDsl.FlaDslPackage;
+import org.polarsys.chess.xtext.flaDsl.Lhs;
+import org.polarsys.chess.xtext.flaDsl.Rhs;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Expression</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.polarsys.chess.xtext.flaDsl.impl.ExpressionImpl#getLhs <em>Lhs</em>}</li>
+ * <li>{@link org.polarsys.chess.xtext.flaDsl.impl.ExpressionImpl#getRhs <em>Rhs</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class ExpressionImpl extends MinimalEObjectImpl.Container implements Expression
+{
+ /**
+ * The cached value of the '{@link #getLhs() <em>Lhs</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getLhs()
+ * @generated
+ * @ordered
+ */
+ protected Lhs lhs;
+
+ /**
+ * The cached value of the '{@link #getRhs() <em>Rhs</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getRhs()
+ * @generated
+ * @ordered
+ */
+ protected Rhs rhs;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ExpressionImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return FlaDslPackage.Literals.EXPRESSION;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Lhs getLhs()
+ {
+ return lhs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetLhs(Lhs newLhs, NotificationChain msgs)
+ {
+ Lhs oldLhs = lhs;
+ lhs = newLhs;
+ if (eNotificationRequired())
+ {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FlaDslPackage.EXPRESSION__LHS, oldLhs, newLhs);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setLhs(Lhs newLhs)
+ {
+ if (newLhs != lhs)
+ {
+ NotificationChain msgs = null;
+ if (lhs != null)
+ msgs = ((InternalEObject)lhs).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FlaDslPackage.EXPRESSION__LHS, null, msgs);
+ if (newLhs != null)
+ msgs = ((InternalEObject)newLhs).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FlaDslPackage.EXPRESSION__LHS, null, msgs);
+ msgs = basicSetLhs(newLhs, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FlaDslPackage.EXPRESSION__LHS, newLhs, newLhs));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Rhs getRhs()
+ {
+ return rhs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetRhs(Rhs newRhs, NotificationChain msgs)
+ {
+ Rhs oldRhs = rhs;
+ rhs = newRhs;
+ if (eNotificationRequired())
+ {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FlaDslPackage.EXPRESSION__RHS, oldRhs, newRhs);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setRhs(Rhs newRhs)
+ {
+ if (newRhs != rhs)
+ {
+ NotificationChain msgs = null;
+ if (rhs != null)
+ msgs = ((InternalEObject)rhs).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FlaDslPackage.EXPRESSION__RHS, null, msgs);
+ if (newRhs != null)
+ msgs = ((InternalEObject)newRhs).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FlaDslPackage.EXPRESSION__RHS, null, msgs);
+ msgs = basicSetRhs(newRhs, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FlaDslPackage.EXPRESSION__RHS, newRhs, newRhs));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case FlaDslPackage.EXPRESSION__LHS:
+ return basicSetLhs(null, msgs);
+ case FlaDslPackage.EXPRESSION__RHS:
+ return basicSetRhs(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case FlaDslPackage.EXPRESSION__LHS:
+ return getLhs();
+ case FlaDslPackage.EXPRESSION__RHS:
+ return getRhs();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case FlaDslPackage.EXPRESSION__LHS:
+ setLhs((Lhs)newValue);
+ return;
+ case FlaDslPackage.EXPRESSION__RHS:
+ setRhs((Rhs)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case FlaDslPackage.EXPRESSION__LHS:
+ setLhs((Lhs)null);
+ return;
+ case FlaDslPackage.EXPRESSION__RHS:
+ setRhs((Rhs)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case FlaDslPackage.EXPRESSION__LHS:
+ return lhs != null;
+ case FlaDslPackage.EXPRESSION__RHS:
+ return rhs != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //ExpressionImpl
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/impl/FailureDefinitionImpl.java b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/impl/FailureDefinitionImpl.java
new file mode 100644
index 0000000..fe7ed2c
--- /dev/null
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/impl/FailureDefinitionImpl.java
@@ -0,0 +1,265 @@
+/**
+ */
+package org.polarsys.chess.xtext.flaDsl.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.polarsys.chess.xtext.flaDsl.ACIDavoidable;
+import org.polarsys.chess.xtext.flaDsl.FailureDefinition;
+import org.polarsys.chess.xtext.flaDsl.FailureType;
+import org.polarsys.chess.xtext.flaDsl.FlaDslPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Failure Definition</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.polarsys.chess.xtext.flaDsl.impl.FailureDefinitionImpl#getType <em>Type</em>}</li>
+ * <li>{@link org.polarsys.chess.xtext.flaDsl.impl.FailureDefinitionImpl#getAcidAvoidable <em>Acid Avoidable</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class FailureDefinitionImpl extends DefinitionsImpl implements FailureDefinition
+{
+ /**
+ * The default value of the '{@link #getType() <em>Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getType()
+ * @generated
+ * @ordered
+ */
+ protected static final FailureType TYPE_EDEFAULT = FailureType.NO_FAILURE;
+
+ /**
+ * The cached value of the '{@link #getType() <em>Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getType()
+ * @generated
+ * @ordered
+ */
+ protected FailureType type = TYPE_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getAcidAvoidable() <em>Acid Avoidable</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getAcidAvoidable()
+ * @generated
+ * @ordered
+ */
+ protected ACIDavoidable acidAvoidable;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected FailureDefinitionImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return FlaDslPackage.Literals.FAILURE_DEFINITION;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public FailureType getType()
+ {
+ return type;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setType(FailureType newType)
+ {
+ FailureType oldType = type;
+ type = newType == null ? TYPE_EDEFAULT : newType;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FlaDslPackage.FAILURE_DEFINITION__TYPE, oldType, type));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ACIDavoidable getAcidAvoidable()
+ {
+ return acidAvoidable;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetAcidAvoidable(ACIDavoidable newAcidAvoidable, NotificationChain msgs)
+ {
+ ACIDavoidable oldAcidAvoidable = acidAvoidable;
+ acidAvoidable = newAcidAvoidable;
+ if (eNotificationRequired())
+ {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FlaDslPackage.FAILURE_DEFINITION__ACID_AVOIDABLE, oldAcidAvoidable, newAcidAvoidable);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setAcidAvoidable(ACIDavoidable newAcidAvoidable)
+ {
+ if (newAcidAvoidable != acidAvoidable)
+ {
+ NotificationChain msgs = null;
+ if (acidAvoidable != null)
+ msgs = ((InternalEObject)acidAvoidable).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FlaDslPackage.FAILURE_DEFINITION__ACID_AVOIDABLE, null, msgs);
+ if (newAcidAvoidable != null)
+ msgs = ((InternalEObject)newAcidAvoidable).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FlaDslPackage.FAILURE_DEFINITION__ACID_AVOIDABLE, null, msgs);
+ msgs = basicSetAcidAvoidable(newAcidAvoidable, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FlaDslPackage.FAILURE_DEFINITION__ACID_AVOIDABLE, newAcidAvoidable, newAcidAvoidable));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case FlaDslPackage.FAILURE_DEFINITION__ACID_AVOIDABLE:
+ return basicSetAcidAvoidable(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case FlaDslPackage.FAILURE_DEFINITION__TYPE:
+ return getType();
+ case FlaDslPackage.FAILURE_DEFINITION__ACID_AVOIDABLE:
+ return getAcidAvoidable();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case FlaDslPackage.FAILURE_DEFINITION__TYPE:
+ setType((FailureType)newValue);
+ return;
+ case FlaDslPackage.FAILURE_DEFINITION__ACID_AVOIDABLE:
+ setAcidAvoidable((ACIDavoidable)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case FlaDslPackage.FAILURE_DEFINITION__TYPE:
+ setType(TYPE_EDEFAULT);
+ return;
+ case FlaDslPackage.FAILURE_DEFINITION__ACID_AVOIDABLE:
+ setAcidAvoidable((ACIDavoidable)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case FlaDslPackage.FAILURE_DEFINITION__TYPE:
+ return type != TYPE_EDEFAULT;
+ case FlaDslPackage.FAILURE_DEFINITION__ACID_AVOIDABLE:
+ return acidAvoidable != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString()
+ {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (type: ");
+ result.append(type);
+ result.append(')');
+ return result.toString();
+ }
+
+} //FailureDefinitionImpl
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/impl/FlaDslFactoryImpl.java b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/impl/FlaDslFactoryImpl.java
new file mode 100644
index 0000000..fecc9d3
--- /dev/null
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/impl/FlaDslFactoryImpl.java
@@ -0,0 +1,551 @@
+/**
+ */
+package org.polarsys.chess.xtext.flaDsl.impl;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EDataType;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.impl.EFactoryImpl;
+
+import org.eclipse.emf.ecore.plugin.EcorePlugin;
+
+import org.polarsys.chess.xtext.flaDsl.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Factory</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class FlaDslFactoryImpl extends EFactoryImpl implements FlaDslFactory
+{
+ /**
+ * Creates the default factory implementation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static FlaDslFactory init()
+ {
+ try
+ {
+ FlaDslFactory theFlaDslFactory = (FlaDslFactory)EPackage.Registry.INSTANCE.getEFactory(FlaDslPackage.eNS_URI);
+ if (theFlaDslFactory != null)
+ {
+ return theFlaDslFactory;
+ }
+ }
+ catch (Exception exception)
+ {
+ EcorePlugin.INSTANCE.log(exception);
+ }
+ return new FlaDslFactoryImpl();
+ }
+
+ /**
+ * Creates an instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public FlaDslFactoryImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EObject create(EClass eClass)
+ {
+ switch (eClass.getClassifierID())
+ {
+ case FlaDslPackage.BEHAVIOUR: return createBehaviour();
+ case FlaDslPackage.EXPRESSION: return createExpression();
+ case FlaDslPackage.LHS: return createLhs();
+ case FlaDslPackage.RHS: return createRhs();
+ case FlaDslPackage.INPUT_EXPRESSION: return createInputExpression();
+ case FlaDslPackage.OUTPUT_EXPRESSION: return createOutputExpression();
+ case FlaDslPackage.IN_FAILURE_EXPR: return createInFailureExpr();
+ case FlaDslPackage.OUT_FAILURE_EXPR: return createOutFailureExpr();
+ case FlaDslPackage.DEFINITIONS: return createDefinitions();
+ case FlaDslPackage.FAILURE_DEFINITION: return createFailureDefinition();
+ case FlaDslPackage.NO_FAILURE_DEFINITION: return createNoFailureDefinition();
+ case FlaDslPackage.COMPLEX_NOFAILURE_DEFINITION: return createComplexNofailureDefinition();
+ case FlaDslPackage.WILDCARD_DEFINITION: return createWildcardDefinition();
+ case FlaDslPackage.VARIABLE_DEFINITION: return createVariableDefinition();
+ case FlaDslPackage.ACI_DAVOIDABLE: return createACIDavoidable();
+ case FlaDslPackage.ACID_MITIGATION: return createACIDMitigation();
+ default:
+ throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object createFromString(EDataType eDataType, String initialValue)
+ {
+ switch (eDataType.getClassifierID())
+ {
+ case FlaDslPackage.FAILURE_TYPE:
+ return createFailureTypeFromString(eDataType, initialValue);
+ case FlaDslPackage.AAVOIDABLE:
+ return createAavoidableFromString(eDataType, initialValue);
+ case FlaDslPackage.CAVOIDABLE:
+ return createCavoidableFromString(eDataType, initialValue);
+ case FlaDslPackage.IAVOIDABLE:
+ return createIavoidableFromString(eDataType, initialValue);
+ case FlaDslPackage.DAVOIDABLE:
+ return createDavoidableFromString(eDataType, initialValue);
+ case FlaDslPackage.AMITIGATION:
+ return createAmitigationFromString(eDataType, initialValue);
+ case FlaDslPackage.CMITIGATION:
+ return createCmitigationFromString(eDataType, initialValue);
+ case FlaDslPackage.IMITIGATION:
+ return createImitigationFromString(eDataType, initialValue);
+ case FlaDslPackage.DMITIGATION:
+ return createDmitigationFromString(eDataType, initialValue);
+ default:
+ throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String convertToString(EDataType eDataType, Object instanceValue)
+ {
+ switch (eDataType.getClassifierID())
+ {
+ case FlaDslPackage.FAILURE_TYPE:
+ return convertFailureTypeToString(eDataType, instanceValue);
+ case FlaDslPackage.AAVOIDABLE:
+ return convertAavoidableToString(eDataType, instanceValue);
+ case FlaDslPackage.CAVOIDABLE:
+ return convertCavoidableToString(eDataType, instanceValue);
+ case FlaDslPackage.IAVOIDABLE:
+ return convertIavoidableToString(eDataType, instanceValue);
+ case FlaDslPackage.DAVOIDABLE:
+ return convertDavoidableToString(eDataType, instanceValue);
+ case FlaDslPackage.AMITIGATION:
+ return convertAmitigationToString(eDataType, instanceValue);
+ case FlaDslPackage.CMITIGATION:
+ return convertCmitigationToString(eDataType, instanceValue);
+ case FlaDslPackage.IMITIGATION:
+ return convertImitigationToString(eDataType, instanceValue);
+ case FlaDslPackage.DMITIGATION:
+ return convertDmitigationToString(eDataType, instanceValue);
+ default:
+ throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Behaviour createBehaviour()
+ {
+ BehaviourImpl behaviour = new BehaviourImpl();
+ return behaviour;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Expression createExpression()
+ {
+ ExpressionImpl expression = new ExpressionImpl();
+ return expression;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Lhs createLhs()
+ {
+ LhsImpl lhs = new LhsImpl();
+ return lhs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Rhs createRhs()
+ {
+ RhsImpl rhs = new RhsImpl();
+ return rhs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public InputExpression createInputExpression()
+ {
+ InputExpressionImpl inputExpression = new InputExpressionImpl();
+ return inputExpression;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public OutputExpression createOutputExpression()
+ {
+ OutputExpressionImpl outputExpression = new OutputExpressionImpl();
+ return outputExpression;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public InFailureExpr createInFailureExpr()
+ {
+ InFailureExprImpl inFailureExpr = new InFailureExprImpl();
+ return inFailureExpr;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public OutFailureExpr createOutFailureExpr()
+ {
+ OutFailureExprImpl outFailureExpr = new OutFailureExprImpl();
+ return outFailureExpr;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Definitions createDefinitions()
+ {
+ DefinitionsImpl definitions = new DefinitionsImpl();
+ return definitions;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public FailureDefinition createFailureDefinition()
+ {
+ FailureDefinitionImpl failureDefinition = new FailureDefinitionImpl();
+ return failureDefinition;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NoFailureDefinition createNoFailureDefinition()
+ {
+ NoFailureDefinitionImpl noFailureDefinition = new NoFailureDefinitionImpl();
+ return noFailureDefinition;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ComplexNofailureDefinition createComplexNofailureDefinition()
+ {
+ ComplexNofailureDefinitionImpl complexNofailureDefinition = new ComplexNofailureDefinitionImpl();
+ return complexNofailureDefinition;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public WildcardDefinition createWildcardDefinition()
+ {
+ WildcardDefinitionImpl wildcardDefinition = new WildcardDefinitionImpl();
+ return wildcardDefinition;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public VariableDefinition createVariableDefinition()
+ {
+ VariableDefinitionImpl variableDefinition = new VariableDefinitionImpl();
+ return variableDefinition;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ACIDavoidable createACIDavoidable()
+ {
+ ACIDavoidableImpl aciDavoidable = new ACIDavoidableImpl();
+ return aciDavoidable;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ACIDMitigation createACIDMitigation()
+ {
+ ACIDMitigationImpl acidMitigation = new ACIDMitigationImpl();
+ return acidMitigation;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public FailureType createFailureTypeFromString(EDataType eDataType, String initialValue)
+ {
+ FailureType result = FailureType.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertFailureTypeToString(EDataType eDataType, Object instanceValue)
+ {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Aavoidable createAavoidableFromString(EDataType eDataType, String initialValue)
+ {
+ Aavoidable result = Aavoidable.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertAavoidableToString(EDataType eDataType, Object instanceValue)
+ {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Cavoidable createCavoidableFromString(EDataType eDataType, String initialValue)
+ {
+ Cavoidable result = Cavoidable.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertCavoidableToString(EDataType eDataType, Object instanceValue)
+ {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Iavoidable createIavoidableFromString(EDataType eDataType, String initialValue)
+ {
+ Iavoidable result = Iavoidable.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertIavoidableToString(EDataType eDataType, Object instanceValue)
+ {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Davoidable createDavoidableFromString(EDataType eDataType, String initialValue)
+ {
+ Davoidable result = Davoidable.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertDavoidableToString(EDataType eDataType, Object instanceValue)
+ {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Amitigation createAmitigationFromString(EDataType eDataType, String initialValue)
+ {
+ Amitigation result = Amitigation.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertAmitigationToString(EDataType eDataType, Object instanceValue)
+ {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Cmitigation createCmitigationFromString(EDataType eDataType, String initialValue)
+ {
+ Cmitigation result = Cmitigation.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertCmitigationToString(EDataType eDataType, Object instanceValue)
+ {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Imitigation createImitigationFromString(EDataType eDataType, String initialValue)
+ {
+ Imitigation result = Imitigation.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertImitigationToString(EDataType eDataType, Object instanceValue)
+ {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Dmitigation createDmitigationFromString(EDataType eDataType, String initialValue)
+ {
+ Dmitigation result = Dmitigation.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertDmitigationToString(EDataType eDataType, Object instanceValue)
+ {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public FlaDslPackage getFlaDslPackage()
+ {
+ return (FlaDslPackage)getEPackage();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @deprecated
+ * @generated
+ */
+ @Deprecated
+ public static FlaDslPackage getPackage()
+ {
+ return FlaDslPackage.eINSTANCE;
+ }
+
+} //FlaDslFactoryImpl
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/impl/FlaDslPackageImpl.java b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/impl/FlaDslPackageImpl.java
new file mode 100644
index 0000000..74c51e6
--- /dev/null
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/impl/FlaDslPackageImpl.java
@@ -0,0 +1,1026 @@
+/**
+ */
+package org.polarsys.chess.xtext.flaDsl.impl;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EEnum;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.EcorePackage;
+
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+
+import org.eclipse.uml2.uml.UMLPackage;
+
+import org.polarsys.chess.xtext.flaDsl.ACIDMitigation;
+import org.polarsys.chess.xtext.flaDsl.ACIDavoidable;
+import org.polarsys.chess.xtext.flaDsl.Aavoidable;
+import org.polarsys.chess.xtext.flaDsl.Amitigation;
+import org.polarsys.chess.xtext.flaDsl.Behaviour;
+import org.polarsys.chess.xtext.flaDsl.Cavoidable;
+import org.polarsys.chess.xtext.flaDsl.Cmitigation;
+import org.polarsys.chess.xtext.flaDsl.ComplexNofailureDefinition;
+import org.polarsys.chess.xtext.flaDsl.Davoidable;
+import org.polarsys.chess.xtext.flaDsl.Definitions;
+import org.polarsys.chess.xtext.flaDsl.Dmitigation;
+import org.polarsys.chess.xtext.flaDsl.Expression;
+import org.polarsys.chess.xtext.flaDsl.FailureDefinition;
+import org.polarsys.chess.xtext.flaDsl.FailureType;
+import org.polarsys.chess.xtext.flaDsl.FlaDslFactory;
+import org.polarsys.chess.xtext.flaDsl.FlaDslPackage;
+import org.polarsys.chess.xtext.flaDsl.Iavoidable;
+import org.polarsys.chess.xtext.flaDsl.Imitigation;
+import org.polarsys.chess.xtext.flaDsl.InFailureExpr;
+import org.polarsys.chess.xtext.flaDsl.InputExpression;
+import org.polarsys.chess.xtext.flaDsl.Lhs;
+import org.polarsys.chess.xtext.flaDsl.NoFailureDefinition;
+import org.polarsys.chess.xtext.flaDsl.OutFailureExpr;
+import org.polarsys.chess.xtext.flaDsl.OutputExpression;
+import org.polarsys.chess.xtext.flaDsl.Rhs;
+import org.polarsys.chess.xtext.flaDsl.VariableDefinition;
+import org.polarsys.chess.xtext.flaDsl.WildcardDefinition;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class FlaDslPackageImpl extends EPackageImpl implements FlaDslPackage
+{
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass behaviourEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass expressionEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass lhsEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass rhsEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass inputExpressionEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass outputExpressionEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass inFailureExprEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass outFailureExprEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass definitionsEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass failureDefinitionEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass noFailureDefinitionEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass complexNofailureDefinitionEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass wildcardDefinitionEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass variableDefinitionEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass aciDavoidableEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass acidMitigationEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum failureTypeEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum aavoidableEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum cavoidableEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum iavoidableEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum davoidableEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum amitigationEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum cmitigationEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum imitigationEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum dmitigationEEnum = null;
+
+ /**
+ * Creates an instance of the model <b>Package</b>, registered with
+ * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
+ * package URI value.
+ * <p>Note: the correct way to create the package is via the static
+ * factory method {@link #init init()}, which also performs
+ * initialization of the package, or returns the registered package,
+ * if one already exists.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.ecore.EPackage.Registry
+ * @see org.polarsys.chess.xtext.flaDsl.FlaDslPackage#eNS_URI
+ * @see #init()
+ * @generated
+ */
+ private FlaDslPackageImpl()
+ {
+ super(eNS_URI, FlaDslFactory.eINSTANCE);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static boolean isInited = false;
+
+ /**
+ * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
+ *
+ * <p>This method is used to initialize {@link FlaDslPackage#eINSTANCE} when that field is accessed.
+ * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #eNS_URI
+ * @see #createPackageContents()
+ * @see #initializePackageContents()
+ * @generated
+ */
+ public static FlaDslPackage init()
+ {
+ if (isInited) return (FlaDslPackage)EPackage.Registry.INSTANCE.getEPackage(FlaDslPackage.eNS_URI);
+
+ // Obtain or create and register package
+ FlaDslPackageImpl theFlaDslPackage = (FlaDslPackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof FlaDslPackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new FlaDslPackageImpl());
+
+ isInited = true;
+
+ // Initialize simple dependencies
+ UMLPackage.eINSTANCE.eClass();
+
+ // Create package meta-data objects
+ theFlaDslPackage.createPackageContents();
+
+ // Initialize created meta-data
+ theFlaDslPackage.initializePackageContents();
+
+ // Mark meta-data to indicate it can't be changed
+ theFlaDslPackage.freeze();
+
+
+ // Update the registry and return the package
+ EPackage.Registry.INSTANCE.put(FlaDslPackage.eNS_URI, theFlaDslPackage);
+ return theFlaDslPackage;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getBehaviour()
+ {
+ return behaviourEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getBehaviour_Rules()
+ {
+ return (EReference)behaviourEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getExpression()
+ {
+ return expressionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getExpression_Lhs()
+ {
+ return (EReference)expressionEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getExpression_Rhs()
+ {
+ return (EReference)expressionEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getLhs()
+ {
+ return lhsEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLhs_Failures()
+ {
+ return (EReference)lhsEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getRhs()
+ {
+ return rhsEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getRhs_Failures()
+ {
+ return (EReference)rhsEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getInputExpression()
+ {
+ return inputExpressionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getInputExpression_Ref()
+ {
+ return (EReference)inputExpressionEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getInputExpression_FailureExpr()
+ {
+ return (EReference)inputExpressionEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getOutputExpression()
+ {
+ return outputExpressionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getOutputExpression_Ref()
+ {
+ return (EReference)outputExpressionEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getOutputExpression_FailureExpr()
+ {
+ return (EReference)outputExpressionEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getInFailureExpr()
+ {
+ return inFailureExprEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getInFailureExpr_Failures()
+ {
+ return (EReference)inFailureExprEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getOutFailureExpr()
+ {
+ return outFailureExprEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getOutFailureExpr_Failures()
+ {
+ return (EReference)outFailureExprEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getDefinitions()
+ {
+ return definitionsEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getFailureDefinition()
+ {
+ return failureDefinitionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getFailureDefinition_Type()
+ {
+ return (EAttribute)failureDefinitionEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getFailureDefinition_AcidAvoidable()
+ {
+ return (EReference)failureDefinitionEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getNoFailureDefinition()
+ {
+ return noFailureDefinitionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getNoFailureDefinition_AcidMitigation()
+ {
+ return (EReference)noFailureDefinitionEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getComplexNofailureDefinition()
+ {
+ return complexNofailureDefinitionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getWildcardDefinition()
+ {
+ return wildcardDefinitionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getVariableDefinition()
+ {
+ return variableDefinitionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getVariableDefinition_VariableName()
+ {
+ return (EAttribute)variableDefinitionEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getACIDavoidable()
+ {
+ return aciDavoidableEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getACIDavoidable_A()
+ {
+ return (EAttribute)aciDavoidableEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getACIDavoidable_C()
+ {
+ return (EAttribute)aciDavoidableEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getACIDavoidable_I()
+ {
+ return (EAttribute)aciDavoidableEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getACIDavoidable_D()
+ {
+ return (EAttribute)aciDavoidableEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getACIDMitigation()
+ {
+ return acidMitigationEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getACIDMitigation_A()
+ {
+ return (EAttribute)acidMitigationEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getACIDMitigation_C()
+ {
+ return (EAttribute)acidMitigationEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getACIDMitigation_I()
+ {
+ return (EAttribute)acidMitigationEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getACIDMitigation_D()
+ {
+ return (EAttribute)acidMitigationEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getFailureType()
+ {
+ return failureTypeEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getAavoidable()
+ {
+ return aavoidableEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getCavoidable()
+ {
+ return cavoidableEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getIavoidable()
+ {
+ return iavoidableEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getDavoidable()
+ {
+ return davoidableEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getAmitigation()
+ {
+ return amitigationEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getCmitigation()
+ {
+ return cmitigationEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getImitigation()
+ {
+ return imitigationEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getDmitigation()
+ {
+ return dmitigationEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public FlaDslFactory getFlaDslFactory()
+ {
+ return (FlaDslFactory)getEFactoryInstance();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private boolean isCreated = false;
+
+ /**
+ * Creates the meta-model objects for the package. This method is
+ * guarded to have no affect on any invocation but its first.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void createPackageContents()
+ {
+ if (isCreated) return;
+ isCreated = true;
+
+ // Create classes and their features
+ behaviourEClass = createEClass(BEHAVIOUR);
+ createEReference(behaviourEClass, BEHAVIOUR__RULES);
+
+ expressionEClass = createEClass(EXPRESSION);
+ createEReference(expressionEClass, EXPRESSION__LHS);
+ createEReference(expressionEClass, EXPRESSION__RHS);
+
+ lhsEClass = createEClass(LHS);
+ createEReference(lhsEClass, LHS__FAILURES);
+
+ rhsEClass = createEClass(RHS);
+ createEReference(rhsEClass, RHS__FAILURES);
+
+ inputExpressionEClass = createEClass(INPUT_EXPRESSION);
+ createEReference(inputExpressionEClass, INPUT_EXPRESSION__REF);
+ createEReference(inputExpressionEClass, INPUT_EXPRESSION__FAILURE_EXPR);
+
+ outputExpressionEClass = createEClass(OUTPUT_EXPRESSION);
+ createEReference(outputExpressionEClass, OUTPUT_EXPRESSION__REF);
+ createEReference(outputExpressionEClass, OUTPUT_EXPRESSION__FAILURE_EXPR);
+
+ inFailureExprEClass = createEClass(IN_FAILURE_EXPR);
+ createEReference(inFailureExprEClass, IN_FAILURE_EXPR__FAILURES);
+
+ outFailureExprEClass = createEClass(OUT_FAILURE_EXPR);
+ createEReference(outFailureExprEClass, OUT_FAILURE_EXPR__FAILURES);
+
+ definitionsEClass = createEClass(DEFINITIONS);
+
+ failureDefinitionEClass = createEClass(FAILURE_DEFINITION);
+ createEAttribute(failureDefinitionEClass, FAILURE_DEFINITION__TYPE);
+ createEReference(failureDefinitionEClass, FAILURE_DEFINITION__ACID_AVOIDABLE);
+
+ noFailureDefinitionEClass = createEClass(NO_FAILURE_DEFINITION);
+ createEReference(noFailureDefinitionEClass, NO_FAILURE_DEFINITION__ACID_MITIGATION);
+
+ complexNofailureDefinitionEClass = createEClass(COMPLEX_NOFAILURE_DEFINITION);
+
+ wildcardDefinitionEClass = createEClass(WILDCARD_DEFINITION);
+
+ variableDefinitionEClass = createEClass(VARIABLE_DEFINITION);
+ createEAttribute(variableDefinitionEClass, VARIABLE_DEFINITION__VARIABLE_NAME);
+
+ aciDavoidableEClass = createEClass(ACI_DAVOIDABLE);
+ createEAttribute(aciDavoidableEClass, ACI_DAVOIDABLE__A);
+ createEAttribute(aciDavoidableEClass, ACI_DAVOIDABLE__C);
+ createEAttribute(aciDavoidableEClass, ACI_DAVOIDABLE__I);
+ createEAttribute(aciDavoidableEClass, ACI_DAVOIDABLE__D);
+
+ acidMitigationEClass = createEClass(ACID_MITIGATION);
+ createEAttribute(acidMitigationEClass, ACID_MITIGATION__A);
+ createEAttribute(acidMitigationEClass, ACID_MITIGATION__C);
+ createEAttribute(acidMitigationEClass, ACID_MITIGATION__I);
+ createEAttribute(acidMitigationEClass, ACID_MITIGATION__D);
+
+ // Create enums
+ failureTypeEEnum = createEEnum(FAILURE_TYPE);
+ aavoidableEEnum = createEEnum(AAVOIDABLE);
+ cavoidableEEnum = createEEnum(CAVOIDABLE);
+ iavoidableEEnum = createEEnum(IAVOIDABLE);
+ davoidableEEnum = createEEnum(DAVOIDABLE);
+ amitigationEEnum = createEEnum(AMITIGATION);
+ cmitigationEEnum = createEEnum(CMITIGATION);
+ imitigationEEnum = createEEnum(IMITIGATION);
+ dmitigationEEnum = createEEnum(DMITIGATION);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private boolean isInitialized = false;
+
+ /**
+ * Complete the initialization of the package and its meta-model. This
+ * method is guarded to have no affect on any invocation but its first.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void initializePackageContents()
+ {
+ if (isInitialized) return;
+ isInitialized = true;
+
+ // Initialize package
+ setName(eNAME);
+ setNsPrefix(eNS_PREFIX);
+ setNsURI(eNS_URI);
+
+ // Obtain other dependent packages
+ UMLPackage theUMLPackage = (UMLPackage)EPackage.Registry.INSTANCE.getEPackage(UMLPackage.eNS_URI);
+ EcorePackage theEcorePackage = (EcorePackage)EPackage.Registry.INSTANCE.getEPackage(EcorePackage.eNS_URI);
+
+ // Create type parameters
+
+ // Set bounds for type parameters
+
+ // Add supertypes to classes
+ failureDefinitionEClass.getESuperTypes().add(this.getDefinitions());
+ noFailureDefinitionEClass.getESuperTypes().add(this.getDefinitions());
+ noFailureDefinitionEClass.getESuperTypes().add(this.getComplexNofailureDefinition());
+ complexNofailureDefinitionEClass.getESuperTypes().add(this.getDefinitions());
+ wildcardDefinitionEClass.getESuperTypes().add(this.getDefinitions());
+ variableDefinitionEClass.getESuperTypes().add(this.getDefinitions());
+
+ // Initialize classes and features; add operations and parameters
+ initEClass(behaviourEClass, Behaviour.class, "Behaviour", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getBehaviour_Rules(), this.getExpression(), null, "rules", null, 0, -1, Behaviour.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(expressionEClass, Expression.class, "Expression", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getExpression_Lhs(), this.getLhs(), null, "lhs", null, 0, 1, Expression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getExpression_Rhs(), this.getRhs(), null, "rhs", null, 0, 1, Expression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(lhsEClass, Lhs.class, "Lhs", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getLhs_Failures(), this.getInputExpression(), null, "failures", null, 0, -1, Lhs.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(rhsEClass, Rhs.class, "Rhs", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getRhs_Failures(), this.getOutputExpression(), null, "failures", null, 0, -1, Rhs.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(inputExpressionEClass, InputExpression.class, "InputExpression", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getInputExpression_Ref(), theUMLPackage.getPort(), null, "ref", null, 0, 1, InputExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getInputExpression_FailureExpr(), this.getInFailureExpr(), null, "failureExpr", null, 0, 1, InputExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(outputExpressionEClass, OutputExpression.class, "OutputExpression", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getOutputExpression_Ref(), theUMLPackage.getPort(), null, "ref", null, 0, 1, OutputExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getOutputExpression_FailureExpr(), this.getOutFailureExpr(), null, "failureExpr", null, 0, 1, OutputExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(inFailureExprEClass, InFailureExpr.class, "InFailureExpr", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getInFailureExpr_Failures(), this.getDefinitions(), null, "failures", null, 0, -1, InFailureExpr.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(outFailureExprEClass, OutFailureExpr.class, "OutFailureExpr", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getOutFailureExpr_Failures(), this.getDefinitions(), null, "failures", null, 0, -1, OutFailureExpr.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(definitionsEClass, Definitions.class, "Definitions", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ initEClass(failureDefinitionEClass, FailureDefinition.class, "FailureDefinition", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getFailureDefinition_Type(), this.getFailureType(), "type", null, 0, 1, FailureDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getFailureDefinition_AcidAvoidable(), this.getACIDavoidable(), null, "acidAvoidable", null, 0, 1, FailureDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(noFailureDefinitionEClass, NoFailureDefinition.class, "NoFailureDefinition", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getNoFailureDefinition_AcidMitigation(), this.getACIDMitigation(), null, "acidMitigation", null, 0, 1, NoFailureDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(complexNofailureDefinitionEClass, ComplexNofailureDefinition.class, "ComplexNofailureDefinition", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ initEClass(wildcardDefinitionEClass, WildcardDefinition.class, "WildcardDefinition", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ initEClass(variableDefinitionEClass, VariableDefinition.class, "VariableDefinition", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getVariableDefinition_VariableName(), theEcorePackage.getEString(), "variableName", null, 0, 1, VariableDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(aciDavoidableEClass, ACIDavoidable.class, "ACIDavoidable", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getACIDavoidable_A(), this.getAavoidable(), "a", null, 0, 1, ACIDavoidable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getACIDavoidable_C(), this.getCavoidable(), "c", null, 0, 1, ACIDavoidable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getACIDavoidable_I(), this.getIavoidable(), "i", null, 0, 1, ACIDavoidable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getACIDavoidable_D(), this.getDavoidable(), "d", null, 0, 1, ACIDavoidable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(acidMitigationEClass, ACIDMitigation.class, "ACIDMitigation", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getACIDMitigation_A(), this.getAmitigation(), "a", null, 0, 1, ACIDMitigation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getACIDMitigation_C(), this.getCmitigation(), "c", null, 0, 1, ACIDMitigation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getACIDMitigation_I(), this.getImitigation(), "i", null, 0, 1, ACIDMitigation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getACIDMitigation_D(), this.getDmitigation(), "d", null, 0, 1, ACIDMitigation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ // Initialize enums and add enum literals
+ initEEnum(failureTypeEEnum, FailureType.class, "FailureType");
+ addEEnumLiteral(failureTypeEEnum, FailureType.NO_FAILURE);
+ addEEnumLiteral(failureTypeEEnum, FailureType.EARLY);
+ addEEnumLiteral(failureTypeEEnum, FailureType.LATE);
+ addEEnumLiteral(failureTypeEEnum, FailureType.COMMISSION);
+ addEEnumLiteral(failureTypeEEnum, FailureType.OMISSION);
+ addEEnumLiteral(failureTypeEEnum, FailureType.VALUE_SUBTLE);
+ addEEnumLiteral(failureTypeEEnum, FailureType.VALUE_COARSE);
+ addEEnumLiteral(failureTypeEEnum, FailureType.WILDCARD);
+ addEEnumLiteral(failureTypeEEnum, FailureType.VARIABLE);
+
+ initEEnum(aavoidableEEnum, Aavoidable.class, "Aavoidable");
+ addEEnumLiteral(aavoidableEEnum, Aavoidable.INCOMPLETION);
+ addEEnumLiteral(aavoidableEEnum, Aavoidable.NONE);
+ addEEnumLiteral(aavoidableEEnum, Aavoidable.UNSPECIFIED);
+
+ initEEnum(cavoidableEEnum, Cavoidable.class, "Cavoidable");
+ addEEnumLiteral(cavoidableEEnum, Cavoidable.INCONSISTENCY);
+ addEEnumLiteral(cavoidableEEnum, Cavoidable.NONE);
+ addEEnumLiteral(cavoidableEEnum, Cavoidable.UNSPECIFIED);
+
+ initEEnum(iavoidableEEnum, Iavoidable.class, "Iavoidable");
+ addEEnumLiteral(iavoidableEEnum, Iavoidable.INTERFERENCE);
+ addEEnumLiteral(iavoidableEEnum, Iavoidable.NONE);
+ addEEnumLiteral(iavoidableEEnum, Iavoidable.UNSPECIFIED);
+
+ initEEnum(davoidableEEnum, Davoidable.class, "Davoidable");
+ addEEnumLiteral(davoidableEEnum, Davoidable.IMPERMANENCE);
+ addEEnumLiteral(davoidableEEnum, Davoidable.NONE);
+ addEEnumLiteral(davoidableEEnum, Davoidable.UNSPECIFIED);
+
+ initEEnum(amitigationEEnum, Amitigation.class, "Amitigation");
+ addEEnumLiteral(amitigationEEnum, Amitigation.ALL_OR_NOTHING);
+ addEEnumLiteral(amitigationEEnum, Amitigation.ALL_OR_COMPENSATION);
+ addEEnumLiteral(amitigationEEnum, Amitigation.NONE);
+ addEEnumLiteral(amitigationEEnum, Amitigation.UNSPECIFIED);
+
+ initEEnum(cmitigationEEnum, Cmitigation.class, "Cmitigation");
+ addEEnumLiteral(cmitigationEEnum, Cmitigation.FULL_CONSISTENCY);
+ addEEnumLiteral(cmitigationEEnum, Cmitigation.RANGE_VIOLATION_ALLOWED);
+ addEEnumLiteral(cmitigationEEnum, Cmitigation.NONE);
+ addEEnumLiteral(cmitigationEEnum, Cmitigation.UNSPECIFIED);
+
+ initEEnum(imitigationEEnum, Imitigation.class, "Imitigation");
+ addEEnumLiteral(imitigationEEnum, Imitigation.SERIALIZABLE);
+ addEEnumLiteral(imitigationEEnum, Imitigation.PORTABLE_LEVEL);
+ addEEnumLiteral(imitigationEEnum, Imitigation.NONE);
+ addEEnumLiteral(imitigationEEnum, Imitigation.UNSPECIFIED);
+
+ initEEnum(dmitigationEEnum, Dmitigation.class, "Dmitigation");
+ addEEnumLiteral(dmitigationEEnum, Dmitigation.NO_LOSS);
+ addEEnumLiteral(dmitigationEEnum, Dmitigation.PARTIAL_LOSS_ALLOWED);
+ addEEnumLiteral(dmitigationEEnum, Dmitigation.NONE);
+ addEEnumLiteral(dmitigationEEnum, Dmitigation.UNSPECIFIED);
+
+ // Create resource
+ createResource(eNS_URI);
+ }
+
+} //FlaDslPackageImpl
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/impl/InFailureExprImpl.java b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/impl/InFailureExprImpl.java
new file mode 100644
index 0000000..5474b94
--- /dev/null
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/impl/InFailureExprImpl.java
@@ -0,0 +1,167 @@
+/**
+ */
+package org.polarsys.chess.xtext.flaDsl.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.polarsys.chess.xtext.flaDsl.Definitions;
+import org.polarsys.chess.xtext.flaDsl.FlaDslPackage;
+import org.polarsys.chess.xtext.flaDsl.InFailureExpr;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>In Failure Expr</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.polarsys.chess.xtext.flaDsl.impl.InFailureExprImpl#getFailures <em>Failures</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class InFailureExprImpl extends MinimalEObjectImpl.Container implements InFailureExpr
+{
+ /**
+ * The cached value of the '{@link #getFailures() <em>Failures</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getFailures()
+ * @generated
+ * @ordered
+ */
+ protected EList<Definitions> failures;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected InFailureExprImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return FlaDslPackage.Literals.IN_FAILURE_EXPR;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<Definitions> getFailures()
+ {
+ if (failures == null)
+ {
+ failures = new EObjectContainmentEList<Definitions>(Definitions.class, this, FlaDslPackage.IN_FAILURE_EXPR__FAILURES);
+ }
+ return failures;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case FlaDslPackage.IN_FAILURE_EXPR__FAILURES:
+ return ((InternalEList<?>)getFailures()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case FlaDslPackage.IN_FAILURE_EXPR__FAILURES:
+ return getFailures();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case FlaDslPackage.IN_FAILURE_EXPR__FAILURES:
+ getFailures().clear();
+ getFailures().addAll((Collection<? extends Definitions>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case FlaDslPackage.IN_FAILURE_EXPR__FAILURES:
+ getFailures().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case FlaDslPackage.IN_FAILURE_EXPR__FAILURES:
+ return failures != null && !failures.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //InFailureExprImpl
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/impl/InputExpressionImpl.java b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/impl/InputExpressionImpl.java
new file mode 100644
index 0000000..bd85868
--- /dev/null
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/impl/InputExpressionImpl.java
@@ -0,0 +1,261 @@
+/**
+ */
+package org.polarsys.chess.xtext.flaDsl.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.uml2.uml.Port;
+
+import org.polarsys.chess.xtext.flaDsl.FlaDslPackage;
+import org.polarsys.chess.xtext.flaDsl.InFailureExpr;
+import org.polarsys.chess.xtext.flaDsl.InputExpression;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Input Expression</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.polarsys.chess.xtext.flaDsl.impl.InputExpressionImpl#getRef <em>Ref</em>}</li>
+ * <li>{@link org.polarsys.chess.xtext.flaDsl.impl.InputExpressionImpl#getFailureExpr <em>Failure Expr</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class InputExpressionImpl extends MinimalEObjectImpl.Container implements InputExpression
+{
+ /**
+ * The cached value of the '{@link #getRef() <em>Ref</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getRef()
+ * @generated
+ * @ordered
+ */
+ protected Port ref;
+
+ /**
+ * The cached value of the '{@link #getFailureExpr() <em>Failure Expr</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getFailureExpr()
+ * @generated
+ * @ordered
+ */
+ protected InFailureExpr failureExpr;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected InputExpressionImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return FlaDslPackage.Literals.INPUT_EXPRESSION;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Port getRef()
+ {
+ if (ref != null && ref.eIsProxy())
+ {
+ InternalEObject oldRef = (InternalEObject)ref;
+ ref = (Port)eResolveProxy(oldRef);
+ if (ref != oldRef)
+ {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, FlaDslPackage.INPUT_EXPRESSION__REF, oldRef, ref));
+ }
+ }
+ return ref;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Port basicGetRef()
+ {
+ return ref;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setRef(Port newRef)
+ {
+ Port oldRef = ref;
+ ref = newRef;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FlaDslPackage.INPUT_EXPRESSION__REF, oldRef, ref));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public InFailureExpr getFailureExpr()
+ {
+ return failureExpr;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetFailureExpr(InFailureExpr newFailureExpr, NotificationChain msgs)
+ {
+ InFailureExpr oldFailureExpr = failureExpr;
+ failureExpr = newFailureExpr;
+ if (eNotificationRequired())
+ {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FlaDslPackage.INPUT_EXPRESSION__FAILURE_EXPR, oldFailureExpr, newFailureExpr);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setFailureExpr(InFailureExpr newFailureExpr)
+ {
+ if (newFailureExpr != failureExpr)
+ {
+ NotificationChain msgs = null;
+ if (failureExpr != null)
+ msgs = ((InternalEObject)failureExpr).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FlaDslPackage.INPUT_EXPRESSION__FAILURE_EXPR, null, msgs);
+ if (newFailureExpr != null)
+ msgs = ((InternalEObject)newFailureExpr).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FlaDslPackage.INPUT_EXPRESSION__FAILURE_EXPR, null, msgs);
+ msgs = basicSetFailureExpr(newFailureExpr, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FlaDslPackage.INPUT_EXPRESSION__FAILURE_EXPR, newFailureExpr, newFailureExpr));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case FlaDslPackage.INPUT_EXPRESSION__FAILURE_EXPR:
+ return basicSetFailureExpr(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case FlaDslPackage.INPUT_EXPRESSION__REF:
+ if (resolve) return getRef();
+ return basicGetRef();
+ case FlaDslPackage.INPUT_EXPRESSION__FAILURE_EXPR:
+ return getFailureExpr();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case FlaDslPackage.INPUT_EXPRESSION__REF:
+ setRef((Port)newValue);
+ return;
+ case FlaDslPackage.INPUT_EXPRESSION__FAILURE_EXPR:
+ setFailureExpr((InFailureExpr)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case FlaDslPackage.INPUT_EXPRESSION__REF:
+ setRef((Port)null);
+ return;
+ case FlaDslPackage.INPUT_EXPRESSION__FAILURE_EXPR:
+ setFailureExpr((InFailureExpr)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case FlaDslPackage.INPUT_EXPRESSION__REF:
+ return ref != null;
+ case FlaDslPackage.INPUT_EXPRESSION__FAILURE_EXPR:
+ return failureExpr != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //InputExpressionImpl
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/impl/LhsImpl.java b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/impl/LhsImpl.java
new file mode 100644
index 0000000..6486299
--- /dev/null
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/impl/LhsImpl.java
@@ -0,0 +1,167 @@
+/**
+ */
+package org.polarsys.chess.xtext.flaDsl.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.polarsys.chess.xtext.flaDsl.FlaDslPackage;
+import org.polarsys.chess.xtext.flaDsl.InputExpression;
+import org.polarsys.chess.xtext.flaDsl.Lhs;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Lhs</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.polarsys.chess.xtext.flaDsl.impl.LhsImpl#getFailures <em>Failures</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class LhsImpl extends MinimalEObjectImpl.Container implements Lhs
+{
+ /**
+ * The cached value of the '{@link #getFailures() <em>Failures</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getFailures()
+ * @generated
+ * @ordered
+ */
+ protected EList<InputExpression> failures;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected LhsImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return FlaDslPackage.Literals.LHS;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<InputExpression> getFailures()
+ {
+ if (failures == null)
+ {
+ failures = new EObjectContainmentEList<InputExpression>(InputExpression.class, this, FlaDslPackage.LHS__FAILURES);
+ }
+ return failures;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case FlaDslPackage.LHS__FAILURES:
+ return ((InternalEList<?>)getFailures()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case FlaDslPackage.LHS__FAILURES:
+ return getFailures();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case FlaDslPackage.LHS__FAILURES:
+ getFailures().clear();
+ getFailures().addAll((Collection<? extends InputExpression>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case FlaDslPackage.LHS__FAILURES:
+ getFailures().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case FlaDslPackage.LHS__FAILURES:
+ return failures != null && !failures.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //LhsImpl
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/impl/NoFailureDefinitionImpl.java b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/impl/NoFailureDefinitionImpl.java
new file mode 100644
index 0000000..6f0455c
--- /dev/null
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/impl/NoFailureDefinitionImpl.java
@@ -0,0 +1,193 @@
+/**
+ */
+package org.polarsys.chess.xtext.flaDsl.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.polarsys.chess.xtext.flaDsl.ACIDMitigation;
+import org.polarsys.chess.xtext.flaDsl.FlaDslPackage;
+import org.polarsys.chess.xtext.flaDsl.NoFailureDefinition;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>No Failure Definition</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.polarsys.chess.xtext.flaDsl.impl.NoFailureDefinitionImpl#getAcidMitigation <em>Acid Mitigation</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class NoFailureDefinitionImpl extends DefinitionsImpl implements NoFailureDefinition
+{
+ /**
+ * The cached value of the '{@link #getAcidMitigation() <em>Acid Mitigation</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getAcidMitigation()
+ * @generated
+ * @ordered
+ */
+ protected ACIDMitigation acidMitigation;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected NoFailureDefinitionImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return FlaDslPackage.Literals.NO_FAILURE_DEFINITION;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ACIDMitigation getAcidMitigation()
+ {
+ return acidMitigation;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetAcidMitigation(ACIDMitigation newAcidMitigation, NotificationChain msgs)
+ {
+ ACIDMitigation oldAcidMitigation = acidMitigation;
+ acidMitigation = newAcidMitigation;
+ if (eNotificationRequired())
+ {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FlaDslPackage.NO_FAILURE_DEFINITION__ACID_MITIGATION, oldAcidMitigation, newAcidMitigation);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setAcidMitigation(ACIDMitigation newAcidMitigation)
+ {
+ if (newAcidMitigation != acidMitigation)
+ {
+ NotificationChain msgs = null;
+ if (acidMitigation != null)
+ msgs = ((InternalEObject)acidMitigation).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FlaDslPackage.NO_FAILURE_DEFINITION__ACID_MITIGATION, null, msgs);
+ if (newAcidMitigation != null)
+ msgs = ((InternalEObject)newAcidMitigation).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FlaDslPackage.NO_FAILURE_DEFINITION__ACID_MITIGATION, null, msgs);
+ msgs = basicSetAcidMitigation(newAcidMitigation, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FlaDslPackage.NO_FAILURE_DEFINITION__ACID_MITIGATION, newAcidMitigation, newAcidMitigation));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case FlaDslPackage.NO_FAILURE_DEFINITION__ACID_MITIGATION:
+ return basicSetAcidMitigation(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case FlaDslPackage.NO_FAILURE_DEFINITION__ACID_MITIGATION:
+ return getAcidMitigation();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case FlaDslPackage.NO_FAILURE_DEFINITION__ACID_MITIGATION:
+ setAcidMitigation((ACIDMitigation)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case FlaDslPackage.NO_FAILURE_DEFINITION__ACID_MITIGATION:
+ setAcidMitigation((ACIDMitigation)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case FlaDslPackage.NO_FAILURE_DEFINITION__ACID_MITIGATION:
+ return acidMitigation != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //NoFailureDefinitionImpl
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/impl/OutFailureExprImpl.java b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/impl/OutFailureExprImpl.java
new file mode 100644
index 0000000..0ae9b3b
--- /dev/null
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/impl/OutFailureExprImpl.java
@@ -0,0 +1,167 @@
+/**
+ */
+package org.polarsys.chess.xtext.flaDsl.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.polarsys.chess.xtext.flaDsl.Definitions;
+import org.polarsys.chess.xtext.flaDsl.FlaDslPackage;
+import org.polarsys.chess.xtext.flaDsl.OutFailureExpr;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Out Failure Expr</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.polarsys.chess.xtext.flaDsl.impl.OutFailureExprImpl#getFailures <em>Failures</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class OutFailureExprImpl extends MinimalEObjectImpl.Container implements OutFailureExpr
+{
+ /**
+ * The cached value of the '{@link #getFailures() <em>Failures</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getFailures()
+ * @generated
+ * @ordered
+ */
+ protected EList<Definitions> failures;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected OutFailureExprImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return FlaDslPackage.Literals.OUT_FAILURE_EXPR;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<Definitions> getFailures()
+ {
+ if (failures == null)
+ {
+ failures = new EObjectContainmentEList<Definitions>(Definitions.class, this, FlaDslPackage.OUT_FAILURE_EXPR__FAILURES);
+ }
+ return failures;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case FlaDslPackage.OUT_FAILURE_EXPR__FAILURES:
+ return ((InternalEList<?>)getFailures()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case FlaDslPackage.OUT_FAILURE_EXPR__FAILURES:
+ return getFailures();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case FlaDslPackage.OUT_FAILURE_EXPR__FAILURES:
+ getFailures().clear();
+ getFailures().addAll((Collection<? extends Definitions>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case FlaDslPackage.OUT_FAILURE_EXPR__FAILURES:
+ getFailures().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case FlaDslPackage.OUT_FAILURE_EXPR__FAILURES:
+ return failures != null && !failures.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //OutFailureExprImpl
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/impl/OutputExpressionImpl.java b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/impl/OutputExpressionImpl.java
new file mode 100644
index 0000000..53627ed
--- /dev/null
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/impl/OutputExpressionImpl.java
@@ -0,0 +1,261 @@
+/**
+ */
+package org.polarsys.chess.xtext.flaDsl.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.uml2.uml.Port;
+
+import org.polarsys.chess.xtext.flaDsl.FlaDslPackage;
+import org.polarsys.chess.xtext.flaDsl.OutFailureExpr;
+import org.polarsys.chess.xtext.flaDsl.OutputExpression;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Output Expression</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.polarsys.chess.xtext.flaDsl.impl.OutputExpressionImpl#getRef <em>Ref</em>}</li>
+ * <li>{@link org.polarsys.chess.xtext.flaDsl.impl.OutputExpressionImpl#getFailureExpr <em>Failure Expr</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class OutputExpressionImpl extends MinimalEObjectImpl.Container implements OutputExpression
+{
+ /**
+ * The cached value of the '{@link #getRef() <em>Ref</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getRef()
+ * @generated
+ * @ordered
+ */
+ protected Port ref;
+
+ /**
+ * The cached value of the '{@link #getFailureExpr() <em>Failure Expr</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getFailureExpr()
+ * @generated
+ * @ordered
+ */
+ protected OutFailureExpr failureExpr;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected OutputExpressionImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return FlaDslPackage.Literals.OUTPUT_EXPRESSION;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Port getRef()
+ {
+ if (ref != null && ref.eIsProxy())
+ {
+ InternalEObject oldRef = (InternalEObject)ref;
+ ref = (Port)eResolveProxy(oldRef);
+ if (ref != oldRef)
+ {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, FlaDslPackage.OUTPUT_EXPRESSION__REF, oldRef, ref));
+ }
+ }
+ return ref;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Port basicGetRef()
+ {
+ return ref;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setRef(Port newRef)
+ {
+ Port oldRef = ref;
+ ref = newRef;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FlaDslPackage.OUTPUT_EXPRESSION__REF, oldRef, ref));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public OutFailureExpr getFailureExpr()
+ {
+ return failureExpr;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetFailureExpr(OutFailureExpr newFailureExpr, NotificationChain msgs)
+ {
+ OutFailureExpr oldFailureExpr = failureExpr;
+ failureExpr = newFailureExpr;
+ if (eNotificationRequired())
+ {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FlaDslPackage.OUTPUT_EXPRESSION__FAILURE_EXPR, oldFailureExpr, newFailureExpr);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setFailureExpr(OutFailureExpr newFailureExpr)
+ {
+ if (newFailureExpr != failureExpr)
+ {
+ NotificationChain msgs = null;
+ if (failureExpr != null)
+ msgs = ((InternalEObject)failureExpr).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FlaDslPackage.OUTPUT_EXPRESSION__FAILURE_EXPR, null, msgs);
+ if (newFailureExpr != null)
+ msgs = ((InternalEObject)newFailureExpr).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FlaDslPackage.OUTPUT_EXPRESSION__FAILURE_EXPR, null, msgs);
+ msgs = basicSetFailureExpr(newFailureExpr, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FlaDslPackage.OUTPUT_EXPRESSION__FAILURE_EXPR, newFailureExpr, newFailureExpr));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case FlaDslPackage.OUTPUT_EXPRESSION__FAILURE_EXPR:
+ return basicSetFailureExpr(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case FlaDslPackage.OUTPUT_EXPRESSION__REF:
+ if (resolve) return getRef();
+ return basicGetRef();
+ case FlaDslPackage.OUTPUT_EXPRESSION__FAILURE_EXPR:
+ return getFailureExpr();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case FlaDslPackage.OUTPUT_EXPRESSION__REF:
+ setRef((Port)newValue);
+ return;
+ case FlaDslPackage.OUTPUT_EXPRESSION__FAILURE_EXPR:
+ setFailureExpr((OutFailureExpr)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case FlaDslPackage.OUTPUT_EXPRESSION__REF:
+ setRef((Port)null);
+ return;
+ case FlaDslPackage.OUTPUT_EXPRESSION__FAILURE_EXPR:
+ setFailureExpr((OutFailureExpr)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case FlaDslPackage.OUTPUT_EXPRESSION__REF:
+ return ref != null;
+ case FlaDslPackage.OUTPUT_EXPRESSION__FAILURE_EXPR:
+ return failureExpr != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //OutputExpressionImpl
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/impl/RhsImpl.java b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/impl/RhsImpl.java
new file mode 100644
index 0000000..dbfaf4d
--- /dev/null
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/impl/RhsImpl.java
@@ -0,0 +1,167 @@
+/**
+ */
+package org.polarsys.chess.xtext.flaDsl.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.polarsys.chess.xtext.flaDsl.FlaDslPackage;
+import org.polarsys.chess.xtext.flaDsl.OutputExpression;
+import org.polarsys.chess.xtext.flaDsl.Rhs;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Rhs</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.polarsys.chess.xtext.flaDsl.impl.RhsImpl#getFailures <em>Failures</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class RhsImpl extends MinimalEObjectImpl.Container implements Rhs
+{
+ /**
+ * The cached value of the '{@link #getFailures() <em>Failures</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getFailures()
+ * @generated
+ * @ordered
+ */
+ protected EList<OutputExpression> failures;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected RhsImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return FlaDslPackage.Literals.RHS;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<OutputExpression> getFailures()
+ {
+ if (failures == null)
+ {
+ failures = new EObjectContainmentEList<OutputExpression>(OutputExpression.class, this, FlaDslPackage.RHS__FAILURES);
+ }
+ return failures;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case FlaDslPackage.RHS__FAILURES:
+ return ((InternalEList<?>)getFailures()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case FlaDslPackage.RHS__FAILURES:
+ return getFailures();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case FlaDslPackage.RHS__FAILURES:
+ getFailures().clear();
+ getFailures().addAll((Collection<? extends OutputExpression>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case FlaDslPackage.RHS__FAILURES:
+ getFailures().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case FlaDslPackage.RHS__FAILURES:
+ return failures != null && !failures.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //RhsImpl
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/impl/VariableDefinitionImpl.java b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/impl/VariableDefinitionImpl.java
new file mode 100644
index 0000000..df7d5fb
--- /dev/null
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/impl/VariableDefinitionImpl.java
@@ -0,0 +1,176 @@
+/**
+ */
+package org.polarsys.chess.xtext.flaDsl.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.polarsys.chess.xtext.flaDsl.FlaDslPackage;
+import org.polarsys.chess.xtext.flaDsl.VariableDefinition;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Variable Definition</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.polarsys.chess.xtext.flaDsl.impl.VariableDefinitionImpl#getVariableName <em>Variable Name</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class VariableDefinitionImpl extends DefinitionsImpl implements VariableDefinition
+{
+ /**
+ * The default value of the '{@link #getVariableName() <em>Variable Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getVariableName()
+ * @generated
+ * @ordered
+ */
+ protected static final String VARIABLE_NAME_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getVariableName() <em>Variable Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getVariableName()
+ * @generated
+ * @ordered
+ */
+ protected String variableName = VARIABLE_NAME_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected VariableDefinitionImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return FlaDslPackage.Literals.VARIABLE_DEFINITION;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getVariableName()
+ {
+ return variableName;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setVariableName(String newVariableName)
+ {
+ String oldVariableName = variableName;
+ variableName = newVariableName;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FlaDslPackage.VARIABLE_DEFINITION__VARIABLE_NAME, oldVariableName, variableName));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case FlaDslPackage.VARIABLE_DEFINITION__VARIABLE_NAME:
+ return getVariableName();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case FlaDslPackage.VARIABLE_DEFINITION__VARIABLE_NAME:
+ setVariableName((String)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case FlaDslPackage.VARIABLE_DEFINITION__VARIABLE_NAME:
+ setVariableName(VARIABLE_NAME_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case FlaDslPackage.VARIABLE_DEFINITION__VARIABLE_NAME:
+ return VARIABLE_NAME_EDEFAULT == null ? variableName != null : !VARIABLE_NAME_EDEFAULT.equals(variableName);
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString()
+ {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (variableName: ");
+ result.append(variableName);
+ result.append(')');
+ return result.toString();
+ }
+
+} //VariableDefinitionImpl
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/impl/WildcardDefinitionImpl.java b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/impl/WildcardDefinitionImpl.java
new file mode 100644
index 0000000..352a227
--- /dev/null
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/impl/WildcardDefinitionImpl.java
@@ -0,0 +1,40 @@
+/**
+ */
+package org.polarsys.chess.xtext.flaDsl.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.polarsys.chess.xtext.flaDsl.FlaDslPackage;
+import org.polarsys.chess.xtext.flaDsl.WildcardDefinition;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Wildcard Definition</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class WildcardDefinitionImpl extends DefinitionsImpl implements WildcardDefinition
+{
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected WildcardDefinitionImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return FlaDslPackage.Literals.WILDCARD_DEFINITION;
+ }
+
+} //WildcardDefinitionImpl
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/util/FlaDslAdapterFactory.java b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/util/FlaDslAdapterFactory.java
new file mode 100644
index 0000000..0ec323c
--- /dev/null
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/util/FlaDslAdapterFactory.java
@@ -0,0 +1,432 @@
+/**
+ */
+package org.polarsys.chess.xtext.flaDsl.util;
+
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notifier;
+
+import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.polarsys.chess.xtext.flaDsl.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Adapter Factory</b> for the model.
+ * It provides an adapter <code>createXXX</code> method for each class of the model.
+ * <!-- end-user-doc -->
+ * @see org.polarsys.chess.xtext.flaDsl.FlaDslPackage
+ * @generated
+ */
+public class FlaDslAdapterFactory extends AdapterFactoryImpl
+{
+ /**
+ * The cached model package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static FlaDslPackage modelPackage;
+
+ /**
+ * Creates an instance of the adapter factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public FlaDslAdapterFactory()
+ {
+ if (modelPackage == null)
+ {
+ modelPackage = FlaDslPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Returns whether this factory is applicable for the type of the object.
+ * <!-- begin-user-doc -->
+ * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model.
+ * <!-- end-user-doc -->
+ * @return whether this factory is applicable for the type of the object.
+ * @generated
+ */
+ @Override
+ public boolean isFactoryForType(Object object)
+ {
+ if (object == modelPackage)
+ {
+ return true;
+ }
+ if (object instanceof EObject)
+ {
+ return ((EObject)object).eClass().getEPackage() == modelPackage;
+ }
+ return false;
+ }
+
+ /**
+ * The switch that delegates to the <code>createXXX</code> methods.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected FlaDslSwitch<Adapter> modelSwitch =
+ new FlaDslSwitch<Adapter>()
+ {
+ @Override
+ public Adapter caseBehaviour(Behaviour object)
+ {
+ return createBehaviourAdapter();
+ }
+ @Override
+ public Adapter caseExpression(Expression object)
+ {
+ return createExpressionAdapter();
+ }
+ @Override
+ public Adapter caseLhs(Lhs object)
+ {
+ return createLhsAdapter();
+ }
+ @Override
+ public Adapter caseRhs(Rhs object)
+ {
+ return createRhsAdapter();
+ }
+ @Override
+ public Adapter caseInputExpression(InputExpression object)
+ {
+ return createInputExpressionAdapter();
+ }
+ @Override
+ public Adapter caseOutputExpression(OutputExpression object)
+ {
+ return createOutputExpressionAdapter();
+ }
+ @Override
+ public Adapter caseInFailureExpr(InFailureExpr object)
+ {
+ return createInFailureExprAdapter();
+ }
+ @Override
+ public Adapter caseOutFailureExpr(OutFailureExpr object)
+ {
+ return createOutFailureExprAdapter();
+ }
+ @Override
+ public Adapter caseDefinitions(Definitions object)
+ {
+ return createDefinitionsAdapter();
+ }
+ @Override
+ public Adapter caseFailureDefinition(FailureDefinition object)
+ {
+ return createFailureDefinitionAdapter();
+ }
+ @Override
+ public Adapter caseNoFailureDefinition(NoFailureDefinition object)
+ {
+ return createNoFailureDefinitionAdapter();
+ }
+ @Override
+ public Adapter caseComplexNofailureDefinition(ComplexNofailureDefinition object)
+ {
+ return createComplexNofailureDefinitionAdapter();
+ }
+ @Override
+ public Adapter caseWildcardDefinition(WildcardDefinition object)
+ {
+ return createWildcardDefinitionAdapter();
+ }
+ @Override
+ public Adapter caseVariableDefinition(VariableDefinition object)
+ {
+ return createVariableDefinitionAdapter();
+ }
+ @Override
+ public Adapter caseACIDavoidable(ACIDavoidable object)
+ {
+ return createACIDavoidableAdapter();
+ }
+ @Override
+ public Adapter caseACIDMitigation(ACIDMitigation object)
+ {
+ return createACIDMitigationAdapter();
+ }
+ @Override
+ public Adapter defaultCase(EObject object)
+ {
+ return createEObjectAdapter();
+ }
+ };
+
+ /**
+ * Creates an adapter for the <code>target</code>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param target the object to adapt.
+ * @return the adapter for the <code>target</code>.
+ * @generated
+ */
+ @Override
+ public Adapter createAdapter(Notifier target)
+ {
+ return modelSwitch.doSwitch((EObject)target);
+ }
+
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.polarsys.chess.xtext.flaDsl.Behaviour <em>Behaviour</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.polarsys.chess.xtext.flaDsl.Behaviour
+ * @generated
+ */
+ public Adapter createBehaviourAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.polarsys.chess.xtext.flaDsl.Expression <em>Expression</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.polarsys.chess.xtext.flaDsl.Expression
+ * @generated
+ */
+ public Adapter createExpressionAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.polarsys.chess.xtext.flaDsl.Lhs <em>Lhs</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.polarsys.chess.xtext.flaDsl.Lhs
+ * @generated
+ */
+ public Adapter createLhsAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.polarsys.chess.xtext.flaDsl.Rhs <em>Rhs</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.polarsys.chess.xtext.flaDsl.Rhs
+ * @generated
+ */
+ public Adapter createRhsAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.polarsys.chess.xtext.flaDsl.InputExpression <em>Input Expression</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.polarsys.chess.xtext.flaDsl.InputExpression
+ * @generated
+ */
+ public Adapter createInputExpressionAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.polarsys.chess.xtext.flaDsl.OutputExpression <em>Output Expression</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.polarsys.chess.xtext.flaDsl.OutputExpression
+ * @generated
+ */
+ public Adapter createOutputExpressionAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.polarsys.chess.xtext.flaDsl.InFailureExpr <em>In Failure Expr</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.polarsys.chess.xtext.flaDsl.InFailureExpr
+ * @generated
+ */
+ public Adapter createInFailureExprAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.polarsys.chess.xtext.flaDsl.OutFailureExpr <em>Out Failure Expr</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.polarsys.chess.xtext.flaDsl.OutFailureExpr
+ * @generated
+ */
+ public Adapter createOutFailureExprAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.polarsys.chess.xtext.flaDsl.Definitions <em>Definitions</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.polarsys.chess.xtext.flaDsl.Definitions
+ * @generated
+ */
+ public Adapter createDefinitionsAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.polarsys.chess.xtext.flaDsl.FailureDefinition <em>Failure Definition</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.polarsys.chess.xtext.flaDsl.FailureDefinition
+ * @generated
+ */
+ public Adapter createFailureDefinitionAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.polarsys.chess.xtext.flaDsl.NoFailureDefinition <em>No Failure Definition</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.polarsys.chess.xtext.flaDsl.NoFailureDefinition
+ * @generated
+ */
+ public Adapter createNoFailureDefinitionAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.polarsys.chess.xtext.flaDsl.ComplexNofailureDefinition <em>Complex Nofailure Definition</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.polarsys.chess.xtext.flaDsl.ComplexNofailureDefinition
+ * @generated
+ */
+ public Adapter createComplexNofailureDefinitionAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.polarsys.chess.xtext.flaDsl.WildcardDefinition <em>Wildcard Definition</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.polarsys.chess.xtext.flaDsl.WildcardDefinition
+ * @generated
+ */
+ public Adapter createWildcardDefinitionAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.polarsys.chess.xtext.flaDsl.VariableDefinition <em>Variable Definition</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.polarsys.chess.xtext.flaDsl.VariableDefinition
+ * @generated
+ */
+ public Adapter createVariableDefinitionAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.polarsys.chess.xtext.flaDsl.ACIDavoidable <em>ACI Davoidable</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.polarsys.chess.xtext.flaDsl.ACIDavoidable
+ * @generated
+ */
+ public Adapter createACIDavoidableAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.polarsys.chess.xtext.flaDsl.ACIDMitigation <em>ACID Mitigation</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.polarsys.chess.xtext.flaDsl.ACIDMitigation
+ * @generated
+ */
+ public Adapter createACIDMitigationAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for the default case.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @generated
+ */
+ public Adapter createEObjectAdapter()
+ {
+ return null;
+ }
+
+} //FlaDslAdapterFactory
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/util/FlaDslSwitch.java b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/util/FlaDslSwitch.java
new file mode 100644
index 0000000..c1b0a58
--- /dev/null
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/util/FlaDslSwitch.java
@@ -0,0 +1,470 @@
+/**
+ */
+package org.polarsys.chess.xtext.flaDsl.util;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.util.Switch;
+
+import org.polarsys.chess.xtext.flaDsl.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Switch</b> for the model's inheritance hierarchy.
+ * It supports the call {@link #doSwitch(EObject) doSwitch(object)}
+ * to invoke the <code>caseXXX</code> method for each class of the model,
+ * starting with the actual class of the object
+ * and proceeding up the inheritance hierarchy
+ * until a non-null result is returned,
+ * which is the result of the switch.
+ * <!-- end-user-doc -->
+ * @see org.polarsys.chess.xtext.flaDsl.FlaDslPackage
+ * @generated
+ */
+public class FlaDslSwitch<T> extends Switch<T>
+{
+ /**
+ * The cached model package
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static FlaDslPackage modelPackage;
+
+ /**
+ * Creates an instance of the switch.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public FlaDslSwitch()
+ {
+ if (modelPackage == null)
+ {
+ modelPackage = FlaDslPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Checks whether this is a switch for the given package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param ePackage the package in question.
+ * @return whether this is a switch for the given package.
+ * @generated
+ */
+ @Override
+ protected boolean isSwitchFor(EPackage ePackage)
+ {
+ return ePackage == modelPackage;
+ }
+
+ /**
+ * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the first non-null result returned by a <code>caseXXX</code> call.
+ * @generated
+ */
+ @Override
+ protected T doSwitch(int classifierID, EObject theEObject)
+ {
+ switch (classifierID)
+ {
+ case FlaDslPackage.BEHAVIOUR:
+ {
+ Behaviour behaviour = (Behaviour)theEObject;
+ T result = caseBehaviour(behaviour);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case FlaDslPackage.EXPRESSION:
+ {
+ Expression expression = (Expression)theEObject;
+ T result = caseExpression(expression);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case FlaDslPackage.LHS:
+ {
+ Lhs lhs = (Lhs)theEObject;
+ T result = caseLhs(lhs);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case FlaDslPackage.RHS:
+ {
+ Rhs rhs = (Rhs)theEObject;
+ T result = caseRhs(rhs);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case FlaDslPackage.INPUT_EXPRESSION:
+ {
+ InputExpression inputExpression = (InputExpression)theEObject;
+ T result = caseInputExpression(inputExpression);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case FlaDslPackage.OUTPUT_EXPRESSION:
+ {
+ OutputExpression outputExpression = (OutputExpression)theEObject;
+ T result = caseOutputExpression(outputExpression);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case FlaDslPackage.IN_FAILURE_EXPR:
+ {
+ InFailureExpr inFailureExpr = (InFailureExpr)theEObject;
+ T result = caseInFailureExpr(inFailureExpr);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case FlaDslPackage.OUT_FAILURE_EXPR:
+ {
+ OutFailureExpr outFailureExpr = (OutFailureExpr)theEObject;
+ T result = caseOutFailureExpr(outFailureExpr);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case FlaDslPackage.DEFINITIONS:
+ {
+ Definitions definitions = (Definitions)theEObject;
+ T result = caseDefinitions(definitions);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case FlaDslPackage.FAILURE_DEFINITION:
+ {
+ FailureDefinition failureDefinition = (FailureDefinition)theEObject;
+ T result = caseFailureDefinition(failureDefinition);
+ if (result == null) result = caseDefinitions(failureDefinition);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case FlaDslPackage.NO_FAILURE_DEFINITION:
+ {
+ NoFailureDefinition noFailureDefinition = (NoFailureDefinition)theEObject;
+ T result = caseNoFailureDefinition(noFailureDefinition);
+ if (result == null) result = caseComplexNofailureDefinition(noFailureDefinition);
+ if (result == null) result = caseDefinitions(noFailureDefinition);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case FlaDslPackage.COMPLEX_NOFAILURE_DEFINITION:
+ {
+ ComplexNofailureDefinition complexNofailureDefinition = (ComplexNofailureDefinition)theEObject;
+ T result = caseComplexNofailureDefinition(complexNofailureDefinition);
+ if (result == null) result = caseDefinitions(complexNofailureDefinition);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case FlaDslPackage.WILDCARD_DEFINITION:
+ {
+ WildcardDefinition wildcardDefinition = (WildcardDefinition)theEObject;
+ T result = caseWildcardDefinition(wildcardDefinition);
+ if (result == null) result = caseDefinitions(wildcardDefinition);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case FlaDslPackage.VARIABLE_DEFINITION:
+ {
+ VariableDefinition variableDefinition = (VariableDefinition)theEObject;
+ T result = caseVariableDefinition(variableDefinition);
+ if (result == null) result = caseDefinitions(variableDefinition);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case FlaDslPackage.ACI_DAVOIDABLE:
+ {
+ ACIDavoidable aciDavoidable = (ACIDavoidable)theEObject;
+ T result = caseACIDavoidable(aciDavoidable);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case FlaDslPackage.ACID_MITIGATION:
+ {
+ ACIDMitigation acidMitigation = (ACIDMitigation)theEObject;
+ T result = caseACIDMitigation(acidMitigation);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ default: return defaultCase(theEObject);
+ }
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Behaviour</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Behaviour</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseBehaviour(Behaviour object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Expression</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Expression</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseExpression(Expression object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Lhs</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Lhs</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseLhs(Lhs object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Rhs</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Rhs</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseRhs(Rhs object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Input Expression</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Input Expression</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseInputExpression(InputExpression object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Output Expression</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Output Expression</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseOutputExpression(OutputExpression object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>In Failure Expr</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>In Failure Expr</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseInFailureExpr(InFailureExpr object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Out Failure Expr</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Out Failure Expr</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseOutFailureExpr(OutFailureExpr object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Definitions</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Definitions</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseDefinitions(Definitions object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Failure Definition</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Failure Definition</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseFailureDefinition(FailureDefinition object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>No Failure Definition</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>No Failure Definition</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseNoFailureDefinition(NoFailureDefinition object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Complex Nofailure Definition</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Complex Nofailure Definition</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseComplexNofailureDefinition(ComplexNofailureDefinition object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Wildcard Definition</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Wildcard Definition</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseWildcardDefinition(WildcardDefinition object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Variable Definition</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Variable Definition</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseVariableDefinition(VariableDefinition object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>ACI Davoidable</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>ACI Davoidable</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseACIDavoidable(ACIDavoidable object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>ACID Mitigation</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>ACID Mitigation</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseACIDMitigation(ACIDMitigation object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch, but this is the last case anyway.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject)
+ * @generated
+ */
+ @Override
+ public T defaultCase(EObject object)
+ {
+ return null;
+ }
+
+} //FlaDslSwitch
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/parser/antlr/FlaDslAntlrTokenFileProvider.java b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/parser/antlr/FlaDslAntlrTokenFileProvider.java
new file mode 100644
index 0000000..df0e137
--- /dev/null
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/parser/antlr/FlaDslAntlrTokenFileProvider.java
@@ -0,0 +1,16 @@
+/*
+ * generated by Xtext
+ */
+package org.polarsys.chess.xtext.parser.antlr;
+
+import java.io.InputStream;
+import org.eclipse.xtext.parser.antlr.IAntlrTokenFileProvider;
+
+public class FlaDslAntlrTokenFileProvider implements IAntlrTokenFileProvider {
+
+ @Override
+ public InputStream getAntlrTokenFile() {
+ ClassLoader classLoader = getClass().getClassLoader();
+ return classLoader.getResourceAsStream("org/polarsys/chess/xtext/parser/antlr/internal/InternalFlaDsl.tokens");
+ }
+}
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/parser/antlr/FlaDslParser.java b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/parser/antlr/FlaDslParser.java
new file mode 100644
index 0000000..0bd9883
--- /dev/null
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/parser/antlr/FlaDslParser.java
@@ -0,0 +1,39 @@
+/*
+ * generated by Xtext
+ */
+package org.polarsys.chess.xtext.parser.antlr;
+
+import com.google.inject.Inject;
+
+import org.eclipse.xtext.parser.antlr.XtextTokenStream;
+import org.polarsys.chess.xtext.services.FlaDslGrammarAccess;
+
+public class FlaDslParser extends org.eclipse.xtext.parser.antlr.AbstractAntlrParser {
+
+ @Inject
+ private FlaDslGrammarAccess grammarAccess;
+
+ @Override
+ protected void setInitialHiddenTokens(XtextTokenStream tokenStream) {
+ tokenStream.setInitialHiddenTokens("RULE_WS", "RULE_ML_COMMENT", "RULE_SL_COMMENT");
+ }
+
+ @Override
+ protected org.polarsys.chess.xtext.parser.antlr.internal.InternalFlaDslParser createParser(XtextTokenStream stream) {
+ return new org.polarsys.chess.xtext.parser.antlr.internal.InternalFlaDslParser(stream, getGrammarAccess());
+ }
+
+ @Override
+ protected String getDefaultRuleName() {
+ return "Behaviour";
+ }
+
+ public FlaDslGrammarAccess getGrammarAccess() {
+ return this.grammarAccess;
+ }
+
+ public void setGrammarAccess(FlaDslGrammarAccess grammarAccess) {
+ this.grammarAccess = grammarAccess;
+ }
+
+}
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/parser/antlr/internal/InternalFlaDsl.g b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/parser/antlr/internal/InternalFlaDsl.g
new file mode 100644
index 0000000..b0b1b62
--- /dev/null
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/parser/antlr/internal/InternalFlaDsl.g
@@ -0,0 +1,1437 @@
+/*
+ * generated by Xtext
+ */
+grammar InternalFlaDsl;
+
+options {
+ superClass=AbstractInternalAntlrParser;
+
+}
+
+@lexer::header {
+package org.polarsys.chess.xtext.parser.antlr.internal;
+
+// Hack: Use our own Lexer superclass by means of import.
+// Currently there is no other way to specify the superclass for the lexer.
+import org.eclipse.xtext.parser.antlr.Lexer;
+}
+
+@parser::header {
+package org.polarsys.chess.xtext.parser.antlr.internal;
+
+import org.eclipse.xtext.*;
+import org.eclipse.xtext.parser.*;
+import org.eclipse.xtext.parser.impl.*;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.common.util.Enumerator;
+import org.eclipse.xtext.parser.antlr.AbstractInternalAntlrParser;
+import org.eclipse.xtext.parser.antlr.XtextTokenStream;
+import org.eclipse.xtext.parser.antlr.XtextTokenStream.HiddenTokens;
+import org.eclipse.xtext.parser.antlr.AntlrDatatypeRuleToken;
+import org.polarsys.chess.xtext.services.FlaDslGrammarAccess;
+
+}
+
+@parser::members {
+
+ private FlaDslGrammarAccess grammarAccess;
+
+ public InternalFlaDslParser(TokenStream input, FlaDslGrammarAccess grammarAccess) {
+ this(input);
+ this.grammarAccess = grammarAccess;
+ registerRules(grammarAccess.getGrammar());
+ }
+
+ @Override
+ protected String getFirstRuleName() {
+ return "Behaviour";
+ }
+
+ @Override
+ protected FlaDslGrammarAccess getGrammarAccess() {
+ return grammarAccess;
+ }
+}
+
+@rulecatch {
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+}
+
+
+
+
+// Entry rule entryRuleBehaviour
+entryRuleBehaviour returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getBehaviourRule()); }
+ iv_ruleBehaviour=ruleBehaviour
+ { $current=$iv_ruleBehaviour.current; }
+ EOF
+;
+
+// Rule Behaviour
+ruleBehaviour returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+(
+(
+ {
+ newCompositeNode(grammarAccess.getBehaviourAccess().getRulesExpressionParserRuleCall_0());
+ }
+ lv_rules_0_0=ruleExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getBehaviourRule());
+ }
+ add(
+ $current,
+ "rules",
+ lv_rules_0_0,
+ "org.polarsys.chess.xtext.FlaDsl.Expression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)+
+;
+
+
+
+
+
+// Entry rule entryRuleExpression
+entryRuleExpression returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getExpressionRule()); }
+ iv_ruleExpression=ruleExpression
+ { $current=$iv_ruleExpression.current; }
+ EOF
+;
+
+// Rule Expression
+ruleExpression returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+( otherlv_0='FLA:'
+ {
+ newLeafNode(otherlv_0, grammarAccess.getExpressionAccess().getFLAKeyword_0());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getExpressionAccess().getLhsLhsParserRuleCall_1_0());
+ }
+ lv_lhs_1_0=ruleLhs {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getExpressionRule());
+ }
+ set(
+ $current,
+ "lhs",
+ lv_lhs_1_0,
+ "org.polarsys.chess.xtext.FlaDsl.Lhs");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+) otherlv_2='->'
+ {
+ newLeafNode(otherlv_2, grammarAccess.getExpressionAccess().getHyphenMinusGreaterThanSignKeyword_2());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getExpressionAccess().getRhsRhsParserRuleCall_3_0());
+ }
+ lv_rhs_3_0=ruleRhs {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getExpressionRule());
+ }
+ set(
+ $current,
+ "rhs",
+ lv_rhs_3_0,
+ "org.polarsys.chess.xtext.FlaDsl.Rhs");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+) otherlv_4=';'
+ {
+ newLeafNode(otherlv_4, grammarAccess.getExpressionAccess().getSemicolonKeyword_4());
+ }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleLhs
+entryRuleLhs returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getLhsRule()); }
+ iv_ruleLhs=ruleLhs
+ { $current=$iv_ruleLhs.current; }
+ EOF
+;
+
+// Rule Lhs
+ruleLhs returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((
+(
+ {
+ newCompositeNode(grammarAccess.getLhsAccess().getFailuresInputExpressionParserRuleCall_0_0());
+ }
+ lv_failures_0_0=ruleInputExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getLhsRule());
+ }
+ add(
+ $current,
+ "failures",
+ lv_failures_0_0,
+ "org.polarsys.chess.xtext.FlaDsl.InputExpression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)( otherlv_1=','
+ {
+ newLeafNode(otherlv_1, grammarAccess.getLhsAccess().getCommaKeyword_1_0());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getLhsAccess().getFailuresInputExpressionParserRuleCall_1_1_0());
+ }
+ lv_failures_2_0=ruleInputExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getLhsRule());
+ }
+ add(
+ $current,
+ "failures",
+ lv_failures_2_0,
+ "org.polarsys.chess.xtext.FlaDsl.InputExpression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))*)
+;
+
+
+
+
+
+// Entry rule entryRuleRhs
+entryRuleRhs returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getRhsRule()); }
+ iv_ruleRhs=ruleRhs
+ { $current=$iv_ruleRhs.current; }
+ EOF
+;
+
+// Rule Rhs
+ruleRhs returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((
+(
+ {
+ newCompositeNode(grammarAccess.getRhsAccess().getFailuresOutputExpressionParserRuleCall_0_0());
+ }
+ lv_failures_0_0=ruleOutputExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getRhsRule());
+ }
+ add(
+ $current,
+ "failures",
+ lv_failures_0_0,
+ "org.polarsys.chess.xtext.FlaDsl.OutputExpression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)( otherlv_1=','
+ {
+ newLeafNode(otherlv_1, grammarAccess.getRhsAccess().getCommaKeyword_1_0());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getRhsAccess().getFailuresOutputExpressionParserRuleCall_1_1_0());
+ }
+ lv_failures_2_0=ruleOutputExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getRhsRule());
+ }
+ add(
+ $current,
+ "failures",
+ lv_failures_2_0,
+ "org.polarsys.chess.xtext.FlaDsl.OutputExpression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))*)
+;
+
+
+
+
+
+// Entry rule entryRuleInputExpression
+entryRuleInputExpression returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getInputExpressionRule()); }
+ iv_ruleInputExpression=ruleInputExpression
+ { $current=$iv_ruleInputExpression.current; }
+ EOF
+;
+
+// Rule InputExpression
+ruleInputExpression returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+(((
+(
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getInputExpressionRule());
+ }
+ }
+ otherlv_0=RULE_ID
+ {
+ newLeafNode(otherlv_0, grammarAccess.getInputExpressionAccess().getRefPortCrossReference_0_0_0());
+ }
+
+)
+)
+ | otherlv_1='undefined'
+ {
+ newLeafNode(otherlv_1, grammarAccess.getInputExpressionAccess().getUndefinedKeyword_0_1());
+ }
+) otherlv_2='.'
+ {
+ newLeafNode(otherlv_2, grammarAccess.getInputExpressionAccess().getFullStopKeyword_1());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getInputExpressionAccess().getFailureExprInFailureExprParserRuleCall_2_0());
+ }
+ lv_failureExpr_3_0=ruleInFailureExpr {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getInputExpressionRule());
+ }
+ set(
+ $current,
+ "failureExpr",
+ lv_failureExpr_3_0,
+ "org.polarsys.chess.xtext.FlaDsl.InFailureExpr");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))
+;
+
+
+
+
+
+// Entry rule entryRuleOutputExpression
+entryRuleOutputExpression returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getOutputExpressionRule()); }
+ iv_ruleOutputExpression=ruleOutputExpression
+ { $current=$iv_ruleOutputExpression.current; }
+ EOF
+;
+
+// Rule OutputExpression
+ruleOutputExpression returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+(((
+(
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getOutputExpressionRule());
+ }
+ }
+ otherlv_0=RULE_ID
+ {
+ newLeafNode(otherlv_0, grammarAccess.getOutputExpressionAccess().getRefPortCrossReference_0_0_0());
+ }
+
+)
+)
+ | otherlv_1='undefined'
+ {
+ newLeafNode(otherlv_1, grammarAccess.getOutputExpressionAccess().getUndefinedKeyword_0_1());
+ }
+) otherlv_2='.'
+ {
+ newLeafNode(otherlv_2, grammarAccess.getOutputExpressionAccess().getFullStopKeyword_1());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getOutputExpressionAccess().getFailureExprOutFailureExprParserRuleCall_2_0());
+ }
+ lv_failureExpr_3_0=ruleOutFailureExpr {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getOutputExpressionRule());
+ }
+ set(
+ $current,
+ "failureExpr",
+ lv_failureExpr_3_0,
+ "org.polarsys.chess.xtext.FlaDsl.OutFailureExpr");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))
+;
+
+
+
+
+
+// Entry rule entryRuleInFailureExpr
+entryRuleInFailureExpr returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getInFailureExprRule()); }
+ iv_ruleInFailureExpr=ruleInFailureExpr
+ { $current=$iv_ruleInFailureExpr.current; }
+ EOF
+;
+
+// Rule InFailureExpr
+ruleInFailureExpr returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((
+(
+ {
+ newCompositeNode(grammarAccess.getInFailureExprAccess().getFailuresWildcardDefinitionParserRuleCall_0_0());
+ }
+ lv_failures_0_0=ruleWildcardDefinition {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getInFailureExprRule());
+ }
+ add(
+ $current,
+ "failures",
+ lv_failures_0_0,
+ "org.polarsys.chess.xtext.FlaDsl.WildcardDefinition");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)
+ |(
+(
+ {
+ newCompositeNode(grammarAccess.getInFailureExprAccess().getFailuresNoFailureDefinitionParserRuleCall_1_0());
+ }
+ lv_failures_1_0=ruleNoFailureDefinition {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getInFailureExprRule());
+ }
+ add(
+ $current,
+ "failures",
+ lv_failures_1_0,
+ "org.polarsys.chess.xtext.FlaDsl.NoFailureDefinition");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)
+ |(
+(
+ {
+ newCompositeNode(grammarAccess.getInFailureExprAccess().getFailuresFailureDefinitionParserRuleCall_2_0());
+ }
+ lv_failures_2_0=ruleFailureDefinition {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getInFailureExprRule());
+ }
+ add(
+ $current,
+ "failures",
+ lv_failures_2_0,
+ "org.polarsys.chess.xtext.FlaDsl.FailureDefinition");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)
+ |( otherlv_3='{'
+ {
+ newLeafNode(otherlv_3, grammarAccess.getInFailureExprAccess().getLeftCurlyBracketKeyword_3_0());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getInFailureExprAccess().getFailuresFailureDefinitionParserRuleCall_3_1_0());
+ }
+ lv_failures_4_0=ruleFailureDefinition {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getInFailureExprRule());
+ }
+ add(
+ $current,
+ "failures",
+ lv_failures_4_0,
+ "org.polarsys.chess.xtext.FlaDsl.FailureDefinition");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)( otherlv_5=','
+ {
+ newLeafNode(otherlv_5, grammarAccess.getInFailureExprAccess().getCommaKeyword_3_2_0());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getInFailureExprAccess().getFailuresFailureDefinitionParserRuleCall_3_2_1_0());
+ }
+ lv_failures_6_0=ruleFailureDefinition {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getInFailureExprRule());
+ }
+ add(
+ $current,
+ "failures",
+ lv_failures_6_0,
+ "org.polarsys.chess.xtext.FlaDsl.FailureDefinition");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))+ otherlv_7='}'
+ {
+ newLeafNode(otherlv_7, grammarAccess.getInFailureExprAccess().getRightCurlyBracketKeyword_3_3());
+ }
+)
+ |(
+(
+ {
+ newCompositeNode(grammarAccess.getInFailureExprAccess().getFailuresVariableDefinitionParserRuleCall_4_0());
+ }
+ lv_failures_8_0=ruleVariableDefinition {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getInFailureExprRule());
+ }
+ add(
+ $current,
+ "failures",
+ lv_failures_8_0,
+ "org.polarsys.chess.xtext.FlaDsl.VariableDefinition");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))
+;
+
+
+
+
+
+// Entry rule entryRuleOutFailureExpr
+entryRuleOutFailureExpr returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getOutFailureExprRule()); }
+ iv_ruleOutFailureExpr=ruleOutFailureExpr
+ { $current=$iv_ruleOutFailureExpr.current; }
+ EOF
+;
+
+// Rule OutFailureExpr
+ruleOutFailureExpr returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((
+(
+ {
+ newCompositeNode(grammarAccess.getOutFailureExprAccess().getFailuresNoFailureDefinitionParserRuleCall_0_0());
+ }
+ lv_failures_0_0=ruleNoFailureDefinition {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getOutFailureExprRule());
+ }
+ add(
+ $current,
+ "failures",
+ lv_failures_0_0,
+ "org.polarsys.chess.xtext.FlaDsl.NoFailureDefinition");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)
+ |(
+(
+ {
+ newCompositeNode(grammarAccess.getOutFailureExprAccess().getFailuresComplexNofailureDefinitionParserRuleCall_1_0());
+ }
+ lv_failures_1_0=ruleComplexNofailureDefinition {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getOutFailureExprRule());
+ }
+ add(
+ $current,
+ "failures",
+ lv_failures_1_0,
+ "org.polarsys.chess.xtext.FlaDsl.ComplexNofailureDefinition");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)
+ |(
+(
+ {
+ newCompositeNode(grammarAccess.getOutFailureExprAccess().getFailuresFailureDefinitionParserRuleCall_2_0());
+ }
+ lv_failures_2_0=ruleFailureDefinition {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getOutFailureExprRule());
+ }
+ add(
+ $current,
+ "failures",
+ lv_failures_2_0,
+ "org.polarsys.chess.xtext.FlaDsl.FailureDefinition");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)
+ |( otherlv_3='{'
+ {
+ newLeafNode(otherlv_3, grammarAccess.getOutFailureExprAccess().getLeftCurlyBracketKeyword_3_0());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getOutFailureExprAccess().getFailuresFailureDefinitionParserRuleCall_3_1_0());
+ }
+ lv_failures_4_0=ruleFailureDefinition {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getOutFailureExprRule());
+ }
+ add(
+ $current,
+ "failures",
+ lv_failures_4_0,
+ "org.polarsys.chess.xtext.FlaDsl.FailureDefinition");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)( otherlv_5=','
+ {
+ newLeafNode(otherlv_5, grammarAccess.getOutFailureExprAccess().getCommaKeyword_3_2_0());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getOutFailureExprAccess().getFailuresFailureDefinitionParserRuleCall_3_2_1_0());
+ }
+ lv_failures_6_0=ruleFailureDefinition {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getOutFailureExprRule());
+ }
+ add(
+ $current,
+ "failures",
+ lv_failures_6_0,
+ "org.polarsys.chess.xtext.FlaDsl.FailureDefinition");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))+ otherlv_7='}'
+ {
+ newLeafNode(otherlv_7, grammarAccess.getOutFailureExprAccess().getRightCurlyBracketKeyword_3_3());
+ }
+)
+ |(
+(
+ {
+ newCompositeNode(grammarAccess.getOutFailureExprAccess().getFailuresVariableDefinitionParserRuleCall_4_0());
+ }
+ lv_failures_8_0=ruleVariableDefinition {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getOutFailureExprRule());
+ }
+ add(
+ $current,
+ "failures",
+ lv_failures_8_0,
+ "org.polarsys.chess.xtext.FlaDsl.VariableDefinition");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))
+;
+
+
+
+
+
+
+
+// Entry rule entryRuleFailureDefinition
+entryRuleFailureDefinition returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getFailureDefinitionRule()); }
+ iv_ruleFailureDefinition=ruleFailureDefinition
+ { $current=$iv_ruleFailureDefinition.current; }
+ EOF
+;
+
+// Rule FailureDefinition
+ruleFailureDefinition returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((
+ {
+ $current = forceCreateModelElement(
+ grammarAccess.getFailureDefinitionAccess().getFailureDefinitionAction_0(),
+ $current);
+ }
+)(
+(
+ {
+ newCompositeNode(grammarAccess.getFailureDefinitionAccess().getTypeActualFailureTypeEnumRuleCall_1_0());
+ }
+ lv_type_1_0=ruleActualFailureType {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getFailureDefinitionRule());
+ }
+ set(
+ $current,
+ "type",
+ lv_type_1_0,
+ "org.polarsys.chess.xtext.FlaDsl.ActualFailureType");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)( otherlv_2='.'
+ {
+ newLeafNode(otherlv_2, grammarAccess.getFailureDefinitionAccess().getFullStopKeyword_2_0());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getFailureDefinitionAccess().getAcidAvoidableACIDavoidableParserRuleCall_2_1_0());
+ }
+ lv_acidAvoidable_3_0=ruleACIDavoidable {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getFailureDefinitionRule());
+ }
+ set(
+ $current,
+ "acidAvoidable",
+ lv_acidAvoidable_3_0,
+ "org.polarsys.chess.xtext.FlaDsl.ACIDavoidable");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))?)
+;
+
+
+
+
+
+// Entry rule entryRuleNoFailureDefinition
+entryRuleNoFailureDefinition returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getNoFailureDefinitionRule()); }
+ iv_ruleNoFailureDefinition=ruleNoFailureDefinition
+ { $current=$iv_ruleNoFailureDefinition.current; }
+ EOF
+;
+
+// Rule NoFailureDefinition
+ruleNoFailureDefinition returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((
+ {
+ $current = forceCreateModelElement(
+ grammarAccess.getNoFailureDefinitionAccess().getNoFailureDefinitionAction_0(),
+ $current);
+ }
+) otherlv_1='noFailure'
+ {
+ newLeafNode(otherlv_1, grammarAccess.getNoFailureDefinitionAccess().getNoFailureKeyword_1());
+ }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleComplexNofailureDefinition
+entryRuleComplexNofailureDefinition returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getComplexNofailureDefinitionRule()); }
+ iv_ruleComplexNofailureDefinition=ruleComplexNofailureDefinition
+ { $current=$iv_ruleComplexNofailureDefinition.current; }
+ EOF
+;
+
+// Rule ComplexNofailureDefinition
+ruleComplexNofailureDefinition returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((
+ {
+ $current = forceCreateModelElement(
+ grammarAccess.getComplexNofailureDefinitionAccess().getNoFailureDefinitionAction_0(),
+ $current);
+ }
+) otherlv_1='noFailure'
+ {
+ newLeafNode(otherlv_1, grammarAccess.getComplexNofailureDefinitionAccess().getNoFailureKeyword_1());
+ }
+ otherlv_2='.'
+ {
+ newLeafNode(otherlv_2, grammarAccess.getComplexNofailureDefinitionAccess().getFullStopKeyword_2());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getComplexNofailureDefinitionAccess().getAcidMitigationACIDMitigationParserRuleCall_3_0());
+ }
+ lv_acidMitigation_3_0=ruleACIDMitigation {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getComplexNofailureDefinitionRule());
+ }
+ set(
+ $current,
+ "acidMitigation",
+ lv_acidMitigation_3_0,
+ "org.polarsys.chess.xtext.FlaDsl.ACIDMitigation");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))
+;
+
+
+
+
+
+// Entry rule entryRuleWildcardDefinition
+entryRuleWildcardDefinition returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getWildcardDefinitionRule()); }
+ iv_ruleWildcardDefinition=ruleWildcardDefinition
+ { $current=$iv_ruleWildcardDefinition.current; }
+ EOF
+;
+
+// Rule WildcardDefinition
+ruleWildcardDefinition returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((
+ {
+ $current = forceCreateModelElement(
+ grammarAccess.getWildcardDefinitionAccess().getWildcardDefinitionAction_0(),
+ $current);
+ }
+) otherlv_1='wildcard'
+ {
+ newLeafNode(otherlv_1, grammarAccess.getWildcardDefinitionAccess().getWildcardKeyword_1());
+ }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleVariableDefinition
+entryRuleVariableDefinition returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getVariableDefinitionRule()); }
+ iv_ruleVariableDefinition=ruleVariableDefinition
+ { $current=$iv_ruleVariableDefinition.current; }
+ EOF
+;
+
+// Rule VariableDefinition
+ruleVariableDefinition returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((
+ {
+ $current = forceCreateModelElement(
+ grammarAccess.getVariableDefinitionAccess().getVariableDefinitionAction_0(),
+ $current);
+ }
+)(
+(
+ lv_variableName_1_0=RULE_ID
+ {
+ newLeafNode(lv_variableName_1_0, grammarAccess.getVariableDefinitionAccess().getVariableNameIDTerminalRuleCall_1_0());
+ }
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getVariableDefinitionRule());
+ }
+ setWithLastConsumed(
+ $current,
+ "variableName",
+ lv_variableName_1_0,
+ "org.eclipse.xtext.common.Terminals.ID");
+ }
+
+)
+))
+;
+
+
+
+
+
+// Entry rule entryRuleACIDavoidable
+entryRuleACIDavoidable returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getACIDavoidableRule()); }
+ iv_ruleACIDavoidable=ruleACIDavoidable
+ { $current=$iv_ruleACIDavoidable.current; }
+ EOF
+;
+
+// Rule ACIDavoidable
+ruleACIDavoidable returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((
+(
+ {
+ newCompositeNode(grammarAccess.getACIDavoidableAccess().getAAavoidableEnumRuleCall_0_0());
+ }
+ lv_a_0_0=ruleAavoidable {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getACIDavoidableRule());
+ }
+ set(
+ $current,
+ "a",
+ lv_a_0_0,
+ "org.polarsys.chess.xtext.FlaDsl.Aavoidable");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+) otherlv_1='.'
+ {
+ newLeafNode(otherlv_1, grammarAccess.getACIDavoidableAccess().getFullStopKeyword_1());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getACIDavoidableAccess().getCCavoidableEnumRuleCall_2_0());
+ }
+ lv_c_2_0=ruleCavoidable {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getACIDavoidableRule());
+ }
+ set(
+ $current,
+ "c",
+ lv_c_2_0,
+ "org.polarsys.chess.xtext.FlaDsl.Cavoidable");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+) otherlv_3='.'
+ {
+ newLeafNode(otherlv_3, grammarAccess.getACIDavoidableAccess().getFullStopKeyword_3());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getACIDavoidableAccess().getIIavoidableEnumRuleCall_4_0());
+ }
+ lv_i_4_0=ruleIavoidable {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getACIDavoidableRule());
+ }
+ set(
+ $current,
+ "i",
+ lv_i_4_0,
+ "org.polarsys.chess.xtext.FlaDsl.Iavoidable");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+) otherlv_5='.'
+ {
+ newLeafNode(otherlv_5, grammarAccess.getACIDavoidableAccess().getFullStopKeyword_5());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getACIDavoidableAccess().getDDavoidableEnumRuleCall_6_0());
+ }
+ lv_d_6_0=ruleDavoidable {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getACIDavoidableRule());
+ }
+ set(
+ $current,
+ "d",
+ lv_d_6_0,
+ "org.polarsys.chess.xtext.FlaDsl.Davoidable");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))
+;
+
+
+
+
+
+// Entry rule entryRuleACIDMitigation
+entryRuleACIDMitigation returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getACIDMitigationRule()); }
+ iv_ruleACIDMitigation=ruleACIDMitigation
+ { $current=$iv_ruleACIDMitigation.current; }
+ EOF
+;
+
+// Rule ACIDMitigation
+ruleACIDMitigation returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((
+(
+ {
+ newCompositeNode(grammarAccess.getACIDMitigationAccess().getAAmitigationEnumRuleCall_0_0());
+ }
+ lv_a_0_0=ruleAmitigation {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getACIDMitigationRule());
+ }
+ set(
+ $current,
+ "a",
+ lv_a_0_0,
+ "org.polarsys.chess.xtext.FlaDsl.Amitigation");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+) otherlv_1='.'
+ {
+ newLeafNode(otherlv_1, grammarAccess.getACIDMitigationAccess().getFullStopKeyword_1());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getACIDMitigationAccess().getCCmitigationEnumRuleCall_2_0());
+ }
+ lv_c_2_0=ruleCmitigation {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getACIDMitigationRule());
+ }
+ set(
+ $current,
+ "c",
+ lv_c_2_0,
+ "org.polarsys.chess.xtext.FlaDsl.Cmitigation");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+) otherlv_3='.'
+ {
+ newLeafNode(otherlv_3, grammarAccess.getACIDMitigationAccess().getFullStopKeyword_3());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getACIDMitigationAccess().getIImitigationEnumRuleCall_4_0());
+ }
+ lv_i_4_0=ruleImitigation {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getACIDMitigationRule());
+ }
+ set(
+ $current,
+ "i",
+ lv_i_4_0,
+ "org.polarsys.chess.xtext.FlaDsl.Imitigation");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+) otherlv_5='.'
+ {
+ newLeafNode(otherlv_5, grammarAccess.getACIDMitigationAccess().getFullStopKeyword_5());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getACIDMitigationAccess().getDDmitigationEnumRuleCall_6_0());
+ }
+ lv_d_6_0=ruleDmitigation {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getACIDMitigationRule());
+ }
+ set(
+ $current,
+ "d",
+ lv_d_6_0,
+ "org.polarsys.chess.xtext.FlaDsl.Dmitigation");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))
+;
+
+
+
+
+
+
+
+
+
+// Rule ActualFailureType
+ruleActualFailureType returns [Enumerator current=null]
+ @init { enterRule(); }
+ @after { leaveRule(); }:
+(( enumLiteral_0='early'
+ {
+ $current = grammarAccess.getActualFailureTypeAccess().getEARLYEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
+ newLeafNode(enumLiteral_0, grammarAccess.getActualFailureTypeAccess().getEARLYEnumLiteralDeclaration_0());
+ }
+)
+ |( enumLiteral_1='late'
+ {
+ $current = grammarAccess.getActualFailureTypeAccess().getLATEEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
+ newLeafNode(enumLiteral_1, grammarAccess.getActualFailureTypeAccess().getLATEEnumLiteralDeclaration_1());
+ }
+)
+ |( enumLiteral_2='commission'
+ {
+ $current = grammarAccess.getActualFailureTypeAccess().getCOMMISSIONEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
+ newLeafNode(enumLiteral_2, grammarAccess.getActualFailureTypeAccess().getCOMMISSIONEnumLiteralDeclaration_2());
+ }
+)
+ |( enumLiteral_3='omission'
+ {
+ $current = grammarAccess.getActualFailureTypeAccess().getOMISSIONEnumLiteralDeclaration_3().getEnumLiteral().getInstance();
+ newLeafNode(enumLiteral_3, grammarAccess.getActualFailureTypeAccess().getOMISSIONEnumLiteralDeclaration_3());
+ }
+)
+ |( enumLiteral_4='valueSubtle'
+ {
+ $current = grammarAccess.getActualFailureTypeAccess().getVALUE_SUBTLEEnumLiteralDeclaration_4().getEnumLiteral().getInstance();
+ newLeafNode(enumLiteral_4, grammarAccess.getActualFailureTypeAccess().getVALUE_SUBTLEEnumLiteralDeclaration_4());
+ }
+)
+ |( enumLiteral_5='valueCoarse'
+ {
+ $current = grammarAccess.getActualFailureTypeAccess().getVALUE_COARSEEnumLiteralDeclaration_5().getEnumLiteral().getInstance();
+ newLeafNode(enumLiteral_5, grammarAccess.getActualFailureTypeAccess().getVALUE_COARSEEnumLiteralDeclaration_5());
+ }
+));
+
+
+
+
+
+
+
+// Rule Aavoidable
+ruleAavoidable returns [Enumerator current=null]
+ @init { enterRule(); }
+ @after { leaveRule(); }:
+(( enumLiteral_0='incompletion'
+ {
+ $current = grammarAccess.getAavoidableAccess().getINCOMPLETIONEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
+ newLeafNode(enumLiteral_0, grammarAccess.getAavoidableAccess().getINCOMPLETIONEnumLiteralDeclaration_0());
+ }
+)
+ |( enumLiteral_1='none'
+ {
+ $current = grammarAccess.getAavoidableAccess().getNONEEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
+ newLeafNode(enumLiteral_1, grammarAccess.getAavoidableAccess().getNONEEnumLiteralDeclaration_1());
+ }
+)
+ |( enumLiteral_2='unspecified'
+ {
+ $current = grammarAccess.getAavoidableAccess().getUNSPECIFIEDEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
+ newLeafNode(enumLiteral_2, grammarAccess.getAavoidableAccess().getUNSPECIFIEDEnumLiteralDeclaration_2());
+ }
+));
+
+
+
+// Rule Cavoidable
+ruleCavoidable returns [Enumerator current=null]
+ @init { enterRule(); }
+ @after { leaveRule(); }:
+(( enumLiteral_0='inconsistency'
+ {
+ $current = grammarAccess.getCavoidableAccess().getINCONSISTENCYEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
+ newLeafNode(enumLiteral_0, grammarAccess.getCavoidableAccess().getINCONSISTENCYEnumLiteralDeclaration_0());
+ }
+)
+ |( enumLiteral_1='none'
+ {
+ $current = grammarAccess.getCavoidableAccess().getNONEEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
+ newLeafNode(enumLiteral_1, grammarAccess.getCavoidableAccess().getNONEEnumLiteralDeclaration_1());
+ }
+)
+ |( enumLiteral_2='unspecified'
+ {
+ $current = grammarAccess.getCavoidableAccess().getUNSPECIFIEDEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
+ newLeafNode(enumLiteral_2, grammarAccess.getCavoidableAccess().getUNSPECIFIEDEnumLiteralDeclaration_2());
+ }
+));
+
+
+
+// Rule Iavoidable
+ruleIavoidable returns [Enumerator current=null]
+ @init { enterRule(); }
+ @after { leaveRule(); }:
+(( enumLiteral_0='interference'
+ {
+ $current = grammarAccess.getIavoidableAccess().getINTERFERENCEEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
+ newLeafNode(enumLiteral_0, grammarAccess.getIavoidableAccess().getINTERFERENCEEnumLiteralDeclaration_0());
+ }
+)
+ |( enumLiteral_1='none'
+ {
+ $current = grammarAccess.getIavoidableAccess().getNONEEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
+ newLeafNode(enumLiteral_1, grammarAccess.getIavoidableAccess().getNONEEnumLiteralDeclaration_1());
+ }
+)
+ |( enumLiteral_2='unspecified'
+ {
+ $current = grammarAccess.getIavoidableAccess().getUNSPECIFIEDEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
+ newLeafNode(enumLiteral_2, grammarAccess.getIavoidableAccess().getUNSPECIFIEDEnumLiteralDeclaration_2());
+ }
+));
+
+
+
+// Rule Davoidable
+ruleDavoidable returns [Enumerator current=null]
+ @init { enterRule(); }
+ @after { leaveRule(); }:
+(( enumLiteral_0='impermanence'
+ {
+ $current = grammarAccess.getDavoidableAccess().getIMPERMANENCEEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
+ newLeafNode(enumLiteral_0, grammarAccess.getDavoidableAccess().getIMPERMANENCEEnumLiteralDeclaration_0());
+ }
+)
+ |( enumLiteral_1='none'
+ {
+ $current = grammarAccess.getDavoidableAccess().getNONEEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
+ newLeafNode(enumLiteral_1, grammarAccess.getDavoidableAccess().getNONEEnumLiteralDeclaration_1());
+ }
+)
+ |( enumLiteral_2='unspecified'
+ {
+ $current = grammarAccess.getDavoidableAccess().getUNSPECIFIEDEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
+ newLeafNode(enumLiteral_2, grammarAccess.getDavoidableAccess().getUNSPECIFIEDEnumLiteralDeclaration_2());
+ }
+));
+
+
+
+// Rule Amitigation
+ruleAmitigation returns [Enumerator current=null]
+ @init { enterRule(); }
+ @after { leaveRule(); }:
+(( enumLiteral_0='all_or_nothing'
+ {
+ $current = grammarAccess.getAmitigationAccess().getALL_OR_NOTHINGEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
+ newLeafNode(enumLiteral_0, grammarAccess.getAmitigationAccess().getALL_OR_NOTHINGEnumLiteralDeclaration_0());
+ }
+)
+ |( enumLiteral_1='all_or_compensation'
+ {
+ $current = grammarAccess.getAmitigationAccess().getALL_OR_COMPENSATIONEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
+ newLeafNode(enumLiteral_1, grammarAccess.getAmitigationAccess().getALL_OR_COMPENSATIONEnumLiteralDeclaration_1());
+ }
+)
+ |( enumLiteral_2='none'
+ {
+ $current = grammarAccess.getAmitigationAccess().getNONEEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
+ newLeafNode(enumLiteral_2, grammarAccess.getAmitigationAccess().getNONEEnumLiteralDeclaration_2());
+ }
+)
+ |( enumLiteral_3='unspecified'
+ {
+ $current = grammarAccess.getAmitigationAccess().getUNSPECIFIEDEnumLiteralDeclaration_3().getEnumLiteral().getInstance();
+ newLeafNode(enumLiteral_3, grammarAccess.getAmitigationAccess().getUNSPECIFIEDEnumLiteralDeclaration_3());
+ }
+));
+
+
+
+// Rule Cmitigation
+ruleCmitigation returns [Enumerator current=null]
+ @init { enterRule(); }
+ @after { leaveRule(); }:
+(( enumLiteral_0='full_consistency'
+ {
+ $current = grammarAccess.getCmitigationAccess().getFULL_CONSISTENCYEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
+ newLeafNode(enumLiteral_0, grammarAccess.getCmitigationAccess().getFULL_CONSISTENCYEnumLiteralDeclaration_0());
+ }
+)
+ |( enumLiteral_1='range_violation_allowed'
+ {
+ $current = grammarAccess.getCmitigationAccess().getRANGE_VIOLATION_ALLOWEDEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
+ newLeafNode(enumLiteral_1, grammarAccess.getCmitigationAccess().getRANGE_VIOLATION_ALLOWEDEnumLiteralDeclaration_1());
+ }
+)
+ |( enumLiteral_2='none'
+ {
+ $current = grammarAccess.getCmitigationAccess().getNONEEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
+ newLeafNode(enumLiteral_2, grammarAccess.getCmitigationAccess().getNONEEnumLiteralDeclaration_2());
+ }
+)
+ |( enumLiteral_3='unspecified'
+ {
+ $current = grammarAccess.getCmitigationAccess().getUNSPECIFIEDEnumLiteralDeclaration_3().getEnumLiteral().getInstance();
+ newLeafNode(enumLiteral_3, grammarAccess.getCmitigationAccess().getUNSPECIFIEDEnumLiteralDeclaration_3());
+ }
+));
+
+
+
+// Rule Imitigation
+ruleImitigation returns [Enumerator current=null]
+ @init { enterRule(); }
+ @after { leaveRule(); }:
+(( enumLiteral_0='serializable'
+ {
+ $current = grammarAccess.getImitigationAccess().getSERIALIZABLEEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
+ newLeafNode(enumLiteral_0, grammarAccess.getImitigationAccess().getSERIALIZABLEEnumLiteralDeclaration_0());
+ }
+)
+ |( enumLiteral_1='portable_level'
+ {
+ $current = grammarAccess.getImitigationAccess().getPORTABLE_LEVELEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
+ newLeafNode(enumLiteral_1, grammarAccess.getImitigationAccess().getPORTABLE_LEVELEnumLiteralDeclaration_1());
+ }
+)
+ |( enumLiteral_2='none'
+ {
+ $current = grammarAccess.getImitigationAccess().getNONEEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
+ newLeafNode(enumLiteral_2, grammarAccess.getImitigationAccess().getNONEEnumLiteralDeclaration_2());
+ }
+)
+ |( enumLiteral_3='unspecified'
+ {
+ $current = grammarAccess.getImitigationAccess().getUNSPECIFIEDEnumLiteralDeclaration_3().getEnumLiteral().getInstance();
+ newLeafNode(enumLiteral_3, grammarAccess.getImitigationAccess().getUNSPECIFIEDEnumLiteralDeclaration_3());
+ }
+));
+
+
+
+// Rule Dmitigation
+ruleDmitigation returns [Enumerator current=null]
+ @init { enterRule(); }
+ @after { leaveRule(); }:
+(( enumLiteral_0='no_loss'
+ {
+ $current = grammarAccess.getDmitigationAccess().getNO_LOSSEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
+ newLeafNode(enumLiteral_0, grammarAccess.getDmitigationAccess().getNO_LOSSEnumLiteralDeclaration_0());
+ }
+)
+ |( enumLiteral_1='partial_loss_allowed'
+ {
+ $current = grammarAccess.getDmitigationAccess().getPARTIAL_LOSS_ALLOWEDEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
+ newLeafNode(enumLiteral_1, grammarAccess.getDmitigationAccess().getPARTIAL_LOSS_ALLOWEDEnumLiteralDeclaration_1());
+ }
+)
+ |( enumLiteral_2='none'
+ {
+ $current = grammarAccess.getDmitigationAccess().getNONEEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
+ newLeafNode(enumLiteral_2, grammarAccess.getDmitigationAccess().getNONEEnumLiteralDeclaration_2());
+ }
+)
+ |( enumLiteral_3='unspecified'
+ {
+ $current = grammarAccess.getDmitigationAccess().getUNSPECIFIEDEnumLiteralDeclaration_3().getEnumLiteral().getInstance();
+ newLeafNode(enumLiteral_3, grammarAccess.getDmitigationAccess().getUNSPECIFIEDEnumLiteralDeclaration_3());
+ }
+));
+
+
+
+RULE_ID : '^'? ('a'..'z'|'A'..'Z'|'_') ('a'..'z'|'A'..'Z'|'_'|'0'..'9')*;
+
+RULE_INT : ('0'..'9')+;
+
+RULE_STRING : ('"' ('\\' .|~(('\\'|'"')))* '"'|'\'' ('\\' .|~(('\\'|'\'')))* '\'');
+
+RULE_ML_COMMENT : '/*' ( options {greedy=false;} : . )*'*/';
+
+RULE_SL_COMMENT : '//' ~(('\n'|'\r'))* ('\r'? '\n')?;
+
+RULE_WS : (' '|'\t'|'\r'|'\n')+;
+
+RULE_ANY_OTHER : .;
+
+
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/parser/antlr/internal/InternalFlaDsl.tokens b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/parser/antlr/internal/InternalFlaDsl.tokens
new file mode 100644
index 0000000..9ed7021
--- /dev/null
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/parser/antlr/internal/InternalFlaDsl.tokens
@@ -0,0 +1,67 @@
+','=14
+'->'=12
+'.'=16
+';'=13
+'FLA:'=11
+'all_or_compensation'=34
+'all_or_nothing'=33
+'commission'=23
+'early'=21
+'full_consistency'=35
+'impermanence'=32
+'incompletion'=27
+'inconsistency'=30
+'interference'=31
+'late'=22
+'noFailure'=19
+'no_loss'=39
+'none'=28
+'omission'=24
+'partial_loss_allowed'=40
+'portable_level'=38
+'range_violation_allowed'=36
+'serializable'=37
+'undefined'=15
+'unspecified'=29
+'valueCoarse'=26
+'valueSubtle'=25
+'wildcard'=20
+'{'=17
+'}'=18
+RULE_ANY_OTHER=10
+RULE_ID=4
+RULE_INT=5
+RULE_ML_COMMENT=7
+RULE_SL_COMMENT=8
+RULE_STRING=6
+RULE_WS=9
+T__11=11
+T__12=12
+T__13=13
+T__14=14
+T__15=15
+T__16=16
+T__17=17
+T__18=18
+T__19=19
+T__20=20
+T__21=21
+T__22=22
+T__23=23
+T__24=24
+T__25=25
+T__26=26
+T__27=27
+T__28=28
+T__29=29
+T__30=30
+T__31=31
+T__32=32
+T__33=33
+T__34=34
+T__35=35
+T__36=36
+T__37=37
+T__38=38
+T__39=39
+T__40=40
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/parser/antlr/internal/InternalFlaDslLexer.java b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/parser/antlr/internal/InternalFlaDslLexer.java
new file mode 100644
index 0000000..43a9ccc
--- /dev/null
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/parser/antlr/internal/InternalFlaDslLexer.java
@@ -0,0 +1,1897 @@
+package org.polarsys.chess.xtext.parser.antlr.internal;
+
+// Hack: Use our own Lexer superclass by means of import.
+// Currently there is no other way to specify the superclass for the lexer.
+import org.eclipse.xtext.parser.antlr.Lexer;
+
+
+import org.antlr.runtime.*;
+import java.util.Stack;
+import java.util.List;
+import java.util.ArrayList;
+
+@SuppressWarnings("all")
+public class InternalFlaDslLexer extends Lexer {
+ public static final int RULE_STRING=6;
+ public static final int RULE_SL_COMMENT=8;
+ public static final int T__19=19;
+ public static final int T__15=15;
+ public static final int T__37=37;
+ public static final int T__16=16;
+ public static final int T__38=38;
+ public static final int T__17=17;
+ public static final int T__39=39;
+ public static final int T__18=18;
+ public static final int T__11=11;
+ public static final int T__33=33;
+ public static final int T__12=12;
+ public static final int T__34=34;
+ public static final int T__13=13;
+ public static final int T__35=35;
+ public static final int T__14=14;
+ public static final int T__36=36;
+ public static final int EOF=-1;
+ public static final int T__30=30;
+ public static final int T__31=31;
+ public static final int T__32=32;
+ public static final int RULE_ID=4;
+ public static final int RULE_WS=9;
+ public static final int RULE_ANY_OTHER=10;
+ public static final int T__26=26;
+ public static final int T__27=27;
+ public static final int T__28=28;
+ public static final int RULE_INT=5;
+ public static final int T__29=29;
+ public static final int T__22=22;
+ public static final int RULE_ML_COMMENT=7;
+ public static final int T__23=23;
+ public static final int T__24=24;
+ public static final int T__25=25;
+ public static final int T__40=40;
+ public static final int T__20=20;
+ public static final int T__21=21;
+
+ // delegates
+ // delegators
+
+ public InternalFlaDslLexer() {;}
+ public InternalFlaDslLexer(CharStream input) {
+ this(input, new RecognizerSharedState());
+ }
+ public InternalFlaDslLexer(CharStream input, RecognizerSharedState state) {
+ super(input,state);
+
+ }
+ public String getGrammarFileName() { return "InternalFlaDsl.g"; }
+
+ // $ANTLR start "T__11"
+ public final void mT__11() throws RecognitionException {
+ try {
+ int _type = T__11;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalFlaDsl.g:11:7: ( 'FLA:' )
+ // InternalFlaDsl.g:11:9: 'FLA:'
+ {
+ match("FLA:");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__11"
+
+ // $ANTLR start "T__12"
+ public final void mT__12() throws RecognitionException {
+ try {
+ int _type = T__12;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalFlaDsl.g:12:7: ( '->' )
+ // InternalFlaDsl.g:12:9: '->'
+ {
+ match("->");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__12"
+
+ // $ANTLR start "T__13"
+ public final void mT__13() throws RecognitionException {
+ try {
+ int _type = T__13;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalFlaDsl.g:13:7: ( ';' )
+ // InternalFlaDsl.g:13:9: ';'
+ {
+ match(';');
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__13"
+
+ // $ANTLR start "T__14"
+ public final void mT__14() throws RecognitionException {
+ try {
+ int _type = T__14;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalFlaDsl.g:14:7: ( ',' )
+ // InternalFlaDsl.g:14:9: ','
+ {
+ match(',');
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__14"
+
+ // $ANTLR start "T__15"
+ public final void mT__15() throws RecognitionException {
+ try {
+ int _type = T__15;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalFlaDsl.g:15:7: ( 'undefined' )
+ // InternalFlaDsl.g:15:9: 'undefined'
+ {
+ match("undefined");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__15"
+
+ // $ANTLR start "T__16"
+ public final void mT__16() throws RecognitionException {
+ try {
+ int _type = T__16;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalFlaDsl.g:16:7: ( '.' )
+ // InternalFlaDsl.g:16:9: '.'
+ {
+ match('.');
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__16"
+
+ // $ANTLR start "T__17"
+ public final void mT__17() throws RecognitionException {
+ try {
+ int _type = T__17;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalFlaDsl.g:17:7: ( '{' )
+ // InternalFlaDsl.g:17:9: '{'
+ {
+ match('{');
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__17"
+
+ // $ANTLR start "T__18"
+ public final void mT__18() throws RecognitionException {
+ try {
+ int _type = T__18;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalFlaDsl.g:18:7: ( '}' )
+ // InternalFlaDsl.g:18:9: '}'
+ {
+ match('}');
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__18"
+
+ // $ANTLR start "T__19"
+ public final void mT__19() throws RecognitionException {
+ try {
+ int _type = T__19;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalFlaDsl.g:19:7: ( 'noFailure' )
+ // InternalFlaDsl.g:19:9: 'noFailure'
+ {
+ match("noFailure");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__19"
+
+ // $ANTLR start "T__20"
+ public final void mT__20() throws RecognitionException {
+ try {
+ int _type = T__20;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalFlaDsl.g:20:7: ( 'wildcard' )
+ // InternalFlaDsl.g:20:9: 'wildcard'
+ {
+ match("wildcard");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__20"
+
+ // $ANTLR start "T__21"
+ public final void mT__21() throws RecognitionException {
+ try {
+ int _type = T__21;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalFlaDsl.g:21:7: ( 'early' )
+ // InternalFlaDsl.g:21:9: 'early'
+ {
+ match("early");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__21"
+
+ // $ANTLR start "T__22"
+ public final void mT__22() throws RecognitionException {
+ try {
+ int _type = T__22;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalFlaDsl.g:22:7: ( 'late' )
+ // InternalFlaDsl.g:22:9: 'late'
+ {
+ match("late");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__22"
+
+ // $ANTLR start "T__23"
+ public final void mT__23() throws RecognitionException {
+ try {
+ int _type = T__23;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalFlaDsl.g:23:7: ( 'commission' )
+ // InternalFlaDsl.g:23:9: 'commission'
+ {
+ match("commission");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__23"
+
+ // $ANTLR start "T__24"
+ public final void mT__24() throws RecognitionException {
+ try {
+ int _type = T__24;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalFlaDsl.g:24:7: ( 'omission' )
+ // InternalFlaDsl.g:24:9: 'omission'
+ {
+ match("omission");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__24"
+
+ // $ANTLR start "T__25"
+ public final void mT__25() throws RecognitionException {
+ try {
+ int _type = T__25;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalFlaDsl.g:25:7: ( 'valueSubtle' )
+ // InternalFlaDsl.g:25:9: 'valueSubtle'
+ {
+ match("valueSubtle");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__25"
+
+ // $ANTLR start "T__26"
+ public final void mT__26() throws RecognitionException {
+ try {
+ int _type = T__26;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalFlaDsl.g:26:7: ( 'valueCoarse' )
+ // InternalFlaDsl.g:26:9: 'valueCoarse'
+ {
+ match("valueCoarse");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__26"
+
+ // $ANTLR start "T__27"
+ public final void mT__27() throws RecognitionException {
+ try {
+ int _type = T__27;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalFlaDsl.g:27:7: ( 'incompletion' )
+ // InternalFlaDsl.g:27:9: 'incompletion'
+ {
+ match("incompletion");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__27"
+
+ // $ANTLR start "T__28"
+ public final void mT__28() throws RecognitionException {
+ try {
+ int _type = T__28;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalFlaDsl.g:28:7: ( 'none' )
+ // InternalFlaDsl.g:28:9: 'none'
+ {
+ match("none");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__28"
+
+ // $ANTLR start "T__29"
+ public final void mT__29() throws RecognitionException {
+ try {
+ int _type = T__29;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalFlaDsl.g:29:7: ( 'unspecified' )
+ // InternalFlaDsl.g:29:9: 'unspecified'
+ {
+ match("unspecified");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__29"
+
+ // $ANTLR start "T__30"
+ public final void mT__30() throws RecognitionException {
+ try {
+ int _type = T__30;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalFlaDsl.g:30:7: ( 'inconsistency' )
+ // InternalFlaDsl.g:30:9: 'inconsistency'
+ {
+ match("inconsistency");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__30"
+
+ // $ANTLR start "T__31"
+ public final void mT__31() throws RecognitionException {
+ try {
+ int _type = T__31;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalFlaDsl.g:31:7: ( 'interference' )
+ // InternalFlaDsl.g:31:9: 'interference'
+ {
+ match("interference");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__31"
+
+ // $ANTLR start "T__32"
+ public final void mT__32() throws RecognitionException {
+ try {
+ int _type = T__32;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalFlaDsl.g:32:7: ( 'impermanence' )
+ // InternalFlaDsl.g:32:9: 'impermanence'
+ {
+ match("impermanence");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__32"
+
+ // $ANTLR start "T__33"
+ public final void mT__33() throws RecognitionException {
+ try {
+ int _type = T__33;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalFlaDsl.g:33:7: ( 'all_or_nothing' )
+ // InternalFlaDsl.g:33:9: 'all_or_nothing'
+ {
+ match("all_or_nothing");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__33"
+
+ // $ANTLR start "T__34"
+ public final void mT__34() throws RecognitionException {
+ try {
+ int _type = T__34;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalFlaDsl.g:34:7: ( 'all_or_compensation' )
+ // InternalFlaDsl.g:34:9: 'all_or_compensation'
+ {
+ match("all_or_compensation");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__34"
+
+ // $ANTLR start "T__35"
+ public final void mT__35() throws RecognitionException {
+ try {
+ int _type = T__35;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalFlaDsl.g:35:7: ( 'full_consistency' )
+ // InternalFlaDsl.g:35:9: 'full_consistency'
+ {
+ match("full_consistency");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__35"
+
+ // $ANTLR start "T__36"
+ public final void mT__36() throws RecognitionException {
+ try {
+ int _type = T__36;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalFlaDsl.g:36:7: ( 'range_violation_allowed' )
+ // InternalFlaDsl.g:36:9: 'range_violation_allowed'
+ {
+ match("range_violation_allowed");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__36"
+
+ // $ANTLR start "T__37"
+ public final void mT__37() throws RecognitionException {
+ try {
+ int _type = T__37;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalFlaDsl.g:37:7: ( 'serializable' )
+ // InternalFlaDsl.g:37:9: 'serializable'
+ {
+ match("serializable");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__37"
+
+ // $ANTLR start "T__38"
+ public final void mT__38() throws RecognitionException {
+ try {
+ int _type = T__38;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalFlaDsl.g:38:7: ( 'portable_level' )
+ // InternalFlaDsl.g:38:9: 'portable_level'
+ {
+ match("portable_level");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__38"
+
+ // $ANTLR start "T__39"
+ public final void mT__39() throws RecognitionException {
+ try {
+ int _type = T__39;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalFlaDsl.g:39:7: ( 'no_loss' )
+ // InternalFlaDsl.g:39:9: 'no_loss'
+ {
+ match("no_loss");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__39"
+
+ // $ANTLR start "T__40"
+ public final void mT__40() throws RecognitionException {
+ try {
+ int _type = T__40;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalFlaDsl.g:40:7: ( 'partial_loss_allowed' )
+ // InternalFlaDsl.g:40:9: 'partial_loss_allowed'
+ {
+ match("partial_loss_allowed");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__40"
+
+ // $ANTLR start "RULE_ID"
+ public final void mRULE_ID() throws RecognitionException {
+ try {
+ int _type = RULE_ID;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalFlaDsl.g:1423:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* )
+ // InternalFlaDsl.g:1423:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
+ {
+ // InternalFlaDsl.g:1423:11: ( '^' )?
+ int alt1=2;
+ int LA1_0 = input.LA(1);
+
+ if ( (LA1_0=='^') ) {
+ alt1=1;
+ }
+ switch (alt1) {
+ case 1 :
+ // InternalFlaDsl.g:1423:11: '^'
+ {
+ match('^');
+
+ }
+ break;
+
+ }
+
+ if ( (input.LA(1)>='A' && input.LA(1)<='Z')||input.LA(1)=='_'||(input.LA(1)>='a' && input.LA(1)<='z') ) {
+ input.consume();
+
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;}
+
+ // InternalFlaDsl.g:1423:40: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
+ loop2:
+ do {
+ int alt2=2;
+ int LA2_0 = input.LA(1);
+
+ if ( ((LA2_0>='0' && LA2_0<='9')||(LA2_0>='A' && LA2_0<='Z')||LA2_0=='_'||(LA2_0>='a' && LA2_0<='z')) ) {
+ alt2=1;
+ }
+
+
+ switch (alt2) {
+ case 1 :
+ // InternalFlaDsl.g:
+ {
+ if ( (input.LA(1)>='0' && input.LA(1)<='9')||(input.LA(1)>='A' && input.LA(1)<='Z')||input.LA(1)=='_'||(input.LA(1)>='a' && input.LA(1)<='z') ) {
+ input.consume();
+
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;}
+
+
+ }
+ break;
+
+ default :
+ break loop2;
+ }
+ } while (true);
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_ID"
+
+ // $ANTLR start "RULE_INT"
+ public final void mRULE_INT() throws RecognitionException {
+ try {
+ int _type = RULE_INT;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalFlaDsl.g:1425:10: ( ( '0' .. '9' )+ )
+ // InternalFlaDsl.g:1425:12: ( '0' .. '9' )+
+ {
+ // InternalFlaDsl.g:1425:12: ( '0' .. '9' )+
+ int cnt3=0;
+ loop3:
+ do {
+ int alt3=2;
+ int LA3_0 = input.LA(1);
+
+ if ( ((LA3_0>='0' && LA3_0<='9')) ) {
+ alt3=1;
+ }
+
+
+ switch (alt3) {
+ case 1 :
+ // InternalFlaDsl.g:1425:13: '0' .. '9'
+ {
+ matchRange('0','9');
+
+ }
+ break;
+
+ default :
+ if ( cnt3 >= 1 ) break loop3;
+ EarlyExitException eee =
+ new EarlyExitException(3, input);
+ throw eee;
+ }
+ cnt3++;
+ } while (true);
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_INT"
+
+ // $ANTLR start "RULE_STRING"
+ public final void mRULE_STRING() throws RecognitionException {
+ try {
+ int _type = RULE_STRING;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalFlaDsl.g:1427:13: ( ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' ) )
+ // InternalFlaDsl.g:1427:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
+ {
+ // InternalFlaDsl.g:1427:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
+ int alt6=2;
+ int LA6_0 = input.LA(1);
+
+ if ( (LA6_0=='\"') ) {
+ alt6=1;
+ }
+ else if ( (LA6_0=='\'') ) {
+ alt6=2;
+ }
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("", 6, 0, input);
+
+ throw nvae;
+ }
+ switch (alt6) {
+ case 1 :
+ // InternalFlaDsl.g:1427:16: '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"'
+ {
+ match('\"');
+ // InternalFlaDsl.g:1427:20: ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )*
+ loop4:
+ do {
+ int alt4=3;
+ int LA4_0 = input.LA(1);
+
+ if ( (LA4_0=='\\') ) {
+ alt4=1;
+ }
+ else if ( ((LA4_0>='\u0000' && LA4_0<='!')||(LA4_0>='#' && LA4_0<='[')||(LA4_0>=']' && LA4_0<='\uFFFF')) ) {
+ alt4=2;
+ }
+
+
+ switch (alt4) {
+ case 1 :
+ // InternalFlaDsl.g:1427:21: '\\\\' .
+ {
+ match('\\');
+ matchAny();
+
+ }
+ break;
+ case 2 :
+ // InternalFlaDsl.g:1427:28: ~ ( ( '\\\\' | '\"' ) )
+ {
+ if ( (input.LA(1)>='\u0000' && input.LA(1)<='!')||(input.LA(1)>='#' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) {
+ input.consume();
+
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;}
+
+
+ }
+ break;
+
+ default :
+ break loop4;
+ }
+ } while (true);
+
+ match('\"');
+
+ }
+ break;
+ case 2 :
+ // InternalFlaDsl.g:1427:48: '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\''
+ {
+ match('\'');
+ // InternalFlaDsl.g:1427:53: ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )*
+ loop5:
+ do {
+ int alt5=3;
+ int LA5_0 = input.LA(1);
+
+ if ( (LA5_0=='\\') ) {
+ alt5=1;
+ }
+ else if ( ((LA5_0>='\u0000' && LA5_0<='&')||(LA5_0>='(' && LA5_0<='[')||(LA5_0>=']' && LA5_0<='\uFFFF')) ) {
+ alt5=2;
+ }
+
+
+ switch (alt5) {
+ case 1 :
+ // InternalFlaDsl.g:1427:54: '\\\\' .
+ {
+ match('\\');
+ matchAny();
+
+ }
+ break;
+ case 2 :
+ // InternalFlaDsl.g:1427:61: ~ ( ( '\\\\' | '\\'' ) )
+ {
+ if ( (input.LA(1)>='\u0000' && input.LA(1)<='&')||(input.LA(1)>='(' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) {
+ input.consume();
+
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;}
+
+
+ }
+ break;
+
+ default :
+ break loop5;
+ }
+ } while (true);
+
+ match('\'');
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_STRING"
+
+ // $ANTLR start "RULE_ML_COMMENT"
+ public final void mRULE_ML_COMMENT() throws RecognitionException {
+ try {
+ int _type = RULE_ML_COMMENT;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalFlaDsl.g:1429:17: ( '/*' ( options {greedy=false; } : . )* '*/' )
+ // InternalFlaDsl.g:1429:19: '/*' ( options {greedy=false; } : . )* '*/'
+ {
+ match("/*");
+
+ // InternalFlaDsl.g:1429:24: ( options {greedy=false; } : . )*
+ loop7:
+ do {
+ int alt7=2;
+ int LA7_0 = input.LA(1);
+
+ if ( (LA7_0=='*') ) {
+ int LA7_1 = input.LA(2);
+
+ if ( (LA7_1=='/') ) {
+ alt7=2;
+ }
+ else if ( ((LA7_1>='\u0000' && LA7_1<='.')||(LA7_1>='0' && LA7_1<='\uFFFF')) ) {
+ alt7=1;
+ }
+
+
+ }
+ else if ( ((LA7_0>='\u0000' && LA7_0<=')')||(LA7_0>='+' && LA7_0<='\uFFFF')) ) {
+ alt7=1;
+ }
+
+
+ switch (alt7) {
+ case 1 :
+ // InternalFlaDsl.g:1429:52: .
+ {
+ matchAny();
+
+ }
+ break;
+
+ default :
+ break loop7;
+ }
+ } while (true);
+
+ match("*/");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_ML_COMMENT"
+
+ // $ANTLR start "RULE_SL_COMMENT"
+ public final void mRULE_SL_COMMENT() throws RecognitionException {
+ try {
+ int _type = RULE_SL_COMMENT;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalFlaDsl.g:1431:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? )
+ // InternalFlaDsl.g:1431:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )?
+ {
+ match("//");
+
+ // InternalFlaDsl.g:1431:24: (~ ( ( '\\n' | '\\r' ) ) )*
+ loop8:
+ do {
+ int alt8=2;
+ int LA8_0 = input.LA(1);
+
+ if ( ((LA8_0>='\u0000' && LA8_0<='\t')||(LA8_0>='\u000B' && LA8_0<='\f')||(LA8_0>='\u000E' && LA8_0<='\uFFFF')) ) {
+ alt8=1;
+ }
+
+
+ switch (alt8) {
+ case 1 :
+ // InternalFlaDsl.g:1431:24: ~ ( ( '\\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();
+
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;}
+
+
+ }
+ break;
+
+ default :
+ break loop8;
+ }
+ } while (true);
+
+ // InternalFlaDsl.g:1431:40: ( ( '\\r' )? '\\n' )?
+ int alt10=2;
+ int LA10_0 = input.LA(1);
+
+ if ( (LA10_0=='\n'||LA10_0=='\r') ) {
+ alt10=1;
+ }
+ switch (alt10) {
+ case 1 :
+ // InternalFlaDsl.g:1431:41: ( '\\r' )? '\\n'
+ {
+ // InternalFlaDsl.g:1431:41: ( '\\r' )?
+ int alt9=2;
+ int LA9_0 = input.LA(1);
+
+ if ( (LA9_0=='\r') ) {
+ alt9=1;
+ }
+ switch (alt9) {
+ case 1 :
+ // InternalFlaDsl.g:1431:41: '\\r'
+ {
+ match('\r');
+
+ }
+ break;
+
+ }
+
+ match('\n');
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_SL_COMMENT"
+
+ // $ANTLR start "RULE_WS"
+ public final void mRULE_WS() throws RecognitionException {
+ try {
+ int _type = RULE_WS;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalFlaDsl.g:1433:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ )
+ // InternalFlaDsl.g:1433:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
+ {
+ // InternalFlaDsl.g:1433:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
+ int cnt11=0;
+ loop11:
+ do {
+ int alt11=2;
+ int LA11_0 = input.LA(1);
+
+ if ( ((LA11_0>='\t' && LA11_0<='\n')||LA11_0=='\r'||LA11_0==' ') ) {
+ alt11=1;
+ }
+
+
+ switch (alt11) {
+ case 1 :
+ // InternalFlaDsl.g:
+ {
+ if ( (input.LA(1)>='\t' && input.LA(1)<='\n')||input.LA(1)=='\r'||input.LA(1)==' ' ) {
+ input.consume();
+
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;}
+
+
+ }
+ break;
+
+ default :
+ if ( cnt11 >= 1 ) break loop11;
+ EarlyExitException eee =
+ new EarlyExitException(11, input);
+ throw eee;
+ }
+ cnt11++;
+ } while (true);
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_WS"
+
+ // $ANTLR start "RULE_ANY_OTHER"
+ public final void mRULE_ANY_OTHER() throws RecognitionException {
+ try {
+ int _type = RULE_ANY_OTHER;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalFlaDsl.g:1435:16: ( . )
+ // InternalFlaDsl.g:1435:18: .
+ {
+ matchAny();
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_ANY_OTHER"
+
+ public void mTokens() throws RecognitionException {
+ // InternalFlaDsl.g:1:8: ( T__11 | T__12 | T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | RULE_ID | RULE_INT | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER )
+ int alt12=37;
+ alt12 = dfa12.predict(input);
+ switch (alt12) {
+ case 1 :
+ // InternalFlaDsl.g:1:10: T__11
+ {
+ mT__11();
+
+ }
+ break;
+ case 2 :
+ // InternalFlaDsl.g:1:16: T__12
+ {
+ mT__12();
+
+ }
+ break;
+ case 3 :
+ // InternalFlaDsl.g:1:22: T__13
+ {
+ mT__13();
+
+ }
+ break;
+ case 4 :
+ // InternalFlaDsl.g:1:28: T__14
+ {
+ mT__14();
+
+ }
+ break;
+ case 5 :
+ // InternalFlaDsl.g:1:34: T__15
+ {
+ mT__15();
+
+ }
+ break;
+ case 6 :
+ // InternalFlaDsl.g:1:40: T__16
+ {
+ mT__16();
+
+ }
+ break;
+ case 7 :
+ // InternalFlaDsl.g:1:46: T__17
+ {
+ mT__17();
+
+ }
+ break;
+ case 8 :
+ // InternalFlaDsl.g:1:52: T__18
+ {
+ mT__18();
+
+ }
+ break;
+ case 9 :
+ // InternalFlaDsl.g:1:58: T__19
+ {
+ mT__19();
+
+ }
+ break;
+ case 10 :
+ // InternalFlaDsl.g:1:64: T__20
+ {
+ mT__20();
+
+ }
+ break;
+ case 11 :
+ // InternalFlaDsl.g:1:70: T__21
+ {
+ mT__21();
+
+ }
+ break;
+ case 12 :
+ // InternalFlaDsl.g:1:76: T__22
+ {
+ mT__22();
+
+ }
+ break;
+ case 13 :
+ // InternalFlaDsl.g:1:82: T__23
+ {
+ mT__23();
+
+ }
+ break;
+ case 14 :
+ // InternalFlaDsl.g:1:88: T__24
+ {
+ mT__24();
+
+ }
+ break;
+ case 15 :
+ // InternalFlaDsl.g:1:94: T__25
+ {
+ mT__25();
+
+ }
+ break;
+ case 16 :
+ // InternalFlaDsl.g:1:100: T__26
+ {
+ mT__26();
+
+ }
+ break;
+ case 17 :
+ // InternalFlaDsl.g:1:106: T__27
+ {
+ mT__27();
+
+ }
+ break;
+ case 18 :
+ // InternalFlaDsl.g:1:112: T__28
+ {
+ mT__28();
+
+ }
+ break;
+ case 19 :
+ // InternalFlaDsl.g:1:118: T__29
+ {
+ mT__29();
+
+ }
+ break;
+ case 20 :
+ // InternalFlaDsl.g:1:124: T__30
+ {
+ mT__30();
+
+ }
+ break;
+ case 21 :
+ // InternalFlaDsl.g:1:130: T__31
+ {
+ mT__31();
+
+ }
+ break;
+ case 22 :
+ // InternalFlaDsl.g:1:136: T__32
+ {
+ mT__32();
+
+ }
+ break;
+ case 23 :
+ // InternalFlaDsl.g:1:142: T__33
+ {
+ mT__33();
+
+ }
+ break;
+ case 24 :
+ // InternalFlaDsl.g:1:148: T__34
+ {
+ mT__34();
+
+ }
+ break;
+ case 25 :
+ // InternalFlaDsl.g:1:154: T__35
+ {
+ mT__35();
+
+ }
+ break;
+ case 26 :
+ // InternalFlaDsl.g:1:160: T__36
+ {
+ mT__36();
+
+ }
+ break;
+ case 27 :
+ // InternalFlaDsl.g:1:166: T__37
+ {
+ mT__37();
+
+ }
+ break;
+ case 28 :
+ // InternalFlaDsl.g:1:172: T__38
+ {
+ mT__38();
+
+ }
+ break;
+ case 29 :
+ // InternalFlaDsl.g:1:178: T__39
+ {
+ mT__39();
+
+ }
+ break;
+ case 30 :
+ // InternalFlaDsl.g:1:184: T__40
+ {
+ mT__40();
+
+ }
+ break;
+ case 31 :
+ // InternalFlaDsl.g:1:190: RULE_ID
+ {
+ mRULE_ID();
+
+ }
+ break;
+ case 32 :
+ // InternalFlaDsl.g:1:198: RULE_INT
+ {
+ mRULE_INT();
+
+ }
+ break;
+ case 33 :
+ // InternalFlaDsl.g:1:207: RULE_STRING
+ {
+ mRULE_STRING();
+
+ }
+ break;
+ case 34 :
+ // InternalFlaDsl.g:1:219: RULE_ML_COMMENT
+ {
+ mRULE_ML_COMMENT();
+
+ }
+ break;
+ case 35 :
+ // InternalFlaDsl.g:1:235: RULE_SL_COMMENT
+ {
+ mRULE_SL_COMMENT();
+
+ }
+ break;
+ case 36 :
+ // InternalFlaDsl.g:1:251: RULE_WS
+ {
+ mRULE_WS();
+
+ }
+ break;
+ case 37 :
+ // InternalFlaDsl.g:1:259: RULE_ANY_OTHER
+ {
+ mRULE_ANY_OTHER();
+
+ }
+ break;
+
+ }
+
+ }
+
+
+ protected DFA12 dfa12 = new DFA12(this);
+ static final String DFA12_eotS =
+ "\1\uffff\1\37\1\35\2\uffff\1\37\3\uffff\15\37\1\35\2\uffff\3\35\2\uffff\1\37\4\uffff\1\37\3\uffff\17\37\5\uffff\25\37\1\uffff\3\37\1\150\3\37\1\154\17\37\1\uffff\2\37\1\177\1\uffff\22\37\1\uffff\21\37\1\u00a4\22\37\1\uffff\1\u00b8\1\37\1\u00ba\15\37\1\u00c8\1\37\1\u00ca\1\uffff\1\37\1\uffff\15\37\1\uffff\1\37\1\uffff\1\u00da\15\37\1\u00e8\1\uffff\1\u00e9\1\u00ea\13\37\3\uffff\1\u00f6\1\37\1\u00f8\1\u00f9\4\37\1\u00fe\2\37\1\uffff\1\u0101\2\uffff\4\37\1\uffff\2\37\1\uffff\1\u0108\3\37\1\u010c\1\37\1\uffff\3\37\1\uffff\2\37\1\u0113\3\37\1\uffff\5\37\1\u011c\2\37\1\uffff\1\37\1\u0120\1\37\1\uffff\1\37\1\u0123\1\uffff";
+ static final String DFA12_eofS =
+ "\u0124\uffff";
+ static final String DFA12_minS =
+ "\1\0\1\114\1\76\2\uffff\1\156\3\uffff\1\157\1\151\2\141\1\157\1\155\1\141\1\155\1\154\1\165\1\141\1\145\1\141\1\101\2\uffff\2\0\1\52\2\uffff\1\101\4\uffff\1\144\3\uffff\1\106\1\154\1\162\1\164\1\155\1\151\1\154\1\143\1\160\2\154\1\156\3\162\5\uffff\1\72\1\145\1\160\1\141\1\145\1\154\1\144\1\154\1\145\1\155\1\163\1\165\1\157\2\145\1\137\1\154\1\147\1\151\2\164\1\uffff\1\146\1\145\1\151\1\60\1\157\1\143\1\171\1\60\1\151\1\163\1\145\1\155\2\162\1\157\1\137\1\145\2\141\2\151\1\143\1\154\1\uffff\1\163\1\141\1\60\1\uffff\1\163\1\151\1\103\1\160\1\163\1\146\1\155\1\162\1\143\1\137\1\154\1\142\1\141\1\156\1\151\1\165\1\163\1\162\1\uffff\1\163\1\157\1\165\1\157\1\154\1\151\1\145\1\141\1\137\1\157\1\166\1\151\2\154\1\145\1\146\1\162\1\60\1\144\1\151\1\156\1\142\1\141\1\145\1\163\1\162\1\156\1\143\1\156\1\151\1\172\1\145\1\137\1\144\1\151\1\145\1\uffff\1\60\1\157\1\60\1\164\1\162\2\164\2\145\2\157\1\163\1\157\1\141\1\137\1\154\1\60\1\145\1\60\1\uffff\1\156\1\uffff\1\154\1\163\1\151\1\145\2\156\1\164\1\155\1\151\1\154\1\142\1\154\1\157\1\uffff\1\144\1\uffff\1\60\2\145\1\157\1\156\2\143\1\150\1\160\1\163\1\141\1\154\1\145\1\163\1\60\1\uffff\2\60\1\156\1\143\2\145\1\151\1\145\2\164\1\145\1\166\1\163\3\uffff\1\60\1\171\2\60\2\156\1\145\1\151\1\60\1\145\1\137\1\uffff\1\60\2\uffff\1\147\1\163\1\156\1\157\1\uffff\1\154\1\141\1\uffff\1\60\1\141\1\143\1\156\1\60\1\154\1\uffff\1\164\1\171\1\137\1\uffff\1\154\1\151\1\60\1\141\2\157\1\uffff\1\154\1\167\1\156\1\154\1\145\1\60\1\157\1\144\1\uffff\1\167\1\60\1\145\1\uffff\1\144\1\60\1\uffff";
+ static final String DFA12_maxS =
+ "\1\uffff\1\114\1\76\2\uffff\1\156\3\uffff\1\157\1\151\2\141\1\157\1\155\1\141\1\156\1\154\1\165\1\141\1\145\1\157\1\172\2\uffff\2\uffff\1\57\2\uffff\1\101\4\uffff\1\163\3\uffff\1\156\1\154\1\162\1\164\1\155\1\151\1\154\1\164\1\160\2\154\1\156\3\162\5\uffff\1\72\1\145\1\160\1\141\1\145\1\154\1\144\1\154\1\145\1\155\1\163\1\165\1\157\2\145\1\137\1\154\1\147\1\151\2\164\1\uffff\1\146\1\145\1\151\1\172\1\157\1\143\1\171\1\172\1\151\1\163\1\145\1\156\2\162\1\157\1\137\1\145\2\141\2\151\1\143\1\154\1\uffff\1\163\1\141\1\172\1\uffff\1\163\1\151\1\123\1\160\1\163\1\146\1\155\1\162\1\143\1\137\1\154\1\142\1\141\1\156\1\151\1\165\1\163\1\162\1\uffff\1\163\1\157\1\165\1\157\1\154\1\151\1\145\1\141\1\137\1\157\1\166\1\151\2\154\1\145\1\146\1\162\1\172\1\144\1\151\1\156\1\142\1\141\1\145\1\163\1\162\3\156\1\151\1\172\1\145\1\137\1\144\1\151\1\145\1\uffff\1\172\1\157\1\172\1\164\1\162\2\164\2\145\2\157\1\163\1\157\1\141\1\137\1\154\1\172\1\145\1\172\1\uffff\1\156\1\uffff\1\154\1\163\1\151\1\145\2\156\1\164\1\155\1\151\1\154\1\142\1\154\1\157\1\uffff\1\144\1\uffff\1\172\2\145\1\157\1\156\2\143\1\150\1\160\1\163\1\141\1\154\1\145\1\163\1\172\1\uffff\2\172\1\156\1\143\2\145\1\151\1\145\2\164\1\145\1\166\1\163\3\uffff\1\172\1\171\2\172\2\156\1\145\1\151\1\172\1\145\1\137\1\uffff\1\172\2\uffff\1\147\1\163\1\156\1\157\1\uffff\1\154\1\141\1\uffff\1\172\1\141\1\143\1\156\1\172\1\154\1\uffff\1\164\1\171\1\137\1\uffff\1\154\1\151\1\172\1\141\2\157\1\uffff\1\154\1\167\1\156\1\154\1\145\1\172\1\157\1\144\1\uffff\1\167\1\172\1\145\1\uffff\1\144\1\172\1\uffff";
+ static final String DFA12_acceptS =
+ "\3\uffff\1\3\1\4\1\uffff\1\6\1\7\1\10\16\uffff\1\37\1\40\3\uffff\1\44\1\45\1\uffff\1\37\1\2\1\3\1\4\1\uffff\1\6\1\7\1\10\17\uffff\1\40\1\41\1\42\1\43\1\44\25\uffff\1\1\27\uffff\1\22\3\uffff\1\14\22\uffff\1\13\44\uffff\1\35\23\uffff\1\12\1\uffff\1\16\15\uffff\1\5\1\uffff\1\11\17\uffff\1\15\15\uffff\1\23\1\17\1\20\13\uffff\1\21\1\uffff\1\25\1\26\4\uffff\1\33\2\uffff\1\24\6\uffff\1\27\3\uffff\1\34\6\uffff\1\31\10\uffff\1\30\3\uffff\1\36\2\uffff\1\32";
+ static final String DFA12_specialS =
+ "\1\1\30\uffff\1\0\1\2\u0109\uffff}>";
+ static final String[] DFA12_transitionS = {
+ "\11\35\2\34\2\35\1\34\22\35\1\34\1\35\1\31\4\35\1\32\4\35\1\4\1\2\1\6\1\33\12\30\1\35\1\3\5\35\5\27\1\1\24\27\3\35\1\26\1\27\1\35\1\21\1\27\1\15\1\27\1\13\1\22\2\27\1\20\2\27\1\14\1\27\1\11\1\16\1\25\1\27\1\23\1\24\1\27\1\5\1\17\1\12\3\27\1\7\1\35\1\10\uff82\35",
+ "\1\36",
+ "\1\40",
+ "",
+ "",
+ "\1\43",
+ "",
+ "",
+ "",
+ "\1\47",
+ "\1\50",
+ "\1\51",
+ "\1\52",
+ "\1\53",
+ "\1\54",
+ "\1\55",
+ "\1\57\1\56",
+ "\1\60",
+ "\1\61",
+ "\1\62",
+ "\1\63",
+ "\1\65\15\uffff\1\64",
+ "\32\37\4\uffff\1\37\1\uffff\32\37",
+ "",
+ "",
+ "\0\67",
+ "\0\67",
+ "\1\70\4\uffff\1\71",
+ "",
+ "",
+ "\1\73",
+ "",
+ "",
+ "",
+ "",
+ "\1\74\16\uffff\1\75",
+ "",
+ "",
+ "",
+ "\1\76\30\uffff\1\100\16\uffff\1\77",
+ "\1\101",
+ "\1\102",
+ "\1\103",
+ "\1\104",
+ "\1\105",
+ "\1\106",
+ "\1\107\20\uffff\1\110",
+ "\1\111",
+ "\1\112",
+ "\1\113",
+ "\1\114",
+ "\1\115",
+ "\1\116",
+ "\1\117",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "\1\120",
+ "\1\121",
+ "\1\122",
+ "\1\123",
+ "\1\124",
+ "\1\125",
+ "\1\126",
+ "\1\127",
+ "\1\130",
+ "\1\131",
+ "\1\132",
+ "\1\133",
+ "\1\134",
+ "\1\135",
+ "\1\136",
+ "\1\137",
+ "\1\140",
+ "\1\141",
+ "\1\142",
+ "\1\143",
+ "\1\144",
+ "",
+ "\1\145",
+ "\1\146",
+ "\1\147",
+ "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
+ "\1\151",
+ "\1\152",
+ "\1\153",
+ "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
+ "\1\155",
+ "\1\156",
+ "\1\157",
+ "\1\160\1\161",
+ "\1\162",
+ "\1\163",
+ "\1\164",
+ "\1\165",
+ "\1\166",
+ "\1\167",
+ "\1\170",
+ "\1\171",
+ "\1\172",
+ "\1\173",
+ "\1\174",
+ "",
+ "\1\175",
+ "\1\176",
+ "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
+ "",
+ "\1\u0080",
+ "\1\u0081",
+ "\1\u0083\17\uffff\1\u0082",
+ "\1\u0084",
+ "\1\u0085",
+ "\1\u0086",
+ "\1\u0087",
+ "\1\u0088",
+ "\1\u0089",
+ "\1\u008a",
+ "\1\u008b",
+ "\1\u008c",
+ "\1\u008d",
+ "\1\u008e",
+ "\1\u008f",
+ "\1\u0090",
+ "\1\u0091",
+ "\1\u0092",
+ "",
+ "\1\u0093",
+ "\1\u0094",
+ "\1\u0095",
+ "\1\u0096",
+ "\1\u0097",
+ "\1\u0098",
+ "\1\u0099",
+ "\1\u009a",
+ "\1\u009b",
+ "\1\u009c",
+ "\1\u009d",
+ "\1\u009e",
+ "\1\u009f",
+ "\1\u00a0",
+ "\1\u00a1",
+ "\1\u00a2",
+ "\1\u00a3",
+ "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
+ "\1\u00a5",
+ "\1\u00a6",
+ "\1\u00a7",
+ "\1\u00a8",
+ "\1\u00a9",
+ "\1\u00aa",
+ "\1\u00ab",
+ "\1\u00ac",
+ "\1\u00ad",
+ "\1\u00af\12\uffff\1\u00ae",
+ "\1\u00b0",
+ "\1\u00b1",
+ "\1\u00b2",
+ "\1\u00b3",
+ "\1\u00b4",
+ "\1\u00b5",
+ "\1\u00b6",
+ "\1\u00b7",
+ "",
+ "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
+ "\1\u00b9",
+ "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
+ "\1\u00bb",
+ "\1\u00bc",
+ "\1\u00bd",
+ "\1\u00be",
+ "\1\u00bf",
+ "\1\u00c0",
+ "\1\u00c1",
+ "\1\u00c2",
+ "\1\u00c3",
+ "\1\u00c4",
+ "\1\u00c5",
+ "\1\u00c6",
+ "\1\u00c7",
+ "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
+ "\1\u00c9",
+ "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
+ "",
+ "\1\u00cb",
+ "",
+ "\1\u00cc",
+ "\1\u00cd",
+ "\1\u00ce",
+ "\1\u00cf",
+ "\1\u00d0",
+ "\1\u00d1",
+ "\1\u00d2",
+ "\1\u00d3",
+ "\1\u00d4",
+ "\1\u00d5",
+ "\1\u00d6",
+ "\1\u00d7",
+ "\1\u00d8",
+ "",
+ "\1\u00d9",
+ "",
+ "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
+ "\1\u00db",
+ "\1\u00dc",
+ "\1\u00dd",
+ "\1\u00de",
+ "\1\u00df",
+ "\1\u00e0",
+ "\1\u00e1",
+ "\1\u00e2",
+ "\1\u00e3",
+ "\1\u00e4",
+ "\1\u00e5",
+ "\1\u00e6",
+ "\1\u00e7",
+ "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
+ "",
+ "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
+ "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
+ "\1\u00eb",
+ "\1\u00ec",
+ "\1\u00ed",
+ "\1\u00ee",
+ "\1\u00ef",
+ "\1\u00f0",
+ "\1\u00f1",
+ "\1\u00f2",
+ "\1\u00f3",
+ "\1\u00f4",
+ "\1\u00f5",
+ "",
+ "",
+ "",
+ "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
+ "\1\u00f7",
+ "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
+ "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
+ "\1\u00fa",
+ "\1\u00fb",
+ "\1\u00fc",
+ "\1\u00fd",
+ "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
+ "\1\u00ff",
+ "\1\u0100",
+ "",
+ "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
+ "",
+ "",
+ "\1\u0102",
+ "\1\u0103",
+ "\1\u0104",
+ "\1\u0105",
+ "",
+ "\1\u0106",
+ "\1\u0107",
+ "",
+ "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
+ "\1\u0109",
+ "\1\u010a",
+ "\1\u010b",
+ "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
+ "\1\u010d",
+ "",
+ "\1\u010e",
+ "\1\u010f",
+ "\1\u0110",
+ "",
+ "\1\u0111",
+ "\1\u0112",
+ "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
+ "\1\u0114",
+ "\1\u0115",
+ "\1\u0116",
+ "",
+ "\1\u0117",
+ "\1\u0118",
+ "\1\u0119",
+ "\1\u011a",
+ "\1\u011b",
+ "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
+ "\1\u011d",
+ "\1\u011e",
+ "",
+ "\1\u011f",
+ "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
+ "\1\u0121",
+ "",
+ "\1\u0122",
+ "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
+ ""
+ };
+
+ static final short[] DFA12_eot = DFA.unpackEncodedString(DFA12_eotS);
+ static final short[] DFA12_eof = DFA.unpackEncodedString(DFA12_eofS);
+ static final char[] DFA12_min = DFA.unpackEncodedStringToUnsignedChars(DFA12_minS);
+ static final char[] DFA12_max = DFA.unpackEncodedStringToUnsignedChars(DFA12_maxS);
+ static final short[] DFA12_accept = DFA.unpackEncodedString(DFA12_acceptS);
+ static final short[] DFA12_special = DFA.unpackEncodedString(DFA12_specialS);
+ static final short[][] DFA12_transition;
+
+ static {
+ int numStates = DFA12_transitionS.length;
+ DFA12_transition = new short[numStates][];
+ for (int i=0; i<numStates; i++) {
+ DFA12_transition[i] = DFA.unpackEncodedString(DFA12_transitionS[i]);
+ }
+ }
+
+ class DFA12 extends DFA {
+
+ public DFA12(BaseRecognizer recognizer) {
+ this.recognizer = recognizer;
+ this.decisionNumber = 12;
+ this.eot = DFA12_eot;
+ this.eof = DFA12_eof;
+ this.min = DFA12_min;
+ this.max = DFA12_max;
+ this.accept = DFA12_accept;
+ this.special = DFA12_special;
+ this.transition = DFA12_transition;
+ }
+ public String getDescription() {
+ return "1:1: Tokens : ( T__11 | T__12 | T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | RULE_ID | RULE_INT | RULE_STRING | RULE_ML_COMMENT | RULE_SL_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_25 = input.LA(1);
+
+ s = -1;
+ if ( ((LA12_25>='\u0000' && LA12_25<='\uFFFF')) ) {s = 55;}
+
+ else s = 29;
+
+ if ( s>=0 ) return s;
+ break;
+ case 1 :
+ int LA12_0 = input.LA(1);
+
+ s = -1;
+ if ( (LA12_0=='F') ) {s = 1;}
+
+ else if ( (LA12_0=='-') ) {s = 2;}
+
+ else if ( (LA12_0==';') ) {s = 3;}
+
+ else if ( (LA12_0==',') ) {s = 4;}
+
+ else if ( (LA12_0=='u') ) {s = 5;}
+
+ else if ( (LA12_0=='.') ) {s = 6;}
+
+ else if ( (LA12_0=='{') ) {s = 7;}
+
+ else if ( (LA12_0=='}') ) {s = 8;}
+
+ else if ( (LA12_0=='n') ) {s = 9;}
+
+ else if ( (LA12_0=='w') ) {s = 10;}
+
+ else if ( (LA12_0=='e') ) {s = 11;}
+
+ else if ( (LA12_0=='l') ) {s = 12;}
+
+ else if ( (LA12_0=='c') ) {s = 13;}
+
+ else if ( (LA12_0=='o') ) {s = 14;}
+
+ else if ( (LA12_0=='v') ) {s = 15;}
+
+ else if ( (LA12_0=='i') ) {s = 16;}
+
+ else if ( (LA12_0=='a') ) {s = 17;}
+
+ else if ( (LA12_0=='f') ) {s = 18;}
+
+ else if ( (LA12_0=='r') ) {s = 19;}
+
+ else if ( (LA12_0=='s') ) {s = 20;}
+
+ else if ( (LA12_0=='p') ) {s = 21;}
+
+ else if ( (LA12_0=='^') ) {s = 22;}
+
+ else if ( ((LA12_0>='A' && LA12_0<='E')||(LA12_0>='G' && LA12_0<='Z')||LA12_0=='_'||LA12_0=='b'||LA12_0=='d'||(LA12_0>='g' && LA12_0<='h')||(LA12_0>='j' && LA12_0<='k')||LA12_0=='m'||LA12_0=='q'||LA12_0=='t'||(LA12_0>='x' && LA12_0<='z')) ) {s = 23;}
+
+ else if ( ((LA12_0>='0' && LA12_0<='9')) ) {s = 24;}
+
+ else if ( (LA12_0=='\"') ) {s = 25;}
+
+ else if ( (LA12_0=='\'') ) {s = 26;}
+
+ else if ( (LA12_0=='/') ) {s = 27;}
+
+ else if ( ((LA12_0>='\t' && LA12_0<='\n')||LA12_0=='\r'||LA12_0==' ') ) {s = 28;}
+
+ 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>='[' && LA12_0<=']')||LA12_0=='`'||LA12_0=='|'||(LA12_0>='~' && LA12_0<='\uFFFF')) ) {s = 29;}
+
+ if ( s>=0 ) return s;
+ break;
+ case 2 :
+ int LA12_26 = input.LA(1);
+
+ s = -1;
+ if ( ((LA12_26>='\u0000' && LA12_26<='\uFFFF')) ) {s = 55;}
+
+ else s = 29;
+
+ if ( s>=0 ) return s;
+ break;
+ }
+ NoViableAltException nvae =
+ new NoViableAltException(getDescription(), 12, _s, input);
+ error(nvae);
+ throw nvae;
+ }
+ }
+
+
+}
\ No newline at end of file
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/parser/antlr/internal/InternalFlaDslParser.java b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/parser/antlr/internal/InternalFlaDslParser.java
new file mode 100644
index 0000000..55652f5
--- /dev/null
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/parser/antlr/internal/InternalFlaDslParser.java
@@ -0,0 +1,4027 @@
+package org.polarsys.chess.xtext.parser.antlr.internal;
+
+import org.eclipse.xtext.*;
+import org.eclipse.xtext.parser.*;
+import org.eclipse.xtext.parser.impl.*;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.common.util.Enumerator;
+import org.eclipse.xtext.parser.antlr.AbstractInternalAntlrParser;
+import org.eclipse.xtext.parser.antlr.XtextTokenStream;
+import org.eclipse.xtext.parser.antlr.XtextTokenStream.HiddenTokens;
+import org.eclipse.xtext.parser.antlr.AntlrDatatypeRuleToken;
+import org.polarsys.chess.xtext.services.FlaDslGrammarAccess;
+
+
+
+import org.antlr.runtime.*;
+import java.util.Stack;
+import java.util.List;
+import java.util.ArrayList;
+
+@SuppressWarnings("all")
+public class InternalFlaDslParser extends AbstractInternalAntlrParser {
+ public static final String[] tokenNames = new String[] {
+ "<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_ID", "RULE_INT", "RULE_STRING", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "'FLA:'", "'->'", "';'", "','", "'undefined'", "'.'", "'{'", "'}'", "'noFailure'", "'wildcard'", "'early'", "'late'", "'commission'", "'omission'", "'valueSubtle'", "'valueCoarse'", "'incompletion'", "'none'", "'unspecified'", "'inconsistency'", "'interference'", "'impermanence'", "'all_or_nothing'", "'all_or_compensation'", "'full_consistency'", "'range_violation_allowed'", "'serializable'", "'portable_level'", "'no_loss'", "'partial_loss_allowed'"
+ };
+ public static final int RULE_STRING=6;
+ public static final int RULE_SL_COMMENT=8;
+ public static final int T__19=19;
+ public static final int T__15=15;
+ public static final int T__37=37;
+ public static final int T__16=16;
+ public static final int T__38=38;
+ public static final int T__17=17;
+ public static final int T__39=39;
+ public static final int T__18=18;
+ public static final int T__11=11;
+ public static final int T__33=33;
+ public static final int T__12=12;
+ public static final int T__34=34;
+ public static final int T__13=13;
+ public static final int T__35=35;
+ public static final int T__14=14;
+ public static final int T__36=36;
+ public static final int EOF=-1;
+ public static final int T__30=30;
+ public static final int T__31=31;
+ public static final int T__32=32;
+ public static final int RULE_ID=4;
+ public static final int RULE_WS=9;
+ public static final int RULE_ANY_OTHER=10;
+ public static final int T__26=26;
+ public static final int T__27=27;
+ public static final int T__28=28;
+ public static final int RULE_INT=5;
+ public static final int T__29=29;
+ public static final int T__22=22;
+ public static final int RULE_ML_COMMENT=7;
+ public static final int T__23=23;
+ public static final int T__24=24;
+ public static final int T__25=25;
+ public static final int T__40=40;
+ public static final int T__20=20;
+ public static final int T__21=21;
+
+ // delegates
+ // delegators
+
+
+ public InternalFlaDslParser(TokenStream input) {
+ this(input, new RecognizerSharedState());
+ }
+ public InternalFlaDslParser(TokenStream input, RecognizerSharedState state) {
+ super(input, state);
+
+ }
+
+
+ public String[] getTokenNames() { return InternalFlaDslParser.tokenNames; }
+ public String getGrammarFileName() { return "InternalFlaDsl.g"; }
+
+
+
+ private FlaDslGrammarAccess grammarAccess;
+
+ public InternalFlaDslParser(TokenStream input, FlaDslGrammarAccess grammarAccess) {
+ this(input);
+ this.grammarAccess = grammarAccess;
+ registerRules(grammarAccess.getGrammar());
+ }
+
+ @Override
+ protected String getFirstRuleName() {
+ return "Behaviour";
+ }
+
+ @Override
+ protected FlaDslGrammarAccess getGrammarAccess() {
+ return grammarAccess;
+ }
+
+
+
+ // $ANTLR start "entryRuleBehaviour"
+ // InternalFlaDsl.g:68:1: entryRuleBehaviour returns [EObject current=null] : iv_ruleBehaviour= ruleBehaviour EOF ;
+ public final EObject entryRuleBehaviour() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleBehaviour = null;
+
+
+ try {
+ // InternalFlaDsl.g:69:2: (iv_ruleBehaviour= ruleBehaviour EOF )
+ // InternalFlaDsl.g:70:2: iv_ruleBehaviour= ruleBehaviour EOF
+ {
+ newCompositeNode(grammarAccess.getBehaviourRule());
+ pushFollow(FOLLOW_1);
+ iv_ruleBehaviour=ruleBehaviour();
+
+ state._fsp--;
+
+ current =iv_ruleBehaviour;
+ match(input,EOF,FOLLOW_2);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleBehaviour"
+
+
+ // $ANTLR start "ruleBehaviour"
+ // InternalFlaDsl.g:77:1: ruleBehaviour returns [EObject current=null] : ( (lv_rules_0_0= ruleExpression ) )+ ;
+ public final EObject ruleBehaviour() throws RecognitionException {
+ EObject current = null;
+
+ EObject lv_rules_0_0 = null;
+
+
+ enterRule();
+
+ try {
+ // InternalFlaDsl.g:80:28: ( ( (lv_rules_0_0= ruleExpression ) )+ )
+ // InternalFlaDsl.g:81:1: ( (lv_rules_0_0= ruleExpression ) )+
+ {
+ // InternalFlaDsl.g:81:1: ( (lv_rules_0_0= ruleExpression ) )+
+ int cnt1=0;
+ loop1:
+ do {
+ int alt1=2;
+ int LA1_0 = input.LA(1);
+
+ if ( (LA1_0==11) ) {
+ alt1=1;
+ }
+
+
+ switch (alt1) {
+ case 1 :
+ // InternalFlaDsl.g:82:1: (lv_rules_0_0= ruleExpression )
+ {
+ // InternalFlaDsl.g:82:1: (lv_rules_0_0= ruleExpression )
+ // InternalFlaDsl.g:83:3: lv_rules_0_0= ruleExpression
+ {
+
+ newCompositeNode(grammarAccess.getBehaviourAccess().getRulesExpressionParserRuleCall_0());
+
+ pushFollow(FOLLOW_3);
+ lv_rules_0_0=ruleExpression();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getBehaviourRule());
+ }
+ add(
+ current,
+ "rules",
+ lv_rules_0_0,
+ "org.polarsys.chess.xtext.FlaDsl.Expression");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ if ( cnt1 >= 1 ) break loop1;
+ EarlyExitException eee =
+ new EarlyExitException(1, input);
+ throw eee;
+ }
+ cnt1++;
+ } while (true);
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleBehaviour"
+
+
+ // $ANTLR start "entryRuleExpression"
+ // InternalFlaDsl.g:107:1: entryRuleExpression returns [EObject current=null] : iv_ruleExpression= ruleExpression EOF ;
+ public final EObject entryRuleExpression() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleExpression = null;
+
+
+ try {
+ // InternalFlaDsl.g:108:2: (iv_ruleExpression= ruleExpression EOF )
+ // InternalFlaDsl.g:109:2: iv_ruleExpression= ruleExpression EOF
+ {
+ newCompositeNode(grammarAccess.getExpressionRule());
+ pushFollow(FOLLOW_1);
+ iv_ruleExpression=ruleExpression();
+
+ state._fsp--;
+
+ current =iv_ruleExpression;
+ match(input,EOF,FOLLOW_2);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleExpression"
+
+
+ // $ANTLR start "ruleExpression"
+ // InternalFlaDsl.g:116:1: ruleExpression returns [EObject current=null] : (otherlv_0= 'FLA:' ( (lv_lhs_1_0= ruleLhs ) ) otherlv_2= '->' ( (lv_rhs_3_0= ruleRhs ) ) otherlv_4= ';' ) ;
+ public final EObject ruleExpression() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_0=null;
+ Token otherlv_2=null;
+ Token otherlv_4=null;
+ EObject lv_lhs_1_0 = null;
+
+ EObject lv_rhs_3_0 = null;
+
+
+ enterRule();
+
+ try {
+ // InternalFlaDsl.g:119:28: ( (otherlv_0= 'FLA:' ( (lv_lhs_1_0= ruleLhs ) ) otherlv_2= '->' ( (lv_rhs_3_0= ruleRhs ) ) otherlv_4= ';' ) )
+ // InternalFlaDsl.g:120:1: (otherlv_0= 'FLA:' ( (lv_lhs_1_0= ruleLhs ) ) otherlv_2= '->' ( (lv_rhs_3_0= ruleRhs ) ) otherlv_4= ';' )
+ {
+ // InternalFlaDsl.g:120:1: (otherlv_0= 'FLA:' ( (lv_lhs_1_0= ruleLhs ) ) otherlv_2= '->' ( (lv_rhs_3_0= ruleRhs ) ) otherlv_4= ';' )
+ // InternalFlaDsl.g:120:3: otherlv_0= 'FLA:' ( (lv_lhs_1_0= ruleLhs ) ) otherlv_2= '->' ( (lv_rhs_3_0= ruleRhs ) ) otherlv_4= ';'
+ {
+ otherlv_0=(Token)match(input,11,FOLLOW_4);
+
+ newLeafNode(otherlv_0, grammarAccess.getExpressionAccess().getFLAKeyword_0());
+
+ // InternalFlaDsl.g:124:1: ( (lv_lhs_1_0= ruleLhs ) )
+ // InternalFlaDsl.g:125:1: (lv_lhs_1_0= ruleLhs )
+ {
+ // InternalFlaDsl.g:125:1: (lv_lhs_1_0= ruleLhs )
+ // InternalFlaDsl.g:126:3: lv_lhs_1_0= ruleLhs
+ {
+
+ newCompositeNode(grammarAccess.getExpressionAccess().getLhsLhsParserRuleCall_1_0());
+
+ pushFollow(FOLLOW_5);
+ lv_lhs_1_0=ruleLhs();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getExpressionRule());
+ }
+ set(
+ current,
+ "lhs",
+ lv_lhs_1_0,
+ "org.polarsys.chess.xtext.FlaDsl.Lhs");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+ otherlv_2=(Token)match(input,12,FOLLOW_4);
+
+ newLeafNode(otherlv_2, grammarAccess.getExpressionAccess().getHyphenMinusGreaterThanSignKeyword_2());
+
+ // InternalFlaDsl.g:146:1: ( (lv_rhs_3_0= ruleRhs ) )
+ // InternalFlaDsl.g:147:1: (lv_rhs_3_0= ruleRhs )
+ {
+ // InternalFlaDsl.g:147:1: (lv_rhs_3_0= ruleRhs )
+ // InternalFlaDsl.g:148:3: lv_rhs_3_0= ruleRhs
+ {
+
+ newCompositeNode(grammarAccess.getExpressionAccess().getRhsRhsParserRuleCall_3_0());
+
+ pushFollow(FOLLOW_6);
+ lv_rhs_3_0=ruleRhs();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getExpressionRule());
+ }
+ set(
+ current,
+ "rhs",
+ lv_rhs_3_0,
+ "org.polarsys.chess.xtext.FlaDsl.Rhs");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+ otherlv_4=(Token)match(input,13,FOLLOW_2);
+
+ newLeafNode(otherlv_4, grammarAccess.getExpressionAccess().getSemicolonKeyword_4());
+
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleExpression"
+
+
+ // $ANTLR start "entryRuleLhs"
+ // InternalFlaDsl.g:176:1: entryRuleLhs returns [EObject current=null] : iv_ruleLhs= ruleLhs EOF ;
+ public final EObject entryRuleLhs() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleLhs = null;
+
+
+ try {
+ // InternalFlaDsl.g:177:2: (iv_ruleLhs= ruleLhs EOF )
+ // InternalFlaDsl.g:178:2: iv_ruleLhs= ruleLhs EOF
+ {
+ newCompositeNode(grammarAccess.getLhsRule());
+ pushFollow(FOLLOW_1);
+ iv_ruleLhs=ruleLhs();
+
+ state._fsp--;
+
+ current =iv_ruleLhs;
+ match(input,EOF,FOLLOW_2);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleLhs"
+
+
+ // $ANTLR start "ruleLhs"
+ // InternalFlaDsl.g:185:1: ruleLhs returns [EObject current=null] : ( ( (lv_failures_0_0= ruleInputExpression ) ) (otherlv_1= ',' ( (lv_failures_2_0= ruleInputExpression ) ) )* ) ;
+ public final EObject ruleLhs() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_1=null;
+ EObject lv_failures_0_0 = null;
+
+ EObject lv_failures_2_0 = null;
+
+
+ enterRule();
+
+ try {
+ // InternalFlaDsl.g:188:28: ( ( ( (lv_failures_0_0= ruleInputExpression ) ) (otherlv_1= ',' ( (lv_failures_2_0= ruleInputExpression ) ) )* ) )
+ // InternalFlaDsl.g:189:1: ( ( (lv_failures_0_0= ruleInputExpression ) ) (otherlv_1= ',' ( (lv_failures_2_0= ruleInputExpression ) ) )* )
+ {
+ // InternalFlaDsl.g:189:1: ( ( (lv_failures_0_0= ruleInputExpression ) ) (otherlv_1= ',' ( (lv_failures_2_0= ruleInputExpression ) ) )* )
+ // InternalFlaDsl.g:189:2: ( (lv_failures_0_0= ruleInputExpression ) ) (otherlv_1= ',' ( (lv_failures_2_0= ruleInputExpression ) ) )*
+ {
+ // InternalFlaDsl.g:189:2: ( (lv_failures_0_0= ruleInputExpression ) )
+ // InternalFlaDsl.g:190:1: (lv_failures_0_0= ruleInputExpression )
+ {
+ // InternalFlaDsl.g:190:1: (lv_failures_0_0= ruleInputExpression )
+ // InternalFlaDsl.g:191:3: lv_failures_0_0= ruleInputExpression
+ {
+
+ newCompositeNode(grammarAccess.getLhsAccess().getFailuresInputExpressionParserRuleCall_0_0());
+
+ pushFollow(FOLLOW_7);
+ lv_failures_0_0=ruleInputExpression();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getLhsRule());
+ }
+ add(
+ current,
+ "failures",
+ lv_failures_0_0,
+ "org.polarsys.chess.xtext.FlaDsl.InputExpression");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+ // InternalFlaDsl.g:207:2: (otherlv_1= ',' ( (lv_failures_2_0= ruleInputExpression ) ) )*
+ loop2:
+ do {
+ int alt2=2;
+ int LA2_0 = input.LA(1);
+
+ if ( (LA2_0==14) ) {
+ alt2=1;
+ }
+
+
+ switch (alt2) {
+ case 1 :
+ // InternalFlaDsl.g:207:4: otherlv_1= ',' ( (lv_failures_2_0= ruleInputExpression ) )
+ {
+ otherlv_1=(Token)match(input,14,FOLLOW_4);
+
+ newLeafNode(otherlv_1, grammarAccess.getLhsAccess().getCommaKeyword_1_0());
+
+ // InternalFlaDsl.g:211:1: ( (lv_failures_2_0= ruleInputExpression ) )
+ // InternalFlaDsl.g:212:1: (lv_failures_2_0= ruleInputExpression )
+ {
+ // InternalFlaDsl.g:212:1: (lv_failures_2_0= ruleInputExpression )
+ // InternalFlaDsl.g:213:3: lv_failures_2_0= ruleInputExpression
+ {
+
+ newCompositeNode(grammarAccess.getLhsAccess().getFailuresInputExpressionParserRuleCall_1_1_0());
+
+ pushFollow(FOLLOW_7);
+ lv_failures_2_0=ruleInputExpression();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getLhsRule());
+ }
+ add(
+ current,
+ "failures",
+ lv_failures_2_0,
+ "org.polarsys.chess.xtext.FlaDsl.InputExpression");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop2;
+ }
+ } while (true);
+
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleLhs"
+
+
+ // $ANTLR start "entryRuleRhs"
+ // InternalFlaDsl.g:237:1: entryRuleRhs returns [EObject current=null] : iv_ruleRhs= ruleRhs EOF ;
+ public final EObject entryRuleRhs() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleRhs = null;
+
+
+ try {
+ // InternalFlaDsl.g:238:2: (iv_ruleRhs= ruleRhs EOF )
+ // InternalFlaDsl.g:239:2: iv_ruleRhs= ruleRhs EOF
+ {
+ newCompositeNode(grammarAccess.getRhsRule());
+ pushFollow(FOLLOW_1);
+ iv_ruleRhs=ruleRhs();
+
+ state._fsp--;
+
+ current =iv_ruleRhs;
+ match(input,EOF,FOLLOW_2);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleRhs"
+
+
+ // $ANTLR start "ruleRhs"
+ // InternalFlaDsl.g:246:1: ruleRhs returns [EObject current=null] : ( ( (lv_failures_0_0= ruleOutputExpression ) ) (otherlv_1= ',' ( (lv_failures_2_0= ruleOutputExpression ) ) )* ) ;
+ public final EObject ruleRhs() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_1=null;
+ EObject lv_failures_0_0 = null;
+
+ EObject lv_failures_2_0 = null;
+
+
+ enterRule();
+
+ try {
+ // InternalFlaDsl.g:249:28: ( ( ( (lv_failures_0_0= ruleOutputExpression ) ) (otherlv_1= ',' ( (lv_failures_2_0= ruleOutputExpression ) ) )* ) )
+ // InternalFlaDsl.g:250:1: ( ( (lv_failures_0_0= ruleOutputExpression ) ) (otherlv_1= ',' ( (lv_failures_2_0= ruleOutputExpression ) ) )* )
+ {
+ // InternalFlaDsl.g:250:1: ( ( (lv_failures_0_0= ruleOutputExpression ) ) (otherlv_1= ',' ( (lv_failures_2_0= ruleOutputExpression ) ) )* )
+ // InternalFlaDsl.g:250:2: ( (lv_failures_0_0= ruleOutputExpression ) ) (otherlv_1= ',' ( (lv_failures_2_0= ruleOutputExpression ) ) )*
+ {
+ // InternalFlaDsl.g:250:2: ( (lv_failures_0_0= ruleOutputExpression ) )
+ // InternalFlaDsl.g:251:1: (lv_failures_0_0= ruleOutputExpression )
+ {
+ // InternalFlaDsl.g:251:1: (lv_failures_0_0= ruleOutputExpression )
+ // InternalFlaDsl.g:252:3: lv_failures_0_0= ruleOutputExpression
+ {
+
+ newCompositeNode(grammarAccess.getRhsAccess().getFailuresOutputExpressionParserRuleCall_0_0());
+
+ pushFollow(FOLLOW_7);
+ lv_failures_0_0=ruleOutputExpression();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getRhsRule());
+ }
+ add(
+ current,
+ "failures",
+ lv_failures_0_0,
+ "org.polarsys.chess.xtext.FlaDsl.OutputExpression");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+ // InternalFlaDsl.g:268:2: (otherlv_1= ',' ( (lv_failures_2_0= ruleOutputExpression ) ) )*
+ loop3:
+ do {
+ int alt3=2;
+ int LA3_0 = input.LA(1);
+
+ if ( (LA3_0==14) ) {
+ alt3=1;
+ }
+
+
+ switch (alt3) {
+ case 1 :
+ // InternalFlaDsl.g:268:4: otherlv_1= ',' ( (lv_failures_2_0= ruleOutputExpression ) )
+ {
+ otherlv_1=(Token)match(input,14,FOLLOW_4);
+
+ newLeafNode(otherlv_1, grammarAccess.getRhsAccess().getCommaKeyword_1_0());
+
+ // InternalFlaDsl.g:272:1: ( (lv_failures_2_0= ruleOutputExpression ) )
+ // InternalFlaDsl.g:273:1: (lv_failures_2_0= ruleOutputExpression )
+ {
+ // InternalFlaDsl.g:273:1: (lv_failures_2_0= ruleOutputExpression )
+ // InternalFlaDsl.g:274:3: lv_failures_2_0= ruleOutputExpression
+ {
+
+ newCompositeNode(grammarAccess.getRhsAccess().getFailuresOutputExpressionParserRuleCall_1_1_0());
+
+ pushFollow(FOLLOW_7);
+ lv_failures_2_0=ruleOutputExpression();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getRhsRule());
+ }
+ add(
+ current,
+ "failures",
+ lv_failures_2_0,
+ "org.polarsys.chess.xtext.FlaDsl.OutputExpression");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop3;
+ }
+ } while (true);
+
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleRhs"
+
+
+ // $ANTLR start "entryRuleInputExpression"
+ // InternalFlaDsl.g:298:1: entryRuleInputExpression returns [EObject current=null] : iv_ruleInputExpression= ruleInputExpression EOF ;
+ public final EObject entryRuleInputExpression() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleInputExpression = null;
+
+
+ try {
+ // InternalFlaDsl.g:299:2: (iv_ruleInputExpression= ruleInputExpression EOF )
+ // InternalFlaDsl.g:300:2: iv_ruleInputExpression= ruleInputExpression EOF
+ {
+ newCompositeNode(grammarAccess.getInputExpressionRule());
+ pushFollow(FOLLOW_1);
+ iv_ruleInputExpression=ruleInputExpression();
+
+ state._fsp--;
+
+ current =iv_ruleInputExpression;
+ match(input,EOF,FOLLOW_2);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleInputExpression"
+
+
+ // $ANTLR start "ruleInputExpression"
+ // InternalFlaDsl.g:307:1: ruleInputExpression returns [EObject current=null] : ( ( ( (otherlv_0= RULE_ID ) ) | otherlv_1= 'undefined' ) otherlv_2= '.' ( (lv_failureExpr_3_0= ruleInFailureExpr ) ) ) ;
+ public final EObject ruleInputExpression() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_0=null;
+ Token otherlv_1=null;
+ Token otherlv_2=null;
+ EObject lv_failureExpr_3_0 = null;
+
+
+ enterRule();
+
+ try {
+ // InternalFlaDsl.g:310:28: ( ( ( ( (otherlv_0= RULE_ID ) ) | otherlv_1= 'undefined' ) otherlv_2= '.' ( (lv_failureExpr_3_0= ruleInFailureExpr ) ) ) )
+ // InternalFlaDsl.g:311:1: ( ( ( (otherlv_0= RULE_ID ) ) | otherlv_1= 'undefined' ) otherlv_2= '.' ( (lv_failureExpr_3_0= ruleInFailureExpr ) ) )
+ {
+ // InternalFlaDsl.g:311:1: ( ( ( (otherlv_0= RULE_ID ) ) | otherlv_1= 'undefined' ) otherlv_2= '.' ( (lv_failureExpr_3_0= ruleInFailureExpr ) ) )
+ // InternalFlaDsl.g:311:2: ( ( (otherlv_0= RULE_ID ) ) | otherlv_1= 'undefined' ) otherlv_2= '.' ( (lv_failureExpr_3_0= ruleInFailureExpr ) )
+ {
+ // InternalFlaDsl.g:311:2: ( ( (otherlv_0= RULE_ID ) ) | otherlv_1= 'undefined' )
+ int alt4=2;
+ int LA4_0 = input.LA(1);
+
+ if ( (LA4_0==RULE_ID) ) {
+ alt4=1;
+ }
+ else if ( (LA4_0==15) ) {
+ alt4=2;
+ }
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("", 4, 0, input);
+
+ throw nvae;
+ }
+ switch (alt4) {
+ case 1 :
+ // InternalFlaDsl.g:311:3: ( (otherlv_0= RULE_ID ) )
+ {
+ // InternalFlaDsl.g:311:3: ( (otherlv_0= RULE_ID ) )
+ // InternalFlaDsl.g:312:1: (otherlv_0= RULE_ID )
+ {
+ // InternalFlaDsl.g:312:1: (otherlv_0= RULE_ID )
+ // InternalFlaDsl.g:313:3: otherlv_0= RULE_ID
+ {
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getInputExpressionRule());
+ }
+
+ otherlv_0=(Token)match(input,RULE_ID,FOLLOW_8);
+
+ newLeafNode(otherlv_0, grammarAccess.getInputExpressionAccess().getRefPortCrossReference_0_0_0());
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // InternalFlaDsl.g:325:7: otherlv_1= 'undefined'
+ {
+ otherlv_1=(Token)match(input,15,FOLLOW_8);
+
+ newLeafNode(otherlv_1, grammarAccess.getInputExpressionAccess().getUndefinedKeyword_0_1());
+
+
+ }
+ break;
+
+ }
+
+ otherlv_2=(Token)match(input,16,FOLLOW_9);
+
+ newLeafNode(otherlv_2, grammarAccess.getInputExpressionAccess().getFullStopKeyword_1());
+
+ // InternalFlaDsl.g:333:1: ( (lv_failureExpr_3_0= ruleInFailureExpr ) )
+ // InternalFlaDsl.g:334:1: (lv_failureExpr_3_0= ruleInFailureExpr )
+ {
+ // InternalFlaDsl.g:334:1: (lv_failureExpr_3_0= ruleInFailureExpr )
+ // InternalFlaDsl.g:335:3: lv_failureExpr_3_0= ruleInFailureExpr
+ {
+
+ newCompositeNode(grammarAccess.getInputExpressionAccess().getFailureExprInFailureExprParserRuleCall_2_0());
+
+ pushFollow(FOLLOW_2);
+ lv_failureExpr_3_0=ruleInFailureExpr();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getInputExpressionRule());
+ }
+ set(
+ current,
+ "failureExpr",
+ lv_failureExpr_3_0,
+ "org.polarsys.chess.xtext.FlaDsl.InFailureExpr");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleInputExpression"
+
+
+ // $ANTLR start "entryRuleOutputExpression"
+ // InternalFlaDsl.g:359:1: entryRuleOutputExpression returns [EObject current=null] : iv_ruleOutputExpression= ruleOutputExpression EOF ;
+ public final EObject entryRuleOutputExpression() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleOutputExpression = null;
+
+
+ try {
+ // InternalFlaDsl.g:360:2: (iv_ruleOutputExpression= ruleOutputExpression EOF )
+ // InternalFlaDsl.g:361:2: iv_ruleOutputExpression= ruleOutputExpression EOF
+ {
+ newCompositeNode(grammarAccess.getOutputExpressionRule());
+ pushFollow(FOLLOW_1);
+ iv_ruleOutputExpression=ruleOutputExpression();
+
+ state._fsp--;
+
+ current =iv_ruleOutputExpression;
+ match(input,EOF,FOLLOW_2);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleOutputExpression"
+
+
+ // $ANTLR start "ruleOutputExpression"
+ // InternalFlaDsl.g:368:1: ruleOutputExpression returns [EObject current=null] : ( ( ( (otherlv_0= RULE_ID ) ) | otherlv_1= 'undefined' ) otherlv_2= '.' ( (lv_failureExpr_3_0= ruleOutFailureExpr ) ) ) ;
+ public final EObject ruleOutputExpression() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_0=null;
+ Token otherlv_1=null;
+ Token otherlv_2=null;
+ EObject lv_failureExpr_3_0 = null;
+
+
+ enterRule();
+
+ try {
+ // InternalFlaDsl.g:371:28: ( ( ( ( (otherlv_0= RULE_ID ) ) | otherlv_1= 'undefined' ) otherlv_2= '.' ( (lv_failureExpr_3_0= ruleOutFailureExpr ) ) ) )
+ // InternalFlaDsl.g:372:1: ( ( ( (otherlv_0= RULE_ID ) ) | otherlv_1= 'undefined' ) otherlv_2= '.' ( (lv_failureExpr_3_0= ruleOutFailureExpr ) ) )
+ {
+ // InternalFlaDsl.g:372:1: ( ( ( (otherlv_0= RULE_ID ) ) | otherlv_1= 'undefined' ) otherlv_2= '.' ( (lv_failureExpr_3_0= ruleOutFailureExpr ) ) )
+ // InternalFlaDsl.g:372:2: ( ( (otherlv_0= RULE_ID ) ) | otherlv_1= 'undefined' ) otherlv_2= '.' ( (lv_failureExpr_3_0= ruleOutFailureExpr ) )
+ {
+ // InternalFlaDsl.g:372:2: ( ( (otherlv_0= RULE_ID ) ) | otherlv_1= 'undefined' )
+ int alt5=2;
+ int LA5_0 = input.LA(1);
+
+ if ( (LA5_0==RULE_ID) ) {
+ alt5=1;
+ }
+ else if ( (LA5_0==15) ) {
+ alt5=2;
+ }
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("", 5, 0, input);
+
+ throw nvae;
+ }
+ switch (alt5) {
+ case 1 :
+ // InternalFlaDsl.g:372:3: ( (otherlv_0= RULE_ID ) )
+ {
+ // InternalFlaDsl.g:372:3: ( (otherlv_0= RULE_ID ) )
+ // InternalFlaDsl.g:373:1: (otherlv_0= RULE_ID )
+ {
+ // InternalFlaDsl.g:373:1: (otherlv_0= RULE_ID )
+ // InternalFlaDsl.g:374:3: otherlv_0= RULE_ID
+ {
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getOutputExpressionRule());
+ }
+
+ otherlv_0=(Token)match(input,RULE_ID,FOLLOW_8);
+
+ newLeafNode(otherlv_0, grammarAccess.getOutputExpressionAccess().getRefPortCrossReference_0_0_0());
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // InternalFlaDsl.g:386:7: otherlv_1= 'undefined'
+ {
+ otherlv_1=(Token)match(input,15,FOLLOW_8);
+
+ newLeafNode(otherlv_1, grammarAccess.getOutputExpressionAccess().getUndefinedKeyword_0_1());
+
+
+ }
+ break;
+
+ }
+
+ otherlv_2=(Token)match(input,16,FOLLOW_9);
+
+ newLeafNode(otherlv_2, grammarAccess.getOutputExpressionAccess().getFullStopKeyword_1());
+
+ // InternalFlaDsl.g:394:1: ( (lv_failureExpr_3_0= ruleOutFailureExpr ) )
+ // InternalFlaDsl.g:395:1: (lv_failureExpr_3_0= ruleOutFailureExpr )
+ {
+ // InternalFlaDsl.g:395:1: (lv_failureExpr_3_0= ruleOutFailureExpr )
+ // InternalFlaDsl.g:396:3: lv_failureExpr_3_0= ruleOutFailureExpr
+ {
+
+ newCompositeNode(grammarAccess.getOutputExpressionAccess().getFailureExprOutFailureExprParserRuleCall_2_0());
+
+ pushFollow(FOLLOW_2);
+ lv_failureExpr_3_0=ruleOutFailureExpr();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getOutputExpressionRule());
+ }
+ set(
+ current,
+ "failureExpr",
+ lv_failureExpr_3_0,
+ "org.polarsys.chess.xtext.FlaDsl.OutFailureExpr");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleOutputExpression"
+
+
+ // $ANTLR start "entryRuleInFailureExpr"
+ // InternalFlaDsl.g:420:1: entryRuleInFailureExpr returns [EObject current=null] : iv_ruleInFailureExpr= ruleInFailureExpr EOF ;
+ public final EObject entryRuleInFailureExpr() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleInFailureExpr = null;
+
+
+ try {
+ // InternalFlaDsl.g:421:2: (iv_ruleInFailureExpr= ruleInFailureExpr EOF )
+ // InternalFlaDsl.g:422:2: iv_ruleInFailureExpr= ruleInFailureExpr EOF
+ {
+ newCompositeNode(grammarAccess.getInFailureExprRule());
+ pushFollow(FOLLOW_1);
+ iv_ruleInFailureExpr=ruleInFailureExpr();
+
+ state._fsp--;
+
+ current =iv_ruleInFailureExpr;
+ match(input,EOF,FOLLOW_2);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleInFailureExpr"
+
+
+ // $ANTLR start "ruleInFailureExpr"
+ // InternalFlaDsl.g:429:1: ruleInFailureExpr returns [EObject current=null] : ( ( (lv_failures_0_0= ruleWildcardDefinition ) ) | ( (lv_failures_1_0= ruleNoFailureDefinition ) ) | ( (lv_failures_2_0= ruleFailureDefinition ) ) | (otherlv_3= '{' ( (lv_failures_4_0= ruleFailureDefinition ) ) (otherlv_5= ',' ( (lv_failures_6_0= ruleFailureDefinition ) ) )+ otherlv_7= '}' ) | ( (lv_failures_8_0= ruleVariableDefinition ) ) ) ;
+ public final EObject ruleInFailureExpr() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_3=null;
+ Token otherlv_5=null;
+ Token otherlv_7=null;
+ EObject lv_failures_0_0 = null;
+
+ EObject lv_failures_1_0 = null;
+
+ EObject lv_failures_2_0 = null;
+
+ EObject lv_failures_4_0 = null;
+
+ EObject lv_failures_6_0 = null;
+
+ EObject lv_failures_8_0 = null;
+
+
+ enterRule();
+
+ try {
+ // InternalFlaDsl.g:432:28: ( ( ( (lv_failures_0_0= ruleWildcardDefinition ) ) | ( (lv_failures_1_0= ruleNoFailureDefinition ) ) | ( (lv_failures_2_0= ruleFailureDefinition ) ) | (otherlv_3= '{' ( (lv_failures_4_0= ruleFailureDefinition ) ) (otherlv_5= ',' ( (lv_failures_6_0= ruleFailureDefinition ) ) )+ otherlv_7= '}' ) | ( (lv_failures_8_0= ruleVariableDefinition ) ) ) )
+ // InternalFlaDsl.g:433:1: ( ( (lv_failures_0_0= ruleWildcardDefinition ) ) | ( (lv_failures_1_0= ruleNoFailureDefinition ) ) | ( (lv_failures_2_0= ruleFailureDefinition ) ) | (otherlv_3= '{' ( (lv_failures_4_0= ruleFailureDefinition ) ) (otherlv_5= ',' ( (lv_failures_6_0= ruleFailureDefinition ) ) )+ otherlv_7= '}' ) | ( (lv_failures_8_0= ruleVariableDefinition ) ) )
+ {
+ // InternalFlaDsl.g:433:1: ( ( (lv_failures_0_0= ruleWildcardDefinition ) ) | ( (lv_failures_1_0= ruleNoFailureDefinition ) ) | ( (lv_failures_2_0= ruleFailureDefinition ) ) | (otherlv_3= '{' ( (lv_failures_4_0= ruleFailureDefinition ) ) (otherlv_5= ',' ( (lv_failures_6_0= ruleFailureDefinition ) ) )+ otherlv_7= '}' ) | ( (lv_failures_8_0= ruleVariableDefinition ) ) )
+ int alt7=5;
+ switch ( input.LA(1) ) {
+ case 20:
+ {
+ alt7=1;
+ }
+ break;
+ case 19:
+ {
+ alt7=2;
+ }
+ break;
+ case 21:
+ case 22:
+ case 23:
+ case 24:
+ case 25:
+ case 26:
+ {
+ alt7=3;
+ }
+ break;
+ case 17:
+ {
+ alt7=4;
+ }
+ break;
+ case RULE_ID:
+ {
+ alt7=5;
+ }
+ break;
+ default:
+ NoViableAltException nvae =
+ new NoViableAltException("", 7, 0, input);
+
+ throw nvae;
+ }
+
+ switch (alt7) {
+ case 1 :
+ // InternalFlaDsl.g:433:2: ( (lv_failures_0_0= ruleWildcardDefinition ) )
+ {
+ // InternalFlaDsl.g:433:2: ( (lv_failures_0_0= ruleWildcardDefinition ) )
+ // InternalFlaDsl.g:434:1: (lv_failures_0_0= ruleWildcardDefinition )
+ {
+ // InternalFlaDsl.g:434:1: (lv_failures_0_0= ruleWildcardDefinition )
+ // InternalFlaDsl.g:435:3: lv_failures_0_0= ruleWildcardDefinition
+ {
+
+ newCompositeNode(grammarAccess.getInFailureExprAccess().getFailuresWildcardDefinitionParserRuleCall_0_0());
+
+ pushFollow(FOLLOW_2);
+ lv_failures_0_0=ruleWildcardDefinition();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getInFailureExprRule());
+ }
+ add(
+ current,
+ "failures",
+ lv_failures_0_0,
+ "org.polarsys.chess.xtext.FlaDsl.WildcardDefinition");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // InternalFlaDsl.g:452:6: ( (lv_failures_1_0= ruleNoFailureDefinition ) )
+ {
+ // InternalFlaDsl.g:452:6: ( (lv_failures_1_0= ruleNoFailureDefinition ) )
+ // InternalFlaDsl.g:453:1: (lv_failures_1_0= ruleNoFailureDefinition )
+ {
+ // InternalFlaDsl.g:453:1: (lv_failures_1_0= ruleNoFailureDefinition )
+ // InternalFlaDsl.g:454:3: lv_failures_1_0= ruleNoFailureDefinition
+ {
+
+ newCompositeNode(grammarAccess.getInFailureExprAccess().getFailuresNoFailureDefinitionParserRuleCall_1_0());
+
+ pushFollow(FOLLOW_2);
+ lv_failures_1_0=ruleNoFailureDefinition();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getInFailureExprRule());
+ }
+ add(
+ current,
+ "failures",
+ lv_failures_1_0,
+ "org.polarsys.chess.xtext.FlaDsl.NoFailureDefinition");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 3 :
+ // InternalFlaDsl.g:471:6: ( (lv_failures_2_0= ruleFailureDefinition ) )
+ {
+ // InternalFlaDsl.g:471:6: ( (lv_failures_2_0= ruleFailureDefinition ) )
+ // InternalFlaDsl.g:472:1: (lv_failures_2_0= ruleFailureDefinition )
+ {
+ // InternalFlaDsl.g:472:1: (lv_failures_2_0= ruleFailureDefinition )
+ // InternalFlaDsl.g:473:3: lv_failures_2_0= ruleFailureDefinition
+ {
+
+ newCompositeNode(grammarAccess.getInFailureExprAccess().getFailuresFailureDefinitionParserRuleCall_2_0());
+
+ pushFollow(FOLLOW_2);
+ lv_failures_2_0=ruleFailureDefinition();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getInFailureExprRule());
+ }
+ add(
+ current,
+ "failures",
+ lv_failures_2_0,
+ "org.polarsys.chess.xtext.FlaDsl.FailureDefinition");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 4 :
+ // InternalFlaDsl.g:490:6: (otherlv_3= '{' ( (lv_failures_4_0= ruleFailureDefinition ) ) (otherlv_5= ',' ( (lv_failures_6_0= ruleFailureDefinition ) ) )+ otherlv_7= '}' )
+ {
+ // InternalFlaDsl.g:490:6: (otherlv_3= '{' ( (lv_failures_4_0= ruleFailureDefinition ) ) (otherlv_5= ',' ( (lv_failures_6_0= ruleFailureDefinition ) ) )+ otherlv_7= '}' )
+ // InternalFlaDsl.g:490:8: otherlv_3= '{' ( (lv_failures_4_0= ruleFailureDefinition ) ) (otherlv_5= ',' ( (lv_failures_6_0= ruleFailureDefinition ) ) )+ otherlv_7= '}'
+ {
+ otherlv_3=(Token)match(input,17,FOLLOW_10);
+
+ newLeafNode(otherlv_3, grammarAccess.getInFailureExprAccess().getLeftCurlyBracketKeyword_3_0());
+
+ // InternalFlaDsl.g:494:1: ( (lv_failures_4_0= ruleFailureDefinition ) )
+ // InternalFlaDsl.g:495:1: (lv_failures_4_0= ruleFailureDefinition )
+ {
+ // InternalFlaDsl.g:495:1: (lv_failures_4_0= ruleFailureDefinition )
+ // InternalFlaDsl.g:496:3: lv_failures_4_0= ruleFailureDefinition
+ {
+
+ newCompositeNode(grammarAccess.getInFailureExprAccess().getFailuresFailureDefinitionParserRuleCall_3_1_0());
+
+ pushFollow(FOLLOW_11);
+ lv_failures_4_0=ruleFailureDefinition();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getInFailureExprRule());
+ }
+ add(
+ current,
+ "failures",
+ lv_failures_4_0,
+ "org.polarsys.chess.xtext.FlaDsl.FailureDefinition");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+ // InternalFlaDsl.g:512:2: (otherlv_5= ',' ( (lv_failures_6_0= ruleFailureDefinition ) ) )+
+ int cnt6=0;
+ loop6:
+ do {
+ int alt6=2;
+ int LA6_0 = input.LA(1);
+
+ if ( (LA6_0==14) ) {
+ alt6=1;
+ }
+
+
+ switch (alt6) {
+ case 1 :
+ // InternalFlaDsl.g:512:4: otherlv_5= ',' ( (lv_failures_6_0= ruleFailureDefinition ) )
+ {
+ otherlv_5=(Token)match(input,14,FOLLOW_10);
+
+ newLeafNode(otherlv_5, grammarAccess.getInFailureExprAccess().getCommaKeyword_3_2_0());
+
+ // InternalFlaDsl.g:516:1: ( (lv_failures_6_0= ruleFailureDefinition ) )
+ // InternalFlaDsl.g:517:1: (lv_failures_6_0= ruleFailureDefinition )
+ {
+ // InternalFlaDsl.g:517:1: (lv_failures_6_0= ruleFailureDefinition )
+ // InternalFlaDsl.g:518:3: lv_failures_6_0= ruleFailureDefinition
+ {
+
+ newCompositeNode(grammarAccess.getInFailureExprAccess().getFailuresFailureDefinitionParserRuleCall_3_2_1_0());
+
+ pushFollow(FOLLOW_12);
+ lv_failures_6_0=ruleFailureDefinition();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getInFailureExprRule());
+ }
+ add(
+ current,
+ "failures",
+ lv_failures_6_0,
+ "org.polarsys.chess.xtext.FlaDsl.FailureDefinition");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ if ( cnt6 >= 1 ) break loop6;
+ EarlyExitException eee =
+ new EarlyExitException(6, input);
+ throw eee;
+ }
+ cnt6++;
+ } while (true);
+
+ otherlv_7=(Token)match(input,18,FOLLOW_2);
+
+ newLeafNode(otherlv_7, grammarAccess.getInFailureExprAccess().getRightCurlyBracketKeyword_3_3());
+
+
+ }
+
+
+ }
+ break;
+ case 5 :
+ // InternalFlaDsl.g:539:6: ( (lv_failures_8_0= ruleVariableDefinition ) )
+ {
+ // InternalFlaDsl.g:539:6: ( (lv_failures_8_0= ruleVariableDefinition ) )
+ // InternalFlaDsl.g:540:1: (lv_failures_8_0= ruleVariableDefinition )
+ {
+ // InternalFlaDsl.g:540:1: (lv_failures_8_0= ruleVariableDefinition )
+ // InternalFlaDsl.g:541:3: lv_failures_8_0= ruleVariableDefinition
+ {
+
+ newCompositeNode(grammarAccess.getInFailureExprAccess().getFailuresVariableDefinitionParserRuleCall_4_0());
+
+ pushFollow(FOLLOW_2);
+ lv_failures_8_0=ruleVariableDefinition();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getInFailureExprRule());
+ }
+ add(
+ current,
+ "failures",
+ lv_failures_8_0,
+ "org.polarsys.chess.xtext.FlaDsl.VariableDefinition");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleInFailureExpr"
+
+
+ // $ANTLR start "entryRuleOutFailureExpr"
+ // InternalFlaDsl.g:565:1: entryRuleOutFailureExpr returns [EObject current=null] : iv_ruleOutFailureExpr= ruleOutFailureExpr EOF ;
+ public final EObject entryRuleOutFailureExpr() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleOutFailureExpr = null;
+
+
+ try {
+ // InternalFlaDsl.g:566:2: (iv_ruleOutFailureExpr= ruleOutFailureExpr EOF )
+ // InternalFlaDsl.g:567:2: iv_ruleOutFailureExpr= ruleOutFailureExpr EOF
+ {
+ newCompositeNode(grammarAccess.getOutFailureExprRule());
+ pushFollow(FOLLOW_1);
+ iv_ruleOutFailureExpr=ruleOutFailureExpr();
+
+ state._fsp--;
+
+ current =iv_ruleOutFailureExpr;
+ match(input,EOF,FOLLOW_2);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleOutFailureExpr"
+
+
+ // $ANTLR start "ruleOutFailureExpr"
+ // InternalFlaDsl.g:574:1: ruleOutFailureExpr returns [EObject current=null] : ( ( (lv_failures_0_0= ruleNoFailureDefinition ) ) | ( (lv_failures_1_0= ruleComplexNofailureDefinition ) ) | ( (lv_failures_2_0= ruleFailureDefinition ) ) | (otherlv_3= '{' ( (lv_failures_4_0= ruleFailureDefinition ) ) (otherlv_5= ',' ( (lv_failures_6_0= ruleFailureDefinition ) ) )+ otherlv_7= '}' ) | ( (lv_failures_8_0= ruleVariableDefinition ) ) ) ;
+ public final EObject ruleOutFailureExpr() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_3=null;
+ Token otherlv_5=null;
+ Token otherlv_7=null;
+ EObject lv_failures_0_0 = null;
+
+ EObject lv_failures_1_0 = null;
+
+ EObject lv_failures_2_0 = null;
+
+ EObject lv_failures_4_0 = null;
+
+ EObject lv_failures_6_0 = null;
+
+ EObject lv_failures_8_0 = null;
+
+
+ enterRule();
+
+ try {
+ // InternalFlaDsl.g:577:28: ( ( ( (lv_failures_0_0= ruleNoFailureDefinition ) ) | ( (lv_failures_1_0= ruleComplexNofailureDefinition ) ) | ( (lv_failures_2_0= ruleFailureDefinition ) ) | (otherlv_3= '{' ( (lv_failures_4_0= ruleFailureDefinition ) ) (otherlv_5= ',' ( (lv_failures_6_0= ruleFailureDefinition ) ) )+ otherlv_7= '}' ) | ( (lv_failures_8_0= ruleVariableDefinition ) ) ) )
+ // InternalFlaDsl.g:578:1: ( ( (lv_failures_0_0= ruleNoFailureDefinition ) ) | ( (lv_failures_1_0= ruleComplexNofailureDefinition ) ) | ( (lv_failures_2_0= ruleFailureDefinition ) ) | (otherlv_3= '{' ( (lv_failures_4_0= ruleFailureDefinition ) ) (otherlv_5= ',' ( (lv_failures_6_0= ruleFailureDefinition ) ) )+ otherlv_7= '}' ) | ( (lv_failures_8_0= ruleVariableDefinition ) ) )
+ {
+ // InternalFlaDsl.g:578:1: ( ( (lv_failures_0_0= ruleNoFailureDefinition ) ) | ( (lv_failures_1_0= ruleComplexNofailureDefinition ) ) | ( (lv_failures_2_0= ruleFailureDefinition ) ) | (otherlv_3= '{' ( (lv_failures_4_0= ruleFailureDefinition ) ) (otherlv_5= ',' ( (lv_failures_6_0= ruleFailureDefinition ) ) )+ otherlv_7= '}' ) | ( (lv_failures_8_0= ruleVariableDefinition ) ) )
+ int alt9=5;
+ switch ( input.LA(1) ) {
+ case 19:
+ {
+ int LA9_1 = input.LA(2);
+
+ if ( (LA9_1==EOF||(LA9_1>=13 && LA9_1<=14)) ) {
+ alt9=1;
+ }
+ else if ( (LA9_1==16) ) {
+ alt9=2;
+ }
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("", 9, 1, input);
+
+ throw nvae;
+ }
+ }
+ break;
+ case 21:
+ case 22:
+ case 23:
+ case 24:
+ case 25:
+ case 26:
+ {
+ alt9=3;
+ }
+ break;
+ case 17:
+ {
+ alt9=4;
+ }
+ break;
+ case RULE_ID:
+ {
+ alt9=5;
+ }
+ break;
+ default:
+ NoViableAltException nvae =
+ new NoViableAltException("", 9, 0, input);
+
+ throw nvae;
+ }
+
+ switch (alt9) {
+ case 1 :
+ // InternalFlaDsl.g:578:2: ( (lv_failures_0_0= ruleNoFailureDefinition ) )
+ {
+ // InternalFlaDsl.g:578:2: ( (lv_failures_0_0= ruleNoFailureDefinition ) )
+ // InternalFlaDsl.g:579:1: (lv_failures_0_0= ruleNoFailureDefinition )
+ {
+ // InternalFlaDsl.g:579:1: (lv_failures_0_0= ruleNoFailureDefinition )
+ // InternalFlaDsl.g:580:3: lv_failures_0_0= ruleNoFailureDefinition
+ {
+
+ newCompositeNode(grammarAccess.getOutFailureExprAccess().getFailuresNoFailureDefinitionParserRuleCall_0_0());
+
+ pushFollow(FOLLOW_2);
+ lv_failures_0_0=ruleNoFailureDefinition();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getOutFailureExprRule());
+ }
+ add(
+ current,
+ "failures",
+ lv_failures_0_0,
+ "org.polarsys.chess.xtext.FlaDsl.NoFailureDefinition");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // InternalFlaDsl.g:597:6: ( (lv_failures_1_0= ruleComplexNofailureDefinition ) )
+ {
+ // InternalFlaDsl.g:597:6: ( (lv_failures_1_0= ruleComplexNofailureDefinition ) )
+ // InternalFlaDsl.g:598:1: (lv_failures_1_0= ruleComplexNofailureDefinition )
+ {
+ // InternalFlaDsl.g:598:1: (lv_failures_1_0= ruleComplexNofailureDefinition )
+ // InternalFlaDsl.g:599:3: lv_failures_1_0= ruleComplexNofailureDefinition
+ {
+
+ newCompositeNode(grammarAccess.getOutFailureExprAccess().getFailuresComplexNofailureDefinitionParserRuleCall_1_0());
+
+ pushFollow(FOLLOW_2);
+ lv_failures_1_0=ruleComplexNofailureDefinition();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getOutFailureExprRule());
+ }
+ add(
+ current,
+ "failures",
+ lv_failures_1_0,
+ "org.polarsys.chess.xtext.FlaDsl.ComplexNofailureDefinition");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 3 :
+ // InternalFlaDsl.g:616:6: ( (lv_failures_2_0= ruleFailureDefinition ) )
+ {
+ // InternalFlaDsl.g:616:6: ( (lv_failures_2_0= ruleFailureDefinition ) )
+ // InternalFlaDsl.g:617:1: (lv_failures_2_0= ruleFailureDefinition )
+ {
+ // InternalFlaDsl.g:617:1: (lv_failures_2_0= ruleFailureDefinition )
+ // InternalFlaDsl.g:618:3: lv_failures_2_0= ruleFailureDefinition
+ {
+
+ newCompositeNode(grammarAccess.getOutFailureExprAccess().getFailuresFailureDefinitionParserRuleCall_2_0());
+
+ pushFollow(FOLLOW_2);
+ lv_failures_2_0=ruleFailureDefinition();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getOutFailureExprRule());
+ }
+ add(
+ current,
+ "failures",
+ lv_failures_2_0,
+ "org.polarsys.chess.xtext.FlaDsl.FailureDefinition");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 4 :
+ // InternalFlaDsl.g:635:6: (otherlv_3= '{' ( (lv_failures_4_0= ruleFailureDefinition ) ) (otherlv_5= ',' ( (lv_failures_6_0= ruleFailureDefinition ) ) )+ otherlv_7= '}' )
+ {
+ // InternalFlaDsl.g:635:6: (otherlv_3= '{' ( (lv_failures_4_0= ruleFailureDefinition ) ) (otherlv_5= ',' ( (lv_failures_6_0= ruleFailureDefinition ) ) )+ otherlv_7= '}' )
+ // InternalFlaDsl.g:635:8: otherlv_3= '{' ( (lv_failures_4_0= ruleFailureDefinition ) ) (otherlv_5= ',' ( (lv_failures_6_0= ruleFailureDefinition ) ) )+ otherlv_7= '}'
+ {
+ otherlv_3=(Token)match(input,17,FOLLOW_10);
+
+ newLeafNode(otherlv_3, grammarAccess.getOutFailureExprAccess().getLeftCurlyBracketKeyword_3_0());
+
+ // InternalFlaDsl.g:639:1: ( (lv_failures_4_0= ruleFailureDefinition ) )
+ // InternalFlaDsl.g:640:1: (lv_failures_4_0= ruleFailureDefinition )
+ {
+ // InternalFlaDsl.g:640:1: (lv_failures_4_0= ruleFailureDefinition )
+ // InternalFlaDsl.g:641:3: lv_failures_4_0= ruleFailureDefinition
+ {
+
+ newCompositeNode(grammarAccess.getOutFailureExprAccess().getFailuresFailureDefinitionParserRuleCall_3_1_0());
+
+ pushFollow(FOLLOW_11);
+ lv_failures_4_0=ruleFailureDefinition();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getOutFailureExprRule());
+ }
+ add(
+ current,
+ "failures",
+ lv_failures_4_0,
+ "org.polarsys.chess.xtext.FlaDsl.FailureDefinition");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+ // InternalFlaDsl.g:657:2: (otherlv_5= ',' ( (lv_failures_6_0= ruleFailureDefinition ) ) )+
+ int cnt8=0;
+ loop8:
+ do {
+ int alt8=2;
+ int LA8_0 = input.LA(1);
+
+ if ( (LA8_0==14) ) {
+ alt8=1;
+ }
+
+
+ switch (alt8) {
+ case 1 :
+ // InternalFlaDsl.g:657:4: otherlv_5= ',' ( (lv_failures_6_0= ruleFailureDefinition ) )
+ {
+ otherlv_5=(Token)match(input,14,FOLLOW_10);
+
+ newLeafNode(otherlv_5, grammarAccess.getOutFailureExprAccess().getCommaKeyword_3_2_0());
+
+ // InternalFlaDsl.g:661:1: ( (lv_failures_6_0= ruleFailureDefinition ) )
+ // InternalFlaDsl.g:662:1: (lv_failures_6_0= ruleFailureDefinition )
+ {
+ // InternalFlaDsl.g:662:1: (lv_failures_6_0= ruleFailureDefinition )
+ // InternalFlaDsl.g:663:3: lv_failures_6_0= ruleFailureDefinition
+ {
+
+ newCompositeNode(grammarAccess.getOutFailureExprAccess().getFailuresFailureDefinitionParserRuleCall_3_2_1_0());
+
+ pushFollow(FOLLOW_12);
+ lv_failures_6_0=ruleFailureDefinition();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getOutFailureExprRule());
+ }
+ add(
+ current,
+ "failures",
+ lv_failures_6_0,
+ "org.polarsys.chess.xtext.FlaDsl.FailureDefinition");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ if ( cnt8 >= 1 ) break loop8;
+ EarlyExitException eee =
+ new EarlyExitException(8, input);
+ throw eee;
+ }
+ cnt8++;
+ } while (true);
+
+ otherlv_7=(Token)match(input,18,FOLLOW_2);
+
+ newLeafNode(otherlv_7, grammarAccess.getOutFailureExprAccess().getRightCurlyBracketKeyword_3_3());
+
+
+ }
+
+
+ }
+ break;
+ case 5 :
+ // InternalFlaDsl.g:684:6: ( (lv_failures_8_0= ruleVariableDefinition ) )
+ {
+ // InternalFlaDsl.g:684:6: ( (lv_failures_8_0= ruleVariableDefinition ) )
+ // InternalFlaDsl.g:685:1: (lv_failures_8_0= ruleVariableDefinition )
+ {
+ // InternalFlaDsl.g:685:1: (lv_failures_8_0= ruleVariableDefinition )
+ // InternalFlaDsl.g:686:3: lv_failures_8_0= ruleVariableDefinition
+ {
+
+ newCompositeNode(grammarAccess.getOutFailureExprAccess().getFailuresVariableDefinitionParserRuleCall_4_0());
+
+ pushFollow(FOLLOW_2);
+ lv_failures_8_0=ruleVariableDefinition();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getOutFailureExprRule());
+ }
+ add(
+ current,
+ "failures",
+ lv_failures_8_0,
+ "org.polarsys.chess.xtext.FlaDsl.VariableDefinition");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleOutFailureExpr"
+
+
+ // $ANTLR start "entryRuleFailureDefinition"
+ // InternalFlaDsl.g:712:1: entryRuleFailureDefinition returns [EObject current=null] : iv_ruleFailureDefinition= ruleFailureDefinition EOF ;
+ public final EObject entryRuleFailureDefinition() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleFailureDefinition = null;
+
+
+ try {
+ // InternalFlaDsl.g:713:2: (iv_ruleFailureDefinition= ruleFailureDefinition EOF )
+ // InternalFlaDsl.g:714:2: iv_ruleFailureDefinition= ruleFailureDefinition EOF
+ {
+ newCompositeNode(grammarAccess.getFailureDefinitionRule());
+ pushFollow(FOLLOW_1);
+ iv_ruleFailureDefinition=ruleFailureDefinition();
+
+ state._fsp--;
+
+ current =iv_ruleFailureDefinition;
+ match(input,EOF,FOLLOW_2);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleFailureDefinition"
+
+
+ // $ANTLR start "ruleFailureDefinition"
+ // InternalFlaDsl.g:721:1: ruleFailureDefinition returns [EObject current=null] : ( () ( (lv_type_1_0= ruleActualFailureType ) ) (otherlv_2= '.' ( (lv_acidAvoidable_3_0= ruleACIDavoidable ) ) )? ) ;
+ public final EObject ruleFailureDefinition() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_2=null;
+ Enumerator lv_type_1_0 = null;
+
+ EObject lv_acidAvoidable_3_0 = null;
+
+
+ enterRule();
+
+ try {
+ // InternalFlaDsl.g:724:28: ( ( () ( (lv_type_1_0= ruleActualFailureType ) ) (otherlv_2= '.' ( (lv_acidAvoidable_3_0= ruleACIDavoidable ) ) )? ) )
+ // InternalFlaDsl.g:725:1: ( () ( (lv_type_1_0= ruleActualFailureType ) ) (otherlv_2= '.' ( (lv_acidAvoidable_3_0= ruleACIDavoidable ) ) )? )
+ {
+ // InternalFlaDsl.g:725:1: ( () ( (lv_type_1_0= ruleActualFailureType ) ) (otherlv_2= '.' ( (lv_acidAvoidable_3_0= ruleACIDavoidable ) ) )? )
+ // InternalFlaDsl.g:725:2: () ( (lv_type_1_0= ruleActualFailureType ) ) (otherlv_2= '.' ( (lv_acidAvoidable_3_0= ruleACIDavoidable ) ) )?
+ {
+ // InternalFlaDsl.g:725:2: ()
+ // InternalFlaDsl.g:726:5:
+ {
+
+ current = forceCreateModelElement(
+ grammarAccess.getFailureDefinitionAccess().getFailureDefinitionAction_0(),
+ current);
+
+
+ }
+
+ // InternalFlaDsl.g:731:2: ( (lv_type_1_0= ruleActualFailureType ) )
+ // InternalFlaDsl.g:732:1: (lv_type_1_0= ruleActualFailureType )
+ {
+ // InternalFlaDsl.g:732:1: (lv_type_1_0= ruleActualFailureType )
+ // InternalFlaDsl.g:733:3: lv_type_1_0= ruleActualFailureType
+ {
+
+ newCompositeNode(grammarAccess.getFailureDefinitionAccess().getTypeActualFailureTypeEnumRuleCall_1_0());
+
+ pushFollow(FOLLOW_13);
+ lv_type_1_0=ruleActualFailureType();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getFailureDefinitionRule());
+ }
+ set(
+ current,
+ "type",
+ lv_type_1_0,
+ "org.polarsys.chess.xtext.FlaDsl.ActualFailureType");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+ // InternalFlaDsl.g:749:2: (otherlv_2= '.' ( (lv_acidAvoidable_3_0= ruleACIDavoidable ) ) )?
+ int alt10=2;
+ int LA10_0 = input.LA(1);
+
+ if ( (LA10_0==16) ) {
+ alt10=1;
+ }
+ switch (alt10) {
+ case 1 :
+ // InternalFlaDsl.g:749:4: otherlv_2= '.' ( (lv_acidAvoidable_3_0= ruleACIDavoidable ) )
+ {
+ otherlv_2=(Token)match(input,16,FOLLOW_14);
+
+ newLeafNode(otherlv_2, grammarAccess.getFailureDefinitionAccess().getFullStopKeyword_2_0());
+
+ // InternalFlaDsl.g:753:1: ( (lv_acidAvoidable_3_0= ruleACIDavoidable ) )
+ // InternalFlaDsl.g:754:1: (lv_acidAvoidable_3_0= ruleACIDavoidable )
+ {
+ // InternalFlaDsl.g:754:1: (lv_acidAvoidable_3_0= ruleACIDavoidable )
+ // InternalFlaDsl.g:755:3: lv_acidAvoidable_3_0= ruleACIDavoidable
+ {
+
+ newCompositeNode(grammarAccess.getFailureDefinitionAccess().getAcidAvoidableACIDavoidableParserRuleCall_2_1_0());
+
+ pushFollow(FOLLOW_2);
+ lv_acidAvoidable_3_0=ruleACIDavoidable();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getFailureDefinitionRule());
+ }
+ set(
+ current,
+ "acidAvoidable",
+ lv_acidAvoidable_3_0,
+ "org.polarsys.chess.xtext.FlaDsl.ACIDavoidable");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleFailureDefinition"
+
+
+ // $ANTLR start "entryRuleNoFailureDefinition"
+ // InternalFlaDsl.g:779:1: entryRuleNoFailureDefinition returns [EObject current=null] : iv_ruleNoFailureDefinition= ruleNoFailureDefinition EOF ;
+ public final EObject entryRuleNoFailureDefinition() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleNoFailureDefinition = null;
+
+
+ try {
+ // InternalFlaDsl.g:780:2: (iv_ruleNoFailureDefinition= ruleNoFailureDefinition EOF )
+ // InternalFlaDsl.g:781:2: iv_ruleNoFailureDefinition= ruleNoFailureDefinition EOF
+ {
+ newCompositeNode(grammarAccess.getNoFailureDefinitionRule());
+ pushFollow(FOLLOW_1);
+ iv_ruleNoFailureDefinition=ruleNoFailureDefinition();
+
+ state._fsp--;
+
+ current =iv_ruleNoFailureDefinition;
+ match(input,EOF,FOLLOW_2);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleNoFailureDefinition"
+
+
+ // $ANTLR start "ruleNoFailureDefinition"
+ // InternalFlaDsl.g:788:1: ruleNoFailureDefinition returns [EObject current=null] : ( () otherlv_1= 'noFailure' ) ;
+ public final EObject ruleNoFailureDefinition() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_1=null;
+
+ enterRule();
+
+ try {
+ // InternalFlaDsl.g:791:28: ( ( () otherlv_1= 'noFailure' ) )
+ // InternalFlaDsl.g:792:1: ( () otherlv_1= 'noFailure' )
+ {
+ // InternalFlaDsl.g:792:1: ( () otherlv_1= 'noFailure' )
+ // InternalFlaDsl.g:792:2: () otherlv_1= 'noFailure'
+ {
+ // InternalFlaDsl.g:792:2: ()
+ // InternalFlaDsl.g:793:5:
+ {
+
+ current = forceCreateModelElement(
+ grammarAccess.getNoFailureDefinitionAccess().getNoFailureDefinitionAction_0(),
+ current);
+
+
+ }
+
+ otherlv_1=(Token)match(input,19,FOLLOW_2);
+
+ newLeafNode(otherlv_1, grammarAccess.getNoFailureDefinitionAccess().getNoFailureKeyword_1());
+
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleNoFailureDefinition"
+
+
+ // $ANTLR start "entryRuleComplexNofailureDefinition"
+ // InternalFlaDsl.g:810:1: entryRuleComplexNofailureDefinition returns [EObject current=null] : iv_ruleComplexNofailureDefinition= ruleComplexNofailureDefinition EOF ;
+ public final EObject entryRuleComplexNofailureDefinition() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleComplexNofailureDefinition = null;
+
+
+ try {
+ // InternalFlaDsl.g:811:2: (iv_ruleComplexNofailureDefinition= ruleComplexNofailureDefinition EOF )
+ // InternalFlaDsl.g:812:2: iv_ruleComplexNofailureDefinition= ruleComplexNofailureDefinition EOF
+ {
+ newCompositeNode(grammarAccess.getComplexNofailureDefinitionRule());
+ pushFollow(FOLLOW_1);
+ iv_ruleComplexNofailureDefinition=ruleComplexNofailureDefinition();
+
+ state._fsp--;
+
+ current =iv_ruleComplexNofailureDefinition;
+ match(input,EOF,FOLLOW_2);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleComplexNofailureDefinition"
+
+
+ // $ANTLR start "ruleComplexNofailureDefinition"
+ // InternalFlaDsl.g:819:1: ruleComplexNofailureDefinition returns [EObject current=null] : ( () otherlv_1= 'noFailure' otherlv_2= '.' ( (lv_acidMitigation_3_0= ruleACIDMitigation ) ) ) ;
+ public final EObject ruleComplexNofailureDefinition() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_1=null;
+ Token otherlv_2=null;
+ EObject lv_acidMitigation_3_0 = null;
+
+
+ enterRule();
+
+ try {
+ // InternalFlaDsl.g:822:28: ( ( () otherlv_1= 'noFailure' otherlv_2= '.' ( (lv_acidMitigation_3_0= ruleACIDMitigation ) ) ) )
+ // InternalFlaDsl.g:823:1: ( () otherlv_1= 'noFailure' otherlv_2= '.' ( (lv_acidMitigation_3_0= ruleACIDMitigation ) ) )
+ {
+ // InternalFlaDsl.g:823:1: ( () otherlv_1= 'noFailure' otherlv_2= '.' ( (lv_acidMitigation_3_0= ruleACIDMitigation ) ) )
+ // InternalFlaDsl.g:823:2: () otherlv_1= 'noFailure' otherlv_2= '.' ( (lv_acidMitigation_3_0= ruleACIDMitigation ) )
+ {
+ // InternalFlaDsl.g:823:2: ()
+ // InternalFlaDsl.g:824:5:
+ {
+
+ current = forceCreateModelElement(
+ grammarAccess.getComplexNofailureDefinitionAccess().getNoFailureDefinitionAction_0(),
+ current);
+
+
+ }
+
+ otherlv_1=(Token)match(input,19,FOLLOW_8);
+
+ newLeafNode(otherlv_1, grammarAccess.getComplexNofailureDefinitionAccess().getNoFailureKeyword_1());
+
+ otherlv_2=(Token)match(input,16,FOLLOW_15);
+
+ newLeafNode(otherlv_2, grammarAccess.getComplexNofailureDefinitionAccess().getFullStopKeyword_2());
+
+ // InternalFlaDsl.g:837:1: ( (lv_acidMitigation_3_0= ruleACIDMitigation ) )
+ // InternalFlaDsl.g:838:1: (lv_acidMitigation_3_0= ruleACIDMitigation )
+ {
+ // InternalFlaDsl.g:838:1: (lv_acidMitigation_3_0= ruleACIDMitigation )
+ // InternalFlaDsl.g:839:3: lv_acidMitigation_3_0= ruleACIDMitigation
+ {
+
+ newCompositeNode(grammarAccess.getComplexNofailureDefinitionAccess().getAcidMitigationACIDMitigationParserRuleCall_3_0());
+
+ pushFollow(FOLLOW_2);
+ lv_acidMitigation_3_0=ruleACIDMitigation();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getComplexNofailureDefinitionRule());
+ }
+ set(
+ current,
+ "acidMitigation",
+ lv_acidMitigation_3_0,
+ "org.polarsys.chess.xtext.FlaDsl.ACIDMitigation");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleComplexNofailureDefinition"
+
+
+ // $ANTLR start "entryRuleWildcardDefinition"
+ // InternalFlaDsl.g:863:1: entryRuleWildcardDefinition returns [EObject current=null] : iv_ruleWildcardDefinition= ruleWildcardDefinition EOF ;
+ public final EObject entryRuleWildcardDefinition() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleWildcardDefinition = null;
+
+
+ try {
+ // InternalFlaDsl.g:864:2: (iv_ruleWildcardDefinition= ruleWildcardDefinition EOF )
+ // InternalFlaDsl.g:865:2: iv_ruleWildcardDefinition= ruleWildcardDefinition EOF
+ {
+ newCompositeNode(grammarAccess.getWildcardDefinitionRule());
+ pushFollow(FOLLOW_1);
+ iv_ruleWildcardDefinition=ruleWildcardDefinition();
+
+ state._fsp--;
+
+ current =iv_ruleWildcardDefinition;
+ match(input,EOF,FOLLOW_2);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleWildcardDefinition"
+
+
+ // $ANTLR start "ruleWildcardDefinition"
+ // InternalFlaDsl.g:872:1: ruleWildcardDefinition returns [EObject current=null] : ( () otherlv_1= 'wildcard' ) ;
+ public final EObject ruleWildcardDefinition() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_1=null;
+
+ enterRule();
+
+ try {
+ // InternalFlaDsl.g:875:28: ( ( () otherlv_1= 'wildcard' ) )
+ // InternalFlaDsl.g:876:1: ( () otherlv_1= 'wildcard' )
+ {
+ // InternalFlaDsl.g:876:1: ( () otherlv_1= 'wildcard' )
+ // InternalFlaDsl.g:876:2: () otherlv_1= 'wildcard'
+ {
+ // InternalFlaDsl.g:876:2: ()
+ // InternalFlaDsl.g:877:5:
+ {
+
+ current = forceCreateModelElement(
+ grammarAccess.getWildcardDefinitionAccess().getWildcardDefinitionAction_0(),
+ current);
+
+
+ }
+
+ otherlv_1=(Token)match(input,20,FOLLOW_2);
+
+ newLeafNode(otherlv_1, grammarAccess.getWildcardDefinitionAccess().getWildcardKeyword_1());
+
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleWildcardDefinition"
+
+
+ // $ANTLR start "entryRuleVariableDefinition"
+ // InternalFlaDsl.g:894:1: entryRuleVariableDefinition returns [EObject current=null] : iv_ruleVariableDefinition= ruleVariableDefinition EOF ;
+ public final EObject entryRuleVariableDefinition() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleVariableDefinition = null;
+
+
+ try {
+ // InternalFlaDsl.g:895:2: (iv_ruleVariableDefinition= ruleVariableDefinition EOF )
+ // InternalFlaDsl.g:896:2: iv_ruleVariableDefinition= ruleVariableDefinition EOF
+ {
+ newCompositeNode(grammarAccess.getVariableDefinitionRule());
+ pushFollow(FOLLOW_1);
+ iv_ruleVariableDefinition=ruleVariableDefinition();
+
+ state._fsp--;
+
+ current =iv_ruleVariableDefinition;
+ match(input,EOF,FOLLOW_2);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleVariableDefinition"
+
+
+ // $ANTLR start "ruleVariableDefinition"
+ // InternalFlaDsl.g:903:1: ruleVariableDefinition returns [EObject current=null] : ( () ( (lv_variableName_1_0= RULE_ID ) ) ) ;
+ public final EObject ruleVariableDefinition() throws RecognitionException {
+ EObject current = null;
+
+ Token lv_variableName_1_0=null;
+
+ enterRule();
+
+ try {
+ // InternalFlaDsl.g:906:28: ( ( () ( (lv_variableName_1_0= RULE_ID ) ) ) )
+ // InternalFlaDsl.g:907:1: ( () ( (lv_variableName_1_0= RULE_ID ) ) )
+ {
+ // InternalFlaDsl.g:907:1: ( () ( (lv_variableName_1_0= RULE_ID ) ) )
+ // InternalFlaDsl.g:907:2: () ( (lv_variableName_1_0= RULE_ID ) )
+ {
+ // InternalFlaDsl.g:907:2: ()
+ // InternalFlaDsl.g:908:5:
+ {
+
+ current = forceCreateModelElement(
+ grammarAccess.getVariableDefinitionAccess().getVariableDefinitionAction_0(),
+ current);
+
+
+ }
+
+ // InternalFlaDsl.g:913:2: ( (lv_variableName_1_0= RULE_ID ) )
+ // InternalFlaDsl.g:914:1: (lv_variableName_1_0= RULE_ID )
+ {
+ // InternalFlaDsl.g:914:1: (lv_variableName_1_0= RULE_ID )
+ // InternalFlaDsl.g:915:3: lv_variableName_1_0= RULE_ID
+ {
+ lv_variableName_1_0=(Token)match(input,RULE_ID,FOLLOW_2);
+
+ newLeafNode(lv_variableName_1_0, grammarAccess.getVariableDefinitionAccess().getVariableNameIDTerminalRuleCall_1_0());
+
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getVariableDefinitionRule());
+ }
+ setWithLastConsumed(
+ current,
+ "variableName",
+ lv_variableName_1_0,
+ "org.eclipse.xtext.common.Terminals.ID");
+
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleVariableDefinition"
+
+
+ // $ANTLR start "entryRuleACIDavoidable"
+ // InternalFlaDsl.g:939:1: entryRuleACIDavoidable returns [EObject current=null] : iv_ruleACIDavoidable= ruleACIDavoidable EOF ;
+ public final EObject entryRuleACIDavoidable() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleACIDavoidable = null;
+
+
+ try {
+ // InternalFlaDsl.g:940:2: (iv_ruleACIDavoidable= ruleACIDavoidable EOF )
+ // InternalFlaDsl.g:941:2: iv_ruleACIDavoidable= ruleACIDavoidable EOF
+ {
+ newCompositeNode(grammarAccess.getACIDavoidableRule());
+ pushFollow(FOLLOW_1);
+ iv_ruleACIDavoidable=ruleACIDavoidable();
+
+ state._fsp--;
+
+ current =iv_ruleACIDavoidable;
+ match(input,EOF,FOLLOW_2);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleACIDavoidable"
+
+
+ // $ANTLR start "ruleACIDavoidable"
+ // InternalFlaDsl.g:948:1: ruleACIDavoidable returns [EObject current=null] : ( ( (lv_a_0_0= ruleAavoidable ) ) otherlv_1= '.' ( (lv_c_2_0= ruleCavoidable ) ) otherlv_3= '.' ( (lv_i_4_0= ruleIavoidable ) ) otherlv_5= '.' ( (lv_d_6_0= ruleDavoidable ) ) ) ;
+ public final EObject ruleACIDavoidable() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_1=null;
+ Token otherlv_3=null;
+ Token otherlv_5=null;
+ Enumerator lv_a_0_0 = null;
+
+ Enumerator lv_c_2_0 = null;
+
+ Enumerator lv_i_4_0 = null;
+
+ Enumerator lv_d_6_0 = null;
+
+
+ enterRule();
+
+ try {
+ // InternalFlaDsl.g:951:28: ( ( ( (lv_a_0_0= ruleAavoidable ) ) otherlv_1= '.' ( (lv_c_2_0= ruleCavoidable ) ) otherlv_3= '.' ( (lv_i_4_0= ruleIavoidable ) ) otherlv_5= '.' ( (lv_d_6_0= ruleDavoidable ) ) ) )
+ // InternalFlaDsl.g:952:1: ( ( (lv_a_0_0= ruleAavoidable ) ) otherlv_1= '.' ( (lv_c_2_0= ruleCavoidable ) ) otherlv_3= '.' ( (lv_i_4_0= ruleIavoidable ) ) otherlv_5= '.' ( (lv_d_6_0= ruleDavoidable ) ) )
+ {
+ // InternalFlaDsl.g:952:1: ( ( (lv_a_0_0= ruleAavoidable ) ) otherlv_1= '.' ( (lv_c_2_0= ruleCavoidable ) ) otherlv_3= '.' ( (lv_i_4_0= ruleIavoidable ) ) otherlv_5= '.' ( (lv_d_6_0= ruleDavoidable ) ) )
+ // InternalFlaDsl.g:952:2: ( (lv_a_0_0= ruleAavoidable ) ) otherlv_1= '.' ( (lv_c_2_0= ruleCavoidable ) ) otherlv_3= '.' ( (lv_i_4_0= ruleIavoidable ) ) otherlv_5= '.' ( (lv_d_6_0= ruleDavoidable ) )
+ {
+ // InternalFlaDsl.g:952:2: ( (lv_a_0_0= ruleAavoidable ) )
+ // InternalFlaDsl.g:953:1: (lv_a_0_0= ruleAavoidable )
+ {
+ // InternalFlaDsl.g:953:1: (lv_a_0_0= ruleAavoidable )
+ // InternalFlaDsl.g:954:3: lv_a_0_0= ruleAavoidable
+ {
+
+ newCompositeNode(grammarAccess.getACIDavoidableAccess().getAAavoidableEnumRuleCall_0_0());
+
+ pushFollow(FOLLOW_8);
+ lv_a_0_0=ruleAavoidable();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getACIDavoidableRule());
+ }
+ set(
+ current,
+ "a",
+ lv_a_0_0,
+ "org.polarsys.chess.xtext.FlaDsl.Aavoidable");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+ otherlv_1=(Token)match(input,16,FOLLOW_16);
+
+ newLeafNode(otherlv_1, grammarAccess.getACIDavoidableAccess().getFullStopKeyword_1());
+
+ // InternalFlaDsl.g:974:1: ( (lv_c_2_0= ruleCavoidable ) )
+ // InternalFlaDsl.g:975:1: (lv_c_2_0= ruleCavoidable )
+ {
+ // InternalFlaDsl.g:975:1: (lv_c_2_0= ruleCavoidable )
+ // InternalFlaDsl.g:976:3: lv_c_2_0= ruleCavoidable
+ {
+
+ newCompositeNode(grammarAccess.getACIDavoidableAccess().getCCavoidableEnumRuleCall_2_0());
+
+ pushFollow(FOLLOW_8);
+ lv_c_2_0=ruleCavoidable();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getACIDavoidableRule());
+ }
+ set(
+ current,
+ "c",
+ lv_c_2_0,
+ "org.polarsys.chess.xtext.FlaDsl.Cavoidable");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+ otherlv_3=(Token)match(input,16,FOLLOW_17);
+
+ newLeafNode(otherlv_3, grammarAccess.getACIDavoidableAccess().getFullStopKeyword_3());
+
+ // InternalFlaDsl.g:996:1: ( (lv_i_4_0= ruleIavoidable ) )
+ // InternalFlaDsl.g:997:1: (lv_i_4_0= ruleIavoidable )
+ {
+ // InternalFlaDsl.g:997:1: (lv_i_4_0= ruleIavoidable )
+ // InternalFlaDsl.g:998:3: lv_i_4_0= ruleIavoidable
+ {
+
+ newCompositeNode(grammarAccess.getACIDavoidableAccess().getIIavoidableEnumRuleCall_4_0());
+
+ pushFollow(FOLLOW_8);
+ lv_i_4_0=ruleIavoidable();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getACIDavoidableRule());
+ }
+ set(
+ current,
+ "i",
+ lv_i_4_0,
+ "org.polarsys.chess.xtext.FlaDsl.Iavoidable");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+ otherlv_5=(Token)match(input,16,FOLLOW_18);
+
+ newLeafNode(otherlv_5, grammarAccess.getACIDavoidableAccess().getFullStopKeyword_5());
+
+ // InternalFlaDsl.g:1018:1: ( (lv_d_6_0= ruleDavoidable ) )
+ // InternalFlaDsl.g:1019:1: (lv_d_6_0= ruleDavoidable )
+ {
+ // InternalFlaDsl.g:1019:1: (lv_d_6_0= ruleDavoidable )
+ // InternalFlaDsl.g:1020:3: lv_d_6_0= ruleDavoidable
+ {
+
+ newCompositeNode(grammarAccess.getACIDavoidableAccess().getDDavoidableEnumRuleCall_6_0());
+
+ pushFollow(FOLLOW_2);
+ lv_d_6_0=ruleDavoidable();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getACIDavoidableRule());
+ }
+ set(
+ current,
+ "d",
+ lv_d_6_0,
+ "org.polarsys.chess.xtext.FlaDsl.Davoidable");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleACIDavoidable"
+
+
+ // $ANTLR start "entryRuleACIDMitigation"
+ // InternalFlaDsl.g:1044:1: entryRuleACIDMitigation returns [EObject current=null] : iv_ruleACIDMitigation= ruleACIDMitigation EOF ;
+ public final EObject entryRuleACIDMitigation() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleACIDMitigation = null;
+
+
+ try {
+ // InternalFlaDsl.g:1045:2: (iv_ruleACIDMitigation= ruleACIDMitigation EOF )
+ // InternalFlaDsl.g:1046:2: iv_ruleACIDMitigation= ruleACIDMitigation EOF
+ {
+ newCompositeNode(grammarAccess.getACIDMitigationRule());
+ pushFollow(FOLLOW_1);
+ iv_ruleACIDMitigation=ruleACIDMitigation();
+
+ state._fsp--;
+
+ current =iv_ruleACIDMitigation;
+ match(input,EOF,FOLLOW_2);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleACIDMitigation"
+
+
+ // $ANTLR start "ruleACIDMitigation"
+ // InternalFlaDsl.g:1053:1: ruleACIDMitigation returns [EObject current=null] : ( ( (lv_a_0_0= ruleAmitigation ) ) otherlv_1= '.' ( (lv_c_2_0= ruleCmitigation ) ) otherlv_3= '.' ( (lv_i_4_0= ruleImitigation ) ) otherlv_5= '.' ( (lv_d_6_0= ruleDmitigation ) ) ) ;
+ public final EObject ruleACIDMitigation() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_1=null;
+ Token otherlv_3=null;
+ Token otherlv_5=null;
+ Enumerator lv_a_0_0 = null;
+
+ Enumerator lv_c_2_0 = null;
+
+ Enumerator lv_i_4_0 = null;
+
+ Enumerator lv_d_6_0 = null;
+
+
+ enterRule();
+
+ try {
+ // InternalFlaDsl.g:1056:28: ( ( ( (lv_a_0_0= ruleAmitigation ) ) otherlv_1= '.' ( (lv_c_2_0= ruleCmitigation ) ) otherlv_3= '.' ( (lv_i_4_0= ruleImitigation ) ) otherlv_5= '.' ( (lv_d_6_0= ruleDmitigation ) ) ) )
+ // InternalFlaDsl.g:1057:1: ( ( (lv_a_0_0= ruleAmitigation ) ) otherlv_1= '.' ( (lv_c_2_0= ruleCmitigation ) ) otherlv_3= '.' ( (lv_i_4_0= ruleImitigation ) ) otherlv_5= '.' ( (lv_d_6_0= ruleDmitigation ) ) )
+ {
+ // InternalFlaDsl.g:1057:1: ( ( (lv_a_0_0= ruleAmitigation ) ) otherlv_1= '.' ( (lv_c_2_0= ruleCmitigation ) ) otherlv_3= '.' ( (lv_i_4_0= ruleImitigation ) ) otherlv_5= '.' ( (lv_d_6_0= ruleDmitigation ) ) )
+ // InternalFlaDsl.g:1057:2: ( (lv_a_0_0= ruleAmitigation ) ) otherlv_1= '.' ( (lv_c_2_0= ruleCmitigation ) ) otherlv_3= '.' ( (lv_i_4_0= ruleImitigation ) ) otherlv_5= '.' ( (lv_d_6_0= ruleDmitigation ) )
+ {
+ // InternalFlaDsl.g:1057:2: ( (lv_a_0_0= ruleAmitigation ) )
+ // InternalFlaDsl.g:1058:1: (lv_a_0_0= ruleAmitigation )
+ {
+ // InternalFlaDsl.g:1058:1: (lv_a_0_0= ruleAmitigation )
+ // InternalFlaDsl.g:1059:3: lv_a_0_0= ruleAmitigation
+ {
+
+ newCompositeNode(grammarAccess.getACIDMitigationAccess().getAAmitigationEnumRuleCall_0_0());
+
+ pushFollow(FOLLOW_8);
+ lv_a_0_0=ruleAmitigation();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getACIDMitigationRule());
+ }
+ set(
+ current,
+ "a",
+ lv_a_0_0,
+ "org.polarsys.chess.xtext.FlaDsl.Amitigation");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+ otherlv_1=(Token)match(input,16,FOLLOW_19);
+
+ newLeafNode(otherlv_1, grammarAccess.getACIDMitigationAccess().getFullStopKeyword_1());
+
+ // InternalFlaDsl.g:1079:1: ( (lv_c_2_0= ruleCmitigation ) )
+ // InternalFlaDsl.g:1080:1: (lv_c_2_0= ruleCmitigation )
+ {
+ // InternalFlaDsl.g:1080:1: (lv_c_2_0= ruleCmitigation )
+ // InternalFlaDsl.g:1081:3: lv_c_2_0= ruleCmitigation
+ {
+
+ newCompositeNode(grammarAccess.getACIDMitigationAccess().getCCmitigationEnumRuleCall_2_0());
+
+ pushFollow(FOLLOW_8);
+ lv_c_2_0=ruleCmitigation();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getACIDMitigationRule());
+ }
+ set(
+ current,
+ "c",
+ lv_c_2_0,
+ "org.polarsys.chess.xtext.FlaDsl.Cmitigation");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+ otherlv_3=(Token)match(input,16,FOLLOW_20);
+
+ newLeafNode(otherlv_3, grammarAccess.getACIDMitigationAccess().getFullStopKeyword_3());
+
+ // InternalFlaDsl.g:1101:1: ( (lv_i_4_0= ruleImitigation ) )
+ // InternalFlaDsl.g:1102:1: (lv_i_4_0= ruleImitigation )
+ {
+ // InternalFlaDsl.g:1102:1: (lv_i_4_0= ruleImitigation )
+ // InternalFlaDsl.g:1103:3: lv_i_4_0= ruleImitigation
+ {
+
+ newCompositeNode(grammarAccess.getACIDMitigationAccess().getIImitigationEnumRuleCall_4_0());
+
+ pushFollow(FOLLOW_8);
+ lv_i_4_0=ruleImitigation();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getACIDMitigationRule());
+ }
+ set(
+ current,
+ "i",
+ lv_i_4_0,
+ "org.polarsys.chess.xtext.FlaDsl.Imitigation");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+ otherlv_5=(Token)match(input,16,FOLLOW_21);
+
+ newLeafNode(otherlv_5, grammarAccess.getACIDMitigationAccess().getFullStopKeyword_5());
+
+ // InternalFlaDsl.g:1123:1: ( (lv_d_6_0= ruleDmitigation ) )
+ // InternalFlaDsl.g:1124:1: (lv_d_6_0= ruleDmitigation )
+ {
+ // InternalFlaDsl.g:1124:1: (lv_d_6_0= ruleDmitigation )
+ // InternalFlaDsl.g:1125:3: lv_d_6_0= ruleDmitigation
+ {
+
+ newCompositeNode(grammarAccess.getACIDMitigationAccess().getDDmitigationEnumRuleCall_6_0());
+
+ pushFollow(FOLLOW_2);
+ lv_d_6_0=ruleDmitigation();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getACIDMitigationRule());
+ }
+ set(
+ current,
+ "d",
+ lv_d_6_0,
+ "org.polarsys.chess.xtext.FlaDsl.Dmitigation");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleACIDMitigation"
+
+
+ // $ANTLR start "ruleActualFailureType"
+ // InternalFlaDsl.g:1153:1: ruleActualFailureType returns [Enumerator current=null] : ( (enumLiteral_0= 'early' ) | (enumLiteral_1= 'late' ) | (enumLiteral_2= 'commission' ) | (enumLiteral_3= 'omission' ) | (enumLiteral_4= 'valueSubtle' ) | (enumLiteral_5= 'valueCoarse' ) ) ;
+ public final Enumerator ruleActualFailureType() 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 {
+ // InternalFlaDsl.g:1155:28: ( ( (enumLiteral_0= 'early' ) | (enumLiteral_1= 'late' ) | (enumLiteral_2= 'commission' ) | (enumLiteral_3= 'omission' ) | (enumLiteral_4= 'valueSubtle' ) | (enumLiteral_5= 'valueCoarse' ) ) )
+ // InternalFlaDsl.g:1156:1: ( (enumLiteral_0= 'early' ) | (enumLiteral_1= 'late' ) | (enumLiteral_2= 'commission' ) | (enumLiteral_3= 'omission' ) | (enumLiteral_4= 'valueSubtle' ) | (enumLiteral_5= 'valueCoarse' ) )
+ {
+ // InternalFlaDsl.g:1156:1: ( (enumLiteral_0= 'early' ) | (enumLiteral_1= 'late' ) | (enumLiteral_2= 'commission' ) | (enumLiteral_3= 'omission' ) | (enumLiteral_4= 'valueSubtle' ) | (enumLiteral_5= 'valueCoarse' ) )
+ int alt11=6;
+ switch ( input.LA(1) ) {
+ case 21:
+ {
+ alt11=1;
+ }
+ break;
+ case 22:
+ {
+ alt11=2;
+ }
+ break;
+ case 23:
+ {
+ alt11=3;
+ }
+ break;
+ case 24:
+ {
+ alt11=4;
+ }
+ break;
+ case 25:
+ {
+ alt11=5;
+ }
+ break;
+ case 26:
+ {
+ alt11=6;
+ }
+ break;
+ default:
+ NoViableAltException nvae =
+ new NoViableAltException("", 11, 0, input);
+
+ throw nvae;
+ }
+
+ switch (alt11) {
+ case 1 :
+ // InternalFlaDsl.g:1156:2: (enumLiteral_0= 'early' )
+ {
+ // InternalFlaDsl.g:1156:2: (enumLiteral_0= 'early' )
+ // InternalFlaDsl.g:1156:4: enumLiteral_0= 'early'
+ {
+ enumLiteral_0=(Token)match(input,21,FOLLOW_2);
+
+ current = grammarAccess.getActualFailureTypeAccess().getEARLYEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
+ newLeafNode(enumLiteral_0, grammarAccess.getActualFailureTypeAccess().getEARLYEnumLiteralDeclaration_0());
+
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // InternalFlaDsl.g:1162:6: (enumLiteral_1= 'late' )
+ {
+ // InternalFlaDsl.g:1162:6: (enumLiteral_1= 'late' )
+ // InternalFlaDsl.g:1162:8: enumLiteral_1= 'late'
+ {
+ enumLiteral_1=(Token)match(input,22,FOLLOW_2);
+
+ current = grammarAccess.getActualFailureTypeAccess().getLATEEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
+ newLeafNode(enumLiteral_1, grammarAccess.getActualFailureTypeAccess().getLATEEnumLiteralDeclaration_1());
+
+
+ }
+
+
+ }
+ break;
+ case 3 :
+ // InternalFlaDsl.g:1168:6: (enumLiteral_2= 'commission' )
+ {
+ // InternalFlaDsl.g:1168:6: (enumLiteral_2= 'commission' )
+ // InternalFlaDsl.g:1168:8: enumLiteral_2= 'commission'
+ {
+ enumLiteral_2=(Token)match(input,23,FOLLOW_2);
+
+ current = grammarAccess.getActualFailureTypeAccess().getCOMMISSIONEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
+ newLeafNode(enumLiteral_2, grammarAccess.getActualFailureTypeAccess().getCOMMISSIONEnumLiteralDeclaration_2());
+
+
+ }
+
+
+ }
+ break;
+ case 4 :
+ // InternalFlaDsl.g:1174:6: (enumLiteral_3= 'omission' )
+ {
+ // InternalFlaDsl.g:1174:6: (enumLiteral_3= 'omission' )
+ // InternalFlaDsl.g:1174:8: enumLiteral_3= 'omission'
+ {
+ enumLiteral_3=(Token)match(input,24,FOLLOW_2);
+
+ current = grammarAccess.getActualFailureTypeAccess().getOMISSIONEnumLiteralDeclaration_3().getEnumLiteral().getInstance();
+ newLeafNode(enumLiteral_3, grammarAccess.getActualFailureTypeAccess().getOMISSIONEnumLiteralDeclaration_3());
+
+
+ }
+
+
+ }
+ break;
+ case 5 :
+ // InternalFlaDsl.g:1180:6: (enumLiteral_4= 'valueSubtle' )
+ {
+ // InternalFlaDsl.g:1180:6: (enumLiteral_4= 'valueSubtle' )
+ // InternalFlaDsl.g:1180:8: enumLiteral_4= 'valueSubtle'
+ {
+ enumLiteral_4=(Token)match(input,25,FOLLOW_2);
+
+ current = grammarAccess.getActualFailureTypeAccess().getVALUE_SUBTLEEnumLiteralDeclaration_4().getEnumLiteral().getInstance();
+ newLeafNode(enumLiteral_4, grammarAccess.getActualFailureTypeAccess().getVALUE_SUBTLEEnumLiteralDeclaration_4());
+
+
+ }
+
+
+ }
+ break;
+ case 6 :
+ // InternalFlaDsl.g:1186:6: (enumLiteral_5= 'valueCoarse' )
+ {
+ // InternalFlaDsl.g:1186:6: (enumLiteral_5= 'valueCoarse' )
+ // InternalFlaDsl.g:1186:8: enumLiteral_5= 'valueCoarse'
+ {
+ enumLiteral_5=(Token)match(input,26,FOLLOW_2);
+
+ current = grammarAccess.getActualFailureTypeAccess().getVALUE_COARSEEnumLiteralDeclaration_5().getEnumLiteral().getInstance();
+ newLeafNode(enumLiteral_5, grammarAccess.getActualFailureTypeAccess().getVALUE_COARSEEnumLiteralDeclaration_5());
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleActualFailureType"
+
+
+ // $ANTLR start "ruleAavoidable"
+ // InternalFlaDsl.g:1200:1: ruleAavoidable returns [Enumerator current=null] : ( (enumLiteral_0= 'incompletion' ) | (enumLiteral_1= 'none' ) | (enumLiteral_2= 'unspecified' ) ) ;
+ public final Enumerator ruleAavoidable() throws RecognitionException {
+ Enumerator current = null;
+
+ Token enumLiteral_0=null;
+ Token enumLiteral_1=null;
+ Token enumLiteral_2=null;
+
+ enterRule();
+ try {
+ // InternalFlaDsl.g:1202:28: ( ( (enumLiteral_0= 'incompletion' ) | (enumLiteral_1= 'none' ) | (enumLiteral_2= 'unspecified' ) ) )
+ // InternalFlaDsl.g:1203:1: ( (enumLiteral_0= 'incompletion' ) | (enumLiteral_1= 'none' ) | (enumLiteral_2= 'unspecified' ) )
+ {
+ // InternalFlaDsl.g:1203:1: ( (enumLiteral_0= 'incompletion' ) | (enumLiteral_1= 'none' ) | (enumLiteral_2= 'unspecified' ) )
+ int alt12=3;
+ switch ( input.LA(1) ) {
+ case 27:
+ {
+ alt12=1;
+ }
+ break;
+ case 28:
+ {
+ alt12=2;
+ }
+ break;
+ case 29:
+ {
+ alt12=3;
+ }
+ break;
+ default:
+ NoViableAltException nvae =
+ new NoViableAltException("", 12, 0, input);
+
+ throw nvae;
+ }
+
+ switch (alt12) {
+ case 1 :
+ // InternalFlaDsl.g:1203:2: (enumLiteral_0= 'incompletion' )
+ {
+ // InternalFlaDsl.g:1203:2: (enumLiteral_0= 'incompletion' )
+ // InternalFlaDsl.g:1203:4: enumLiteral_0= 'incompletion'
+ {
+ enumLiteral_0=(Token)match(input,27,FOLLOW_2);
+
+ current = grammarAccess.getAavoidableAccess().getINCOMPLETIONEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
+ newLeafNode(enumLiteral_0, grammarAccess.getAavoidableAccess().getINCOMPLETIONEnumLiteralDeclaration_0());
+
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // InternalFlaDsl.g:1209:6: (enumLiteral_1= 'none' )
+ {
+ // InternalFlaDsl.g:1209:6: (enumLiteral_1= 'none' )
+ // InternalFlaDsl.g:1209:8: enumLiteral_1= 'none'
+ {
+ enumLiteral_1=(Token)match(input,28,FOLLOW_2);
+
+ current = grammarAccess.getAavoidableAccess().getNONEEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
+ newLeafNode(enumLiteral_1, grammarAccess.getAavoidableAccess().getNONEEnumLiteralDeclaration_1());
+
+
+ }
+
+
+ }
+ break;
+ case 3 :
+ // InternalFlaDsl.g:1215:6: (enumLiteral_2= 'unspecified' )
+ {
+ // InternalFlaDsl.g:1215:6: (enumLiteral_2= 'unspecified' )
+ // InternalFlaDsl.g:1215:8: enumLiteral_2= 'unspecified'
+ {
+ enumLiteral_2=(Token)match(input,29,FOLLOW_2);
+
+ current = grammarAccess.getAavoidableAccess().getUNSPECIFIEDEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
+ newLeafNode(enumLiteral_2, grammarAccess.getAavoidableAccess().getUNSPECIFIEDEnumLiteralDeclaration_2());
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleAavoidable"
+
+
+ // $ANTLR start "ruleCavoidable"
+ // InternalFlaDsl.g:1225:1: ruleCavoidable returns [Enumerator current=null] : ( (enumLiteral_0= 'inconsistency' ) | (enumLiteral_1= 'none' ) | (enumLiteral_2= 'unspecified' ) ) ;
+ public final Enumerator ruleCavoidable() throws RecognitionException {
+ Enumerator current = null;
+
+ Token enumLiteral_0=null;
+ Token enumLiteral_1=null;
+ Token enumLiteral_2=null;
+
+ enterRule();
+ try {
+ // InternalFlaDsl.g:1227:28: ( ( (enumLiteral_0= 'inconsistency' ) | (enumLiteral_1= 'none' ) | (enumLiteral_2= 'unspecified' ) ) )
+ // InternalFlaDsl.g:1228:1: ( (enumLiteral_0= 'inconsistency' ) | (enumLiteral_1= 'none' ) | (enumLiteral_2= 'unspecified' ) )
+ {
+ // InternalFlaDsl.g:1228:1: ( (enumLiteral_0= 'inconsistency' ) | (enumLiteral_1= 'none' ) | (enumLiteral_2= 'unspecified' ) )
+ int alt13=3;
+ switch ( input.LA(1) ) {
+ case 30:
+ {
+ alt13=1;
+ }
+ break;
+ case 28:
+ {
+ alt13=2;
+ }
+ break;
+ case 29:
+ {
+ alt13=3;
+ }
+ break;
+ default:
+ NoViableAltException nvae =
+ new NoViableAltException("", 13, 0, input);
+
+ throw nvae;
+ }
+
+ switch (alt13) {
+ case 1 :
+ // InternalFlaDsl.g:1228:2: (enumLiteral_0= 'inconsistency' )
+ {
+ // InternalFlaDsl.g:1228:2: (enumLiteral_0= 'inconsistency' )
+ // InternalFlaDsl.g:1228:4: enumLiteral_0= 'inconsistency'
+ {
+ enumLiteral_0=(Token)match(input,30,FOLLOW_2);
+
+ current = grammarAccess.getCavoidableAccess().getINCONSISTENCYEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
+ newLeafNode(enumLiteral_0, grammarAccess.getCavoidableAccess().getINCONSISTENCYEnumLiteralDeclaration_0());
+
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // InternalFlaDsl.g:1234:6: (enumLiteral_1= 'none' )
+ {
+ // InternalFlaDsl.g:1234:6: (enumLiteral_1= 'none' )
+ // InternalFlaDsl.g:1234:8: enumLiteral_1= 'none'
+ {
+ enumLiteral_1=(Token)match(input,28,FOLLOW_2);
+
+ current = grammarAccess.getCavoidableAccess().getNONEEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
+ newLeafNode(enumLiteral_1, grammarAccess.getCavoidableAccess().getNONEEnumLiteralDeclaration_1());
+
+
+ }
+
+
+ }
+ break;
+ case 3 :
+ // InternalFlaDsl.g:1240:6: (enumLiteral_2= 'unspecified' )
+ {
+ // InternalFlaDsl.g:1240:6: (enumLiteral_2= 'unspecified' )
+ // InternalFlaDsl.g:1240:8: enumLiteral_2= 'unspecified'
+ {
+ enumLiteral_2=(Token)match(input,29,FOLLOW_2);
+
+ current = grammarAccess.getCavoidableAccess().getUNSPECIFIEDEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
+ newLeafNode(enumLiteral_2, grammarAccess.getCavoidableAccess().getUNSPECIFIEDEnumLiteralDeclaration_2());
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleCavoidable"
+
+
+ // $ANTLR start "ruleIavoidable"
+ // InternalFlaDsl.g:1250:1: ruleIavoidable returns [Enumerator current=null] : ( (enumLiteral_0= 'interference' ) | (enumLiteral_1= 'none' ) | (enumLiteral_2= 'unspecified' ) ) ;
+ public final Enumerator ruleIavoidable() throws RecognitionException {
+ Enumerator current = null;
+
+ Token enumLiteral_0=null;
+ Token enumLiteral_1=null;
+ Token enumLiteral_2=null;
+
+ enterRule();
+ try {
+ // InternalFlaDsl.g:1252:28: ( ( (enumLiteral_0= 'interference' ) | (enumLiteral_1= 'none' ) | (enumLiteral_2= 'unspecified' ) ) )
+ // InternalFlaDsl.g:1253:1: ( (enumLiteral_0= 'interference' ) | (enumLiteral_1= 'none' ) | (enumLiteral_2= 'unspecified' ) )
+ {
+ // InternalFlaDsl.g:1253:1: ( (enumLiteral_0= 'interference' ) | (enumLiteral_1= 'none' ) | (enumLiteral_2= 'unspecified' ) )
+ int alt14=3;
+ switch ( input.LA(1) ) {
+ case 31:
+ {
+ alt14=1;
+ }
+ break;
+ case 28:
+ {
+ alt14=2;
+ }
+ break;
+ case 29:
+ {
+ alt14=3;
+ }
+ break;
+ default:
+ NoViableAltException nvae =
+ new NoViableAltException("", 14, 0, input);
+
+ throw nvae;
+ }
+
+ switch (alt14) {
+ case 1 :
+ // InternalFlaDsl.g:1253:2: (enumLiteral_0= 'interference' )
+ {
+ // InternalFlaDsl.g:1253:2: (enumLiteral_0= 'interference' )
+ // InternalFlaDsl.g:1253:4: enumLiteral_0= 'interference'
+ {
+ enumLiteral_0=(Token)match(input,31,FOLLOW_2);
+
+ current = grammarAccess.getIavoidableAccess().getINTERFERENCEEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
+ newLeafNode(enumLiteral_0, grammarAccess.getIavoidableAccess().getINTERFERENCEEnumLiteralDeclaration_0());
+
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // InternalFlaDsl.g:1259:6: (enumLiteral_1= 'none' )
+ {
+ // InternalFlaDsl.g:1259:6: (enumLiteral_1= 'none' )
+ // InternalFlaDsl.g:1259:8: enumLiteral_1= 'none'
+ {
+ enumLiteral_1=(Token)match(input,28,FOLLOW_2);
+
+ current = grammarAccess.getIavoidableAccess().getNONEEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
+ newLeafNode(enumLiteral_1, grammarAccess.getIavoidableAccess().getNONEEnumLiteralDeclaration_1());
+
+
+ }
+
+
+ }
+ break;
+ case 3 :
+ // InternalFlaDsl.g:1265:6: (enumLiteral_2= 'unspecified' )
+ {
+ // InternalFlaDsl.g:1265:6: (enumLiteral_2= 'unspecified' )
+ // InternalFlaDsl.g:1265:8: enumLiteral_2= 'unspecified'
+ {
+ enumLiteral_2=(Token)match(input,29,FOLLOW_2);
+
+ current = grammarAccess.getIavoidableAccess().getUNSPECIFIEDEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
+ newLeafNode(enumLiteral_2, grammarAccess.getIavoidableAccess().getUNSPECIFIEDEnumLiteralDeclaration_2());
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleIavoidable"
+
+
+ // $ANTLR start "ruleDavoidable"
+ // InternalFlaDsl.g:1275:1: ruleDavoidable returns [Enumerator current=null] : ( (enumLiteral_0= 'impermanence' ) | (enumLiteral_1= 'none' ) | (enumLiteral_2= 'unspecified' ) ) ;
+ public final Enumerator ruleDavoidable() throws RecognitionException {
+ Enumerator current = null;
+
+ Token enumLiteral_0=null;
+ Token enumLiteral_1=null;
+ Token enumLiteral_2=null;
+
+ enterRule();
+ try {
+ // InternalFlaDsl.g:1277:28: ( ( (enumLiteral_0= 'impermanence' ) | (enumLiteral_1= 'none' ) | (enumLiteral_2= 'unspecified' ) ) )
+ // InternalFlaDsl.g:1278:1: ( (enumLiteral_0= 'impermanence' ) | (enumLiteral_1= 'none' ) | (enumLiteral_2= 'unspecified' ) )
+ {
+ // InternalFlaDsl.g:1278:1: ( (enumLiteral_0= 'impermanence' ) | (enumLiteral_1= 'none' ) | (enumLiteral_2= 'unspecified' ) )
+ int alt15=3;
+ switch ( input.LA(1) ) {
+ case 32:
+ {
+ alt15=1;
+ }
+ break;
+ case 28:
+ {
+ alt15=2;
+ }
+ break;
+ case 29:
+ {
+ alt15=3;
+ }
+ break;
+ default:
+ NoViableAltException nvae =
+ new NoViableAltException("", 15, 0, input);
+
+ throw nvae;
+ }
+
+ switch (alt15) {
+ case 1 :
+ // InternalFlaDsl.g:1278:2: (enumLiteral_0= 'impermanence' )
+ {
+ // InternalFlaDsl.g:1278:2: (enumLiteral_0= 'impermanence' )
+ // InternalFlaDsl.g:1278:4: enumLiteral_0= 'impermanence'
+ {
+ enumLiteral_0=(Token)match(input,32,FOLLOW_2);
+
+ current = grammarAccess.getDavoidableAccess().getIMPERMANENCEEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
+ newLeafNode(enumLiteral_0, grammarAccess.getDavoidableAccess().getIMPERMANENCEEnumLiteralDeclaration_0());
+
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // InternalFlaDsl.g:1284:6: (enumLiteral_1= 'none' )
+ {
+ // InternalFlaDsl.g:1284:6: (enumLiteral_1= 'none' )
+ // InternalFlaDsl.g:1284:8: enumLiteral_1= 'none'
+ {
+ enumLiteral_1=(Token)match(input,28,FOLLOW_2);
+
+ current = grammarAccess.getDavoidableAccess().getNONEEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
+ newLeafNode(enumLiteral_1, grammarAccess.getDavoidableAccess().getNONEEnumLiteralDeclaration_1());
+
+
+ }
+
+
+ }
+ break;
+ case 3 :
+ // InternalFlaDsl.g:1290:6: (enumLiteral_2= 'unspecified' )
+ {
+ // InternalFlaDsl.g:1290:6: (enumLiteral_2= 'unspecified' )
+ // InternalFlaDsl.g:1290:8: enumLiteral_2= 'unspecified'
+ {
+ enumLiteral_2=(Token)match(input,29,FOLLOW_2);
+
+ current = grammarAccess.getDavoidableAccess().getUNSPECIFIEDEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
+ newLeafNode(enumLiteral_2, grammarAccess.getDavoidableAccess().getUNSPECIFIEDEnumLiteralDeclaration_2());
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleDavoidable"
+
+
+ // $ANTLR start "ruleAmitigation"
+ // InternalFlaDsl.g:1300:1: ruleAmitigation returns [Enumerator current=null] : ( (enumLiteral_0= 'all_or_nothing' ) | (enumLiteral_1= 'all_or_compensation' ) | (enumLiteral_2= 'none' ) | (enumLiteral_3= 'unspecified' ) ) ;
+ public final Enumerator ruleAmitigation() throws RecognitionException {
+ Enumerator current = null;
+
+ Token enumLiteral_0=null;
+ Token enumLiteral_1=null;
+ Token enumLiteral_2=null;
+ Token enumLiteral_3=null;
+
+ enterRule();
+ try {
+ // InternalFlaDsl.g:1302:28: ( ( (enumLiteral_0= 'all_or_nothing' ) | (enumLiteral_1= 'all_or_compensation' ) | (enumLiteral_2= 'none' ) | (enumLiteral_3= 'unspecified' ) ) )
+ // InternalFlaDsl.g:1303:1: ( (enumLiteral_0= 'all_or_nothing' ) | (enumLiteral_1= 'all_or_compensation' ) | (enumLiteral_2= 'none' ) | (enumLiteral_3= 'unspecified' ) )
+ {
+ // InternalFlaDsl.g:1303:1: ( (enumLiteral_0= 'all_or_nothing' ) | (enumLiteral_1= 'all_or_compensation' ) | (enumLiteral_2= 'none' ) | (enumLiteral_3= 'unspecified' ) )
+ int alt16=4;
+ switch ( input.LA(1) ) {
+ case 33:
+ {
+ alt16=1;
+ }
+ break;
+ case 34:
+ {
+ alt16=2;
+ }
+ break;
+ case 28:
+ {
+ alt16=3;
+ }
+ break;
+ case 29:
+ {
+ alt16=4;
+ }
+ break;
+ default:
+ NoViableAltException nvae =
+ new NoViableAltException("", 16, 0, input);
+
+ throw nvae;
+ }
+
+ switch (alt16) {
+ case 1 :
+ // InternalFlaDsl.g:1303:2: (enumLiteral_0= 'all_or_nothing' )
+ {
+ // InternalFlaDsl.g:1303:2: (enumLiteral_0= 'all_or_nothing' )
+ // InternalFlaDsl.g:1303:4: enumLiteral_0= 'all_or_nothing'
+ {
+ enumLiteral_0=(Token)match(input,33,FOLLOW_2);
+
+ current = grammarAccess.getAmitigationAccess().getALL_OR_NOTHINGEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
+ newLeafNode(enumLiteral_0, grammarAccess.getAmitigationAccess().getALL_OR_NOTHINGEnumLiteralDeclaration_0());
+
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // InternalFlaDsl.g:1309:6: (enumLiteral_1= 'all_or_compensation' )
+ {
+ // InternalFlaDsl.g:1309:6: (enumLiteral_1= 'all_or_compensation' )
+ // InternalFlaDsl.g:1309:8: enumLiteral_1= 'all_or_compensation'
+ {
+ enumLiteral_1=(Token)match(input,34,FOLLOW_2);
+
+ current = grammarAccess.getAmitigationAccess().getALL_OR_COMPENSATIONEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
+ newLeafNode(enumLiteral_1, grammarAccess.getAmitigationAccess().getALL_OR_COMPENSATIONEnumLiteralDeclaration_1());
+
+
+ }
+
+
+ }
+ break;
+ case 3 :
+ // InternalFlaDsl.g:1315:6: (enumLiteral_2= 'none' )
+ {
+ // InternalFlaDsl.g:1315:6: (enumLiteral_2= 'none' )
+ // InternalFlaDsl.g:1315:8: enumLiteral_2= 'none'
+ {
+ enumLiteral_2=(Token)match(input,28,FOLLOW_2);
+
+ current = grammarAccess.getAmitigationAccess().getNONEEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
+ newLeafNode(enumLiteral_2, grammarAccess.getAmitigationAccess().getNONEEnumLiteralDeclaration_2());
+
+
+ }
+
+
+ }
+ break;
+ case 4 :
+ // InternalFlaDsl.g:1321:6: (enumLiteral_3= 'unspecified' )
+ {
+ // InternalFlaDsl.g:1321:6: (enumLiteral_3= 'unspecified' )
+ // InternalFlaDsl.g:1321:8: enumLiteral_3= 'unspecified'
+ {
+ enumLiteral_3=(Token)match(input,29,FOLLOW_2);
+
+ current = grammarAccess.getAmitigationAccess().getUNSPECIFIEDEnumLiteralDeclaration_3().getEnumLiteral().getInstance();
+ newLeafNode(enumLiteral_3, grammarAccess.getAmitigationAccess().getUNSPECIFIEDEnumLiteralDeclaration_3());
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleAmitigation"
+
+
+ // $ANTLR start "ruleCmitigation"
+ // InternalFlaDsl.g:1331:1: ruleCmitigation returns [Enumerator current=null] : ( (enumLiteral_0= 'full_consistency' ) | (enumLiteral_1= 'range_violation_allowed' ) | (enumLiteral_2= 'none' ) | (enumLiteral_3= 'unspecified' ) ) ;
+ public final Enumerator ruleCmitigation() throws RecognitionException {
+ Enumerator current = null;
+
+ Token enumLiteral_0=null;
+ Token enumLiteral_1=null;
+ Token enumLiteral_2=null;
+ Token enumLiteral_3=null;
+
+ enterRule();
+ try {
+ // InternalFlaDsl.g:1333:28: ( ( (enumLiteral_0= 'full_consistency' ) | (enumLiteral_1= 'range_violation_allowed' ) | (enumLiteral_2= 'none' ) | (enumLiteral_3= 'unspecified' ) ) )
+ // InternalFlaDsl.g:1334:1: ( (enumLiteral_0= 'full_consistency' ) | (enumLiteral_1= 'range_violation_allowed' ) | (enumLiteral_2= 'none' ) | (enumLiteral_3= 'unspecified' ) )
+ {
+ // InternalFlaDsl.g:1334:1: ( (enumLiteral_0= 'full_consistency' ) | (enumLiteral_1= 'range_violation_allowed' ) | (enumLiteral_2= 'none' ) | (enumLiteral_3= 'unspecified' ) )
+ int alt17=4;
+ switch ( input.LA(1) ) {
+ case 35:
+ {
+ alt17=1;
+ }
+ break;
+ case 36:
+ {
+ alt17=2;
+ }
+ break;
+ case 28:
+ {
+ alt17=3;
+ }
+ break;
+ case 29:
+ {
+ alt17=4;
+ }
+ break;
+ default:
+ NoViableAltException nvae =
+ new NoViableAltException("", 17, 0, input);
+
+ throw nvae;
+ }
+
+ switch (alt17) {
+ case 1 :
+ // InternalFlaDsl.g:1334:2: (enumLiteral_0= 'full_consistency' )
+ {
+ // InternalFlaDsl.g:1334:2: (enumLiteral_0= 'full_consistency' )
+ // InternalFlaDsl.g:1334:4: enumLiteral_0= 'full_consistency'
+ {
+ enumLiteral_0=(Token)match(input,35,FOLLOW_2);
+
+ current = grammarAccess.getCmitigationAccess().getFULL_CONSISTENCYEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
+ newLeafNode(enumLiteral_0, grammarAccess.getCmitigationAccess().getFULL_CONSISTENCYEnumLiteralDeclaration_0());
+
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // InternalFlaDsl.g:1340:6: (enumLiteral_1= 'range_violation_allowed' )
+ {
+ // InternalFlaDsl.g:1340:6: (enumLiteral_1= 'range_violation_allowed' )
+ // InternalFlaDsl.g:1340:8: enumLiteral_1= 'range_violation_allowed'
+ {
+ enumLiteral_1=(Token)match(input,36,FOLLOW_2);
+
+ current = grammarAccess.getCmitigationAccess().getRANGE_VIOLATION_ALLOWEDEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
+ newLeafNode(enumLiteral_1, grammarAccess.getCmitigationAccess().getRANGE_VIOLATION_ALLOWEDEnumLiteralDeclaration_1());
+
+
+ }
+
+
+ }
+ break;
+ case 3 :
+ // InternalFlaDsl.g:1346:6: (enumLiteral_2= 'none' )
+ {
+ // InternalFlaDsl.g:1346:6: (enumLiteral_2= 'none' )
+ // InternalFlaDsl.g:1346:8: enumLiteral_2= 'none'
+ {
+ enumLiteral_2=(Token)match(input,28,FOLLOW_2);
+
+ current = grammarAccess.getCmitigationAccess().getNONEEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
+ newLeafNode(enumLiteral_2, grammarAccess.getCmitigationAccess().getNONEEnumLiteralDeclaration_2());
+
+
+ }
+
+
+ }
+ break;
+ case 4 :
+ // InternalFlaDsl.g:1352:6: (enumLiteral_3= 'unspecified' )
+ {
+ // InternalFlaDsl.g:1352:6: (enumLiteral_3= 'unspecified' )
+ // InternalFlaDsl.g:1352:8: enumLiteral_3= 'unspecified'
+ {
+ enumLiteral_3=(Token)match(input,29,FOLLOW_2);
+
+ current = grammarAccess.getCmitigationAccess().getUNSPECIFIEDEnumLiteralDeclaration_3().getEnumLiteral().getInstance();
+ newLeafNode(enumLiteral_3, grammarAccess.getCmitigationAccess().getUNSPECIFIEDEnumLiteralDeclaration_3());
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleCmitigation"
+
+
+ // $ANTLR start "ruleImitigation"
+ // InternalFlaDsl.g:1362:1: ruleImitigation returns [Enumerator current=null] : ( (enumLiteral_0= 'serializable' ) | (enumLiteral_1= 'portable_level' ) | (enumLiteral_2= 'none' ) | (enumLiteral_3= 'unspecified' ) ) ;
+ public final Enumerator ruleImitigation() throws RecognitionException {
+ Enumerator current = null;
+
+ Token enumLiteral_0=null;
+ Token enumLiteral_1=null;
+ Token enumLiteral_2=null;
+ Token enumLiteral_3=null;
+
+ enterRule();
+ try {
+ // InternalFlaDsl.g:1364:28: ( ( (enumLiteral_0= 'serializable' ) | (enumLiteral_1= 'portable_level' ) | (enumLiteral_2= 'none' ) | (enumLiteral_3= 'unspecified' ) ) )
+ // InternalFlaDsl.g:1365:1: ( (enumLiteral_0= 'serializable' ) | (enumLiteral_1= 'portable_level' ) | (enumLiteral_2= 'none' ) | (enumLiteral_3= 'unspecified' ) )
+ {
+ // InternalFlaDsl.g:1365:1: ( (enumLiteral_0= 'serializable' ) | (enumLiteral_1= 'portable_level' ) | (enumLiteral_2= 'none' ) | (enumLiteral_3= 'unspecified' ) )
+ int alt18=4;
+ switch ( input.LA(1) ) {
+ case 37:
+ {
+ alt18=1;
+ }
+ break;
+ case 38:
+ {
+ alt18=2;
+ }
+ break;
+ case 28:
+ {
+ alt18=3;
+ }
+ break;
+ case 29:
+ {
+ alt18=4;
+ }
+ break;
+ default:
+ NoViableAltException nvae =
+ new NoViableAltException("", 18, 0, input);
+
+ throw nvae;
+ }
+
+ switch (alt18) {
+ case 1 :
+ // InternalFlaDsl.g:1365:2: (enumLiteral_0= 'serializable' )
+ {
+ // InternalFlaDsl.g:1365:2: (enumLiteral_0= 'serializable' )
+ // InternalFlaDsl.g:1365:4: enumLiteral_0= 'serializable'
+ {
+ enumLiteral_0=(Token)match(input,37,FOLLOW_2);
+
+ current = grammarAccess.getImitigationAccess().getSERIALIZABLEEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
+ newLeafNode(enumLiteral_0, grammarAccess.getImitigationAccess().getSERIALIZABLEEnumLiteralDeclaration_0());
+
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // InternalFlaDsl.g:1371:6: (enumLiteral_1= 'portable_level' )
+ {
+ // InternalFlaDsl.g:1371:6: (enumLiteral_1= 'portable_level' )
+ // InternalFlaDsl.g:1371:8: enumLiteral_1= 'portable_level'
+ {
+ enumLiteral_1=(Token)match(input,38,FOLLOW_2);
+
+ current = grammarAccess.getImitigationAccess().getPORTABLE_LEVELEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
+ newLeafNode(enumLiteral_1, grammarAccess.getImitigationAccess().getPORTABLE_LEVELEnumLiteralDeclaration_1());
+
+
+ }
+
+
+ }
+ break;
+ case 3 :
+ // InternalFlaDsl.g:1377:6: (enumLiteral_2= 'none' )
+ {
+ // InternalFlaDsl.g:1377:6: (enumLiteral_2= 'none' )
+ // InternalFlaDsl.g:1377:8: enumLiteral_2= 'none'
+ {
+ enumLiteral_2=(Token)match(input,28,FOLLOW_2);
+
+ current = grammarAccess.getImitigationAccess().getNONEEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
+ newLeafNode(enumLiteral_2, grammarAccess.getImitigationAccess().getNONEEnumLiteralDeclaration_2());
+
+
+ }
+
+
+ }
+ break;
+ case 4 :
+ // InternalFlaDsl.g:1383:6: (enumLiteral_3= 'unspecified' )
+ {
+ // InternalFlaDsl.g:1383:6: (enumLiteral_3= 'unspecified' )
+ // InternalFlaDsl.g:1383:8: enumLiteral_3= 'unspecified'
+ {
+ enumLiteral_3=(Token)match(input,29,FOLLOW_2);
+
+ current = grammarAccess.getImitigationAccess().getUNSPECIFIEDEnumLiteralDeclaration_3().getEnumLiteral().getInstance();
+ newLeafNode(enumLiteral_3, grammarAccess.getImitigationAccess().getUNSPECIFIEDEnumLiteralDeclaration_3());
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleImitigation"
+
+
+ // $ANTLR start "ruleDmitigation"
+ // InternalFlaDsl.g:1393:1: ruleDmitigation returns [Enumerator current=null] : ( (enumLiteral_0= 'no_loss' ) | (enumLiteral_1= 'partial_loss_allowed' ) | (enumLiteral_2= 'none' ) | (enumLiteral_3= 'unspecified' ) ) ;
+ public final Enumerator ruleDmitigation() throws RecognitionException {
+ Enumerator current = null;
+
+ Token enumLiteral_0=null;
+ Token enumLiteral_1=null;
+ Token enumLiteral_2=null;
+ Token enumLiteral_3=null;
+
+ enterRule();
+ try {
+ // InternalFlaDsl.g:1395:28: ( ( (enumLiteral_0= 'no_loss' ) | (enumLiteral_1= 'partial_loss_allowed' ) | (enumLiteral_2= 'none' ) | (enumLiteral_3= 'unspecified' ) ) )
+ // InternalFlaDsl.g:1396:1: ( (enumLiteral_0= 'no_loss' ) | (enumLiteral_1= 'partial_loss_allowed' ) | (enumLiteral_2= 'none' ) | (enumLiteral_3= 'unspecified' ) )
+ {
+ // InternalFlaDsl.g:1396:1: ( (enumLiteral_0= 'no_loss' ) | (enumLiteral_1= 'partial_loss_allowed' ) | (enumLiteral_2= 'none' ) | (enumLiteral_3= 'unspecified' ) )
+ int alt19=4;
+ switch ( input.LA(1) ) {
+ case 39:
+ {
+ alt19=1;
+ }
+ break;
+ case 40:
+ {
+ alt19=2;
+ }
+ break;
+ case 28:
+ {
+ alt19=3;
+ }
+ break;
+ case 29:
+ {
+ alt19=4;
+ }
+ break;
+ default:
+ NoViableAltException nvae =
+ new NoViableAltException("", 19, 0, input);
+
+ throw nvae;
+ }
+
+ switch (alt19) {
+ case 1 :
+ // InternalFlaDsl.g:1396:2: (enumLiteral_0= 'no_loss' )
+ {
+ // InternalFlaDsl.g:1396:2: (enumLiteral_0= 'no_loss' )
+ // InternalFlaDsl.g:1396:4: enumLiteral_0= 'no_loss'
+ {
+ enumLiteral_0=(Token)match(input,39,FOLLOW_2);
+
+ current = grammarAccess.getDmitigationAccess().getNO_LOSSEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
+ newLeafNode(enumLiteral_0, grammarAccess.getDmitigationAccess().getNO_LOSSEnumLiteralDeclaration_0());
+
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // InternalFlaDsl.g:1402:6: (enumLiteral_1= 'partial_loss_allowed' )
+ {
+ // InternalFlaDsl.g:1402:6: (enumLiteral_1= 'partial_loss_allowed' )
+ // InternalFlaDsl.g:1402:8: enumLiteral_1= 'partial_loss_allowed'
+ {
+ enumLiteral_1=(Token)match(input,40,FOLLOW_2);
+
+ current = grammarAccess.getDmitigationAccess().getPARTIAL_LOSS_ALLOWEDEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
+ newLeafNode(enumLiteral_1, grammarAccess.getDmitigationAccess().getPARTIAL_LOSS_ALLOWEDEnumLiteralDeclaration_1());
+
+
+ }
+
+
+ }
+ break;
+ case 3 :
+ // InternalFlaDsl.g:1408:6: (enumLiteral_2= 'none' )
+ {
+ // InternalFlaDsl.g:1408:6: (enumLiteral_2= 'none' )
+ // InternalFlaDsl.g:1408:8: enumLiteral_2= 'none'
+ {
+ enumLiteral_2=(Token)match(input,28,FOLLOW_2);
+
+ current = grammarAccess.getDmitigationAccess().getNONEEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
+ newLeafNode(enumLiteral_2, grammarAccess.getDmitigationAccess().getNONEEnumLiteralDeclaration_2());
+
+
+ }
+
+
+ }
+ break;
+ case 4 :
+ // InternalFlaDsl.g:1414:6: (enumLiteral_3= 'unspecified' )
+ {
+ // InternalFlaDsl.g:1414:6: (enumLiteral_3= 'unspecified' )
+ // InternalFlaDsl.g:1414:8: enumLiteral_3= 'unspecified'
+ {
+ enumLiteral_3=(Token)match(input,29,FOLLOW_2);
+
+ current = grammarAccess.getDmitigationAccess().getUNSPECIFIEDEnumLiteralDeclaration_3().getEnumLiteral().getInstance();
+ newLeafNode(enumLiteral_3, grammarAccess.getDmitigationAccess().getUNSPECIFIEDEnumLiteralDeclaration_3());
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleDmitigation"
+
+ // Delegated rules
+
+
+
+
+ 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[]{0x0000000000000802L});
+ public static final BitSet FOLLOW_4 = new BitSet(new long[]{0x0000000000008010L});
+ public static final BitSet FOLLOW_5 = new BitSet(new long[]{0x0000000000001000L});
+ public static final BitSet FOLLOW_6 = new BitSet(new long[]{0x0000000000002000L});
+ public static final BitSet FOLLOW_7 = new BitSet(new long[]{0x0000000000004002L});
+ public static final BitSet FOLLOW_8 = new BitSet(new long[]{0x0000000000010000L});
+ public static final BitSet FOLLOW_9 = new BitSet(new long[]{0x0000000007FA0010L});
+ public static final BitSet FOLLOW_10 = new BitSet(new long[]{0x0000000007E00000L});
+ public static final BitSet FOLLOW_11 = new BitSet(new long[]{0x0000000000004000L});
+ public static final BitSet FOLLOW_12 = new BitSet(new long[]{0x0000000000044000L});
+ public static final BitSet FOLLOW_13 = new BitSet(new long[]{0x0000000000010002L});
+ public static final BitSet FOLLOW_14 = new BitSet(new long[]{0x0000000038000000L});
+ public static final BitSet FOLLOW_15 = new BitSet(new long[]{0x0000000630000000L});
+ public static final BitSet FOLLOW_16 = new BitSet(new long[]{0x0000000070000000L});
+ public static final BitSet FOLLOW_17 = new BitSet(new long[]{0x00000000B0000000L});
+ public static final BitSet FOLLOW_18 = new BitSet(new long[]{0x0000000130000000L});
+ public static final BitSet FOLLOW_19 = new BitSet(new long[]{0x0000001830000000L});
+ public static final BitSet FOLLOW_20 = new BitSet(new long[]{0x0000006030000000L});
+ public static final BitSet FOLLOW_21 = new BitSet(new long[]{0x0000018030000000L});
+
+}
\ No newline at end of file
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/serializer/FlaDslSemanticSequencer.java b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/serializer/FlaDslSemanticSequencer.java
new file mode 100644
index 0000000..c2f23c5
--- /dev/null
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/serializer/FlaDslSemanticSequencer.java
@@ -0,0 +1,364 @@
+/*
+ * generated by Xtext
+ */
+package org.polarsys.chess.xtext.serializer;
+
+import com.google.inject.Inject;
+import java.util.Set;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.xtext.Action;
+import org.eclipse.xtext.Parameter;
+import org.eclipse.xtext.ParserRule;
+import org.eclipse.xtext.serializer.ISerializationContext;
+import org.eclipse.xtext.serializer.acceptor.SequenceFeeder;
+import org.eclipse.xtext.serializer.sequencer.AbstractDelegatingSemanticSequencer;
+import org.eclipse.xtext.serializer.sequencer.ITransientValueService.ValueTransient;
+import org.polarsys.chess.xtext.flaDsl.ACIDMitigation;
+import org.polarsys.chess.xtext.flaDsl.ACIDavoidable;
+import org.polarsys.chess.xtext.flaDsl.Behaviour;
+import org.polarsys.chess.xtext.flaDsl.Expression;
+import org.polarsys.chess.xtext.flaDsl.FailureDefinition;
+import org.polarsys.chess.xtext.flaDsl.FlaDslPackage;
+import org.polarsys.chess.xtext.flaDsl.InFailureExpr;
+import org.polarsys.chess.xtext.flaDsl.InputExpression;
+import org.polarsys.chess.xtext.flaDsl.Lhs;
+import org.polarsys.chess.xtext.flaDsl.NoFailureDefinition;
+import org.polarsys.chess.xtext.flaDsl.OutFailureExpr;
+import org.polarsys.chess.xtext.flaDsl.OutputExpression;
+import org.polarsys.chess.xtext.flaDsl.Rhs;
+import org.polarsys.chess.xtext.flaDsl.VariableDefinition;
+import org.polarsys.chess.xtext.flaDsl.WildcardDefinition;
+import org.polarsys.chess.xtext.services.FlaDslGrammarAccess;
+
+@SuppressWarnings("all")
+public class FlaDslSemanticSequencer extends AbstractDelegatingSemanticSequencer {
+
+ @Inject
+ private FlaDslGrammarAccess grammarAccess;
+
+ @Override
+ public void sequence(ISerializationContext context, EObject semanticObject) {
+ EPackage epackage = semanticObject.eClass().getEPackage();
+ ParserRule rule = context.getParserRule();
+ Action action = context.getAssignedAction();
+ Set<Parameter> parameters = context.getEnabledBooleanParameters();
+ if (epackage == FlaDslPackage.eINSTANCE)
+ switch (semanticObject.eClass().getClassifierID()) {
+ case FlaDslPackage.ACID_MITIGATION:
+ sequence_ACIDMitigation(context, (ACIDMitigation) semanticObject);
+ return;
+ case FlaDslPackage.ACI_DAVOIDABLE:
+ sequence_ACIDavoidable(context, (ACIDavoidable) semanticObject);
+ return;
+ case FlaDslPackage.BEHAVIOUR:
+ sequence_Behaviour(context, (Behaviour) semanticObject);
+ return;
+ case FlaDslPackage.EXPRESSION:
+ sequence_Expression(context, (Expression) semanticObject);
+ return;
+ case FlaDslPackage.FAILURE_DEFINITION:
+ sequence_FailureDefinition(context, (FailureDefinition) semanticObject);
+ return;
+ case FlaDslPackage.IN_FAILURE_EXPR:
+ sequence_InFailureExpr(context, (InFailureExpr) semanticObject);
+ return;
+ case FlaDslPackage.INPUT_EXPRESSION:
+ sequence_InputExpression(context, (InputExpression) semanticObject);
+ return;
+ case FlaDslPackage.LHS:
+ sequence_Lhs(context, (Lhs) semanticObject);
+ return;
+ case FlaDslPackage.NO_FAILURE_DEFINITION:
+ if (rule == grammarAccess.getComplexNofailureDefinitionRule()) {
+ sequence_ComplexNofailureDefinition(context, (NoFailureDefinition) semanticObject);
+ return;
+ }
+ else if (rule == grammarAccess.getDefinitionsRule()) {
+ sequence_ComplexNofailureDefinition_NoFailureDefinition(context, (NoFailureDefinition) semanticObject);
+ return;
+ }
+ else if (rule == grammarAccess.getNoFailureDefinitionRule()) {
+ sequence_NoFailureDefinition(context, (NoFailureDefinition) semanticObject);
+ return;
+ }
+ else break;
+ case FlaDslPackage.OUT_FAILURE_EXPR:
+ sequence_OutFailureExpr(context, (OutFailureExpr) semanticObject);
+ return;
+ case FlaDslPackage.OUTPUT_EXPRESSION:
+ sequence_OutputExpression(context, (OutputExpression) semanticObject);
+ return;
+ case FlaDslPackage.RHS:
+ sequence_Rhs(context, (Rhs) semanticObject);
+ return;
+ case FlaDslPackage.VARIABLE_DEFINITION:
+ sequence_VariableDefinition(context, (VariableDefinition) semanticObject);
+ return;
+ case FlaDslPackage.WILDCARD_DEFINITION:
+ sequence_WildcardDefinition(context, (WildcardDefinition) semanticObject);
+ return;
+ }
+ if (errorAcceptor != null)
+ errorAcceptor.accept(diagnosticProvider.createInvalidContextOrTypeDiagnostic(semanticObject, context));
+ }
+
+ /**
+ * Contexts:
+ * ACIDMitigation returns ACIDMitigation
+ *
+ * Constraint:
+ * (a=Amitigation c=Cmitigation i=Imitigation d=Dmitigation)
+ */
+ protected void sequence_ACIDMitigation(ISerializationContext context, ACIDMitigation semanticObject) {
+ if (errorAcceptor != null) {
+ if (transientValues.isValueTransient(semanticObject, FlaDslPackage.Literals.ACID_MITIGATION__A) == ValueTransient.YES)
+ errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FlaDslPackage.Literals.ACID_MITIGATION__A));
+ if (transientValues.isValueTransient(semanticObject, FlaDslPackage.Literals.ACID_MITIGATION__C) == ValueTransient.YES)
+ errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FlaDslPackage.Literals.ACID_MITIGATION__C));
+ if (transientValues.isValueTransient(semanticObject, FlaDslPackage.Literals.ACID_MITIGATION__I) == ValueTransient.YES)
+ errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FlaDslPackage.Literals.ACID_MITIGATION__I));
+ if (transientValues.isValueTransient(semanticObject, FlaDslPackage.Literals.ACID_MITIGATION__D) == ValueTransient.YES)
+ errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FlaDslPackage.Literals.ACID_MITIGATION__D));
+ }
+ SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
+ feeder.accept(grammarAccess.getACIDMitigationAccess().getAAmitigationEnumRuleCall_0_0(), semanticObject.getA());
+ feeder.accept(grammarAccess.getACIDMitigationAccess().getCCmitigationEnumRuleCall_2_0(), semanticObject.getC());
+ feeder.accept(grammarAccess.getACIDMitigationAccess().getIImitigationEnumRuleCall_4_0(), semanticObject.getI());
+ feeder.accept(grammarAccess.getACIDMitigationAccess().getDDmitigationEnumRuleCall_6_0(), semanticObject.getD());
+ feeder.finish();
+ }
+
+
+ /**
+ * Contexts:
+ * ACIDavoidable returns ACIDavoidable
+ *
+ * Constraint:
+ * (a=Aavoidable c=Cavoidable i=Iavoidable d=Davoidable)
+ */
+ protected void sequence_ACIDavoidable(ISerializationContext context, ACIDavoidable semanticObject) {
+ if (errorAcceptor != null) {
+ if (transientValues.isValueTransient(semanticObject, FlaDslPackage.Literals.ACI_DAVOIDABLE__A) == ValueTransient.YES)
+ errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FlaDslPackage.Literals.ACI_DAVOIDABLE__A));
+ if (transientValues.isValueTransient(semanticObject, FlaDslPackage.Literals.ACI_DAVOIDABLE__C) == ValueTransient.YES)
+ errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FlaDslPackage.Literals.ACI_DAVOIDABLE__C));
+ if (transientValues.isValueTransient(semanticObject, FlaDslPackage.Literals.ACI_DAVOIDABLE__I) == ValueTransient.YES)
+ errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FlaDslPackage.Literals.ACI_DAVOIDABLE__I));
+ if (transientValues.isValueTransient(semanticObject, FlaDslPackage.Literals.ACI_DAVOIDABLE__D) == ValueTransient.YES)
+ errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FlaDslPackage.Literals.ACI_DAVOIDABLE__D));
+ }
+ SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
+ feeder.accept(grammarAccess.getACIDavoidableAccess().getAAavoidableEnumRuleCall_0_0(), semanticObject.getA());
+ feeder.accept(grammarAccess.getACIDavoidableAccess().getCCavoidableEnumRuleCall_2_0(), semanticObject.getC());
+ feeder.accept(grammarAccess.getACIDavoidableAccess().getIIavoidableEnumRuleCall_4_0(), semanticObject.getI());
+ feeder.accept(grammarAccess.getACIDavoidableAccess().getDDavoidableEnumRuleCall_6_0(), semanticObject.getD());
+ feeder.finish();
+ }
+
+
+ /**
+ * Contexts:
+ * Behaviour returns Behaviour
+ *
+ * Constraint:
+ * rules+=Expression+
+ */
+ protected void sequence_Behaviour(ISerializationContext context, Behaviour semanticObject) {
+ genericSequencer.createSequence(context, semanticObject);
+ }
+
+
+ /**
+ * Contexts:
+ * ComplexNofailureDefinition returns NoFailureDefinition
+ *
+ * Constraint:
+ * acidMitigation=ACIDMitigation
+ */
+ protected void sequence_ComplexNofailureDefinition(ISerializationContext context, NoFailureDefinition semanticObject) {
+ if (errorAcceptor != null) {
+ if (transientValues.isValueTransient(semanticObject, FlaDslPackage.Literals.NO_FAILURE_DEFINITION__ACID_MITIGATION) == ValueTransient.YES)
+ errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FlaDslPackage.Literals.NO_FAILURE_DEFINITION__ACID_MITIGATION));
+ }
+ SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
+ feeder.accept(grammarAccess.getComplexNofailureDefinitionAccess().getAcidMitigationACIDMitigationParserRuleCall_3_0(), semanticObject.getAcidMitigation());
+ feeder.finish();
+ }
+
+
+ /**
+ * Contexts:
+ * Definitions returns NoFailureDefinition
+ *
+ * Constraint:
+ * acidMitigation=ACIDMitigation?
+ */
+ protected void sequence_ComplexNofailureDefinition_NoFailureDefinition(ISerializationContext context, NoFailureDefinition semanticObject) {
+ genericSequencer.createSequence(context, semanticObject);
+ }
+
+
+ /**
+ * Contexts:
+ * Expression returns Expression
+ *
+ * Constraint:
+ * (lhs=Lhs rhs=Rhs)
+ */
+ protected void sequence_Expression(ISerializationContext context, Expression semanticObject) {
+ if (errorAcceptor != null) {
+ if (transientValues.isValueTransient(semanticObject, FlaDslPackage.Literals.EXPRESSION__LHS) == ValueTransient.YES)
+ errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FlaDslPackage.Literals.EXPRESSION__LHS));
+ if (transientValues.isValueTransient(semanticObject, FlaDslPackage.Literals.EXPRESSION__RHS) == ValueTransient.YES)
+ errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FlaDslPackage.Literals.EXPRESSION__RHS));
+ }
+ SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
+ feeder.accept(grammarAccess.getExpressionAccess().getLhsLhsParserRuleCall_1_0(), semanticObject.getLhs());
+ feeder.accept(grammarAccess.getExpressionAccess().getRhsRhsParserRuleCall_3_0(), semanticObject.getRhs());
+ feeder.finish();
+ }
+
+
+ /**
+ * Contexts:
+ * Definitions returns FailureDefinition
+ * FailureDefinition returns FailureDefinition
+ *
+ * Constraint:
+ * (type=ActualFailureType acidAvoidable=ACIDavoidable?)
+ */
+ protected void sequence_FailureDefinition(ISerializationContext context, FailureDefinition semanticObject) {
+ genericSequencer.createSequence(context, semanticObject);
+ }
+
+
+ /**
+ * Contexts:
+ * InFailureExpr returns InFailureExpr
+ *
+ * Constraint:
+ * (
+ * failures+=WildcardDefinition |
+ * failures+=NoFailureDefinition |
+ * failures+=FailureDefinition |
+ * (failures+=FailureDefinition failures+=FailureDefinition+) |
+ * failures+=VariableDefinition
+ * )
+ */
+ protected void sequence_InFailureExpr(ISerializationContext context, InFailureExpr semanticObject) {
+ genericSequencer.createSequence(context, semanticObject);
+ }
+
+
+ /**
+ * Contexts:
+ * InputExpression returns InputExpression
+ *
+ * Constraint:
+ * (ref=[Port|ID]? failureExpr=InFailureExpr)
+ */
+ protected void sequence_InputExpression(ISerializationContext context, InputExpression semanticObject) {
+ genericSequencer.createSequence(context, semanticObject);
+ }
+
+
+ /**
+ * Contexts:
+ * Lhs returns Lhs
+ *
+ * Constraint:
+ * (failures+=InputExpression failures+=InputExpression*)
+ */
+ protected void sequence_Lhs(ISerializationContext context, Lhs semanticObject) {
+ genericSequencer.createSequence(context, semanticObject);
+ }
+
+
+ /**
+ * Contexts:
+ * NoFailureDefinition returns NoFailureDefinition
+ *
+ * Constraint:
+ * {NoFailureDefinition}
+ */
+ protected void sequence_NoFailureDefinition(ISerializationContext context, NoFailureDefinition semanticObject) {
+ genericSequencer.createSequence(context, semanticObject);
+ }
+
+
+ /**
+ * Contexts:
+ * OutFailureExpr returns OutFailureExpr
+ *
+ * Constraint:
+ * (
+ * failures+=NoFailureDefinition |
+ * failures+=ComplexNofailureDefinition |
+ * failures+=FailureDefinition |
+ * (failures+=FailureDefinition failures+=FailureDefinition+) |
+ * failures+=VariableDefinition
+ * )
+ */
+ protected void sequence_OutFailureExpr(ISerializationContext context, OutFailureExpr semanticObject) {
+ genericSequencer.createSequence(context, semanticObject);
+ }
+
+
+ /**
+ * Contexts:
+ * OutputExpression returns OutputExpression
+ *
+ * Constraint:
+ * (ref=[Port|ID]? failureExpr=OutFailureExpr)
+ */
+ protected void sequence_OutputExpression(ISerializationContext context, OutputExpression semanticObject) {
+ genericSequencer.createSequence(context, semanticObject);
+ }
+
+
+ /**
+ * Contexts:
+ * Rhs returns Rhs
+ *
+ * Constraint:
+ * (failures+=OutputExpression failures+=OutputExpression*)
+ */
+ protected void sequence_Rhs(ISerializationContext context, Rhs semanticObject) {
+ genericSequencer.createSequence(context, semanticObject);
+ }
+
+
+ /**
+ * Contexts:
+ * Definitions returns VariableDefinition
+ * VariableDefinition returns VariableDefinition
+ *
+ * Constraint:
+ * variableName=ID
+ */
+ protected void sequence_VariableDefinition(ISerializationContext context, VariableDefinition semanticObject) {
+ if (errorAcceptor != null) {
+ if (transientValues.isValueTransient(semanticObject, FlaDslPackage.Literals.VARIABLE_DEFINITION__VARIABLE_NAME) == ValueTransient.YES)
+ errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FlaDslPackage.Literals.VARIABLE_DEFINITION__VARIABLE_NAME));
+ }
+ SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
+ feeder.accept(grammarAccess.getVariableDefinitionAccess().getVariableNameIDTerminalRuleCall_1_0(), semanticObject.getVariableName());
+ feeder.finish();
+ }
+
+
+ /**
+ * Contexts:
+ * Definitions returns WildcardDefinition
+ * WildcardDefinition returns WildcardDefinition
+ *
+ * Constraint:
+ * {WildcardDefinition}
+ */
+ protected void sequence_WildcardDefinition(ISerializationContext context, WildcardDefinition semanticObject) {
+ genericSequencer.createSequence(context, semanticObject);
+ }
+
+
+}
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/serializer/FlaDslSyntacticSequencer.java b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/serializer/FlaDslSyntacticSequencer.java
new file mode 100644
index 0000000..59f2069
--- /dev/null
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/serializer/FlaDslSyntacticSequencer.java
@@ -0,0 +1,43 @@
+/*
+ * generated by Xtext
+ */
+package org.polarsys.chess.xtext.serializer;
+
+import com.google.inject.Inject;
+import java.util.List;
+import org.eclipse.emf.ecore.EObject;
+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.ISyntacticSequencerPDAProvider.ISynTransition;
+import org.eclipse.xtext.serializer.sequencer.AbstractSyntacticSequencer;
+import org.polarsys.chess.xtext.services.FlaDslGrammarAccess;
+
+@SuppressWarnings("all")
+public class FlaDslSyntacticSequencer extends AbstractSyntacticSequencer {
+
+ protected FlaDslGrammarAccess grammarAccess;
+
+ @Inject
+ protected void init(IGrammarAccess access) {
+ grammarAccess = (FlaDslGrammarAccess) access;
+ }
+
+ @Override
+ protected String getUnassignedRuleCallToken(EObject semanticObject, RuleCall ruleCall, INode node) {
+ return "";
+ }
+
+
+ @Override
+ protected void emitUnassignedTokens(EObject semanticObject, ISynTransition transition, INode fromNode, INode toNode) {
+ if (transition.getAmbiguousSyntaxes().isEmpty()) return;
+ List<INode> transitionNodes = collectNodes(fromNode, toNode);
+ for (AbstractElementAlias syntax : transition.getAmbiguousSyntaxes()) {
+ List<INode> syntaxNodes = getNodesFor(transitionNodes, syntax);
+ acceptNodes(getLastNavigableState(), syntaxNodes);
+ }
+ }
+
+}
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/services/FlaDslGrammarAccess.java b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/services/FlaDslGrammarAccess.java
new file mode 100644
index 0000000..43f02c0
--- /dev/null
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/services/FlaDslGrammarAccess.java
@@ -0,0 +1,1655 @@
+/*
+ * generated by Xtext
+ */
+package org.polarsys.chess.xtext.services;
+
+import com.google.inject.Singleton;
+import com.google.inject.Inject;
+
+import java.util.List;
+
+import org.eclipse.xtext.*;
+import org.eclipse.xtext.service.GrammarProvider;
+import org.eclipse.xtext.service.AbstractElementFinder.*;
+
+import org.eclipse.xtext.common.services.TerminalsGrammarAccess;
+
+@Singleton
+public class FlaDslGrammarAccess extends AbstractGrammarElementFinder {
+
+
+ public class BehaviourElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.polarsys.chess.xtext.FlaDsl.Behaviour");
+ private final Assignment cRulesAssignment = (Assignment)rule.eContents().get(1);
+ private final RuleCall cRulesExpressionParserRuleCall_0 = (RuleCall)cRulesAssignment.eContents().get(0);
+
+ ///*
+ // * FLA Grammar
+ // */ Behaviour:
+ // rules+=Expression+;
+ @Override public ParserRule getRule() { return rule; }
+
+ //rules+=Expression+
+ public Assignment getRulesAssignment() { return cRulesAssignment; }
+
+ //Expression
+ public RuleCall getRulesExpressionParserRuleCall_0() { return cRulesExpressionParserRuleCall_0; }
+ }
+
+ public class ExpressionElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.polarsys.chess.xtext.FlaDsl.Expression");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Keyword cFLAKeyword_0 = (Keyword)cGroup.eContents().get(0);
+ private final Assignment cLhsAssignment_1 = (Assignment)cGroup.eContents().get(1);
+ private final RuleCall cLhsLhsParserRuleCall_1_0 = (RuleCall)cLhsAssignment_1.eContents().get(0);
+ private final Keyword cHyphenMinusGreaterThanSignKeyword_2 = (Keyword)cGroup.eContents().get(2);
+ private final Assignment cRhsAssignment_3 = (Assignment)cGroup.eContents().get(3);
+ private final RuleCall cRhsRhsParserRuleCall_3_0 = (RuleCall)cRhsAssignment_3.eContents().get(0);
+ private final Keyword cSemicolonKeyword_4 = (Keyword)cGroup.eContents().get(4);
+
+ //Expression:
+ // 'FLA:' lhs=Lhs '->' rhs=Rhs ';';
+ @Override public ParserRule getRule() { return rule; }
+
+ //'FLA:' lhs=Lhs '->' rhs=Rhs ';'
+ public Group getGroup() { return cGroup; }
+
+ //'FLA:'
+ public Keyword getFLAKeyword_0() { return cFLAKeyword_0; }
+
+ //lhs=Lhs
+ public Assignment getLhsAssignment_1() { return cLhsAssignment_1; }
+
+ //Lhs
+ public RuleCall getLhsLhsParserRuleCall_1_0() { return cLhsLhsParserRuleCall_1_0; }
+
+ //'->'
+ public Keyword getHyphenMinusGreaterThanSignKeyword_2() { return cHyphenMinusGreaterThanSignKeyword_2; }
+
+ //rhs=Rhs
+ public Assignment getRhsAssignment_3() { return cRhsAssignment_3; }
+
+ //Rhs
+ public RuleCall getRhsRhsParserRuleCall_3_0() { return cRhsRhsParserRuleCall_3_0; }
+
+ //';'
+ public Keyword getSemicolonKeyword_4() { return cSemicolonKeyword_4; }
+ }
+
+ public class LhsElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.polarsys.chess.xtext.FlaDsl.Lhs");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Assignment cFailuresAssignment_0 = (Assignment)cGroup.eContents().get(0);
+ private final RuleCall cFailuresInputExpressionParserRuleCall_0_0 = (RuleCall)cFailuresAssignment_0.eContents().get(0);
+ private final Group cGroup_1 = (Group)cGroup.eContents().get(1);
+ private final Keyword cCommaKeyword_1_0 = (Keyword)cGroup_1.eContents().get(0);
+ private final Assignment cFailuresAssignment_1_1 = (Assignment)cGroup_1.eContents().get(1);
+ private final RuleCall cFailuresInputExpressionParserRuleCall_1_1_0 = (RuleCall)cFailuresAssignment_1_1.eContents().get(0);
+
+ //Lhs:
+ // failures+=InputExpression (',' failures+=InputExpression)*;
+ @Override public ParserRule getRule() { return rule; }
+
+ //failures+=InputExpression (',' failures+=InputExpression)*
+ public Group getGroup() { return cGroup; }
+
+ //failures+=InputExpression
+ public Assignment getFailuresAssignment_0() { return cFailuresAssignment_0; }
+
+ //InputExpression
+ public RuleCall getFailuresInputExpressionParserRuleCall_0_0() { return cFailuresInputExpressionParserRuleCall_0_0; }
+
+ //(',' failures+=InputExpression)*
+ public Group getGroup_1() { return cGroup_1; }
+
+ //','
+ public Keyword getCommaKeyword_1_0() { return cCommaKeyword_1_0; }
+
+ //failures+=InputExpression
+ public Assignment getFailuresAssignment_1_1() { return cFailuresAssignment_1_1; }
+
+ //InputExpression
+ public RuleCall getFailuresInputExpressionParserRuleCall_1_1_0() { return cFailuresInputExpressionParserRuleCall_1_1_0; }
+ }
+
+ public class RhsElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.polarsys.chess.xtext.FlaDsl.Rhs");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Assignment cFailuresAssignment_0 = (Assignment)cGroup.eContents().get(0);
+ private final RuleCall cFailuresOutputExpressionParserRuleCall_0_0 = (RuleCall)cFailuresAssignment_0.eContents().get(0);
+ private final Group cGroup_1 = (Group)cGroup.eContents().get(1);
+ private final Keyword cCommaKeyword_1_0 = (Keyword)cGroup_1.eContents().get(0);
+ private final Assignment cFailuresAssignment_1_1 = (Assignment)cGroup_1.eContents().get(1);
+ private final RuleCall cFailuresOutputExpressionParserRuleCall_1_1_0 = (RuleCall)cFailuresAssignment_1_1.eContents().get(0);
+
+ //Rhs:
+ // failures+=OutputExpression (',' failures+=OutputExpression)*;
+ @Override public ParserRule getRule() { return rule; }
+
+ //failures+=OutputExpression (',' failures+=OutputExpression)*
+ public Group getGroup() { return cGroup; }
+
+ //failures+=OutputExpression
+ public Assignment getFailuresAssignment_0() { return cFailuresAssignment_0; }
+
+ //OutputExpression
+ public RuleCall getFailuresOutputExpressionParserRuleCall_0_0() { return cFailuresOutputExpressionParserRuleCall_0_0; }
+
+ //(',' failures+=OutputExpression)*
+ public Group getGroup_1() { return cGroup_1; }
+
+ //','
+ public Keyword getCommaKeyword_1_0() { return cCommaKeyword_1_0; }
+
+ //failures+=OutputExpression
+ public Assignment getFailuresAssignment_1_1() { return cFailuresAssignment_1_1; }
+
+ //OutputExpression
+ public RuleCall getFailuresOutputExpressionParserRuleCall_1_1_0() { return cFailuresOutputExpressionParserRuleCall_1_1_0; }
+ }
+
+ public class InputExpressionElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.polarsys.chess.xtext.FlaDsl.InputExpression");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Alternatives cAlternatives_0 = (Alternatives)cGroup.eContents().get(0);
+ private final Assignment cRefAssignment_0_0 = (Assignment)cAlternatives_0.eContents().get(0);
+ private final CrossReference cRefPortCrossReference_0_0_0 = (CrossReference)cRefAssignment_0_0.eContents().get(0);
+ private final RuleCall cRefPortIDTerminalRuleCall_0_0_0_1 = (RuleCall)cRefPortCrossReference_0_0_0.eContents().get(1);
+ private final Keyword cUndefinedKeyword_0_1 = (Keyword)cAlternatives_0.eContents().get(1);
+ private final Keyword cFullStopKeyword_1 = (Keyword)cGroup.eContents().get(1);
+ private final Assignment cFailureExprAssignment_2 = (Assignment)cGroup.eContents().get(2);
+ private final RuleCall cFailureExprInFailureExprParserRuleCall_2_0 = (RuleCall)cFailureExprAssignment_2.eContents().get(0);
+
+ //InputExpression:
+ // (ref=[uml::Port] | "undefined") '.' failureExpr=InFailureExpr;
+ @Override public ParserRule getRule() { return rule; }
+
+ //(ref=[uml::Port] | "undefined") '.' failureExpr=InFailureExpr
+ public Group getGroup() { return cGroup; }
+
+ //ref=[uml::Port] | "undefined"
+ public Alternatives getAlternatives_0() { return cAlternatives_0; }
+
+ //ref=[uml::Port]
+ public Assignment getRefAssignment_0_0() { return cRefAssignment_0_0; }
+
+ //[uml::Port]
+ public CrossReference getRefPortCrossReference_0_0_0() { return cRefPortCrossReference_0_0_0; }
+
+ //ID
+ public RuleCall getRefPortIDTerminalRuleCall_0_0_0_1() { return cRefPortIDTerminalRuleCall_0_0_0_1; }
+
+ //"undefined"
+ public Keyword getUndefinedKeyword_0_1() { return cUndefinedKeyword_0_1; }
+
+ //'.'
+ public Keyword getFullStopKeyword_1() { return cFullStopKeyword_1; }
+
+ //failureExpr=InFailureExpr
+ public Assignment getFailureExprAssignment_2() { return cFailureExprAssignment_2; }
+
+ //InFailureExpr
+ public RuleCall getFailureExprInFailureExprParserRuleCall_2_0() { return cFailureExprInFailureExprParserRuleCall_2_0; }
+ }
+
+ public class OutputExpressionElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.polarsys.chess.xtext.FlaDsl.OutputExpression");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Alternatives cAlternatives_0 = (Alternatives)cGroup.eContents().get(0);
+ private final Assignment cRefAssignment_0_0 = (Assignment)cAlternatives_0.eContents().get(0);
+ private final CrossReference cRefPortCrossReference_0_0_0 = (CrossReference)cRefAssignment_0_0.eContents().get(0);
+ private final RuleCall cRefPortIDTerminalRuleCall_0_0_0_1 = (RuleCall)cRefPortCrossReference_0_0_0.eContents().get(1);
+ private final Keyword cUndefinedKeyword_0_1 = (Keyword)cAlternatives_0.eContents().get(1);
+ private final Keyword cFullStopKeyword_1 = (Keyword)cGroup.eContents().get(1);
+ private final Assignment cFailureExprAssignment_2 = (Assignment)cGroup.eContents().get(2);
+ private final RuleCall cFailureExprOutFailureExprParserRuleCall_2_0 = (RuleCall)cFailureExprAssignment_2.eContents().get(0);
+
+ //OutputExpression:
+ // (ref=[uml::Port] | "undefined") '.' failureExpr=OutFailureExpr;
+ @Override public ParserRule getRule() { return rule; }
+
+ //(ref=[uml::Port] | "undefined") '.' failureExpr=OutFailureExpr
+ public Group getGroup() { return cGroup; }
+
+ //ref=[uml::Port] | "undefined"
+ public Alternatives getAlternatives_0() { return cAlternatives_0; }
+
+ //ref=[uml::Port]
+ public Assignment getRefAssignment_0_0() { return cRefAssignment_0_0; }
+
+ //[uml::Port]
+ public CrossReference getRefPortCrossReference_0_0_0() { return cRefPortCrossReference_0_0_0; }
+
+ //ID
+ public RuleCall getRefPortIDTerminalRuleCall_0_0_0_1() { return cRefPortIDTerminalRuleCall_0_0_0_1; }
+
+ //"undefined"
+ public Keyword getUndefinedKeyword_0_1() { return cUndefinedKeyword_0_1; }
+
+ //'.'
+ public Keyword getFullStopKeyword_1() { return cFullStopKeyword_1; }
+
+ //failureExpr=OutFailureExpr
+ public Assignment getFailureExprAssignment_2() { return cFailureExprAssignment_2; }
+
+ //OutFailureExpr
+ public RuleCall getFailureExprOutFailureExprParserRuleCall_2_0() { return cFailureExprOutFailureExprParserRuleCall_2_0; }
+ }
+
+ public class InFailureExprElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.polarsys.chess.xtext.FlaDsl.InFailureExpr");
+ private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
+ private final Assignment cFailuresAssignment_0 = (Assignment)cAlternatives.eContents().get(0);
+ private final RuleCall cFailuresWildcardDefinitionParserRuleCall_0_0 = (RuleCall)cFailuresAssignment_0.eContents().get(0);
+ private final Assignment cFailuresAssignment_1 = (Assignment)cAlternatives.eContents().get(1);
+ private final RuleCall cFailuresNoFailureDefinitionParserRuleCall_1_0 = (RuleCall)cFailuresAssignment_1.eContents().get(0);
+ private final Assignment cFailuresAssignment_2 = (Assignment)cAlternatives.eContents().get(2);
+ private final RuleCall cFailuresFailureDefinitionParserRuleCall_2_0 = (RuleCall)cFailuresAssignment_2.eContents().get(0);
+ private final Group cGroup_3 = (Group)cAlternatives.eContents().get(3);
+ private final Keyword cLeftCurlyBracketKeyword_3_0 = (Keyword)cGroup_3.eContents().get(0);
+ private final Assignment cFailuresAssignment_3_1 = (Assignment)cGroup_3.eContents().get(1);
+ private final RuleCall cFailuresFailureDefinitionParserRuleCall_3_1_0 = (RuleCall)cFailuresAssignment_3_1.eContents().get(0);
+ 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 cFailuresAssignment_3_2_1 = (Assignment)cGroup_3_2.eContents().get(1);
+ private final RuleCall cFailuresFailureDefinitionParserRuleCall_3_2_1_0 = (RuleCall)cFailuresAssignment_3_2_1.eContents().get(0);
+ private final Keyword cRightCurlyBracketKeyword_3_3 = (Keyword)cGroup_3.eContents().get(3);
+ private final Assignment cFailuresAssignment_4 = (Assignment)cAlternatives.eContents().get(4);
+ private final RuleCall cFailuresVariableDefinitionParserRuleCall_4_0 = (RuleCall)cFailuresAssignment_4.eContents().get(0);
+
+ //InFailureExpr:
+ // failures+=WildcardDefinition | failures+=NoFailureDefinition | failures+=FailureDefinition |
+ // '{' failures+=FailureDefinition (',' failures+=FailureDefinition)+ '}' | failures+=VariableDefinition;
+ @Override public ParserRule getRule() { return rule; }
+
+ //failures+=WildcardDefinition | failures+=NoFailureDefinition | failures+=FailureDefinition | '{'
+ //failures+=FailureDefinition (',' failures+=FailureDefinition)+ '}' | failures+=VariableDefinition
+ public Alternatives getAlternatives() { return cAlternatives; }
+
+ //failures+=WildcardDefinition
+ public Assignment getFailuresAssignment_0() { return cFailuresAssignment_0; }
+
+ //WildcardDefinition
+ public RuleCall getFailuresWildcardDefinitionParserRuleCall_0_0() { return cFailuresWildcardDefinitionParserRuleCall_0_0; }
+
+ //failures+=NoFailureDefinition
+ public Assignment getFailuresAssignment_1() { return cFailuresAssignment_1; }
+
+ //NoFailureDefinition
+ public RuleCall getFailuresNoFailureDefinitionParserRuleCall_1_0() { return cFailuresNoFailureDefinitionParserRuleCall_1_0; }
+
+ //failures+=FailureDefinition
+ public Assignment getFailuresAssignment_2() { return cFailuresAssignment_2; }
+
+ //FailureDefinition
+ public RuleCall getFailuresFailureDefinitionParserRuleCall_2_0() { return cFailuresFailureDefinitionParserRuleCall_2_0; }
+
+ //'{' failures+=FailureDefinition (',' failures+=FailureDefinition)+ '}'
+ public Group getGroup_3() { return cGroup_3; }
+
+ //'{'
+ public Keyword getLeftCurlyBracketKeyword_3_0() { return cLeftCurlyBracketKeyword_3_0; }
+
+ //failures+=FailureDefinition
+ public Assignment getFailuresAssignment_3_1() { return cFailuresAssignment_3_1; }
+
+ //FailureDefinition
+ public RuleCall getFailuresFailureDefinitionParserRuleCall_3_1_0() { return cFailuresFailureDefinitionParserRuleCall_3_1_0; }
+
+ //(',' failures+=FailureDefinition)+
+ public Group getGroup_3_2() { return cGroup_3_2; }
+
+ //','
+ public Keyword getCommaKeyword_3_2_0() { return cCommaKeyword_3_2_0; }
+
+ //failures+=FailureDefinition
+ public Assignment getFailuresAssignment_3_2_1() { return cFailuresAssignment_3_2_1; }
+
+ //FailureDefinition
+ public RuleCall getFailuresFailureDefinitionParserRuleCall_3_2_1_0() { return cFailuresFailureDefinitionParserRuleCall_3_2_1_0; }
+
+ //'}'
+ public Keyword getRightCurlyBracketKeyword_3_3() { return cRightCurlyBracketKeyword_3_3; }
+
+ //failures+=VariableDefinition
+ public Assignment getFailuresAssignment_4() { return cFailuresAssignment_4; }
+
+ //VariableDefinition
+ public RuleCall getFailuresVariableDefinitionParserRuleCall_4_0() { return cFailuresVariableDefinitionParserRuleCall_4_0; }
+ }
+
+ public class OutFailureExprElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.polarsys.chess.xtext.FlaDsl.OutFailureExpr");
+ private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
+ private final Assignment cFailuresAssignment_0 = (Assignment)cAlternatives.eContents().get(0);
+ private final RuleCall cFailuresNoFailureDefinitionParserRuleCall_0_0 = (RuleCall)cFailuresAssignment_0.eContents().get(0);
+ private final Assignment cFailuresAssignment_1 = (Assignment)cAlternatives.eContents().get(1);
+ private final RuleCall cFailuresComplexNofailureDefinitionParserRuleCall_1_0 = (RuleCall)cFailuresAssignment_1.eContents().get(0);
+ private final Assignment cFailuresAssignment_2 = (Assignment)cAlternatives.eContents().get(2);
+ private final RuleCall cFailuresFailureDefinitionParserRuleCall_2_0 = (RuleCall)cFailuresAssignment_2.eContents().get(0);
+ private final Group cGroup_3 = (Group)cAlternatives.eContents().get(3);
+ private final Keyword cLeftCurlyBracketKeyword_3_0 = (Keyword)cGroup_3.eContents().get(0);
+ private final Assignment cFailuresAssignment_3_1 = (Assignment)cGroup_3.eContents().get(1);
+ private final RuleCall cFailuresFailureDefinitionParserRuleCall_3_1_0 = (RuleCall)cFailuresAssignment_3_1.eContents().get(0);
+ 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 cFailuresAssignment_3_2_1 = (Assignment)cGroup_3_2.eContents().get(1);
+ private final RuleCall cFailuresFailureDefinitionParserRuleCall_3_2_1_0 = (RuleCall)cFailuresAssignment_3_2_1.eContents().get(0);
+ private final Keyword cRightCurlyBracketKeyword_3_3 = (Keyword)cGroup_3.eContents().get(3);
+ private final Assignment cFailuresAssignment_4 = (Assignment)cAlternatives.eContents().get(4);
+ private final RuleCall cFailuresVariableDefinitionParserRuleCall_4_0 = (RuleCall)cFailuresAssignment_4.eContents().get(0);
+
+ //OutFailureExpr:
+ // failures+=NoFailureDefinition | failures+=ComplexNofailureDefinition | failures+=FailureDefinition |
+ // '{' failures+=FailureDefinition (',' failures+=FailureDefinition)+ '}' | failures+=VariableDefinition;
+ @Override public ParserRule getRule() { return rule; }
+
+ //failures+=NoFailureDefinition | failures+=ComplexNofailureDefinition | failures+=FailureDefinition | '{'
+ //failures+=FailureDefinition (',' failures+=FailureDefinition)+ '}' | failures+=VariableDefinition
+ public Alternatives getAlternatives() { return cAlternatives; }
+
+ //failures+=NoFailureDefinition
+ public Assignment getFailuresAssignment_0() { return cFailuresAssignment_0; }
+
+ //NoFailureDefinition
+ public RuleCall getFailuresNoFailureDefinitionParserRuleCall_0_0() { return cFailuresNoFailureDefinitionParserRuleCall_0_0; }
+
+ //failures+=ComplexNofailureDefinition
+ public Assignment getFailuresAssignment_1() { return cFailuresAssignment_1; }
+
+ //ComplexNofailureDefinition
+ public RuleCall getFailuresComplexNofailureDefinitionParserRuleCall_1_0() { return cFailuresComplexNofailureDefinitionParserRuleCall_1_0; }
+
+ //failures+=FailureDefinition
+ public Assignment getFailuresAssignment_2() { return cFailuresAssignment_2; }
+
+ //FailureDefinition
+ public RuleCall getFailuresFailureDefinitionParserRuleCall_2_0() { return cFailuresFailureDefinitionParserRuleCall_2_0; }
+
+ //'{' failures+=FailureDefinition (',' failures+=FailureDefinition)+ '}'
+ public Group getGroup_3() { return cGroup_3; }
+
+ //'{'
+ public Keyword getLeftCurlyBracketKeyword_3_0() { return cLeftCurlyBracketKeyword_3_0; }
+
+ //failures+=FailureDefinition
+ public Assignment getFailuresAssignment_3_1() { return cFailuresAssignment_3_1; }
+
+ //FailureDefinition
+ public RuleCall getFailuresFailureDefinitionParserRuleCall_3_1_0() { return cFailuresFailureDefinitionParserRuleCall_3_1_0; }
+
+ //(',' failures+=FailureDefinition)+
+ public Group getGroup_3_2() { return cGroup_3_2; }
+
+ //','
+ public Keyword getCommaKeyword_3_2_0() { return cCommaKeyword_3_2_0; }
+
+ //failures+=FailureDefinition
+ public Assignment getFailuresAssignment_3_2_1() { return cFailuresAssignment_3_2_1; }
+
+ //FailureDefinition
+ public RuleCall getFailuresFailureDefinitionParserRuleCall_3_2_1_0() { return cFailuresFailureDefinitionParserRuleCall_3_2_1_0; }
+
+ //'}'
+ public Keyword getRightCurlyBracketKeyword_3_3() { return cRightCurlyBracketKeyword_3_3; }
+
+ //failures+=VariableDefinition
+ public Assignment getFailuresAssignment_4() { return cFailuresAssignment_4; }
+
+ //VariableDefinition
+ public RuleCall getFailuresVariableDefinitionParserRuleCall_4_0() { return cFailuresVariableDefinitionParserRuleCall_4_0; }
+ }
+
+ public class DefinitionsElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.polarsys.chess.xtext.FlaDsl.Definitions");
+ private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
+ private final RuleCall cFailureDefinitionParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
+ private final RuleCall cNoFailureDefinitionParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
+ private final RuleCall cComplexNofailureDefinitionParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2);
+ private final RuleCall cWildcardDefinitionParserRuleCall_3 = (RuleCall)cAlternatives.eContents().get(3);
+ private final RuleCall cVariableDefinitionParserRuleCall_4 = (RuleCall)cAlternatives.eContents().get(4);
+
+ //Definitions:
+ // FailureDefinition | NoFailureDefinition | ComplexNofailureDefinition | WildcardDefinition | VariableDefinition;
+ @Override public ParserRule getRule() { return rule; }
+
+ //FailureDefinition | NoFailureDefinition | ComplexNofailureDefinition | WildcardDefinition | VariableDefinition
+ public Alternatives getAlternatives() { return cAlternatives; }
+
+ //FailureDefinition
+ public RuleCall getFailureDefinitionParserRuleCall_0() { return cFailureDefinitionParserRuleCall_0; }
+
+ //NoFailureDefinition
+ public RuleCall getNoFailureDefinitionParserRuleCall_1() { return cNoFailureDefinitionParserRuleCall_1; }
+
+ //ComplexNofailureDefinition
+ public RuleCall getComplexNofailureDefinitionParserRuleCall_2() { return cComplexNofailureDefinitionParserRuleCall_2; }
+
+ //WildcardDefinition
+ public RuleCall getWildcardDefinitionParserRuleCall_3() { return cWildcardDefinitionParserRuleCall_3; }
+
+ //VariableDefinition
+ public RuleCall getVariableDefinitionParserRuleCall_4() { return cVariableDefinitionParserRuleCall_4; }
+ }
+
+ public class FailureDefinitionElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.polarsys.chess.xtext.FlaDsl.FailureDefinition");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Action cFailureDefinitionAction_0 = (Action)cGroup.eContents().get(0);
+ private final Assignment cTypeAssignment_1 = (Assignment)cGroup.eContents().get(1);
+ private final RuleCall cTypeActualFailureTypeEnumRuleCall_1_0 = (RuleCall)cTypeAssignment_1.eContents().get(0);
+ private final Group cGroup_2 = (Group)cGroup.eContents().get(2);
+ private final Keyword cFullStopKeyword_2_0 = (Keyword)cGroup_2.eContents().get(0);
+ private final Assignment cAcidAvoidableAssignment_2_1 = (Assignment)cGroup_2.eContents().get(1);
+ private final RuleCall cAcidAvoidableACIDavoidableParserRuleCall_2_1_0 = (RuleCall)cAcidAvoidableAssignment_2_1.eContents().get(0);
+
+ //FailureDefinition:
+ // {FailureDefinition} type=ActualFailureType ('.' acidAvoidable=ACIDavoidable)?;
+ @Override public ParserRule getRule() { return rule; }
+
+ //{FailureDefinition} type=ActualFailureType ('.' acidAvoidable=ACIDavoidable)?
+ public Group getGroup() { return cGroup; }
+
+ //{FailureDefinition}
+ public Action getFailureDefinitionAction_0() { return cFailureDefinitionAction_0; }
+
+ //type=ActualFailureType
+ public Assignment getTypeAssignment_1() { return cTypeAssignment_1; }
+
+ //ActualFailureType
+ public RuleCall getTypeActualFailureTypeEnumRuleCall_1_0() { return cTypeActualFailureTypeEnumRuleCall_1_0; }
+
+ //('.' acidAvoidable=ACIDavoidable)?
+ public Group getGroup_2() { return cGroup_2; }
+
+ //'.'
+ public Keyword getFullStopKeyword_2_0() { return cFullStopKeyword_2_0; }
+
+ //acidAvoidable=ACIDavoidable
+ public Assignment getAcidAvoidableAssignment_2_1() { return cAcidAvoidableAssignment_2_1; }
+
+ //ACIDavoidable
+ public RuleCall getAcidAvoidableACIDavoidableParserRuleCall_2_1_0() { return cAcidAvoidableACIDavoidableParserRuleCall_2_1_0; }
+ }
+
+ public class NoFailureDefinitionElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.polarsys.chess.xtext.FlaDsl.NoFailureDefinition");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Action cNoFailureDefinitionAction_0 = (Action)cGroup.eContents().get(0);
+ private final Keyword cNoFailureKeyword_1 = (Keyword)cGroup.eContents().get(1);
+
+ //NoFailureDefinition:
+ // {NoFailureDefinition} 'noFailure';
+ @Override public ParserRule getRule() { return rule; }
+
+ //{NoFailureDefinition} 'noFailure'
+ public Group getGroup() { return cGroup; }
+
+ //{NoFailureDefinition}
+ public Action getNoFailureDefinitionAction_0() { return cNoFailureDefinitionAction_0; }
+
+ //'noFailure'
+ public Keyword getNoFailureKeyword_1() { return cNoFailureKeyword_1; }
+ }
+
+ public class ComplexNofailureDefinitionElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.polarsys.chess.xtext.FlaDsl.ComplexNofailureDefinition");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Action cNoFailureDefinitionAction_0 = (Action)cGroup.eContents().get(0);
+ private final Keyword cNoFailureKeyword_1 = (Keyword)cGroup.eContents().get(1);
+ private final Keyword cFullStopKeyword_2 = (Keyword)cGroup.eContents().get(2);
+ private final Assignment cAcidMitigationAssignment_3 = (Assignment)cGroup.eContents().get(3);
+ private final RuleCall cAcidMitigationACIDMitigationParserRuleCall_3_0 = (RuleCall)cAcidMitigationAssignment_3.eContents().get(0);
+
+ //ComplexNofailureDefinition:
+ // {NoFailureDefinition} 'noFailure' '.' acidMitigation=ACIDMitigation;
+ @Override public ParserRule getRule() { return rule; }
+
+ //{NoFailureDefinition} 'noFailure' '.' acidMitigation=ACIDMitigation
+ public Group getGroup() { return cGroup; }
+
+ //{NoFailureDefinition}
+ public Action getNoFailureDefinitionAction_0() { return cNoFailureDefinitionAction_0; }
+
+ //'noFailure'
+ public Keyword getNoFailureKeyword_1() { return cNoFailureKeyword_1; }
+
+ //'.'
+ public Keyword getFullStopKeyword_2() { return cFullStopKeyword_2; }
+
+ //acidMitigation=ACIDMitigation
+ public Assignment getAcidMitigationAssignment_3() { return cAcidMitigationAssignment_3; }
+
+ //ACIDMitigation
+ public RuleCall getAcidMitigationACIDMitigationParserRuleCall_3_0() { return cAcidMitigationACIDMitigationParserRuleCall_3_0; }
+ }
+
+ public class WildcardDefinitionElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.polarsys.chess.xtext.FlaDsl.WildcardDefinition");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Action cWildcardDefinitionAction_0 = (Action)cGroup.eContents().get(0);
+ private final Keyword cWildcardKeyword_1 = (Keyword)cGroup.eContents().get(1);
+
+ //WildcardDefinition:
+ // {WildcardDefinition} 'wildcard';
+ @Override public ParserRule getRule() { return rule; }
+
+ //{WildcardDefinition} 'wildcard'
+ public Group getGroup() { return cGroup; }
+
+ //{WildcardDefinition}
+ public Action getWildcardDefinitionAction_0() { return cWildcardDefinitionAction_0; }
+
+ //'wildcard'
+ public Keyword getWildcardKeyword_1() { return cWildcardKeyword_1; }
+ }
+
+ public class VariableDefinitionElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.polarsys.chess.xtext.FlaDsl.VariableDefinition");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Action cVariableDefinitionAction_0 = (Action)cGroup.eContents().get(0);
+ private final Assignment cVariableNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
+ private final RuleCall cVariableNameIDTerminalRuleCall_1_0 = (RuleCall)cVariableNameAssignment_1.eContents().get(0);
+
+ //VariableDefinition:
+ // {VariableDefinition} variableName=ID;
+ @Override public ParserRule getRule() { return rule; }
+
+ //{VariableDefinition} variableName=ID
+ public Group getGroup() { return cGroup; }
+
+ //{VariableDefinition}
+ public Action getVariableDefinitionAction_0() { return cVariableDefinitionAction_0; }
+
+ //variableName=ID
+ public Assignment getVariableNameAssignment_1() { return cVariableNameAssignment_1; }
+
+ //ID
+ public RuleCall getVariableNameIDTerminalRuleCall_1_0() { return cVariableNameIDTerminalRuleCall_1_0; }
+ }
+
+ public class ACIDavoidableElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.polarsys.chess.xtext.FlaDsl.ACIDavoidable");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Assignment cAAssignment_0 = (Assignment)cGroup.eContents().get(0);
+ private final RuleCall cAAavoidableEnumRuleCall_0_0 = (RuleCall)cAAssignment_0.eContents().get(0);
+ private final Keyword cFullStopKeyword_1 = (Keyword)cGroup.eContents().get(1);
+ private final Assignment cCAssignment_2 = (Assignment)cGroup.eContents().get(2);
+ private final RuleCall cCCavoidableEnumRuleCall_2_0 = (RuleCall)cCAssignment_2.eContents().get(0);
+ private final Keyword cFullStopKeyword_3 = (Keyword)cGroup.eContents().get(3);
+ private final Assignment cIAssignment_4 = (Assignment)cGroup.eContents().get(4);
+ private final RuleCall cIIavoidableEnumRuleCall_4_0 = (RuleCall)cIAssignment_4.eContents().get(0);
+ private final Keyword cFullStopKeyword_5 = (Keyword)cGroup.eContents().get(5);
+ private final Assignment cDAssignment_6 = (Assignment)cGroup.eContents().get(6);
+ private final RuleCall cDDavoidableEnumRuleCall_6_0 = (RuleCall)cDAssignment_6.eContents().get(0);
+
+ //ACIDavoidable:
+ // a=Aavoidable '.' c=Cavoidable '.' i=Iavoidable '.' d=Davoidable;
+ @Override public ParserRule getRule() { return rule; }
+
+ //a=Aavoidable '.' c=Cavoidable '.' i=Iavoidable '.' d=Davoidable
+ public Group getGroup() { return cGroup; }
+
+ //a=Aavoidable
+ public Assignment getAAssignment_0() { return cAAssignment_0; }
+
+ //Aavoidable
+ public RuleCall getAAavoidableEnumRuleCall_0_0() { return cAAavoidableEnumRuleCall_0_0; }
+
+ //'.'
+ public Keyword getFullStopKeyword_1() { return cFullStopKeyword_1; }
+
+ //c=Cavoidable
+ public Assignment getCAssignment_2() { return cCAssignment_2; }
+
+ //Cavoidable
+ public RuleCall getCCavoidableEnumRuleCall_2_0() { return cCCavoidableEnumRuleCall_2_0; }
+
+ //'.'
+ public Keyword getFullStopKeyword_3() { return cFullStopKeyword_3; }
+
+ //i=Iavoidable
+ public Assignment getIAssignment_4() { return cIAssignment_4; }
+
+ //Iavoidable
+ public RuleCall getIIavoidableEnumRuleCall_4_0() { return cIIavoidableEnumRuleCall_4_0; }
+
+ //'.'
+ public Keyword getFullStopKeyword_5() { return cFullStopKeyword_5; }
+
+ //d=Davoidable
+ public Assignment getDAssignment_6() { return cDAssignment_6; }
+
+ //Davoidable
+ public RuleCall getDDavoidableEnumRuleCall_6_0() { return cDDavoidableEnumRuleCall_6_0; }
+ }
+
+ public class ACIDMitigationElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.polarsys.chess.xtext.FlaDsl.ACIDMitigation");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Assignment cAAssignment_0 = (Assignment)cGroup.eContents().get(0);
+ private final RuleCall cAAmitigationEnumRuleCall_0_0 = (RuleCall)cAAssignment_0.eContents().get(0);
+ private final Keyword cFullStopKeyword_1 = (Keyword)cGroup.eContents().get(1);
+ private final Assignment cCAssignment_2 = (Assignment)cGroup.eContents().get(2);
+ private final RuleCall cCCmitigationEnumRuleCall_2_0 = (RuleCall)cCAssignment_2.eContents().get(0);
+ private final Keyword cFullStopKeyword_3 = (Keyword)cGroup.eContents().get(3);
+ private final Assignment cIAssignment_4 = (Assignment)cGroup.eContents().get(4);
+ private final RuleCall cIImitigationEnumRuleCall_4_0 = (RuleCall)cIAssignment_4.eContents().get(0);
+ private final Keyword cFullStopKeyword_5 = (Keyword)cGroup.eContents().get(5);
+ private final Assignment cDAssignment_6 = (Assignment)cGroup.eContents().get(6);
+ private final RuleCall cDDmitigationEnumRuleCall_6_0 = (RuleCall)cDAssignment_6.eContents().get(0);
+
+ //ACIDMitigation:
+ // a=Amitigation '.' c=Cmitigation '.' i=Imitigation '.' d=Dmitigation;
+ @Override public ParserRule getRule() { return rule; }
+
+ //a=Amitigation '.' c=Cmitigation '.' i=Imitigation '.' d=Dmitigation
+ public Group getGroup() { return cGroup; }
+
+ //a=Amitigation
+ public Assignment getAAssignment_0() { return cAAssignment_0; }
+
+ //Amitigation
+ public RuleCall getAAmitigationEnumRuleCall_0_0() { return cAAmitigationEnumRuleCall_0_0; }
+
+ //'.'
+ public Keyword getFullStopKeyword_1() { return cFullStopKeyword_1; }
+
+ //c=Cmitigation
+ public Assignment getCAssignment_2() { return cCAssignment_2; }
+
+ //Cmitigation
+ public RuleCall getCCmitigationEnumRuleCall_2_0() { return cCCmitigationEnumRuleCall_2_0; }
+
+ //'.'
+ public Keyword getFullStopKeyword_3() { return cFullStopKeyword_3; }
+
+ //i=Imitigation
+ public Assignment getIAssignment_4() { return cIAssignment_4; }
+
+ //Imitigation
+ public RuleCall getIImitigationEnumRuleCall_4_0() { return cIImitigationEnumRuleCall_4_0; }
+
+ //'.'
+ public Keyword getFullStopKeyword_5() { return cFullStopKeyword_5; }
+
+ //d=Dmitigation
+ public Assignment getDAssignment_6() { return cDAssignment_6; }
+
+ //Dmitigation
+ public RuleCall getDDmitigationEnumRuleCall_6_0() { return cDDmitigationEnumRuleCall_6_0; }
+ }
+
+ public class FQNElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.polarsys.chess.xtext.FlaDsl.FQN");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final RuleCall cIDTerminalRuleCall_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 cIDTerminalRuleCall_1_1 = (RuleCall)cGroup_1.eContents().get(1);
+
+ ///*
+ // * Additional rule to refer UML elements in a Model
+ // */ FQN:
+ // ID ('::' ID)*;
+ @Override public ParserRule getRule() { return rule; }
+
+ //ID ('::' ID)*
+ public Group getGroup() { return cGroup; }
+
+ //ID
+ public RuleCall getIDTerminalRuleCall_0() { return cIDTerminalRuleCall_0; }
+
+ //('::' ID)*
+ public Group getGroup_1() { return cGroup_1; }
+
+ //'::'
+ public Keyword getColonColonKeyword_1_0() { return cColonColonKeyword_1_0; }
+
+ //ID
+ public RuleCall getIDTerminalRuleCall_1_1() { return cIDTerminalRuleCall_1_1; }
+ }
+
+
+ public class FailureTypeElements extends AbstractEnumRuleElementFinder {
+ private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "org.polarsys.chess.xtext.FlaDsl.FailureType");
+ private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
+ private final EnumLiteralDeclaration cNO_FAILUREEnumLiteralDeclaration_0 = (EnumLiteralDeclaration)cAlternatives.eContents().get(0);
+ private final Keyword cNO_FAILURENoFailureKeyword_0_0 = (Keyword)cNO_FAILUREEnumLiteralDeclaration_0.eContents().get(0);
+ private final EnumLiteralDeclaration cEARLYEnumLiteralDeclaration_1 = (EnumLiteralDeclaration)cAlternatives.eContents().get(1);
+ private final Keyword cEARLYEarlyKeyword_1_0 = (Keyword)cEARLYEnumLiteralDeclaration_1.eContents().get(0);
+ private final EnumLiteralDeclaration cLATEEnumLiteralDeclaration_2 = (EnumLiteralDeclaration)cAlternatives.eContents().get(2);
+ private final Keyword cLATELateKeyword_2_0 = (Keyword)cLATEEnumLiteralDeclaration_2.eContents().get(0);
+ private final EnumLiteralDeclaration cCOMMISSIONEnumLiteralDeclaration_3 = (EnumLiteralDeclaration)cAlternatives.eContents().get(3);
+ private final Keyword cCOMMISSIONCommissionKeyword_3_0 = (Keyword)cCOMMISSIONEnumLiteralDeclaration_3.eContents().get(0);
+ private final EnumLiteralDeclaration cOMISSIONEnumLiteralDeclaration_4 = (EnumLiteralDeclaration)cAlternatives.eContents().get(4);
+ private final Keyword cOMISSIONOmissionKeyword_4_0 = (Keyword)cOMISSIONEnumLiteralDeclaration_4.eContents().get(0);
+ private final EnumLiteralDeclaration cVALUE_SUBTLEEnumLiteralDeclaration_5 = (EnumLiteralDeclaration)cAlternatives.eContents().get(5);
+ private final Keyword cVALUE_SUBTLEValueSubtleKeyword_5_0 = (Keyword)cVALUE_SUBTLEEnumLiteralDeclaration_5.eContents().get(0);
+ private final EnumLiteralDeclaration cVALUE_COARSEEnumLiteralDeclaration_6 = (EnumLiteralDeclaration)cAlternatives.eContents().get(6);
+ private final Keyword cVALUE_COARSEValueCoarseKeyword_6_0 = (Keyword)cVALUE_COARSEEnumLiteralDeclaration_6.eContents().get(0);
+ private final EnumLiteralDeclaration cWILDCARDEnumLiteralDeclaration_7 = (EnumLiteralDeclaration)cAlternatives.eContents().get(7);
+ private final Keyword cWILDCARDWildcardKeyword_7_0 = (Keyword)cWILDCARDEnumLiteralDeclaration_7.eContents().get(0);
+ private final EnumLiteralDeclaration cVARIABLEEnumLiteralDeclaration_8 = (EnumLiteralDeclaration)cAlternatives.eContents().get(8);
+ private final Keyword cVARIABLEVariableKeyword_8_0 = (Keyword)cVARIABLEEnumLiteralDeclaration_8.eContents().get(0);
+
+ //enum FailureType:
+ // NO_FAILURE='noFailure' | EARLY='early' | LATE='late' | COMMISSION='commission' | OMISSION='omission' |
+ // VALUE_SUBTLE='valueSubtle' | VALUE_COARSE='valueCoarse' | WILDCARD="wildcard" | VARIABLE='variable';
+ public EnumRule getRule() { return rule; }
+
+ //NO_FAILURE='noFailure' | EARLY='early' | LATE='late' | COMMISSION='commission' | OMISSION='omission' |
+ //VALUE_SUBTLE='valueSubtle' | VALUE_COARSE='valueCoarse' | WILDCARD="wildcard" | VARIABLE='variable'
+ public Alternatives getAlternatives() { return cAlternatives; }
+
+ //NO_FAILURE='noFailure'
+ public EnumLiteralDeclaration getNO_FAILUREEnumLiteralDeclaration_0() { return cNO_FAILUREEnumLiteralDeclaration_0; }
+
+ //'noFailure'
+ public Keyword getNO_FAILURENoFailureKeyword_0_0() { return cNO_FAILURENoFailureKeyword_0_0; }
+
+ //EARLY='early'
+ public EnumLiteralDeclaration getEARLYEnumLiteralDeclaration_1() { return cEARLYEnumLiteralDeclaration_1; }
+
+ //'early'
+ public Keyword getEARLYEarlyKeyword_1_0() { return cEARLYEarlyKeyword_1_0; }
+
+ //LATE='late'
+ public EnumLiteralDeclaration getLATEEnumLiteralDeclaration_2() { return cLATEEnumLiteralDeclaration_2; }
+
+ //'late'
+ public Keyword getLATELateKeyword_2_0() { return cLATELateKeyword_2_0; }
+
+ //COMMISSION='commission'
+ public EnumLiteralDeclaration getCOMMISSIONEnumLiteralDeclaration_3() { return cCOMMISSIONEnumLiteralDeclaration_3; }
+
+ //'commission'
+ public Keyword getCOMMISSIONCommissionKeyword_3_0() { return cCOMMISSIONCommissionKeyword_3_0; }
+
+ //OMISSION='omission'
+ public EnumLiteralDeclaration getOMISSIONEnumLiteralDeclaration_4() { return cOMISSIONEnumLiteralDeclaration_4; }
+
+ //'omission'
+ public Keyword getOMISSIONOmissionKeyword_4_0() { return cOMISSIONOmissionKeyword_4_0; }
+
+ //VALUE_SUBTLE='valueSubtle'
+ public EnumLiteralDeclaration getVALUE_SUBTLEEnumLiteralDeclaration_5() { return cVALUE_SUBTLEEnumLiteralDeclaration_5; }
+
+ //'valueSubtle'
+ public Keyword getVALUE_SUBTLEValueSubtleKeyword_5_0() { return cVALUE_SUBTLEValueSubtleKeyword_5_0; }
+
+ //VALUE_COARSE='valueCoarse'
+ public EnumLiteralDeclaration getVALUE_COARSEEnumLiteralDeclaration_6() { return cVALUE_COARSEEnumLiteralDeclaration_6; }
+
+ //'valueCoarse'
+ public Keyword getVALUE_COARSEValueCoarseKeyword_6_0() { return cVALUE_COARSEValueCoarseKeyword_6_0; }
+
+ //WILDCARD="wildcard"
+ public EnumLiteralDeclaration getWILDCARDEnumLiteralDeclaration_7() { return cWILDCARDEnumLiteralDeclaration_7; }
+
+ //"wildcard"
+ public Keyword getWILDCARDWildcardKeyword_7_0() { return cWILDCARDWildcardKeyword_7_0; }
+
+ //VARIABLE='variable'
+ public EnumLiteralDeclaration getVARIABLEEnumLiteralDeclaration_8() { return cVARIABLEEnumLiteralDeclaration_8; }
+
+ //'variable'
+ public Keyword getVARIABLEVariableKeyword_8_0() { return cVARIABLEVariableKeyword_8_0; }
+ }
+
+ public class ActualFailureTypeElements extends AbstractEnumRuleElementFinder {
+ private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "org.polarsys.chess.xtext.FlaDsl.ActualFailureType");
+ private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
+ private final EnumLiteralDeclaration cEARLYEnumLiteralDeclaration_0 = (EnumLiteralDeclaration)cAlternatives.eContents().get(0);
+ private final Keyword cEARLYEarlyKeyword_0_0 = (Keyword)cEARLYEnumLiteralDeclaration_0.eContents().get(0);
+ private final EnumLiteralDeclaration cLATEEnumLiteralDeclaration_1 = (EnumLiteralDeclaration)cAlternatives.eContents().get(1);
+ private final Keyword cLATELateKeyword_1_0 = (Keyword)cLATEEnumLiteralDeclaration_1.eContents().get(0);
+ private final EnumLiteralDeclaration cCOMMISSIONEnumLiteralDeclaration_2 = (EnumLiteralDeclaration)cAlternatives.eContents().get(2);
+ private final Keyword cCOMMISSIONCommissionKeyword_2_0 = (Keyword)cCOMMISSIONEnumLiteralDeclaration_2.eContents().get(0);
+ private final EnumLiteralDeclaration cOMISSIONEnumLiteralDeclaration_3 = (EnumLiteralDeclaration)cAlternatives.eContents().get(3);
+ private final Keyword cOMISSIONOmissionKeyword_3_0 = (Keyword)cOMISSIONEnumLiteralDeclaration_3.eContents().get(0);
+ private final EnumLiteralDeclaration cVALUE_SUBTLEEnumLiteralDeclaration_4 = (EnumLiteralDeclaration)cAlternatives.eContents().get(4);
+ private final Keyword cVALUE_SUBTLEValueSubtleKeyword_4_0 = (Keyword)cVALUE_SUBTLEEnumLiteralDeclaration_4.eContents().get(0);
+ private final EnumLiteralDeclaration cVALUE_COARSEEnumLiteralDeclaration_5 = (EnumLiteralDeclaration)cAlternatives.eContents().get(5);
+ private final Keyword cVALUE_COARSEValueCoarseKeyword_5_0 = (Keyword)cVALUE_COARSEEnumLiteralDeclaration_5.eContents().get(0);
+
+ //enum ActualFailureType returns FailureType:
+ // EARLY="early" | LATE="late" | COMMISSION="commission" | OMISSION="omission" | VALUE_SUBTLE="valueSubtle" |
+ // VALUE_COARSE="valueCoarse";
+ public EnumRule getRule() { return rule; }
+
+ //EARLY="early" | LATE="late" | COMMISSION="commission" | OMISSION="omission" | VALUE_SUBTLE="valueSubtle" |
+ //VALUE_COARSE="valueCoarse"
+ public Alternatives getAlternatives() { return cAlternatives; }
+
+ //EARLY="early"
+ public EnumLiteralDeclaration getEARLYEnumLiteralDeclaration_0() { return cEARLYEnumLiteralDeclaration_0; }
+
+ //"early"
+ public Keyword getEARLYEarlyKeyword_0_0() { return cEARLYEarlyKeyword_0_0; }
+
+ //LATE="late"
+ public EnumLiteralDeclaration getLATEEnumLiteralDeclaration_1() { return cLATEEnumLiteralDeclaration_1; }
+
+ //"late"
+ public Keyword getLATELateKeyword_1_0() { return cLATELateKeyword_1_0; }
+
+ //COMMISSION="commission"
+ public EnumLiteralDeclaration getCOMMISSIONEnumLiteralDeclaration_2() { return cCOMMISSIONEnumLiteralDeclaration_2; }
+
+ //"commission"
+ public Keyword getCOMMISSIONCommissionKeyword_2_0() { return cCOMMISSIONCommissionKeyword_2_0; }
+
+ //OMISSION="omission"
+ public EnumLiteralDeclaration getOMISSIONEnumLiteralDeclaration_3() { return cOMISSIONEnumLiteralDeclaration_3; }
+
+ //"omission"
+ public Keyword getOMISSIONOmissionKeyword_3_0() { return cOMISSIONOmissionKeyword_3_0; }
+
+ //VALUE_SUBTLE="valueSubtle"
+ public EnumLiteralDeclaration getVALUE_SUBTLEEnumLiteralDeclaration_4() { return cVALUE_SUBTLEEnumLiteralDeclaration_4; }
+
+ //"valueSubtle"
+ public Keyword getVALUE_SUBTLEValueSubtleKeyword_4_0() { return cVALUE_SUBTLEValueSubtleKeyword_4_0; }
+
+ //VALUE_COARSE="valueCoarse"
+ public EnumLiteralDeclaration getVALUE_COARSEEnumLiteralDeclaration_5() { return cVALUE_COARSEEnumLiteralDeclaration_5; }
+
+ //"valueCoarse"
+ public Keyword getVALUE_COARSEValueCoarseKeyword_5_0() { return cVALUE_COARSEValueCoarseKeyword_5_0; }
+ }
+
+ public class NoFailureTypeElements extends AbstractEnumRuleElementFinder {
+ private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "org.polarsys.chess.xtext.FlaDsl.NoFailureType");
+ private final EnumLiteralDeclaration cNO_FAILUREEnumLiteralDeclaration = (EnumLiteralDeclaration)rule.eContents().get(1);
+ private final Keyword cNO_FAILURENoFailureKeyword_0 = (Keyword)cNO_FAILUREEnumLiteralDeclaration.eContents().get(0);
+
+ //enum NoFailureType returns FailureType:
+ // NO_FAILURE="noFailure";
+ public EnumRule getRule() { return rule; }
+
+ //NO_FAILURE="noFailure"
+ public EnumLiteralDeclaration getNO_FAILUREEnumLiteralDeclaration() { return cNO_FAILUREEnumLiteralDeclaration; }
+
+ //"noFailure"
+ public Keyword getNO_FAILURENoFailureKeyword_0() { return cNO_FAILURENoFailureKeyword_0; }
+ }
+
+ public class WildcardElements extends AbstractEnumRuleElementFinder {
+ private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "org.polarsys.chess.xtext.FlaDsl.Wildcard");
+ private final EnumLiteralDeclaration cWILDCARDEnumLiteralDeclaration = (EnumLiteralDeclaration)rule.eContents().get(1);
+ private final Keyword cWILDCARDWildcardKeyword_0 = (Keyword)cWILDCARDEnumLiteralDeclaration.eContents().get(0);
+
+ //enum Wildcard returns FailureType:
+ // WILDCARD="wildcard";
+ public EnumRule getRule() { return rule; }
+
+ //WILDCARD="wildcard"
+ public EnumLiteralDeclaration getWILDCARDEnumLiteralDeclaration() { return cWILDCARDEnumLiteralDeclaration; }
+
+ //"wildcard"
+ public Keyword getWILDCARDWildcardKeyword_0() { return cWILDCARDWildcardKeyword_0; }
+ }
+
+ public class AavoidableElements extends AbstractEnumRuleElementFinder {
+ private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "org.polarsys.chess.xtext.FlaDsl.Aavoidable");
+ private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
+ private final EnumLiteralDeclaration cINCOMPLETIONEnumLiteralDeclaration_0 = (EnumLiteralDeclaration)cAlternatives.eContents().get(0);
+ private final Keyword cINCOMPLETIONIncompletionKeyword_0_0 = (Keyword)cINCOMPLETIONEnumLiteralDeclaration_0.eContents().get(0);
+ private final EnumLiteralDeclaration cNONEEnumLiteralDeclaration_1 = (EnumLiteralDeclaration)cAlternatives.eContents().get(1);
+ private final Keyword cNONENoneKeyword_1_0 = (Keyword)cNONEEnumLiteralDeclaration_1.eContents().get(0);
+ private final EnumLiteralDeclaration cUNSPECIFIEDEnumLiteralDeclaration_2 = (EnumLiteralDeclaration)cAlternatives.eContents().get(2);
+ private final Keyword cUNSPECIFIEDUnspecifiedKeyword_2_0 = (Keyword)cUNSPECIFIEDEnumLiteralDeclaration_2.eContents().get(0);
+
+ //enum Aavoidable:
+ // INCOMPLETION='incompletion' | NONE='none' | UNSPECIFIED='unspecified';
+ public EnumRule getRule() { return rule; }
+
+ //INCOMPLETION='incompletion' | NONE='none' | UNSPECIFIED='unspecified'
+ public Alternatives getAlternatives() { return cAlternatives; }
+
+ //INCOMPLETION='incompletion'
+ public EnumLiteralDeclaration getINCOMPLETIONEnumLiteralDeclaration_0() { return cINCOMPLETIONEnumLiteralDeclaration_0; }
+
+ //'incompletion'
+ public Keyword getINCOMPLETIONIncompletionKeyword_0_0() { return cINCOMPLETIONIncompletionKeyword_0_0; }
+
+ //NONE='none'
+ public EnumLiteralDeclaration getNONEEnumLiteralDeclaration_1() { return cNONEEnumLiteralDeclaration_1; }
+
+ //'none'
+ public Keyword getNONENoneKeyword_1_0() { return cNONENoneKeyword_1_0; }
+
+ //UNSPECIFIED='unspecified'
+ public EnumLiteralDeclaration getUNSPECIFIEDEnumLiteralDeclaration_2() { return cUNSPECIFIEDEnumLiteralDeclaration_2; }
+
+ //'unspecified'
+ public Keyword getUNSPECIFIEDUnspecifiedKeyword_2_0() { return cUNSPECIFIEDUnspecifiedKeyword_2_0; }
+ }
+
+ public class CavoidableElements extends AbstractEnumRuleElementFinder {
+ private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "org.polarsys.chess.xtext.FlaDsl.Cavoidable");
+ private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
+ private final EnumLiteralDeclaration cINCONSISTENCYEnumLiteralDeclaration_0 = (EnumLiteralDeclaration)cAlternatives.eContents().get(0);
+ private final Keyword cINCONSISTENCYInconsistencyKeyword_0_0 = (Keyword)cINCONSISTENCYEnumLiteralDeclaration_0.eContents().get(0);
+ private final EnumLiteralDeclaration cNONEEnumLiteralDeclaration_1 = (EnumLiteralDeclaration)cAlternatives.eContents().get(1);
+ private final Keyword cNONENoneKeyword_1_0 = (Keyword)cNONEEnumLiteralDeclaration_1.eContents().get(0);
+ private final EnumLiteralDeclaration cUNSPECIFIEDEnumLiteralDeclaration_2 = (EnumLiteralDeclaration)cAlternatives.eContents().get(2);
+ private final Keyword cUNSPECIFIEDUnspecifiedKeyword_2_0 = (Keyword)cUNSPECIFIEDEnumLiteralDeclaration_2.eContents().get(0);
+
+ //enum Cavoidable:
+ // INCONSISTENCY='inconsistency' | NONE='none' | UNSPECIFIED='unspecified';
+ public EnumRule getRule() { return rule; }
+
+ //INCONSISTENCY='inconsistency' | NONE='none' | UNSPECIFIED='unspecified'
+ public Alternatives getAlternatives() { return cAlternatives; }
+
+ //INCONSISTENCY='inconsistency'
+ public EnumLiteralDeclaration getINCONSISTENCYEnumLiteralDeclaration_0() { return cINCONSISTENCYEnumLiteralDeclaration_0; }
+
+ //'inconsistency'
+ public Keyword getINCONSISTENCYInconsistencyKeyword_0_0() { return cINCONSISTENCYInconsistencyKeyword_0_0; }
+
+ //NONE='none'
+ public EnumLiteralDeclaration getNONEEnumLiteralDeclaration_1() { return cNONEEnumLiteralDeclaration_1; }
+
+ //'none'
+ public Keyword getNONENoneKeyword_1_0() { return cNONENoneKeyword_1_0; }
+
+ //UNSPECIFIED='unspecified'
+ public EnumLiteralDeclaration getUNSPECIFIEDEnumLiteralDeclaration_2() { return cUNSPECIFIEDEnumLiteralDeclaration_2; }
+
+ //'unspecified'
+ public Keyword getUNSPECIFIEDUnspecifiedKeyword_2_0() { return cUNSPECIFIEDUnspecifiedKeyword_2_0; }
+ }
+
+ public class IavoidableElements extends AbstractEnumRuleElementFinder {
+ private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "org.polarsys.chess.xtext.FlaDsl.Iavoidable");
+ private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
+ private final EnumLiteralDeclaration cINTERFERENCEEnumLiteralDeclaration_0 = (EnumLiteralDeclaration)cAlternatives.eContents().get(0);
+ private final Keyword cINTERFERENCEInterferenceKeyword_0_0 = (Keyword)cINTERFERENCEEnumLiteralDeclaration_0.eContents().get(0);
+ private final EnumLiteralDeclaration cNONEEnumLiteralDeclaration_1 = (EnumLiteralDeclaration)cAlternatives.eContents().get(1);
+ private final Keyword cNONENoneKeyword_1_0 = (Keyword)cNONEEnumLiteralDeclaration_1.eContents().get(0);
+ private final EnumLiteralDeclaration cUNSPECIFIEDEnumLiteralDeclaration_2 = (EnumLiteralDeclaration)cAlternatives.eContents().get(2);
+ private final Keyword cUNSPECIFIEDUnspecifiedKeyword_2_0 = (Keyword)cUNSPECIFIEDEnumLiteralDeclaration_2.eContents().get(0);
+
+ //enum Iavoidable:
+ // INTERFERENCE='interference' | NONE='none' | UNSPECIFIED='unspecified';
+ public EnumRule getRule() { return rule; }
+
+ //INTERFERENCE='interference' | NONE='none' | UNSPECIFIED='unspecified'
+ public Alternatives getAlternatives() { return cAlternatives; }
+
+ //INTERFERENCE='interference'
+ public EnumLiteralDeclaration getINTERFERENCEEnumLiteralDeclaration_0() { return cINTERFERENCEEnumLiteralDeclaration_0; }
+
+ //'interference'
+ public Keyword getINTERFERENCEInterferenceKeyword_0_0() { return cINTERFERENCEInterferenceKeyword_0_0; }
+
+ //NONE='none'
+ public EnumLiteralDeclaration getNONEEnumLiteralDeclaration_1() { return cNONEEnumLiteralDeclaration_1; }
+
+ //'none'
+ public Keyword getNONENoneKeyword_1_0() { return cNONENoneKeyword_1_0; }
+
+ //UNSPECIFIED='unspecified'
+ public EnumLiteralDeclaration getUNSPECIFIEDEnumLiteralDeclaration_2() { return cUNSPECIFIEDEnumLiteralDeclaration_2; }
+
+ //'unspecified'
+ public Keyword getUNSPECIFIEDUnspecifiedKeyword_2_0() { return cUNSPECIFIEDUnspecifiedKeyword_2_0; }
+ }
+
+ public class DavoidableElements extends AbstractEnumRuleElementFinder {
+ private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "org.polarsys.chess.xtext.FlaDsl.Davoidable");
+ private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
+ private final EnumLiteralDeclaration cIMPERMANENCEEnumLiteralDeclaration_0 = (EnumLiteralDeclaration)cAlternatives.eContents().get(0);
+ private final Keyword cIMPERMANENCEImpermanenceKeyword_0_0 = (Keyword)cIMPERMANENCEEnumLiteralDeclaration_0.eContents().get(0);
+ private final EnumLiteralDeclaration cNONEEnumLiteralDeclaration_1 = (EnumLiteralDeclaration)cAlternatives.eContents().get(1);
+ private final Keyword cNONENoneKeyword_1_0 = (Keyword)cNONEEnumLiteralDeclaration_1.eContents().get(0);
+ private final EnumLiteralDeclaration cUNSPECIFIEDEnumLiteralDeclaration_2 = (EnumLiteralDeclaration)cAlternatives.eContents().get(2);
+ private final Keyword cUNSPECIFIEDUnspecifiedKeyword_2_0 = (Keyword)cUNSPECIFIEDEnumLiteralDeclaration_2.eContents().get(0);
+
+ //enum Davoidable:
+ // IMPERMANENCE='impermanence' | NONE='none' | UNSPECIFIED='unspecified';
+ public EnumRule getRule() { return rule; }
+
+ //IMPERMANENCE='impermanence' | NONE='none' | UNSPECIFIED='unspecified'
+ public Alternatives getAlternatives() { return cAlternatives; }
+
+ //IMPERMANENCE='impermanence'
+ public EnumLiteralDeclaration getIMPERMANENCEEnumLiteralDeclaration_0() { return cIMPERMANENCEEnumLiteralDeclaration_0; }
+
+ //'impermanence'
+ public Keyword getIMPERMANENCEImpermanenceKeyword_0_0() { return cIMPERMANENCEImpermanenceKeyword_0_0; }
+
+ //NONE='none'
+ public EnumLiteralDeclaration getNONEEnumLiteralDeclaration_1() { return cNONEEnumLiteralDeclaration_1; }
+
+ //'none'
+ public Keyword getNONENoneKeyword_1_0() { return cNONENoneKeyword_1_0; }
+
+ //UNSPECIFIED='unspecified'
+ public EnumLiteralDeclaration getUNSPECIFIEDEnumLiteralDeclaration_2() { return cUNSPECIFIEDEnumLiteralDeclaration_2; }
+
+ //'unspecified'
+ public Keyword getUNSPECIFIEDUnspecifiedKeyword_2_0() { return cUNSPECIFIEDUnspecifiedKeyword_2_0; }
+ }
+
+ public class AmitigationElements extends AbstractEnumRuleElementFinder {
+ private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "org.polarsys.chess.xtext.FlaDsl.Amitigation");
+ private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
+ private final EnumLiteralDeclaration cALL_OR_NOTHINGEnumLiteralDeclaration_0 = (EnumLiteralDeclaration)cAlternatives.eContents().get(0);
+ private final Keyword cALL_OR_NOTHINGAll_or_nothingKeyword_0_0 = (Keyword)cALL_OR_NOTHINGEnumLiteralDeclaration_0.eContents().get(0);
+ private final EnumLiteralDeclaration cALL_OR_COMPENSATIONEnumLiteralDeclaration_1 = (EnumLiteralDeclaration)cAlternatives.eContents().get(1);
+ private final Keyword cALL_OR_COMPENSATIONAll_or_compensationKeyword_1_0 = (Keyword)cALL_OR_COMPENSATIONEnumLiteralDeclaration_1.eContents().get(0);
+ private final EnumLiteralDeclaration cNONEEnumLiteralDeclaration_2 = (EnumLiteralDeclaration)cAlternatives.eContents().get(2);
+ private final Keyword cNONENoneKeyword_2_0 = (Keyword)cNONEEnumLiteralDeclaration_2.eContents().get(0);
+ private final EnumLiteralDeclaration cUNSPECIFIEDEnumLiteralDeclaration_3 = (EnumLiteralDeclaration)cAlternatives.eContents().get(3);
+ private final Keyword cUNSPECIFIEDUnspecifiedKeyword_3_0 = (Keyword)cUNSPECIFIEDEnumLiteralDeclaration_3.eContents().get(0);
+
+ //enum Amitigation:
+ // ALL_OR_NOTHING='all_or_nothing' | ALL_OR_COMPENSATION='all_or_compensation' | NONE='none' |
+ // UNSPECIFIED='unspecified';
+ public EnumRule getRule() { return rule; }
+
+ //ALL_OR_NOTHING='all_or_nothing' | ALL_OR_COMPENSATION='all_or_compensation' | NONE='none' | UNSPECIFIED='unspecified'
+ public Alternatives getAlternatives() { return cAlternatives; }
+
+ //ALL_OR_NOTHING='all_or_nothing'
+ public EnumLiteralDeclaration getALL_OR_NOTHINGEnumLiteralDeclaration_0() { return cALL_OR_NOTHINGEnumLiteralDeclaration_0; }
+
+ //'all_or_nothing'
+ public Keyword getALL_OR_NOTHINGAll_or_nothingKeyword_0_0() { return cALL_OR_NOTHINGAll_or_nothingKeyword_0_0; }
+
+ //ALL_OR_COMPENSATION='all_or_compensation'
+ public EnumLiteralDeclaration getALL_OR_COMPENSATIONEnumLiteralDeclaration_1() { return cALL_OR_COMPENSATIONEnumLiteralDeclaration_1; }
+
+ //'all_or_compensation'
+ public Keyword getALL_OR_COMPENSATIONAll_or_compensationKeyword_1_0() { return cALL_OR_COMPENSATIONAll_or_compensationKeyword_1_0; }
+
+ //NONE='none'
+ public EnumLiteralDeclaration getNONEEnumLiteralDeclaration_2() { return cNONEEnumLiteralDeclaration_2; }
+
+ //'none'
+ public Keyword getNONENoneKeyword_2_0() { return cNONENoneKeyword_2_0; }
+
+ //UNSPECIFIED='unspecified'
+ public EnumLiteralDeclaration getUNSPECIFIEDEnumLiteralDeclaration_3() { return cUNSPECIFIEDEnumLiteralDeclaration_3; }
+
+ //'unspecified'
+ public Keyword getUNSPECIFIEDUnspecifiedKeyword_3_0() { return cUNSPECIFIEDUnspecifiedKeyword_3_0; }
+ }
+
+ public class CmitigationElements extends AbstractEnumRuleElementFinder {
+ private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "org.polarsys.chess.xtext.FlaDsl.Cmitigation");
+ private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
+ private final EnumLiteralDeclaration cFULL_CONSISTENCYEnumLiteralDeclaration_0 = (EnumLiteralDeclaration)cAlternatives.eContents().get(0);
+ private final Keyword cFULL_CONSISTENCYFull_consistencyKeyword_0_0 = (Keyword)cFULL_CONSISTENCYEnumLiteralDeclaration_0.eContents().get(0);
+ private final EnumLiteralDeclaration cRANGE_VIOLATION_ALLOWEDEnumLiteralDeclaration_1 = (EnumLiteralDeclaration)cAlternatives.eContents().get(1);
+ private final Keyword cRANGE_VIOLATION_ALLOWEDRange_violation_allowedKeyword_1_0 = (Keyword)cRANGE_VIOLATION_ALLOWEDEnumLiteralDeclaration_1.eContents().get(0);
+ private final EnumLiteralDeclaration cNONEEnumLiteralDeclaration_2 = (EnumLiteralDeclaration)cAlternatives.eContents().get(2);
+ private final Keyword cNONENoneKeyword_2_0 = (Keyword)cNONEEnumLiteralDeclaration_2.eContents().get(0);
+ private final EnumLiteralDeclaration cUNSPECIFIEDEnumLiteralDeclaration_3 = (EnumLiteralDeclaration)cAlternatives.eContents().get(3);
+ private final Keyword cUNSPECIFIEDUnspecifiedKeyword_3_0 = (Keyword)cUNSPECIFIEDEnumLiteralDeclaration_3.eContents().get(0);
+
+ //enum Cmitigation:
+ // FULL_CONSISTENCY='full_consistency' | RANGE_VIOLATION_ALLOWED='range_violation_allowed' | NONE='none' |
+ // UNSPECIFIED='unspecified';
+ public EnumRule getRule() { return rule; }
+
+ //FULL_CONSISTENCY='full_consistency' | RANGE_VIOLATION_ALLOWED='range_violation_allowed' | NONE='none' |
+ //UNSPECIFIED='unspecified'
+ public Alternatives getAlternatives() { return cAlternatives; }
+
+ //FULL_CONSISTENCY='full_consistency'
+ public EnumLiteralDeclaration getFULL_CONSISTENCYEnumLiteralDeclaration_0() { return cFULL_CONSISTENCYEnumLiteralDeclaration_0; }
+
+ //'full_consistency'
+ public Keyword getFULL_CONSISTENCYFull_consistencyKeyword_0_0() { return cFULL_CONSISTENCYFull_consistencyKeyword_0_0; }
+
+ //RANGE_VIOLATION_ALLOWED='range_violation_allowed'
+ public EnumLiteralDeclaration getRANGE_VIOLATION_ALLOWEDEnumLiteralDeclaration_1() { return cRANGE_VIOLATION_ALLOWEDEnumLiteralDeclaration_1; }
+
+ //'range_violation_allowed'
+ public Keyword getRANGE_VIOLATION_ALLOWEDRange_violation_allowedKeyword_1_0() { return cRANGE_VIOLATION_ALLOWEDRange_violation_allowedKeyword_1_0; }
+
+ //NONE='none'
+ public EnumLiteralDeclaration getNONEEnumLiteralDeclaration_2() { return cNONEEnumLiteralDeclaration_2; }
+
+ //'none'
+ public Keyword getNONENoneKeyword_2_0() { return cNONENoneKeyword_2_0; }
+
+ //UNSPECIFIED='unspecified'
+ public EnumLiteralDeclaration getUNSPECIFIEDEnumLiteralDeclaration_3() { return cUNSPECIFIEDEnumLiteralDeclaration_3; }
+
+ //'unspecified'
+ public Keyword getUNSPECIFIEDUnspecifiedKeyword_3_0() { return cUNSPECIFIEDUnspecifiedKeyword_3_0; }
+ }
+
+ public class ImitigationElements extends AbstractEnumRuleElementFinder {
+ private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "org.polarsys.chess.xtext.FlaDsl.Imitigation");
+ private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
+ private final EnumLiteralDeclaration cSERIALIZABLEEnumLiteralDeclaration_0 = (EnumLiteralDeclaration)cAlternatives.eContents().get(0);
+ private final Keyword cSERIALIZABLESerializableKeyword_0_0 = (Keyword)cSERIALIZABLEEnumLiteralDeclaration_0.eContents().get(0);
+ private final EnumLiteralDeclaration cPORTABLE_LEVELEnumLiteralDeclaration_1 = (EnumLiteralDeclaration)cAlternatives.eContents().get(1);
+ private final Keyword cPORTABLE_LEVELPortable_levelKeyword_1_0 = (Keyword)cPORTABLE_LEVELEnumLiteralDeclaration_1.eContents().get(0);
+ private final EnumLiteralDeclaration cNONEEnumLiteralDeclaration_2 = (EnumLiteralDeclaration)cAlternatives.eContents().get(2);
+ private final Keyword cNONENoneKeyword_2_0 = (Keyword)cNONEEnumLiteralDeclaration_2.eContents().get(0);
+ private final EnumLiteralDeclaration cUNSPECIFIEDEnumLiteralDeclaration_3 = (EnumLiteralDeclaration)cAlternatives.eContents().get(3);
+ private final Keyword cUNSPECIFIEDUnspecifiedKeyword_3_0 = (Keyword)cUNSPECIFIEDEnumLiteralDeclaration_3.eContents().get(0);
+
+ //enum Imitigation:
+ // SERIALIZABLE='serializable' | PORTABLE_LEVEL='portable_level' | NONE='none' | UNSPECIFIED='unspecified';
+ public EnumRule getRule() { return rule; }
+
+ //SERIALIZABLE='serializable' | PORTABLE_LEVEL='portable_level' | NONE='none' | UNSPECIFIED='unspecified'
+ public Alternatives getAlternatives() { return cAlternatives; }
+
+ //SERIALIZABLE='serializable'
+ public EnumLiteralDeclaration getSERIALIZABLEEnumLiteralDeclaration_0() { return cSERIALIZABLEEnumLiteralDeclaration_0; }
+
+ //'serializable'
+ public Keyword getSERIALIZABLESerializableKeyword_0_0() { return cSERIALIZABLESerializableKeyword_0_0; }
+
+ //PORTABLE_LEVEL='portable_level'
+ public EnumLiteralDeclaration getPORTABLE_LEVELEnumLiteralDeclaration_1() { return cPORTABLE_LEVELEnumLiteralDeclaration_1; }
+
+ //'portable_level'
+ public Keyword getPORTABLE_LEVELPortable_levelKeyword_1_0() { return cPORTABLE_LEVELPortable_levelKeyword_1_0; }
+
+ //NONE='none'
+ public EnumLiteralDeclaration getNONEEnumLiteralDeclaration_2() { return cNONEEnumLiteralDeclaration_2; }
+
+ //'none'
+ public Keyword getNONENoneKeyword_2_0() { return cNONENoneKeyword_2_0; }
+
+ //UNSPECIFIED='unspecified'
+ public EnumLiteralDeclaration getUNSPECIFIEDEnumLiteralDeclaration_3() { return cUNSPECIFIEDEnumLiteralDeclaration_3; }
+
+ //'unspecified'
+ public Keyword getUNSPECIFIEDUnspecifiedKeyword_3_0() { return cUNSPECIFIEDUnspecifiedKeyword_3_0; }
+ }
+
+ public class DmitigationElements extends AbstractEnumRuleElementFinder {
+ private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "org.polarsys.chess.xtext.FlaDsl.Dmitigation");
+ private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
+ private final EnumLiteralDeclaration cNO_LOSSEnumLiteralDeclaration_0 = (EnumLiteralDeclaration)cAlternatives.eContents().get(0);
+ private final Keyword cNO_LOSSNo_lossKeyword_0_0 = (Keyword)cNO_LOSSEnumLiteralDeclaration_0.eContents().get(0);
+ private final EnumLiteralDeclaration cPARTIAL_LOSS_ALLOWEDEnumLiteralDeclaration_1 = (EnumLiteralDeclaration)cAlternatives.eContents().get(1);
+ private final Keyword cPARTIAL_LOSS_ALLOWEDPartial_loss_allowedKeyword_1_0 = (Keyword)cPARTIAL_LOSS_ALLOWEDEnumLiteralDeclaration_1.eContents().get(0);
+ private final EnumLiteralDeclaration cNONEEnumLiteralDeclaration_2 = (EnumLiteralDeclaration)cAlternatives.eContents().get(2);
+ private final Keyword cNONENoneKeyword_2_0 = (Keyword)cNONEEnumLiteralDeclaration_2.eContents().get(0);
+ private final EnumLiteralDeclaration cUNSPECIFIEDEnumLiteralDeclaration_3 = (EnumLiteralDeclaration)cAlternatives.eContents().get(3);
+ private final Keyword cUNSPECIFIEDUnspecifiedKeyword_3_0 = (Keyword)cUNSPECIFIEDEnumLiteralDeclaration_3.eContents().get(0);
+
+ //enum Dmitigation:
+ // NO_LOSS='no_loss' | PARTIAL_LOSS_ALLOWED='partial_loss_allowed' | NONE='none' | UNSPECIFIED='unspecified';
+ public EnumRule getRule() { return rule; }
+
+ //NO_LOSS='no_loss' | PARTIAL_LOSS_ALLOWED='partial_loss_allowed' | NONE='none' | UNSPECIFIED='unspecified'
+ public Alternatives getAlternatives() { return cAlternatives; }
+
+ //NO_LOSS='no_loss'
+ public EnumLiteralDeclaration getNO_LOSSEnumLiteralDeclaration_0() { return cNO_LOSSEnumLiteralDeclaration_0; }
+
+ //'no_loss'
+ public Keyword getNO_LOSSNo_lossKeyword_0_0() { return cNO_LOSSNo_lossKeyword_0_0; }
+
+ //PARTIAL_LOSS_ALLOWED='partial_loss_allowed'
+ public EnumLiteralDeclaration getPARTIAL_LOSS_ALLOWEDEnumLiteralDeclaration_1() { return cPARTIAL_LOSS_ALLOWEDEnumLiteralDeclaration_1; }
+
+ //'partial_loss_allowed'
+ public Keyword getPARTIAL_LOSS_ALLOWEDPartial_loss_allowedKeyword_1_0() { return cPARTIAL_LOSS_ALLOWEDPartial_loss_allowedKeyword_1_0; }
+
+ //NONE='none'
+ public EnumLiteralDeclaration getNONEEnumLiteralDeclaration_2() { return cNONEEnumLiteralDeclaration_2; }
+
+ //'none'
+ public Keyword getNONENoneKeyword_2_0() { return cNONENoneKeyword_2_0; }
+
+ //UNSPECIFIED='unspecified'
+ public EnumLiteralDeclaration getUNSPECIFIEDEnumLiteralDeclaration_3() { return cUNSPECIFIEDEnumLiteralDeclaration_3; }
+
+ //'unspecified'
+ public Keyword getUNSPECIFIEDUnspecifiedKeyword_3_0() { return cUNSPECIFIEDUnspecifiedKeyword_3_0; }
+ }
+
+ private final BehaviourElements pBehaviour;
+ private final ExpressionElements pExpression;
+ private final LhsElements pLhs;
+ private final RhsElements pRhs;
+ private final InputExpressionElements pInputExpression;
+ private final OutputExpressionElements pOutputExpression;
+ private final InFailureExprElements pInFailureExpr;
+ private final OutFailureExprElements pOutFailureExpr;
+ private final DefinitionsElements pDefinitions;
+ private final FailureDefinitionElements pFailureDefinition;
+ private final NoFailureDefinitionElements pNoFailureDefinition;
+ private final ComplexNofailureDefinitionElements pComplexNofailureDefinition;
+ private final WildcardDefinitionElements pWildcardDefinition;
+ private final VariableDefinitionElements pVariableDefinition;
+ private final FailureTypeElements eFailureType;
+ private final ActualFailureTypeElements eActualFailureType;
+ private final NoFailureTypeElements eNoFailureType;
+ private final WildcardElements eWildcard;
+ private final ACIDavoidableElements pACIDavoidable;
+ private final AavoidableElements eAavoidable;
+ private final CavoidableElements eCavoidable;
+ private final IavoidableElements eIavoidable;
+ private final DavoidableElements eDavoidable;
+ private final ACIDMitigationElements pACIDMitigation;
+ private final AmitigationElements eAmitigation;
+ private final CmitigationElements eCmitigation;
+ private final ImitigationElements eImitigation;
+ private final DmitigationElements eDmitigation;
+ private final FQNElements pFQN;
+
+ private final Grammar grammar;
+
+ private final TerminalsGrammarAccess gaTerminals;
+
+ @Inject
+ public FlaDslGrammarAccess(GrammarProvider grammarProvider,
+ TerminalsGrammarAccess gaTerminals) {
+ this.grammar = internalFindGrammar(grammarProvider);
+ this.gaTerminals = gaTerminals;
+ this.pBehaviour = new BehaviourElements();
+ this.pExpression = new ExpressionElements();
+ this.pLhs = new LhsElements();
+ this.pRhs = new RhsElements();
+ this.pInputExpression = new InputExpressionElements();
+ this.pOutputExpression = new OutputExpressionElements();
+ this.pInFailureExpr = new InFailureExprElements();
+ this.pOutFailureExpr = new OutFailureExprElements();
+ this.pDefinitions = new DefinitionsElements();
+ this.pFailureDefinition = new FailureDefinitionElements();
+ this.pNoFailureDefinition = new NoFailureDefinitionElements();
+ this.pComplexNofailureDefinition = new ComplexNofailureDefinitionElements();
+ this.pWildcardDefinition = new WildcardDefinitionElements();
+ this.pVariableDefinition = new VariableDefinitionElements();
+ this.eFailureType = new FailureTypeElements();
+ this.eActualFailureType = new ActualFailureTypeElements();
+ this.eNoFailureType = new NoFailureTypeElements();
+ this.eWildcard = new WildcardElements();
+ this.pACIDavoidable = new ACIDavoidableElements();
+ this.eAavoidable = new AavoidableElements();
+ this.eCavoidable = new CavoidableElements();
+ this.eIavoidable = new IavoidableElements();
+ this.eDavoidable = new DavoidableElements();
+ this.pACIDMitigation = new ACIDMitigationElements();
+ this.eAmitigation = new AmitigationElements();
+ this.eCmitigation = new CmitigationElements();
+ this.eImitigation = new ImitigationElements();
+ this.eDmitigation = new DmitigationElements();
+ this.pFQN = new FQNElements();
+ }
+
+ protected Grammar internalFindGrammar(GrammarProvider grammarProvider) {
+ Grammar grammar = grammarProvider.getGrammar(this);
+ while (grammar != null) {
+ if ("org.polarsys.chess.xtext.FlaDsl".equals(grammar.getName())) {
+ return grammar;
+ }
+ List<Grammar> grammars = grammar.getUsedGrammars();
+ if (!grammars.isEmpty()) {
+ grammar = grammars.iterator().next();
+ } else {
+ return null;
+ }
+ }
+ return grammar;
+ }
+
+ @Override
+ public Grammar getGrammar() {
+ return grammar;
+ }
+
+
+ public TerminalsGrammarAccess getTerminalsGrammarAccess() {
+ return gaTerminals;
+ }
+
+
+ ///*
+ // * FLA Grammar
+ // */ Behaviour:
+ // rules+=Expression+;
+ public BehaviourElements getBehaviourAccess() {
+ return pBehaviour;
+ }
+
+ public ParserRule getBehaviourRule() {
+ return getBehaviourAccess().getRule();
+ }
+
+ //Expression:
+ // 'FLA:' lhs=Lhs '->' rhs=Rhs ';';
+ public ExpressionElements getExpressionAccess() {
+ return pExpression;
+ }
+
+ public ParserRule getExpressionRule() {
+ return getExpressionAccess().getRule();
+ }
+
+ //Lhs:
+ // failures+=InputExpression (',' failures+=InputExpression)*;
+ public LhsElements getLhsAccess() {
+ return pLhs;
+ }
+
+ public ParserRule getLhsRule() {
+ return getLhsAccess().getRule();
+ }
+
+ //Rhs:
+ // failures+=OutputExpression (',' failures+=OutputExpression)*;
+ public RhsElements getRhsAccess() {
+ return pRhs;
+ }
+
+ public ParserRule getRhsRule() {
+ return getRhsAccess().getRule();
+ }
+
+ //InputExpression:
+ // (ref=[uml::Port] | "undefined") '.' failureExpr=InFailureExpr;
+ public InputExpressionElements getInputExpressionAccess() {
+ return pInputExpression;
+ }
+
+ public ParserRule getInputExpressionRule() {
+ return getInputExpressionAccess().getRule();
+ }
+
+ //OutputExpression:
+ // (ref=[uml::Port] | "undefined") '.' failureExpr=OutFailureExpr;
+ public OutputExpressionElements getOutputExpressionAccess() {
+ return pOutputExpression;
+ }
+
+ public ParserRule getOutputExpressionRule() {
+ return getOutputExpressionAccess().getRule();
+ }
+
+ //InFailureExpr:
+ // failures+=WildcardDefinition | failures+=NoFailureDefinition | failures+=FailureDefinition |
+ // '{' failures+=FailureDefinition (',' failures+=FailureDefinition)+ '}' | failures+=VariableDefinition;
+ public InFailureExprElements getInFailureExprAccess() {
+ return pInFailureExpr;
+ }
+
+ public ParserRule getInFailureExprRule() {
+ return getInFailureExprAccess().getRule();
+ }
+
+ //OutFailureExpr:
+ // failures+=NoFailureDefinition | failures+=ComplexNofailureDefinition | failures+=FailureDefinition |
+ // '{' failures+=FailureDefinition (',' failures+=FailureDefinition)+ '}' | failures+=VariableDefinition;
+ public OutFailureExprElements getOutFailureExprAccess() {
+ return pOutFailureExpr;
+ }
+
+ public ParserRule getOutFailureExprRule() {
+ return getOutFailureExprAccess().getRule();
+ }
+
+ //Definitions:
+ // FailureDefinition | NoFailureDefinition | ComplexNofailureDefinition | WildcardDefinition | VariableDefinition;
+ public DefinitionsElements getDefinitionsAccess() {
+ return pDefinitions;
+ }
+
+ public ParserRule getDefinitionsRule() {
+ return getDefinitionsAccess().getRule();
+ }
+
+ //FailureDefinition:
+ // {FailureDefinition} type=ActualFailureType ('.' acidAvoidable=ACIDavoidable)?;
+ public FailureDefinitionElements getFailureDefinitionAccess() {
+ return pFailureDefinition;
+ }
+
+ public ParserRule getFailureDefinitionRule() {
+ return getFailureDefinitionAccess().getRule();
+ }
+
+ //NoFailureDefinition:
+ // {NoFailureDefinition} 'noFailure';
+ public NoFailureDefinitionElements getNoFailureDefinitionAccess() {
+ return pNoFailureDefinition;
+ }
+
+ public ParserRule getNoFailureDefinitionRule() {
+ return getNoFailureDefinitionAccess().getRule();
+ }
+
+ //ComplexNofailureDefinition:
+ // {NoFailureDefinition} 'noFailure' '.' acidMitigation=ACIDMitigation;
+ public ComplexNofailureDefinitionElements getComplexNofailureDefinitionAccess() {
+ return pComplexNofailureDefinition;
+ }
+
+ public ParserRule getComplexNofailureDefinitionRule() {
+ return getComplexNofailureDefinitionAccess().getRule();
+ }
+
+ //WildcardDefinition:
+ // {WildcardDefinition} 'wildcard';
+ public WildcardDefinitionElements getWildcardDefinitionAccess() {
+ return pWildcardDefinition;
+ }
+
+ public ParserRule getWildcardDefinitionRule() {
+ return getWildcardDefinitionAccess().getRule();
+ }
+
+ //VariableDefinition:
+ // {VariableDefinition} variableName=ID;
+ public VariableDefinitionElements getVariableDefinitionAccess() {
+ return pVariableDefinition;
+ }
+
+ public ParserRule getVariableDefinitionRule() {
+ return getVariableDefinitionAccess().getRule();
+ }
+
+ //enum FailureType:
+ // NO_FAILURE='noFailure' | EARLY='early' | LATE='late' | COMMISSION='commission' | OMISSION='omission' |
+ // VALUE_SUBTLE='valueSubtle' | VALUE_COARSE='valueCoarse' | WILDCARD="wildcard" | VARIABLE='variable';
+ public FailureTypeElements getFailureTypeAccess() {
+ return eFailureType;
+ }
+
+ public EnumRule getFailureTypeRule() {
+ return getFailureTypeAccess().getRule();
+ }
+
+ //enum ActualFailureType returns FailureType:
+ // EARLY="early" | LATE="late" | COMMISSION="commission" | OMISSION="omission" | VALUE_SUBTLE="valueSubtle" |
+ // VALUE_COARSE="valueCoarse";
+ public ActualFailureTypeElements getActualFailureTypeAccess() {
+ return eActualFailureType;
+ }
+
+ public EnumRule getActualFailureTypeRule() {
+ return getActualFailureTypeAccess().getRule();
+ }
+
+ //enum NoFailureType returns FailureType:
+ // NO_FAILURE="noFailure";
+ public NoFailureTypeElements getNoFailureTypeAccess() {
+ return eNoFailureType;
+ }
+
+ public EnumRule getNoFailureTypeRule() {
+ return getNoFailureTypeAccess().getRule();
+ }
+
+ //enum Wildcard returns FailureType:
+ // WILDCARD="wildcard";
+ public WildcardElements getWildcardAccess() {
+ return eWildcard;
+ }
+
+ public EnumRule getWildcardRule() {
+ return getWildcardAccess().getRule();
+ }
+
+ //ACIDavoidable:
+ // a=Aavoidable '.' c=Cavoidable '.' i=Iavoidable '.' d=Davoidable;
+ public ACIDavoidableElements getACIDavoidableAccess() {
+ return pACIDavoidable;
+ }
+
+ public ParserRule getACIDavoidableRule() {
+ return getACIDavoidableAccess().getRule();
+ }
+
+ //enum Aavoidable:
+ // INCOMPLETION='incompletion' | NONE='none' | UNSPECIFIED='unspecified';
+ public AavoidableElements getAavoidableAccess() {
+ return eAavoidable;
+ }
+
+ public EnumRule getAavoidableRule() {
+ return getAavoidableAccess().getRule();
+ }
+
+ //enum Cavoidable:
+ // INCONSISTENCY='inconsistency' | NONE='none' | UNSPECIFIED='unspecified';
+ public CavoidableElements getCavoidableAccess() {
+ return eCavoidable;
+ }
+
+ public EnumRule getCavoidableRule() {
+ return getCavoidableAccess().getRule();
+ }
+
+ //enum Iavoidable:
+ // INTERFERENCE='interference' | NONE='none' | UNSPECIFIED='unspecified';
+ public IavoidableElements getIavoidableAccess() {
+ return eIavoidable;
+ }
+
+ public EnumRule getIavoidableRule() {
+ return getIavoidableAccess().getRule();
+ }
+
+ //enum Davoidable:
+ // IMPERMANENCE='impermanence' | NONE='none' | UNSPECIFIED='unspecified';
+ public DavoidableElements getDavoidableAccess() {
+ return eDavoidable;
+ }
+
+ public EnumRule getDavoidableRule() {
+ return getDavoidableAccess().getRule();
+ }
+
+ //ACIDMitigation:
+ // a=Amitigation '.' c=Cmitigation '.' i=Imitigation '.' d=Dmitigation;
+ public ACIDMitigationElements getACIDMitigationAccess() {
+ return pACIDMitigation;
+ }
+
+ public ParserRule getACIDMitigationRule() {
+ return getACIDMitigationAccess().getRule();
+ }
+
+ //enum Amitigation:
+ // ALL_OR_NOTHING='all_or_nothing' | ALL_OR_COMPENSATION='all_or_compensation' | NONE='none' |
+ // UNSPECIFIED='unspecified';
+ public AmitigationElements getAmitigationAccess() {
+ return eAmitigation;
+ }
+
+ public EnumRule getAmitigationRule() {
+ return getAmitigationAccess().getRule();
+ }
+
+ //enum Cmitigation:
+ // FULL_CONSISTENCY='full_consistency' | RANGE_VIOLATION_ALLOWED='range_violation_allowed' | NONE='none' |
+ // UNSPECIFIED='unspecified';
+ public CmitigationElements getCmitigationAccess() {
+ return eCmitigation;
+ }
+
+ public EnumRule getCmitigationRule() {
+ return getCmitigationAccess().getRule();
+ }
+
+ //enum Imitigation:
+ // SERIALIZABLE='serializable' | PORTABLE_LEVEL='portable_level' | NONE='none' | UNSPECIFIED='unspecified';
+ public ImitigationElements getImitigationAccess() {
+ return eImitigation;
+ }
+
+ public EnumRule getImitigationRule() {
+ return getImitigationAccess().getRule();
+ }
+
+ //enum Dmitigation:
+ // NO_LOSS='no_loss' | PARTIAL_LOSS_ALLOWED='partial_loss_allowed' | NONE='none' | UNSPECIFIED='unspecified';
+ public DmitigationElements getDmitigationAccess() {
+ return eDmitigation;
+ }
+
+ public EnumRule getDmitigationRule() {
+ return getDmitigationAccess().getRule();
+ }
+
+ ///*
+ // * Additional rule to refer UML elements in a Model
+ // */ FQN:
+ // ID ('::' ID)*;
+ public FQNElements getFQNAccess() {
+ return pFQN;
+ }
+
+ public ParserRule getFQNRule() {
+ return getFQNAccess().getRule();
+ }
+
+ //terminal ID:
+ // '^'? ('a'..'z' | 'A'..'Z' | '_') ('a'..'z' | 'A'..'Z' | '_' | '0'..'9')*;
+ public TerminalRule getIDRule() {
+ return gaTerminals.getIDRule();
+ }
+
+ //terminal INT returns ecore::EInt:
+ // '0'..'9'+;
+ public TerminalRule getINTRule() {
+ return gaTerminals.getINTRule();
+ }
+
+ //terminal STRING:
+ // '"' ('\\' . | !('\\' | '"'))* '"' | "'" ('\\' . | !('\\' | "'"))* "'";
+ public TerminalRule getSTRINGRule() {
+ return gaTerminals.getSTRINGRule();
+ }
+
+ //terminal ML_COMMENT:
+ // '/*'->'*/';
+ public TerminalRule getML_COMMENTRule() {
+ return gaTerminals.getML_COMMENTRule();
+ }
+
+ //terminal SL_COMMENT:
+ // '//' !('\n' | '\r')* ('\r'? '\n')?;
+ public TerminalRule getSL_COMMENTRule() {
+ return gaTerminals.getSL_COMMENTRule();
+ }
+
+ //terminal WS:
+ // ' ' | '\t' | '\r' | '\n'+;
+ public TerminalRule getWSRule() {
+ return gaTerminals.getWSRule();
+ }
+
+ //terminal ANY_OTHER:
+ // .;
+ public TerminalRule getANY_OTHERRule() {
+ return gaTerminals.getANY_OTHERRule();
+ }
+}
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/validation/AbstractFlaDslValidator.java b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/validation/AbstractFlaDslValidator.java
new file mode 100644
index 0000000..b4a870a
--- /dev/null
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/validation/AbstractFlaDslValidator.java
@@ -0,0 +1,20 @@
+/*
+ * generated by Xtext
+ */
+package org.polarsys.chess.xtext.validation;
+
+import java.util.ArrayList;
+import java.util.List;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.xtext.validation.ComposedChecks;
+
+@ComposedChecks(validators= {org.eclipse.xtext.validation.ImportUriValidator.class})
+public class AbstractFlaDslValidator extends org.eclipse.xtext.validation.AbstractDeclarativeValidator {
+
+ @Override
+ protected List<EPackage> getEPackages() {
+ List<EPackage> result = new ArrayList<EPackage>();
+ result.add(org.polarsys.chess.xtext.flaDsl.FlaDslPackage.eINSTANCE);
+ return result;
+ }
+}
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl/src/org/polarsys/chess/xtext/FlaDslRuntimeModule.java b/plugins/fla/org.polarsys.chess.xtext.fladsl/src/org/polarsys/chess/xtext/FlaDslRuntimeModule.java
index a8947c6..6af7490 100644
--- a/plugins/fla/org.polarsys.chess.xtext.fladsl/src/org/polarsys/chess/xtext/FlaDslRuntimeModule.java
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl/src/org/polarsys/chess/xtext/FlaDslRuntimeModule.java
@@ -1,21 +1,6 @@
/*
* generated by Xtext
*/
-/*------------------------------------------------------------------------------
- -
- - Copyright (c) 2013, 2015 Intecs SpA
- - All rights reserved. This program and the accompanying materials
- - are made available under the terms of the Eclipse Public License v1.0
- - which accompanies this distribution, and is available at
- - http://www.eclipse.org/legal/epl-v10.html
- -
- - Contributors:
- -
- - Stefano Puri stefano.puri@intecs.it
- -
- - Initial API and implementation and/or initial documentation
- ------------------------------------------------------------------------------*/
-
package org.polarsys.chess.xtext;
/**
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl/src/org/polarsys/chess/xtext/FlaDslStandaloneSetup.java b/plugins/fla/org.polarsys.chess.xtext.fladsl/src/org/polarsys/chess/xtext/FlaDslStandaloneSetup.java
index 677c2fd..632413a 100644
--- a/plugins/fla/org.polarsys.chess.xtext.fladsl/src/org/polarsys/chess/xtext/FlaDslStandaloneSetup.java
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl/src/org/polarsys/chess/xtext/FlaDslStandaloneSetup.java
@@ -1,25 +1,8 @@
/*
* generated by Xtext
*/
-/*------------------------------------------------------------------------------
- -
- - Copyright (c) 2013, 2015 Intecs SpA
- - All rights reserved. This program and the accompanying materials
- - are made available under the terms of the Eclipse Public License v1.0
- - which accompanies this distribution, and is available at
- - http://www.eclipse.org/legal/epl-v10.html
- -
- - Contributors:
- -
- - Stefano Puri stefano.puri@intecs.it
- -
- - Initial API and implementation and/or initial documentation
- ------------------------------------------------------------------------------*/
-
package org.polarsys.chess.xtext;
-import org.polarsys.chess.xtext.FlaDslStandaloneSetupGenerated;
-
/**
* Initialization support for running Xtext languages
* without equinox extension registry
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl/src/org/polarsys/chess/xtext/validation/FlaDslValidator.xtend b/plugins/fla/org.polarsys.chess.xtext.fladsl/src/org/polarsys/chess/xtext/validation/FlaDslValidator.xtend
index 6ed29cd..f5e9df4 100644
--- a/plugins/fla/org.polarsys.chess.xtext.fladsl/src/org/polarsys/chess/xtext/validation/FlaDslValidator.xtend
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl/src/org/polarsys/chess/xtext/validation/FlaDslValidator.xtend
@@ -25,7 +25,7 @@
*
* See https://www.eclipse.org/Xtext/documentation/303_runtime_concepts.html#validation
*/
-class FlaDslValidator extends AbstractFlaDslValidator {
+class FlaDslValidator {
// public static val INVALID_NAME = 'invalidName'
//
diff --git a/plugins/org.polarsys.chess.commands/src/org/polarsys/chess/commands/ShowRTInformationCommand.java b/plugins/org.polarsys.chess.commands/src/org/polarsys/chess/commands/ShowRTInformationCommand.java
index b2b187f..b88d9db 100644
--- a/plugins/org.polarsys.chess.commands/src/org/polarsys/chess/commands/ShowRTInformationCommand.java
+++ b/plugins/org.polarsys.chess.commands/src/org/polarsys/chess/commands/ShowRTInformationCommand.java
@@ -122,7 +122,10 @@
if (temp instanceof BasicCompartmentImpl){
Iterator iter2 = ((BasicCompartmentImpl) temp).getPersistedChildren().iterator();
while (iter2.hasNext()){
- showHideRT((Shape)iter2.next(), visibility);
+ Object obj = iter2.next();
+ if(obj instanceof Shape){
+ showHideRT((Shape)obj, visibility);
+ }
}
}
}