aboutsummaryrefslogtreecommitdiffstats
path: root/Solvers/Alloy-Solver/hu.bme.mit.inf.dslreasoner.alloy.language
diff options
context:
space:
mode:
Diffstat (limited to 'Solvers/Alloy-Solver/hu.bme.mit.inf.dslreasoner.alloy.language')
-rw-r--r--Solvers/Alloy-Solver/hu.bme.mit.inf.dslreasoner.alloy.language/model/generated/AlloyLanguage.ecore5
-rw-r--r--Solvers/Alloy-Solver/hu.bme.mit.inf.dslreasoner.alloy.language/model/generated/AlloyLanguage.genmodel7
-rw-r--r--Solvers/Alloy-Solver/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/AlloyLanguage.xtextbinbin9769 -> 10013 bytes
-rw-r--r--Solvers/Alloy-Solver/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSString.java18
-rw-r--r--Solvers/Alloy-Solver/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSStringLiteral.java50
-rw-r--r--Solvers/Alloy-Solver/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSStringScope.java18
-rw-r--r--Solvers/Alloy-Solver/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/AlloyLanguageFactory.java27
-rw-r--r--Solvers/Alloy-Solver/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/AlloyLanguagePackage.java226
-rw-r--r--Solvers/Alloy-Solver/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSStringImpl.java40
-rw-r--r--Solvers/Alloy-Solver/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSStringLiteralImpl.java176
-rw-r--r--Solvers/Alloy-Solver/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSStringScopeImpl.java40
-rw-r--r--Solvers/Alloy-Solver/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/AlloyLanguageFactoryImpl.java36
-rw-r--r--Solvers/Alloy-Solver/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/AlloyLanguagePackageImpl.java81
-rw-r--r--Solvers/Alloy-Solver/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/util/AlloyLanguageAdapterFactory.java60
-rw-r--r--Solvers/Alloy-Solver/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/util/AlloyLanguageSwitch.java72
-rw-r--r--Solvers/Alloy-Solver/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/parser/antlr/internal/InternalAlloyLanguage.g121
-rw-r--r--Solvers/Alloy-Solver/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/parser/antlr/internal/InternalAlloyLanguage.tokens34
-rw-r--r--Solvers/Alloy-Solver/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/parser/antlr/internal/InternalAlloyLanguageLexer.java494
-rw-r--r--Solvers/Alloy-Solver/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/parser/antlr/internal/InternalAlloyLanguageParser.java697
-rw-r--r--Solvers/Alloy-Solver/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/serializer/AlloyLanguageSemanticSequencer.java135
-rw-r--r--Solvers/Alloy-Solver/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/serializer/AlloyLanguageSyntacticSequencer.java32
-rw-r--r--Solvers/Alloy-Solver/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/services/AlloyLanguageGrammarAccess.java220
-rw-r--r--Solvers/Alloy-Solver/hu.bme.mit.inf.dslreasoner.alloy.language/src/hu/bme/mit/inf/dslreasoner/AlloyLanguage.xtext15
-rw-r--r--Solvers/Alloy-Solver/hu.bme.mit.inf.dslreasoner.alloy.language/src/hu/bme/mit/inf/dslreasoner/formatting/AlloyLanguageFormatter.xtend4
24 files changed, 2001 insertions, 607 deletions
diff --git a/Solvers/Alloy-Solver/hu.bme.mit.inf.dslreasoner.alloy.language/model/generated/AlloyLanguage.ecore b/Solvers/Alloy-Solver/hu.bme.mit.inf.dslreasoner.alloy.language/model/generated/AlloyLanguage.ecore
index a825966e..3e88c460 100644
--- a/Solvers/Alloy-Solver/hu.bme.mit.inf.dslreasoner.alloy.language/model/generated/AlloyLanguage.ecore
+++ b/Solvers/Alloy-Solver/hu.bme.mit.inf.dslreasoner.alloy.language/model/generated/AlloyLanguage.ecore
@@ -91,6 +91,7 @@
91 <eStructuralFeatures xsi:type="ecore:EReference" name="type" eType="#//ALSSignatureDeclaration"/> 91 <eStructuralFeatures xsi:type="ecore:EReference" name="type" eType="#//ALSSignatureDeclaration"/>
92 </eClassifiers> 92 </eClassifiers>
93 <eClassifiers xsi:type="ecore:EClass" name="ALSIntScope" eSuperTypes="#//ALSTypeScope"/> 93 <eClassifiers xsi:type="ecore:EClass" name="ALSIntScope" eSuperTypes="#//ALSTypeScope"/>
94 <eClassifiers xsi:type="ecore:EClass" name="ALSStringScope" eSuperTypes="#//ALSTypeScope"/>
94 <eClassifiers xsi:type="ecore:EClass" name="ALSQuantifiedEx" eSuperTypes="#//ALSTerm"> 95 <eClassifiers xsi:type="ecore:EClass" name="ALSQuantifiedEx" eSuperTypes="#//ALSTerm">
95 <eStructuralFeatures xsi:type="ecore:EAttribute" name="type" eType="#//ALSMultiplicity"/> 96 <eStructuralFeatures xsi:type="ecore:EAttribute" name="type" eType="#//ALSMultiplicity"/>
96 <eStructuralFeatures xsi:type="ecore:EAttribute" name="disj" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/> 97 <eStructuralFeatures xsi:type="ecore:EAttribute" name="disj" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
@@ -258,10 +259,14 @@
258 <eClassifiers xsi:type="ecore:EClass" name="ALSIden" eSuperTypes="#//ALSTerm"/> 259 <eClassifiers xsi:type="ecore:EClass" name="ALSIden" eSuperTypes="#//ALSTerm"/>
259 <eClassifiers xsi:type="ecore:EClass" name="ALSUniv" eSuperTypes="#//ALSTerm"/> 260 <eClassifiers xsi:type="ecore:EClass" name="ALSUniv" eSuperTypes="#//ALSTerm"/>
260 <eClassifiers xsi:type="ecore:EClass" name="ALSInt" eSuperTypes="#//ALSTerm"/> 261 <eClassifiers xsi:type="ecore:EClass" name="ALSInt" eSuperTypes="#//ALSTerm"/>
262 <eClassifiers xsi:type="ecore:EClass" name="ALSString" eSuperTypes="#//ALSTerm"/>
261 <eClassifiers xsi:type="ecore:EClass" name="ALSReference" eSuperTypes="#//ALSTerm"> 263 <eClassifiers xsi:type="ecore:EClass" name="ALSReference" eSuperTypes="#//ALSTerm">
262 <eStructuralFeatures xsi:type="ecore:EReference" name="referred" eType="#//ALSRelationDeclaration"/> 264 <eStructuralFeatures xsi:type="ecore:EReference" name="referred" eType="#//ALSRelationDeclaration"/>
263 </eClassifiers> 265 </eClassifiers>
264 <eClassifiers xsi:type="ecore:EClass" name="ALSNumberLiteral" eSuperTypes="#//ALSTerm"> 266 <eClassifiers xsi:type="ecore:EClass" name="ALSNumberLiteral" eSuperTypes="#//ALSTerm">
265 <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/> 267 <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
266 </eClassifiers> 268 </eClassifiers>
269 <eClassifiers xsi:type="ecore:EClass" name="ALSStringLiteral" eSuperTypes="#//ALSTerm">
270 <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
271 </eClassifiers>
267</ecore:EPackage> 272</ecore:EPackage>
diff --git a/Solvers/Alloy-Solver/hu.bme.mit.inf.dslreasoner.alloy.language/model/generated/AlloyLanguage.genmodel b/Solvers/Alloy-Solver/hu.bme.mit.inf.dslreasoner.alloy.language/model/generated/AlloyLanguage.genmodel
index 97c59724..f8505d33 100644
--- a/Solvers/Alloy-Solver/hu.bme.mit.inf.dslreasoner.alloy.language/model/generated/AlloyLanguage.genmodel
+++ b/Solvers/Alloy-Solver/hu.bme.mit.inf.dslreasoner.alloy.language/model/generated/AlloyLanguage.genmodel
@@ -5,7 +5,7 @@
5 modelPluginID="hu.bme.mit.inf.dslreasoner.alloy.language" forceOverwrite="true" 5 modelPluginID="hu.bme.mit.inf.dslreasoner.alloy.language" forceOverwrite="true"
6 modelName="AlloyLanguage" updateClasspath="false" rootExtendsClass="org.eclipse.emf.ecore.impl.MinimalEObjectImpl$Container" 6 modelName="AlloyLanguage" updateClasspath="false" rootExtendsClass="org.eclipse.emf.ecore.impl.MinimalEObjectImpl$Container"
7 complianceLevel="6.0" copyrightFields="false" editPluginID="hu.bme.mit.inf.dslreasoner.alloy.language.edit" 7 complianceLevel="6.0" copyrightFields="false" editPluginID="hu.bme.mit.inf.dslreasoner.alloy.language.edit"
8 editorPluginID="hu.bme.mit.inf.dslreasoner.alloy.language.editor" runtimeVersion="2.12"> 8 editorPluginID="hu.bme.mit.inf.dslreasoner.alloy.language.editor" runtimeVersion="2.13">
9 <genPackages prefix="AlloyLanguage" basePackage="hu.bme.mit.inf.dslreasoner" disposableProviderFactory="true" 9 <genPackages prefix="AlloyLanguage" basePackage="hu.bme.mit.inf.dslreasoner" disposableProviderFactory="true"
10 fileExtensions="als" ecorePackage="AlloyLanguage.ecore#/"> 10 fileExtensions="als" ecorePackage="AlloyLanguage.ecore#/">
11 <genEnums typeSafeEnumCompatible="false" ecoreEnum="AlloyLanguage.ecore#//ALSMultiplicity"> 11 <genEnums typeSafeEnumCompatible="false" ecoreEnum="AlloyLanguage.ecore#//ALSMultiplicity">
@@ -80,6 +80,7 @@
80 <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference AlloyLanguage.ecore#//ALSSigScope/type"/> 80 <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference AlloyLanguage.ecore#//ALSSigScope/type"/>
81 </genClasses> 81 </genClasses>
82 <genClasses ecoreClass="AlloyLanguage.ecore#//ALSIntScope"/> 82 <genClasses ecoreClass="AlloyLanguage.ecore#//ALSIntScope"/>
83 <genClasses ecoreClass="AlloyLanguage.ecore#//ALSStringScope"/>
83 <genClasses ecoreClass="AlloyLanguage.ecore#//ALSQuantifiedEx"> 84 <genClasses ecoreClass="AlloyLanguage.ecore#//ALSQuantifiedEx">
84 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute AlloyLanguage.ecore#//ALSQuantifiedEx/type"/> 85 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute AlloyLanguage.ecore#//ALSQuantifiedEx/type"/>
85 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute AlloyLanguage.ecore#//ALSQuantifiedEx/disj"/> 86 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute AlloyLanguage.ecore#//ALSQuantifiedEx/disj"/>
@@ -196,11 +197,15 @@
196 <genClasses ecoreClass="AlloyLanguage.ecore#//ALSIden"/> 197 <genClasses ecoreClass="AlloyLanguage.ecore#//ALSIden"/>
197 <genClasses ecoreClass="AlloyLanguage.ecore#//ALSUniv"/> 198 <genClasses ecoreClass="AlloyLanguage.ecore#//ALSUniv"/>
198 <genClasses ecoreClass="AlloyLanguage.ecore#//ALSInt"/> 199 <genClasses ecoreClass="AlloyLanguage.ecore#//ALSInt"/>
200 <genClasses ecoreClass="AlloyLanguage.ecore#//ALSString"/>
199 <genClasses ecoreClass="AlloyLanguage.ecore#//ALSReference"> 201 <genClasses ecoreClass="AlloyLanguage.ecore#//ALSReference">
200 <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference AlloyLanguage.ecore#//ALSReference/referred"/> 202 <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference AlloyLanguage.ecore#//ALSReference/referred"/>
201 </genClasses> 203 </genClasses>
202 <genClasses ecoreClass="AlloyLanguage.ecore#//ALSNumberLiteral"> 204 <genClasses ecoreClass="AlloyLanguage.ecore#//ALSNumberLiteral">
203 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute AlloyLanguage.ecore#//ALSNumberLiteral/value"/> 205 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute AlloyLanguage.ecore#//ALSNumberLiteral/value"/>
204 </genClasses> 206 </genClasses>
207 <genClasses ecoreClass="AlloyLanguage.ecore#//ALSStringLiteral">
208 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute AlloyLanguage.ecore#//ALSStringLiteral/value"/>
209 </genClasses>
205 </genPackages> 210 </genPackages>
206</genmodel:GenModel> 211</genmodel:GenModel>
diff --git a/Solvers/Alloy-Solver/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/AlloyLanguage.xtextbin b/Solvers/Alloy-Solver/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/AlloyLanguage.xtextbin
index a1410bb7..f5684306 100644
--- a/Solvers/Alloy-Solver/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/AlloyLanguage.xtextbin
+++ b/Solvers/Alloy-Solver/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/AlloyLanguage.xtextbin
Binary files differ
diff --git a/Solvers/Alloy-Solver/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSString.java b/Solvers/Alloy-Solver/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSString.java
new file mode 100644
index 00000000..12addd5f
--- /dev/null
+++ b/Solvers/Alloy-Solver/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSString.java
@@ -0,0 +1,18 @@
1/**
2 */
3package hu.bme.mit.inf.dslreasoner.alloyLanguage;
4
5
6/**
7 * <!-- begin-user-doc -->
8 * A representation of the model object '<em><b>ALS String</b></em>'.
9 * <!-- end-user-doc -->
10 *
11 *
12 * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage#getALSString()
13 * @model
14 * @generated
15 */
16public interface ALSString extends ALSTerm
17{
18} // ALSString
diff --git a/Solvers/Alloy-Solver/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSStringLiteral.java b/Solvers/Alloy-Solver/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSStringLiteral.java
new file mode 100644
index 00000000..015319f2
--- /dev/null
+++ b/Solvers/Alloy-Solver/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSStringLiteral.java
@@ -0,0 +1,50 @@
1/**
2 */
3package hu.bme.mit.inf.dslreasoner.alloyLanguage;
4
5
6/**
7 * <!-- begin-user-doc -->
8 * A representation of the model object '<em><b>ALS String Literal</b></em>'.
9 * <!-- end-user-doc -->
10 *
11 * <p>
12 * The following features are supported:
13 * </p>
14 * <ul>
15 * <li>{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSStringLiteral#getValue <em>Value</em>}</li>
16 * </ul>
17 *
18 * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage#getALSStringLiteral()
19 * @model
20 * @generated
21 */
22public interface ALSStringLiteral extends ALSTerm
23{
24 /**
25 * Returns the value of the '<em><b>Value</b></em>' attribute.
26 * <!-- begin-user-doc -->
27 * <p>
28 * If the meaning of the '<em>Value</em>' attribute isn't clear,
29 * there really should be more of a description here...
30 * </p>
31 * <!-- end-user-doc -->
32 * @return the value of the '<em>Value</em>' attribute.
33 * @see #setValue(String)
34 * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage#getALSStringLiteral_Value()
35 * @model
36 * @generated
37 */
38 String getValue();
39
40 /**
41 * Sets the value of the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSStringLiteral#getValue <em>Value</em>}' attribute.
42 * <!-- begin-user-doc -->
43 * <!-- end-user-doc -->
44 * @param value the new value of the '<em>Value</em>' attribute.
45 * @see #getValue()
46 * @generated
47 */
48 void setValue(String value);
49
50} // ALSStringLiteral
diff --git a/Solvers/Alloy-Solver/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSStringScope.java b/Solvers/Alloy-Solver/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSStringScope.java
new file mode 100644
index 00000000..6bf0ce5b
--- /dev/null
+++ b/Solvers/Alloy-Solver/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSStringScope.java
@@ -0,0 +1,18 @@
1/**
2 */
3package hu.bme.mit.inf.dslreasoner.alloyLanguage;
4
5
6/**
7 * <!-- begin-user-doc -->
8 * A representation of the model object '<em><b>ALS String Scope</b></em>'.
9 * <!-- end-user-doc -->
10 *
11 *
12 * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage#getALSStringScope()
13 * @model
14 * @generated
15 */
16public interface ALSStringScope extends ALSTypeScope
17{
18} // ALSStringScope
diff --git a/Solvers/Alloy-Solver/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/AlloyLanguageFactory.java b/Solvers/Alloy-Solver/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/AlloyLanguageFactory.java
index 06919ba8..e2998ff6 100644
--- a/Solvers/Alloy-Solver/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/AlloyLanguageFactory.java
+++ b/Solvers/Alloy-Solver/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/AlloyLanguageFactory.java
@@ -185,6 +185,15 @@ public interface AlloyLanguageFactory extends EFactory
185 ALSIntScope createALSIntScope(); 185 ALSIntScope createALSIntScope();
186 186
187 /** 187 /**
188 * Returns a new object of class '<em>ALS String Scope</em>'.
189 * <!-- begin-user-doc -->
190 * <!-- end-user-doc -->
191 * @return a new object of class '<em>ALS String Scope</em>'.
192 * @generated
193 */
194 ALSStringScope createALSStringScope();
195
196 /**
188 * Returns a new object of class '<em>ALS Quantified Ex</em>'. 197 * Returns a new object of class '<em>ALS Quantified Ex</em>'.
189 * <!-- begin-user-doc --> 198 * <!-- begin-user-doc -->
190 * <!-- end-user-doc --> 199 * <!-- end-user-doc -->
@@ -473,6 +482,15 @@ public interface AlloyLanguageFactory extends EFactory
473 ALSInt createALSInt(); 482 ALSInt createALSInt();
474 483
475 /** 484 /**
485 * Returns a new object of class '<em>ALS String</em>'.
486 * <!-- begin-user-doc -->
487 * <!-- end-user-doc -->
488 * @return a new object of class '<em>ALS String</em>'.
489 * @generated
490 */
491 ALSString createALSString();
492
493 /**
476 * Returns a new object of class '<em>ALS Reference</em>'. 494 * Returns a new object of class '<em>ALS Reference</em>'.
477 * <!-- begin-user-doc --> 495 * <!-- begin-user-doc -->
478 * <!-- end-user-doc --> 496 * <!-- end-user-doc -->
@@ -491,6 +509,15 @@ public interface AlloyLanguageFactory extends EFactory
491 ALSNumberLiteral createALSNumberLiteral(); 509 ALSNumberLiteral createALSNumberLiteral();
492 510
493 /** 511 /**
512 * Returns a new object of class '<em>ALS String Literal</em>'.
513 * <!-- begin-user-doc -->
514 * <!-- end-user-doc -->
515 * @return a new object of class '<em>ALS String Literal</em>'.
516 * @generated
517 */
518 ALSStringLiteral createALSStringLiteral();
519
520 /**
494 * Returns the package supported by this factory. 521 * Returns the package supported by this factory.
495 * <!-- begin-user-doc --> 522 * <!-- begin-user-doc -->
496 * <!-- end-user-doc --> 523 * <!-- end-user-doc -->
diff --git a/Solvers/Alloy-Solver/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/AlloyLanguagePackage.java b/Solvers/Alloy-Solver/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/AlloyLanguagePackage.java
index 50e3d607..38d225e3 100644
--- a/Solvers/Alloy-Solver/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/AlloyLanguagePackage.java
+++ b/Solvers/Alloy-Solver/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/AlloyLanguagePackage.java
@@ -769,6 +769,34 @@ public interface AlloyLanguagePackage extends EPackage
769 int ALS_INT_SCOPE_FEATURE_COUNT = ALS_TYPE_SCOPE_FEATURE_COUNT + 0; 769 int ALS_INT_SCOPE_FEATURE_COUNT = ALS_TYPE_SCOPE_FEATURE_COUNT + 0;
770 770
771 /** 771 /**
772 * The meta object id for the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSStringScopeImpl <em>ALS String Scope</em>}' class.
773 * <!-- begin-user-doc -->
774 * <!-- end-user-doc -->
775 * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSStringScopeImpl
776 * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSStringScope()
777 * @generated
778 */
779 int ALS_STRING_SCOPE = 18;
780
781 /**
782 * The feature id for the '<em><b>Number</b></em>' attribute.
783 * <!-- begin-user-doc -->
784 * <!-- end-user-doc -->
785 * @generated
786 * @ordered
787 */
788 int ALS_STRING_SCOPE__NUMBER = ALS_TYPE_SCOPE__NUMBER;
789
790 /**
791 * The number of structural features of the '<em>ALS String Scope</em>' class.
792 * <!-- begin-user-doc -->
793 * <!-- end-user-doc -->
794 * @generated
795 * @ordered
796 */
797 int ALS_STRING_SCOPE_FEATURE_COUNT = ALS_TYPE_SCOPE_FEATURE_COUNT + 0;
798
799 /**
772 * The meta object id for the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSQuantifiedExImpl <em>ALS Quantified Ex</em>}' class. 800 * The meta object id for the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSQuantifiedExImpl <em>ALS Quantified Ex</em>}' class.
773 * <!-- begin-user-doc --> 801 * <!-- begin-user-doc -->
774 * <!-- end-user-doc --> 802 * <!-- end-user-doc -->
@@ -776,7 +804,7 @@ public interface AlloyLanguagePackage extends EPackage
776 * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSQuantifiedEx() 804 * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSQuantifiedEx()
777 * @generated 805 * @generated
778 */ 806 */
779 int ALS_QUANTIFIED_EX = 18; 807 int ALS_QUANTIFIED_EX = 19;
780 808
781 /** 809 /**
782 * The feature id for the '<em><b>Type</b></em>' attribute. 810 * The feature id for the '<em><b>Type</b></em>' attribute.
@@ -831,7 +859,7 @@ public interface AlloyLanguagePackage extends EPackage
831 * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSOr() 859 * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSOr()
832 * @generated 860 * @generated
833 */ 861 */
834 int ALS_OR = 19; 862 int ALS_OR = 20;
835 863
836 /** 864 /**
837 * The feature id for the '<em><b>Left Operand</b></em>' containment reference. 865 * The feature id for the '<em><b>Left Operand</b></em>' containment reference.
@@ -868,7 +896,7 @@ public interface AlloyLanguagePackage extends EPackage
868 * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSIff() 896 * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSIff()
869 * @generated 897 * @generated
870 */ 898 */
871 int ALS_IFF = 20; 899 int ALS_IFF = 21;
872 900
873 /** 901 /**
874 * The feature id for the '<em><b>Left Operand</b></em>' containment reference. 902 * The feature id for the '<em><b>Left Operand</b></em>' containment reference.
@@ -905,7 +933,7 @@ public interface AlloyLanguagePackage extends EPackage
905 * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSImpl() 933 * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSImpl()
906 * @generated 934 * @generated
907 */ 935 */
908 int ALS_IMPL = 21; 936 int ALS_IMPL = 22;
909 937
910 /** 938 /**
911 * The feature id for the '<em><b>Left Operand</b></em>' containment reference. 939 * The feature id for the '<em><b>Left Operand</b></em>' containment reference.
@@ -951,7 +979,7 @@ public interface AlloyLanguagePackage extends EPackage
951 * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSAnd() 979 * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSAnd()
952 * @generated 980 * @generated
953 */ 981 */
954 int ALS_AND = 22; 982 int ALS_AND = 23;
955 983
956 /** 984 /**
957 * The feature id for the '<em><b>Left Operand</b></em>' containment reference. 985 * The feature id for the '<em><b>Left Operand</b></em>' containment reference.
@@ -988,7 +1016,7 @@ public interface AlloyLanguagePackage extends EPackage
988 * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSEquals() 1016 * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSEquals()
989 * @generated 1017 * @generated
990 */ 1018 */
991 int ALS_EQUALS = 23; 1019 int ALS_EQUALS = 24;
992 1020
993 /** 1021 /**
994 * The feature id for the '<em><b>Left Operand</b></em>' containment reference. 1022 * The feature id for the '<em><b>Left Operand</b></em>' containment reference.
@@ -1025,7 +1053,7 @@ public interface AlloyLanguagePackage extends EPackage
1025 * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSNotEquals() 1053 * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSNotEquals()
1026 * @generated 1054 * @generated
1027 */ 1055 */
1028 int ALS_NOT_EQUALS = 24; 1056 int ALS_NOT_EQUALS = 25;
1029 1057
1030 /** 1058 /**
1031 * The feature id for the '<em><b>Left Operand</b></em>' containment reference. 1059 * The feature id for the '<em><b>Left Operand</b></em>' containment reference.
@@ -1062,7 +1090,7 @@ public interface AlloyLanguagePackage extends EPackage
1062 * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSSubset() 1090 * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSSubset()
1063 * @generated 1091 * @generated
1064 */ 1092 */
1065 int ALS_SUBSET = 25; 1093 int ALS_SUBSET = 26;
1066 1094
1067 /** 1095 /**
1068 * The feature id for the '<em><b>Left Operand</b></em>' containment reference. 1096 * The feature id for the '<em><b>Left Operand</b></em>' containment reference.
@@ -1099,7 +1127,7 @@ public interface AlloyLanguagePackage extends EPackage
1099 * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSLess() 1127 * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSLess()
1100 * @generated 1128 * @generated
1101 */ 1129 */
1102 int ALS_LESS = 26; 1130 int ALS_LESS = 27;
1103 1131
1104 /** 1132 /**
1105 * The feature id for the '<em><b>Left Operand</b></em>' containment reference. 1133 * The feature id for the '<em><b>Left Operand</b></em>' containment reference.
@@ -1136,7 +1164,7 @@ public interface AlloyLanguagePackage extends EPackage
1136 * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSLeq() 1164 * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSLeq()
1137 * @generated 1165 * @generated
1138 */ 1166 */
1139 int ALS_LEQ = 27; 1167 int ALS_LEQ = 28;
1140 1168
1141 /** 1169 /**
1142 * The feature id for the '<em><b>Left Operand</b></em>' containment reference. 1170 * The feature id for the '<em><b>Left Operand</b></em>' containment reference.
@@ -1173,7 +1201,7 @@ public interface AlloyLanguagePackage extends EPackage
1173 * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSMore() 1201 * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSMore()
1174 * @generated 1202 * @generated
1175 */ 1203 */
1176 int ALS_MORE = 28; 1204 int ALS_MORE = 29;
1177 1205
1178 /** 1206 /**
1179 * The feature id for the '<em><b>Left Operand</b></em>' containment reference. 1207 * The feature id for the '<em><b>Left Operand</b></em>' containment reference.
@@ -1210,7 +1238,7 @@ public interface AlloyLanguagePackage extends EPackage
1210 * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSMeq() 1238 * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSMeq()
1211 * @generated 1239 * @generated
1212 */ 1240 */
1213 int ALS_MEQ = 29; 1241 int ALS_MEQ = 30;
1214 1242
1215 /** 1243 /**
1216 * The feature id for the '<em><b>Left Operand</b></em>' containment reference. 1244 * The feature id for the '<em><b>Left Operand</b></em>' containment reference.
@@ -1247,7 +1275,7 @@ public interface AlloyLanguagePackage extends EPackage
1247 * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSOverride() 1275 * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSOverride()
1248 * @generated 1276 * @generated
1249 */ 1277 */
1250 int ALS_OVERRIDE = 30; 1278 int ALS_OVERRIDE = 31;
1251 1279
1252 /** 1280 /**
1253 * The feature id for the '<em><b>Left Operand</b></em>' containment reference. 1281 * The feature id for the '<em><b>Left Operand</b></em>' containment reference.
@@ -1284,7 +1312,7 @@ public interface AlloyLanguagePackage extends EPackage
1284 * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSRangeRestrictionRight() 1312 * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSRangeRestrictionRight()
1285 * @generated 1313 * @generated
1286 */ 1314 */
1287 int ALS_RANGE_RESTRICTION_RIGHT = 31; 1315 int ALS_RANGE_RESTRICTION_RIGHT = 32;
1288 1316
1289 /** 1317 /**
1290 * The feature id for the '<em><b>Relation</b></em>' containment reference. 1318 * The feature id for the '<em><b>Relation</b></em>' containment reference.
@@ -1321,7 +1349,7 @@ public interface AlloyLanguagePackage extends EPackage
1321 * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSRangeRestrictionLeft() 1349 * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSRangeRestrictionLeft()
1322 * @generated 1350 * @generated
1323 */ 1351 */
1324 int ALS_RANGE_RESTRICTION_LEFT = 32; 1352 int ALS_RANGE_RESTRICTION_LEFT = 33;
1325 1353
1326 /** 1354 /**
1327 * The feature id for the '<em><b>Filter</b></em>' containment reference. 1355 * The feature id for the '<em><b>Filter</b></em>' containment reference.
@@ -1358,7 +1386,7 @@ public interface AlloyLanguagePackage extends EPackage
1358 * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSJoin() 1386 * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSJoin()
1359 * @generated 1387 * @generated
1360 */ 1388 */
1361 int ALS_JOIN = 33; 1389 int ALS_JOIN = 34;
1362 1390
1363 /** 1391 /**
1364 * The feature id for the '<em><b>Left Operand</b></em>' containment reference. 1392 * The feature id for the '<em><b>Left Operand</b></em>' containment reference.
@@ -1395,7 +1423,7 @@ public interface AlloyLanguagePackage extends EPackage
1395 * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSMinus() 1423 * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSMinus()
1396 * @generated 1424 * @generated
1397 */ 1425 */
1398 int ALS_MINUS = 34; 1426 int ALS_MINUS = 35;
1399 1427
1400 /** 1428 /**
1401 * The feature id for the '<em><b>Left Operand</b></em>' containment reference. 1429 * The feature id for the '<em><b>Left Operand</b></em>' containment reference.
@@ -1432,7 +1460,7 @@ public interface AlloyLanguagePackage extends EPackage
1432 * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSPlus() 1460 * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSPlus()
1433 * @generated 1461 * @generated
1434 */ 1462 */
1435 int ALS_PLUS = 35; 1463 int ALS_PLUS = 36;
1436 1464
1437 /** 1465 /**
1438 * The feature id for the '<em><b>Left Operand</b></em>' containment reference. 1466 * The feature id for the '<em><b>Left Operand</b></em>' containment reference.
@@ -1469,7 +1497,7 @@ public interface AlloyLanguagePackage extends EPackage
1469 * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSIntersection() 1497 * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSIntersection()
1470 * @generated 1498 * @generated
1471 */ 1499 */
1472 int ALS_INTERSECTION = 36; 1500 int ALS_INTERSECTION = 37;
1473 1501
1474 /** 1502 /**
1475 * The feature id for the '<em><b>Left Operand</b></em>' containment reference. 1503 * The feature id for the '<em><b>Left Operand</b></em>' containment reference.
@@ -1506,7 +1534,7 @@ public interface AlloyLanguagePackage extends EPackage
1506 * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSDirectProduct() 1534 * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSDirectProduct()
1507 * @generated 1535 * @generated
1508 */ 1536 */
1509 int ALS_DIRECT_PRODUCT = 37; 1537 int ALS_DIRECT_PRODUCT = 38;
1510 1538
1511 /** 1539 /**
1512 * The feature id for the '<em><b>Left Operand</b></em>' containment reference. 1540 * The feature id for the '<em><b>Left Operand</b></em>' containment reference.
@@ -1561,7 +1589,7 @@ public interface AlloyLanguagePackage extends EPackage
1561 * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSNot() 1589 * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSNot()
1562 * @generated 1590 * @generated
1563 */ 1591 */
1564 int ALS_NOT = 38; 1592 int ALS_NOT = 39;
1565 1593
1566 /** 1594 /**
1567 * The feature id for the '<em><b>Operand</b></em>' containment reference. 1595 * The feature id for the '<em><b>Operand</b></em>' containment reference.
@@ -1589,7 +1617,7 @@ public interface AlloyLanguagePackage extends EPackage
1589 * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSInverseRelation() 1617 * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSInverseRelation()
1590 * @generated 1618 * @generated
1591 */ 1619 */
1592 int ALS_INVERSE_RELATION = 39; 1620 int ALS_INVERSE_RELATION = 40;
1593 1621
1594 /** 1622 /**
1595 * The feature id for the '<em><b>Operand</b></em>' containment reference. 1623 * The feature id for the '<em><b>Operand</b></em>' containment reference.
@@ -1617,7 +1645,7 @@ public interface AlloyLanguagePackage extends EPackage
1617 * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getAlSTransitiveClosure() 1645 * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getAlSTransitiveClosure()
1618 * @generated 1646 * @generated
1619 */ 1647 */
1620 int AL_STRANSITIVE_CLOSURE = 40; 1648 int AL_STRANSITIVE_CLOSURE = 41;
1621 1649
1622 /** 1650 /**
1623 * The feature id for the '<em><b>Operand</b></em>' containment reference. 1651 * The feature id for the '<em><b>Operand</b></em>' containment reference.
@@ -1645,7 +1673,7 @@ public interface AlloyLanguagePackage extends EPackage
1645 * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSReflectiveTransitiveClosure() 1673 * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSReflectiveTransitiveClosure()
1646 * @generated 1674 * @generated
1647 */ 1675 */
1648 int ALS_REFLECTIVE_TRANSITIVE_CLOSURE = 41; 1676 int ALS_REFLECTIVE_TRANSITIVE_CLOSURE = 42;
1649 1677
1650 /** 1678 /**
1651 * The feature id for the '<em><b>Operand</b></em>' containment reference. 1679 * The feature id for the '<em><b>Operand</b></em>' containment reference.
@@ -1673,7 +1701,7 @@ public interface AlloyLanguagePackage extends EPackage
1673 * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSCardinality() 1701 * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSCardinality()
1674 * @generated 1702 * @generated
1675 */ 1703 */
1676 int ALS_CARDINALITY = 42; 1704 int ALS_CARDINALITY = 43;
1677 1705
1678 /** 1706 /**
1679 * The feature id for the '<em><b>Operand</b></em>' containment reference. 1707 * The feature id for the '<em><b>Operand</b></em>' containment reference.
@@ -1701,7 +1729,7 @@ public interface AlloyLanguagePackage extends EPackage
1701 * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSUnaryMinus() 1729 * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSUnaryMinus()
1702 * @generated 1730 * @generated
1703 */ 1731 */
1704 int ALS_UNARY_MINUS = 43; 1732 int ALS_UNARY_MINUS = 44;
1705 1733
1706 /** 1734 /**
1707 * The feature id for the '<em><b>Operand</b></em>' containment reference. 1735 * The feature id for the '<em><b>Operand</b></em>' containment reference.
@@ -1729,7 +1757,7 @@ public interface AlloyLanguagePackage extends EPackage
1729 * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSSum() 1757 * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSSum()
1730 * @generated 1758 * @generated
1731 */ 1759 */
1732 int ALS_SUM = 44; 1760 int ALS_SUM = 45;
1733 1761
1734 /** 1762 /**
1735 * The feature id for the '<em><b>Variables</b></em>' containment reference list. 1763 * The feature id for the '<em><b>Variables</b></em>' containment reference list.
@@ -1766,7 +1794,7 @@ public interface AlloyLanguagePackage extends EPackage
1766 * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSFunctionCall() 1794 * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSFunctionCall()
1767 * @generated 1795 * @generated
1768 */ 1796 */
1769 int ALS_FUNCTION_CALL = 45; 1797 int ALS_FUNCTION_CALL = 46;
1770 1798
1771 /** 1799 /**
1772 * The feature id for the '<em><b>Referred Definition</b></em>' reference. 1800 * The feature id for the '<em><b>Referred Definition</b></em>' reference.
@@ -1812,7 +1840,7 @@ public interface AlloyLanguagePackage extends EPackage
1812 * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSNone() 1840 * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSNone()
1813 * @generated 1841 * @generated
1814 */ 1842 */
1815 int ALS_NONE = 46; 1843 int ALS_NONE = 47;
1816 1844
1817 /** 1845 /**
1818 * The number of structural features of the '<em>ALS None</em>' class. 1846 * The number of structural features of the '<em>ALS None</em>' class.
@@ -1831,7 +1859,7 @@ public interface AlloyLanguagePackage extends EPackage
1831 * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSIden() 1859 * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSIden()
1832 * @generated 1860 * @generated
1833 */ 1861 */
1834 int ALS_IDEN = 47; 1862 int ALS_IDEN = 48;
1835 1863
1836 /** 1864 /**
1837 * The number of structural features of the '<em>ALS Iden</em>' class. 1865 * The number of structural features of the '<em>ALS Iden</em>' class.
@@ -1850,7 +1878,7 @@ public interface AlloyLanguagePackage extends EPackage
1850 * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSUniv() 1878 * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSUniv()
1851 * @generated 1879 * @generated
1852 */ 1880 */
1853 int ALS_UNIV = 48; 1881 int ALS_UNIV = 49;
1854 1882
1855 /** 1883 /**
1856 * The number of structural features of the '<em>ALS Univ</em>' class. 1884 * The number of structural features of the '<em>ALS Univ</em>' class.
@@ -1869,7 +1897,7 @@ public interface AlloyLanguagePackage extends EPackage
1869 * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSInt() 1897 * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSInt()
1870 * @generated 1898 * @generated
1871 */ 1899 */
1872 int ALS_INT = 49; 1900 int ALS_INT = 50;
1873 1901
1874 /** 1902 /**
1875 * The number of structural features of the '<em>ALS Int</em>' class. 1903 * The number of structural features of the '<em>ALS Int</em>' class.
@@ -1881,6 +1909,25 @@ public interface AlloyLanguagePackage extends EPackage
1881 int ALS_INT_FEATURE_COUNT = ALS_TERM_FEATURE_COUNT + 0; 1909 int ALS_INT_FEATURE_COUNT = ALS_TERM_FEATURE_COUNT + 0;
1882 1910
1883 /** 1911 /**
1912 * The meta object id for the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSStringImpl <em>ALS String</em>}' class.
1913 * <!-- begin-user-doc -->
1914 * <!-- end-user-doc -->
1915 * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSStringImpl
1916 * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSString()
1917 * @generated
1918 */
1919 int ALS_STRING = 51;
1920
1921 /**
1922 * The number of structural features of the '<em>ALS String</em>' class.
1923 * <!-- begin-user-doc -->
1924 * <!-- end-user-doc -->
1925 * @generated
1926 * @ordered
1927 */
1928 int ALS_STRING_FEATURE_COUNT = ALS_TERM_FEATURE_COUNT + 0;
1929
1930 /**
1884 * The meta object id for the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSReferenceImpl <em>ALS Reference</em>}' class. 1931 * The meta object id for the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSReferenceImpl <em>ALS Reference</em>}' class.
1885 * <!-- begin-user-doc --> 1932 * <!-- begin-user-doc -->
1886 * <!-- end-user-doc --> 1933 * <!-- end-user-doc -->
@@ -1888,7 +1935,7 @@ public interface AlloyLanguagePackage extends EPackage
1888 * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSReference() 1935 * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSReference()
1889 * @generated 1936 * @generated
1890 */ 1937 */
1891 int ALS_REFERENCE = 50; 1938 int ALS_REFERENCE = 52;
1892 1939
1893 /** 1940 /**
1894 * The feature id for the '<em><b>Referred</b></em>' reference. 1941 * The feature id for the '<em><b>Referred</b></em>' reference.
@@ -1916,7 +1963,7 @@ public interface AlloyLanguagePackage extends EPackage
1916 * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSNumberLiteral() 1963 * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSNumberLiteral()
1917 * @generated 1964 * @generated
1918 */ 1965 */
1919 int ALS_NUMBER_LITERAL = 51; 1966 int ALS_NUMBER_LITERAL = 53;
1920 1967
1921 /** 1968 /**
1922 * The feature id for the '<em><b>Value</b></em>' attribute. 1969 * The feature id for the '<em><b>Value</b></em>' attribute.
@@ -1937,6 +1984,34 @@ public interface AlloyLanguagePackage extends EPackage
1937 int ALS_NUMBER_LITERAL_FEATURE_COUNT = ALS_TERM_FEATURE_COUNT + 1; 1984 int ALS_NUMBER_LITERAL_FEATURE_COUNT = ALS_TERM_FEATURE_COUNT + 1;
1938 1985
1939 /** 1986 /**
1987 * The meta object id for the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSStringLiteralImpl <em>ALS String Literal</em>}' class.
1988 * <!-- begin-user-doc -->
1989 * <!-- end-user-doc -->
1990 * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSStringLiteralImpl
1991 * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSStringLiteral()
1992 * @generated
1993 */
1994 int ALS_STRING_LITERAL = 54;
1995
1996 /**
1997 * The feature id for the '<em><b>Value</b></em>' attribute.
1998 * <!-- begin-user-doc -->
1999 * <!-- end-user-doc -->
2000 * @generated
2001 * @ordered
2002 */
2003 int ALS_STRING_LITERAL__VALUE = ALS_TERM_FEATURE_COUNT + 0;
2004
2005 /**
2006 * The number of structural features of the '<em>ALS String Literal</em>' class.
2007 * <!-- begin-user-doc -->
2008 * <!-- end-user-doc -->
2009 * @generated
2010 * @ordered
2011 */
2012 int ALS_STRING_LITERAL_FEATURE_COUNT = ALS_TERM_FEATURE_COUNT + 1;
2013
2014 /**
1940 * The meta object id for the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSMultiplicity <em>ALS Multiplicity</em>}' enum. 2015 * The meta object id for the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSMultiplicity <em>ALS Multiplicity</em>}' enum.
1941 * <!-- begin-user-doc --> 2016 * <!-- begin-user-doc -->
1942 * <!-- end-user-doc --> 2017 * <!-- end-user-doc -->
@@ -1944,7 +2019,7 @@ public interface AlloyLanguagePackage extends EPackage
1944 * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSMultiplicity() 2019 * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSMultiplicity()
1945 * @generated 2020 * @generated
1946 */ 2021 */
1947 int ALS_MULTIPLICITY = 52; 2022 int ALS_MULTIPLICITY = 55;
1948 2023
1949 /** 2024 /**
1950 * The meta object id for the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSNumericOperator <em>ALS Numeric Operator</em>}' enum. 2025 * The meta object id for the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSNumericOperator <em>ALS Numeric Operator</em>}' enum.
@@ -1954,7 +2029,7 @@ public interface AlloyLanguagePackage extends EPackage
1954 * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSNumericOperator() 2029 * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSNumericOperator()
1955 * @generated 2030 * @generated
1956 */ 2031 */
1957 int ALS_NUMERIC_OPERATOR = 53; 2032 int ALS_NUMERIC_OPERATOR = 56;
1958 2033
1959 2034
1960 /** 2035 /**
@@ -2435,6 +2510,16 @@ public interface AlloyLanguagePackage extends EPackage
2435 EClass getALSIntScope(); 2510 EClass getALSIntScope();
2436 2511
2437 /** 2512 /**
2513 * Returns the meta object for class '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSStringScope <em>ALS String Scope</em>}'.
2514 * <!-- begin-user-doc -->
2515 * <!-- end-user-doc -->
2516 * @return the meta object for class '<em>ALS String Scope</em>'.
2517 * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSStringScope
2518 * @generated
2519 */
2520 EClass getALSStringScope();
2521
2522 /**
2438 * Returns the meta object for class '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSQuantifiedEx <em>ALS Quantified Ex</em>}'. 2523 * Returns the meta object for class '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSQuantifiedEx <em>ALS Quantified Ex</em>}'.
2439 * <!-- begin-user-doc --> 2524 * <!-- begin-user-doc -->
2440 * <!-- end-user-doc --> 2525 * <!-- end-user-doc -->
@@ -3371,6 +3456,16 @@ public interface AlloyLanguagePackage extends EPackage
3371 EClass getALSInt(); 3456 EClass getALSInt();
3372 3457
3373 /** 3458 /**
3459 * Returns the meta object for class '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSString <em>ALS String</em>}'.
3460 * <!-- begin-user-doc -->
3461 * <!-- end-user-doc -->
3462 * @return the meta object for class '<em>ALS String</em>'.
3463 * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSString
3464 * @generated
3465 */
3466 EClass getALSString();
3467
3468 /**
3374 * Returns the meta object for class '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSReference <em>ALS Reference</em>}'. 3469 * Returns the meta object for class '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSReference <em>ALS Reference</em>}'.
3375 * <!-- begin-user-doc --> 3470 * <!-- begin-user-doc -->
3376 * <!-- end-user-doc --> 3471 * <!-- end-user-doc -->
@@ -3413,6 +3508,27 @@ public interface AlloyLanguagePackage extends EPackage
3413 EAttribute getALSNumberLiteral_Value(); 3508 EAttribute getALSNumberLiteral_Value();
3414 3509
3415 /** 3510 /**
3511 * Returns the meta object for class '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSStringLiteral <em>ALS String Literal</em>}'.
3512 * <!-- begin-user-doc -->
3513 * <!-- end-user-doc -->
3514 * @return the meta object for class '<em>ALS String Literal</em>'.
3515 * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSStringLiteral
3516 * @generated
3517 */
3518 EClass getALSStringLiteral();
3519
3520 /**
3521 * Returns the meta object for the attribute '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSStringLiteral#getValue <em>Value</em>}'.
3522 * <!-- begin-user-doc -->
3523 * <!-- end-user-doc -->
3524 * @return the meta object for the attribute '<em>Value</em>'.
3525 * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSStringLiteral#getValue()
3526 * @see #getALSStringLiteral()
3527 * @generated
3528 */
3529 EAttribute getALSStringLiteral_Value();
3530
3531 /**
3416 * Returns the meta object for enum '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSMultiplicity <em>ALS Multiplicity</em>}'. 3532 * Returns the meta object for enum '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSMultiplicity <em>ALS Multiplicity</em>}'.
3417 * <!-- begin-user-doc --> 3533 * <!-- begin-user-doc -->
3418 * <!-- end-user-doc --> 3534 * <!-- end-user-doc -->
@@ -3852,6 +3968,16 @@ public interface AlloyLanguagePackage extends EPackage
3852 EClass ALS_INT_SCOPE = eINSTANCE.getALSIntScope(); 3968 EClass ALS_INT_SCOPE = eINSTANCE.getALSIntScope();
3853 3969
3854 /** 3970 /**
3971 * The meta object literal for the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSStringScopeImpl <em>ALS String Scope</em>}' class.
3972 * <!-- begin-user-doc -->
3973 * <!-- end-user-doc -->
3974 * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSStringScopeImpl
3975 * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSStringScope()
3976 * @generated
3977 */
3978 EClass ALS_STRING_SCOPE = eINSTANCE.getALSStringScope();
3979
3980 /**
3855 * The meta object literal for the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSQuantifiedExImpl <em>ALS Quantified Ex</em>}' class. 3981 * The meta object literal for the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSQuantifiedExImpl <em>ALS Quantified Ex</em>}' class.
3856 * <!-- begin-user-doc --> 3982 * <!-- begin-user-doc -->
3857 * <!-- end-user-doc --> 3983 * <!-- end-user-doc -->
@@ -4620,6 +4746,16 @@ public interface AlloyLanguagePackage extends EPackage
4620 EClass ALS_INT = eINSTANCE.getALSInt(); 4746 EClass ALS_INT = eINSTANCE.getALSInt();
4621 4747
4622 /** 4748 /**
4749 * The meta object literal for the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSStringImpl <em>ALS String</em>}' class.
4750 * <!-- begin-user-doc -->
4751 * <!-- end-user-doc -->
4752 * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSStringImpl
4753 * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSString()
4754 * @generated
4755 */
4756 EClass ALS_STRING = eINSTANCE.getALSString();
4757
4758 /**
4623 * The meta object literal for the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSReferenceImpl <em>ALS Reference</em>}' class. 4759 * The meta object literal for the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSReferenceImpl <em>ALS Reference</em>}' class.
4624 * <!-- begin-user-doc --> 4760 * <!-- begin-user-doc -->
4625 * <!-- end-user-doc --> 4761 * <!-- end-user-doc -->
@@ -4656,6 +4792,24 @@ public interface AlloyLanguagePackage extends EPackage
4656 EAttribute ALS_NUMBER_LITERAL__VALUE = eINSTANCE.getALSNumberLiteral_Value(); 4792 EAttribute ALS_NUMBER_LITERAL__VALUE = eINSTANCE.getALSNumberLiteral_Value();
4657 4793
4658 /** 4794 /**
4795 * The meta object literal for the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSStringLiteralImpl <em>ALS String Literal</em>}' class.
4796 * <!-- begin-user-doc -->
4797 * <!-- end-user-doc -->
4798 * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSStringLiteralImpl
4799 * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSStringLiteral()
4800 * @generated
4801 */
4802 EClass ALS_STRING_LITERAL = eINSTANCE.getALSStringLiteral();
4803
4804 /**
4805 * The meta object literal for the '<em><b>Value</b></em>' attribute feature.
4806 * <!-- begin-user-doc -->
4807 * <!-- end-user-doc -->
4808 * @generated
4809 */
4810 EAttribute ALS_STRING_LITERAL__VALUE = eINSTANCE.getALSStringLiteral_Value();
4811
4812 /**
4659 * The meta object literal for the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSMultiplicity <em>ALS Multiplicity</em>}' enum. 4813 * The meta object literal for the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSMultiplicity <em>ALS Multiplicity</em>}' enum.
4660 * <!-- begin-user-doc --> 4814 * <!-- begin-user-doc -->
4661 * <!-- end-user-doc --> 4815 * <!-- end-user-doc -->
diff --git a/Solvers/Alloy-Solver/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSStringImpl.java b/Solvers/Alloy-Solver/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSStringImpl.java
new file mode 100644
index 00000000..d6ce0712
--- /dev/null
+++ b/Solvers/Alloy-Solver/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSStringImpl.java
@@ -0,0 +1,40 @@
1/**
2 */
3package hu.bme.mit.inf.dslreasoner.alloyLanguage.impl;
4
5import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSString;
6import hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage;
7
8import org.eclipse.emf.ecore.EClass;
9
10/**
11 * <!-- begin-user-doc -->
12 * An implementation of the model object '<em><b>ALS String</b></em>'.
13 * <!-- end-user-doc -->
14 *
15 * @generated
16 */
17public class ALSStringImpl extends ALSTermImpl implements ALSString
18{
19 /**
20 * <!-- begin-user-doc -->
21 * <!-- end-user-doc -->
22 * @generated
23 */
24 protected ALSStringImpl()
25 {
26 super();
27 }
28
29 /**
30 * <!-- begin-user-doc -->
31 * <!-- end-user-doc -->
32 * @generated
33 */
34 @Override
35 protected EClass eStaticClass()
36 {
37 return AlloyLanguagePackage.Literals.ALS_STRING;
38 }
39
40} //ALSStringImpl
diff --git a/Solvers/Alloy-Solver/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSStringLiteralImpl.java b/Solvers/Alloy-Solver/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSStringLiteralImpl.java
new file mode 100644
index 00000000..207be30b
--- /dev/null
+++ b/Solvers/Alloy-Solver/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSStringLiteralImpl.java
@@ -0,0 +1,176 @@
1/**
2 */
3package hu.bme.mit.inf.dslreasoner.alloyLanguage.impl;
4
5import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSStringLiteral;
6import hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage;
7
8import org.eclipse.emf.common.notify.Notification;
9
10import org.eclipse.emf.ecore.EClass;
11
12import org.eclipse.emf.ecore.impl.ENotificationImpl;
13
14/**
15 * <!-- begin-user-doc -->
16 * An implementation of the model object '<em><b>ALS String Literal</b></em>'.
17 * <!-- end-user-doc -->
18 * <p>
19 * The following features are implemented:
20 * </p>
21 * <ul>
22 * <li>{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSStringLiteralImpl#getValue <em>Value</em>}</li>
23 * </ul>
24 *
25 * @generated
26 */
27public class ALSStringLiteralImpl extends ALSTermImpl implements ALSStringLiteral
28{
29 /**
30 * The default value of the '{@link #getValue() <em>Value</em>}' attribute.
31 * <!-- begin-user-doc -->
32 * <!-- end-user-doc -->
33 * @see #getValue()
34 * @generated
35 * @ordered
36 */
37 protected static final String VALUE_EDEFAULT = null;
38
39 /**
40 * The cached value of the '{@link #getValue() <em>Value</em>}' attribute.
41 * <!-- begin-user-doc -->
42 * <!-- end-user-doc -->
43 * @see #getValue()
44 * @generated
45 * @ordered
46 */
47 protected String value = VALUE_EDEFAULT;
48
49 /**
50 * <!-- begin-user-doc -->
51 * <!-- end-user-doc -->
52 * @generated
53 */
54 protected ALSStringLiteralImpl()
55 {
56 super();
57 }
58
59 /**
60 * <!-- begin-user-doc -->
61 * <!-- end-user-doc -->
62 * @generated
63 */
64 @Override
65 protected EClass eStaticClass()
66 {
67 return AlloyLanguagePackage.Literals.ALS_STRING_LITERAL;
68 }
69
70 /**
71 * <!-- begin-user-doc -->
72 * <!-- end-user-doc -->
73 * @generated
74 */
75 public String getValue()
76 {
77 return value;
78 }
79
80 /**
81 * <!-- begin-user-doc -->
82 * <!-- end-user-doc -->
83 * @generated
84 */
85 public void setValue(String newValue)
86 {
87 String oldValue = value;
88 value = newValue;
89 if (eNotificationRequired())
90 eNotify(new ENotificationImpl(this, Notification.SET, AlloyLanguagePackage.ALS_STRING_LITERAL__VALUE, oldValue, value));
91 }
92
93 /**
94 * <!-- begin-user-doc -->
95 * <!-- end-user-doc -->
96 * @generated
97 */
98 @Override
99 public Object eGet(int featureID, boolean resolve, boolean coreType)
100 {
101 switch (featureID)
102 {
103 case AlloyLanguagePackage.ALS_STRING_LITERAL__VALUE:
104 return getValue();
105 }
106 return super.eGet(featureID, resolve, coreType);
107 }
108
109 /**
110 * <!-- begin-user-doc -->
111 * <!-- end-user-doc -->
112 * @generated
113 */
114 @Override
115 public void eSet(int featureID, Object newValue)
116 {
117 switch (featureID)
118 {
119 case AlloyLanguagePackage.ALS_STRING_LITERAL__VALUE:
120 setValue((String)newValue);
121 return;
122 }
123 super.eSet(featureID, newValue);
124 }
125
126 /**
127 * <!-- begin-user-doc -->
128 * <!-- end-user-doc -->
129 * @generated
130 */
131 @Override
132 public void eUnset(int featureID)
133 {
134 switch (featureID)
135 {
136 case AlloyLanguagePackage.ALS_STRING_LITERAL__VALUE:
137 setValue(VALUE_EDEFAULT);
138 return;
139 }
140 super.eUnset(featureID);
141 }
142
143 /**
144 * <!-- begin-user-doc -->
145 * <!-- end-user-doc -->
146 * @generated
147 */
148 @Override
149 public boolean eIsSet(int featureID)
150 {
151 switch (featureID)
152 {
153 case AlloyLanguagePackage.ALS_STRING_LITERAL__VALUE:
154 return VALUE_EDEFAULT == null ? value != null : !VALUE_EDEFAULT.equals(value);
155 }
156 return super.eIsSet(featureID);
157 }
158
159 /**
160 * <!-- begin-user-doc -->
161 * <!-- end-user-doc -->
162 * @generated
163 */
164 @Override
165 public String toString()
166 {
167 if (eIsProxy()) return super.toString();
168
169 StringBuffer result = new StringBuffer(super.toString());
170 result.append(" (value: ");
171 result.append(value);
172 result.append(')');
173 return result.toString();
174 }
175
176} //ALSStringLiteralImpl
diff --git a/Solvers/Alloy-Solver/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSStringScopeImpl.java b/Solvers/Alloy-Solver/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSStringScopeImpl.java
new file mode 100644
index 00000000..244821c6
--- /dev/null
+++ b/Solvers/Alloy-Solver/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSStringScopeImpl.java
@@ -0,0 +1,40 @@
1/**
2 */
3package hu.bme.mit.inf.dslreasoner.alloyLanguage.impl;
4
5import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSStringScope;
6import hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage;
7
8import org.eclipse.emf.ecore.EClass;
9
10/**
11 * <!-- begin-user-doc -->
12 * An implementation of the model object '<em><b>ALS String Scope</b></em>'.
13 * <!-- end-user-doc -->
14 *
15 * @generated
16 */
17public class ALSStringScopeImpl extends ALSTypeScopeImpl implements ALSStringScope
18{
19 /**
20 * <!-- begin-user-doc -->
21 * <!-- end-user-doc -->
22 * @generated
23 */
24 protected ALSStringScopeImpl()
25 {
26 super();
27 }
28
29 /**
30 * <!-- begin-user-doc -->
31 * <!-- end-user-doc -->
32 * @generated
33 */
34 @Override
35 protected EClass eStaticClass()
36 {
37 return AlloyLanguagePackage.Literals.ALS_STRING_SCOPE;
38 }
39
40} //ALSStringScopeImpl
diff --git a/Solvers/Alloy-Solver/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/AlloyLanguageFactoryImpl.java b/Solvers/Alloy-Solver/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/AlloyLanguageFactoryImpl.java
index 45d92dca..11faf739 100644
--- a/Solvers/Alloy-Solver/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/AlloyLanguageFactoryImpl.java
+++ b/Solvers/Alloy-Solver/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/AlloyLanguageFactoryImpl.java
@@ -83,6 +83,7 @@ public class AlloyLanguageFactoryImpl extends EFactoryImpl implements AlloyLangu
83 case AlloyLanguagePackage.ALS_TYPE_SCOPE: return createALSTypeScope(); 83 case AlloyLanguagePackage.ALS_TYPE_SCOPE: return createALSTypeScope();
84 case AlloyLanguagePackage.ALS_SIG_SCOPE: return createALSSigScope(); 84 case AlloyLanguagePackage.ALS_SIG_SCOPE: return createALSSigScope();
85 case AlloyLanguagePackage.ALS_INT_SCOPE: return createALSIntScope(); 85 case AlloyLanguagePackage.ALS_INT_SCOPE: return createALSIntScope();
86 case AlloyLanguagePackage.ALS_STRING_SCOPE: return createALSStringScope();
86 case AlloyLanguagePackage.ALS_QUANTIFIED_EX: return createALSQuantifiedEx(); 87 case AlloyLanguagePackage.ALS_QUANTIFIED_EX: return createALSQuantifiedEx();
87 case AlloyLanguagePackage.ALS_OR: return createALSOr(); 88 case AlloyLanguagePackage.ALS_OR: return createALSOr();
88 case AlloyLanguagePackage.ALS_IFF: return createALSIff(); 89 case AlloyLanguagePackage.ALS_IFF: return createALSIff();
@@ -115,8 +116,10 @@ public class AlloyLanguageFactoryImpl extends EFactoryImpl implements AlloyLangu
115 case AlloyLanguagePackage.ALS_IDEN: return createALSIden(); 116 case AlloyLanguagePackage.ALS_IDEN: return createALSIden();
116 case AlloyLanguagePackage.ALS_UNIV: return createALSUniv(); 117 case AlloyLanguagePackage.ALS_UNIV: return createALSUniv();
117 case AlloyLanguagePackage.ALS_INT: return createALSInt(); 118 case AlloyLanguagePackage.ALS_INT: return createALSInt();
119 case AlloyLanguagePackage.ALS_STRING: return createALSString();
118 case AlloyLanguagePackage.ALS_REFERENCE: return createALSReference(); 120 case AlloyLanguagePackage.ALS_REFERENCE: return createALSReference();
119 case AlloyLanguagePackage.ALS_NUMBER_LITERAL: return createALSNumberLiteral(); 121 case AlloyLanguagePackage.ALS_NUMBER_LITERAL: return createALSNumberLiteral();
122 case AlloyLanguagePackage.ALS_STRING_LITERAL: return createALSStringLiteral();
120 default: 123 default:
121 throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier"); 124 throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
122 } 125 }
@@ -363,6 +366,17 @@ public class AlloyLanguageFactoryImpl extends EFactoryImpl implements AlloyLangu
363 * <!-- end-user-doc --> 366 * <!-- end-user-doc -->
364 * @generated 367 * @generated
365 */ 368 */
369 public ALSStringScope createALSStringScope()
370 {
371 ALSStringScopeImpl alsStringScope = new ALSStringScopeImpl();
372 return alsStringScope;
373 }
374
375 /**
376 * <!-- begin-user-doc -->
377 * <!-- end-user-doc -->
378 * @generated
379 */
366 public ALSQuantifiedEx createALSQuantifiedEx() 380 public ALSQuantifiedEx createALSQuantifiedEx()
367 { 381 {
368 ALSQuantifiedExImpl alsQuantifiedEx = new ALSQuantifiedExImpl(); 382 ALSQuantifiedExImpl alsQuantifiedEx = new ALSQuantifiedExImpl();
@@ -715,6 +729,17 @@ public class AlloyLanguageFactoryImpl extends EFactoryImpl implements AlloyLangu
715 * <!-- end-user-doc --> 729 * <!-- end-user-doc -->
716 * @generated 730 * @generated
717 */ 731 */
732 public ALSString createALSString()
733 {
734 ALSStringImpl alsString = new ALSStringImpl();
735 return alsString;
736 }
737
738 /**
739 * <!-- begin-user-doc -->
740 * <!-- end-user-doc -->
741 * @generated
742 */
718 public ALSReference createALSReference() 743 public ALSReference createALSReference()
719 { 744 {
720 ALSReferenceImpl alsReference = new ALSReferenceImpl(); 745 ALSReferenceImpl alsReference = new ALSReferenceImpl();
@@ -737,6 +762,17 @@ public class AlloyLanguageFactoryImpl extends EFactoryImpl implements AlloyLangu
737 * <!-- end-user-doc --> 762 * <!-- end-user-doc -->
738 * @generated 763 * @generated
739 */ 764 */
765 public ALSStringLiteral createALSStringLiteral()
766 {
767 ALSStringLiteralImpl alsStringLiteral = new ALSStringLiteralImpl();
768 return alsStringLiteral;
769 }
770
771 /**
772 * <!-- begin-user-doc -->
773 * <!-- end-user-doc -->
774 * @generated
775 */
740 public ALSMultiplicity createALSMultiplicityFromString(EDataType eDataType, String initialValue) 776 public ALSMultiplicity createALSMultiplicityFromString(EDataType eDataType, String initialValue)
741 { 777 {
742 ALSMultiplicity result = ALSMultiplicity.get(initialValue); 778 ALSMultiplicity result = ALSMultiplicity.get(initialValue);
diff --git a/Solvers/Alloy-Solver/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/AlloyLanguagePackageImpl.java b/Solvers/Alloy-Solver/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/AlloyLanguagePackageImpl.java
index 1fd90aa9..6227ccd3 100644
--- a/Solvers/Alloy-Solver/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/AlloyLanguagePackageImpl.java
+++ b/Solvers/Alloy-Solver/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/AlloyLanguagePackageImpl.java
@@ -47,6 +47,9 @@ import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSRunCommand;
47import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSSigScope; 47import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSSigScope;
48import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSSignatureBody; 48import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSSignatureBody;
49import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSSignatureDeclaration; 49import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSSignatureDeclaration;
50import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSString;
51import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSStringLiteral;
52import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSStringScope;
50import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSSubset; 53import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSSubset;
51import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSSum; 54import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSSum;
52import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSTerm; 55import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSTerm;
@@ -206,6 +209,13 @@ public class AlloyLanguagePackageImpl extends EPackageImpl implements AlloyLangu
206 * <!-- end-user-doc --> 209 * <!-- end-user-doc -->
207 * @generated 210 * @generated
208 */ 211 */
212 private EClass alsStringScopeEClass = null;
213
214 /**
215 * <!-- begin-user-doc -->
216 * <!-- end-user-doc -->
217 * @generated
218 */
209 private EClass alsQuantifiedExEClass = null; 219 private EClass alsQuantifiedExEClass = null;
210 220
211 /** 221 /**
@@ -430,6 +440,13 @@ public class AlloyLanguagePackageImpl extends EPackageImpl implements AlloyLangu
430 * <!-- end-user-doc --> 440 * <!-- end-user-doc -->
431 * @generated 441 * @generated
432 */ 442 */
443 private EClass alsStringEClass = null;
444
445 /**
446 * <!-- begin-user-doc -->
447 * <!-- end-user-doc -->
448 * @generated
449 */
433 private EClass alsReferenceEClass = null; 450 private EClass alsReferenceEClass = null;
434 451
435 /** 452 /**
@@ -444,6 +461,13 @@ public class AlloyLanguagePackageImpl extends EPackageImpl implements AlloyLangu
444 * <!-- end-user-doc --> 461 * <!-- end-user-doc -->
445 * @generated 462 * @generated
446 */ 463 */
464 private EClass alsStringLiteralEClass = null;
465
466 /**
467 * <!-- begin-user-doc -->
468 * <!-- end-user-doc -->
469 * @generated
470 */
447 private EEnum alsMultiplicityEEnum = null; 471 private EEnum alsMultiplicityEEnum = null;
448 472
449 /** 473 /**
@@ -971,6 +995,16 @@ public class AlloyLanguagePackageImpl extends EPackageImpl implements AlloyLangu
971 * <!-- end-user-doc --> 995 * <!-- end-user-doc -->
972 * @generated 996 * @generated
973 */ 997 */
998 public EClass getALSStringScope()
999 {
1000 return alsStringScopeEClass;
1001 }
1002
1003 /**
1004 * <!-- begin-user-doc -->
1005 * <!-- end-user-doc -->
1006 * @generated
1007 */
974 public EClass getALSQuantifiedEx() 1008 public EClass getALSQuantifiedEx()
975 { 1009 {
976 return alsQuantifiedExEClass; 1010 return alsQuantifiedExEClass;
@@ -1851,6 +1885,16 @@ public class AlloyLanguagePackageImpl extends EPackageImpl implements AlloyLangu
1851 * <!-- end-user-doc --> 1885 * <!-- end-user-doc -->
1852 * @generated 1886 * @generated
1853 */ 1887 */
1888 public EClass getALSString()
1889 {
1890 return alsStringEClass;
1891 }
1892
1893 /**
1894 * <!-- begin-user-doc -->
1895 * <!-- end-user-doc -->
1896 * @generated
1897 */
1854 public EClass getALSReference() 1898 public EClass getALSReference()
1855 { 1899 {
1856 return alsReferenceEClass; 1900 return alsReferenceEClass;
@@ -1891,6 +1935,26 @@ public class AlloyLanguagePackageImpl extends EPackageImpl implements AlloyLangu
1891 * <!-- end-user-doc --> 1935 * <!-- end-user-doc -->
1892 * @generated 1936 * @generated
1893 */ 1937 */
1938 public EClass getALSStringLiteral()
1939 {
1940 return alsStringLiteralEClass;
1941 }
1942
1943 /**
1944 * <!-- begin-user-doc -->
1945 * <!-- end-user-doc -->
1946 * @generated
1947 */
1948 public EAttribute getALSStringLiteral_Value()
1949 {
1950 return (EAttribute)alsStringLiteralEClass.getEStructuralFeatures().get(0);
1951 }
1952
1953 /**
1954 * <!-- begin-user-doc -->
1955 * <!-- end-user-doc -->
1956 * @generated
1957 */
1894 public EEnum getALSMultiplicity() 1958 public EEnum getALSMultiplicity()
1895 { 1959 {
1896 return alsMultiplicityEEnum; 1960 return alsMultiplicityEEnum;
@@ -1999,6 +2063,8 @@ public class AlloyLanguagePackageImpl extends EPackageImpl implements AlloyLangu
1999 2063
2000 alsIntScopeEClass = createEClass(ALS_INT_SCOPE); 2064 alsIntScopeEClass = createEClass(ALS_INT_SCOPE);
2001 2065
2066 alsStringScopeEClass = createEClass(ALS_STRING_SCOPE);
2067
2002 alsQuantifiedExEClass = createEClass(ALS_QUANTIFIED_EX); 2068 alsQuantifiedExEClass = createEClass(ALS_QUANTIFIED_EX);
2003 createEAttribute(alsQuantifiedExEClass, ALS_QUANTIFIED_EX__TYPE); 2069 createEAttribute(alsQuantifiedExEClass, ALS_QUANTIFIED_EX__TYPE);
2004 createEAttribute(alsQuantifiedExEClass, ALS_QUANTIFIED_EX__DISJ); 2070 createEAttribute(alsQuantifiedExEClass, ALS_QUANTIFIED_EX__DISJ);
@@ -2119,12 +2185,17 @@ public class AlloyLanguagePackageImpl extends EPackageImpl implements AlloyLangu
2119 2185
2120 alsIntEClass = createEClass(ALS_INT); 2186 alsIntEClass = createEClass(ALS_INT);
2121 2187
2188 alsStringEClass = createEClass(ALS_STRING);
2189
2122 alsReferenceEClass = createEClass(ALS_REFERENCE); 2190 alsReferenceEClass = createEClass(ALS_REFERENCE);
2123 createEReference(alsReferenceEClass, ALS_REFERENCE__REFERRED); 2191 createEReference(alsReferenceEClass, ALS_REFERENCE__REFERRED);
2124 2192
2125 alsNumberLiteralEClass = createEClass(ALS_NUMBER_LITERAL); 2193 alsNumberLiteralEClass = createEClass(ALS_NUMBER_LITERAL);
2126 createEAttribute(alsNumberLiteralEClass, ALS_NUMBER_LITERAL__VALUE); 2194 createEAttribute(alsNumberLiteralEClass, ALS_NUMBER_LITERAL__VALUE);
2127 2195
2196 alsStringLiteralEClass = createEClass(ALS_STRING_LITERAL);
2197 createEAttribute(alsStringLiteralEClass, ALS_STRING_LITERAL__VALUE);
2198
2128 // Create enums 2199 // Create enums
2129 alsMultiplicityEEnum = createEEnum(ALS_MULTIPLICITY); 2200 alsMultiplicityEEnum = createEEnum(ALS_MULTIPLICITY);
2130 alsNumericOperatorEEnum = createEEnum(ALS_NUMERIC_OPERATOR); 2201 alsNumericOperatorEEnum = createEEnum(ALS_NUMERIC_OPERATOR);
@@ -2169,6 +2240,7 @@ public class AlloyLanguagePackageImpl extends EPackageImpl implements AlloyLangu
2169 alsVariableDeclarationEClass.getESuperTypes().add(this.getALSRelationDeclaration()); 2240 alsVariableDeclarationEClass.getESuperTypes().add(this.getALSRelationDeclaration());
2170 alsSigScopeEClass.getESuperTypes().add(this.getALSTypeScope()); 2241 alsSigScopeEClass.getESuperTypes().add(this.getALSTypeScope());
2171 alsIntScopeEClass.getESuperTypes().add(this.getALSTypeScope()); 2242 alsIntScopeEClass.getESuperTypes().add(this.getALSTypeScope());
2243 alsStringScopeEClass.getESuperTypes().add(this.getALSTypeScope());
2172 alsQuantifiedExEClass.getESuperTypes().add(this.getALSTerm()); 2244 alsQuantifiedExEClass.getESuperTypes().add(this.getALSTerm());
2173 alsOrEClass.getESuperTypes().add(this.getALSTerm()); 2245 alsOrEClass.getESuperTypes().add(this.getALSTerm());
2174 alsIffEClass.getESuperTypes().add(this.getALSTerm()); 2246 alsIffEClass.getESuperTypes().add(this.getALSTerm());
@@ -2201,8 +2273,10 @@ public class AlloyLanguagePackageImpl extends EPackageImpl implements AlloyLangu
2201 alsIdenEClass.getESuperTypes().add(this.getALSTerm()); 2273 alsIdenEClass.getESuperTypes().add(this.getALSTerm());
2202 alsUnivEClass.getESuperTypes().add(this.getALSTerm()); 2274 alsUnivEClass.getESuperTypes().add(this.getALSTerm());
2203 alsIntEClass.getESuperTypes().add(this.getALSTerm()); 2275 alsIntEClass.getESuperTypes().add(this.getALSTerm());
2276 alsStringEClass.getESuperTypes().add(this.getALSTerm());
2204 alsReferenceEClass.getESuperTypes().add(this.getALSTerm()); 2277 alsReferenceEClass.getESuperTypes().add(this.getALSTerm());
2205 alsNumberLiteralEClass.getESuperTypes().add(this.getALSTerm()); 2278 alsNumberLiteralEClass.getESuperTypes().add(this.getALSTerm());
2279 alsStringLiteralEClass.getESuperTypes().add(this.getALSTerm());
2206 2280
2207 // Initialize classes and features; add operations and parameters 2281 // Initialize classes and features; add operations and parameters
2208 initEClass(alsDocumentEClass, ALSDocument.class, "ALSDocument", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); 2282 initEClass(alsDocumentEClass, ALSDocument.class, "ALSDocument", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
@@ -2268,6 +2342,8 @@ public class AlloyLanguagePackageImpl extends EPackageImpl implements AlloyLangu
2268 2342
2269 initEClass(alsIntScopeEClass, ALSIntScope.class, "ALSIntScope", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); 2343 initEClass(alsIntScopeEClass, ALSIntScope.class, "ALSIntScope", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
2270 2344
2345 initEClass(alsStringScopeEClass, ALSStringScope.class, "ALSStringScope", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
2346
2271 initEClass(alsQuantifiedExEClass, ALSQuantifiedEx.class, "ALSQuantifiedEx", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); 2347 initEClass(alsQuantifiedExEClass, ALSQuantifiedEx.class, "ALSQuantifiedEx", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
2272 initEAttribute(getALSQuantifiedEx_Type(), this.getALSMultiplicity(), "type", null, 0, 1, ALSQuantifiedEx.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); 2348 initEAttribute(getALSQuantifiedEx_Type(), this.getALSMultiplicity(), "type", null, 0, 1, ALSQuantifiedEx.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
2273 initEAttribute(getALSQuantifiedEx_Disj(), ecorePackage.getEBoolean(), "disj", null, 0, 1, ALSQuantifiedEx.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); 2349 initEAttribute(getALSQuantifiedEx_Disj(), ecorePackage.getEBoolean(), "disj", null, 0, 1, ALSQuantifiedEx.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
@@ -2388,12 +2464,17 @@ public class AlloyLanguagePackageImpl extends EPackageImpl implements AlloyLangu
2388 2464
2389 initEClass(alsIntEClass, ALSInt.class, "ALSInt", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); 2465 initEClass(alsIntEClass, ALSInt.class, "ALSInt", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
2390 2466
2467 initEClass(alsStringEClass, ALSString.class, "ALSString", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
2468
2391 initEClass(alsReferenceEClass, ALSReference.class, "ALSReference", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); 2469 initEClass(alsReferenceEClass, ALSReference.class, "ALSReference", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
2392 initEReference(getALSReference_Referred(), this.getALSRelationDeclaration(), null, "referred", null, 0, 1, ALSReference.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); 2470 initEReference(getALSReference_Referred(), this.getALSRelationDeclaration(), null, "referred", null, 0, 1, ALSReference.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
2393 2471
2394 initEClass(alsNumberLiteralEClass, ALSNumberLiteral.class, "ALSNumberLiteral", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); 2472 initEClass(alsNumberLiteralEClass, ALSNumberLiteral.class, "ALSNumberLiteral", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
2395 initEAttribute(getALSNumberLiteral_Value(), ecorePackage.getEInt(), "value", null, 0, 1, ALSNumberLiteral.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); 2473 initEAttribute(getALSNumberLiteral_Value(), ecorePackage.getEInt(), "value", null, 0, 1, ALSNumberLiteral.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
2396 2474
2475 initEClass(alsStringLiteralEClass, ALSStringLiteral.class, "ALSStringLiteral", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
2476 initEAttribute(getALSStringLiteral_Value(), ecorePackage.getEString(), "value", null, 0, 1, ALSStringLiteral.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
2477
2397 // Initialize enums and add enum literals 2478 // Initialize enums and add enum literals
2398 initEEnum(alsMultiplicityEEnum, ALSMultiplicity.class, "ALSMultiplicity"); 2479 initEEnum(alsMultiplicityEEnum, ALSMultiplicity.class, "ALSMultiplicity");
2399 addEEnumLiteral(alsMultiplicityEEnum, ALSMultiplicity.ALL); 2480 addEEnumLiteral(alsMultiplicityEEnum, ALSMultiplicity.ALL);
diff --git a/Solvers/Alloy-Solver/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/util/AlloyLanguageAdapterFactory.java b/Solvers/Alloy-Solver/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/util/AlloyLanguageAdapterFactory.java
index d3d842af..5ca262fe 100644
--- a/Solvers/Alloy-Solver/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/util/AlloyLanguageAdapterFactory.java
+++ b/Solvers/Alloy-Solver/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/util/AlloyLanguageAdapterFactory.java
@@ -165,6 +165,11 @@ public class AlloyLanguageAdapterFactory extends AdapterFactoryImpl
165 return createALSIntScopeAdapter(); 165 return createALSIntScopeAdapter();
166 } 166 }
167 @Override 167 @Override
168 public Adapter caseALSStringScope(ALSStringScope object)
169 {
170 return createALSStringScopeAdapter();
171 }
172 @Override
168 public Adapter caseALSQuantifiedEx(ALSQuantifiedEx object) 173 public Adapter caseALSQuantifiedEx(ALSQuantifiedEx object)
169 { 174 {
170 return createALSQuantifiedExAdapter(); 175 return createALSQuantifiedExAdapter();
@@ -325,6 +330,11 @@ public class AlloyLanguageAdapterFactory extends AdapterFactoryImpl
325 return createALSIntAdapter(); 330 return createALSIntAdapter();
326 } 331 }
327 @Override 332 @Override
333 public Adapter caseALSString(ALSString object)
334 {
335 return createALSStringAdapter();
336 }
337 @Override
328 public Adapter caseALSReference(ALSReference object) 338 public Adapter caseALSReference(ALSReference object)
329 { 339 {
330 return createALSReferenceAdapter(); 340 return createALSReferenceAdapter();
@@ -335,6 +345,11 @@ public class AlloyLanguageAdapterFactory extends AdapterFactoryImpl
335 return createALSNumberLiteralAdapter(); 345 return createALSNumberLiteralAdapter();
336 } 346 }
337 @Override 347 @Override
348 public Adapter caseALSStringLiteral(ALSStringLiteral object)
349 {
350 return createALSStringLiteralAdapter();
351 }
352 @Override
338 public Adapter defaultCase(EObject object) 353 public Adapter defaultCase(EObject object)
339 { 354 {
340 return createEObjectAdapter(); 355 return createEObjectAdapter();
@@ -627,6 +642,21 @@ public class AlloyLanguageAdapterFactory extends AdapterFactoryImpl
627 } 642 }
628 643
629 /** 644 /**
645 * Creates a new adapter for an object of class '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSStringScope <em>ALS String Scope</em>}'.
646 * <!-- begin-user-doc -->
647 * This default implementation returns null so that we can easily ignore cases;
648 * it's useful to ignore a case when inheritance will catch all the cases anyway.
649 * <!-- end-user-doc -->
650 * @return the new adapter.
651 * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSStringScope
652 * @generated
653 */
654 public Adapter createALSStringScopeAdapter()
655 {
656 return null;
657 }
658
659 /**
630 * Creates a new adapter for an object of class '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSQuantifiedEx <em>ALS Quantified Ex</em>}'. 660 * Creates a new adapter for an object of class '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSQuantifiedEx <em>ALS Quantified Ex</em>}'.
631 * <!-- begin-user-doc --> 661 * <!-- begin-user-doc -->
632 * This default implementation returns null so that we can easily ignore cases; 662 * This default implementation returns null so that we can easily ignore cases;
@@ -1107,6 +1137,21 @@ public class AlloyLanguageAdapterFactory extends AdapterFactoryImpl
1107 } 1137 }
1108 1138
1109 /** 1139 /**
1140 * Creates a new adapter for an object of class '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSString <em>ALS String</em>}'.
1141 * <!-- begin-user-doc -->
1142 * This default implementation returns null so that we can easily ignore cases;
1143 * it's useful to ignore a case when inheritance will catch all the cases anyway.
1144 * <!-- end-user-doc -->
1145 * @return the new adapter.
1146 * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSString
1147 * @generated
1148 */
1149 public Adapter createALSStringAdapter()
1150 {
1151 return null;
1152 }
1153
1154 /**
1110 * Creates a new adapter for an object of class '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSReference <em>ALS Reference</em>}'. 1155 * Creates a new adapter for an object of class '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSReference <em>ALS Reference</em>}'.
1111 * <!-- begin-user-doc --> 1156 * <!-- begin-user-doc -->
1112 * This default implementation returns null so that we can easily ignore cases; 1157 * This default implementation returns null so that we can easily ignore cases;
@@ -1137,6 +1182,21 @@ public class AlloyLanguageAdapterFactory extends AdapterFactoryImpl
1137 } 1182 }
1138 1183
1139 /** 1184 /**
1185 * Creates a new adapter for an object of class '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSStringLiteral <em>ALS String Literal</em>}'.
1186 * <!-- begin-user-doc -->
1187 * This default implementation returns null so that we can easily ignore cases;
1188 * it's useful to ignore a case when inheritance will catch all the cases anyway.
1189 * <!-- end-user-doc -->
1190 * @return the new adapter.
1191 * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSStringLiteral
1192 * @generated
1193 */
1194 public Adapter createALSStringLiteralAdapter()
1195 {
1196 return null;
1197 }
1198
1199 /**
1140 * Creates a new adapter for the default case. 1200 * Creates a new adapter for the default case.
1141 * <!-- begin-user-doc --> 1201 * <!-- begin-user-doc -->
1142 * This default implementation returns null. 1202 * This default implementation returns null.
diff --git a/Solvers/Alloy-Solver/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/util/AlloyLanguageSwitch.java b/Solvers/Alloy-Solver/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/util/AlloyLanguageSwitch.java
index 91fa2086..3551c90f 100644
--- a/Solvers/Alloy-Solver/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/util/AlloyLanguageSwitch.java
+++ b/Solvers/Alloy-Solver/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/util/AlloyLanguageSwitch.java
@@ -210,6 +210,14 @@ public class AlloyLanguageSwitch<T> extends Switch<T>
210 if (result == null) result = defaultCase(theEObject); 210 if (result == null) result = defaultCase(theEObject);
211 return result; 211 return result;
212 } 212 }
213 case AlloyLanguagePackage.ALS_STRING_SCOPE:
214 {
215 ALSStringScope alsStringScope = (ALSStringScope)theEObject;
216 T result = caseALSStringScope(alsStringScope);
217 if (result == null) result = caseALSTypeScope(alsStringScope);
218 if (result == null) result = defaultCase(theEObject);
219 return result;
220 }
213 case AlloyLanguagePackage.ALS_QUANTIFIED_EX: 221 case AlloyLanguagePackage.ALS_QUANTIFIED_EX:
214 { 222 {
215 ALSQuantifiedEx alsQuantifiedEx = (ALSQuantifiedEx)theEObject; 223 ALSQuantifiedEx alsQuantifiedEx = (ALSQuantifiedEx)theEObject;
@@ -466,6 +474,14 @@ public class AlloyLanguageSwitch<T> extends Switch<T>
466 if (result == null) result = defaultCase(theEObject); 474 if (result == null) result = defaultCase(theEObject);
467 return result; 475 return result;
468 } 476 }
477 case AlloyLanguagePackage.ALS_STRING:
478 {
479 ALSString alsString = (ALSString)theEObject;
480 T result = caseALSString(alsString);
481 if (result == null) result = caseALSTerm(alsString);
482 if (result == null) result = defaultCase(theEObject);
483 return result;
484 }
469 case AlloyLanguagePackage.ALS_REFERENCE: 485 case AlloyLanguagePackage.ALS_REFERENCE:
470 { 486 {
471 ALSReference alsReference = (ALSReference)theEObject; 487 ALSReference alsReference = (ALSReference)theEObject;
@@ -482,6 +498,14 @@ public class AlloyLanguageSwitch<T> extends Switch<T>
482 if (result == null) result = defaultCase(theEObject); 498 if (result == null) result = defaultCase(theEObject);
483 return result; 499 return result;
484 } 500 }
501 case AlloyLanguagePackage.ALS_STRING_LITERAL:
502 {
503 ALSStringLiteral alsStringLiteral = (ALSStringLiteral)theEObject;
504 T result = caseALSStringLiteral(alsStringLiteral);
505 if (result == null) result = caseALSTerm(alsStringLiteral);
506 if (result == null) result = defaultCase(theEObject);
507 return result;
508 }
485 default: return defaultCase(theEObject); 509 default: return defaultCase(theEObject);
486 } 510 }
487 } 511 }
@@ -775,6 +799,22 @@ public class AlloyLanguageSwitch<T> extends Switch<T>
775 } 799 }
776 800
777 /** 801 /**
802 * Returns the result of interpreting the object as an instance of '<em>ALS String Scope</em>'.
803 * <!-- begin-user-doc -->
804 * This implementation returns null;
805 * returning a non-null result will terminate the switch.
806 * <!-- end-user-doc -->
807 * @param object the target of the switch.
808 * @return the result of interpreting the object as an instance of '<em>ALS String Scope</em>'.
809 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
810 * @generated
811 */
812 public T caseALSStringScope(ALSStringScope object)
813 {
814 return null;
815 }
816
817 /**
778 * Returns the result of interpreting the object as an instance of '<em>ALS Quantified Ex</em>'. 818 * Returns the result of interpreting the object as an instance of '<em>ALS Quantified Ex</em>'.
779 * <!-- begin-user-doc --> 819 * <!-- begin-user-doc -->
780 * This implementation returns null; 820 * This implementation returns null;
@@ -1287,6 +1327,22 @@ public class AlloyLanguageSwitch<T> extends Switch<T>
1287 } 1327 }
1288 1328
1289 /** 1329 /**
1330 * Returns the result of interpreting the object as an instance of '<em>ALS String</em>'.
1331 * <!-- begin-user-doc -->
1332 * This implementation returns null;
1333 * returning a non-null result will terminate the switch.
1334 * <!-- end-user-doc -->
1335 * @param object the target of the switch.
1336 * @return the result of interpreting the object as an instance of '<em>ALS String</em>'.
1337 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
1338 * @generated
1339 */
1340 public T caseALSString(ALSString object)
1341 {
1342 return null;
1343 }
1344
1345 /**
1290 * Returns the result of interpreting the object as an instance of '<em>ALS Reference</em>'. 1346 * Returns the result of interpreting the object as an instance of '<em>ALS Reference</em>'.
1291 * <!-- begin-user-doc --> 1347 * <!-- begin-user-doc -->
1292 * This implementation returns null; 1348 * This implementation returns null;
@@ -1319,6 +1375,22 @@ public class AlloyLanguageSwitch<T> extends Switch<T>
1319 } 1375 }
1320 1376
1321 /** 1377 /**
1378 * Returns the result of interpreting the object as an instance of '<em>ALS String Literal</em>'.
1379 * <!-- begin-user-doc -->
1380 * This implementation returns null;
1381 * returning a non-null result will terminate the switch.
1382 * <!-- end-user-doc -->
1383 * @param object the target of the switch.
1384 * @return the result of interpreting the object as an instance of '<em>ALS String Literal</em>'.
1385 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
1386 * @generated
1387 */
1388 public T caseALSStringLiteral(ALSStringLiteral object)
1389 {
1390 return null;
1391 }
1392
1393 /**
1322 * Returns the result of interpreting the object as an instance of '<em>EObject</em>'. 1394 * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
1323 * <!-- begin-user-doc --> 1395 * <!-- begin-user-doc -->
1324 * This implementation returns null; 1396 * This implementation returns null;
diff --git a/Solvers/Alloy-Solver/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/parser/antlr/internal/InternalAlloyLanguage.g b/Solvers/Alloy-Solver/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/parser/antlr/internal/InternalAlloyLanguage.g
index 25558250..a00a01ba 100644
--- a/Solvers/Alloy-Solver/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/parser/antlr/internal/InternalAlloyLanguage.g
+++ b/Solvers/Alloy-Solver/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/parser/antlr/internal/InternalAlloyLanguage.g
@@ -2650,7 +2650,18 @@ ruleALSBasicRelationTerm returns [EObject current=null]
2650 |(( 2650 |((
2651 { 2651 {
2652 $current = forceCreateModelElement( 2652 $current = forceCreateModelElement(
2653 grammarAccess.getALSBasicRelationTermAccess().getALSReferenceAction_4_0(), 2653 grammarAccess.getALSBasicRelationTermAccess().getALSStringAction_4_0(),
2654 $current);
2655 }
2656) otherlv_9='String'
2657 {
2658 newLeafNode(otherlv_9, grammarAccess.getALSBasicRelationTermAccess().getStringKeyword_4_1());
2659 }
2660)
2661 |((
2662 {
2663 $current = forceCreateModelElement(
2664 grammarAccess.getALSBasicRelationTermAccess().getALSReferenceAction_5_0(),
2654 $current); 2665 $current);
2655 } 2666 }
2656)( 2667)(
@@ -2660,9 +2671,9 @@ ruleALSBasicRelationTerm returns [EObject current=null]
2660 $current = createModelElement(grammarAccess.getALSBasicRelationTermRule()); 2671 $current = createModelElement(grammarAccess.getALSBasicRelationTermRule());
2661 } 2672 }
2662 } 2673 }
2663 otherlv_9=RULE_ID 2674 otherlv_11=RULE_ID
2664 { 2675 {
2665 newLeafNode(otherlv_9, grammarAccess.getALSBasicRelationTermAccess().getReferredALSRelationDeclarationCrossReference_4_1_0()); 2676 newLeafNode(otherlv_11, grammarAccess.getALSBasicRelationTermAccess().getReferredALSRelationDeclarationCrossReference_5_1_0());
2666 } 2677 }
2667 2678
2668) 2679)
@@ -2670,14 +2681,14 @@ ruleALSBasicRelationTerm returns [EObject current=null]
2670 |(( 2681 |((
2671 { 2682 {
2672 $current = forceCreateModelElement( 2683 $current = forceCreateModelElement(
2673 grammarAccess.getALSBasicRelationTermAccess().getALSNumberLiteralAction_5_0(), 2684 grammarAccess.getALSBasicRelationTermAccess().getALSNumberLiteralAction_6_0(),
2674 $current); 2685 $current);
2675 } 2686 }
2676)( 2687)(
2677( 2688(
2678 lv_value_11_0=RULE_INT 2689 lv_value_13_0=RULE_INT
2679 { 2690 {
2680 newLeafNode(lv_value_11_0, grammarAccess.getALSBasicRelationTermAccess().getValueINTTerminalRuleCall_5_1_0()); 2691 newLeafNode(lv_value_13_0, grammarAccess.getALSBasicRelationTermAccess().getValueINTTerminalRuleCall_6_1_0());
2681 } 2692 }
2682 { 2693 {
2683 if ($current==null) { 2694 if ($current==null) {
@@ -2686,28 +2697,53 @@ ruleALSBasicRelationTerm returns [EObject current=null]
2686 setWithLastConsumed( 2697 setWithLastConsumed(
2687 $current, 2698 $current,
2688 "value", 2699 "value",
2689 lv_value_11_0, 2700 lv_value_13_0,
2690 "org.eclipse.xtext.common.Terminals.INT"); 2701 "org.eclipse.xtext.common.Terminals.INT");
2691 } 2702 }
2692 2703
2693) 2704)
2694)) 2705))
2695 |( otherlv_12='(' 2706 |((
2696 { 2707 {
2697 newLeafNode(otherlv_12, grammarAccess.getALSBasicRelationTermAccess().getLeftParenthesisKeyword_6_0()); 2708 $current = forceCreateModelElement(
2709 grammarAccess.getALSBasicRelationTermAccess().getALSStringLiteralAction_7_0(),
2710 $current);
2711 }
2712)(
2713(
2714 lv_value_15_0=RULE_STRING
2715 {
2716 newLeafNode(lv_value_15_0, grammarAccess.getALSBasicRelationTermAccess().getValueSTRINGTerminalRuleCall_7_1_0());
2717 }
2718 {
2719 if ($current==null) {
2720 $current = createModelElement(grammarAccess.getALSBasicRelationTermRule());
2721 }
2722 setWithLastConsumed(
2723 $current,
2724 "value",
2725 lv_value_15_0,
2726 "org.eclipse.xtext.common.Terminals.STRING");
2727 }
2728
2729)
2730))
2731 |( otherlv_16='('
2732 {
2733 newLeafNode(otherlv_16, grammarAccess.getALSBasicRelationTermAccess().getLeftParenthesisKeyword_8_0());
2698 } 2734 }
2699 2735
2700 { 2736 {
2701 newCompositeNode(grammarAccess.getALSBasicRelationTermAccess().getALSTermParserRuleCall_6_1()); 2737 newCompositeNode(grammarAccess.getALSBasicRelationTermAccess().getALSTermParserRuleCall_8_1());
2702 } 2738 }
2703 this_ALSTerm_13=ruleALSTerm 2739 this_ALSTerm_17=ruleALSTerm
2704 { 2740 {
2705 $current = $this_ALSTerm_13.current; 2741 $current = $this_ALSTerm_17.current;
2706 afterParserOrEnumRuleCall(); 2742 afterParserOrEnumRuleCall();
2707 } 2743 }
2708 otherlv_14=')' 2744 otherlv_18=')'
2709 { 2745 {
2710 newLeafNode(otherlv_14, grammarAccess.getALSBasicRelationTermAccess().getRightParenthesisKeyword_6_2()); 2746 newLeafNode(otherlv_18, grammarAccess.getALSBasicRelationTermAccess().getRightParenthesisKeyword_8_2());
2711 } 2747 }
2712)) 2748))
2713; 2749;
@@ -2832,6 +2868,16 @@ ruleALSTypeScope returns [EObject current=null]
2832 $current = $this_ALSIntScope_1.current; 2868 $current = $this_ALSIntScope_1.current;
2833 afterParserOrEnumRuleCall(); 2869 afterParserOrEnumRuleCall();
2834 } 2870 }
2871
2872 |
2873 {
2874 newCompositeNode(grammarAccess.getALSTypeScopeAccess().getALSStringScopeParserRuleCall_2());
2875 }
2876 this_ALSStringScope_2=ruleALSStringScope
2877 {
2878 $current = $this_ALSStringScope_2.current;
2879 afterParserOrEnumRuleCall();
2880 }
2835) 2881)
2836; 2882;
2837 2883
@@ -2949,6 +2995,53 @@ ruleALSIntScope returns [EObject current=null]
2949 2995
2950 2996
2951 2997
2998// Entry rule entryRuleALSStringScope
2999entryRuleALSStringScope returns [EObject current=null]
3000 :
3001 { newCompositeNode(grammarAccess.getALSStringScopeRule()); }
3002 iv_ruleALSStringScope=ruleALSStringScope
3003 { $current=$iv_ruleALSStringScope.current; }
3004 EOF
3005;
3006
3007// Rule ALSStringScope
3008ruleALSStringScope returns [EObject current=null]
3009 @init { enterRule();
3010 }
3011 @after { leaveRule(); }:
3012( otherlv_0='exactly'
3013 {
3014 newLeafNode(otherlv_0, grammarAccess.getALSStringScopeAccess().getExactlyKeyword_0());
3015 }
3016(
3017(
3018 lv_number_1_0=RULE_INT
3019 {
3020 newLeafNode(lv_number_1_0, grammarAccess.getALSStringScopeAccess().getNumberINTTerminalRuleCall_1_0());
3021 }
3022 {
3023 if ($current==null) {
3024 $current = createModelElement(grammarAccess.getALSStringScopeRule());
3025 }
3026 setWithLastConsumed(
3027 $current,
3028 "number",
3029 lv_number_1_0,
3030 "org.eclipse.xtext.common.Terminals.INT");
3031 }
3032
3033)
3034) otherlv_2='String'
3035 {
3036 newLeafNode(otherlv_2, grammarAccess.getALSStringScopeAccess().getStringKeyword_2());
3037 }
3038)
3039;
3040
3041
3042
3043
3044
2952// Rule ALSMultiplicity 3045// Rule ALSMultiplicity
2953ruleALSMultiplicity returns [Enumerator current=null] 3046ruleALSMultiplicity returns [Enumerator current=null]
2954 @init { enterRule(); } 3047 @init { enterRule(); }
diff --git a/Solvers/Alloy-Solver/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/parser/antlr/internal/InternalAlloyLanguage.tokens b/Solvers/Alloy-Solver/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/parser/antlr/internal/InternalAlloyLanguage.tokens
index 49d2a448..94ce3ecb 100644
--- a/Solvers/Alloy-Solver/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/parser/antlr/internal/InternalAlloyLanguage.tokens
+++ b/Solvers/Alloy-Solver/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/parser/antlr/internal/InternalAlloyLanguage.tokens
@@ -3,8 +3,8 @@
3'#'=54 3'#'=54
4'&&'=34 4'&&'=34
5'&'=47 5'&'=47
6'('=60 6'('=61
7')'=61 7')'=62
8'*'=53 8'*'=53
9'+'=19 9'+'=19
10'++'=42 10'++'=42
@@ -23,40 +23,41 @@
23'>'=38 23'>'=38
24'>='=39 24'>='=39
25'Int'=59 25'Int'=59
26'String'=60
26'['=22 27'['=22
27']'=23 28']'=23
28'^'=52 29'^'=52
29'abstract'=15 30'abstract'=15
30'all'=65 31'all'=66
31'and'=35 32'and'=35
32'disj'=26 33'disj'=26
33'div'=75 34'div'=76
34'else'=33 35'else'=33
35'enum'=11 36'enum'=11
36'exactly'=64 37'exactly'=65
37'extends'=17 38'extends'=17
38'fact'=25 39'fact'=25
39'for'=63 40'for'=64
40'fun'=21 41'fun'=21
41'iden'=57 42'iden'=57
42'iff'=30 43'iff'=30
43'implies'=32 44'implies'=32
44'in'=18 45'in'=18
45'lone'=68 46'lone'=69
46'mul'=73 47'mul'=74
47'no'=66 48'no'=67
48'none'=56 49'none'=56
49'not'=50 50'not'=50
50'one'=69 51'one'=70
51'or'=28 52'or'=28
52'plus'=71 53'plus'=72
53'pred'=24 54'pred'=24
54'rem'=74 55'rem'=75
55'run'=62 56'run'=63
56'set'=70 57'set'=71
57'sig'=16 58'sig'=16
58'some'=67 59'some'=68
59'sub'=72 60'sub'=73
60'sum'=55 61'sum'=55
61'univ'=58 62'univ'=58
62'{'=12 63'{'=12
@@ -135,3 +136,4 @@ T__72=72
135T__73=73 136T__73=73
136T__74=74 137T__74=74
137T__75=75 138T__75=75
139T__76=76
diff --git a/Solvers/Alloy-Solver/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/parser/antlr/internal/InternalAlloyLanguageLexer.java b/Solvers/Alloy-Solver/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/parser/antlr/internal/InternalAlloyLanguageLexer.java
index 27488784..793fe13d 100644
--- a/Solvers/Alloy-Solver/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/parser/antlr/internal/InternalAlloyLanguageLexer.java
+++ b/Solvers/Alloy-Solver/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/parser/antlr/internal/InternalAlloyLanguageLexer.java
@@ -73,6 +73,7 @@ public class InternalAlloyLanguageLexer extends Lexer {
73 public static final int T__31=31; 73 public static final int T__31=31;
74 public static final int T__75=75; 74 public static final int T__75=75;
75 public static final int T__32=32; 75 public static final int T__32=32;
76 public static final int T__76=76;
76 public static final int RULE_WS=9; 77 public static final int RULE_WS=9;
77 public static final int RULE_ANY_OTHER=10; 78 public static final int RULE_ANY_OTHER=10;
78 public static final int T__48=48; 79 public static final int T__48=48;
@@ -1115,10 +1116,11 @@ public class InternalAlloyLanguageLexer extends Lexer {
1115 try { 1116 try {
1116 int _type = T__60; 1117 int _type = T__60;
1117 int _channel = DEFAULT_TOKEN_CHANNEL; 1118 int _channel = DEFAULT_TOKEN_CHANNEL;
1118 // InternalAlloyLanguage.g:60:7: ( '(' ) 1119 // InternalAlloyLanguage.g:60:7: ( 'String' )
1119 // InternalAlloyLanguage.g:60:9: '(' 1120 // InternalAlloyLanguage.g:60:9: 'String'
1120 { 1121 {
1121 match('('); 1122 match("String");
1123
1122 1124
1123 } 1125 }
1124 1126
@@ -1135,10 +1137,10 @@ public class InternalAlloyLanguageLexer extends Lexer {
1135 try { 1137 try {
1136 int _type = T__61; 1138 int _type = T__61;
1137 int _channel = DEFAULT_TOKEN_CHANNEL; 1139 int _channel = DEFAULT_TOKEN_CHANNEL;
1138 // InternalAlloyLanguage.g:61:7: ( ')' ) 1140 // InternalAlloyLanguage.g:61:7: ( '(' )
1139 // InternalAlloyLanguage.g:61:9: ')' 1141 // InternalAlloyLanguage.g:61:9: '('
1140 { 1142 {
1141 match(')'); 1143 match('(');
1142 1144
1143 } 1145 }
1144 1146
@@ -1155,11 +1157,10 @@ public class InternalAlloyLanguageLexer extends Lexer {
1155 try { 1157 try {
1156 int _type = T__62; 1158 int _type = T__62;
1157 int _channel = DEFAULT_TOKEN_CHANNEL; 1159 int _channel = DEFAULT_TOKEN_CHANNEL;
1158 // InternalAlloyLanguage.g:62:7: ( 'run' ) 1160 // InternalAlloyLanguage.g:62:7: ( ')' )
1159 // InternalAlloyLanguage.g:62:9: 'run' 1161 // InternalAlloyLanguage.g:62:9: ')'
1160 { 1162 {
1161 match("run"); 1163 match(')');
1162
1163 1164
1164 } 1165 }
1165 1166
@@ -1176,10 +1177,10 @@ public class InternalAlloyLanguageLexer extends Lexer {
1176 try { 1177 try {
1177 int _type = T__63; 1178 int _type = T__63;
1178 int _channel = DEFAULT_TOKEN_CHANNEL; 1179 int _channel = DEFAULT_TOKEN_CHANNEL;
1179 // InternalAlloyLanguage.g:63:7: ( 'for' ) 1180 // InternalAlloyLanguage.g:63:7: ( 'run' )
1180 // InternalAlloyLanguage.g:63:9: 'for' 1181 // InternalAlloyLanguage.g:63:9: 'run'
1181 { 1182 {
1182 match("for"); 1183 match("run");
1183 1184
1184 1185
1185 } 1186 }
@@ -1197,10 +1198,10 @@ public class InternalAlloyLanguageLexer extends Lexer {
1197 try { 1198 try {
1198 int _type = T__64; 1199 int _type = T__64;
1199 int _channel = DEFAULT_TOKEN_CHANNEL; 1200 int _channel = DEFAULT_TOKEN_CHANNEL;
1200 // InternalAlloyLanguage.g:64:7: ( 'exactly' ) 1201 // InternalAlloyLanguage.g:64:7: ( 'for' )
1201 // InternalAlloyLanguage.g:64:9: 'exactly' 1202 // InternalAlloyLanguage.g:64:9: 'for'
1202 { 1203 {
1203 match("exactly"); 1204 match("for");
1204 1205
1205 1206
1206 } 1207 }
@@ -1218,10 +1219,10 @@ public class InternalAlloyLanguageLexer extends Lexer {
1218 try { 1219 try {
1219 int _type = T__65; 1220 int _type = T__65;
1220 int _channel = DEFAULT_TOKEN_CHANNEL; 1221 int _channel = DEFAULT_TOKEN_CHANNEL;
1221 // InternalAlloyLanguage.g:65:7: ( 'all' ) 1222 // InternalAlloyLanguage.g:65:7: ( 'exactly' )
1222 // InternalAlloyLanguage.g:65:9: 'all' 1223 // InternalAlloyLanguage.g:65:9: 'exactly'
1223 { 1224 {
1224 match("all"); 1225 match("exactly");
1225 1226
1226 1227
1227 } 1228 }
@@ -1239,10 +1240,10 @@ public class InternalAlloyLanguageLexer extends Lexer {
1239 try { 1240 try {
1240 int _type = T__66; 1241 int _type = T__66;
1241 int _channel = DEFAULT_TOKEN_CHANNEL; 1242 int _channel = DEFAULT_TOKEN_CHANNEL;
1242 // InternalAlloyLanguage.g:66:7: ( 'no' ) 1243 // InternalAlloyLanguage.g:66:7: ( 'all' )
1243 // InternalAlloyLanguage.g:66:9: 'no' 1244 // InternalAlloyLanguage.g:66:9: 'all'
1244 { 1245 {
1245 match("no"); 1246 match("all");
1246 1247
1247 1248
1248 } 1249 }
@@ -1260,10 +1261,10 @@ public class InternalAlloyLanguageLexer extends Lexer {
1260 try { 1261 try {
1261 int _type = T__67; 1262 int _type = T__67;
1262 int _channel = DEFAULT_TOKEN_CHANNEL; 1263 int _channel = DEFAULT_TOKEN_CHANNEL;
1263 // InternalAlloyLanguage.g:67:7: ( 'some' ) 1264 // InternalAlloyLanguage.g:67:7: ( 'no' )
1264 // InternalAlloyLanguage.g:67:9: 'some' 1265 // InternalAlloyLanguage.g:67:9: 'no'
1265 { 1266 {
1266 match("some"); 1267 match("no");
1267 1268
1268 1269
1269 } 1270 }
@@ -1281,10 +1282,10 @@ public class InternalAlloyLanguageLexer extends Lexer {
1281 try { 1282 try {
1282 int _type = T__68; 1283 int _type = T__68;
1283 int _channel = DEFAULT_TOKEN_CHANNEL; 1284 int _channel = DEFAULT_TOKEN_CHANNEL;
1284 // InternalAlloyLanguage.g:68:7: ( 'lone' ) 1285 // InternalAlloyLanguage.g:68:7: ( 'some' )
1285 // InternalAlloyLanguage.g:68:9: 'lone' 1286 // InternalAlloyLanguage.g:68:9: 'some'
1286 { 1287 {
1287 match("lone"); 1288 match("some");
1288 1289
1289 1290
1290 } 1291 }
@@ -1302,10 +1303,10 @@ public class InternalAlloyLanguageLexer extends Lexer {
1302 try { 1303 try {
1303 int _type = T__69; 1304 int _type = T__69;
1304 int _channel = DEFAULT_TOKEN_CHANNEL; 1305 int _channel = DEFAULT_TOKEN_CHANNEL;
1305 // InternalAlloyLanguage.g:69:7: ( 'one' ) 1306 // InternalAlloyLanguage.g:69:7: ( 'lone' )
1306 // InternalAlloyLanguage.g:69:9: 'one' 1307 // InternalAlloyLanguage.g:69:9: 'lone'
1307 { 1308 {
1308 match("one"); 1309 match("lone");
1309 1310
1310 1311
1311 } 1312 }
@@ -1323,10 +1324,10 @@ public class InternalAlloyLanguageLexer extends Lexer {
1323 try { 1324 try {
1324 int _type = T__70; 1325 int _type = T__70;
1325 int _channel = DEFAULT_TOKEN_CHANNEL; 1326 int _channel = DEFAULT_TOKEN_CHANNEL;
1326 // InternalAlloyLanguage.g:70:7: ( 'set' ) 1327 // InternalAlloyLanguage.g:70:7: ( 'one' )
1327 // InternalAlloyLanguage.g:70:9: 'set' 1328 // InternalAlloyLanguage.g:70:9: 'one'
1328 { 1329 {
1329 match("set"); 1330 match("one");
1330 1331
1331 1332
1332 } 1333 }
@@ -1344,10 +1345,10 @@ public class InternalAlloyLanguageLexer extends Lexer {
1344 try { 1345 try {
1345 int _type = T__71; 1346 int _type = T__71;
1346 int _channel = DEFAULT_TOKEN_CHANNEL; 1347 int _channel = DEFAULT_TOKEN_CHANNEL;
1347 // InternalAlloyLanguage.g:71:7: ( 'plus' ) 1348 // InternalAlloyLanguage.g:71:7: ( 'set' )
1348 // InternalAlloyLanguage.g:71:9: 'plus' 1349 // InternalAlloyLanguage.g:71:9: 'set'
1349 { 1350 {
1350 match("plus"); 1351 match("set");
1351 1352
1352 1353
1353 } 1354 }
@@ -1365,10 +1366,10 @@ public class InternalAlloyLanguageLexer extends Lexer {
1365 try { 1366 try {
1366 int _type = T__72; 1367 int _type = T__72;
1367 int _channel = DEFAULT_TOKEN_CHANNEL; 1368 int _channel = DEFAULT_TOKEN_CHANNEL;
1368 // InternalAlloyLanguage.g:72:7: ( 'sub' ) 1369 // InternalAlloyLanguage.g:72:7: ( 'plus' )
1369 // InternalAlloyLanguage.g:72:9: 'sub' 1370 // InternalAlloyLanguage.g:72:9: 'plus'
1370 { 1371 {
1371 match("sub"); 1372 match("plus");
1372 1373
1373 1374
1374 } 1375 }
@@ -1386,10 +1387,10 @@ public class InternalAlloyLanguageLexer extends Lexer {
1386 try { 1387 try {
1387 int _type = T__73; 1388 int _type = T__73;
1388 int _channel = DEFAULT_TOKEN_CHANNEL; 1389 int _channel = DEFAULT_TOKEN_CHANNEL;
1389 // InternalAlloyLanguage.g:73:7: ( 'mul' ) 1390 // InternalAlloyLanguage.g:73:7: ( 'sub' )
1390 // InternalAlloyLanguage.g:73:9: 'mul' 1391 // InternalAlloyLanguage.g:73:9: 'sub'
1391 { 1392 {
1392 match("mul"); 1393 match("sub");
1393 1394
1394 1395
1395 } 1396 }
@@ -1407,10 +1408,10 @@ public class InternalAlloyLanguageLexer extends Lexer {
1407 try { 1408 try {
1408 int _type = T__74; 1409 int _type = T__74;
1409 int _channel = DEFAULT_TOKEN_CHANNEL; 1410 int _channel = DEFAULT_TOKEN_CHANNEL;
1410 // InternalAlloyLanguage.g:74:7: ( 'rem' ) 1411 // InternalAlloyLanguage.g:74:7: ( 'mul' )
1411 // InternalAlloyLanguage.g:74:9: 'rem' 1412 // InternalAlloyLanguage.g:74:9: 'mul'
1412 { 1413 {
1413 match("rem"); 1414 match("mul");
1414 1415
1415 1416
1416 } 1417 }
@@ -1428,10 +1429,10 @@ public class InternalAlloyLanguageLexer extends Lexer {
1428 try { 1429 try {
1429 int _type = T__75; 1430 int _type = T__75;
1430 int _channel = DEFAULT_TOKEN_CHANNEL; 1431 int _channel = DEFAULT_TOKEN_CHANNEL;
1431 // InternalAlloyLanguage.g:75:7: ( 'div' ) 1432 // InternalAlloyLanguage.g:75:7: ( 'rem' )
1432 // InternalAlloyLanguage.g:75:9: 'div' 1433 // InternalAlloyLanguage.g:75:9: 'rem'
1433 { 1434 {
1434 match("div"); 1435 match("rem");
1435 1436
1436 1437
1437 } 1438 }
@@ -1444,13 +1445,34 @@ public class InternalAlloyLanguageLexer extends Lexer {
1444 } 1445 }
1445 // $ANTLR end "T__75" 1446 // $ANTLR end "T__75"
1446 1447
1448 // $ANTLR start "T__76"
1449 public final void mT__76() throws RecognitionException {
1450 try {
1451 int _type = T__76;
1452 int _channel = DEFAULT_TOKEN_CHANNEL;
1453 // InternalAlloyLanguage.g:76:7: ( 'div' )
1454 // InternalAlloyLanguage.g:76:9: 'div'
1455 {
1456 match("div");
1457
1458
1459 }
1460
1461 state.type = _type;
1462 state.channel = _channel;
1463 }
1464 finally {
1465 }
1466 }
1467 // $ANTLR end "T__76"
1468
1447 // $ANTLR start "RULE_ID" 1469 // $ANTLR start "RULE_ID"
1448 public final void mRULE_ID() throws RecognitionException { 1470 public final void mRULE_ID() throws RecognitionException {
1449 try { 1471 try {
1450 int _type = RULE_ID; 1472 int _type = RULE_ID;
1451 int _channel = DEFAULT_TOKEN_CHANNEL; 1473 int _channel = DEFAULT_TOKEN_CHANNEL;
1452 // InternalAlloyLanguage.g:3032:9: ( ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '\\'' | '\"' | '0' .. '9' )* ) 1474 // InternalAlloyLanguage.g:3125:9: ( ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '\\'' | '\"' | '0' .. '9' )* )
1453 // InternalAlloyLanguage.g:3032:11: ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '\\'' | '\"' | '0' .. '9' )* 1475 // InternalAlloyLanguage.g:3125:11: ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '\\'' | '\"' | '0' .. '9' )*
1454 { 1476 {
1455 if ( (input.LA(1)>='A' && input.LA(1)<='Z')||input.LA(1)=='_'||(input.LA(1)>='a' && input.LA(1)<='z') ) { 1477 if ( (input.LA(1)>='A' && input.LA(1)<='Z')||input.LA(1)=='_'||(input.LA(1)>='a' && input.LA(1)<='z') ) {
1456 input.consume(); 1478 input.consume();
@@ -1461,7 +1483,7 @@ public class InternalAlloyLanguageLexer extends Lexer {
1461 recover(mse); 1483 recover(mse);
1462 throw mse;} 1484 throw mse;}
1463 1485
1464 // InternalAlloyLanguage.g:3032:35: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '\\'' | '\"' | '0' .. '9' )* 1486 // InternalAlloyLanguage.g:3125:35: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '\\'' | '\"' | '0' .. '9' )*
1465 loop1: 1487 loop1:
1466 do { 1488 do {
1467 int alt1=2; 1489 int alt1=2;
@@ -1510,10 +1532,10 @@ public class InternalAlloyLanguageLexer extends Lexer {
1510 try { 1532 try {
1511 int _type = RULE_INT; 1533 int _type = RULE_INT;
1512 int _channel = DEFAULT_TOKEN_CHANNEL; 1534 int _channel = DEFAULT_TOKEN_CHANNEL;
1513 // InternalAlloyLanguage.g:3034:10: ( ( '0' .. '9' )+ ) 1535 // InternalAlloyLanguage.g:3127:10: ( ( '0' .. '9' )+ )
1514 // InternalAlloyLanguage.g:3034:12: ( '0' .. '9' )+ 1536 // InternalAlloyLanguage.g:3127:12: ( '0' .. '9' )+
1515 { 1537 {
1516 // InternalAlloyLanguage.g:3034:12: ( '0' .. '9' )+ 1538 // InternalAlloyLanguage.g:3127:12: ( '0' .. '9' )+
1517 int cnt2=0; 1539 int cnt2=0;
1518 loop2: 1540 loop2:
1519 do { 1541 do {
@@ -1527,7 +1549,7 @@ public class InternalAlloyLanguageLexer extends Lexer {
1527 1549
1528 switch (alt2) { 1550 switch (alt2) {
1529 case 1 : 1551 case 1 :
1530 // InternalAlloyLanguage.g:3034:13: '0' .. '9' 1552 // InternalAlloyLanguage.g:3127:13: '0' .. '9'
1531 { 1553 {
1532 matchRange('0','9'); 1554 matchRange('0','9');
1533 1555
@@ -1559,10 +1581,10 @@ public class InternalAlloyLanguageLexer extends Lexer {
1559 try { 1581 try {
1560 int _type = RULE_STRING; 1582 int _type = RULE_STRING;
1561 int _channel = DEFAULT_TOKEN_CHANNEL; 1583 int _channel = DEFAULT_TOKEN_CHANNEL;
1562 // InternalAlloyLanguage.g:3036:13: ( ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' ) ) 1584 // InternalAlloyLanguage.g:3129:13: ( ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' ) )
1563 // InternalAlloyLanguage.g:3036:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' ) 1585 // InternalAlloyLanguage.g:3129:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
1564 { 1586 {
1565 // InternalAlloyLanguage.g:3036:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' ) 1587 // InternalAlloyLanguage.g:3129:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
1566 int alt5=2; 1588 int alt5=2;
1567 int LA5_0 = input.LA(1); 1589 int LA5_0 = input.LA(1);
1568 1590
@@ -1580,10 +1602,10 @@ public class InternalAlloyLanguageLexer extends Lexer {
1580 } 1602 }
1581 switch (alt5) { 1603 switch (alt5) {
1582 case 1 : 1604 case 1 :
1583 // InternalAlloyLanguage.g:3036:16: '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' 1605 // InternalAlloyLanguage.g:3129:16: '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"'
1584 { 1606 {
1585 match('\"'); 1607 match('\"');
1586 // InternalAlloyLanguage.g:3036:20: ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* 1608 // InternalAlloyLanguage.g:3129:20: ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )*
1587 loop3: 1609 loop3:
1588 do { 1610 do {
1589 int alt3=3; 1611 int alt3=3;
@@ -1599,7 +1621,7 @@ public class InternalAlloyLanguageLexer extends Lexer {
1599 1621
1600 switch (alt3) { 1622 switch (alt3) {
1601 case 1 : 1623 case 1 :
1602 // InternalAlloyLanguage.g:3036:21: '\\\\' . 1624 // InternalAlloyLanguage.g:3129:21: '\\\\' .
1603 { 1625 {
1604 match('\\'); 1626 match('\\');
1605 matchAny(); 1627 matchAny();
@@ -1607,7 +1629,7 @@ public class InternalAlloyLanguageLexer extends Lexer {
1607 } 1629 }
1608 break; 1630 break;
1609 case 2 : 1631 case 2 :
1610 // InternalAlloyLanguage.g:3036:28: ~ ( ( '\\\\' | '\"' ) ) 1632 // InternalAlloyLanguage.g:3129:28: ~ ( ( '\\\\' | '\"' ) )
1611 { 1633 {
1612 if ( (input.LA(1)>='\u0000' && input.LA(1)<='!')||(input.LA(1)>='#' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) { 1634 if ( (input.LA(1)>='\u0000' && input.LA(1)<='!')||(input.LA(1)>='#' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) {
1613 input.consume(); 1635 input.consume();
@@ -1632,10 +1654,10 @@ public class InternalAlloyLanguageLexer extends Lexer {
1632 } 1654 }
1633 break; 1655 break;
1634 case 2 : 1656 case 2 :
1635 // InternalAlloyLanguage.g:3036:48: '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' 1657 // InternalAlloyLanguage.g:3129:48: '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\''
1636 { 1658 {
1637 match('\''); 1659 match('\'');
1638 // InternalAlloyLanguage.g:3036:53: ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* 1660 // InternalAlloyLanguage.g:3129:53: ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )*
1639 loop4: 1661 loop4:
1640 do { 1662 do {
1641 int alt4=3; 1663 int alt4=3;
@@ -1651,7 +1673,7 @@ public class InternalAlloyLanguageLexer extends Lexer {
1651 1673
1652 switch (alt4) { 1674 switch (alt4) {
1653 case 1 : 1675 case 1 :
1654 // InternalAlloyLanguage.g:3036:54: '\\\\' . 1676 // InternalAlloyLanguage.g:3129:54: '\\\\' .
1655 { 1677 {
1656 match('\\'); 1678 match('\\');
1657 matchAny(); 1679 matchAny();
@@ -1659,7 +1681,7 @@ public class InternalAlloyLanguageLexer extends Lexer {
1659 } 1681 }
1660 break; 1682 break;
1661 case 2 : 1683 case 2 :
1662 // InternalAlloyLanguage.g:3036:61: ~ ( ( '\\\\' | '\\'' ) ) 1684 // InternalAlloyLanguage.g:3129:61: ~ ( ( '\\\\' | '\\'' ) )
1663 { 1685 {
1664 if ( (input.LA(1)>='\u0000' && input.LA(1)<='&')||(input.LA(1)>='(' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) { 1686 if ( (input.LA(1)>='\u0000' && input.LA(1)<='&')||(input.LA(1)>='(' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) {
1665 input.consume(); 1687 input.consume();
@@ -1702,12 +1724,12 @@ public class InternalAlloyLanguageLexer extends Lexer {
1702 try { 1724 try {
1703 int _type = RULE_ML_COMMENT; 1725 int _type = RULE_ML_COMMENT;
1704 int _channel = DEFAULT_TOKEN_CHANNEL; 1726 int _channel = DEFAULT_TOKEN_CHANNEL;
1705 // InternalAlloyLanguage.g:3038:17: ( '/*' ( options {greedy=false; } : . )* '*/' ) 1727 // InternalAlloyLanguage.g:3131:17: ( '/*' ( options {greedy=false; } : . )* '*/' )
1706 // InternalAlloyLanguage.g:3038:19: '/*' ( options {greedy=false; } : . )* '*/' 1728 // InternalAlloyLanguage.g:3131:19: '/*' ( options {greedy=false; } : . )* '*/'
1707 { 1729 {
1708 match("/*"); 1730 match("/*");
1709 1731
1710 // InternalAlloyLanguage.g:3038:24: ( options {greedy=false; } : . )* 1732 // InternalAlloyLanguage.g:3131:24: ( options {greedy=false; } : . )*
1711 loop6: 1733 loop6:
1712 do { 1734 do {
1713 int alt6=2; 1735 int alt6=2;
@@ -1732,7 +1754,7 @@ public class InternalAlloyLanguageLexer extends Lexer {
1732 1754
1733 switch (alt6) { 1755 switch (alt6) {
1734 case 1 : 1756 case 1 :
1735 // InternalAlloyLanguage.g:3038:52: . 1757 // InternalAlloyLanguage.g:3131:52: .
1736 { 1758 {
1737 matchAny(); 1759 matchAny();
1738 1760
@@ -1762,12 +1784,12 @@ public class InternalAlloyLanguageLexer extends Lexer {
1762 try { 1784 try {
1763 int _type = RULE_SL_COMMENT; 1785 int _type = RULE_SL_COMMENT;
1764 int _channel = DEFAULT_TOKEN_CHANNEL; 1786 int _channel = DEFAULT_TOKEN_CHANNEL;
1765 // InternalAlloyLanguage.g:3040:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? ) 1787 // InternalAlloyLanguage.g:3133:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? )
1766 // InternalAlloyLanguage.g:3040:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? 1788 // InternalAlloyLanguage.g:3133:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )?
1767 { 1789 {
1768 match("//"); 1790 match("//");
1769 1791
1770 // InternalAlloyLanguage.g:3040:24: (~ ( ( '\\n' | '\\r' ) ) )* 1792 // InternalAlloyLanguage.g:3133:24: (~ ( ( '\\n' | '\\r' ) ) )*
1771 loop7: 1793 loop7:
1772 do { 1794 do {
1773 int alt7=2; 1795 int alt7=2;
@@ -1780,7 +1802,7 @@ public class InternalAlloyLanguageLexer extends Lexer {
1780 1802
1781 switch (alt7) { 1803 switch (alt7) {
1782 case 1 : 1804 case 1 :
1783 // InternalAlloyLanguage.g:3040:24: ~ ( ( '\\n' | '\\r' ) ) 1805 // InternalAlloyLanguage.g:3133:24: ~ ( ( '\\n' | '\\r' ) )
1784 { 1806 {
1785 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') ) { 1807 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') ) {
1786 input.consume(); 1808 input.consume();
@@ -1800,7 +1822,7 @@ public class InternalAlloyLanguageLexer extends Lexer {
1800 } 1822 }
1801 } while (true); 1823 } while (true);
1802 1824
1803 // InternalAlloyLanguage.g:3040:40: ( ( '\\r' )? '\\n' )? 1825 // InternalAlloyLanguage.g:3133:40: ( ( '\\r' )? '\\n' )?
1804 int alt9=2; 1826 int alt9=2;
1805 int LA9_0 = input.LA(1); 1827 int LA9_0 = input.LA(1);
1806 1828
@@ -1809,9 +1831,9 @@ public class InternalAlloyLanguageLexer extends Lexer {
1809 } 1831 }
1810 switch (alt9) { 1832 switch (alt9) {
1811 case 1 : 1833 case 1 :
1812 // InternalAlloyLanguage.g:3040:41: ( '\\r' )? '\\n' 1834 // InternalAlloyLanguage.g:3133:41: ( '\\r' )? '\\n'
1813 { 1835 {
1814 // InternalAlloyLanguage.g:3040:41: ( '\\r' )? 1836 // InternalAlloyLanguage.g:3133:41: ( '\\r' )?
1815 int alt8=2; 1837 int alt8=2;
1816 int LA8_0 = input.LA(1); 1838 int LA8_0 = input.LA(1);
1817 1839
@@ -1820,7 +1842,7 @@ public class InternalAlloyLanguageLexer extends Lexer {
1820 } 1842 }
1821 switch (alt8) { 1843 switch (alt8) {
1822 case 1 : 1844 case 1 :
1823 // InternalAlloyLanguage.g:3040:41: '\\r' 1845 // InternalAlloyLanguage.g:3133:41: '\\r'
1824 { 1846 {
1825 match('\r'); 1847 match('\r');
1826 1848
@@ -1852,10 +1874,10 @@ public class InternalAlloyLanguageLexer extends Lexer {
1852 try { 1874 try {
1853 int _type = RULE_WS; 1875 int _type = RULE_WS;
1854 int _channel = DEFAULT_TOKEN_CHANNEL; 1876 int _channel = DEFAULT_TOKEN_CHANNEL;
1855 // InternalAlloyLanguage.g:3042:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ ) 1877 // InternalAlloyLanguage.g:3135:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ )
1856 // InternalAlloyLanguage.g:3042:11: ( ' ' | '\\t' | '\\r' | '\\n' )+ 1878 // InternalAlloyLanguage.g:3135:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
1857 { 1879 {
1858 // InternalAlloyLanguage.g:3042:11: ( ' ' | '\\t' | '\\r' | '\\n' )+ 1880 // InternalAlloyLanguage.g:3135:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
1859 int cnt10=0; 1881 int cnt10=0;
1860 loop10: 1882 loop10:
1861 do { 1883 do {
@@ -1909,8 +1931,8 @@ public class InternalAlloyLanguageLexer extends Lexer {
1909 try { 1931 try {
1910 int _type = RULE_ANY_OTHER; 1932 int _type = RULE_ANY_OTHER;
1911 int _channel = DEFAULT_TOKEN_CHANNEL; 1933 int _channel = DEFAULT_TOKEN_CHANNEL;
1912 // InternalAlloyLanguage.g:3044:16: ( . ) 1934 // InternalAlloyLanguage.g:3137:16: ( . )
1913 // InternalAlloyLanguage.g:3044:18: . 1935 // InternalAlloyLanguage.g:3137:18: .
1914 { 1936 {
1915 matchAny(); 1937 matchAny();
1916 1938
@@ -1925,8 +1947,8 @@ public class InternalAlloyLanguageLexer extends Lexer {
1925 // $ANTLR end "RULE_ANY_OTHER" 1947 // $ANTLR end "RULE_ANY_OTHER"
1926 1948
1927 public void mTokens() throws RecognitionException { 1949 public void mTokens() throws RecognitionException {
1928 // InternalAlloyLanguage.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 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | T__50 | T__51 | T__52 | T__53 | T__54 | T__55 | T__56 | T__57 | T__58 | T__59 | T__60 | T__61 | T__62 | T__63 | T__64 | T__65 | T__66 | T__67 | T__68 | T__69 | T__70 | T__71 | T__72 | T__73 | T__74 | T__75 | RULE_ID | RULE_INT | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER ) 1950 // InternalAlloyLanguage.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 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | T__50 | T__51 | T__52 | T__53 | T__54 | T__55 | T__56 | T__57 | T__58 | T__59 | T__60 | T__61 | T__62 | T__63 | T__64 | T__65 | T__66 | T__67 | T__68 | T__69 | T__70 | T__71 | T__72 | T__73 | T__74 | T__75 | T__76 | RULE_ID | RULE_INT | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER )
1929 int alt11=72; 1951 int alt11=73;
1930 alt11 = dfa11.predict(input); 1952 alt11 = dfa11.predict(input);
1931 switch (alt11) { 1953 switch (alt11) {
1932 case 1 : 1954 case 1 :
@@ -2385,49 +2407,56 @@ public class InternalAlloyLanguageLexer extends Lexer {
2385 } 2407 }
2386 break; 2408 break;
2387 case 66 : 2409 case 66 :
2388 // InternalAlloyLanguage.g:1:400: RULE_ID 2410 // InternalAlloyLanguage.g:1:400: T__76
2389 { 2411 {
2390 mRULE_ID(); 2412 mT__76();
2391 2413
2392 } 2414 }
2393 break; 2415 break;
2394 case 67 : 2416 case 67 :
2395 // InternalAlloyLanguage.g:1:408: RULE_INT 2417 // InternalAlloyLanguage.g:1:406: RULE_ID
2396 { 2418 {
2397 mRULE_INT(); 2419 mRULE_ID();
2398 2420
2399 } 2421 }
2400 break; 2422 break;
2401 case 68 : 2423 case 68 :
2402 // InternalAlloyLanguage.g:1:417: RULE_STRING 2424 // InternalAlloyLanguage.g:1:414: RULE_INT
2403 { 2425 {
2404 mRULE_STRING(); 2426 mRULE_INT();
2405 2427
2406 } 2428 }
2407 break; 2429 break;
2408 case 69 : 2430 case 69 :
2409 // InternalAlloyLanguage.g:1:429: RULE_ML_COMMENT 2431 // InternalAlloyLanguage.g:1:423: RULE_STRING
2410 { 2432 {
2411 mRULE_ML_COMMENT(); 2433 mRULE_STRING();
2412 2434
2413 } 2435 }
2414 break; 2436 break;
2415 case 70 : 2437 case 70 :
2416 // InternalAlloyLanguage.g:1:445: RULE_SL_COMMENT 2438 // InternalAlloyLanguage.g:1:435: RULE_ML_COMMENT
2417 { 2439 {
2418 mRULE_SL_COMMENT(); 2440 mRULE_ML_COMMENT();
2419 2441
2420 } 2442 }
2421 break; 2443 break;
2422 case 71 : 2444 case 71 :
2423 // InternalAlloyLanguage.g:1:461: RULE_WS 2445 // InternalAlloyLanguage.g:1:451: RULE_SL_COMMENT
2424 { 2446 {
2425 mRULE_WS(); 2447 mRULE_SL_COMMENT();
2426 2448
2427 } 2449 }
2428 break; 2450 break;
2429 case 72 : 2451 case 72 :
2430 // InternalAlloyLanguage.g:1:469: RULE_ANY_OTHER 2452 // InternalAlloyLanguage.g:1:467: RULE_WS
2453 {
2454 mRULE_WS();
2455
2456 }
2457 break;
2458 case 73 :
2459 // InternalAlloyLanguage.g:1:475: RULE_ANY_OTHER
2431 { 2460 {
2432 mRULE_ANY_OTHER(); 2461 mRULE_ANY_OTHER();
2433 2462
@@ -2441,97 +2470,96 @@ public class InternalAlloyLanguageLexer extends Lexer {
2441 2470
2442 protected DFA11 dfa11 = new DFA11(this); 2471 protected DFA11 dfa11 = new DFA11(this);
2443 static final String DFA11_eotS = 2472 static final String DFA11_eotS =
2444 "\1\uffff\1\56\3\uffff\3\56\1\76\1\100\1\56\2\uffff\2\56\1\52\1\56\1\116\1\120\1\122\1\124\1\126\1\uffff\1\131\1\56\4\uffff\2\56\2\uffff\3\56\2\uffff\3\52\2\uffff\3\56\4\uffff\7\56\1\170\3\56\4\uffff\3\56\2\uffff\3\56\1\uffff\1\u0083\1\56\1\u0086\15\uffff\1\u0089\4\uffff\2\56\2\uffff\4\56\5\uffff\5\56\1\u0095\1\u0096\1\u0097\1\u0098\1\u0099\1\56\1\u009b\1\uffff\1\u009c\2\56\1\u009f\1\56\1\u00a1\3\56\1\u00a5\1\uffff\1\u00a6\2\uffff\1\u00a7\1\56\1\uffff\1\56\1\u00aa\1\u00ab\1\u00ac\1\56\1\u00ae\1\u00af\2\56\1\u00b2\1\56\5\uffff\1\u00b4\2\uffff\1\56\1\u00b6\1\uffff\1\u00b7\1\uffff\1\u00b8\1\u00b9\1\u00ba\3\uffff\1\u00bb\1\u00bc\3\uffff\1\u00bd\2\uffff\2\56\1\uffff\1\56\1\uffff\1\56\10\uffff\4\56\1\u00c6\1\u00c7\1\56\1\u00c9\2\uffff\1\u00ca\2\uffff"; 2473 "\1\uffff\1\57\3\uffff\3\57\1\77\1\101\1\57\2\uffff\2\57\1\53\1\57\1\117\1\121\1\123\1\125\1\127\1\uffff\1\132\1\57\4\uffff\3\57\2\uffff\3\57\2\uffff\3\53\2\uffff\3\57\4\uffff\7\57\1\172\3\57\4\uffff\3\57\2\uffff\3\57\1\uffff\1\u0085\1\57\1\u0088\15\uffff\1\u008b\4\uffff\3\57\2\uffff\4\57\5\uffff\5\57\1\u0098\1\u0099\1\u009a\1\u009b\1\u009c\1\57\1\u009e\1\uffff\1\u009f\2\57\1\u00a2\1\57\1\u00a4\3\57\1\u00a8\1\uffff\1\u00a9\2\uffff\1\u00aa\1\57\1\uffff\1\57\1\u00ad\1\57\1\u00af\1\u00b0\1\57\1\u00b2\1\u00b3\2\57\1\u00b6\1\57\5\uffff\1\u00b8\2\uffff\1\57\1\u00ba\1\uffff\1\u00bb\1\uffff\1\u00bc\1\u00bd\1\u00be\3\uffff\1\u00bf\1\u00c0\1\uffff\1\57\2\uffff\1\u00c2\2\uffff\2\57\1\uffff\1\57\1\uffff\1\57\7\uffff\1\57\1\uffff\4\57\1\u00cc\1\u00cd\1\u00ce\1\57\1\u00d0\3\uffff\1\u00d1\2\uffff";
2445 static final String DFA11_eofS = 2474 static final String DFA11_eofS =
2446 "\u00cb\uffff"; 2475 "\u00d2\uffff";
2447 static final String DFA11_minS = 2476 static final String DFA11_minS =
2448 "\1\0\1\154\3\uffff\1\142\1\145\1\144\1\53\1\76\1\141\2\uffff\1\154\1\151\1\174\1\156\1\72\1\76\1\46\2\75\1\uffff\1\76\1\157\4\uffff\2\156\2\uffff\1\145\1\157\1\165\2\uffff\2\0\1\52\2\uffff\1\165\1\141\1\163\4\uffff\1\163\1\144\1\154\1\147\1\142\1\155\1\164\1\42\1\146\1\160\1\145\4\uffff\1\156\1\143\1\162\2\uffff\1\145\1\165\1\163\1\uffff\1\42\1\145\1\76\15\uffff\1\42\4\uffff\1\151\1\164\2\uffff\1\156\1\155\1\156\1\154\5\uffff\1\155\1\145\1\143\1\145\1\164\5\42\1\145\1\42\1\uffff\1\42\1\154\1\156\1\42\1\164\1\42\1\144\1\163\1\152\1\42\1\uffff\1\42\2\uffff\1\42\1\145\1\uffff\1\166\3\42\1\145\2\42\1\156\1\164\1\42\1\162\5\uffff\1\42\2\uffff\1\151\1\42\1\uffff\1\42\1\uffff\3\42\3\uffff\2\42\3\uffff\1\42\2\uffff\1\144\1\154\1\uffff\1\141\1\uffff\1\145\10\uffff\1\163\1\171\1\143\1\163\2\42\1\164\1\42\2\uffff\1\42\2\uffff"; 2477 "\1\0\1\154\3\uffff\1\142\1\145\1\144\1\53\1\76\1\141\2\uffff\1\154\1\151\1\174\1\156\1\72\1\76\1\46\2\75\1\uffff\1\76\1\157\4\uffff\2\156\1\164\2\uffff\1\145\1\157\1\165\2\uffff\2\0\1\52\2\uffff\1\165\1\141\1\163\4\uffff\1\163\1\144\1\154\1\147\1\142\1\155\1\164\1\42\1\146\1\160\1\145\4\uffff\1\156\1\143\1\162\2\uffff\1\145\1\165\1\163\1\uffff\1\42\1\145\1\76\15\uffff\1\42\4\uffff\1\151\1\164\1\162\2\uffff\1\156\1\155\1\156\1\154\5\uffff\1\155\1\145\1\143\1\145\1\164\5\42\1\145\1\42\1\uffff\1\42\1\154\1\156\1\42\1\164\1\42\1\144\1\163\1\152\1\42\1\uffff\1\42\2\uffff\1\42\1\145\1\uffff\1\166\1\42\1\151\2\42\1\145\2\42\1\156\1\164\1\42\1\162\5\uffff\1\42\2\uffff\1\151\1\42\1\uffff\1\42\1\uffff\3\42\3\uffff\2\42\1\uffff\1\156\2\uffff\1\42\2\uffff\1\144\1\154\1\uffff\1\141\1\uffff\1\145\7\uffff\1\147\1\uffff\1\163\1\171\1\143\1\163\3\42\1\164\1\42\3\uffff\1\42\2\uffff";
2449 static final String DFA11_maxS = 2478 static final String DFA11_maxS =
2450 "\1\uffff\1\170\3\uffff\1\156\1\165\1\156\1\53\1\76\1\165\2\uffff\1\162\1\151\1\174\1\162\1\75\1\76\1\46\2\75\1\uffff\1\76\1\157\4\uffff\2\156\2\uffff\1\165\1\157\1\165\2\uffff\2\uffff\1\57\2\uffff\1\165\1\164\1\163\4\uffff\1\163\1\144\1\154\1\147\2\155\1\164\1\172\1\146\1\160\1\145\4\uffff\1\156\1\143\1\162\2\uffff\1\145\1\165\1\166\1\uffff\1\172\1\145\1\76\15\uffff\1\172\4\uffff\1\151\1\164\2\uffff\1\156\1\155\1\156\1\154\5\uffff\1\155\1\145\1\143\1\145\1\164\5\172\1\145\1\172\1\uffff\1\172\1\154\1\156\1\172\1\164\1\172\1\144\1\163\1\152\1\172\1\uffff\1\172\2\uffff\1\172\1\145\1\uffff\1\166\3\172\1\145\2\172\1\156\1\164\1\172\1\162\5\uffff\1\172\2\uffff\1\151\1\172\1\uffff\1\172\1\uffff\3\172\3\uffff\2\172\3\uffff\1\172\2\uffff\1\144\1\154\1\uffff\1\141\1\uffff\1\145\10\uffff\1\163\1\171\1\143\1\163\2\172\1\164\1\172\2\uffff\1\172\2\uffff"; 2479 "\1\uffff\1\170\3\uffff\1\156\1\165\1\156\1\53\1\76\1\165\2\uffff\1\162\1\151\1\174\1\162\1\75\1\76\1\46\2\75\1\uffff\1\76\1\157\4\uffff\2\156\1\164\2\uffff\1\165\1\157\1\165\2\uffff\2\uffff\1\57\2\uffff\1\165\1\164\1\163\4\uffff\1\163\1\144\1\154\1\147\2\155\1\164\1\172\1\146\1\160\1\145\4\uffff\1\156\1\143\1\162\2\uffff\1\145\1\165\1\166\1\uffff\1\172\1\145\1\76\15\uffff\1\172\4\uffff\1\151\1\164\1\162\2\uffff\1\156\1\155\1\156\1\154\5\uffff\1\155\1\145\1\143\1\145\1\164\5\172\1\145\1\172\1\uffff\1\172\1\154\1\156\1\172\1\164\1\172\1\144\1\163\1\152\1\172\1\uffff\1\172\2\uffff\1\172\1\145\1\uffff\1\166\1\172\1\151\2\172\1\145\2\172\1\156\1\164\1\172\1\162\5\uffff\1\172\2\uffff\1\151\1\172\1\uffff\1\172\1\uffff\3\172\3\uffff\2\172\1\uffff\1\156\2\uffff\1\172\2\uffff\1\144\1\154\1\uffff\1\141\1\uffff\1\145\7\uffff\1\147\1\uffff\1\163\1\171\1\143\1\163\3\172\1\164\1\172\3\uffff\1\172\2\uffff";
2451 static final String DFA11_acceptS = 2480 static final String DFA11_acceptS =
2452 "\2\uffff\1\2\1\3\1\4\6\uffff\1\14\1\15\11\uffff\1\43\2\uffff\1\51\1\52\1\53\1\54\2\uffff\1\62\1\63\3\uffff\1\102\1\103\3\uffff\1\107\1\110\3\uffff\1\102\1\2\1\3\1\4\13\uffff\1\40\1\11\1\41\1\12\3\uffff\1\14\1\15\3\uffff\1\21\3\uffff\1\42\1\36\1\25\1\32\1\30\1\45\1\33\1\47\1\35\1\34\1\43\1\46\1\44\1\uffff\1\51\1\52\1\53\1\54\2\uffff\1\62\1\63\4\uffff\1\103\1\104\1\105\1\106\1\107\14\uffff\1\10\12\uffff\1\22\1\uffff\1\23\1\37\2\uffff\1\70\13\uffff\1\31\1\67\1\6\1\55\1\76\1\uffff\1\74\1\24\2\uffff\1\13\1\uffff\1\65\3\uffff\1\101\1\73\1\50\2\uffff\1\61\1\64\1\100\1\uffff\1\77\1\1\2\uffff\1\27\1\uffff\1\71\1\uffff\1\57\1\17\1\16\1\75\1\20\1\56\1\60\1\72\10\uffff\1\7\1\66\1\uffff\1\26\1\5"; 2481 "\2\uffff\1\2\1\3\1\4\6\uffff\1\14\1\15\11\uffff\1\43\2\uffff\1\51\1\52\1\53\1\54\3\uffff\1\63\1\64\3\uffff\1\103\1\104\3\uffff\1\110\1\111\3\uffff\1\103\1\2\1\3\1\4\13\uffff\1\40\1\11\1\41\1\12\3\uffff\1\14\1\15\3\uffff\1\21\3\uffff\1\42\1\36\1\25\1\32\1\30\1\45\1\33\1\47\1\35\1\34\1\43\1\46\1\44\1\uffff\1\51\1\52\1\53\1\54\3\uffff\1\63\1\64\4\uffff\1\104\1\105\1\106\1\107\1\110\14\uffff\1\10\12\uffff\1\22\1\uffff\1\23\1\37\2\uffff\1\71\14\uffff\1\31\1\70\1\6\1\55\1\77\1\uffff\1\75\1\24\2\uffff\1\13\1\uffff\1\66\3\uffff\1\102\1\74\1\50\2\uffff\1\61\1\uffff\1\65\1\101\1\uffff\1\100\1\1\2\uffff\1\27\1\uffff\1\72\1\uffff\1\57\1\17\1\16\1\76\1\20\1\56\1\60\1\uffff\1\73\11\uffff\1\62\1\7\1\67\1\uffff\1\26\1\5";
2453 static final String DFA11_specialS = 2482 static final String DFA11_specialS =
2454 "\1\0\45\uffff\1\1\1\2\u00a3\uffff}>"; 2483 "\1\1\46\uffff\1\2\1\0\u00a9\uffff}>";
2455 static final String[] DFA11_transitionS = { 2484 static final String[] DFA11_transitionS = {
2456 "\11\52\2\51\2\52\1\51\22\52\1\51\1\24\1\46\1\34\2\52\1\23\1\47\1\37\1\40\1\33\1\10\1\3\1\27\1\26\1\50\12\45\1\11\1\52\1\21\1\22\1\25\2\52\10\44\1\36\21\44\1\13\1\52\1\14\1\32\1\44\1\52\1\5\2\44\1\16\1\1\1\12\2\44\1\7\2\44\1\42\1\43\1\30\1\20\1\15\1\44\1\41\1\6\1\44\1\35\5\44\1\2\1\17\1\4\1\31\uff81\52", 2485 "\11\53\2\52\2\53\1\52\22\53\1\52\1\24\1\47\1\34\2\53\1\23\1\50\1\40\1\41\1\33\1\10\1\3\1\27\1\26\1\51\12\46\1\11\1\53\1\21\1\22\1\25\2\53\10\45\1\36\11\45\1\37\7\45\1\13\1\53\1\14\1\32\1\45\1\53\1\5\2\45\1\16\1\1\1\12\2\45\1\7\2\45\1\43\1\44\1\30\1\20\1\15\1\45\1\42\1\6\1\45\1\35\5\45\1\2\1\17\1\4\1\31\uff81\53",
2457 "\1\55\1\uffff\1\53\11\uffff\1\54", 2486 "\1\56\1\uffff\1\54\11\uffff\1\55",
2458 "", 2487 "",
2459 "", 2488 "",
2460 "", 2489 "",
2461 "\1\62\11\uffff\1\64\1\uffff\1\63", 2490 "\1\63\11\uffff\1\65\1\uffff\1\64",
2462 "\1\70\3\uffff\1\65\5\uffff\1\67\5\uffff\1\66", 2491 "\1\71\3\uffff\1\66\5\uffff\1\70\5\uffff\1\67",
2463 "\1\74\1\uffff\1\72\6\uffff\1\73\1\71", 2492 "\1\75\1\uffff\1\73\6\uffff\1\74\1\72",
2464 "\1\75", 2493 "\1\76",
2465 "\1\77", 2494 "\1\100",
2466 "\1\102\15\uffff\1\103\5\uffff\1\101", 2495 "\1\103\15\uffff\1\104\5\uffff\1\102",
2467 "", 2496 "",
2468 "", 2497 "",
2469 "\1\107\5\uffff\1\106", 2498 "\1\110\5\uffff\1\107",
2470 "\1\110",
2471 "\1\111", 2499 "\1\111",
2472 "\1\113\3\uffff\1\112", 2500 "\1\112",
2473 "\1\115\2\uffff\1\114", 2501 "\1\114\3\uffff\1\113",
2474 "\1\117", 2502 "\1\116\2\uffff\1\115",
2475 "\1\121", 2503 "\1\120",
2476 "\1\123", 2504 "\1\122",
2477 "\1\125", 2505 "\1\124",
2506 "\1\126",
2478 "", 2507 "",
2479 "\1\130", 2508 "\1\131",
2480 "\1\132", 2509 "\1\133",
2481 "", 2510 "",
2482 "", 2511 "",
2483 "", 2512 "",
2484 "", 2513 "",
2485 "\1\137",
2486 "\1\140", 2514 "\1\140",
2515 "\1\141",
2516 "\1\142",
2487 "", 2517 "",
2488 "", 2518 "",
2489 "\1\144\17\uffff\1\143", 2519 "\1\146\17\uffff\1\145",
2490 "\1\145", 2520 "\1\147",
2491 "\1\146", 2521 "\1\150",
2492 "", 2522 "",
2493 "", 2523 "",
2494 "\0\150", 2524 "\0\152",
2495 "\0\150", 2525 "\0\152",
2496 "\1\151\4\uffff\1\152", 2526 "\1\153\4\uffff\1\154",
2497 "", 2527 "",
2498 "", 2528 "",
2499 "\1\154", 2529 "\1\156",
2500 "\1\156\22\uffff\1\155", 2530 "\1\160\22\uffff\1\157",
2501 "\1\157", 2531 "\1\161",
2502 "", 2532 "",
2503 "", 2533 "",
2504 "", 2534 "",
2505 "", 2535 "",
2506 "\1\160",
2507 "\1\161",
2508 "\1\162", 2536 "\1\162",
2509 "\1\163", 2537 "\1\163",
2510 "\1\165\12\uffff\1\164", 2538 "\1\164",
2511 "\1\166", 2539 "\1\165",
2512 "\1\167", 2540 "\1\167\12\uffff\1\166",
2513 "\1\56\4\uffff\1\56\10\uffff\12\56\7\uffff\32\56\4\uffff\1\56\1\uffff\32\56", 2541 "\1\170",
2514 "\1\171", 2542 "\1\171",
2515 "\1\172", 2543 "\1\57\4\uffff\1\57\10\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57",
2516 "\1\173", 2544 "\1\173",
2545 "\1\174",
2546 "\1\175",
2517 "", 2547 "",
2518 "", 2548 "",
2519 "", 2549 "",
2520 "", 2550 "",
2521 "\1\174",
2522 "\1\175",
2523 "\1\176", 2551 "\1\176",
2524 "",
2525 "",
2526 "\1\177", 2552 "\1\177",
2527 "\1\u0080", 2553 "\1\u0080",
2528 "\1\u0081\2\uffff\1\u0082",
2529 "", 2554 "",
2530 "\1\56\4\uffff\1\56\10\uffff\12\56\7\uffff\32\56\4\uffff\1\56\1\uffff\32\56",
2531 "\1\u0084",
2532 "\1\u0085",
2533 "", 2555 "",
2556 "\1\u0081",
2557 "\1\u0082",
2558 "\1\u0083\2\uffff\1\u0084",
2534 "", 2559 "",
2560 "\1\57\4\uffff\1\57\10\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57",
2561 "\1\u0086",
2562 "\1\u0087",
2535 "", 2563 "",
2536 "", 2564 "",
2537 "", 2565 "",
@@ -2543,98 +2571,103 @@ public class InternalAlloyLanguageLexer extends Lexer {
2543 "", 2571 "",
2544 "", 2572 "",
2545 "", 2573 "",
2546 "\1\56\4\uffff\1\56\10\uffff\12\56\7\uffff\32\56\4\uffff\1\56\1\uffff\15\56\1\u0088\5\56\1\u0087\6\56",
2547 "", 2574 "",
2548 "", 2575 "",
2576 "\1\57\4\uffff\1\57\10\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\15\57\1\u008a\5\57\1\u0089\6\57",
2549 "", 2577 "",
2550 "", 2578 "",
2551 "\1\u008a",
2552 "\1\u008b",
2553 "", 2579 "",
2554 "", 2580 "",
2555 "\1\u008c", 2581 "\1\u008c",
2556 "\1\u008d", 2582 "\1\u008d",
2557 "\1\u008e", 2583 "\1\u008e",
2584 "",
2585 "",
2558 "\1\u008f", 2586 "\1\u008f",
2587 "\1\u0090",
2588 "\1\u0091",
2589 "\1\u0092",
2559 "", 2590 "",
2560 "", 2591 "",
2561 "", 2592 "",
2562 "", 2593 "",
2563 "", 2594 "",
2564 "\1\u0090",
2565 "\1\u0091",
2566 "\1\u0092",
2567 "\1\u0093", 2595 "\1\u0093",
2568 "\1\u0094", 2596 "\1\u0094",
2569 "\1\56\4\uffff\1\56\10\uffff\12\56\7\uffff\32\56\4\uffff\1\56\1\uffff\32\56", 2597 "\1\u0095",
2570 "\1\56\4\uffff\1\56\10\uffff\12\56\7\uffff\32\56\4\uffff\1\56\1\uffff\32\56", 2598 "\1\u0096",
2571 "\1\56\4\uffff\1\56\10\uffff\12\56\7\uffff\32\56\4\uffff\1\56\1\uffff\32\56", 2599 "\1\u0097",
2572 "\1\56\4\uffff\1\56\10\uffff\12\56\7\uffff\32\56\4\uffff\1\56\1\uffff\32\56", 2600 "\1\57\4\uffff\1\57\10\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57",
2573 "\1\56\4\uffff\1\56\10\uffff\12\56\7\uffff\32\56\4\uffff\1\56\1\uffff\32\56", 2601 "\1\57\4\uffff\1\57\10\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57",
2574 "\1\u009a", 2602 "\1\57\4\uffff\1\57\10\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57",
2575 "\1\56\4\uffff\1\56\10\uffff\12\56\7\uffff\32\56\4\uffff\1\56\1\uffff\32\56", 2603 "\1\57\4\uffff\1\57\10\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57",
2576 "", 2604 "\1\57\4\uffff\1\57\10\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57",
2577 "\1\56\4\uffff\1\56\10\uffff\12\56\7\uffff\32\56\4\uffff\1\56\1\uffff\32\56",
2578 "\1\u009d", 2605 "\1\u009d",
2579 "\1\u009e", 2606 "\1\57\4\uffff\1\57\10\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57",
2580 "\1\56\4\uffff\1\56\10\uffff\12\56\7\uffff\32\56\4\uffff\1\56\1\uffff\32\56", 2607 "",
2608 "\1\57\4\uffff\1\57\10\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57",
2581 "\1\u00a0", 2609 "\1\u00a0",
2582 "\1\56\4\uffff\1\56\10\uffff\12\56\7\uffff\32\56\4\uffff\1\56\1\uffff\32\56", 2610 "\1\u00a1",
2583 "\1\u00a2", 2611 "\1\57\4\uffff\1\57\10\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57",
2584 "\1\u00a3", 2612 "\1\u00a3",
2585 "\1\u00a4", 2613 "\1\57\4\uffff\1\57\10\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57",
2586 "\1\56\4\uffff\1\56\10\uffff\12\56\7\uffff\32\56\4\uffff\1\56\1\uffff\32\56", 2614 "\1\u00a5",
2615 "\1\u00a6",
2616 "\1\u00a7",
2617 "\1\57\4\uffff\1\57\10\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57",
2587 "", 2618 "",
2588 "\1\56\4\uffff\1\56\10\uffff\12\56\7\uffff\32\56\4\uffff\1\56\1\uffff\32\56", 2619 "\1\57\4\uffff\1\57\10\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57",
2589 "", 2620 "",
2590 "", 2621 "",
2591 "\1\56\4\uffff\1\56\10\uffff\12\56\7\uffff\32\56\4\uffff\1\56\1\uffff\32\56", 2622 "\1\57\4\uffff\1\57\10\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57",
2592 "\1\u00a8", 2623 "\1\u00ab",
2593 "", 2624 "",
2594 "\1\u00a9", 2625 "\1\u00ac",
2595 "\1\56\4\uffff\1\56\10\uffff\12\56\7\uffff\32\56\4\uffff\1\56\1\uffff\32\56", 2626 "\1\57\4\uffff\1\57\10\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57",
2596 "\1\56\4\uffff\1\56\10\uffff\12\56\7\uffff\32\56\4\uffff\1\56\1\uffff\32\56", 2627 "\1\u00ae",
2597 "\1\56\4\uffff\1\56\10\uffff\12\56\7\uffff\32\56\4\uffff\1\56\1\uffff\32\56", 2628 "\1\57\4\uffff\1\57\10\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57",
2598 "\1\u00ad", 2629 "\1\57\4\uffff\1\57\10\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57",
2599 "\1\56\4\uffff\1\56\10\uffff\12\56\7\uffff\32\56\4\uffff\1\56\1\uffff\32\56",
2600 "\1\56\4\uffff\1\56\10\uffff\12\56\7\uffff\32\56\4\uffff\1\56\1\uffff\32\56",
2601 "\1\u00b0",
2602 "\1\u00b1", 2630 "\1\u00b1",
2603 "\1\56\4\uffff\1\56\10\uffff\12\56\7\uffff\32\56\4\uffff\1\56\1\uffff\32\56", 2631 "\1\57\4\uffff\1\57\10\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57",
2604 "\1\u00b3", 2632 "\1\57\4\uffff\1\57\10\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57",
2633 "\1\u00b4",
2634 "\1\u00b5",
2635 "\1\57\4\uffff\1\57\10\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57",
2636 "\1\u00b7",
2605 "", 2637 "",
2606 "", 2638 "",
2607 "", 2639 "",
2608 "", 2640 "",
2609 "", 2641 "",
2610 "\1\56\4\uffff\1\56\10\uffff\12\56\7\uffff\32\56\4\uffff\1\56\1\uffff\32\56", 2642 "\1\57\4\uffff\1\57\10\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57",
2611 "", 2643 "",
2612 "", 2644 "",
2613 "\1\u00b5", 2645 "\1\u00b9",
2614 "\1\56\4\uffff\1\56\10\uffff\12\56\7\uffff\32\56\4\uffff\1\56\1\uffff\32\56", 2646 "\1\57\4\uffff\1\57\10\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57",
2615 "", 2647 "",
2616 "\1\56\4\uffff\1\56\10\uffff\12\56\7\uffff\32\56\4\uffff\1\56\1\uffff\32\56", 2648 "\1\57\4\uffff\1\57\10\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57",
2617 "", 2649 "",
2618 "\1\56\4\uffff\1\56\10\uffff\12\56\7\uffff\32\56\4\uffff\1\56\1\uffff\32\56", 2650 "\1\57\4\uffff\1\57\10\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57",
2619 "\1\56\4\uffff\1\56\10\uffff\12\56\7\uffff\32\56\4\uffff\1\56\1\uffff\32\56", 2651 "\1\57\4\uffff\1\57\10\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57",
2620 "\1\56\4\uffff\1\56\10\uffff\12\56\7\uffff\32\56\4\uffff\1\56\1\uffff\32\56", 2652 "\1\57\4\uffff\1\57\10\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57",
2621 "", 2653 "",
2622 "", 2654 "",
2623 "", 2655 "",
2624 "\1\56\4\uffff\1\56\10\uffff\12\56\7\uffff\32\56\4\uffff\1\56\1\uffff\32\56", 2656 "\1\57\4\uffff\1\57\10\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57",
2625 "\1\56\4\uffff\1\56\10\uffff\12\56\7\uffff\32\56\4\uffff\1\56\1\uffff\32\56", 2657 "\1\57\4\uffff\1\57\10\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57",
2626 "", 2658 "",
2659 "\1\u00c1",
2627 "", 2660 "",
2628 "", 2661 "",
2629 "\1\56\4\uffff\1\56\10\uffff\12\56\7\uffff\32\56\4\uffff\1\56\1\uffff\32\56", 2662 "\1\57\4\uffff\1\57\10\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57",
2630 "", 2663 "",
2631 "", 2664 "",
2632 "\1\u00be", 2665 "\1\u00c3",
2633 "\1\u00bf", 2666 "\1\u00c4",
2634 "", 2667 "",
2635 "\1\u00c0", 2668 "\1\u00c5",
2636 "", 2669 "",
2637 "\1\u00c1", 2670 "\1\u00c6",
2638 "", 2671 "",
2639 "", 2672 "",
2640 "", 2673 "",
@@ -2642,18 +2675,21 @@ public class InternalAlloyLanguageLexer extends Lexer {
2642 "", 2675 "",
2643 "", 2676 "",
2644 "", 2677 "",
2678 "\1\u00c7",
2645 "", 2679 "",
2646 "\1\u00c2",
2647 "\1\u00c3",
2648 "\1\u00c4",
2649 "\1\u00c5",
2650 "\1\56\4\uffff\1\56\10\uffff\12\56\7\uffff\32\56\4\uffff\1\56\1\uffff\32\56",
2651 "\1\56\4\uffff\1\56\10\uffff\12\56\7\uffff\32\56\4\uffff\1\56\1\uffff\32\56",
2652 "\1\u00c8", 2680 "\1\u00c8",
2653 "\1\56\4\uffff\1\56\10\uffff\12\56\7\uffff\32\56\4\uffff\1\56\1\uffff\32\56", 2681 "\1\u00c9",
2682 "\1\u00ca",
2683 "\1\u00cb",
2684 "\1\57\4\uffff\1\57\10\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57",
2685 "\1\57\4\uffff\1\57\10\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57",
2686 "\1\57\4\uffff\1\57\10\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57",
2687 "\1\u00cf",
2688 "\1\57\4\uffff\1\57\10\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57",
2689 "",
2654 "", 2690 "",
2655 "", 2691 "",
2656 "\1\56\4\uffff\1\56\10\uffff\12\56\7\uffff\32\56\4\uffff\1\56\1\uffff\32\56", 2692 "\1\57\4\uffff\1\57\10\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57",
2657 "", 2693 "",
2658 "" 2694 ""
2659 }; 2695 };
@@ -2688,13 +2724,23 @@ public class InternalAlloyLanguageLexer extends Lexer {
2688 this.transition = DFA11_transition; 2724 this.transition = DFA11_transition;
2689 } 2725 }
2690 public String getDescription() { 2726 public String getDescription() {
2691 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 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | T__50 | T__51 | T__52 | T__53 | T__54 | T__55 | T__56 | T__57 | T__58 | T__59 | T__60 | T__61 | T__62 | T__63 | T__64 | T__65 | T__66 | T__67 | T__68 | T__69 | T__70 | T__71 | T__72 | T__73 | T__74 | T__75 | RULE_ID | RULE_INT | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER );"; 2727 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 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | T__50 | T__51 | T__52 | T__53 | T__54 | T__55 | T__56 | T__57 | T__58 | T__59 | T__60 | T__61 | T__62 | T__63 | T__64 | T__65 | T__66 | T__67 | T__68 | T__69 | T__70 | T__71 | T__72 | T__73 | T__74 | T__75 | T__76 | RULE_ID | RULE_INT | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER );";
2692 } 2728 }
2693 public int specialStateTransition(int s, IntStream _input) throws NoViableAltException { 2729 public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
2694 IntStream input = _input; 2730 IntStream input = _input;
2695 int _s = s; 2731 int _s = s;
2696 switch ( s ) { 2732 switch ( s ) {
2697 case 0 : 2733 case 0 :
2734 int LA11_40 = input.LA(1);
2735
2736 s = -1;
2737 if ( ((LA11_40>='\u0000' && LA11_40<='\uFFFF')) ) {s = 106;}
2738
2739 else s = 43;
2740
2741 if ( s>=0 ) return s;
2742 break;
2743 case 1 :
2698 int LA11_0 = input.LA(1); 2744 int LA11_0 = input.LA(1);
2699 2745
2700 s = -1; 2746 s = -1;
@@ -2758,39 +2804,31 @@ public class InternalAlloyLanguageLexer extends Lexer {
2758 2804
2759 else if ( (LA11_0=='I') ) {s = 30;} 2805 else if ( (LA11_0=='I') ) {s = 30;}
2760 2806
2761 else if ( (LA11_0=='(') ) {s = 31;} 2807 else if ( (LA11_0=='S') ) {s = 31;}
2762 2808
2763 else if ( (LA11_0==')') ) {s = 32;} 2809 else if ( (LA11_0=='(') ) {s = 32;}
2764 2810
2765 else if ( (LA11_0=='r') ) {s = 33;} 2811 else if ( (LA11_0==')') ) {s = 33;}
2766 2812
2767 else if ( (LA11_0=='l') ) {s = 34;} 2813 else if ( (LA11_0=='r') ) {s = 34;}
2768 2814
2769 else if ( (LA11_0=='m') ) {s = 35;} 2815 else if ( (LA11_0=='l') ) {s = 35;}
2770 2816
2771 else if ( ((LA11_0>='A' && LA11_0<='H')||(LA11_0>='J' && LA11_0<='Z')||LA11_0=='_'||(LA11_0>='b' && LA11_0<='c')||(LA11_0>='g' && LA11_0<='h')||(LA11_0>='j' && LA11_0<='k')||LA11_0=='q'||LA11_0=='t'||(LA11_0>='v' && LA11_0<='z')) ) {s = 36;} 2817 else if ( (LA11_0=='m') ) {s = 36;}
2772 2818
2773 else if ( ((LA11_0>='0' && LA11_0<='9')) ) {s = 37;} 2819 else if ( ((LA11_0>='A' && LA11_0<='H')||(LA11_0>='J' && LA11_0<='R')||(LA11_0>='T' && LA11_0<='Z')||LA11_0=='_'||(LA11_0>='b' && LA11_0<='c')||(LA11_0>='g' && LA11_0<='h')||(LA11_0>='j' && LA11_0<='k')||LA11_0=='q'||LA11_0=='t'||(LA11_0>='v' && LA11_0<='z')) ) {s = 37;}
2774 2820
2775 else if ( (LA11_0=='\"') ) {s = 38;} 2821 else if ( ((LA11_0>='0' && LA11_0<='9')) ) {s = 38;}
2776 2822
2777 else if ( (LA11_0=='\'') ) {s = 39;} 2823 else if ( (LA11_0=='\"') ) {s = 39;}
2778 2824
2779 else if ( (LA11_0=='/') ) {s = 40;} 2825 else if ( (LA11_0=='\'') ) {s = 40;}
2780 2826
2781 else if ( ((LA11_0>='\t' && LA11_0<='\n')||LA11_0=='\r'||LA11_0==' ') ) {s = 41;} 2827 else if ( (LA11_0=='/') ) {s = 41;}
2782 2828
2783 else if ( ((LA11_0>='\u0000' && LA11_0<='\b')||(LA11_0>='\u000B' && LA11_0<='\f')||(LA11_0>='\u000E' && LA11_0<='\u001F')||(LA11_0>='$' && LA11_0<='%')||LA11_0==';'||(LA11_0>='?' && LA11_0<='@')||LA11_0=='\\'||LA11_0=='`'||(LA11_0>='\u007F' && LA11_0<='\uFFFF')) ) {s = 42;} 2829 else if ( ((LA11_0>='\t' && LA11_0<='\n')||LA11_0=='\r'||LA11_0==' ') ) {s = 42;}
2784
2785 if ( s>=0 ) return s;
2786 break;
2787 case 1 :
2788 int LA11_38 = input.LA(1);
2789
2790 s = -1;
2791 if ( ((LA11_38>='\u0000' && LA11_38<='\uFFFF')) ) {s = 104;}
2792 2830
2793 else s = 42; 2831 else if ( ((LA11_0>='\u0000' && LA11_0<='\b')||(LA11_0>='\u000B' && LA11_0<='\f')||(LA11_0>='\u000E' && LA11_0<='\u001F')||(LA11_0>='$' && LA11_0<='%')||LA11_0==';'||(LA11_0>='?' && LA11_0<='@')||LA11_0=='\\'||LA11_0=='`'||(LA11_0>='\u007F' && LA11_0<='\uFFFF')) ) {s = 43;}
2794 2832
2795 if ( s>=0 ) return s; 2833 if ( s>=0 ) return s;
2796 break; 2834 break;
@@ -2798,9 +2836,9 @@ public class InternalAlloyLanguageLexer extends Lexer {
2798 int LA11_39 = input.LA(1); 2836 int LA11_39 = input.LA(1);
2799 2837
2800 s = -1; 2838 s = -1;
2801 if ( ((LA11_39>='\u0000' && LA11_39<='\uFFFF')) ) {s = 104;} 2839 if ( ((LA11_39>='\u0000' && LA11_39<='\uFFFF')) ) {s = 106;}
2802 2840
2803 else s = 42; 2841 else s = 43;
2804 2842
2805 if ( s>=0 ) return s; 2843 if ( s>=0 ) return s;
2806 break; 2844 break;
diff --git a/Solvers/Alloy-Solver/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/parser/antlr/internal/InternalAlloyLanguageParser.java b/Solvers/Alloy-Solver/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/parser/antlr/internal/InternalAlloyLanguageParser.java
index 1735afbd..bb317b9b 100644
--- a/Solvers/Alloy-Solver/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/parser/antlr/internal/InternalAlloyLanguageParser.java
+++ b/Solvers/Alloy-Solver/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/parser/antlr/internal/InternalAlloyLanguageParser.java
@@ -23,7 +23,7 @@ import java.util.HashMap;
23@SuppressWarnings("all") 23@SuppressWarnings("all")
24public class InternalAlloyLanguageParser extends AbstractInternalAntlrParser { 24public class InternalAlloyLanguageParser extends AbstractInternalAntlrParser {
25 public static final String[] tokenNames = new String[] { 25 public static final String[] tokenNames = new String[] {
26 "<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_ID", "RULE_INT", "RULE_STRING", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "'enum'", "'{'", "','", "'}'", "'abstract'", "'sig'", "'extends'", "'in'", "'+'", "':'", "'fun'", "'['", "']'", "'pred'", "'fact'", "'disj'", "'||'", "'or'", "'<=>'", "'iff'", "'=>'", "'implies'", "'else'", "'&&'", "'and'", "'='", "'!='", "'>'", "'>='", "'<'", "'<='", "'++'", "':>'", "'<:'", "'.'", "'-'", "'&'", "'->'", "'!'", "'not'", "'~'", "'^'", "'*'", "'#'", "'sum'", "'none'", "'iden'", "'univ'", "'Int'", "'('", "')'", "'run'", "'for'", "'exactly'", "'all'", "'no'", "'some'", "'lone'", "'one'", "'set'", "'plus'", "'sub'", "'mul'", "'rem'", "'div'" 26 "<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_ID", "RULE_INT", "RULE_STRING", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "'enum'", "'{'", "','", "'}'", "'abstract'", "'sig'", "'extends'", "'in'", "'+'", "':'", "'fun'", "'['", "']'", "'pred'", "'fact'", "'disj'", "'||'", "'or'", "'<=>'", "'iff'", "'=>'", "'implies'", "'else'", "'&&'", "'and'", "'='", "'!='", "'>'", "'>='", "'<'", "'<='", "'++'", "':>'", "'<:'", "'.'", "'-'", "'&'", "'->'", "'!'", "'not'", "'~'", "'^'", "'*'", "'#'", "'sum'", "'none'", "'iden'", "'univ'", "'Int'", "'String'", "'('", "')'", "'run'", "'for'", "'exactly'", "'all'", "'no'", "'some'", "'lone'", "'one'", "'set'", "'plus'", "'sub'", "'mul'", "'rem'", "'div'"
27 }; 27 };
28 public static final int T__50=50; 28 public static final int T__50=50;
29 public static final int T__19=19; 29 public static final int T__19=19;
@@ -86,6 +86,7 @@ public class InternalAlloyLanguageParser extends AbstractInternalAntlrParser {
86 public static final int T__31=31; 86 public static final int T__31=31;
87 public static final int T__75=75; 87 public static final int T__75=75;
88 public static final int T__32=32; 88 public static final int T__32=32;
89 public static final int T__76=76;
89 public static final int RULE_WS=9; 90 public static final int RULE_WS=9;
90 public static final int RULE_ANY_OTHER=10; 91 public static final int RULE_ANY_OTHER=10;
91 public static final int T__48=48; 92 public static final int T__48=48;
@@ -217,12 +218,12 @@ public class InternalAlloyLanguageParser extends AbstractInternalAntlrParser {
217 break; 218 break;
218 case 15: 219 case 15:
219 case 16: 220 case 16:
220 case 65:
221 case 66: 221 case 66:
222 case 67: 222 case 67:
223 case 68: 223 case 68:
224 case 69: 224 case 69:
225 case 70: 225 case 70:
226 case 71:
226 { 227 {
227 alt1=2; 228 alt1=2;
228 } 229 }
@@ -1291,7 +1292,7 @@ public class InternalAlloyLanguageParser extends AbstractInternalAntlrParser {
1291 int alt4=3; 1292 int alt4=3;
1292 int LA4_0 = input.LA(1); 1293 int LA4_0 = input.LA(1);
1293 1294
1294 if ( LA4_0 >= 65 && LA4_0 <= 70 && getUnorderedGroupHelper().canSelect(grammarAccess.getALSSignatureBodyAccess().getUnorderedGroup_0(), 0) ) { 1295 if ( LA4_0 >= 66 && LA4_0 <= 71 && getUnorderedGroupHelper().canSelect(grammarAccess.getALSSignatureBodyAccess().getUnorderedGroup_0(), 0) ) {
1295 alt4=1; 1296 alt4=1;
1296 } 1297 }
1297 else if ( LA4_0 == 15 && getUnorderedGroupHelper().canSelect(grammarAccess.getALSSignatureBodyAccess().getUnorderedGroup_0(), 1) ) { 1298 else if ( LA4_0 == 15 && getUnorderedGroupHelper().canSelect(grammarAccess.getALSSignatureBodyAccess().getUnorderedGroup_0(), 1) ) {
@@ -3040,10 +3041,10 @@ public class InternalAlloyLanguageParser extends AbstractInternalAntlrParser {
3040 int alt16=2; 3041 int alt16=2;
3041 int LA16_0 = input.LA(1); 3042 int LA16_0 = input.LA(1);
3042 3043
3043 if ( ((LA16_0>=65 && LA16_0<=70)) ) { 3044 if ( ((LA16_0>=66 && LA16_0<=71)) ) {
3044 alt16=1; 3045 alt16=1;
3045 } 3046 }
3046 else if ( ((LA16_0>=RULE_ID && LA16_0<=RULE_INT)||LA16_0==46||(LA16_0>=49 && LA16_0<=60)||(LA16_0>=71 && LA16_0<=75)) ) { 3047 else if ( ((LA16_0>=RULE_ID && LA16_0<=RULE_STRING)||LA16_0==46||(LA16_0>=49 && LA16_0<=61)||(LA16_0>=72 && LA16_0<=76)) ) {
3047 alt16=2; 3048 alt16=2;
3048 } 3049 }
3049 else { 3050 else {
@@ -5957,7 +5958,7 @@ public class InternalAlloyLanguageParser extends AbstractInternalAntlrParser {
5957 int alt37=2; 5958 int alt37=2;
5958 int LA37_0 = input.LA(1); 5959 int LA37_0 = input.LA(1);
5959 5960
5960 if ( (LA37_0==48||(LA37_0>=65 && LA37_0<=70)) ) { 5961 if ( (LA37_0==48||(LA37_0>=66 && LA37_0<=71)) ) {
5961 alt37=1; 5962 alt37=1;
5962 } 5963 }
5963 switch (alt37) { 5964 switch (alt37) {
@@ -5981,7 +5982,7 @@ public class InternalAlloyLanguageParser extends AbstractInternalAntlrParser {
5981 int alt35=2; 5982 int alt35=2;
5982 int LA35_0 = input.LA(1); 5983 int LA35_0 = input.LA(1);
5983 5984
5984 if ( ((LA35_0>=65 && LA35_0<=70)) ) { 5985 if ( ((LA35_0>=66 && LA35_0<=71)) ) {
5985 alt35=1; 5986 alt35=1;
5986 } 5987 }
5987 switch (alt35) { 5988 switch (alt35) {
@@ -6033,7 +6034,7 @@ public class InternalAlloyLanguageParser extends AbstractInternalAntlrParser {
6033 int alt36=2; 6034 int alt36=2;
6034 int LA36_0 = input.LA(1); 6035 int LA36_0 = input.LA(1);
6035 6036
6036 if ( ((LA36_0>=65 && LA36_0<=70)) ) { 6037 if ( ((LA36_0>=66 && LA36_0<=71)) ) {
6037 alt36=1; 6038 alt36=1;
6038 } 6039 }
6039 switch (alt36) { 6040 switch (alt36) {
@@ -6892,7 +6893,7 @@ public class InternalAlloyLanguageParser extends AbstractInternalAntlrParser {
6892 if ( (LA40_0==RULE_ID) ) { 6893 if ( (LA40_0==RULE_ID) ) {
6893 alt40=1; 6894 alt40=1;
6894 } 6895 }
6895 else if ( ((LA40_0>=71 && LA40_0<=75)) ) { 6896 else if ( ((LA40_0>=72 && LA40_0<=76)) ) {
6896 alt40=2; 6897 alt40=2;
6897 } 6898 }
6898 else { 6899 else {
@@ -7339,7 +7340,7 @@ public class InternalAlloyLanguageParser extends AbstractInternalAntlrParser {
7339 7340
7340 7341
7341 // $ANTLR start "ruleALSBasicRelationTerm" 7342 // $ANTLR start "ruleALSBasicRelationTerm"
7342 // InternalAlloyLanguage.g:2602:1: ruleALSBasicRelationTerm returns [EObject current=null] : ( ( () otherlv_1= 'none' ) | ( () otherlv_3= 'iden' ) | ( () otherlv_5= 'univ' ) | ( () otherlv_7= 'Int' ) | ( () ( (otherlv_9= RULE_ID ) ) ) | ( () ( (lv_value_11_0= RULE_INT ) ) ) | (otherlv_12= '(' this_ALSTerm_13= ruleALSTerm otherlv_14= ')' ) ) ; 7343 // InternalAlloyLanguage.g:2602:1: ruleALSBasicRelationTerm returns [EObject current=null] : ( ( () otherlv_1= 'none' ) | ( () otherlv_3= 'iden' ) | ( () otherlv_5= 'univ' ) | ( () otherlv_7= 'Int' ) | ( () otherlv_9= 'String' ) | ( () ( (otherlv_11= RULE_ID ) ) ) | ( () ( (lv_value_13_0= RULE_INT ) ) ) | ( () ( (lv_value_15_0= RULE_STRING ) ) ) | (otherlv_16= '(' this_ALSTerm_17= ruleALSTerm otherlv_18= ')' ) ) ;
7343 public final EObject ruleALSBasicRelationTerm() throws RecognitionException { 7344 public final EObject ruleALSBasicRelationTerm() throws RecognitionException {
7344 EObject current = null; 7345 EObject current = null;
7345 7346
@@ -7348,20 +7349,22 @@ public class InternalAlloyLanguageParser extends AbstractInternalAntlrParser {
7348 Token otherlv_5=null; 7349 Token otherlv_5=null;
7349 Token otherlv_7=null; 7350 Token otherlv_7=null;
7350 Token otherlv_9=null; 7351 Token otherlv_9=null;
7351 Token lv_value_11_0=null; 7352 Token otherlv_11=null;
7352 Token otherlv_12=null; 7353 Token lv_value_13_0=null;
7353 Token otherlv_14=null; 7354 Token lv_value_15_0=null;
7354 EObject this_ALSTerm_13 = null; 7355 Token otherlv_16=null;
7356 Token otherlv_18=null;
7357 EObject this_ALSTerm_17 = null;
7355 7358
7356 7359
7357 enterRule(); 7360 enterRule();
7358 7361
7359 try { 7362 try {
7360 // InternalAlloyLanguage.g:2605:28: ( ( ( () otherlv_1= 'none' ) | ( () otherlv_3= 'iden' ) | ( () otherlv_5= 'univ' ) | ( () otherlv_7= 'Int' ) | ( () ( (otherlv_9= RULE_ID ) ) ) | ( () ( (lv_value_11_0= RULE_INT ) ) ) | (otherlv_12= '(' this_ALSTerm_13= ruleALSTerm otherlv_14= ')' ) ) ) 7363 // InternalAlloyLanguage.g:2605:28: ( ( ( () otherlv_1= 'none' ) | ( () otherlv_3= 'iden' ) | ( () otherlv_5= 'univ' ) | ( () otherlv_7= 'Int' ) | ( () otherlv_9= 'String' ) | ( () ( (otherlv_11= RULE_ID ) ) ) | ( () ( (lv_value_13_0= RULE_INT ) ) ) | ( () ( (lv_value_15_0= RULE_STRING ) ) ) | (otherlv_16= '(' this_ALSTerm_17= ruleALSTerm otherlv_18= ')' ) ) )
7361 // InternalAlloyLanguage.g:2606:1: ( ( () otherlv_1= 'none' ) | ( () otherlv_3= 'iden' ) | ( () otherlv_5= 'univ' ) | ( () otherlv_7= 'Int' ) | ( () ( (otherlv_9= RULE_ID ) ) ) | ( () ( (lv_value_11_0= RULE_INT ) ) ) | (otherlv_12= '(' this_ALSTerm_13= ruleALSTerm otherlv_14= ')' ) ) 7364 // InternalAlloyLanguage.g:2606:1: ( ( () otherlv_1= 'none' ) | ( () otherlv_3= 'iden' ) | ( () otherlv_5= 'univ' ) | ( () otherlv_7= 'Int' ) | ( () otherlv_9= 'String' ) | ( () ( (otherlv_11= RULE_ID ) ) ) | ( () ( (lv_value_13_0= RULE_INT ) ) ) | ( () ( (lv_value_15_0= RULE_STRING ) ) ) | (otherlv_16= '(' this_ALSTerm_17= ruleALSTerm otherlv_18= ')' ) )
7362 { 7365 {
7363 // InternalAlloyLanguage.g:2606:1: ( ( () otherlv_1= 'none' ) | ( () otherlv_3= 'iden' ) | ( () otherlv_5= 'univ' ) | ( () otherlv_7= 'Int' ) | ( () ( (otherlv_9= RULE_ID ) ) ) | ( () ( (lv_value_11_0= RULE_INT ) ) ) | (otherlv_12= '(' this_ALSTerm_13= ruleALSTerm otherlv_14= ')' ) ) 7366 // InternalAlloyLanguage.g:2606:1: ( ( () otherlv_1= 'none' ) | ( () otherlv_3= 'iden' ) | ( () otherlv_5= 'univ' ) | ( () otherlv_7= 'Int' ) | ( () otherlv_9= 'String' ) | ( () ( (otherlv_11= RULE_ID ) ) ) | ( () ( (lv_value_13_0= RULE_INT ) ) ) | ( () ( (lv_value_15_0= RULE_STRING ) ) ) | (otherlv_16= '(' this_ALSTerm_17= ruleALSTerm otherlv_18= ')' ) )
7364 int alt43=7; 7367 int alt43=9;
7365 switch ( input.LA(1) ) { 7368 switch ( input.LA(1) ) {
7366 case 56: 7369 case 56:
7367 { 7370 {
@@ -7383,21 +7386,31 @@ public class InternalAlloyLanguageParser extends AbstractInternalAntlrParser {
7383 alt43=4; 7386 alt43=4;
7384 } 7387 }
7385 break; 7388 break;
7386 case RULE_ID: 7389 case 60:
7387 { 7390 {
7388 alt43=5; 7391 alt43=5;
7389 } 7392 }
7390 break; 7393 break;
7391 case RULE_INT: 7394 case RULE_ID:
7392 { 7395 {
7393 alt43=6; 7396 alt43=6;
7394 } 7397 }
7395 break; 7398 break;
7396 case 60: 7399 case RULE_INT:
7397 { 7400 {
7398 alt43=7; 7401 alt43=7;
7399 } 7402 }
7400 break; 7403 break;
7404 case RULE_STRING:
7405 {
7406 alt43=8;
7407 }
7408 break;
7409 case 61:
7410 {
7411 alt43=9;
7412 }
7413 break;
7401 default: 7414 default:
7402 if (state.backtracking>0) {state.failed=true; return current;} 7415 if (state.backtracking>0) {state.failed=true; return current;}
7403 NoViableAltException nvae = 7416 NoViableAltException nvae =
@@ -7532,10 +7545,10 @@ public class InternalAlloyLanguageParser extends AbstractInternalAntlrParser {
7532 } 7545 }
7533 break; 7546 break;
7534 case 5 : 7547 case 5 :
7535 // InternalAlloyLanguage.g:2650:6: ( () ( (otherlv_9= RULE_ID ) ) ) 7548 // InternalAlloyLanguage.g:2650:6: ( () otherlv_9= 'String' )
7536 { 7549 {
7537 // InternalAlloyLanguage.g:2650:6: ( () ( (otherlv_9= RULE_ID ) ) ) 7550 // InternalAlloyLanguage.g:2650:6: ( () otherlv_9= 'String' )
7538 // InternalAlloyLanguage.g:2650:7: () ( (otherlv_9= RULE_ID ) ) 7551 // InternalAlloyLanguage.g:2650:7: () otherlv_9= 'String'
7539 { 7552 {
7540 // InternalAlloyLanguage.g:2650:7: () 7553 // InternalAlloyLanguage.g:2650:7: ()
7541 // InternalAlloyLanguage.g:2651:5: 7554 // InternalAlloyLanguage.g:2651:5:
@@ -7543,18 +7556,49 @@ public class InternalAlloyLanguageParser extends AbstractInternalAntlrParser {
7543 if ( state.backtracking==0 ) { 7556 if ( state.backtracking==0 ) {
7544 7557
7545 current = forceCreateModelElement( 7558 current = forceCreateModelElement(
7546 grammarAccess.getALSBasicRelationTermAccess().getALSReferenceAction_4_0(), 7559 grammarAccess.getALSBasicRelationTermAccess().getALSStringAction_4_0(),
7547 current); 7560 current);
7548 7561
7549 } 7562 }
7550 7563
7551 } 7564 }
7552 7565
7553 // InternalAlloyLanguage.g:2656:2: ( (otherlv_9= RULE_ID ) ) 7566 otherlv_9=(Token)match(input,60,FOLLOW_2); if (state.failed) return current;
7554 // InternalAlloyLanguage.g:2657:1: (otherlv_9= RULE_ID ) 7567 if ( state.backtracking==0 ) {
7568
7569 newLeafNode(otherlv_9, grammarAccess.getALSBasicRelationTermAccess().getStringKeyword_4_1());
7570
7571 }
7572
7573 }
7574
7575
7576 }
7577 break;
7578 case 6 :
7579 // InternalAlloyLanguage.g:2661:6: ( () ( (otherlv_11= RULE_ID ) ) )
7580 {
7581 // InternalAlloyLanguage.g:2661:6: ( () ( (otherlv_11= RULE_ID ) ) )
7582 // InternalAlloyLanguage.g:2661:7: () ( (otherlv_11= RULE_ID ) )
7555 { 7583 {
7556 // InternalAlloyLanguage.g:2657:1: (otherlv_9= RULE_ID ) 7584 // InternalAlloyLanguage.g:2661:7: ()
7557 // InternalAlloyLanguage.g:2658:3: otherlv_9= RULE_ID 7585 // InternalAlloyLanguage.g:2662:5:
7586 {
7587 if ( state.backtracking==0 ) {
7588
7589 current = forceCreateModelElement(
7590 grammarAccess.getALSBasicRelationTermAccess().getALSReferenceAction_5_0(),
7591 current);
7592
7593 }
7594
7595 }
7596
7597 // InternalAlloyLanguage.g:2667:2: ( (otherlv_11= RULE_ID ) )
7598 // InternalAlloyLanguage.g:2668:1: (otherlv_11= RULE_ID )
7599 {
7600 // InternalAlloyLanguage.g:2668:1: (otherlv_11= RULE_ID )
7601 // InternalAlloyLanguage.g:2669:3: otherlv_11= RULE_ID
7558 { 7602 {
7559 if ( state.backtracking==0 ) { 7603 if ( state.backtracking==0 ) {
7560 7604
@@ -7563,10 +7607,10 @@ public class InternalAlloyLanguageParser extends AbstractInternalAntlrParser {
7563 } 7607 }
7564 7608
7565 } 7609 }
7566 otherlv_9=(Token)match(input,RULE_ID,FOLLOW_2); if (state.failed) return current; 7610 otherlv_11=(Token)match(input,RULE_ID,FOLLOW_2); if (state.failed) return current;
7567 if ( state.backtracking==0 ) { 7611 if ( state.backtracking==0 ) {
7568 7612
7569 newLeafNode(otherlv_9, grammarAccess.getALSBasicRelationTermAccess().getReferredALSRelationDeclarationCrossReference_4_1_0()); 7613 newLeafNode(otherlv_11, grammarAccess.getALSBasicRelationTermAccess().getReferredALSRelationDeclarationCrossReference_5_1_0());
7570 7614
7571 } 7615 }
7572 7616
@@ -7581,35 +7625,35 @@ public class InternalAlloyLanguageParser extends AbstractInternalAntlrParser {
7581 7625
7582 } 7626 }
7583 break; 7627 break;
7584 case 6 : 7628 case 7 :
7585 // InternalAlloyLanguage.g:2670:6: ( () ( (lv_value_11_0= RULE_INT ) ) ) 7629 // InternalAlloyLanguage.g:2681:6: ( () ( (lv_value_13_0= RULE_INT ) ) )
7586 { 7630 {
7587 // InternalAlloyLanguage.g:2670:6: ( () ( (lv_value_11_0= RULE_INT ) ) ) 7631 // InternalAlloyLanguage.g:2681:6: ( () ( (lv_value_13_0= RULE_INT ) ) )
7588 // InternalAlloyLanguage.g:2670:7: () ( (lv_value_11_0= RULE_INT ) ) 7632 // InternalAlloyLanguage.g:2681:7: () ( (lv_value_13_0= RULE_INT ) )
7589 { 7633 {
7590 // InternalAlloyLanguage.g:2670:7: () 7634 // InternalAlloyLanguage.g:2681:7: ()
7591 // InternalAlloyLanguage.g:2671:5: 7635 // InternalAlloyLanguage.g:2682:5:
7592 { 7636 {
7593 if ( state.backtracking==0 ) { 7637 if ( state.backtracking==0 ) {
7594 7638
7595 current = forceCreateModelElement( 7639 current = forceCreateModelElement(
7596 grammarAccess.getALSBasicRelationTermAccess().getALSNumberLiteralAction_5_0(), 7640 grammarAccess.getALSBasicRelationTermAccess().getALSNumberLiteralAction_6_0(),
7597 current); 7641 current);
7598 7642
7599 } 7643 }
7600 7644
7601 } 7645 }
7602 7646
7603 // InternalAlloyLanguage.g:2676:2: ( (lv_value_11_0= RULE_INT ) ) 7647 // InternalAlloyLanguage.g:2687:2: ( (lv_value_13_0= RULE_INT ) )
7604 // InternalAlloyLanguage.g:2677:1: (lv_value_11_0= RULE_INT ) 7648 // InternalAlloyLanguage.g:2688:1: (lv_value_13_0= RULE_INT )
7605 { 7649 {
7606 // InternalAlloyLanguage.g:2677:1: (lv_value_11_0= RULE_INT ) 7650 // InternalAlloyLanguage.g:2688:1: (lv_value_13_0= RULE_INT )
7607 // InternalAlloyLanguage.g:2678:3: lv_value_11_0= RULE_INT 7651 // InternalAlloyLanguage.g:2689:3: lv_value_13_0= RULE_INT
7608 { 7652 {
7609 lv_value_11_0=(Token)match(input,RULE_INT,FOLLOW_2); if (state.failed) return current; 7653 lv_value_13_0=(Token)match(input,RULE_INT,FOLLOW_2); if (state.failed) return current;
7610 if ( state.backtracking==0 ) { 7654 if ( state.backtracking==0 ) {
7611 7655
7612 newLeafNode(lv_value_11_0, grammarAccess.getALSBasicRelationTermAccess().getValueINTTerminalRuleCall_5_1_0()); 7656 newLeafNode(lv_value_13_0, grammarAccess.getALSBasicRelationTermAccess().getValueINTTerminalRuleCall_6_1_0());
7613 7657
7614 } 7658 }
7615 if ( state.backtracking==0 ) { 7659 if ( state.backtracking==0 ) {
@@ -7620,7 +7664,7 @@ public class InternalAlloyLanguageParser extends AbstractInternalAntlrParser {
7620 setWithLastConsumed( 7664 setWithLastConsumed(
7621 current, 7665 current,
7622 "value", 7666 "value",
7623 lv_value_11_0, 7667 lv_value_13_0,
7624 "org.eclipse.xtext.common.Terminals.INT"); 7668 "org.eclipse.xtext.common.Terminals.INT");
7625 7669
7626 } 7670 }
@@ -7636,38 +7680,93 @@ public class InternalAlloyLanguageParser extends AbstractInternalAntlrParser {
7636 7680
7637 } 7681 }
7638 break; 7682 break;
7639 case 7 : 7683 case 8 :
7640 // InternalAlloyLanguage.g:2695:6: (otherlv_12= '(' this_ALSTerm_13= ruleALSTerm otherlv_14= ')' ) 7684 // InternalAlloyLanguage.g:2706:6: ( () ( (lv_value_15_0= RULE_STRING ) ) )
7641 { 7685 {
7642 // InternalAlloyLanguage.g:2695:6: (otherlv_12= '(' this_ALSTerm_13= ruleALSTerm otherlv_14= ')' ) 7686 // InternalAlloyLanguage.g:2706:6: ( () ( (lv_value_15_0= RULE_STRING ) ) )
7643 // InternalAlloyLanguage.g:2695:8: otherlv_12= '(' this_ALSTerm_13= ruleALSTerm otherlv_14= ')' 7687 // InternalAlloyLanguage.g:2706:7: () ( (lv_value_15_0= RULE_STRING ) )
7688 {
7689 // InternalAlloyLanguage.g:2706:7: ()
7690 // InternalAlloyLanguage.g:2707:5:
7644 { 7691 {
7645 otherlv_12=(Token)match(input,60,FOLLOW_12); if (state.failed) return current;
7646 if ( state.backtracking==0 ) { 7692 if ( state.backtracking==0 ) {
7647 7693
7648 newLeafNode(otherlv_12, grammarAccess.getALSBasicRelationTermAccess().getLeftParenthesisKeyword_6_0()); 7694 current = forceCreateModelElement(
7695 grammarAccess.getALSBasicRelationTermAccess().getALSStringLiteralAction_7_0(),
7696 current);
7697
7698 }
7699
7700 }
7701
7702 // InternalAlloyLanguage.g:2712:2: ( (lv_value_15_0= RULE_STRING ) )
7703 // InternalAlloyLanguage.g:2713:1: (lv_value_15_0= RULE_STRING )
7704 {
7705 // InternalAlloyLanguage.g:2713:1: (lv_value_15_0= RULE_STRING )
7706 // InternalAlloyLanguage.g:2714:3: lv_value_15_0= RULE_STRING
7707 {
7708 lv_value_15_0=(Token)match(input,RULE_STRING,FOLLOW_2); if (state.failed) return current;
7709 if ( state.backtracking==0 ) {
7710
7711 newLeafNode(lv_value_15_0, grammarAccess.getALSBasicRelationTermAccess().getValueSTRINGTerminalRuleCall_7_1_0());
7712
7713 }
7714 if ( state.backtracking==0 ) {
7715
7716 if (current==null) {
7717 current = createModelElement(grammarAccess.getALSBasicRelationTermRule());
7718 }
7719 setWithLastConsumed(
7720 current,
7721 "value",
7722 lv_value_15_0,
7723 "org.eclipse.xtext.common.Terminals.STRING");
7724
7725 }
7726
7727 }
7728
7729
7730 }
7731
7732
7733 }
7734
7735
7736 }
7737 break;
7738 case 9 :
7739 // InternalAlloyLanguage.g:2731:6: (otherlv_16= '(' this_ALSTerm_17= ruleALSTerm otherlv_18= ')' )
7740 {
7741 // InternalAlloyLanguage.g:2731:6: (otherlv_16= '(' this_ALSTerm_17= ruleALSTerm otherlv_18= ')' )
7742 // InternalAlloyLanguage.g:2731:8: otherlv_16= '(' this_ALSTerm_17= ruleALSTerm otherlv_18= ')'
7743 {
7744 otherlv_16=(Token)match(input,61,FOLLOW_12); if (state.failed) return current;
7745 if ( state.backtracking==0 ) {
7746
7747 newLeafNode(otherlv_16, grammarAccess.getALSBasicRelationTermAccess().getLeftParenthesisKeyword_8_0());
7649 7748
7650 } 7749 }
7651 if ( state.backtracking==0 ) { 7750 if ( state.backtracking==0 ) {
7652 7751
7653 newCompositeNode(grammarAccess.getALSBasicRelationTermAccess().getALSTermParserRuleCall_6_1()); 7752 newCompositeNode(grammarAccess.getALSBasicRelationTermAccess().getALSTermParserRuleCall_8_1());
7654 7753
7655 } 7754 }
7656 pushFollow(FOLLOW_34); 7755 pushFollow(FOLLOW_34);
7657 this_ALSTerm_13=ruleALSTerm(); 7756 this_ALSTerm_17=ruleALSTerm();
7658 7757
7659 state._fsp--; 7758 state._fsp--;
7660 if (state.failed) return current; 7759 if (state.failed) return current;
7661 if ( state.backtracking==0 ) { 7760 if ( state.backtracking==0 ) {
7662 7761
7663 current = this_ALSTerm_13; 7762 current = this_ALSTerm_17;
7664 afterParserOrEnumRuleCall(); 7763 afterParserOrEnumRuleCall();
7665 7764
7666 } 7765 }
7667 otherlv_14=(Token)match(input,61,FOLLOW_2); if (state.failed) return current; 7766 otherlv_18=(Token)match(input,62,FOLLOW_2); if (state.failed) return current;
7668 if ( state.backtracking==0 ) { 7767 if ( state.backtracking==0 ) {
7669 7768
7670 newLeafNode(otherlv_14, grammarAccess.getALSBasicRelationTermAccess().getRightParenthesisKeyword_6_2()); 7769 newLeafNode(otherlv_18, grammarAccess.getALSBasicRelationTermAccess().getRightParenthesisKeyword_8_2());
7671 7770
7672 } 7771 }
7673 7772
@@ -7699,7 +7798,7 @@ public class InternalAlloyLanguageParser extends AbstractInternalAntlrParser {
7699 7798
7700 7799
7701 // $ANTLR start "entryRuleALSRunCommand" 7800 // $ANTLR start "entryRuleALSRunCommand"
7702 // InternalAlloyLanguage.g:2720:1: entryRuleALSRunCommand returns [EObject current=null] : iv_ruleALSRunCommand= ruleALSRunCommand EOF ; 7801 // InternalAlloyLanguage.g:2756:1: entryRuleALSRunCommand returns [EObject current=null] : iv_ruleALSRunCommand= ruleALSRunCommand EOF ;
7703 public final EObject entryRuleALSRunCommand() throws RecognitionException { 7802 public final EObject entryRuleALSRunCommand() throws RecognitionException {
7704 EObject current = null; 7803 EObject current = null;
7705 7804
@@ -7707,8 +7806,8 @@ public class InternalAlloyLanguageParser extends AbstractInternalAntlrParser {
7707 7806
7708 7807
7709 try { 7808 try {
7710 // InternalAlloyLanguage.g:2721:2: (iv_ruleALSRunCommand= ruleALSRunCommand EOF ) 7809 // InternalAlloyLanguage.g:2757:2: (iv_ruleALSRunCommand= ruleALSRunCommand EOF )
7711 // InternalAlloyLanguage.g:2722:2: iv_ruleALSRunCommand= ruleALSRunCommand EOF 7810 // InternalAlloyLanguage.g:2758:2: iv_ruleALSRunCommand= ruleALSRunCommand EOF
7712 { 7811 {
7713 if ( state.backtracking==0 ) { 7812 if ( state.backtracking==0 ) {
7714 newCompositeNode(grammarAccess.getALSRunCommandRule()); 7813 newCompositeNode(grammarAccess.getALSRunCommandRule());
@@ -7739,7 +7838,7 @@ public class InternalAlloyLanguageParser extends AbstractInternalAntlrParser {
7739 7838
7740 7839
7741 // $ANTLR start "ruleALSRunCommand" 7840 // $ANTLR start "ruleALSRunCommand"
7742 // InternalAlloyLanguage.g:2729:1: ruleALSRunCommand returns [EObject current=null] : ( () otherlv_1= 'run' otherlv_2= '{' otherlv_3= '}' (otherlv_4= 'for' ( (lv_typeScopes_5_0= ruleALSTypeScope ) ) (otherlv_6= ',' ( (lv_typeScopes_7_0= ruleALSTypeScope ) ) )* )? ) ; 7841 // InternalAlloyLanguage.g:2765:1: ruleALSRunCommand returns [EObject current=null] : ( () otherlv_1= 'run' otherlv_2= '{' otherlv_3= '}' (otherlv_4= 'for' ( (lv_typeScopes_5_0= ruleALSTypeScope ) ) (otherlv_6= ',' ( (lv_typeScopes_7_0= ruleALSTypeScope ) ) )* )? ) ;
7743 public final EObject ruleALSRunCommand() throws RecognitionException { 7842 public final EObject ruleALSRunCommand() throws RecognitionException {
7744 EObject current = null; 7843 EObject current = null;
7745 7844
@@ -7756,14 +7855,14 @@ public class InternalAlloyLanguageParser extends AbstractInternalAntlrParser {
7756 enterRule(); 7855 enterRule();
7757 7856
7758 try { 7857 try {
7759 // InternalAlloyLanguage.g:2732:28: ( ( () otherlv_1= 'run' otherlv_2= '{' otherlv_3= '}' (otherlv_4= 'for' ( (lv_typeScopes_5_0= ruleALSTypeScope ) ) (otherlv_6= ',' ( (lv_typeScopes_7_0= ruleALSTypeScope ) ) )* )? ) ) 7858 // InternalAlloyLanguage.g:2768:28: ( ( () otherlv_1= 'run' otherlv_2= '{' otherlv_3= '}' (otherlv_4= 'for' ( (lv_typeScopes_5_0= ruleALSTypeScope ) ) (otherlv_6= ',' ( (lv_typeScopes_7_0= ruleALSTypeScope ) ) )* )? ) )
7760 // InternalAlloyLanguage.g:2733:1: ( () otherlv_1= 'run' otherlv_2= '{' otherlv_3= '}' (otherlv_4= 'for' ( (lv_typeScopes_5_0= ruleALSTypeScope ) ) (otherlv_6= ',' ( (lv_typeScopes_7_0= ruleALSTypeScope ) ) )* )? ) 7859 // InternalAlloyLanguage.g:2769:1: ( () otherlv_1= 'run' otherlv_2= '{' otherlv_3= '}' (otherlv_4= 'for' ( (lv_typeScopes_5_0= ruleALSTypeScope ) ) (otherlv_6= ',' ( (lv_typeScopes_7_0= ruleALSTypeScope ) ) )* )? )
7761 { 7860 {
7762 // InternalAlloyLanguage.g:2733:1: ( () otherlv_1= 'run' otherlv_2= '{' otherlv_3= '}' (otherlv_4= 'for' ( (lv_typeScopes_5_0= ruleALSTypeScope ) ) (otherlv_6= ',' ( (lv_typeScopes_7_0= ruleALSTypeScope ) ) )* )? ) 7861 // InternalAlloyLanguage.g:2769:1: ( () otherlv_1= 'run' otherlv_2= '{' otherlv_3= '}' (otherlv_4= 'for' ( (lv_typeScopes_5_0= ruleALSTypeScope ) ) (otherlv_6= ',' ( (lv_typeScopes_7_0= ruleALSTypeScope ) ) )* )? )
7763 // InternalAlloyLanguage.g:2733:2: () otherlv_1= 'run' otherlv_2= '{' otherlv_3= '}' (otherlv_4= 'for' ( (lv_typeScopes_5_0= ruleALSTypeScope ) ) (otherlv_6= ',' ( (lv_typeScopes_7_0= ruleALSTypeScope ) ) )* )? 7862 // InternalAlloyLanguage.g:2769:2: () otherlv_1= 'run' otherlv_2= '{' otherlv_3= '}' (otherlv_4= 'for' ( (lv_typeScopes_5_0= ruleALSTypeScope ) ) (otherlv_6= ',' ( (lv_typeScopes_7_0= ruleALSTypeScope ) ) )* )?
7764 { 7863 {
7765 // InternalAlloyLanguage.g:2733:2: () 7864 // InternalAlloyLanguage.g:2769:2: ()
7766 // InternalAlloyLanguage.g:2734:5: 7865 // InternalAlloyLanguage.g:2770:5:
7767 { 7866 {
7768 if ( state.backtracking==0 ) { 7867 if ( state.backtracking==0 ) {
7769 7868
@@ -7775,7 +7874,7 @@ public class InternalAlloyLanguageParser extends AbstractInternalAntlrParser {
7775 7874
7776 } 7875 }
7777 7876
7778 otherlv_1=(Token)match(input,62,FOLLOW_5); if (state.failed) return current; 7877 otherlv_1=(Token)match(input,63,FOLLOW_5); if (state.failed) return current;
7779 if ( state.backtracking==0 ) { 7878 if ( state.backtracking==0 ) {
7780 7879
7781 newLeafNode(otherlv_1, grammarAccess.getALSRunCommandAccess().getRunKeyword_1()); 7880 newLeafNode(otherlv_1, grammarAccess.getALSRunCommandAccess().getRunKeyword_1());
@@ -7793,28 +7892,28 @@ public class InternalAlloyLanguageParser extends AbstractInternalAntlrParser {
7793 newLeafNode(otherlv_3, grammarAccess.getALSRunCommandAccess().getRightCurlyBracketKeyword_3()); 7892 newLeafNode(otherlv_3, grammarAccess.getALSRunCommandAccess().getRightCurlyBracketKeyword_3());
7794 7893
7795 } 7894 }
7796 // InternalAlloyLanguage.g:2751:1: (otherlv_4= 'for' ( (lv_typeScopes_5_0= ruleALSTypeScope ) ) (otherlv_6= ',' ( (lv_typeScopes_7_0= ruleALSTypeScope ) ) )* )? 7895 // InternalAlloyLanguage.g:2787:1: (otherlv_4= 'for' ( (lv_typeScopes_5_0= ruleALSTypeScope ) ) (otherlv_6= ',' ( (lv_typeScopes_7_0= ruleALSTypeScope ) ) )* )?
7797 int alt45=2; 7896 int alt45=2;
7798 int LA45_0 = input.LA(1); 7897 int LA45_0 = input.LA(1);
7799 7898
7800 if ( (LA45_0==63) ) { 7899 if ( (LA45_0==64) ) {
7801 alt45=1; 7900 alt45=1;
7802 } 7901 }
7803 switch (alt45) { 7902 switch (alt45) {
7804 case 1 : 7903 case 1 :
7805 // InternalAlloyLanguage.g:2751:3: otherlv_4= 'for' ( (lv_typeScopes_5_0= ruleALSTypeScope ) ) (otherlv_6= ',' ( (lv_typeScopes_7_0= ruleALSTypeScope ) ) )* 7904 // InternalAlloyLanguage.g:2787:3: otherlv_4= 'for' ( (lv_typeScopes_5_0= ruleALSTypeScope ) ) (otherlv_6= ',' ( (lv_typeScopes_7_0= ruleALSTypeScope ) ) )*
7806 { 7905 {
7807 otherlv_4=(Token)match(input,63,FOLLOW_36); if (state.failed) return current; 7906 otherlv_4=(Token)match(input,64,FOLLOW_36); if (state.failed) return current;
7808 if ( state.backtracking==0 ) { 7907 if ( state.backtracking==0 ) {
7809 7908
7810 newLeafNode(otherlv_4, grammarAccess.getALSRunCommandAccess().getForKeyword_4_0()); 7909 newLeafNode(otherlv_4, grammarAccess.getALSRunCommandAccess().getForKeyword_4_0());
7811 7910
7812 } 7911 }
7813 // InternalAlloyLanguage.g:2755:1: ( (lv_typeScopes_5_0= ruleALSTypeScope ) ) 7912 // InternalAlloyLanguage.g:2791:1: ( (lv_typeScopes_5_0= ruleALSTypeScope ) )
7814 // InternalAlloyLanguage.g:2756:1: (lv_typeScopes_5_0= ruleALSTypeScope ) 7913 // InternalAlloyLanguage.g:2792:1: (lv_typeScopes_5_0= ruleALSTypeScope )
7815 { 7914 {
7816 // InternalAlloyLanguage.g:2756:1: (lv_typeScopes_5_0= ruleALSTypeScope ) 7915 // InternalAlloyLanguage.g:2792:1: (lv_typeScopes_5_0= ruleALSTypeScope )
7817 // InternalAlloyLanguage.g:2757:3: lv_typeScopes_5_0= ruleALSTypeScope 7916 // InternalAlloyLanguage.g:2793:3: lv_typeScopes_5_0= ruleALSTypeScope
7818 { 7917 {
7819 if ( state.backtracking==0 ) { 7918 if ( state.backtracking==0 ) {
7820 7919
@@ -7845,7 +7944,7 @@ public class InternalAlloyLanguageParser extends AbstractInternalAntlrParser {
7845 7944
7846 } 7945 }
7847 7946
7848 // InternalAlloyLanguage.g:2773:2: (otherlv_6= ',' ( (lv_typeScopes_7_0= ruleALSTypeScope ) ) )* 7947 // InternalAlloyLanguage.g:2809:2: (otherlv_6= ',' ( (lv_typeScopes_7_0= ruleALSTypeScope ) ) )*
7849 loop44: 7948 loop44:
7850 do { 7949 do {
7851 int alt44=2; 7950 int alt44=2;
@@ -7858,7 +7957,7 @@ public class InternalAlloyLanguageParser extends AbstractInternalAntlrParser {
7858 7957
7859 switch (alt44) { 7958 switch (alt44) {
7860 case 1 : 7959 case 1 :
7861 // InternalAlloyLanguage.g:2773:4: otherlv_6= ',' ( (lv_typeScopes_7_0= ruleALSTypeScope ) ) 7960 // InternalAlloyLanguage.g:2809:4: otherlv_6= ',' ( (lv_typeScopes_7_0= ruleALSTypeScope ) )
7862 { 7961 {
7863 otherlv_6=(Token)match(input,13,FOLLOW_36); if (state.failed) return current; 7962 otherlv_6=(Token)match(input,13,FOLLOW_36); if (state.failed) return current;
7864 if ( state.backtracking==0 ) { 7963 if ( state.backtracking==0 ) {
@@ -7866,11 +7965,11 @@ public class InternalAlloyLanguageParser extends AbstractInternalAntlrParser {
7866 newLeafNode(otherlv_6, grammarAccess.getALSRunCommandAccess().getCommaKeyword_4_2_0()); 7965 newLeafNode(otherlv_6, grammarAccess.getALSRunCommandAccess().getCommaKeyword_4_2_0());
7867 7966
7868 } 7967 }
7869 // InternalAlloyLanguage.g:2777:1: ( (lv_typeScopes_7_0= ruleALSTypeScope ) ) 7968 // InternalAlloyLanguage.g:2813:1: ( (lv_typeScopes_7_0= ruleALSTypeScope ) )
7870 // InternalAlloyLanguage.g:2778:1: (lv_typeScopes_7_0= ruleALSTypeScope ) 7969 // InternalAlloyLanguage.g:2814:1: (lv_typeScopes_7_0= ruleALSTypeScope )
7871 { 7970 {
7872 // InternalAlloyLanguage.g:2778:1: (lv_typeScopes_7_0= ruleALSTypeScope ) 7971 // InternalAlloyLanguage.g:2814:1: (lv_typeScopes_7_0= ruleALSTypeScope )
7873 // InternalAlloyLanguage.g:2779:3: lv_typeScopes_7_0= ruleALSTypeScope 7972 // InternalAlloyLanguage.g:2815:3: lv_typeScopes_7_0= ruleALSTypeScope
7874 { 7973 {
7875 if ( state.backtracking==0 ) { 7974 if ( state.backtracking==0 ) {
7876 7975
@@ -7939,7 +8038,7 @@ public class InternalAlloyLanguageParser extends AbstractInternalAntlrParser {
7939 8038
7940 8039
7941 // $ANTLR start "entryRuleALSTypeScope" 8040 // $ANTLR start "entryRuleALSTypeScope"
7942 // InternalAlloyLanguage.g:2803:1: entryRuleALSTypeScope returns [EObject current=null] : iv_ruleALSTypeScope= ruleALSTypeScope EOF ; 8041 // InternalAlloyLanguage.g:2839:1: entryRuleALSTypeScope returns [EObject current=null] : iv_ruleALSTypeScope= ruleALSTypeScope EOF ;
7943 public final EObject entryRuleALSTypeScope() throws RecognitionException { 8042 public final EObject entryRuleALSTypeScope() throws RecognitionException {
7944 EObject current = null; 8043 EObject current = null;
7945 8044
@@ -7947,8 +8046,8 @@ public class InternalAlloyLanguageParser extends AbstractInternalAntlrParser {
7947 8046
7948 8047
7949 try { 8048 try {
7950 // InternalAlloyLanguage.g:2804:2: (iv_ruleALSTypeScope= ruleALSTypeScope EOF ) 8049 // InternalAlloyLanguage.g:2840:2: (iv_ruleALSTypeScope= ruleALSTypeScope EOF )
7951 // InternalAlloyLanguage.g:2805:2: iv_ruleALSTypeScope= ruleALSTypeScope EOF 8050 // InternalAlloyLanguage.g:2841:2: iv_ruleALSTypeScope= ruleALSTypeScope EOF
7952 { 8051 {
7953 if ( state.backtracking==0 ) { 8052 if ( state.backtracking==0 ) {
7954 newCompositeNode(grammarAccess.getALSTypeScopeRule()); 8053 newCompositeNode(grammarAccess.getALSTypeScopeRule());
@@ -7979,7 +8078,7 @@ public class InternalAlloyLanguageParser extends AbstractInternalAntlrParser {
7979 8078
7980 8079
7981 // $ANTLR start "ruleALSTypeScope" 8080 // $ANTLR start "ruleALSTypeScope"
7982 // InternalAlloyLanguage.g:2812:1: ruleALSTypeScope returns [EObject current=null] : (this_ALSSigScope_0= ruleALSSigScope | this_ALSIntScope_1= ruleALSIntScope ) ; 8081 // InternalAlloyLanguage.g:2848:1: ruleALSTypeScope returns [EObject current=null] : (this_ALSSigScope_0= ruleALSSigScope | this_ALSIntScope_1= ruleALSIntScope | this_ALSStringScope_2= ruleALSStringScope ) ;
7983 public final EObject ruleALSTypeScope() throws RecognitionException { 8082 public final EObject ruleALSTypeScope() throws RecognitionException {
7984 EObject current = null; 8083 EObject current = null;
7985 8084
@@ -7987,19 +8086,46 @@ public class InternalAlloyLanguageParser extends AbstractInternalAntlrParser {
7987 8086
7988 EObject this_ALSIntScope_1 = null; 8087 EObject this_ALSIntScope_1 = null;
7989 8088
8089 EObject this_ALSStringScope_2 = null;
8090
7990 8091
7991 enterRule(); 8092 enterRule();
7992 8093
7993 try { 8094 try {
7994 // InternalAlloyLanguage.g:2815:28: ( (this_ALSSigScope_0= ruleALSSigScope | this_ALSIntScope_1= ruleALSIntScope ) ) 8095 // InternalAlloyLanguage.g:2851:28: ( (this_ALSSigScope_0= ruleALSSigScope | this_ALSIntScope_1= ruleALSIntScope | this_ALSStringScope_2= ruleALSStringScope ) )
7995 // InternalAlloyLanguage.g:2816:1: (this_ALSSigScope_0= ruleALSSigScope | this_ALSIntScope_1= ruleALSIntScope ) 8096 // InternalAlloyLanguage.g:2852:1: (this_ALSSigScope_0= ruleALSSigScope | this_ALSIntScope_1= ruleALSIntScope | this_ALSStringScope_2= ruleALSStringScope )
7996 { 8097 {
7997 // InternalAlloyLanguage.g:2816:1: (this_ALSSigScope_0= ruleALSSigScope | this_ALSIntScope_1= ruleALSIntScope ) 8098 // InternalAlloyLanguage.g:2852:1: (this_ALSSigScope_0= ruleALSSigScope | this_ALSIntScope_1= ruleALSIntScope | this_ALSStringScope_2= ruleALSStringScope )
7998 int alt46=2; 8099 int alt46=3;
7999 int LA46_0 = input.LA(1); 8100 int LA46_0 = input.LA(1);
8000 8101
8001 if ( (LA46_0==64) ) { 8102 if ( (LA46_0==65) ) {
8002 alt46=1; 8103 int LA46_1 = input.LA(2);
8104
8105 if ( (LA46_1==RULE_INT) ) {
8106 int LA46_3 = input.LA(3);
8107
8108 if ( (LA46_3==RULE_ID) ) {
8109 alt46=1;
8110 }
8111 else if ( (LA46_3==60) ) {
8112 alt46=3;
8113 }
8114 else {
8115 if (state.backtracking>0) {state.failed=true; return current;}
8116 NoViableAltException nvae =
8117 new NoViableAltException("", 46, 3, input);
8118
8119 throw nvae;
8120 }
8121 }
8122 else {
8123 if (state.backtracking>0) {state.failed=true; return current;}
8124 NoViableAltException nvae =
8125 new NoViableAltException("", 46, 1, input);
8126
8127 throw nvae;
8128 }
8003 } 8129 }
8004 else if ( (LA46_0==RULE_INT) ) { 8130 else if ( (LA46_0==RULE_INT) ) {
8005 int LA46_2 = input.LA(2); 8131 int LA46_2 = input.LA(2);
@@ -8027,7 +8153,7 @@ public class InternalAlloyLanguageParser extends AbstractInternalAntlrParser {
8027 } 8153 }
8028 switch (alt46) { 8154 switch (alt46) {
8029 case 1 : 8155 case 1 :
8030 // InternalAlloyLanguage.g:2817:5: this_ALSSigScope_0= ruleALSSigScope 8156 // InternalAlloyLanguage.g:2853:5: this_ALSSigScope_0= ruleALSSigScope
8031 { 8157 {
8032 if ( state.backtracking==0 ) { 8158 if ( state.backtracking==0 ) {
8033 8159
@@ -8049,7 +8175,7 @@ public class InternalAlloyLanguageParser extends AbstractInternalAntlrParser {
8049 } 8175 }
8050 break; 8176 break;
8051 case 2 : 8177 case 2 :
8052 // InternalAlloyLanguage.g:2827:5: this_ALSIntScope_1= ruleALSIntScope 8178 // InternalAlloyLanguage.g:2863:5: this_ALSIntScope_1= ruleALSIntScope
8053 { 8179 {
8054 if ( state.backtracking==0 ) { 8180 if ( state.backtracking==0 ) {
8055 8181
@@ -8070,6 +8196,28 @@ public class InternalAlloyLanguageParser extends AbstractInternalAntlrParser {
8070 8196
8071 } 8197 }
8072 break; 8198 break;
8199 case 3 :
8200 // InternalAlloyLanguage.g:2873:5: this_ALSStringScope_2= ruleALSStringScope
8201 {
8202 if ( state.backtracking==0 ) {
8203
8204 newCompositeNode(grammarAccess.getALSTypeScopeAccess().getALSStringScopeParserRuleCall_2());
8205
8206 }
8207 pushFollow(FOLLOW_2);
8208 this_ALSStringScope_2=ruleALSStringScope();
8209
8210 state._fsp--;
8211 if (state.failed) return current;
8212 if ( state.backtracking==0 ) {
8213
8214 current = this_ALSStringScope_2;
8215 afterParserOrEnumRuleCall();
8216
8217 }
8218
8219 }
8220 break;
8073 8221
8074 } 8222 }
8075 8223
@@ -8093,7 +8241,7 @@ public class InternalAlloyLanguageParser extends AbstractInternalAntlrParser {
8093 8241
8094 8242
8095 // $ANTLR start "entryRuleALSSigScope" 8243 // $ANTLR start "entryRuleALSSigScope"
8096 // InternalAlloyLanguage.g:2843:1: entryRuleALSSigScope returns [EObject current=null] : iv_ruleALSSigScope= ruleALSSigScope EOF ; 8244 // InternalAlloyLanguage.g:2889:1: entryRuleALSSigScope returns [EObject current=null] : iv_ruleALSSigScope= ruleALSSigScope EOF ;
8097 public final EObject entryRuleALSSigScope() throws RecognitionException { 8245 public final EObject entryRuleALSSigScope() throws RecognitionException {
8098 EObject current = null; 8246 EObject current = null;
8099 8247
@@ -8101,8 +8249,8 @@ public class InternalAlloyLanguageParser extends AbstractInternalAntlrParser {
8101 8249
8102 8250
8103 try { 8251 try {
8104 // InternalAlloyLanguage.g:2844:2: (iv_ruleALSSigScope= ruleALSSigScope EOF ) 8252 // InternalAlloyLanguage.g:2890:2: (iv_ruleALSSigScope= ruleALSSigScope EOF )
8105 // InternalAlloyLanguage.g:2845:2: iv_ruleALSSigScope= ruleALSSigScope EOF 8253 // InternalAlloyLanguage.g:2891:2: iv_ruleALSSigScope= ruleALSSigScope EOF
8106 { 8254 {
8107 if ( state.backtracking==0 ) { 8255 if ( state.backtracking==0 ) {
8108 newCompositeNode(grammarAccess.getALSSigScopeRule()); 8256 newCompositeNode(grammarAccess.getALSSigScopeRule());
@@ -8133,7 +8281,7 @@ public class InternalAlloyLanguageParser extends AbstractInternalAntlrParser {
8133 8281
8134 8282
8135 // $ANTLR start "ruleALSSigScope" 8283 // $ANTLR start "ruleALSSigScope"
8136 // InternalAlloyLanguage.g:2852:1: ruleALSSigScope returns [EObject current=null] : ( ( (lv_exactly_0_0= 'exactly' ) )? ( (lv_number_1_0= RULE_INT ) ) ( (otherlv_2= RULE_ID ) ) ) ; 8284 // InternalAlloyLanguage.g:2898:1: ruleALSSigScope returns [EObject current=null] : ( ( (lv_exactly_0_0= 'exactly' ) )? ( (lv_number_1_0= RULE_INT ) ) ( (otherlv_2= RULE_ID ) ) ) ;
8137 public final EObject ruleALSSigScope() throws RecognitionException { 8285 public final EObject ruleALSSigScope() throws RecognitionException {
8138 EObject current = null; 8286 EObject current = null;
8139 8287
@@ -8144,27 +8292,27 @@ public class InternalAlloyLanguageParser extends AbstractInternalAntlrParser {
8144 enterRule(); 8292 enterRule();
8145 8293
8146 try { 8294 try {
8147 // InternalAlloyLanguage.g:2855:28: ( ( ( (lv_exactly_0_0= 'exactly' ) )? ( (lv_number_1_0= RULE_INT ) ) ( (otherlv_2= RULE_ID ) ) ) ) 8295 // InternalAlloyLanguage.g:2901:28: ( ( ( (lv_exactly_0_0= 'exactly' ) )? ( (lv_number_1_0= RULE_INT ) ) ( (otherlv_2= RULE_ID ) ) ) )
8148 // InternalAlloyLanguage.g:2856:1: ( ( (lv_exactly_0_0= 'exactly' ) )? ( (lv_number_1_0= RULE_INT ) ) ( (otherlv_2= RULE_ID ) ) ) 8296 // InternalAlloyLanguage.g:2902:1: ( ( (lv_exactly_0_0= 'exactly' ) )? ( (lv_number_1_0= RULE_INT ) ) ( (otherlv_2= RULE_ID ) ) )
8149 { 8297 {
8150 // InternalAlloyLanguage.g:2856:1: ( ( (lv_exactly_0_0= 'exactly' ) )? ( (lv_number_1_0= RULE_INT ) ) ( (otherlv_2= RULE_ID ) ) ) 8298 // InternalAlloyLanguage.g:2902:1: ( ( (lv_exactly_0_0= 'exactly' ) )? ( (lv_number_1_0= RULE_INT ) ) ( (otherlv_2= RULE_ID ) ) )
8151 // InternalAlloyLanguage.g:2856:2: ( (lv_exactly_0_0= 'exactly' ) )? ( (lv_number_1_0= RULE_INT ) ) ( (otherlv_2= RULE_ID ) ) 8299 // InternalAlloyLanguage.g:2902:2: ( (lv_exactly_0_0= 'exactly' ) )? ( (lv_number_1_0= RULE_INT ) ) ( (otherlv_2= RULE_ID ) )
8152 { 8300 {
8153 // InternalAlloyLanguage.g:2856:2: ( (lv_exactly_0_0= 'exactly' ) )? 8301 // InternalAlloyLanguage.g:2902:2: ( (lv_exactly_0_0= 'exactly' ) )?
8154 int alt47=2; 8302 int alt47=2;
8155 int LA47_0 = input.LA(1); 8303 int LA47_0 = input.LA(1);
8156 8304
8157 if ( (LA47_0==64) ) { 8305 if ( (LA47_0==65) ) {
8158 alt47=1; 8306 alt47=1;
8159 } 8307 }
8160 switch (alt47) { 8308 switch (alt47) {
8161 case 1 : 8309 case 1 :
8162 // InternalAlloyLanguage.g:2857:1: (lv_exactly_0_0= 'exactly' ) 8310 // InternalAlloyLanguage.g:2903:1: (lv_exactly_0_0= 'exactly' )
8163 { 8311 {
8164 // InternalAlloyLanguage.g:2857:1: (lv_exactly_0_0= 'exactly' ) 8312 // InternalAlloyLanguage.g:2903:1: (lv_exactly_0_0= 'exactly' )
8165 // InternalAlloyLanguage.g:2858:3: lv_exactly_0_0= 'exactly' 8313 // InternalAlloyLanguage.g:2904:3: lv_exactly_0_0= 'exactly'
8166 { 8314 {
8167 lv_exactly_0_0=(Token)match(input,64,FOLLOW_38); if (state.failed) return current; 8315 lv_exactly_0_0=(Token)match(input,65,FOLLOW_38); if (state.failed) return current;
8168 if ( state.backtracking==0 ) { 8316 if ( state.backtracking==0 ) {
8169 8317
8170 newLeafNode(lv_exactly_0_0, grammarAccess.getALSSigScopeAccess().getExactlyExactlyKeyword_0_0()); 8318 newLeafNode(lv_exactly_0_0, grammarAccess.getALSSigScopeAccess().getExactlyExactlyKeyword_0_0());
@@ -8187,11 +8335,11 @@ public class InternalAlloyLanguageParser extends AbstractInternalAntlrParser {
8187 8335
8188 } 8336 }
8189 8337
8190 // InternalAlloyLanguage.g:2871:3: ( (lv_number_1_0= RULE_INT ) ) 8338 // InternalAlloyLanguage.g:2917:3: ( (lv_number_1_0= RULE_INT ) )
8191 // InternalAlloyLanguage.g:2872:1: (lv_number_1_0= RULE_INT ) 8339 // InternalAlloyLanguage.g:2918:1: (lv_number_1_0= RULE_INT )
8192 { 8340 {
8193 // InternalAlloyLanguage.g:2872:1: (lv_number_1_0= RULE_INT ) 8341 // InternalAlloyLanguage.g:2918:1: (lv_number_1_0= RULE_INT )
8194 // InternalAlloyLanguage.g:2873:3: lv_number_1_0= RULE_INT 8342 // InternalAlloyLanguage.g:2919:3: lv_number_1_0= RULE_INT
8195 { 8343 {
8196 lv_number_1_0=(Token)match(input,RULE_INT,FOLLOW_4); if (state.failed) return current; 8344 lv_number_1_0=(Token)match(input,RULE_INT,FOLLOW_4); if (state.failed) return current;
8197 if ( state.backtracking==0 ) { 8345 if ( state.backtracking==0 ) {
@@ -8217,11 +8365,11 @@ public class InternalAlloyLanguageParser extends AbstractInternalAntlrParser {
8217 8365
8218 } 8366 }
8219 8367
8220 // InternalAlloyLanguage.g:2889:2: ( (otherlv_2= RULE_ID ) ) 8368 // InternalAlloyLanguage.g:2935:2: ( (otherlv_2= RULE_ID ) )
8221 // InternalAlloyLanguage.g:2890:1: (otherlv_2= RULE_ID ) 8369 // InternalAlloyLanguage.g:2936:1: (otherlv_2= RULE_ID )
8222 { 8370 {
8223 // InternalAlloyLanguage.g:2890:1: (otherlv_2= RULE_ID ) 8371 // InternalAlloyLanguage.g:2936:1: (otherlv_2= RULE_ID )
8224 // InternalAlloyLanguage.g:2891:3: otherlv_2= RULE_ID 8372 // InternalAlloyLanguage.g:2937:3: otherlv_2= RULE_ID
8225 { 8373 {
8226 if ( state.backtracking==0 ) { 8374 if ( state.backtracking==0 ) {
8227 8375
@@ -8265,7 +8413,7 @@ public class InternalAlloyLanguageParser extends AbstractInternalAntlrParser {
8265 8413
8266 8414
8267 // $ANTLR start "entryRuleALSIntScope" 8415 // $ANTLR start "entryRuleALSIntScope"
8268 // InternalAlloyLanguage.g:2910:1: entryRuleALSIntScope returns [EObject current=null] : iv_ruleALSIntScope= ruleALSIntScope EOF ; 8416 // InternalAlloyLanguage.g:2956:1: entryRuleALSIntScope returns [EObject current=null] : iv_ruleALSIntScope= ruleALSIntScope EOF ;
8269 public final EObject entryRuleALSIntScope() throws RecognitionException { 8417 public final EObject entryRuleALSIntScope() throws RecognitionException {
8270 EObject current = null; 8418 EObject current = null;
8271 8419
@@ -8273,8 +8421,8 @@ public class InternalAlloyLanguageParser extends AbstractInternalAntlrParser {
8273 8421
8274 8422
8275 try { 8423 try {
8276 // InternalAlloyLanguage.g:2911:2: (iv_ruleALSIntScope= ruleALSIntScope EOF ) 8424 // InternalAlloyLanguage.g:2957:2: (iv_ruleALSIntScope= ruleALSIntScope EOF )
8277 // InternalAlloyLanguage.g:2912:2: iv_ruleALSIntScope= ruleALSIntScope EOF 8425 // InternalAlloyLanguage.g:2958:2: iv_ruleALSIntScope= ruleALSIntScope EOF
8278 { 8426 {
8279 if ( state.backtracking==0 ) { 8427 if ( state.backtracking==0 ) {
8280 newCompositeNode(grammarAccess.getALSIntScopeRule()); 8428 newCompositeNode(grammarAccess.getALSIntScopeRule());
@@ -8305,7 +8453,7 @@ public class InternalAlloyLanguageParser extends AbstractInternalAntlrParser {
8305 8453
8306 8454
8307 // $ANTLR start "ruleALSIntScope" 8455 // $ANTLR start "ruleALSIntScope"
8308 // InternalAlloyLanguage.g:2919:1: ruleALSIntScope returns [EObject current=null] : ( ( (lv_number_0_0= RULE_INT ) ) otherlv_1= 'Int' ) ; 8456 // InternalAlloyLanguage.g:2965:1: ruleALSIntScope returns [EObject current=null] : ( ( (lv_number_0_0= RULE_INT ) ) otherlv_1= 'Int' ) ;
8309 public final EObject ruleALSIntScope() throws RecognitionException { 8457 public final EObject ruleALSIntScope() throws RecognitionException {
8310 EObject current = null; 8458 EObject current = null;
8311 8459
@@ -8315,17 +8463,17 @@ public class InternalAlloyLanguageParser extends AbstractInternalAntlrParser {
8315 enterRule(); 8463 enterRule();
8316 8464
8317 try { 8465 try {
8318 // InternalAlloyLanguage.g:2922:28: ( ( ( (lv_number_0_0= RULE_INT ) ) otherlv_1= 'Int' ) ) 8466 // InternalAlloyLanguage.g:2968:28: ( ( ( (lv_number_0_0= RULE_INT ) ) otherlv_1= 'Int' ) )
8319 // InternalAlloyLanguage.g:2923:1: ( ( (lv_number_0_0= RULE_INT ) ) otherlv_1= 'Int' ) 8467 // InternalAlloyLanguage.g:2969:1: ( ( (lv_number_0_0= RULE_INT ) ) otherlv_1= 'Int' )
8320 { 8468 {
8321 // InternalAlloyLanguage.g:2923:1: ( ( (lv_number_0_0= RULE_INT ) ) otherlv_1= 'Int' ) 8469 // InternalAlloyLanguage.g:2969:1: ( ( (lv_number_0_0= RULE_INT ) ) otherlv_1= 'Int' )
8322 // InternalAlloyLanguage.g:2923:2: ( (lv_number_0_0= RULE_INT ) ) otherlv_1= 'Int' 8470 // InternalAlloyLanguage.g:2969:2: ( (lv_number_0_0= RULE_INT ) ) otherlv_1= 'Int'
8323 { 8471 {
8324 // InternalAlloyLanguage.g:2923:2: ( (lv_number_0_0= RULE_INT ) ) 8472 // InternalAlloyLanguage.g:2969:2: ( (lv_number_0_0= RULE_INT ) )
8325 // InternalAlloyLanguage.g:2924:1: (lv_number_0_0= RULE_INT ) 8473 // InternalAlloyLanguage.g:2970:1: (lv_number_0_0= RULE_INT )
8326 { 8474 {
8327 // InternalAlloyLanguage.g:2924:1: (lv_number_0_0= RULE_INT ) 8475 // InternalAlloyLanguage.g:2970:1: (lv_number_0_0= RULE_INT )
8328 // InternalAlloyLanguage.g:2925:3: lv_number_0_0= RULE_INT 8476 // InternalAlloyLanguage.g:2971:3: lv_number_0_0= RULE_INT
8329 { 8477 {
8330 lv_number_0_0=(Token)match(input,RULE_INT,FOLLOW_39); if (state.failed) return current; 8478 lv_number_0_0=(Token)match(input,RULE_INT,FOLLOW_39); if (state.failed) return current;
8331 if ( state.backtracking==0 ) { 8479 if ( state.backtracking==0 ) {
@@ -8379,8 +8527,130 @@ public class InternalAlloyLanguageParser extends AbstractInternalAntlrParser {
8379 // $ANTLR end "ruleALSIntScope" 8527 // $ANTLR end "ruleALSIntScope"
8380 8528
8381 8529
8530 // $ANTLR start "entryRuleALSStringScope"
8531 // InternalAlloyLanguage.g:2999:1: entryRuleALSStringScope returns [EObject current=null] : iv_ruleALSStringScope= ruleALSStringScope EOF ;
8532 public final EObject entryRuleALSStringScope() throws RecognitionException {
8533 EObject current = null;
8534
8535 EObject iv_ruleALSStringScope = null;
8536
8537
8538 try {
8539 // InternalAlloyLanguage.g:3000:2: (iv_ruleALSStringScope= ruleALSStringScope EOF )
8540 // InternalAlloyLanguage.g:3001:2: iv_ruleALSStringScope= ruleALSStringScope EOF
8541 {
8542 if ( state.backtracking==0 ) {
8543 newCompositeNode(grammarAccess.getALSStringScopeRule());
8544 }
8545 pushFollow(FOLLOW_1);
8546 iv_ruleALSStringScope=ruleALSStringScope();
8547
8548 state._fsp--;
8549 if (state.failed) return current;
8550 if ( state.backtracking==0 ) {
8551 current =iv_ruleALSStringScope;
8552 }
8553 match(input,EOF,FOLLOW_2); if (state.failed) return current;
8554
8555 }
8556
8557 }
8558
8559 catch (RecognitionException re) {
8560 recover(input,re);
8561 appendSkippedTokens();
8562 }
8563 finally {
8564 }
8565 return current;
8566 }
8567 // $ANTLR end "entryRuleALSStringScope"
8568
8569
8570 // $ANTLR start "ruleALSStringScope"
8571 // InternalAlloyLanguage.g:3008:1: ruleALSStringScope returns [EObject current=null] : (otherlv_0= 'exactly' ( (lv_number_1_0= RULE_INT ) ) otherlv_2= 'String' ) ;
8572 public final EObject ruleALSStringScope() throws RecognitionException {
8573 EObject current = null;
8574
8575 Token otherlv_0=null;
8576 Token lv_number_1_0=null;
8577 Token otherlv_2=null;
8578
8579 enterRule();
8580
8581 try {
8582 // InternalAlloyLanguage.g:3011:28: ( (otherlv_0= 'exactly' ( (lv_number_1_0= RULE_INT ) ) otherlv_2= 'String' ) )
8583 // InternalAlloyLanguage.g:3012:1: (otherlv_0= 'exactly' ( (lv_number_1_0= RULE_INT ) ) otherlv_2= 'String' )
8584 {
8585 // InternalAlloyLanguage.g:3012:1: (otherlv_0= 'exactly' ( (lv_number_1_0= RULE_INT ) ) otherlv_2= 'String' )
8586 // InternalAlloyLanguage.g:3012:3: otherlv_0= 'exactly' ( (lv_number_1_0= RULE_INT ) ) otherlv_2= 'String'
8587 {
8588 otherlv_0=(Token)match(input,65,FOLLOW_38); if (state.failed) return current;
8589 if ( state.backtracking==0 ) {
8590
8591 newLeafNode(otherlv_0, grammarAccess.getALSStringScopeAccess().getExactlyKeyword_0());
8592
8593 }
8594 // InternalAlloyLanguage.g:3016:1: ( (lv_number_1_0= RULE_INT ) )
8595 // InternalAlloyLanguage.g:3017:1: (lv_number_1_0= RULE_INT )
8596 {
8597 // InternalAlloyLanguage.g:3017:1: (lv_number_1_0= RULE_INT )
8598 // InternalAlloyLanguage.g:3018:3: lv_number_1_0= RULE_INT
8599 {
8600 lv_number_1_0=(Token)match(input,RULE_INT,FOLLOW_40); if (state.failed) return current;
8601 if ( state.backtracking==0 ) {
8602
8603 newLeafNode(lv_number_1_0, grammarAccess.getALSStringScopeAccess().getNumberINTTerminalRuleCall_1_0());
8604
8605 }
8606 if ( state.backtracking==0 ) {
8607
8608 if (current==null) {
8609 current = createModelElement(grammarAccess.getALSStringScopeRule());
8610 }
8611 setWithLastConsumed(
8612 current,
8613 "number",
8614 lv_number_1_0,
8615 "org.eclipse.xtext.common.Terminals.INT");
8616
8617 }
8618
8619 }
8620
8621
8622 }
8623
8624 otherlv_2=(Token)match(input,60,FOLLOW_2); if (state.failed) return current;
8625 if ( state.backtracking==0 ) {
8626
8627 newLeafNode(otherlv_2, grammarAccess.getALSStringScopeAccess().getStringKeyword_2());
8628
8629 }
8630
8631 }
8632
8633
8634 }
8635
8636 if ( state.backtracking==0 ) {
8637 leaveRule();
8638 }
8639 }
8640
8641 catch (RecognitionException re) {
8642 recover(input,re);
8643 appendSkippedTokens();
8644 }
8645 finally {
8646 }
8647 return current;
8648 }
8649 // $ANTLR end "ruleALSStringScope"
8650
8651
8382 // $ANTLR start "ruleALSMultiplicity" 8652 // $ANTLR start "ruleALSMultiplicity"
8383 // InternalAlloyLanguage.g:2953:1: ruleALSMultiplicity returns [Enumerator current=null] : ( (enumLiteral_0= 'all' ) | (enumLiteral_1= 'no' ) | (enumLiteral_2= 'some' ) | (enumLiteral_3= 'lone' ) | (enumLiteral_4= 'one' ) | (enumLiteral_5= 'set' ) ) ; 8653 // InternalAlloyLanguage.g:3046:1: ruleALSMultiplicity returns [Enumerator current=null] : ( (enumLiteral_0= 'all' ) | (enumLiteral_1= 'no' ) | (enumLiteral_2= 'some' ) | (enumLiteral_3= 'lone' ) | (enumLiteral_4= 'one' ) | (enumLiteral_5= 'set' ) ) ;
8384 public final Enumerator ruleALSMultiplicity() throws RecognitionException { 8654 public final Enumerator ruleALSMultiplicity() throws RecognitionException {
8385 Enumerator current = null; 8655 Enumerator current = null;
8386 8656
@@ -8393,38 +8663,38 @@ public class InternalAlloyLanguageParser extends AbstractInternalAntlrParser {
8393 8663
8394 enterRule(); 8664 enterRule();
8395 try { 8665 try {
8396 // InternalAlloyLanguage.g:2955:28: ( ( (enumLiteral_0= 'all' ) | (enumLiteral_1= 'no' ) | (enumLiteral_2= 'some' ) | (enumLiteral_3= 'lone' ) | (enumLiteral_4= 'one' ) | (enumLiteral_5= 'set' ) ) ) 8666 // InternalAlloyLanguage.g:3048:28: ( ( (enumLiteral_0= 'all' ) | (enumLiteral_1= 'no' ) | (enumLiteral_2= 'some' ) | (enumLiteral_3= 'lone' ) | (enumLiteral_4= 'one' ) | (enumLiteral_5= 'set' ) ) )
8397 // InternalAlloyLanguage.g:2956:1: ( (enumLiteral_0= 'all' ) | (enumLiteral_1= 'no' ) | (enumLiteral_2= 'some' ) | (enumLiteral_3= 'lone' ) | (enumLiteral_4= 'one' ) | (enumLiteral_5= 'set' ) ) 8667 // InternalAlloyLanguage.g:3049:1: ( (enumLiteral_0= 'all' ) | (enumLiteral_1= 'no' ) | (enumLiteral_2= 'some' ) | (enumLiteral_3= 'lone' ) | (enumLiteral_4= 'one' ) | (enumLiteral_5= 'set' ) )
8398 { 8668 {
8399 // InternalAlloyLanguage.g:2956:1: ( (enumLiteral_0= 'all' ) | (enumLiteral_1= 'no' ) | (enumLiteral_2= 'some' ) | (enumLiteral_3= 'lone' ) | (enumLiteral_4= 'one' ) | (enumLiteral_5= 'set' ) ) 8669 // InternalAlloyLanguage.g:3049:1: ( (enumLiteral_0= 'all' ) | (enumLiteral_1= 'no' ) | (enumLiteral_2= 'some' ) | (enumLiteral_3= 'lone' ) | (enumLiteral_4= 'one' ) | (enumLiteral_5= 'set' ) )
8400 int alt48=6; 8670 int alt48=6;
8401 switch ( input.LA(1) ) { 8671 switch ( input.LA(1) ) {
8402 case 65: 8672 case 66:
8403 { 8673 {
8404 alt48=1; 8674 alt48=1;
8405 } 8675 }
8406 break; 8676 break;
8407 case 66: 8677 case 67:
8408 { 8678 {
8409 alt48=2; 8679 alt48=2;
8410 } 8680 }
8411 break; 8681 break;
8412 case 67: 8682 case 68:
8413 { 8683 {
8414 alt48=3; 8684 alt48=3;
8415 } 8685 }
8416 break; 8686 break;
8417 case 68: 8687 case 69:
8418 { 8688 {
8419 alt48=4; 8689 alt48=4;
8420 } 8690 }
8421 break; 8691 break;
8422 case 69: 8692 case 70:
8423 { 8693 {
8424 alt48=5; 8694 alt48=5;
8425 } 8695 }
8426 break; 8696 break;
8427 case 70: 8697 case 71:
8428 { 8698 {
8429 alt48=6; 8699 alt48=6;
8430 } 8700 }
@@ -8439,12 +8709,12 @@ public class InternalAlloyLanguageParser extends AbstractInternalAntlrParser {
8439 8709
8440 switch (alt48) { 8710 switch (alt48) {
8441 case 1 : 8711 case 1 :
8442 // InternalAlloyLanguage.g:2956:2: (enumLiteral_0= 'all' ) 8712 // InternalAlloyLanguage.g:3049:2: (enumLiteral_0= 'all' )
8443 { 8713 {
8444 // InternalAlloyLanguage.g:2956:2: (enumLiteral_0= 'all' ) 8714 // InternalAlloyLanguage.g:3049:2: (enumLiteral_0= 'all' )
8445 // InternalAlloyLanguage.g:2956:4: enumLiteral_0= 'all' 8715 // InternalAlloyLanguage.g:3049:4: enumLiteral_0= 'all'
8446 { 8716 {
8447 enumLiteral_0=(Token)match(input,65,FOLLOW_2); if (state.failed) return current; 8717 enumLiteral_0=(Token)match(input,66,FOLLOW_2); if (state.failed) return current;
8448 if ( state.backtracking==0 ) { 8718 if ( state.backtracking==0 ) {
8449 8719
8450 current = grammarAccess.getALSMultiplicityAccess().getAllEnumLiteralDeclaration_0().getEnumLiteral().getInstance(); 8720 current = grammarAccess.getALSMultiplicityAccess().getAllEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
@@ -8458,12 +8728,12 @@ public class InternalAlloyLanguageParser extends AbstractInternalAntlrParser {
8458 } 8728 }
8459 break; 8729 break;
8460 case 2 : 8730 case 2 :
8461 // InternalAlloyLanguage.g:2962:6: (enumLiteral_1= 'no' ) 8731 // InternalAlloyLanguage.g:3055:6: (enumLiteral_1= 'no' )
8462 { 8732 {
8463 // InternalAlloyLanguage.g:2962:6: (enumLiteral_1= 'no' ) 8733 // InternalAlloyLanguage.g:3055:6: (enumLiteral_1= 'no' )
8464 // InternalAlloyLanguage.g:2962:8: enumLiteral_1= 'no' 8734 // InternalAlloyLanguage.g:3055:8: enumLiteral_1= 'no'
8465 { 8735 {
8466 enumLiteral_1=(Token)match(input,66,FOLLOW_2); if (state.failed) return current; 8736 enumLiteral_1=(Token)match(input,67,FOLLOW_2); if (state.failed) return current;
8467 if ( state.backtracking==0 ) { 8737 if ( state.backtracking==0 ) {
8468 8738
8469 current = grammarAccess.getALSMultiplicityAccess().getNoEnumLiteralDeclaration_1().getEnumLiteral().getInstance(); 8739 current = grammarAccess.getALSMultiplicityAccess().getNoEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
@@ -8477,12 +8747,12 @@ public class InternalAlloyLanguageParser extends AbstractInternalAntlrParser {
8477 } 8747 }
8478 break; 8748 break;
8479 case 3 : 8749 case 3 :
8480 // InternalAlloyLanguage.g:2968:6: (enumLiteral_2= 'some' ) 8750 // InternalAlloyLanguage.g:3061:6: (enumLiteral_2= 'some' )
8481 { 8751 {
8482 // InternalAlloyLanguage.g:2968:6: (enumLiteral_2= 'some' ) 8752 // InternalAlloyLanguage.g:3061:6: (enumLiteral_2= 'some' )
8483 // InternalAlloyLanguage.g:2968:8: enumLiteral_2= 'some' 8753 // InternalAlloyLanguage.g:3061:8: enumLiteral_2= 'some'
8484 { 8754 {
8485 enumLiteral_2=(Token)match(input,67,FOLLOW_2); if (state.failed) return current; 8755 enumLiteral_2=(Token)match(input,68,FOLLOW_2); if (state.failed) return current;
8486 if ( state.backtracking==0 ) { 8756 if ( state.backtracking==0 ) {
8487 8757
8488 current = grammarAccess.getALSMultiplicityAccess().getSomeEnumLiteralDeclaration_2().getEnumLiteral().getInstance(); 8758 current = grammarAccess.getALSMultiplicityAccess().getSomeEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
@@ -8496,12 +8766,12 @@ public class InternalAlloyLanguageParser extends AbstractInternalAntlrParser {
8496 } 8766 }
8497 break; 8767 break;
8498 case 4 : 8768 case 4 :
8499 // InternalAlloyLanguage.g:2974:6: (enumLiteral_3= 'lone' ) 8769 // InternalAlloyLanguage.g:3067:6: (enumLiteral_3= 'lone' )
8500 { 8770 {
8501 // InternalAlloyLanguage.g:2974:6: (enumLiteral_3= 'lone' ) 8771 // InternalAlloyLanguage.g:3067:6: (enumLiteral_3= 'lone' )
8502 // InternalAlloyLanguage.g:2974:8: enumLiteral_3= 'lone' 8772 // InternalAlloyLanguage.g:3067:8: enumLiteral_3= 'lone'
8503 { 8773 {
8504 enumLiteral_3=(Token)match(input,68,FOLLOW_2); if (state.failed) return current; 8774 enumLiteral_3=(Token)match(input,69,FOLLOW_2); if (state.failed) return current;
8505 if ( state.backtracking==0 ) { 8775 if ( state.backtracking==0 ) {
8506 8776
8507 current = grammarAccess.getALSMultiplicityAccess().getLoneEnumLiteralDeclaration_3().getEnumLiteral().getInstance(); 8777 current = grammarAccess.getALSMultiplicityAccess().getLoneEnumLiteralDeclaration_3().getEnumLiteral().getInstance();
@@ -8515,12 +8785,12 @@ public class InternalAlloyLanguageParser extends AbstractInternalAntlrParser {
8515 } 8785 }
8516 break; 8786 break;
8517 case 5 : 8787 case 5 :
8518 // InternalAlloyLanguage.g:2980:6: (enumLiteral_4= 'one' ) 8788 // InternalAlloyLanguage.g:3073:6: (enumLiteral_4= 'one' )
8519 { 8789 {
8520 // InternalAlloyLanguage.g:2980:6: (enumLiteral_4= 'one' ) 8790 // InternalAlloyLanguage.g:3073:6: (enumLiteral_4= 'one' )
8521 // InternalAlloyLanguage.g:2980:8: enumLiteral_4= 'one' 8791 // InternalAlloyLanguage.g:3073:8: enumLiteral_4= 'one'
8522 { 8792 {
8523 enumLiteral_4=(Token)match(input,69,FOLLOW_2); if (state.failed) return current; 8793 enumLiteral_4=(Token)match(input,70,FOLLOW_2); if (state.failed) return current;
8524 if ( state.backtracking==0 ) { 8794 if ( state.backtracking==0 ) {
8525 8795
8526 current = grammarAccess.getALSMultiplicityAccess().getOneEnumLiteralDeclaration_4().getEnumLiteral().getInstance(); 8796 current = grammarAccess.getALSMultiplicityAccess().getOneEnumLiteralDeclaration_4().getEnumLiteral().getInstance();
@@ -8534,12 +8804,12 @@ public class InternalAlloyLanguageParser extends AbstractInternalAntlrParser {
8534 } 8804 }
8535 break; 8805 break;
8536 case 6 : 8806 case 6 :
8537 // InternalAlloyLanguage.g:2986:6: (enumLiteral_5= 'set' ) 8807 // InternalAlloyLanguage.g:3079:6: (enumLiteral_5= 'set' )
8538 { 8808 {
8539 // InternalAlloyLanguage.g:2986:6: (enumLiteral_5= 'set' ) 8809 // InternalAlloyLanguage.g:3079:6: (enumLiteral_5= 'set' )
8540 // InternalAlloyLanguage.g:2986:8: enumLiteral_5= 'set' 8810 // InternalAlloyLanguage.g:3079:8: enumLiteral_5= 'set'
8541 { 8811 {
8542 enumLiteral_5=(Token)match(input,70,FOLLOW_2); if (state.failed) return current; 8812 enumLiteral_5=(Token)match(input,71,FOLLOW_2); if (state.failed) return current;
8543 if ( state.backtracking==0 ) { 8813 if ( state.backtracking==0 ) {
8544 8814
8545 current = grammarAccess.getALSMultiplicityAccess().getSetEnumLiteralDeclaration_5().getEnumLiteral().getInstance(); 8815 current = grammarAccess.getALSMultiplicityAccess().getSetEnumLiteralDeclaration_5().getEnumLiteral().getInstance();
@@ -8575,7 +8845,7 @@ public class InternalAlloyLanguageParser extends AbstractInternalAntlrParser {
8575 8845
8576 8846
8577 // $ANTLR start "ruleALSNumericOperator" 8847 // $ANTLR start "ruleALSNumericOperator"
8578 // InternalAlloyLanguage.g:2996:1: ruleALSNumericOperator returns [Enumerator current=null] : ( (enumLiteral_0= 'plus' ) | (enumLiteral_1= 'sub' ) | (enumLiteral_2= 'mul' ) | (enumLiteral_3= 'rem' ) | (enumLiteral_4= 'div' ) ) ; 8848 // InternalAlloyLanguage.g:3089:1: ruleALSNumericOperator returns [Enumerator current=null] : ( (enumLiteral_0= 'plus' ) | (enumLiteral_1= 'sub' ) | (enumLiteral_2= 'mul' ) | (enumLiteral_3= 'rem' ) | (enumLiteral_4= 'div' ) ) ;
8579 public final Enumerator ruleALSNumericOperator() throws RecognitionException { 8849 public final Enumerator ruleALSNumericOperator() throws RecognitionException {
8580 Enumerator current = null; 8850 Enumerator current = null;
8581 8851
@@ -8587,33 +8857,33 @@ public class InternalAlloyLanguageParser extends AbstractInternalAntlrParser {
8587 8857
8588 enterRule(); 8858 enterRule();
8589 try { 8859 try {
8590 // InternalAlloyLanguage.g:2998:28: ( ( (enumLiteral_0= 'plus' ) | (enumLiteral_1= 'sub' ) | (enumLiteral_2= 'mul' ) | (enumLiteral_3= 'rem' ) | (enumLiteral_4= 'div' ) ) ) 8860 // InternalAlloyLanguage.g:3091:28: ( ( (enumLiteral_0= 'plus' ) | (enumLiteral_1= 'sub' ) | (enumLiteral_2= 'mul' ) | (enumLiteral_3= 'rem' ) | (enumLiteral_4= 'div' ) ) )
8591 // InternalAlloyLanguage.g:2999:1: ( (enumLiteral_0= 'plus' ) | (enumLiteral_1= 'sub' ) | (enumLiteral_2= 'mul' ) | (enumLiteral_3= 'rem' ) | (enumLiteral_4= 'div' ) ) 8861 // InternalAlloyLanguage.g:3092:1: ( (enumLiteral_0= 'plus' ) | (enumLiteral_1= 'sub' ) | (enumLiteral_2= 'mul' ) | (enumLiteral_3= 'rem' ) | (enumLiteral_4= 'div' ) )
8592 { 8862 {
8593 // InternalAlloyLanguage.g:2999:1: ( (enumLiteral_0= 'plus' ) | (enumLiteral_1= 'sub' ) | (enumLiteral_2= 'mul' ) | (enumLiteral_3= 'rem' ) | (enumLiteral_4= 'div' ) ) 8863 // InternalAlloyLanguage.g:3092:1: ( (enumLiteral_0= 'plus' ) | (enumLiteral_1= 'sub' ) | (enumLiteral_2= 'mul' ) | (enumLiteral_3= 'rem' ) | (enumLiteral_4= 'div' ) )
8594 int alt49=5; 8864 int alt49=5;
8595 switch ( input.LA(1) ) { 8865 switch ( input.LA(1) ) {
8596 case 71: 8866 case 72:
8597 { 8867 {
8598 alt49=1; 8868 alt49=1;
8599 } 8869 }
8600 break; 8870 break;
8601 case 72: 8871 case 73:
8602 { 8872 {
8603 alt49=2; 8873 alt49=2;
8604 } 8874 }
8605 break; 8875 break;
8606 case 73: 8876 case 74:
8607 { 8877 {
8608 alt49=3; 8878 alt49=3;
8609 } 8879 }
8610 break; 8880 break;
8611 case 74: 8881 case 75:
8612 { 8882 {
8613 alt49=4; 8883 alt49=4;
8614 } 8884 }
8615 break; 8885 break;
8616 case 75: 8886 case 76:
8617 { 8887 {
8618 alt49=5; 8888 alt49=5;
8619 } 8889 }
@@ -8628,12 +8898,12 @@ public class InternalAlloyLanguageParser extends AbstractInternalAntlrParser {
8628 8898
8629 switch (alt49) { 8899 switch (alt49) {
8630 case 1 : 8900 case 1 :
8631 // InternalAlloyLanguage.g:2999:2: (enumLiteral_0= 'plus' ) 8901 // InternalAlloyLanguage.g:3092:2: (enumLiteral_0= 'plus' )
8632 { 8902 {
8633 // InternalAlloyLanguage.g:2999:2: (enumLiteral_0= 'plus' ) 8903 // InternalAlloyLanguage.g:3092:2: (enumLiteral_0= 'plus' )
8634 // InternalAlloyLanguage.g:2999:4: enumLiteral_0= 'plus' 8904 // InternalAlloyLanguage.g:3092:4: enumLiteral_0= 'plus'
8635 { 8905 {
8636 enumLiteral_0=(Token)match(input,71,FOLLOW_2); if (state.failed) return current; 8906 enumLiteral_0=(Token)match(input,72,FOLLOW_2); if (state.failed) return current;
8637 if ( state.backtracking==0 ) { 8907 if ( state.backtracking==0 ) {
8638 8908
8639 current = grammarAccess.getALSNumericOperatorAccess().getPlusEnumLiteralDeclaration_0().getEnumLiteral().getInstance(); 8909 current = grammarAccess.getALSNumericOperatorAccess().getPlusEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
@@ -8647,12 +8917,12 @@ public class InternalAlloyLanguageParser extends AbstractInternalAntlrParser {
8647 } 8917 }
8648 break; 8918 break;
8649 case 2 : 8919 case 2 :
8650 // InternalAlloyLanguage.g:3005:6: (enumLiteral_1= 'sub' ) 8920 // InternalAlloyLanguage.g:3098:6: (enumLiteral_1= 'sub' )
8651 { 8921 {
8652 // InternalAlloyLanguage.g:3005:6: (enumLiteral_1= 'sub' ) 8922 // InternalAlloyLanguage.g:3098:6: (enumLiteral_1= 'sub' )
8653 // InternalAlloyLanguage.g:3005:8: enumLiteral_1= 'sub' 8923 // InternalAlloyLanguage.g:3098:8: enumLiteral_1= 'sub'
8654 { 8924 {
8655 enumLiteral_1=(Token)match(input,72,FOLLOW_2); if (state.failed) return current; 8925 enumLiteral_1=(Token)match(input,73,FOLLOW_2); if (state.failed) return current;
8656 if ( state.backtracking==0 ) { 8926 if ( state.backtracking==0 ) {
8657 8927
8658 current = grammarAccess.getALSNumericOperatorAccess().getSubEnumLiteralDeclaration_1().getEnumLiteral().getInstance(); 8928 current = grammarAccess.getALSNumericOperatorAccess().getSubEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
@@ -8666,12 +8936,12 @@ public class InternalAlloyLanguageParser extends AbstractInternalAntlrParser {
8666 } 8936 }
8667 break; 8937 break;
8668 case 3 : 8938 case 3 :
8669 // InternalAlloyLanguage.g:3011:6: (enumLiteral_2= 'mul' ) 8939 // InternalAlloyLanguage.g:3104:6: (enumLiteral_2= 'mul' )
8670 { 8940 {
8671 // InternalAlloyLanguage.g:3011:6: (enumLiteral_2= 'mul' ) 8941 // InternalAlloyLanguage.g:3104:6: (enumLiteral_2= 'mul' )
8672 // InternalAlloyLanguage.g:3011:8: enumLiteral_2= 'mul' 8942 // InternalAlloyLanguage.g:3104:8: enumLiteral_2= 'mul'
8673 { 8943 {
8674 enumLiteral_2=(Token)match(input,73,FOLLOW_2); if (state.failed) return current; 8944 enumLiteral_2=(Token)match(input,74,FOLLOW_2); if (state.failed) return current;
8675 if ( state.backtracking==0 ) { 8945 if ( state.backtracking==0 ) {
8676 8946
8677 current = grammarAccess.getALSNumericOperatorAccess().getMulEnumLiteralDeclaration_2().getEnumLiteral().getInstance(); 8947 current = grammarAccess.getALSNumericOperatorAccess().getMulEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
@@ -8685,12 +8955,12 @@ public class InternalAlloyLanguageParser extends AbstractInternalAntlrParser {
8685 } 8955 }
8686 break; 8956 break;
8687 case 4 : 8957 case 4 :
8688 // InternalAlloyLanguage.g:3017:6: (enumLiteral_3= 'rem' ) 8958 // InternalAlloyLanguage.g:3110:6: (enumLiteral_3= 'rem' )
8689 { 8959 {
8690 // InternalAlloyLanguage.g:3017:6: (enumLiteral_3= 'rem' ) 8960 // InternalAlloyLanguage.g:3110:6: (enumLiteral_3= 'rem' )
8691 // InternalAlloyLanguage.g:3017:8: enumLiteral_3= 'rem' 8961 // InternalAlloyLanguage.g:3110:8: enumLiteral_3= 'rem'
8692 { 8962 {
8693 enumLiteral_3=(Token)match(input,74,FOLLOW_2); if (state.failed) return current; 8963 enumLiteral_3=(Token)match(input,75,FOLLOW_2); if (state.failed) return current;
8694 if ( state.backtracking==0 ) { 8964 if ( state.backtracking==0 ) {
8695 8965
8696 current = grammarAccess.getALSNumericOperatorAccess().getRemEnumLiteralDeclaration_3().getEnumLiteral().getInstance(); 8966 current = grammarAccess.getALSNumericOperatorAccess().getRemEnumLiteralDeclaration_3().getEnumLiteral().getInstance();
@@ -8704,12 +8974,12 @@ public class InternalAlloyLanguageParser extends AbstractInternalAntlrParser {
8704 } 8974 }
8705 break; 8975 break;
8706 case 5 : 8976 case 5 :
8707 // InternalAlloyLanguage.g:3023:6: (enumLiteral_4= 'div' ) 8977 // InternalAlloyLanguage.g:3116:6: (enumLiteral_4= 'div' )
8708 { 8978 {
8709 // InternalAlloyLanguage.g:3023:6: (enumLiteral_4= 'div' ) 8979 // InternalAlloyLanguage.g:3116:6: (enumLiteral_4= 'div' )
8710 // InternalAlloyLanguage.g:3023:8: enumLiteral_4= 'div' 8980 // InternalAlloyLanguage.g:3116:8: enumLiteral_4= 'div'
8711 { 8981 {
8712 enumLiteral_4=(Token)match(input,75,FOLLOW_2); if (state.failed) return current; 8982 enumLiteral_4=(Token)match(input,76,FOLLOW_2); if (state.failed) return current;
8713 if ( state.backtracking==0 ) { 8983 if ( state.backtracking==0 ) {
8714 8984
8715 current = grammarAccess.getALSNumericOperatorAccess().getDivEnumLiteralDeclaration_4().getEnumLiteral().getInstance(); 8985 current = grammarAccess.getALSNumericOperatorAccess().getDivEnumLiteralDeclaration_4().getEnumLiteral().getInstance();
@@ -8749,22 +9019,22 @@ public class InternalAlloyLanguageParser extends AbstractInternalAntlrParser {
8749 protected DFA10 dfa10 = new DFA10(this); 9019 protected DFA10 dfa10 = new DFA10(this);
8750 protected DFA42 dfa42 = new DFA42(this); 9020 protected DFA42 dfa42 = new DFA42(this);
8751 static final String dfa_1s = "\12\uffff"; 9021 static final String dfa_1s = "\12\uffff";
8752 static final String dfa_2s = "\10\uffff\1\11\1\uffff"; 9022 static final String dfa_2s = "\11\uffff\1\10";
8753 static final String dfa_3s = "\7\4\1\uffff\1\15\1\uffff"; 9023 static final String dfa_3s = "\7\4\2\uffff\1\15";
8754 static final String dfa_4s = "\7\113\1\uffff\1\106\1\uffff"; 9024 static final String dfa_4s = "\7\114\2\uffff\1\107";
8755 static final String dfa_5s = "\7\uffff\1\2\1\uffff\1\1"; 9025 static final String dfa_5s = "\7\uffff\1\2\1\1\1\uffff";
8756 static final String dfa_6s = "\12\uffff}>"; 9026 static final String dfa_6s = "\12\uffff}>";
8757 static final String[] dfa_7s = { 9027 static final String[] dfa_7s = {
8758 "\2\7\50\uffff\1\7\2\uffff\14\7\4\uffff\1\1\1\2\1\3\1\4\1\5\1\6\5\7", 9028 "\3\7\47\uffff\1\7\2\uffff\15\7\4\uffff\1\1\1\2\1\3\1\4\1\5\1\6\5\7",
8759 "\1\10\1\11\24\uffff\1\7\23\uffff\1\11\2\uffff\14\11\4\uffff\13\11", 9029 "\1\11\2\10\23\uffff\1\7\23\uffff\1\10\2\uffff\15\10\4\uffff\13\10",
8760 "\1\10\1\11\24\uffff\1\7\23\uffff\1\11\2\uffff\14\11\4\uffff\13\11", 9030 "\1\11\2\10\23\uffff\1\7\23\uffff\1\10\2\uffff\15\10\4\uffff\13\10",
8761 "\1\10\1\11\24\uffff\1\7\23\uffff\1\11\2\uffff\14\11\4\uffff\13\11", 9031 "\1\11\2\10\23\uffff\1\7\23\uffff\1\10\2\uffff\15\10\4\uffff\13\10",
8762 "\1\10\1\11\24\uffff\1\7\23\uffff\1\11\2\uffff\14\11\4\uffff\13\11", 9032 "\1\11\2\10\23\uffff\1\7\23\uffff\1\10\2\uffff\15\10\4\uffff\13\10",
8763 "\1\10\1\11\24\uffff\1\7\23\uffff\1\11\2\uffff\14\11\4\uffff\13\11", 9033 "\1\11\2\10\23\uffff\1\7\23\uffff\1\10\2\uffff\15\10\4\uffff\13\10",
8764 "\1\10\1\11\24\uffff\1\7\23\uffff\1\11\2\uffff\14\11\4\uffff\13\11", 9034 "\1\11\2\10\23\uffff\1\7\23\uffff\1\10\2\uffff\15\10\4\uffff\13\10",
8765 "", 9035 "",
8766 "\2\11\3\uffff\2\11\1\7\1\uffff\1\11\4\uffff\6\11\1\uffff\17\11\20\uffff\6\11", 9036 "",
8767 "" 9037 "\2\10\3\uffff\2\10\1\7\1\uffff\1\10\4\uffff\6\10\1\uffff\17\10\21\uffff\6\10"
8768 }; 9038 };
8769 9039
8770 static final short[] dfa_1 = DFA.unpackEncodedString(dfa_1s); 9040 static final short[] dfa_1 = DFA.unpackEncodedString(dfa_1s);
@@ -8795,11 +9065,11 @@ public class InternalAlloyLanguageParser extends AbstractInternalAntlrParser {
8795 static final String dfa_8s = "\13\uffff"; 9065 static final String dfa_8s = "\13\uffff";
8796 static final String dfa_9s = "\10\uffff\1\12\2\uffff"; 9066 static final String dfa_9s = "\10\uffff\1\12\2\uffff";
8797 static final String dfa_10s = "\1\4\7\uffff\1\14\2\uffff"; 9067 static final String dfa_10s = "\1\4\7\uffff\1\14\2\uffff";
8798 static final String dfa_11s = "\1\113\7\uffff\1\106\2\uffff"; 9068 static final String dfa_11s = "\1\114\7\uffff\1\107\2\uffff";
8799 static final String dfa_12s = "\1\uffff\1\1\1\2\1\3\1\4\1\5\1\6\1\7\1\uffff\1\10\1\11"; 9069 static final String dfa_12s = "\1\uffff\1\1\1\2\1\3\1\4\1\5\1\6\1\7\1\uffff\1\10\1\11";
8800 static final String dfa_13s = "\13\uffff}>"; 9070 static final String dfa_13s = "\13\uffff}>";
8801 static final String[] dfa_14s = { 9071 static final String[] dfa_14s = {
8802 "\1\10\1\12\50\uffff\1\6\2\uffff\2\1\1\2\1\3\1\4\1\5\1\7\5\12\12\uffff\5\11", 9072 "\1\10\2\12\47\uffff\1\6\2\uffff\2\1\1\2\1\3\1\4\1\5\1\7\6\12\12\uffff\5\11",
8803 "", 9073 "",
8804 "", 9074 "",
8805 "", 9075 "",
@@ -8807,7 +9077,7 @@ public class InternalAlloyLanguageParser extends AbstractInternalAntlrParser {
8807 "", 9077 "",
8808 "", 9078 "",
8809 "", 9079 "",
8810 "\3\12\3\uffff\2\12\2\uffff\1\11\1\12\3\uffff\26\12\14\uffff\1\12\3\uffff\6\12", 9080 "\3\12\3\uffff\2\12\2\uffff\1\11\1\12\3\uffff\26\12\15\uffff\1\12\3\uffff\6\12",
8811 "", 9081 "",
8812 "" 9082 ""
8813 }; 9083 };
@@ -8841,16 +9111,16 @@ public class InternalAlloyLanguageParser extends AbstractInternalAntlrParser {
8841 9111
8842 public static final BitSet FOLLOW_1 = new BitSet(new long[]{0x0000000000000000L}); 9112 public static final BitSet FOLLOW_1 = new BitSet(new long[]{0x0000000000000000L});
8843 public static final BitSet FOLLOW_2 = new BitSet(new long[]{0x0000000000000002L}); 9113 public static final BitSet FOLLOW_2 = new BitSet(new long[]{0x0000000000000002L});
8844 public static final BitSet FOLLOW_3 = new BitSet(new long[]{0x4000000003218800L,0x000000000000007EL}); 9114 public static final BitSet FOLLOW_3 = new BitSet(new long[]{0x8000000003218800L,0x00000000000000FCL});
8845 public static final BitSet FOLLOW_4 = new BitSet(new long[]{0x0000000000000010L}); 9115 public static final BitSet FOLLOW_4 = new BitSet(new long[]{0x0000000000000010L});
8846 public static final BitSet FOLLOW_5 = new BitSet(new long[]{0x0000000000001000L}); 9116 public static final BitSet FOLLOW_5 = new BitSet(new long[]{0x0000000000001000L});
8847 public static final BitSet FOLLOW_6 = new BitSet(new long[]{0x0000000000006000L}); 9117 public static final BitSet FOLLOW_6 = new BitSet(new long[]{0x0000000000006000L});
8848 public static final BitSet FOLLOW_7 = new BitSet(new long[]{0x0000000000018000L,0x000000000000007EL}); 9118 public static final BitSet FOLLOW_7 = new BitSet(new long[]{0x0000000000018000L,0x00000000000000FCL});
8849 public static final BitSet FOLLOW_8 = new BitSet(new long[]{0x0000000000063000L}); 9119 public static final BitSet FOLLOW_8 = new BitSet(new long[]{0x0000000000063000L});
8850 public static final BitSet FOLLOW_9 = new BitSet(new long[]{0x0000000000081000L}); 9120 public static final BitSet FOLLOW_9 = new BitSet(new long[]{0x0000000000081000L});
8851 public static final BitSet FOLLOW_10 = new BitSet(new long[]{0x0000000000004010L}); 9121 public static final BitSet FOLLOW_10 = new BitSet(new long[]{0x0000000000004010L});
8852 public static final BitSet FOLLOW_11 = new BitSet(new long[]{0x0000000000100000L}); 9122 public static final BitSet FOLLOW_11 = new BitSet(new long[]{0x0000000000100000L});
8853 public static final BitSet FOLLOW_12 = new BitSet(new long[]{0x1FFE400000000030L,0x0000000000000FFEL}); 9123 public static final BitSet FOLLOW_12 = new BitSet(new long[]{0x3FFE400000000070L,0x0000000000001FFCL});
8854 public static final BitSet FOLLOW_13 = new BitSet(new long[]{0x0000000000400000L}); 9124 public static final BitSet FOLLOW_13 = new BitSet(new long[]{0x0000000000400000L});
8855 public static final BitSet FOLLOW_14 = new BitSet(new long[]{0x0000000000802000L}); 9125 public static final BitSet FOLLOW_14 = new BitSet(new long[]{0x0000000000802000L});
8856 public static final BitSet FOLLOW_15 = new BitSet(new long[]{0x0000000000004000L}); 9126 public static final BitSet FOLLOW_15 = new BitSet(new long[]{0x0000000000004000L});
@@ -8870,13 +9140,14 @@ public class InternalAlloyLanguageParser extends AbstractInternalAntlrParser {
8870 public static final BitSet FOLLOW_29 = new BitSet(new long[]{0x0000400000000002L}); 9140 public static final BitSet FOLLOW_29 = new BitSet(new long[]{0x0000400000000002L});
8871 public static final BitSet FOLLOW_30 = new BitSet(new long[]{0x0000000000080002L}); 9141 public static final BitSet FOLLOW_30 = new BitSet(new long[]{0x0000000000080002L});
8872 public static final BitSet FOLLOW_31 = new BitSet(new long[]{0x0000800000000002L}); 9142 public static final BitSet FOLLOW_31 = new BitSet(new long[]{0x0000800000000002L});
8873 public static final BitSet FOLLOW_32 = new BitSet(new long[]{0x0001000000000002L,0x000000000000007EL}); 9143 public static final BitSet FOLLOW_32 = new BitSet(new long[]{0x0001000000000002L,0x00000000000000FCL});
8874 public static final BitSet FOLLOW_33 = new BitSet(new long[]{0x0001000000000000L}); 9144 public static final BitSet FOLLOW_33 = new BitSet(new long[]{0x0001000000000000L});
8875 public static final BitSet FOLLOW_34 = new BitSet(new long[]{0x2000000000000000L}); 9145 public static final BitSet FOLLOW_34 = new BitSet(new long[]{0x4000000000000000L});
8876 public static final BitSet FOLLOW_35 = new BitSet(new long[]{0x8000000000000002L}); 9146 public static final BitSet FOLLOW_35 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000001L});
8877 public static final BitSet FOLLOW_36 = new BitSet(new long[]{0x0000000000000020L,0x0000000000000001L}); 9147 public static final BitSet FOLLOW_36 = new BitSet(new long[]{0x0000000000000020L,0x0000000000000002L});
8878 public static final BitSet FOLLOW_37 = new BitSet(new long[]{0x0000000000002002L}); 9148 public static final BitSet FOLLOW_37 = new BitSet(new long[]{0x0000000000002002L});
8879 public static final BitSet FOLLOW_38 = new BitSet(new long[]{0x0000000000000020L}); 9149 public static final BitSet FOLLOW_38 = new BitSet(new long[]{0x0000000000000020L});
8880 public static final BitSet FOLLOW_39 = new BitSet(new long[]{0x0800000000000000L}); 9150 public static final BitSet FOLLOW_39 = new BitSet(new long[]{0x0800000000000000L});
9151 public static final BitSet FOLLOW_40 = new BitSet(new long[]{0x1000000000000000L});
8881 9152
8882} 9153}
diff --git a/Solvers/Alloy-Solver/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/serializer/AlloyLanguageSemanticSequencer.java b/Solvers/Alloy-Solver/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/serializer/AlloyLanguageSemanticSequencer.java
index 9e973316..6f23dc7d 100644
--- a/Solvers/Alloy-Solver/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/serializer/AlloyLanguageSemanticSequencer.java
+++ b/Solvers/Alloy-Solver/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/serializer/AlloyLanguageSemanticSequencer.java
@@ -45,6 +45,9 @@ import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSRunCommand;
45import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSSigScope; 45import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSSigScope;
46import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSSignatureBody; 46import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSSignatureBody;
47import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSSignatureDeclaration; 47import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSSignatureDeclaration;
48import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSString;
49import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSStringLiteral;
50import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSStringScope;
48import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSSubset; 51import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSSubset;
49import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSSum; 52import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSSum;
50import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSUnaryMinus; 53import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSUnaryMinus;
@@ -201,6 +204,15 @@ public class AlloyLanguageSemanticSequencer extends AbstractDelegatingSemanticSe
201 case AlloyLanguagePackage.ALS_SIGNATURE_DECLARATION: 204 case AlloyLanguagePackage.ALS_SIGNATURE_DECLARATION:
202 sequence_ALSSignatureDeclaration(context, (ALSSignatureDeclaration) semanticObject); 205 sequence_ALSSignatureDeclaration(context, (ALSSignatureDeclaration) semanticObject);
203 return; 206 return;
207 case AlloyLanguagePackage.ALS_STRING:
208 sequence_ALSBasicRelationTerm(context, (ALSString) semanticObject);
209 return;
210 case AlloyLanguagePackage.ALS_STRING_LITERAL:
211 sequence_ALSBasicRelationTerm(context, (ALSStringLiteral) semanticObject);
212 return;
213 case AlloyLanguagePackage.ALS_STRING_SCOPE:
214 sequence_ALSStringScope(context, (ALSStringScope) semanticObject);
215 return;
204 case AlloyLanguagePackage.ALS_SUBSET: 216 case AlloyLanguagePackage.ALS_SUBSET:
205 sequence_ALSComparison(context, (ALSSubset) semanticObject); 217 sequence_ALSComparison(context, (ALSSubset) semanticObject);
206 return; 218 return;
@@ -469,7 +481,7 @@ public class AlloyLanguageSemanticSequencer extends AbstractDelegatingSemanticSe
469 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, AlloyLanguagePackage.Literals.ALS_NUMBER_LITERAL__VALUE)); 481 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, AlloyLanguagePackage.Literals.ALS_NUMBER_LITERAL__VALUE));
470 } 482 }
471 SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); 483 SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
472 feeder.accept(grammarAccess.getALSBasicRelationTermAccess().getValueINTTerminalRuleCall_5_1_0(), semanticObject.getValue()); 484 feeder.accept(grammarAccess.getALSBasicRelationTermAccess().getValueINTTerminalRuleCall_6_1_0(), semanticObject.getValue());
473 feeder.finish(); 485 feeder.finish();
474 } 486 }
475 487
@@ -522,7 +534,107 @@ public class AlloyLanguageSemanticSequencer extends AbstractDelegatingSemanticSe
522 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, AlloyLanguagePackage.Literals.ALS_REFERENCE__REFERRED)); 534 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, AlloyLanguagePackage.Literals.ALS_REFERENCE__REFERRED));
523 } 535 }
524 SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); 536 SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
525 feeder.accept(grammarAccess.getALSBasicRelationTermAccess().getReferredALSRelationDeclarationIDTerminalRuleCall_4_1_0_1(), semanticObject.getReferred()); 537 feeder.accept(grammarAccess.getALSBasicRelationTermAccess().getReferredALSRelationDeclarationIDTerminalRuleCall_5_1_0_1(), semanticObject.eGet(AlloyLanguagePackage.Literals.ALS_REFERENCE__REFERRED, false));
538 feeder.finish();
539 }
540
541
542 /**
543 * Contexts:
544 * ALSTerm returns ALSString
545 * ALSQuantified returns ALSString
546 * ALSOr returns ALSString
547 * ALSOr.ALSOr_1_0 returns ALSString
548 * ALSIff returns ALSString
549 * ALSIff.ALSIff_1_0 returns ALSString
550 * ALSImpl returns ALSString
551 * ALSImpl.ALSImpl_1_0 returns ALSString
552 * ALSAnd returns ALSString
553 * ALSAnd.ALSAnd_1_0 returns ALSString
554 * ALSComparison returns ALSString
555 * ALSComparison.ALSEquals_1_0_0_0 returns ALSString
556 * ALSComparison.ALSNotEquals_1_0_1_0 returns ALSString
557 * ALSComparison.ALSSubset_1_0_2_0 returns ALSString
558 * ALSComparison.ALSLess_1_0_3_0 returns ALSString
559 * ALSComparison.ALSLeq_1_0_4_0 returns ALSString
560 * ALSComparison.ALSMore_1_0_5_0 returns ALSString
561 * ALSComparison.ALSMeq_1_0_6_0 returns ALSString
562 * ALSOverride returns ALSString
563 * ALSOverride.ALSOverride_1_0 returns ALSString
564 * ALSRangeRestrictionRight returns ALSString
565 * ALSRangeRestrictionRight.ALSRangeRestrictionRight_1_0 returns ALSString
566 * ALSRangeRestrictionLeft returns ALSString
567 * ALSRangeRestrictionLeft.ALSRangeRestrictionLeft_1_0 returns ALSString
568 * ALSJoin returns ALSString
569 * ALSJoin.ALSJoin_1_0 returns ALSString
570 * ALSMinus returns ALSString
571 * ALSMinus.ALSMinus_1_0 returns ALSString
572 * ALSPlus returns ALSString
573 * ALSPlus.ALSPlus_1_0 returns ALSString
574 * ALSIntersection returns ALSString
575 * ALSIntersection.ALSIntersection_1_0 returns ALSString
576 * ALSDirectProduct returns ALSString
577 * ALSDirectProduct.ALSDirectProduct_1_0 returns ALSString
578 * ALSPreficed returns ALSString
579 * ALSBasicRelationTerm returns ALSString
580 *
581 * Constraint:
582 * {ALSString}
583 */
584 protected void sequence_ALSBasicRelationTerm(ISerializationContext context, ALSString semanticObject) {
585 genericSequencer.createSequence(context, semanticObject);
586 }
587
588
589 /**
590 * Contexts:
591 * ALSTerm returns ALSStringLiteral
592 * ALSQuantified returns ALSStringLiteral
593 * ALSOr returns ALSStringLiteral
594 * ALSOr.ALSOr_1_0 returns ALSStringLiteral
595 * ALSIff returns ALSStringLiteral
596 * ALSIff.ALSIff_1_0 returns ALSStringLiteral
597 * ALSImpl returns ALSStringLiteral
598 * ALSImpl.ALSImpl_1_0 returns ALSStringLiteral
599 * ALSAnd returns ALSStringLiteral
600 * ALSAnd.ALSAnd_1_0 returns ALSStringLiteral
601 * ALSComparison returns ALSStringLiteral
602 * ALSComparison.ALSEquals_1_0_0_0 returns ALSStringLiteral
603 * ALSComparison.ALSNotEquals_1_0_1_0 returns ALSStringLiteral
604 * ALSComparison.ALSSubset_1_0_2_0 returns ALSStringLiteral
605 * ALSComparison.ALSLess_1_0_3_0 returns ALSStringLiteral
606 * ALSComparison.ALSLeq_1_0_4_0 returns ALSStringLiteral
607 * ALSComparison.ALSMore_1_0_5_0 returns ALSStringLiteral
608 * ALSComparison.ALSMeq_1_0_6_0 returns ALSStringLiteral
609 * ALSOverride returns ALSStringLiteral
610 * ALSOverride.ALSOverride_1_0 returns ALSStringLiteral
611 * ALSRangeRestrictionRight returns ALSStringLiteral
612 * ALSRangeRestrictionRight.ALSRangeRestrictionRight_1_0 returns ALSStringLiteral
613 * ALSRangeRestrictionLeft returns ALSStringLiteral
614 * ALSRangeRestrictionLeft.ALSRangeRestrictionLeft_1_0 returns ALSStringLiteral
615 * ALSJoin returns ALSStringLiteral
616 * ALSJoin.ALSJoin_1_0 returns ALSStringLiteral
617 * ALSMinus returns ALSStringLiteral
618 * ALSMinus.ALSMinus_1_0 returns ALSStringLiteral
619 * ALSPlus returns ALSStringLiteral
620 * ALSPlus.ALSPlus_1_0 returns ALSStringLiteral
621 * ALSIntersection returns ALSStringLiteral
622 * ALSIntersection.ALSIntersection_1_0 returns ALSStringLiteral
623 * ALSDirectProduct returns ALSStringLiteral
624 * ALSDirectProduct.ALSDirectProduct_1_0 returns ALSStringLiteral
625 * ALSPreficed returns ALSStringLiteral
626 * ALSBasicRelationTerm returns ALSStringLiteral
627 *
628 * Constraint:
629 * value=STRING
630 */
631 protected void sequence_ALSBasicRelationTerm(ISerializationContext context, ALSStringLiteral semanticObject) {
632 if (errorAcceptor != null) {
633 if (transientValues.isValueTransient(semanticObject, AlloyLanguagePackage.Literals.ALS_STRING_LITERAL__VALUE) == ValueTransient.YES)
634 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, AlloyLanguagePackage.Literals.ALS_STRING_LITERAL__VALUE));
635 }
636 SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
637 feeder.accept(grammarAccess.getALSBasicRelationTermAccess().getValueSTRINGTerminalRuleCall_7_1_0(), semanticObject.getValue());
526 feeder.finish(); 638 feeder.finish();
527 } 639 }
528 640
@@ -2212,6 +2324,25 @@ public class AlloyLanguageSemanticSequencer extends AbstractDelegatingSemanticSe
2212 2324
2213 /** 2325 /**
2214 * Contexts: 2326 * Contexts:
2327 * ALSTypeScope returns ALSStringScope
2328 * ALSStringScope returns ALSStringScope
2329 *
2330 * Constraint:
2331 * number=INT
2332 */
2333 protected void sequence_ALSStringScope(ISerializationContext context, ALSStringScope semanticObject) {
2334 if (errorAcceptor != null) {
2335 if (transientValues.isValueTransient(semanticObject, AlloyLanguagePackage.Literals.ALS_TYPE_SCOPE__NUMBER) == ValueTransient.YES)
2336 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, AlloyLanguagePackage.Literals.ALS_TYPE_SCOPE__NUMBER));
2337 }
2338 SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
2339 feeder.accept(grammarAccess.getALSStringScopeAccess().getNumberINTTerminalRuleCall_1_0(), semanticObject.getNumber());
2340 feeder.finish();
2341 }
2342
2343
2344 /**
2345 * Contexts:
2215 * ALSRelationDeclaration returns ALSVariableDeclaration 2346 * ALSRelationDeclaration returns ALSVariableDeclaration
2216 * ALSVariableDeclaration returns ALSVariableDeclaration 2347 * ALSVariableDeclaration returns ALSVariableDeclaration
2217 * 2348 *
diff --git a/Solvers/Alloy-Solver/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/serializer/AlloyLanguageSyntacticSequencer.java b/Solvers/Alloy-Solver/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/serializer/AlloyLanguageSyntacticSequencer.java
index cb2da160..4a5cad5d 100644
--- a/Solvers/Alloy-Solver/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/serializer/AlloyLanguageSyntacticSequencer.java
+++ b/Solvers/Alloy-Solver/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/serializer/AlloyLanguageSyntacticSequencer.java
@@ -22,8 +22,8 @@ public class AlloyLanguageSyntacticSequencer extends AbstractSyntacticSequencer
22 22
23 protected AlloyLanguageGrammarAccess grammarAccess; 23 protected AlloyLanguageGrammarAccess grammarAccess;
24 protected AbstractElementAlias match_ALSAnd_AmpersandAmpersandKeyword_1_1_0_or_AndKeyword_1_1_1; 24 protected AbstractElementAlias match_ALSAnd_AmpersandAmpersandKeyword_1_1_0_or_AndKeyword_1_1_1;
25 protected AbstractElementAlias match_ALSBasicRelationTerm_LeftParenthesisKeyword_6_0_a; 25 protected AbstractElementAlias match_ALSBasicRelationTerm_LeftParenthesisKeyword_8_0_a;
26 protected AbstractElementAlias match_ALSBasicRelationTerm_LeftParenthesisKeyword_6_0_p; 26 protected AbstractElementAlias match_ALSBasicRelationTerm_LeftParenthesisKeyword_8_0_p;
27 protected AbstractElementAlias match_ALSIff_IffKeyword_1_1_1_or_LessThanSignEqualsSignGreaterThanSignKeyword_1_1_0; 27 protected AbstractElementAlias match_ALSIff_IffKeyword_1_1_1_or_LessThanSignEqualsSignGreaterThanSignKeyword_1_1_0;
28 protected AbstractElementAlias match_ALSImpl_EqualsSignGreaterThanSignKeyword_1_1_0_or_ImpliesKeyword_1_1_1; 28 protected AbstractElementAlias match_ALSImpl_EqualsSignGreaterThanSignKeyword_1_1_0_or_ImpliesKeyword_1_1_1;
29 protected AbstractElementAlias match_ALSOr_OrKeyword_1_1_1_or_VerticalLineVerticalLineKeyword_1_1_0; 29 protected AbstractElementAlias match_ALSOr_OrKeyword_1_1_1_or_VerticalLineVerticalLineKeyword_1_1_0;
@@ -33,8 +33,8 @@ public class AlloyLanguageSyntacticSequencer extends AbstractSyntacticSequencer
33 protected void init(IGrammarAccess access) { 33 protected void init(IGrammarAccess access) {
34 grammarAccess = (AlloyLanguageGrammarAccess) access; 34 grammarAccess = (AlloyLanguageGrammarAccess) access;
35 match_ALSAnd_AmpersandAmpersandKeyword_1_1_0_or_AndKeyword_1_1_1 = new AlternativeAlias(false, false, new TokenAlias(false, false, grammarAccess.getALSAndAccess().getAmpersandAmpersandKeyword_1_1_0()), new TokenAlias(false, false, grammarAccess.getALSAndAccess().getAndKeyword_1_1_1())); 35 match_ALSAnd_AmpersandAmpersandKeyword_1_1_0_or_AndKeyword_1_1_1 = new AlternativeAlias(false, false, new TokenAlias(false, false, grammarAccess.getALSAndAccess().getAmpersandAmpersandKeyword_1_1_0()), new TokenAlias(false, false, grammarAccess.getALSAndAccess().getAndKeyword_1_1_1()));
36 match_ALSBasicRelationTerm_LeftParenthesisKeyword_6_0_a = new TokenAlias(true, true, grammarAccess.getALSBasicRelationTermAccess().getLeftParenthesisKeyword_6_0()); 36 match_ALSBasicRelationTerm_LeftParenthesisKeyword_8_0_a = new TokenAlias(true, true, grammarAccess.getALSBasicRelationTermAccess().getLeftParenthesisKeyword_8_0());
37 match_ALSBasicRelationTerm_LeftParenthesisKeyword_6_0_p = new TokenAlias(true, false, grammarAccess.getALSBasicRelationTermAccess().getLeftParenthesisKeyword_6_0()); 37 match_ALSBasicRelationTerm_LeftParenthesisKeyword_8_0_p = new TokenAlias(true, false, grammarAccess.getALSBasicRelationTermAccess().getLeftParenthesisKeyword_8_0());
38 match_ALSIff_IffKeyword_1_1_1_or_LessThanSignEqualsSignGreaterThanSignKeyword_1_1_0 = new AlternativeAlias(false, false, new TokenAlias(false, false, grammarAccess.getALSIffAccess().getIffKeyword_1_1_1()), new TokenAlias(false, false, grammarAccess.getALSIffAccess().getLessThanSignEqualsSignGreaterThanSignKeyword_1_1_0())); 38 match_ALSIff_IffKeyword_1_1_1_or_LessThanSignEqualsSignGreaterThanSignKeyword_1_1_0 = new AlternativeAlias(false, false, new TokenAlias(false, false, grammarAccess.getALSIffAccess().getIffKeyword_1_1_1()), new TokenAlias(false, false, grammarAccess.getALSIffAccess().getLessThanSignEqualsSignGreaterThanSignKeyword_1_1_0()));
39 match_ALSImpl_EqualsSignGreaterThanSignKeyword_1_1_0_or_ImpliesKeyword_1_1_1 = new AlternativeAlias(false, false, new TokenAlias(false, false, grammarAccess.getALSImplAccess().getEqualsSignGreaterThanSignKeyword_1_1_0()), new TokenAlias(false, false, grammarAccess.getALSImplAccess().getImpliesKeyword_1_1_1())); 39 match_ALSImpl_EqualsSignGreaterThanSignKeyword_1_1_0_or_ImpliesKeyword_1_1_1 = new AlternativeAlias(false, false, new TokenAlias(false, false, grammarAccess.getALSImplAccess().getEqualsSignGreaterThanSignKeyword_1_1_0()), new TokenAlias(false, false, grammarAccess.getALSImplAccess().getImpliesKeyword_1_1_1()));
40 match_ALSOr_OrKeyword_1_1_1_or_VerticalLineVerticalLineKeyword_1_1_0 = new AlternativeAlias(false, false, new TokenAlias(false, false, grammarAccess.getALSOrAccess().getOrKeyword_1_1_1()), new TokenAlias(false, false, grammarAccess.getALSOrAccess().getVerticalLineVerticalLineKeyword_1_1_0())); 40 match_ALSOr_OrKeyword_1_1_1_or_VerticalLineVerticalLineKeyword_1_1_0 = new AlternativeAlias(false, false, new TokenAlias(false, false, grammarAccess.getALSOrAccess().getOrKeyword_1_1_1()), new TokenAlias(false, false, grammarAccess.getALSOrAccess().getVerticalLineVerticalLineKeyword_1_1_0()));
@@ -55,10 +55,10 @@ public class AlloyLanguageSyntacticSequencer extends AbstractSyntacticSequencer
55 List<INode> syntaxNodes = getNodesFor(transitionNodes, syntax); 55 List<INode> syntaxNodes = getNodesFor(transitionNodes, syntax);
56 if (match_ALSAnd_AmpersandAmpersandKeyword_1_1_0_or_AndKeyword_1_1_1.equals(syntax)) 56 if (match_ALSAnd_AmpersandAmpersandKeyword_1_1_0_or_AndKeyword_1_1_1.equals(syntax))
57 emit_ALSAnd_AmpersandAmpersandKeyword_1_1_0_or_AndKeyword_1_1_1(semanticObject, getLastNavigableState(), syntaxNodes); 57 emit_ALSAnd_AmpersandAmpersandKeyword_1_1_0_or_AndKeyword_1_1_1(semanticObject, getLastNavigableState(), syntaxNodes);
58 else if (match_ALSBasicRelationTerm_LeftParenthesisKeyword_6_0_a.equals(syntax)) 58 else if (match_ALSBasicRelationTerm_LeftParenthesisKeyword_8_0_a.equals(syntax))
59 emit_ALSBasicRelationTerm_LeftParenthesisKeyword_6_0_a(semanticObject, getLastNavigableState(), syntaxNodes); 59 emit_ALSBasicRelationTerm_LeftParenthesisKeyword_8_0_a(semanticObject, getLastNavigableState(), syntaxNodes);
60 else if (match_ALSBasicRelationTerm_LeftParenthesisKeyword_6_0_p.equals(syntax)) 60 else if (match_ALSBasicRelationTerm_LeftParenthesisKeyword_8_0_p.equals(syntax))
61 emit_ALSBasicRelationTerm_LeftParenthesisKeyword_6_0_p(semanticObject, getLastNavigableState(), syntaxNodes); 61 emit_ALSBasicRelationTerm_LeftParenthesisKeyword_8_0_p(semanticObject, getLastNavigableState(), syntaxNodes);
62 else if (match_ALSIff_IffKeyword_1_1_1_or_LessThanSignEqualsSignGreaterThanSignKeyword_1_1_0.equals(syntax)) 62 else if (match_ALSIff_IffKeyword_1_1_1_or_LessThanSignEqualsSignGreaterThanSignKeyword_1_1_0.equals(syntax))
63 emit_ALSIff_IffKeyword_1_1_1_or_LessThanSignEqualsSignGreaterThanSignKeyword_1_1_0(semanticObject, getLastNavigableState(), syntaxNodes); 63 emit_ALSIff_IffKeyword_1_1_1_or_LessThanSignEqualsSignGreaterThanSignKeyword_1_1_0(semanticObject, getLastNavigableState(), syntaxNodes);
64 else if (match_ALSImpl_EqualsSignGreaterThanSignKeyword_1_1_0_or_ImpliesKeyword_1_1_1.equals(syntax)) 64 else if (match_ALSImpl_EqualsSignGreaterThanSignKeyword_1_1_0_or_ImpliesKeyword_1_1_1.equals(syntax))
@@ -73,7 +73,7 @@ public class AlloyLanguageSyntacticSequencer extends AbstractSyntacticSequencer
73 73
74 /** 74 /**
75 * Ambiguous syntax: 75 * Ambiguous syntax:
76 * '&&' | 'and' 76 * 'and' | '&&'
77 * 77 *
78 * This ambiguous syntax occurs at: 78 * This ambiguous syntax occurs at:
79 * {ALSAnd.leftOperand=} (ambiguity) rightOperand=ALSComparison 79 * {ALSAnd.leftOperand=} (ambiguity) rightOperand=ALSComparison
@@ -91,18 +91,20 @@ public class AlloyLanguageSyntacticSequencer extends AbstractSyntacticSequencer
91 * (rule start) (ambiguity) '*' operand=ALSBasicRelationTerm 91 * (rule start) (ambiguity) '*' operand=ALSBasicRelationTerm
92 * (rule start) (ambiguity) '-' operand=ALSBasicRelationTerm 92 * (rule start) (ambiguity) '-' operand=ALSBasicRelationTerm
93 * (rule start) (ambiguity) 'Int' (rule start) 93 * (rule start) (ambiguity) 'Int' (rule start)
94 * (rule start) (ambiguity) 'String' (rule start)
94 * (rule start) (ambiguity) '^' operand=ALSBasicRelationTerm 95 * (rule start) (ambiguity) '^' operand=ALSBasicRelationTerm
95 * (rule start) (ambiguity) 'iden' (rule start) 96 * (rule start) (ambiguity) 'iden' (rule start)
96 * (rule start) (ambiguity) 'none' (rule start) 97 * (rule start) (ambiguity) 'none' (rule start)
97 * (rule start) (ambiguity) 'sum' variables+=ALSVariableDeclaration 98 * (rule start) (ambiguity) 'sum' variables+=ALSVariableDeclaration
98 * (rule start) (ambiguity) 'univ' (rule start) 99 * (rule start) (ambiguity) 'univ' (rule start)
99 * (rule start) (ambiguity) '~' operand=ALSBasicRelationTerm 100 * (rule start) (ambiguity) '~' operand=ALSBasicRelationTerm
100 * (rule start) (ambiguity) ('!' | 'not') operand=ALSBasicRelationTerm 101 * (rule start) (ambiguity) ('not' | '!') operand=ALSBasicRelationTerm
101 * (rule start) (ambiguity) referred=[ALSRelationDeclaration|ID] 102 * (rule start) (ambiguity) referred=[ALSRelationDeclaration|ID]
102 * (rule start) (ambiguity) referredDefinition=[ALSDefinition|ID] 103 * (rule start) (ambiguity) referredDefinition=[ALSDefinition|ID]
103 * (rule start) (ambiguity) referredNumericOperator=ALSNumericOperator 104 * (rule start) (ambiguity) referredNumericOperator=ALSNumericOperator
104 * (rule start) (ambiguity) type=ALSMultiplicity 105 * (rule start) (ambiguity) type=ALSMultiplicity
105 * (rule start) (ambiguity) value=INT 106 * (rule start) (ambiguity) value=INT
107 * (rule start) (ambiguity) value=STRING
106 * (rule start) (ambiguity) {ALSAnd.leftOperand=} 108 * (rule start) (ambiguity) {ALSAnd.leftOperand=}
107 * (rule start) (ambiguity) {ALSDirectProduct.leftOperand=} 109 * (rule start) (ambiguity) {ALSDirectProduct.leftOperand=}
108 * (rule start) (ambiguity) {ALSEquals.leftOperand=} 110 * (rule start) (ambiguity) {ALSEquals.leftOperand=}
@@ -123,7 +125,7 @@ public class AlloyLanguageSyntacticSequencer extends AbstractSyntacticSequencer
123 * (rule start) (ambiguity) {ALSRangeRestrictionRight.relation=} 125 * (rule start) (ambiguity) {ALSRangeRestrictionRight.relation=}
124 * (rule start) (ambiguity) {ALSSubset.leftOperand=} 126 * (rule start) (ambiguity) {ALSSubset.leftOperand=}
125 */ 127 */
126 protected void emit_ALSBasicRelationTerm_LeftParenthesisKeyword_6_0_a(EObject semanticObject, ISynNavigable transition, List<INode> nodes) { 128 protected void emit_ALSBasicRelationTerm_LeftParenthesisKeyword_8_0_a(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
127 acceptNodes(transition, nodes); 129 acceptNodes(transition, nodes);
128 } 130 }
129 131
@@ -138,7 +140,7 @@ public class AlloyLanguageSyntacticSequencer extends AbstractSyntacticSequencer
138 * (rule start) (ambiguity) '^' operand=ALSBasicRelationTerm 140 * (rule start) (ambiguity) '^' operand=ALSBasicRelationTerm
139 * (rule start) (ambiguity) 'sum' variables+=ALSVariableDeclaration 141 * (rule start) (ambiguity) 'sum' variables+=ALSVariableDeclaration
140 * (rule start) (ambiguity) '~' operand=ALSBasicRelationTerm 142 * (rule start) (ambiguity) '~' operand=ALSBasicRelationTerm
141 * (rule start) (ambiguity) ('!' | 'not') operand=ALSBasicRelationTerm 143 * (rule start) (ambiguity) ('not' | '!') operand=ALSBasicRelationTerm
142 * (rule start) (ambiguity) referredDefinition=[ALSDefinition|ID] 144 * (rule start) (ambiguity) referredDefinition=[ALSDefinition|ID]
143 * (rule start) (ambiguity) referredNumericOperator=ALSNumericOperator 145 * (rule start) (ambiguity) referredNumericOperator=ALSNumericOperator
144 * (rule start) (ambiguity) type=ALSMultiplicity 146 * (rule start) (ambiguity) type=ALSMultiplicity
@@ -162,7 +164,7 @@ public class AlloyLanguageSyntacticSequencer extends AbstractSyntacticSequencer
162 * (rule start) (ambiguity) {ALSRangeRestrictionRight.relation=} 164 * (rule start) (ambiguity) {ALSRangeRestrictionRight.relation=}
163 * (rule start) (ambiguity) {ALSSubset.leftOperand=} 165 * (rule start) (ambiguity) {ALSSubset.leftOperand=}
164 */ 166 */
165 protected void emit_ALSBasicRelationTerm_LeftParenthesisKeyword_6_0_p(EObject semanticObject, ISynNavigable transition, List<INode> nodes) { 167 protected void emit_ALSBasicRelationTerm_LeftParenthesisKeyword_8_0_p(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
166 acceptNodes(transition, nodes); 168 acceptNodes(transition, nodes);
167 } 169 }
168 170
@@ -190,7 +192,7 @@ public class AlloyLanguageSyntacticSequencer extends AbstractSyntacticSequencer
190 192
191 /** 193 /**
192 * Ambiguous syntax: 194 * Ambiguous syntax:
193 * '||' | 'or' 195 * 'or' | '||'
194 * 196 *
195 * This ambiguous syntax occurs at: 197 * This ambiguous syntax occurs at:
196 * {ALSOr.leftOperand=} (ambiguity) rightOperand=ALSIff 198 * {ALSOr.leftOperand=} (ambiguity) rightOperand=ALSIff
@@ -201,7 +203,7 @@ public class AlloyLanguageSyntacticSequencer extends AbstractSyntacticSequencer
201 203
202 /** 204 /**
203 * Ambiguous syntax: 205 * Ambiguous syntax:
204 * '!' | 'not' 206 * 'not' | '!'
205 * 207 *
206 * This ambiguous syntax occurs at: 208 * This ambiguous syntax occurs at:
207 * (rule start) '('* (ambiguity) operand=ALSBasicRelationTerm 209 * (rule start) '('* (ambiguity) operand=ALSBasicRelationTerm
diff --git a/Solvers/Alloy-Solver/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/services/AlloyLanguageGrammarAccess.java b/Solvers/Alloy-Solver/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/services/AlloyLanguageGrammarAccess.java
index 08dd554d..9acc4a39 100644
--- a/Solvers/Alloy-Solver/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/services/AlloyLanguageGrammarAccess.java
+++ b/Solvers/Alloy-Solver/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/services/AlloyLanguageGrammarAccess.java
@@ -296,7 +296,7 @@ public class AlloyLanguageGrammarAccess extends AbstractGrammarElementFinder {
296 //fields+=ALSFieldDeclaration)*)? '}' 296 //fields+=ALSFieldDeclaration)*)? '}'
297 public Group getGroup() { return cGroup; } 297 public Group getGroup() { return cGroup; }
298 298
299 //(multiplicity=ALSMultiplicity? & abstract?='abstract'?) 299 //multiplicity=ALSMultiplicity? & abstract?='abstract'?
300 public UnorderedGroup getUnorderedGroup_0() { return cUnorderedGroup_0; } 300 public UnorderedGroup getUnorderedGroup_0() { return cUnorderedGroup_0; }
301 301
302 //multiplicity=ALSMultiplicity? 302 //multiplicity=ALSMultiplicity?
@@ -712,7 +712,7 @@ public class AlloyLanguageGrammarAccess extends AbstractGrammarElementFinder {
712 //ALSQuantified ALSTerm: 712 //ALSQuantified ALSTerm:
713 // {ALSQuantifiedEx} type=ALSMultiplicity 713 // {ALSQuantifiedEx} type=ALSMultiplicity
714 // disj?='disj'? variables+=ALSVariableDeclaration (',' variables+=ALSVariableDeclaration)* '{' expression=ALSTerm '}' | 714 // disj?='disj'? variables+=ALSVariableDeclaration (',' variables+=ALSVariableDeclaration)* '{' expression=ALSTerm '}' |
715 // ALSOr 715 // ALSOr;
716 @Override public ParserRule getRule() { return rule; } 716 @Override public ParserRule getRule() { return rule; }
717 717
718 //{ALSQuantifiedEx} type=ALSMultiplicity disj?='disj'? variables+=ALSVariableDeclaration (',' 718 //{ALSQuantifiedEx} type=ALSMultiplicity disj?='disj'? variables+=ALSVariableDeclaration (','
@@ -785,7 +785,7 @@ public class AlloyLanguageGrammarAccess extends AbstractGrammarElementFinder {
785 private final RuleCall cRightOperandALSIffParserRuleCall_1_2_0 = (RuleCall)cRightOperandAssignment_1_2.eContents().get(0); 785 private final RuleCall cRightOperandALSIffParserRuleCall_1_2_0 = (RuleCall)cRightOperandAssignment_1_2.eContents().get(0);
786 786
787 //ALSOr ALSTerm: 787 //ALSOr ALSTerm:
788 // ALSIff ({ALSOr.leftOperand=current} ("||" | "or") rightOperand=ALSIff)? 788 // ALSIff ({ALSOr.leftOperand=current} ("||" | "or") rightOperand=ALSIff)?;
789 @Override public ParserRule getRule() { return rule; } 789 @Override public ParserRule getRule() { return rule; }
790 790
791 //ALSIff ({ALSOr.leftOperand=current} ("||" | "or") rightOperand=ALSIff)? 791 //ALSIff ({ALSOr.leftOperand=current} ("||" | "or") rightOperand=ALSIff)?
@@ -800,7 +800,7 @@ public class AlloyLanguageGrammarAccess extends AbstractGrammarElementFinder {
800 //{ALSOr.leftOperand=current} 800 //{ALSOr.leftOperand=current}
801 public Action getALSOrLeftOperandAction_1_0() { return cALSOrLeftOperandAction_1_0; } 801 public Action getALSOrLeftOperandAction_1_0() { return cALSOrLeftOperandAction_1_0; }
802 802
803 //("||" | "or") 803 //"||" | "or"
804 public Alternatives getAlternatives_1_1() { return cAlternatives_1_1; } 804 public Alternatives getAlternatives_1_1() { return cAlternatives_1_1; }
805 805
806 //"||" 806 //"||"
@@ -829,7 +829,7 @@ public class AlloyLanguageGrammarAccess extends AbstractGrammarElementFinder {
829 private final RuleCall cRightOperandALSImplParserRuleCall_1_2_0 = (RuleCall)cRightOperandAssignment_1_2.eContents().get(0); 829 private final RuleCall cRightOperandALSImplParserRuleCall_1_2_0 = (RuleCall)cRightOperandAssignment_1_2.eContents().get(0);
830 830
831 //ALSIff ALSTerm: 831 //ALSIff ALSTerm:
832 // ALSImpl ({ALSIff.leftOperand=current} ("<=>" | "iff") rightOperand=ALSImpl)? 832 // ALSImpl ({ALSIff.leftOperand=current} ("<=>" | "iff") rightOperand=ALSImpl)?;
833 @Override public ParserRule getRule() { return rule; } 833 @Override public ParserRule getRule() { return rule; }
834 834
835 //ALSImpl ({ALSIff.leftOperand=current} ("<=>" | "iff") rightOperand=ALSImpl)? 835 //ALSImpl ({ALSIff.leftOperand=current} ("<=>" | "iff") rightOperand=ALSImpl)?
@@ -844,7 +844,7 @@ public class AlloyLanguageGrammarAccess extends AbstractGrammarElementFinder {
844 //{ALSIff.leftOperand=current} 844 //{ALSIff.leftOperand=current}
845 public Action getALSIffLeftOperandAction_1_0() { return cALSIffLeftOperandAction_1_0; } 845 public Action getALSIffLeftOperandAction_1_0() { return cALSIffLeftOperandAction_1_0; }
846 846
847 //("<=>" | "iff") 847 //"<=>" | "iff"
848 public Alternatives getAlternatives_1_1() { return cAlternatives_1_1; } 848 public Alternatives getAlternatives_1_1() { return cAlternatives_1_1; }
849 849
850 //"<=>" 850 //"<=>"
@@ -877,7 +877,7 @@ public class AlloyLanguageGrammarAccess extends AbstractGrammarElementFinder {
877 private final RuleCall cElseOperandALSAndParserRuleCall_1_3_1_0 = (RuleCall)cElseOperandAssignment_1_3_1.eContents().get(0); 877 private final RuleCall cElseOperandALSAndParserRuleCall_1_3_1_0 = (RuleCall)cElseOperandAssignment_1_3_1.eContents().get(0);
878 878
879 //ALSImpl ALSTerm: 879 //ALSImpl ALSTerm:
880 // ALSAnd ({ALSImpl.leftOperand=current} ("=>" | "implies") rightOperand=ALSAnd ('else' elseOperand=ALSAnd)?)? 880 // ALSAnd ({ALSImpl.leftOperand=current} ("=>" | "implies") rightOperand=ALSAnd ('else' elseOperand=ALSAnd)?)?;
881 @Override public ParserRule getRule() { return rule; } 881 @Override public ParserRule getRule() { return rule; }
882 882
883 //ALSAnd ({ALSImpl.leftOperand=current} ("=>" | "implies") rightOperand=ALSAnd ('else' elseOperand=ALSAnd)?)? 883 //ALSAnd ({ALSImpl.leftOperand=current} ("=>" | "implies") rightOperand=ALSAnd ('else' elseOperand=ALSAnd)?)?
@@ -892,7 +892,7 @@ public class AlloyLanguageGrammarAccess extends AbstractGrammarElementFinder {
892 //{ALSImpl.leftOperand=current} 892 //{ALSImpl.leftOperand=current}
893 public Action getALSImplLeftOperandAction_1_0() { return cALSImplLeftOperandAction_1_0; } 893 public Action getALSImplLeftOperandAction_1_0() { return cALSImplLeftOperandAction_1_0; }
894 894
895 //("=>" | "implies") 895 //"=>" | "implies"
896 public Alternatives getAlternatives_1_1() { return cAlternatives_1_1; } 896 public Alternatives getAlternatives_1_1() { return cAlternatives_1_1; }
897 897
898 //"=>" 898 //"=>"
@@ -933,7 +933,7 @@ public class AlloyLanguageGrammarAccess extends AbstractGrammarElementFinder {
933 private final RuleCall cRightOperandALSComparisonParserRuleCall_1_2_0 = (RuleCall)cRightOperandAssignment_1_2.eContents().get(0); 933 private final RuleCall cRightOperandALSComparisonParserRuleCall_1_2_0 = (RuleCall)cRightOperandAssignment_1_2.eContents().get(0);
934 934
935 //ALSAnd ALSTerm: 935 //ALSAnd ALSTerm:
936 // ALSComparison ({ALSAnd.leftOperand=current} ("&&" | "and") rightOperand=ALSComparison)? 936 // ALSComparison ({ALSAnd.leftOperand=current} ("&&" | "and") rightOperand=ALSComparison)?;
937 @Override public ParserRule getRule() { return rule; } 937 @Override public ParserRule getRule() { return rule; }
938 938
939 //ALSComparison ({ALSAnd.leftOperand=current} ("&&" | "and") rightOperand=ALSComparison)? 939 //ALSComparison ({ALSAnd.leftOperand=current} ("&&" | "and") rightOperand=ALSComparison)?
@@ -948,7 +948,7 @@ public class AlloyLanguageGrammarAccess extends AbstractGrammarElementFinder {
948 //{ALSAnd.leftOperand=current} 948 //{ALSAnd.leftOperand=current}
949 public Action getALSAndLeftOperandAction_1_0() { return cALSAndLeftOperandAction_1_0; } 949 public Action getALSAndLeftOperandAction_1_0() { return cALSAndLeftOperandAction_1_0; }
950 950
951 //("&&" | "and") 951 //"&&" | "and"
952 public Alternatives getAlternatives_1_1() { return cAlternatives_1_1; } 952 public Alternatives getAlternatives_1_1() { return cAlternatives_1_1; }
953 953
954 //"&&" 954 //"&&"
@@ -997,7 +997,7 @@ public class AlloyLanguageGrammarAccess extends AbstractGrammarElementFinder {
997 //ALSComparison ALSTerm: 997 //ALSComparison ALSTerm:
998 // ALSOverride (({ALSEquals.leftOperand=current} "=" | {ALSNotEquals.leftOperand=current} "!=" | 998 // ALSOverride (({ALSEquals.leftOperand=current} "=" | {ALSNotEquals.leftOperand=current} "!=" |
999 // {ALSSubset.leftOperand=current} "in" | {ALSLess.leftOperand=current} ">" | {ALSLeq.leftOperand=current} ">=" | 999 // {ALSSubset.leftOperand=current} "in" | {ALSLess.leftOperand=current} ">" | {ALSLeq.leftOperand=current} ">=" |
1000 // {ALSMore.leftOperand=current} "<" | {ALSMeq.leftOperand=current} "<=") rightOperand=ALSOverride)? 1000 // {ALSMore.leftOperand=current} "<" | {ALSMeq.leftOperand=current} "<=") rightOperand=ALSOverride)?;
1001 @Override public ParserRule getRule() { return rule; } 1001 @Override public ParserRule getRule() { return rule; }
1002 1002
1003 //ALSOverride (({ALSEquals.leftOperand=current} "=" | {ALSNotEquals.leftOperand=current} "!=" | 1003 //ALSOverride (({ALSEquals.leftOperand=current} "=" | {ALSNotEquals.leftOperand=current} "!=" |
@@ -1013,9 +1013,9 @@ public class AlloyLanguageGrammarAccess extends AbstractGrammarElementFinder {
1013 //{ALSMeq.leftOperand=current} "<=") rightOperand=ALSOverride)? 1013 //{ALSMeq.leftOperand=current} "<=") rightOperand=ALSOverride)?
1014 public Group getGroup_1() { return cGroup_1; } 1014 public Group getGroup_1() { return cGroup_1; }
1015 1015
1016 //({ALSEquals.leftOperand=current} "=" | {ALSNotEquals.leftOperand=current} "!=" | {ALSSubset.leftOperand=current} "in" | 1016 //{ALSEquals.leftOperand=current} "=" | {ALSNotEquals.leftOperand=current} "!=" | {ALSSubset.leftOperand=current} "in" |
1017 //{ALSLess.leftOperand=current} ">" | {ALSLeq.leftOperand=current} ">=" | {ALSMore.leftOperand=current} "<" | 1017 //{ALSLess.leftOperand=current} ">" | {ALSLeq.leftOperand=current} ">=" | {ALSMore.leftOperand=current} "<" |
1018 //{ALSMeq.leftOperand=current} "<=") 1018 //{ALSMeq.leftOperand=current} "<="
1019 public Alternatives getAlternatives_1_0() { return cAlternatives_1_0; } 1019 public Alternatives getAlternatives_1_0() { return cAlternatives_1_0; }
1020 1020
1021 //{ALSEquals.leftOperand=current} "=" 1021 //{ALSEquals.leftOperand=current} "="
@@ -1099,7 +1099,7 @@ public class AlloyLanguageGrammarAccess extends AbstractGrammarElementFinder {
1099 private final RuleCall cRightOperandALSRangeRestrictionRightParserRuleCall_1_2_0 = (RuleCall)cRightOperandAssignment_1_2.eContents().get(0); 1099 private final RuleCall cRightOperandALSRangeRestrictionRightParserRuleCall_1_2_0 = (RuleCall)cRightOperandAssignment_1_2.eContents().get(0);
1100 1100
1101 //ALSOverride ALSTerm: 1101 //ALSOverride ALSTerm:
1102 // ALSRangeRestrictionRight ({ALSOverride.leftOperand=current} '++' rightOperand=ALSRangeRestrictionRight)? 1102 // ALSRangeRestrictionRight ({ALSOverride.leftOperand=current} '++' rightOperand=ALSRangeRestrictionRight)?;
1103 @Override public ParserRule getRule() { return rule; } 1103 @Override public ParserRule getRule() { return rule; }
1104 1104
1105 //ALSRangeRestrictionRight ({ALSOverride.leftOperand=current} '++' rightOperand=ALSRangeRestrictionRight)? 1105 //ALSRangeRestrictionRight ({ALSOverride.leftOperand=current} '++' rightOperand=ALSRangeRestrictionRight)?
@@ -1135,7 +1135,7 @@ public class AlloyLanguageGrammarAccess extends AbstractGrammarElementFinder {
1135 private final RuleCall cFilterALSRangeRestrictionLeftParserRuleCall_1_2_0 = (RuleCall)cFilterAssignment_1_2.eContents().get(0); 1135 private final RuleCall cFilterALSRangeRestrictionLeftParserRuleCall_1_2_0 = (RuleCall)cFilterAssignment_1_2.eContents().get(0);
1136 1136
1137 //ALSRangeRestrictionRight ALSTerm: 1137 //ALSRangeRestrictionRight ALSTerm:
1138 // ALSRangeRestrictionLeft ({ALSRangeRestrictionRight.relation=current} ':>' filter=ALSRangeRestrictionLeft)? 1138 // ALSRangeRestrictionLeft ({ALSRangeRestrictionRight.relation=current} ':>' filter=ALSRangeRestrictionLeft)?;
1139 @Override public ParserRule getRule() { return rule; } 1139 @Override public ParserRule getRule() { return rule; }
1140 1140
1141 //ALSRangeRestrictionLeft ({ALSRangeRestrictionRight.relation=current} ':>' filter=ALSRangeRestrictionLeft)? 1141 //ALSRangeRestrictionLeft ({ALSRangeRestrictionRight.relation=current} ':>' filter=ALSRangeRestrictionLeft)?
@@ -1171,7 +1171,7 @@ public class AlloyLanguageGrammarAccess extends AbstractGrammarElementFinder {
1171 private final RuleCall cRelationALSJoinParserRuleCall_1_2_0 = (RuleCall)cRelationAssignment_1_2.eContents().get(0); 1171 private final RuleCall cRelationALSJoinParserRuleCall_1_2_0 = (RuleCall)cRelationAssignment_1_2.eContents().get(0);
1172 1172
1173 //ALSRangeRestrictionLeft ALSTerm: 1173 //ALSRangeRestrictionLeft ALSTerm:
1174 // ALSJoin ({ALSRangeRestrictionLeft.filter=current} '<:' relation=ALSJoin)? 1174 // ALSJoin ({ALSRangeRestrictionLeft.filter=current} '<:' relation=ALSJoin)?;
1175 @Override public ParserRule getRule() { return rule; } 1175 @Override public ParserRule getRule() { return rule; }
1176 1176
1177 //ALSJoin ({ALSRangeRestrictionLeft.filter=current} '<:' relation=ALSJoin)? 1177 //ALSJoin ({ALSRangeRestrictionLeft.filter=current} '<:' relation=ALSJoin)?
@@ -1207,7 +1207,7 @@ public class AlloyLanguageGrammarAccess extends AbstractGrammarElementFinder {
1207 private final RuleCall cRightOperandALSMinusParserRuleCall_1_2_0 = (RuleCall)cRightOperandAssignment_1_2.eContents().get(0); 1207 private final RuleCall cRightOperandALSMinusParserRuleCall_1_2_0 = (RuleCall)cRightOperandAssignment_1_2.eContents().get(0);
1208 1208
1209 //ALSJoin ALSTerm: 1209 //ALSJoin ALSTerm:
1210 // ALSMinus ({ALSJoin.leftOperand=current} '.' rightOperand=ALSMinus)* 1210 // ALSMinus ({ALSJoin.leftOperand=current} '.' rightOperand=ALSMinus)*;
1211 @Override public ParserRule getRule() { return rule; } 1211 @Override public ParserRule getRule() { return rule; }
1212 1212
1213 //ALSMinus ({ALSJoin.leftOperand=current} '.' rightOperand=ALSMinus)* 1213 //ALSMinus ({ALSJoin.leftOperand=current} '.' rightOperand=ALSMinus)*
@@ -1243,7 +1243,7 @@ public class AlloyLanguageGrammarAccess extends AbstractGrammarElementFinder {
1243 private final RuleCall cRightOperandALSPlusParserRuleCall_1_2_0 = (RuleCall)cRightOperandAssignment_1_2.eContents().get(0); 1243 private final RuleCall cRightOperandALSPlusParserRuleCall_1_2_0 = (RuleCall)cRightOperandAssignment_1_2.eContents().get(0);
1244 1244
1245 //ALSMinus ALSTerm: 1245 //ALSMinus ALSTerm:
1246 // ALSPlus ({ALSMinus.leftOperand=current} '-' rightOperand=ALSPlus)* 1246 // ALSPlus ({ALSMinus.leftOperand=current} '-' rightOperand=ALSPlus)*;
1247 @Override public ParserRule getRule() { return rule; } 1247 @Override public ParserRule getRule() { return rule; }
1248 1248
1249 //ALSPlus ({ALSMinus.leftOperand=current} '-' rightOperand=ALSPlus)* 1249 //ALSPlus ({ALSMinus.leftOperand=current} '-' rightOperand=ALSPlus)*
@@ -1279,7 +1279,7 @@ public class AlloyLanguageGrammarAccess extends AbstractGrammarElementFinder {
1279 private final RuleCall cRightOperandALSIntersectionParserRuleCall_1_2_0 = (RuleCall)cRightOperandAssignment_1_2.eContents().get(0); 1279 private final RuleCall cRightOperandALSIntersectionParserRuleCall_1_2_0 = (RuleCall)cRightOperandAssignment_1_2.eContents().get(0);
1280 1280
1281 //ALSPlus ALSTerm: 1281 //ALSPlus ALSTerm:
1282 // ALSIntersection ({ALSPlus.leftOperand=current} '+' rightOperand=ALSIntersection)* 1282 // ALSIntersection ({ALSPlus.leftOperand=current} '+' rightOperand=ALSIntersection)*;
1283 @Override public ParserRule getRule() { return rule; } 1283 @Override public ParserRule getRule() { return rule; }
1284 1284
1285 //ALSIntersection ({ALSPlus.leftOperand=current} '+' rightOperand=ALSIntersection)* 1285 //ALSIntersection ({ALSPlus.leftOperand=current} '+' rightOperand=ALSIntersection)*
@@ -1315,7 +1315,7 @@ public class AlloyLanguageGrammarAccess extends AbstractGrammarElementFinder {
1315 private final RuleCall cRightOperandALSDirectProductParserRuleCall_1_2_0 = (RuleCall)cRightOperandAssignment_1_2.eContents().get(0); 1315 private final RuleCall cRightOperandALSDirectProductParserRuleCall_1_2_0 = (RuleCall)cRightOperandAssignment_1_2.eContents().get(0);
1316 1316
1317 //ALSIntersection ALSTerm: 1317 //ALSIntersection ALSTerm:
1318 // ALSDirectProduct ({ALSIntersection.leftOperand=current} '&' rightOperand=ALSDirectProduct)* 1318 // ALSDirectProduct ({ALSIntersection.leftOperand=current} '&' rightOperand=ALSDirectProduct)*;
1319 @Override public ParserRule getRule() { return rule; } 1319 @Override public ParserRule getRule() { return rule; }
1320 1320
1321 //ALSDirectProduct ({ALSIntersection.leftOperand=current} '&' rightOperand=ALSDirectProduct)* 1321 //ALSDirectProduct ({ALSIntersection.leftOperand=current} '&' rightOperand=ALSDirectProduct)*
@@ -1359,7 +1359,7 @@ public class AlloyLanguageGrammarAccess extends AbstractGrammarElementFinder {
1359 // ALSPreficed ({ALSDirectProduct.leftOperand=current} leftMultiplicit=ALSMultiplicity? 1359 // ALSPreficed ({ALSDirectProduct.leftOperand=current} leftMultiplicit=ALSMultiplicity?
1360 // '->' 1360 // '->'
1361 // rightMultiplicit=ALSMultiplicity? 1361 // rightMultiplicit=ALSMultiplicity?
1362 // rightOperand=ALSPreficed)? 1362 // rightOperand=ALSPreficed)?;
1363 @Override public ParserRule getRule() { return rule; } 1363 @Override public ParserRule getRule() { return rule; }
1364 1364
1365 //ALSPreficed ({ALSDirectProduct.leftOperand=current} leftMultiplicit=ALSMultiplicity? '->' 1365 //ALSPreficed ({ALSDirectProduct.leftOperand=current} leftMultiplicit=ALSMultiplicity? '->'
@@ -1472,7 +1472,7 @@ public class AlloyLanguageGrammarAccess extends AbstractGrammarElementFinder {
1472 // operand=ALSBasicRelationTerm | {ALSSum} 'sum' variables+=ALSVariableDeclaration (',' 1472 // operand=ALSBasicRelationTerm | {ALSSum} 'sum' variables+=ALSVariableDeclaration (','
1473 // variables+=ALSVariableDeclaration)* '{' expression=ALSTerm '}' | {ALSFunctionCall} 1473 // variables+=ALSVariableDeclaration)* '{' expression=ALSTerm '}' | {ALSFunctionCall}
1474 // (referredDefinition=[ALSDefinition] | referredNumericOperator=ALSNumericOperator) '[' params+=ALSTerm (',' 1474 // (referredDefinition=[ALSDefinition] | referredNumericOperator=ALSNumericOperator) '[' params+=ALSTerm (','
1475 // params+=ALSTerm)* ']' | ALSBasicRelationTerm 1475 // params+=ALSTerm)* ']' | ALSBasicRelationTerm;
1476 @Override public ParserRule getRule() { return rule; } 1476 @Override public ParserRule getRule() { return rule; }
1477 1477
1478 //{ALSNot} => ("!" | 'not') operand=ALSBasicRelationTerm | {ALSInverseRelation} => "~" operand=ALSBasicRelationTerm | 1478 //{ALSNot} => ("!" | 'not') operand=ALSBasicRelationTerm | {ALSInverseRelation} => "~" operand=ALSBasicRelationTerm |
@@ -1492,7 +1492,7 @@ public class AlloyLanguageGrammarAccess extends AbstractGrammarElementFinder {
1492 //=> ("!" | 'not') 1492 //=> ("!" | 'not')
1493 public Group getGroup_0_1() { return cGroup_0_1; } 1493 public Group getGroup_0_1() { return cGroup_0_1; }
1494 1494
1495 //("!" | 'not') 1495 //"!" | 'not'
1496 public Alternatives getAlternatives_0_1_0() { return cAlternatives_0_1_0; } 1496 public Alternatives getAlternatives_0_1_0() { return cAlternatives_0_1_0; }
1497 1497
1498 //"!" 1498 //"!"
@@ -1628,7 +1628,7 @@ public class AlloyLanguageGrammarAccess extends AbstractGrammarElementFinder {
1628 //{ALSFunctionCall} 1628 //{ALSFunctionCall}
1629 public Action getALSFunctionCallAction_7_0() { return cALSFunctionCallAction_7_0; } 1629 public Action getALSFunctionCallAction_7_0() { return cALSFunctionCallAction_7_0; }
1630 1630
1631 //(referredDefinition=[ALSDefinition] | referredNumericOperator=ALSNumericOperator) 1631 //referredDefinition=[ALSDefinition] | referredNumericOperator=ALSNumericOperator
1632 public Alternatives getAlternatives_7_1() { return cAlternatives_7_1; } 1632 public Alternatives getAlternatives_7_1() { return cAlternatives_7_1; }
1633 1633
1634 //referredDefinition=[ALSDefinition] 1634 //referredDefinition=[ALSDefinition]
@@ -1723,27 +1723,34 @@ public class AlloyLanguageGrammarAccess extends AbstractGrammarElementFinder {
1723 private final Action cALSIntAction_3_0 = (Action)cGroup_3.eContents().get(0); 1723 private final Action cALSIntAction_3_0 = (Action)cGroup_3.eContents().get(0);
1724 private final Keyword cIntKeyword_3_1 = (Keyword)cGroup_3.eContents().get(1); 1724 private final Keyword cIntKeyword_3_1 = (Keyword)cGroup_3.eContents().get(1);
1725 private final Group cGroup_4 = (Group)cAlternatives.eContents().get(4); 1725 private final Group cGroup_4 = (Group)cAlternatives.eContents().get(4);
1726 private final Action cALSReferenceAction_4_0 = (Action)cGroup_4.eContents().get(0); 1726 private final Action cALSStringAction_4_0 = (Action)cGroup_4.eContents().get(0);
1727 private final Assignment cReferredAssignment_4_1 = (Assignment)cGroup_4.eContents().get(1); 1727 private final Keyword cStringKeyword_4_1 = (Keyword)cGroup_4.eContents().get(1);
1728 private final CrossReference cReferredALSRelationDeclarationCrossReference_4_1_0 = (CrossReference)cReferredAssignment_4_1.eContents().get(0);
1729 private final RuleCall cReferredALSRelationDeclarationIDTerminalRuleCall_4_1_0_1 = (RuleCall)cReferredALSRelationDeclarationCrossReference_4_1_0.eContents().get(1);
1730 private final Group cGroup_5 = (Group)cAlternatives.eContents().get(5); 1728 private final Group cGroup_5 = (Group)cAlternatives.eContents().get(5);
1731 private final Action cALSNumberLiteralAction_5_0 = (Action)cGroup_5.eContents().get(0); 1729 private final Action cALSReferenceAction_5_0 = (Action)cGroup_5.eContents().get(0);
1732 private final Assignment cValueAssignment_5_1 = (Assignment)cGroup_5.eContents().get(1); 1730 private final Assignment cReferredAssignment_5_1 = (Assignment)cGroup_5.eContents().get(1);
1733 private final RuleCall cValueINTTerminalRuleCall_5_1_0 = (RuleCall)cValueAssignment_5_1.eContents().get(0); 1731 private final CrossReference cReferredALSRelationDeclarationCrossReference_5_1_0 = (CrossReference)cReferredAssignment_5_1.eContents().get(0);
1732 private final RuleCall cReferredALSRelationDeclarationIDTerminalRuleCall_5_1_0_1 = (RuleCall)cReferredALSRelationDeclarationCrossReference_5_1_0.eContents().get(1);
1734 private final Group cGroup_6 = (Group)cAlternatives.eContents().get(6); 1733 private final Group cGroup_6 = (Group)cAlternatives.eContents().get(6);
1735 private final Keyword cLeftParenthesisKeyword_6_0 = (Keyword)cGroup_6.eContents().get(0); 1734 private final Action cALSNumberLiteralAction_6_0 = (Action)cGroup_6.eContents().get(0);
1736 private final RuleCall cALSTermParserRuleCall_6_1 = (RuleCall)cGroup_6.eContents().get(1); 1735 private final Assignment cValueAssignment_6_1 = (Assignment)cGroup_6.eContents().get(1);
1737 private final Keyword cRightParenthesisKeyword_6_2 = (Keyword)cGroup_6.eContents().get(2); 1736 private final RuleCall cValueINTTerminalRuleCall_6_1_0 = (RuleCall)cValueAssignment_6_1.eContents().get(0);
1737 private final Group cGroup_7 = (Group)cAlternatives.eContents().get(7);
1738 private final Action cALSStringLiteralAction_7_0 = (Action)cGroup_7.eContents().get(0);
1739 private final Assignment cValueAssignment_7_1 = (Assignment)cGroup_7.eContents().get(1);
1740 private final RuleCall cValueSTRINGTerminalRuleCall_7_1_0 = (RuleCall)cValueAssignment_7_1.eContents().get(0);
1741 private final Group cGroup_8 = (Group)cAlternatives.eContents().get(8);
1742 private final Keyword cLeftParenthesisKeyword_8_0 = (Keyword)cGroup_8.eContents().get(0);
1743 private final RuleCall cALSTermParserRuleCall_8_1 = (RuleCall)cGroup_8.eContents().get(1);
1744 private final Keyword cRightParenthesisKeyword_8_2 = (Keyword)cGroup_8.eContents().get(2);
1738 1745
1739 //ALSBasicRelationTerm ALSTerm: 1746 //ALSBasicRelationTerm ALSTerm:
1740 // {ALSNone} 'none' | {ALSIden} 'iden' | {ALSUniv} 'univ' | {ALSInt} 'Int' | {ALSReference} 1747 // {ALSNone} 'none' | {ALSIden} 'iden' | {ALSUniv} 'univ' | {ALSInt} 'Int' | {ALSString} 'String' | {ALSReference}
1741 // referred=[ALSRelationDeclaration] | {ALSNumberLiteral} value=INT | 1748 // referred=[ALSRelationDeclaration] | {ALSNumberLiteral} value=INT | {ALSStringLiteral} value=STRING |
1742 // '(' ALSTerm ')' 1749 // '(' ALSTerm ')';
1743 @Override public ParserRule getRule() { return rule; } 1750 @Override public ParserRule getRule() { return rule; }
1744 1751
1745 //{ALSNone} 'none' | {ALSIden} 'iden' | {ALSUniv} 'univ' | {ALSInt} 'Int' | {ALSReference} 1752 //{ALSNone} 'none' | {ALSIden} 'iden' | {ALSUniv} 'univ' | {ALSInt} 'Int' | {ALSString} 'String' | {ALSReference}
1746 //referred=[ALSRelationDeclaration] | {ALSNumberLiteral} value=INT | '(' ALSTerm ')' 1753 //referred=[ALSRelationDeclaration] | {ALSNumberLiteral} value=INT | {ALSStringLiteral} value=STRING | '(' ALSTerm ')'
1747 public Alternatives getAlternatives() { return cAlternatives; } 1754 public Alternatives getAlternatives() { return cAlternatives; }
1748 1755
1749 //{ALSNone} 'none' 1756 //{ALSNone} 'none'
@@ -1782,44 +1789,65 @@ public class AlloyLanguageGrammarAccess extends AbstractGrammarElementFinder {
1782 //'Int' 1789 //'Int'
1783 public Keyword getIntKeyword_3_1() { return cIntKeyword_3_1; } 1790 public Keyword getIntKeyword_3_1() { return cIntKeyword_3_1; }
1784 1791
1785 //{ALSReference} referred=[ALSRelationDeclaration] 1792 //{ALSString} 'String'
1786 public Group getGroup_4() { return cGroup_4; } 1793 public Group getGroup_4() { return cGroup_4; }
1787 1794
1795 //{ALSString}
1796 public Action getALSStringAction_4_0() { return cALSStringAction_4_0; }
1797
1798 //'String'
1799 public Keyword getStringKeyword_4_1() { return cStringKeyword_4_1; }
1800
1801 //{ALSReference} referred=[ALSRelationDeclaration]
1802 public Group getGroup_5() { return cGroup_5; }
1803
1788 //{ALSReference} 1804 //{ALSReference}
1789 public Action getALSReferenceAction_4_0() { return cALSReferenceAction_4_0; } 1805 public Action getALSReferenceAction_5_0() { return cALSReferenceAction_5_0; }
1790 1806
1791 //referred=[ALSRelationDeclaration] 1807 //referred=[ALSRelationDeclaration]
1792 public Assignment getReferredAssignment_4_1() { return cReferredAssignment_4_1; } 1808 public Assignment getReferredAssignment_5_1() { return cReferredAssignment_5_1; }
1793 1809
1794 //[ALSRelationDeclaration] 1810 //[ALSRelationDeclaration]
1795 public CrossReference getReferredALSRelationDeclarationCrossReference_4_1_0() { return cReferredALSRelationDeclarationCrossReference_4_1_0; } 1811 public CrossReference getReferredALSRelationDeclarationCrossReference_5_1_0() { return cReferredALSRelationDeclarationCrossReference_5_1_0; }
1796 1812
1797 //ID 1813 //ID
1798 public RuleCall getReferredALSRelationDeclarationIDTerminalRuleCall_4_1_0_1() { return cReferredALSRelationDeclarationIDTerminalRuleCall_4_1_0_1; } 1814 public RuleCall getReferredALSRelationDeclarationIDTerminalRuleCall_5_1_0_1() { return cReferredALSRelationDeclarationIDTerminalRuleCall_5_1_0_1; }
1799 1815
1800 //{ALSNumberLiteral} value=INT 1816 //{ALSNumberLiteral} value=INT
1801 public Group getGroup_5() { return cGroup_5; } 1817 public Group getGroup_6() { return cGroup_6; }
1802 1818
1803 //{ALSNumberLiteral} 1819 //{ALSNumberLiteral}
1804 public Action getALSNumberLiteralAction_5_0() { return cALSNumberLiteralAction_5_0; } 1820 public Action getALSNumberLiteralAction_6_0() { return cALSNumberLiteralAction_6_0; }
1805 1821
1806 //value=INT 1822 //value=INT
1807 public Assignment getValueAssignment_5_1() { return cValueAssignment_5_1; } 1823 public Assignment getValueAssignment_6_1() { return cValueAssignment_6_1; }
1808 1824
1809 //INT 1825 //INT
1810 public RuleCall getValueINTTerminalRuleCall_5_1_0() { return cValueINTTerminalRuleCall_5_1_0; } 1826 public RuleCall getValueINTTerminalRuleCall_6_1_0() { return cValueINTTerminalRuleCall_6_1_0; }
1827
1828 //{ALSStringLiteral} value=STRING
1829 public Group getGroup_7() { return cGroup_7; }
1830
1831 //{ALSStringLiteral}
1832 public Action getALSStringLiteralAction_7_0() { return cALSStringLiteralAction_7_0; }
1833
1834 //value=STRING
1835 public Assignment getValueAssignment_7_1() { return cValueAssignment_7_1; }
1836
1837 //STRING
1838 public RuleCall getValueSTRINGTerminalRuleCall_7_1_0() { return cValueSTRINGTerminalRuleCall_7_1_0; }
1811 1839
1812 //'(' ALSTerm ')' 1840 //'(' ALSTerm ')'
1813 public Group getGroup_6() { return cGroup_6; } 1841 public Group getGroup_8() { return cGroup_8; }
1814 1842
1815 //'(' 1843 //'('
1816 public Keyword getLeftParenthesisKeyword_6_0() { return cLeftParenthesisKeyword_6_0; } 1844 public Keyword getLeftParenthesisKeyword_8_0() { return cLeftParenthesisKeyword_8_0; }
1817 1845
1818 //ALSTerm 1846 //ALSTerm
1819 public RuleCall getALSTermParserRuleCall_6_1() { return cALSTermParserRuleCall_6_1; } 1847 public RuleCall getALSTermParserRuleCall_8_1() { return cALSTermParserRuleCall_8_1; }
1820 1848
1821 //')' 1849 //')'
1822 public Keyword getRightParenthesisKeyword_6_2() { return cRightParenthesisKeyword_6_2; } 1850 public Keyword getRightParenthesisKeyword_8_2() { return cRightParenthesisKeyword_8_2; }
1823 } 1851 }
1824 1852
1825 public class ALSRunCommandElements extends AbstractParserRuleElementFinder { 1853 public class ALSRunCommandElements extends AbstractParserRuleElementFinder {
@@ -1890,12 +1918,13 @@ public class AlloyLanguageGrammarAccess extends AbstractGrammarElementFinder {
1890 private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); 1918 private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
1891 private final RuleCall cALSSigScopeParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0); 1919 private final RuleCall cALSSigScopeParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
1892 private final RuleCall cALSIntScopeParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1); 1920 private final RuleCall cALSIntScopeParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
1921 private final RuleCall cALSStringScopeParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2);
1893 1922
1894 //ALSTypeScope: 1923 //ALSTypeScope:
1895 // ALSSigScope | ALSIntScope; 1924 // ALSSigScope | ALSIntScope | ALSStringScope;
1896 @Override public ParserRule getRule() { return rule; } 1925 @Override public ParserRule getRule() { return rule; }
1897 1926
1898 //ALSSigScope | ALSIntScope 1927 //ALSSigScope | ALSIntScope | ALSStringScope
1899 public Alternatives getAlternatives() { return cAlternatives; } 1928 public Alternatives getAlternatives() { return cAlternatives; }
1900 1929
1901 //ALSSigScope 1930 //ALSSigScope
@@ -1903,6 +1932,9 @@ public class AlloyLanguageGrammarAccess extends AbstractGrammarElementFinder {
1903 1932
1904 //ALSIntScope 1933 //ALSIntScope
1905 public RuleCall getALSIntScopeParserRuleCall_1() { return cALSIntScopeParserRuleCall_1; } 1934 public RuleCall getALSIntScopeParserRuleCall_1() { return cALSIntScopeParserRuleCall_1; }
1935
1936 //ALSStringScope
1937 public RuleCall getALSStringScopeParserRuleCall_2() { return cALSStringScopeParserRuleCall_2; }
1906 } 1938 }
1907 1939
1908 public class ALSSigScopeElements extends AbstractParserRuleElementFinder { 1940 public class ALSSigScopeElements extends AbstractParserRuleElementFinder {
@@ -1968,6 +2000,34 @@ public class AlloyLanguageGrammarAccess extends AbstractGrammarElementFinder {
1968 //'Int' 2000 //'Int'
1969 public Keyword getIntKeyword_1() { return cIntKeyword_1; } 2001 public Keyword getIntKeyword_1() { return cIntKeyword_1; }
1970 } 2002 }
2003
2004 public class ALSStringScopeElements extends AbstractParserRuleElementFinder {
2005 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSStringScope");
2006 private final Group cGroup = (Group)rule.eContents().get(1);
2007 private final Keyword cExactlyKeyword_0 = (Keyword)cGroup.eContents().get(0);
2008 private final Assignment cNumberAssignment_1 = (Assignment)cGroup.eContents().get(1);
2009 private final RuleCall cNumberINTTerminalRuleCall_1_0 = (RuleCall)cNumberAssignment_1.eContents().get(0);
2010 private final Keyword cStringKeyword_2 = (Keyword)cGroup.eContents().get(2);
2011
2012 //ALSStringScope:
2013 // 'exactly' number=INT 'String';
2014 @Override public ParserRule getRule() { return rule; }
2015
2016 //'exactly' number=INT 'String'
2017 public Group getGroup() { return cGroup; }
2018
2019 //'exactly'
2020 public Keyword getExactlyKeyword_0() { return cExactlyKeyword_0; }
2021
2022 //number=INT
2023 public Assignment getNumberAssignment_1() { return cNumberAssignment_1; }
2024
2025 //INT
2026 public RuleCall getNumberINTTerminalRuleCall_1_0() { return cNumberINTTerminalRuleCall_1_0; }
2027
2028 //'String'
2029 public Keyword getStringKeyword_2() { return cStringKeyword_2; }
2030 }
1971 2031
1972 2032
1973 public class ALSMultiplicityElements extends AbstractEnumRuleElementFinder { 2033 public class ALSMultiplicityElements extends AbstractEnumRuleElementFinder {
@@ -2120,6 +2180,7 @@ public class AlloyLanguageGrammarAccess extends AbstractGrammarElementFinder {
2120 private final ALSTypeScopeElements pALSTypeScope; 2180 private final ALSTypeScopeElements pALSTypeScope;
2121 private final ALSSigScopeElements pALSSigScope; 2181 private final ALSSigScopeElements pALSSigScope;
2122 private final ALSIntScopeElements pALSIntScope; 2182 private final ALSIntScopeElements pALSIntScope;
2183 private final ALSStringScopeElements pALSStringScope;
2123 2184
2124 private final Grammar grammar; 2185 private final Grammar grammar;
2125 2186
@@ -2168,6 +2229,7 @@ public class AlloyLanguageGrammarAccess extends AbstractGrammarElementFinder {
2168 this.pALSTypeScope = new ALSTypeScopeElements(); 2229 this.pALSTypeScope = new ALSTypeScopeElements();
2169 this.pALSSigScope = new ALSSigScopeElements(); 2230 this.pALSSigScope = new ALSSigScopeElements();
2170 this.pALSIntScope = new ALSIntScopeElements(); 2231 this.pALSIntScope = new ALSIntScopeElements();
2232 this.pALSStringScope = new ALSStringScopeElements();
2171 } 2233 }
2172 2234
2173 protected Grammar internalFindGrammar(GrammarProvider grammarProvider) { 2235 protected Grammar internalFindGrammar(GrammarProvider grammarProvider) {
@@ -2374,7 +2436,7 @@ public class AlloyLanguageGrammarAccess extends AbstractGrammarElementFinder {
2374 //ALSQuantified ALSTerm: 2436 //ALSQuantified ALSTerm:
2375 // {ALSQuantifiedEx} type=ALSMultiplicity 2437 // {ALSQuantifiedEx} type=ALSMultiplicity
2376 // disj?='disj'? variables+=ALSVariableDeclaration (',' variables+=ALSVariableDeclaration)* '{' expression=ALSTerm '}' | 2438 // disj?='disj'? variables+=ALSVariableDeclaration (',' variables+=ALSVariableDeclaration)* '{' expression=ALSTerm '}' |
2377 // ALSOr 2439 // ALSOr;
2378 public ALSQuantifiedElements getALSQuantifiedAccess() { 2440 public ALSQuantifiedElements getALSQuantifiedAccess() {
2379 return pALSQuantified; 2441 return pALSQuantified;
2380 } 2442 }
@@ -2384,7 +2446,7 @@ public class AlloyLanguageGrammarAccess extends AbstractGrammarElementFinder {
2384 } 2446 }
2385 2447
2386 //ALSOr ALSTerm: 2448 //ALSOr ALSTerm:
2387 // ALSIff ({ALSOr.leftOperand=current} ("||" | "or") rightOperand=ALSIff)? 2449 // ALSIff ({ALSOr.leftOperand=current} ("||" | "or") rightOperand=ALSIff)?;
2388 public ALSOrElements getALSOrAccess() { 2450 public ALSOrElements getALSOrAccess() {
2389 return pALSOr; 2451 return pALSOr;
2390 } 2452 }
@@ -2394,7 +2456,7 @@ public class AlloyLanguageGrammarAccess extends AbstractGrammarElementFinder {
2394 } 2456 }
2395 2457
2396 //ALSIff ALSTerm: 2458 //ALSIff ALSTerm:
2397 // ALSImpl ({ALSIff.leftOperand=current} ("<=>" | "iff") rightOperand=ALSImpl)? 2459 // ALSImpl ({ALSIff.leftOperand=current} ("<=>" | "iff") rightOperand=ALSImpl)?;
2398 public ALSIffElements getALSIffAccess() { 2460 public ALSIffElements getALSIffAccess() {
2399 return pALSIff; 2461 return pALSIff;
2400 } 2462 }
@@ -2404,7 +2466,7 @@ public class AlloyLanguageGrammarAccess extends AbstractGrammarElementFinder {
2404 } 2466 }
2405 2467
2406 //ALSImpl ALSTerm: 2468 //ALSImpl ALSTerm:
2407 // ALSAnd ({ALSImpl.leftOperand=current} ("=>" | "implies") rightOperand=ALSAnd ('else' elseOperand=ALSAnd)?)? 2469 // ALSAnd ({ALSImpl.leftOperand=current} ("=>" | "implies") rightOperand=ALSAnd ('else' elseOperand=ALSAnd)?)?;
2408 public ALSImplElements getALSImplAccess() { 2470 public ALSImplElements getALSImplAccess() {
2409 return pALSImpl; 2471 return pALSImpl;
2410 } 2472 }
@@ -2414,7 +2476,7 @@ public class AlloyLanguageGrammarAccess extends AbstractGrammarElementFinder {
2414 } 2476 }
2415 2477
2416 //ALSAnd ALSTerm: 2478 //ALSAnd ALSTerm:
2417 // ALSComparison ({ALSAnd.leftOperand=current} ("&&" | "and") rightOperand=ALSComparison)? 2479 // ALSComparison ({ALSAnd.leftOperand=current} ("&&" | "and") rightOperand=ALSComparison)?;
2418 public ALSAndElements getALSAndAccess() { 2480 public ALSAndElements getALSAndAccess() {
2419 return pALSAnd; 2481 return pALSAnd;
2420 } 2482 }
@@ -2426,7 +2488,7 @@ public class AlloyLanguageGrammarAccess extends AbstractGrammarElementFinder {
2426 //ALSComparison ALSTerm: 2488 //ALSComparison ALSTerm:
2427 // ALSOverride (({ALSEquals.leftOperand=current} "=" | {ALSNotEquals.leftOperand=current} "!=" | 2489 // ALSOverride (({ALSEquals.leftOperand=current} "=" | {ALSNotEquals.leftOperand=current} "!=" |
2428 // {ALSSubset.leftOperand=current} "in" | {ALSLess.leftOperand=current} ">" | {ALSLeq.leftOperand=current} ">=" | 2490 // {ALSSubset.leftOperand=current} "in" | {ALSLess.leftOperand=current} ">" | {ALSLeq.leftOperand=current} ">=" |
2429 // {ALSMore.leftOperand=current} "<" | {ALSMeq.leftOperand=current} "<=") rightOperand=ALSOverride)? 2491 // {ALSMore.leftOperand=current} "<" | {ALSMeq.leftOperand=current} "<=") rightOperand=ALSOverride)?;
2430 public ALSComparisonElements getALSComparisonAccess() { 2492 public ALSComparisonElements getALSComparisonAccess() {
2431 return pALSComparison; 2493 return pALSComparison;
2432 } 2494 }
@@ -2436,7 +2498,7 @@ public class AlloyLanguageGrammarAccess extends AbstractGrammarElementFinder {
2436 } 2498 }
2437 2499
2438 //ALSOverride ALSTerm: 2500 //ALSOverride ALSTerm:
2439 // ALSRangeRestrictionRight ({ALSOverride.leftOperand=current} '++' rightOperand=ALSRangeRestrictionRight)? 2501 // ALSRangeRestrictionRight ({ALSOverride.leftOperand=current} '++' rightOperand=ALSRangeRestrictionRight)?;
2440 public ALSOverrideElements getALSOverrideAccess() { 2502 public ALSOverrideElements getALSOverrideAccess() {
2441 return pALSOverride; 2503 return pALSOverride;
2442 } 2504 }
@@ -2446,7 +2508,7 @@ public class AlloyLanguageGrammarAccess extends AbstractGrammarElementFinder {
2446 } 2508 }
2447 2509
2448 //ALSRangeRestrictionRight ALSTerm: 2510 //ALSRangeRestrictionRight ALSTerm:
2449 // ALSRangeRestrictionLeft ({ALSRangeRestrictionRight.relation=current} ':>' filter=ALSRangeRestrictionLeft)? 2511 // ALSRangeRestrictionLeft ({ALSRangeRestrictionRight.relation=current} ':>' filter=ALSRangeRestrictionLeft)?;
2450 public ALSRangeRestrictionRightElements getALSRangeRestrictionRightAccess() { 2512 public ALSRangeRestrictionRightElements getALSRangeRestrictionRightAccess() {
2451 return pALSRangeRestrictionRight; 2513 return pALSRangeRestrictionRight;
2452 } 2514 }
@@ -2456,7 +2518,7 @@ public class AlloyLanguageGrammarAccess extends AbstractGrammarElementFinder {
2456 } 2518 }
2457 2519
2458 //ALSRangeRestrictionLeft ALSTerm: 2520 //ALSRangeRestrictionLeft ALSTerm:
2459 // ALSJoin ({ALSRangeRestrictionLeft.filter=current} '<:' relation=ALSJoin)? 2521 // ALSJoin ({ALSRangeRestrictionLeft.filter=current} '<:' relation=ALSJoin)?;
2460 public ALSRangeRestrictionLeftElements getALSRangeRestrictionLeftAccess() { 2522 public ALSRangeRestrictionLeftElements getALSRangeRestrictionLeftAccess() {
2461 return pALSRangeRestrictionLeft; 2523 return pALSRangeRestrictionLeft;
2462 } 2524 }
@@ -2466,7 +2528,7 @@ public class AlloyLanguageGrammarAccess extends AbstractGrammarElementFinder {
2466 } 2528 }
2467 2529
2468 //ALSJoin ALSTerm: 2530 //ALSJoin ALSTerm:
2469 // ALSMinus ({ALSJoin.leftOperand=current} '.' rightOperand=ALSMinus)* 2531 // ALSMinus ({ALSJoin.leftOperand=current} '.' rightOperand=ALSMinus)*;
2470 public ALSJoinElements getALSJoinAccess() { 2532 public ALSJoinElements getALSJoinAccess() {
2471 return pALSJoin; 2533 return pALSJoin;
2472 } 2534 }
@@ -2476,7 +2538,7 @@ public class AlloyLanguageGrammarAccess extends AbstractGrammarElementFinder {
2476 } 2538 }
2477 2539
2478 //ALSMinus ALSTerm: 2540 //ALSMinus ALSTerm:
2479 // ALSPlus ({ALSMinus.leftOperand=current} '-' rightOperand=ALSPlus)* 2541 // ALSPlus ({ALSMinus.leftOperand=current} '-' rightOperand=ALSPlus)*;
2480 public ALSMinusElements getALSMinusAccess() { 2542 public ALSMinusElements getALSMinusAccess() {
2481 return pALSMinus; 2543 return pALSMinus;
2482 } 2544 }
@@ -2486,7 +2548,7 @@ public class AlloyLanguageGrammarAccess extends AbstractGrammarElementFinder {
2486 } 2548 }
2487 2549
2488 //ALSPlus ALSTerm: 2550 //ALSPlus ALSTerm:
2489 // ALSIntersection ({ALSPlus.leftOperand=current} '+' rightOperand=ALSIntersection)* 2551 // ALSIntersection ({ALSPlus.leftOperand=current} '+' rightOperand=ALSIntersection)*;
2490 public ALSPlusElements getALSPlusAccess() { 2552 public ALSPlusElements getALSPlusAccess() {
2491 return pALSPlus; 2553 return pALSPlus;
2492 } 2554 }
@@ -2496,7 +2558,7 @@ public class AlloyLanguageGrammarAccess extends AbstractGrammarElementFinder {
2496 } 2558 }
2497 2559
2498 //ALSIntersection ALSTerm: 2560 //ALSIntersection ALSTerm:
2499 // ALSDirectProduct ({ALSIntersection.leftOperand=current} '&' rightOperand=ALSDirectProduct)* 2561 // ALSDirectProduct ({ALSIntersection.leftOperand=current} '&' rightOperand=ALSDirectProduct)*;
2500 public ALSIntersectionElements getALSIntersectionAccess() { 2562 public ALSIntersectionElements getALSIntersectionAccess() {
2501 return pALSIntersection; 2563 return pALSIntersection;
2502 } 2564 }
@@ -2510,7 +2572,7 @@ public class AlloyLanguageGrammarAccess extends AbstractGrammarElementFinder {
2510 // ALSPreficed ({ALSDirectProduct.leftOperand=current} leftMultiplicit=ALSMultiplicity? 2572 // ALSPreficed ({ALSDirectProduct.leftOperand=current} leftMultiplicit=ALSMultiplicity?
2511 // '->' 2573 // '->'
2512 // rightMultiplicit=ALSMultiplicity? 2574 // rightMultiplicit=ALSMultiplicity?
2513 // rightOperand=ALSPreficed)? 2575 // rightOperand=ALSPreficed)?;
2514 public ALSDirectProductElements getALSDirectProductAccess() { 2576 public ALSDirectProductElements getALSDirectProductAccess() {
2515 return pALSDirectProduct; 2577 return pALSDirectProduct;
2516 } 2578 }
@@ -2526,7 +2588,7 @@ public class AlloyLanguageGrammarAccess extends AbstractGrammarElementFinder {
2526 // operand=ALSBasicRelationTerm | {ALSSum} 'sum' variables+=ALSVariableDeclaration (',' 2588 // operand=ALSBasicRelationTerm | {ALSSum} 'sum' variables+=ALSVariableDeclaration (','
2527 // variables+=ALSVariableDeclaration)* '{' expression=ALSTerm '}' | {ALSFunctionCall} 2589 // variables+=ALSVariableDeclaration)* '{' expression=ALSTerm '}' | {ALSFunctionCall}
2528 // (referredDefinition=[ALSDefinition] | referredNumericOperator=ALSNumericOperator) '[' params+=ALSTerm (',' 2590 // (referredDefinition=[ALSDefinition] | referredNumericOperator=ALSNumericOperator) '[' params+=ALSTerm (','
2529 // params+=ALSTerm)* ']' | ALSBasicRelationTerm 2591 // params+=ALSTerm)* ']' | ALSBasicRelationTerm;
2530 public ALSPreficedElements getALSPreficedAccess() { 2592 public ALSPreficedElements getALSPreficedAccess() {
2531 return pALSPreficed; 2593 return pALSPreficed;
2532 } 2594 }
@@ -2557,9 +2619,9 @@ public class AlloyLanguageGrammarAccess extends AbstractGrammarElementFinder {
2557 } 2619 }
2558 2620
2559 //ALSBasicRelationTerm ALSTerm: 2621 //ALSBasicRelationTerm ALSTerm:
2560 // {ALSNone} 'none' | {ALSIden} 'iden' | {ALSUniv} 'univ' | {ALSInt} 'Int' | {ALSReference} 2622 // {ALSNone} 'none' | {ALSIden} 'iden' | {ALSUniv} 'univ' | {ALSInt} 'Int' | {ALSString} 'String' | {ALSReference}
2561 // referred=[ALSRelationDeclaration] | {ALSNumberLiteral} value=INT | 2623 // referred=[ALSRelationDeclaration] | {ALSNumberLiteral} value=INT | {ALSStringLiteral} value=STRING |
2562 // '(' ALSTerm ')' 2624 // '(' ALSTerm ')';
2563 public ALSBasicRelationTermElements getALSBasicRelationTermAccess() { 2625 public ALSBasicRelationTermElements getALSBasicRelationTermAccess() {
2564 return pALSBasicRelationTerm; 2626 return pALSBasicRelationTerm;
2565 } 2627 }
@@ -2582,7 +2644,7 @@ public class AlloyLanguageGrammarAccess extends AbstractGrammarElementFinder {
2582 } 2644 }
2583 2645
2584 //ALSTypeScope: 2646 //ALSTypeScope:
2585 // ALSSigScope | ALSIntScope; 2647 // ALSSigScope | ALSIntScope | ALSStringScope;
2586 public ALSTypeScopeElements getALSTypeScopeAccess() { 2648 public ALSTypeScopeElements getALSTypeScopeAccess() {
2587 return pALSTypeScope; 2649 return pALSTypeScope;
2588 } 2650 }
@@ -2611,6 +2673,16 @@ public class AlloyLanguageGrammarAccess extends AbstractGrammarElementFinder {
2611 return getALSIntScopeAccess().getRule(); 2673 return getALSIntScopeAccess().getRule();
2612 } 2674 }
2613 2675
2676 //ALSStringScope:
2677 // 'exactly' number=INT 'String';
2678 public ALSStringScopeElements getALSStringScopeAccess() {
2679 return pALSStringScope;
2680 }
2681
2682 public ParserRule getALSStringScopeRule() {
2683 return getALSStringScopeAccess().getRule();
2684 }
2685
2614 //terminal INT returns ecore::EInt: 2686 //terminal INT returns ecore::EInt:
2615 // '0'..'9'+; 2687 // '0'..'9'+;
2616 public TerminalRule getINTRule() { 2688 public TerminalRule getINTRule() {
@@ -2624,7 +2696,7 @@ public class AlloyLanguageGrammarAccess extends AbstractGrammarElementFinder {
2624 } 2696 }
2625 2697
2626 //terminal ML_COMMENT: 2698 //terminal ML_COMMENT:
2627 // '/ *'->'* /'; 2699 // '/*'->'*/';
2628 public TerminalRule getML_COMMENTRule() { 2700 public TerminalRule getML_COMMENTRule() {
2629 return gaTerminals.getML_COMMENTRule(); 2701 return gaTerminals.getML_COMMENTRule();
2630 } 2702 }
diff --git a/Solvers/Alloy-Solver/hu.bme.mit.inf.dslreasoner.alloy.language/src/hu/bme/mit/inf/dslreasoner/AlloyLanguage.xtext b/Solvers/Alloy-Solver/hu.bme.mit.inf.dslreasoner.alloy.language/src/hu/bme/mit/inf/dslreasoner/AlloyLanguage.xtext
index 6d5fcf58..468d453a 100644
--- a/Solvers/Alloy-Solver/hu.bme.mit.inf.dslreasoner.alloy.language/src/hu/bme/mit/inf/dslreasoner/AlloyLanguage.xtext
+++ b/Solvers/Alloy-Solver/hu.bme.mit.inf.dslreasoner.alloy.language/src/hu/bme/mit/inf/dslreasoner/AlloyLanguage.xtext
@@ -128,12 +128,14 @@ enum ALSNumericOperator: plus|sub|mul|rem|div;
128ALSVariableDeclaration: name=ALSID ':' range = ALSTerm; 128ALSVariableDeclaration: name=ALSID ':' range = ALSTerm;
129 129
130ALSBasicRelationTerm returns ALSTerm: 130ALSBasicRelationTerm returns ALSTerm:
131 {ALSNone} 'none'| 131 {ALSNone} 'none'|
132 {ALSIden} 'iden'| 132 {ALSIden} 'iden'|
133 {ALSUniv} 'univ'| 133 {ALSUniv} 'univ'|
134 {ALSInt} 'Int' | 134 {ALSInt} 'Int' |
135 {ALSString} 'String' |
135 {ALSReference} referred = [ALSRelationDeclaration] | 136 {ALSReference} referred = [ALSRelationDeclaration] |
136 {ALSNumberLiteral} value = INT| 137 {ALSNumberLiteral} value = INT|
138 {ALSStringLiteral} value = STRING|
137 '(' ALSTerm ')' 139 '(' ALSTerm ')'
138; 140;
139 141
@@ -143,7 +145,8 @@ ALSBasicRelationTerm returns ALSTerm:
143ALSRunCommand: 145ALSRunCommand:
144 {ALSRunCommand} 'run' '{' '}' ('for' typeScopes+=ALSTypeScope (',' typeScopes+=ALSTypeScope)*)?; 146 {ALSRunCommand} 'run' '{' '}' ('for' typeScopes+=ALSTypeScope (',' typeScopes+=ALSTypeScope)*)?;
145 147
146ALSTypeScope: ALSSigScope | ALSIntScope; 148ALSTypeScope: ALSSigScope | ALSIntScope | ALSStringScope;
147 149
148ALSSigScope: (exactly?='exactly')? number = INT type = [ALSSignatureDeclaration]; 150ALSSigScope: (exactly?='exactly')? number = INT type = [ALSSignatureDeclaration];
149ALSIntScope: number = INT 'Int'; \ No newline at end of file 151ALSIntScope: number = INT 'Int';
152ALSStringScope: 'exactly' number = INT 'String'; \ No newline at end of file
diff --git a/Solvers/Alloy-Solver/hu.bme.mit.inf.dslreasoner.alloy.language/src/hu/bme/mit/inf/dslreasoner/formatting/AlloyLanguageFormatter.xtend b/Solvers/Alloy-Solver/hu.bme.mit.inf.dslreasoner.alloy.language/src/hu/bme/mit/inf/dslreasoner/formatting/AlloyLanguageFormatter.xtend
index 28797bc4..2fe82e0c 100644
--- a/Solvers/Alloy-Solver/hu.bme.mit.inf.dslreasoner.alloy.language/src/hu/bme/mit/inf/dslreasoner/formatting/AlloyLanguageFormatter.xtend
+++ b/Solvers/Alloy-Solver/hu.bme.mit.inf.dslreasoner.alloy.language/src/hu/bme/mit/inf/dslreasoner/formatting/AlloyLanguageFormatter.xtend
@@ -86,8 +86,8 @@ class AlloyLanguageFormatter extends AbstractDeclarativeFormatter {
86// c.setLinewrap.before(ALSPreficedAccess.rightCurlyBracketKeyword_5_6) 86// c.setLinewrap.before(ALSPreficedAccess.rightCurlyBracketKeyword_5_6)
87// c.setIndentationDecrement.before(ALSPreficedAccess.rightCurlyBracketKeyword_5_6) 87// c.setIndentationDecrement.before(ALSPreficedAccess.rightCurlyBracketKeyword_5_6)
88 88
89 c.setNoSpace.after(ALSBasicRelationTermAccess.leftParenthesisKeyword_6_0) 89 c.setNoSpace.after(ALSBasicRelationTermAccess.leftParenthesisKeyword_8_0)
90 c.setNoSpace.before(ALSBasicRelationTermAccess.rightParenthesisKeyword_6_2) 90 c.setNoSpace.before(ALSBasicRelationTermAccess.rightParenthesisKeyword_8_2)
91 91
92 // Quantified expression 92 // Quantified expression
93 c.setNoSpace.before(ALSQuantifiedAccess.commaKeyword_0_4_0) 93 c.setNoSpace.before(ALSQuantifiedAccess.commaKeyword_0_4_0)