aboutsummaryrefslogtreecommitdiffstats
path: root/Solvers
diff options
context:
space:
mode:
authorLibravatar OszkarSemerath <oszka@152.66.252.189>2017-07-02 23:34:27 +0200
committerLibravatar OszkarSemerath <oszka@152.66.252.189>2017-07-02 23:34:27 +0200
commitf00ce77fdc3a1417ddfd833f122b64ecef80d7d6 (patch)
tree2a26b61a43576f58ed4c35680bd47fa3c15df3d8 /Solvers
parentMultiple model with interpretations (diff)
downloadVIATRA-Generator-f00ce77fdc3a1417ddfd833f122b64ecef80d7d6.tar.gz
VIATRA-Generator-f00ce77fdc3a1417ddfd833f122b64ecef80d7d6.tar.zst
VIATRA-Generator-f00ce77fdc3a1417ddfd833f122b64ecef80d7d6.zip
Alloy implementation of multiple model generation
Diffstat (limited to 'Solvers')
-rw-r--r--Solvers/Alloy-Solver/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/src/hu/bme/mit/inf/dlsreasoner/alloy/reasoner/AlloySolver.xtend85
-rw-r--r--Solvers/Alloy-Solver/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/src/hu/bme/mit/inf/dlsreasoner/alloy/reasoner/builder/Alloy2LogicMapper.xtend50
-rw-r--r--Solvers/Alloy-Solver/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/src/hu/bme/mit/inf/dlsreasoner/alloy/reasoner/builder/AlloyHandler.xtend111
-rw-r--r--Solvers/Alloy-Solver/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/src/hu/bme/mit/inf/dlsreasoner/alloy/reasoner/builder/Logic2AlloyLanguageMapper.xtend2
-rw-r--r--Solvers/Alloy-Solver/hu.bme.mit.inf.dslreasoner.alloy.language/model/generated/AlloyLanguage.genmodel2
-rw-r--r--Solvers/Alloy-Solver/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/AlloyLanguage.xtextbinbin9814 -> 9769 bytes
-rw-r--r--Solvers/Alloy-Solver/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/serializer/AlloyLanguageSemanticSequencer.java2
-rw-r--r--Solvers/Alloy-Solver/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/serializer/AlloyLanguageSyntacticSequencer.java4
-rw-r--r--Solvers/Alloy-Solver/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/services/AlloyLanguageGrammarAccess.java86
9 files changed, 225 insertions, 117 deletions
diff --git a/Solvers/Alloy-Solver/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/src/hu/bme/mit/inf/dlsreasoner/alloy/reasoner/AlloySolver.xtend b/Solvers/Alloy-Solver/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/src/hu/bme/mit/inf/dlsreasoner/alloy/reasoner/AlloySolver.xtend
index 7dfc3161..d0c7d320 100644
--- a/Solvers/Alloy-Solver/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/src/hu/bme/mit/inf/dlsreasoner/alloy/reasoner/AlloySolver.xtend
+++ b/Solvers/Alloy-Solver/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/src/hu/bme/mit/inf/dlsreasoner/alloy/reasoner/AlloySolver.xtend
@@ -3,8 +3,10 @@ package hu.bme.mit.inf.dlsreasoner.alloy.reasoner
3import hu.bme.mit.inf.dlsreasoner.alloy.reasoner.builder.Alloy2LogicMapper 3import hu.bme.mit.inf.dlsreasoner.alloy.reasoner.builder.Alloy2LogicMapper
4import hu.bme.mit.inf.dlsreasoner.alloy.reasoner.builder.AlloyHandler 4import hu.bme.mit.inf.dlsreasoner.alloy.reasoner.builder.AlloyHandler
5import hu.bme.mit.inf.dlsreasoner.alloy.reasoner.builder.AlloyModelInterpretation 5import hu.bme.mit.inf.dlsreasoner.alloy.reasoner.builder.AlloyModelInterpretation
6import hu.bme.mit.inf.dlsreasoner.alloy.reasoner.builder.AlloyModelInterpretation_TypeInterpretation_FilteredTypes
6import hu.bme.mit.inf.dlsreasoner.alloy.reasoner.builder.Logic2AlloyLanguageMapper 7import hu.bme.mit.inf.dlsreasoner.alloy.reasoner.builder.Logic2AlloyLanguageMapper
7import hu.bme.mit.inf.dlsreasoner.alloy.reasoner.builder.Logic2AlloyLanguageMapperTrace 8import hu.bme.mit.inf.dlsreasoner.alloy.reasoner.builder.Logic2AlloyLanguageMapperTrace
9import hu.bme.mit.inf.dlsreasoner.alloy.reasoner.builder.Logic2AlloyLanguageMapper_TypeMapper_FilteredTypes
8import hu.bme.mit.inf.dlsreasoner.alloy.reasoner.builder.MonitoredAlloySolution 10import hu.bme.mit.inf.dlsreasoner.alloy.reasoner.builder.MonitoredAlloySolution
9import hu.bme.mit.inf.dslreasoner.AlloyLanguageStandaloneSetupGenerated 11import hu.bme.mit.inf.dslreasoner.AlloyLanguageStandaloneSetupGenerated
10import hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage 12import hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage
@@ -14,9 +16,6 @@ import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicSolverConfiguration
14import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.LogicProblem 16import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.LogicProblem
15import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.ModelResult 17import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.ModelResult
16import hu.bme.mit.inf.dslreasoner.workspace.ReasonerWorkspace 18import hu.bme.mit.inf.dslreasoner.workspace.ReasonerWorkspace
17import hu.bme.mit.inf.dlsreasoner.alloy.reasoner.builder.Logic2AlloyLanguageMapper_TypeMapper_FilteredTypes
18import hu.bme.mit.inf.dlsreasoner.alloy.reasoner.builder.AlloyModelInterpretation_TypeInterpretation_FilteredTypes
19import org.eclipse.emf.common.util.URI
20 19
21class AlloySolver extends LogicReasoner{ 20class AlloySolver extends LogicReasoner{
22 21
@@ -33,40 +32,56 @@ class AlloySolver extends LogicReasoner{
33 val fileName = "problem.als" 32 val fileName = "problem.als"
34 33
35 override solve(LogicProblem problem, LogicSolverConfiguration configuration, ReasonerWorkspace workspace) throws LogicReasonerException { 34 override solve(LogicProblem problem, LogicSolverConfiguration configuration, ReasonerWorkspace workspace) throws LogicReasonerException {
35 val alloyConfig = configuration.asConfig
36
37 // Start: Logic -> Alloy mapping
38 val transformationStart = System.currentTimeMillis
39 val result = forwardMapper.transformProblem(problem,alloyConfig)
40 val alloyProblem = result.output
41 val forwardTrace = result.trace
42
43 var String fileURI = null;
44 var String alloyCode = null;
45 if(alloyConfig.writeToFile) {
46 fileURI = workspace.writeModel(alloyProblem,fileName).toFileString
47 } else {
48 alloyCode = workspace.writeModelToString(alloyProblem,fileName)
49 }
50 val transformationTime = System.currentTimeMillis - transformationStart
51 // Finish: Logic -> Alloy mapping
52
53
54 // Start: Solving Alloy problem
55 val solverStart = System.currentTimeMillis
56 val result2 = handler.callSolver(alloyProblem,workspace,alloyConfig,fileURI,alloyCode)
57 val logicResult = backwardMapper.transformOutput(problem,configuration.solutionScope.numberOfRequiredSolution,result2,forwardTrace,transformationTime)
58 val solverFinish = System.currentTimeMillis-solverStart
59 // Finish: Solving Alloy problem
60
61 if(alloyConfig.writeToFile) workspace.deactivateModel(fileName)
62
63 return logicResult
64 }
65
66 def asConfig(LogicSolverConfiguration configuration) {
36 if(configuration instanceof AlloySolverConfiguration) { 67 if(configuration instanceof AlloySolverConfiguration) {
37 val transformationStart = System.currentTimeMillis 68 return configuration
38 val result = forwardMapper.transformProblem(problem,configuration) 69 } else {
39 val alloyProblem = result.output 70 throw new IllegalArgumentException('''The configuration have to be an «AlloySolverConfiguration.simpleName»!''')
40 71 }
41 /*val x = alloyProblem.eAllContents.filter(ALSFunctionCall).filter[it.referredDefinition == null].toList
42 println(x)*/
43 val forwardTrace = result.trace
44
45 var String fileURI = null;
46 var String alloyCode = null;
47 if(configuration.writeToFile) {
48 fileURI = workspace.writeModel(alloyProblem,fileName).toFileString
49 } else {
50 alloyCode = workspace.writeModelToString(alloyProblem,fileName)
51 }
52
53 //val alloyCode = workspace.readText(fileName)
54 //val FunctionWithTimeout<MonitoredAlloySolution> call = new FunctionWithTimeout[]
55
56 val transformationTime = System.currentTimeMillis - transformationStart
57 val result2 = handler.callSolver(alloyProblem,workspace,configuration,fileURI,alloyCode)
58 workspace.deactivateModel(fileName)
59 val logicResult = backwardMapper.transformOutput(problem,result2,forwardTrace,transformationTime)
60 return logicResult
61 } else throw new IllegalArgumentException('''The configuration have to be an «AlloySolverConfiguration.simpleName»!''')
62 } 72 }
63 73
64 override getInterpretation(ModelResult modelResult) { 74 override getInterpretations(ModelResult modelResult) {
65 return new AlloyModelInterpretation( 75 val answers = (modelResult.representation as MonitoredAlloySolution).aswers.map[key]
66 new AlloyModelInterpretation_TypeInterpretation_FilteredTypes, 76 val res = answers.map [
67 (modelResult.representation as MonitoredAlloySolution).solution, 77 new AlloyModelInterpretation(
68 forwardMapper, 78 new AlloyModelInterpretation_TypeInterpretation_FilteredTypes,
69 modelResult.trace as Logic2AlloyLanguageMapperTrace 79 it,
70 ); 80 forwardMapper,
81 modelResult.trace as Logic2AlloyLanguageMapperTrace
82 )
83 ]
84
85 return res
71 } 86 }
72} \ No newline at end of file 87} \ No newline at end of file
diff --git a/Solvers/Alloy-Solver/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/src/hu/bme/mit/inf/dlsreasoner/alloy/reasoner/builder/Alloy2LogicMapper.xtend b/Solvers/Alloy-Solver/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/src/hu/bme/mit/inf/dlsreasoner/alloy/reasoner/builder/Alloy2LogicMapper.xtend
index 637752b0..7db9e0ea 100644
--- a/Solvers/Alloy-Solver/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/src/hu/bme/mit/inf/dlsreasoner/alloy/reasoner/builder/Alloy2LogicMapper.xtend
+++ b/Solvers/Alloy-Solver/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/src/hu/bme/mit/inf/dlsreasoner/alloy/reasoner/builder/Alloy2LogicMapper.xtend
@@ -6,28 +6,30 @@ import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.LogicresultFactory
6class Alloy2LogicMapper { 6class Alloy2LogicMapper {
7 val extension LogicresultFactory resultFactory = LogicresultFactory.eINSTANCE 7 val extension LogicresultFactory resultFactory = LogicresultFactory.eINSTANCE
8 8
9 public def transformOutput(LogicProblem problem, MonitoredAlloySolution solution, Logic2AlloyLanguageMapperTrace trace, long transformationTime) { 9 public def transformOutput(LogicProblem problem, int requiredNumberOfSolution, MonitoredAlloySolution monitoredAlloySolution, Logic2AlloyLanguageMapperTrace trace, long transformationTime) {
10 if(solution == null) { 10 val models = monitoredAlloySolution.aswers.map[it.key].toList
11
12 if(monitoredAlloySolution.finishedBeforeTimeout) {
11 return createInsuficientResourcesResult => [ 13 return createInsuficientResourcesResult => [
12 it.problem = problem 14 it.problem = problem
13 it.statistics = transformStatistics(solution,transformationTime) 15 it.representation += models
16 it.trace = trace
17 it.statistics = transformStatistics(monitoredAlloySolution,transformationTime)
14 ] 18 ]
15 } else { 19 } else {
16 val logicResult = solution.solution 20 if(models.last.satisfiable || requiredNumberOfSolution == -1) {
17 if(logicResult.satisfiable) {
18 return createModelResult => [ 21 return createModelResult => [
19 it.problem = problem 22 it.problem = problem
20 it.representation += solution 23 it.representation += models
21 it.maxInteger = logicResult.max
22 it.minInteger = logicResult.min
23 it.trace = trace 24 it.trace = trace
24 it.statistics = transformStatistics(solution,transformationTime) 25 it.statistics = transformStatistics(monitoredAlloySolution,transformationTime)
25 ] 26 ]
26 } else { 27 } else {
27 return createInconsistencyResult => [ 28 return createInconsistencyResult => [
28 it.problem = problem 29 it.problem = problem
29 //trace? 30 it.representation += models
30 it.statistics = transformStatistics(solution,transformationTime) 31 it.trace = trace
32 it.statistics = transformStatistics(monitoredAlloySolution,transformationTime)
31 ] 33 ]
32 } 34 }
33 } 35 }
@@ -36,13 +38,29 @@ class Alloy2LogicMapper {
36 def transformStatistics(MonitoredAlloySolution solution, long transformationTime) { 38 def transformStatistics(MonitoredAlloySolution solution, long transformationTime) {
37 createStatistics => [ 39 createStatistics => [
38 it.transformationTime = transformationTime as int 40 it.transformationTime = transformationTime as int
39 if(solution != null) { 41 for(solutionIndex : 0..<solution.aswers.size) {
40 it.solverTime = solution.runtimeTime as int 42 val solutionTime = solution.aswers.get(solutionIndex).value
41 it.entries += LogicresultFactory.eINSTANCE.createIntStatisticEntry => [ 43 it.entries+= createIntStatisticEntry => [
42 it.name = "KoodkodToCNFTransformationTime" 44 it.name = '''Answer«solutionIndex»Time'''
43 it.value = solution.getKodkodTime as int 45 it.value = solutionTime.intValue
44 ] 46 ]
45 } 47 }
48 it.entries+= createIntStatisticEntry => [
49 it.name = "Alloy2KodKodTransformationTime"
50 it.value = solution.kodkodTime as int
51 ]
52 it.entries+= createIntStatisticEntry => [
53 it.name = "Alloy2KodKodTransformationTime"
54 it.value = solution.kodkodTime as int
55 ]
56 it.entries+= createStringStatisticEntry => [
57 it.name = "warnings"
58 it.value = '''[«FOR warning : solution.warnings SEPARATOR ","»«warning»«ENDFOR»]'''
59 ]
46 ] 60 ]
47 } 61 }
62
63 def sum(Iterable<Long> ints) {
64 ints.reduce[p1, p2|p1+p2]
65 }
48} \ No newline at end of file 66} \ No newline at end of file
diff --git a/Solvers/Alloy-Solver/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/src/hu/bme/mit/inf/dlsreasoner/alloy/reasoner/builder/AlloyHandler.xtend b/Solvers/Alloy-Solver/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/src/hu/bme/mit/inf/dlsreasoner/alloy/reasoner/builder/AlloyHandler.xtend
index 6bac4130..17220776 100644
--- a/Solvers/Alloy-Solver/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/src/hu/bme/mit/inf/dlsreasoner/alloy/reasoner/builder/AlloyHandler.xtend
+++ b/Solvers/Alloy-Solver/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/src/hu/bme/mit/inf/dlsreasoner/alloy/reasoner/builder/AlloyHandler.xtend
@@ -21,6 +21,11 @@ import org.eclipse.emf.common.CommonPlugin
21import java.util.ArrayList 21import java.util.ArrayList
22import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSDocument 22import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSDocument
23import hu.bme.mit.inf.dlsreasoner.alloy.reasoner.AlloySolverConfiguration 23import hu.bme.mit.inf.dlsreasoner.alloy.reasoner.AlloySolverConfiguration
24import com.google.common.util.concurrent.SimpleTimeLimiter
25import java.util.concurrent.Callable
26import java.util.concurrent.TimeUnit
27import com.google.common.util.concurrent.UncheckedTimeoutException
28import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicSolverConfiguration
24 29
25class AlloySolverException extends Exception{ 30class AlloySolverException extends Exception{
26 new(String s) { super(s) } 31 new(String s) { super(s) }
@@ -34,9 +39,8 @@ class AlloySolverException extends Exception{
34 List<String> warnings 39 List<String> warnings
35 List<String> debugs 40 List<String> debugs
36 long kodkodTime 41 long kodkodTime
37 long runtimeTime 42 val List<Pair<A4Solution, Long>> aswers
38 43 val boolean finishedBeforeTimeout
39 A4Solution solution
40} 44}
41 45
42class AlloyHandler { 46class AlloyHandler {
@@ -63,6 +67,7 @@ class AlloyHandler {
63 if(configuration.solver.externalSolver) { 67 if(configuration.solver.externalSolver) {
64 it.solverDirectory = configuration.solverPath 68 it.solverDirectory = configuration.solverPath
65 } 69 }
70 //it.inferPartialInstance
66 it.tempDirectory = CommonPlugin.resolve(workspace.workspaceURI).toFileString 71 it.tempDirectory = CommonPlugin.resolve(workspace.workspaceURI).toFileString
67 ] 72 ]
68 73
@@ -70,8 +75,8 @@ class AlloyHandler {
70 var Command command = null; 75 var Command command = null;
71 var CompModule compModule = null 76 var CompModule compModule = null
72 77
78 // Start: Alloy -> Kodkod
73 val kodkodTransformStart = System.currentTimeMillis(); 79 val kodkodTransformStart = System.currentTimeMillis();
74
75 try { 80 try {
76 if(configuration.writeToFile) { 81 if(configuration.writeToFile) {
77 compModule = CompUtil.parseEverything_fromFile(reporter,null,path) 82 compModule = CompUtil.parseEverything_fromFile(reporter,null,path)
@@ -85,23 +90,26 @@ class AlloyHandler {
85 throw new AlloySolverException(e.message,warnings,e) 90 throw new AlloySolverException(e.message,warnings,e)
86 } 91 }
87 val kodkodTransformFinish = System.currentTimeMillis - kodkodTransformStart 92 val kodkodTransformFinish = System.currentTimeMillis - kodkodTransformStart
93 // Finish: Alloy -> Kodkod
88 94
89 //Execute 95 val limiter = new SimpleTimeLimiter
90 var A4Solution answer = null; 96 val callable = new AlloyCallerWithTimeout(warnings,debugs,reporter,options,command,compModule,configuration.solutionScope.numberOfRequiredSolution)
91 try { 97 var List<Pair<A4Solution, Long>> answers
92 answer = TranslateAlloyToKodkod.execute_command(reporter,compModule.allSigs,command,options) 98 var boolean finished
93 }catch(Exception e) { 99 if(configuration.runtimeLimit == LogicSolverConfiguration::Unlimited) {
94 warnings +=e.message 100 answers = callable.call
95 } 101 finished = true
96
97 var long runtimeFromAnswer;
98 if(runtime.empty) {
99 runtimeFromAnswer = System.currentTimeMillis - (kodkodTransformStart + kodkodTransformFinish)
100 } else { 102 } else {
101 runtimeFromAnswer = runtime.head 103 try{
104 answers = limiter.callWithTimeout(callable,configuration.runtimeLimit,TimeUnit.SECONDS,true)
105 finished = true
106 } catch (UncheckedTimeoutException e) {
107 answers = callable.partialAnswers
108 finished = false
109 }
102 } 110 }
103 111
104 return new MonitoredAlloySolution(warnings,debugs,kodkodTransformFinish,runtimeFromAnswer,answer) 112 new MonitoredAlloySolution(warnings,debugs,kodkodTransformFinish,answers,finished)
105 } 113 }
106 114
107 val static Map<SolverConfiguration, SatSolver> previousSolverConfigurations = new HashMap 115 val static Map<SolverConfiguration, SatSolver> previousSolverConfigurations = new HashMap
@@ -138,6 +146,73 @@ class AlloyHandler {
138 } 146 }
139} 147}
140 148
149class AlloyCallerWithTimeout implements Callable<List<Pair<A4Solution,Long>>>{
150
151 val List<String> warnings
152 val List<String> debugs
153 val A4Reporter reporter
154 val A4Options options
155
156 val Command command
157 val CompModule compModule
158 val int numberOfRequiredSolution
159
160 val List<Pair<A4Solution,Long>> answers = new LinkedList()
161
162 new(List<String> warnings,
163 List<String> debugs,
164 A4Reporter reporter,
165 A4Options options,
166 Command command,
167 CompModule compModule,
168 int numberOfRequiredSolution)
169 {
170 this.warnings = warnings
171 this.debugs = debugs
172 this.reporter = reporter
173 this.options = options
174 this.command = command
175 this.compModule = compModule
176 this.numberOfRequiredSolution = numberOfRequiredSolution
177 }
178
179 override call() throws Exception {
180 val startTime = System.currentTimeMillis
181
182 // Start: Execute
183 var A4Solution lastAnswer = null
184 try {
185 do{
186 if(lastAnswer == null) {
187 lastAnswer = TranslateAlloyToKodkod.execute_command(reporter,compModule.allSigs,command,options)
188 } else {
189 lastAnswer = lastAnswer.next
190 }
191
192 val runtime = System.currentTimeMillis -startTime
193 synchronized(this) {
194 answers += lastAnswer->runtime
195 }
196 println( answers.size )
197 } while(lastAnswer.satisfiable != false && hasEnoughSolution(answers))
198
199 }catch(Exception e) {
200 warnings +=e.message
201 }
202 // Finish: execute
203 return answers
204 }
205
206 def hasEnoughSolution(List<?> answers) {
207 if(numberOfRequiredSolution < 0) return false
208 else return answers.size < numberOfRequiredSolution
209 }
210
211 public def getPartialAnswers() {
212 return answers
213 }
214}
215
141@Data class SolverConfiguration { 216@Data class SolverConfiguration {
142 AlloyBackendSolver backedSolver 217 AlloyBackendSolver backedSolver
143 String path 218 String path
diff --git a/Solvers/Alloy-Solver/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/src/hu/bme/mit/inf/dlsreasoner/alloy/reasoner/builder/Logic2AlloyLanguageMapper.xtend b/Solvers/Alloy-Solver/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/src/hu/bme/mit/inf/dlsreasoner/alloy/reasoner/builder/Logic2AlloyLanguageMapper.xtend
index 23b9027f..65fdcfdf 100644
--- a/Solvers/Alloy-Solver/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/src/hu/bme/mit/inf/dlsreasoner/alloy/reasoner/builder/Logic2AlloyLanguageMapper.xtend
+++ b/Solvers/Alloy-Solver/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/src/hu/bme/mit/inf/dlsreasoner/alloy/reasoner/builder/Logic2AlloyLanguageMapper.xtend
@@ -277,7 +277,7 @@ class Logic2AlloyLanguageMapper {
277 it.typeScopes+= createALSSigScope => [ 277 it.typeScopes+= createALSSigScope => [
278 it.type= typeMapper.getUndefinedSupertype(trace) 278 it.type= typeMapper.getUndefinedSupertype(trace)
279 it.number = typeMapper.getUndefinedSupertypeScope(config.typeScopes.maxNewElements,trace) 279 it.number = typeMapper.getUndefinedSupertypeScope(config.typeScopes.maxNewElements,trace)
280 //it.exactly = (config.typeScopes.maxElements == config.typeScopes.minElements) 280 it.exactly = (config.typeScopes.maxNewElements == config.typeScopes.minNewElements)
281 ] 281 ]
282 if(config.typeScopes.maxIntScope == LogicSolverConfiguration::Unlimited) throw new UnsupportedOperationException( 282 if(config.typeScopes.maxIntScope == LogicSolverConfiguration::Unlimited) throw new UnsupportedOperationException(
283 '''An integer scope have to be specified for Alloy!''') 283 '''An integer scope have to be specified for Alloy!''')
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 dd1d46d2..97c59724 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.11"> 8 editorPluginID="hu.bme.mit.inf.dslreasoner.alloy.language.editor" runtimeVersion="2.12">
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">
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 a9ec3da4..a1410bb7 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/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 b46c4575..9e973316 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
@@ -522,7 +522,7 @@ public class AlloyLanguageSemanticSequencer extends AbstractDelegatingSemanticSe
522 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, AlloyLanguagePackage.Literals.ALS_REFERENCE__REFERRED)); 522 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, AlloyLanguagePackage.Literals.ALS_REFERENCE__REFERRED));
523 } 523 }
524 SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); 524 SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
525 feeder.accept(grammarAccess.getALSBasicRelationTermAccess().getReferredALSRelationDeclarationIDTerminalRuleCall_4_1_0_1(), semanticObject.eGet(AlloyLanguagePackage.Literals.ALS_REFERENCE__REFERRED, false)); 525 feeder.accept(grammarAccess.getALSBasicRelationTermAccess().getReferredALSRelationDeclarationIDTerminalRuleCall_4_1_0_1(), semanticObject.getReferred());
526 feeder.finish(); 526 feeder.finish();
527 } 527 }
528 528
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 4c1eaf02..cb2da160 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
@@ -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
@@ -168,7 +168,7 @@ public class AlloyLanguageSyntacticSequencer extends AbstractSyntacticSequencer
168 168
169 /** 169 /**
170 * Ambiguous syntax: 170 * Ambiguous syntax:
171 * 'iff' | '<=>' 171 * '<=>' | 'iff'
172 * 172 *
173 * This ambiguous syntax occurs at: 173 * This ambiguous syntax occurs at:
174 * {ALSIff.leftOperand=} (ambiguity) rightOperand=ALSImpl 174 * {ALSIff.leftOperand=} (ambiguity) rightOperand=ALSImpl
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 1ccf8905..08dd554d 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]
@@ -1739,7 +1739,7 @@ public class AlloyLanguageGrammarAccess extends AbstractGrammarElementFinder {
1739 //ALSBasicRelationTerm ALSTerm: 1739 //ALSBasicRelationTerm ALSTerm:
1740 // {ALSNone} 'none' | {ALSIden} 'iden' | {ALSUniv} 'univ' | {ALSInt} 'Int' | {ALSReference} 1740 // {ALSNone} 'none' | {ALSIden} 'iden' | {ALSUniv} 'univ' | {ALSInt} 'Int' | {ALSReference}
1741 // referred=[ALSRelationDeclaration] | {ALSNumberLiteral} value=INT | 1741 // referred=[ALSRelationDeclaration] | {ALSNumberLiteral} value=INT |
1742 // '(' ALSTerm ')'; 1742 // '(' ALSTerm ')'
1743 @Override public ParserRule getRule() { return rule; } 1743 @Override public ParserRule getRule() { return rule; }
1744 1744
1745 //{ALSNone} 'none' | {ALSIden} 'iden' | {ALSUniv} 'univ' | {ALSInt} 'Int' | {ALSReference} 1745 //{ALSNone} 'none' | {ALSIden} 'iden' | {ALSUniv} 'univ' | {ALSInt} 'Int' | {ALSReference}
@@ -2210,7 +2210,7 @@ public class AlloyLanguageGrammarAccess extends AbstractGrammarElementFinder {
2210 return getALSDocumentAccess().getRule(); 2210 return getALSDocumentAccess().getRule();
2211 } 2211 }
2212 2212
2213 //@ Override terminal ID: 2213 //terminal ID:
2214 // ('a'..'z' | 'A'..'Z' | '_') ('a'..'z' | 'A'..'Z' | '_' | "'" | '"' | '0'..'9')*; 2214 // ('a'..'z' | 'A'..'Z' | '_') ('a'..'z' | 'A'..'Z' | '_' | "'" | '"' | '0'..'9')*;
2215 public TerminalRule getIDRule() { 2215 public TerminalRule getIDRule() {
2216 return tID; 2216 return tID;
@@ -2374,7 +2374,7 @@ public class AlloyLanguageGrammarAccess extends AbstractGrammarElementFinder {
2374 //ALSQuantified ALSTerm: 2374 //ALSQuantified ALSTerm:
2375 // {ALSQuantifiedEx} type=ALSMultiplicity 2375 // {ALSQuantifiedEx} type=ALSMultiplicity
2376 // disj?='disj'? variables+=ALSVariableDeclaration (',' variables+=ALSVariableDeclaration)* '{' expression=ALSTerm '}' | 2376 // disj?='disj'? variables+=ALSVariableDeclaration (',' variables+=ALSVariableDeclaration)* '{' expression=ALSTerm '}' |
2377 // ALSOr; 2377 // ALSOr
2378 public ALSQuantifiedElements getALSQuantifiedAccess() { 2378 public ALSQuantifiedElements getALSQuantifiedAccess() {
2379 return pALSQuantified; 2379 return pALSQuantified;
2380 } 2380 }
@@ -2384,7 +2384,7 @@ public class AlloyLanguageGrammarAccess extends AbstractGrammarElementFinder {
2384 } 2384 }
2385 2385
2386 //ALSOr ALSTerm: 2386 //ALSOr ALSTerm:
2387 // ALSIff ({ALSOr.leftOperand=current} ("||" | "or") rightOperand=ALSIff)?; 2387 // ALSIff ({ALSOr.leftOperand=current} ("||" | "or") rightOperand=ALSIff)?
2388 public ALSOrElements getALSOrAccess() { 2388 public ALSOrElements getALSOrAccess() {
2389 return pALSOr; 2389 return pALSOr;
2390 } 2390 }
@@ -2394,7 +2394,7 @@ public class AlloyLanguageGrammarAccess extends AbstractGrammarElementFinder {
2394 } 2394 }
2395 2395
2396 //ALSIff ALSTerm: 2396 //ALSIff ALSTerm:
2397 // ALSImpl ({ALSIff.leftOperand=current} ("<=>" | "iff") rightOperand=ALSImpl)?; 2397 // ALSImpl ({ALSIff.leftOperand=current} ("<=>" | "iff") rightOperand=ALSImpl)?
2398 public ALSIffElements getALSIffAccess() { 2398 public ALSIffElements getALSIffAccess() {
2399 return pALSIff; 2399 return pALSIff;
2400 } 2400 }
@@ -2404,7 +2404,7 @@ public class AlloyLanguageGrammarAccess extends AbstractGrammarElementFinder {
2404 } 2404 }
2405 2405
2406 //ALSImpl ALSTerm: 2406 //ALSImpl ALSTerm:
2407 // ALSAnd ({ALSImpl.leftOperand=current} ("=>" | "implies") rightOperand=ALSAnd ('else' elseOperand=ALSAnd)?)?; 2407 // ALSAnd ({ALSImpl.leftOperand=current} ("=>" | "implies") rightOperand=ALSAnd ('else' elseOperand=ALSAnd)?)?
2408 public ALSImplElements getALSImplAccess() { 2408 public ALSImplElements getALSImplAccess() {
2409 return pALSImpl; 2409 return pALSImpl;
2410 } 2410 }
@@ -2414,7 +2414,7 @@ public class AlloyLanguageGrammarAccess extends AbstractGrammarElementFinder {
2414 } 2414 }
2415 2415
2416 //ALSAnd ALSTerm: 2416 //ALSAnd ALSTerm:
2417 // ALSComparison ({ALSAnd.leftOperand=current} ("&&" | "and") rightOperand=ALSComparison)?; 2417 // ALSComparison ({ALSAnd.leftOperand=current} ("&&" | "and") rightOperand=ALSComparison)?
2418 public ALSAndElements getALSAndAccess() { 2418 public ALSAndElements getALSAndAccess() {
2419 return pALSAnd; 2419 return pALSAnd;
2420 } 2420 }
@@ -2426,7 +2426,7 @@ public class AlloyLanguageGrammarAccess extends AbstractGrammarElementFinder {
2426 //ALSComparison ALSTerm: 2426 //ALSComparison ALSTerm:
2427 // ALSOverride (({ALSEquals.leftOperand=current} "=" | {ALSNotEquals.leftOperand=current} "!=" | 2427 // ALSOverride (({ALSEquals.leftOperand=current} "=" | {ALSNotEquals.leftOperand=current} "!=" |
2428 // {ALSSubset.leftOperand=current} "in" | {ALSLess.leftOperand=current} ">" | {ALSLeq.leftOperand=current} ">=" | 2428 // {ALSSubset.leftOperand=current} "in" | {ALSLess.leftOperand=current} ">" | {ALSLeq.leftOperand=current} ">=" |
2429 // {ALSMore.leftOperand=current} "<" | {ALSMeq.leftOperand=current} "<=") rightOperand=ALSOverride)?; 2429 // {ALSMore.leftOperand=current} "<" | {ALSMeq.leftOperand=current} "<=") rightOperand=ALSOverride)?
2430 public ALSComparisonElements getALSComparisonAccess() { 2430 public ALSComparisonElements getALSComparisonAccess() {
2431 return pALSComparison; 2431 return pALSComparison;
2432 } 2432 }
@@ -2436,7 +2436,7 @@ public class AlloyLanguageGrammarAccess extends AbstractGrammarElementFinder {
2436 } 2436 }
2437 2437
2438 //ALSOverride ALSTerm: 2438 //ALSOverride ALSTerm:
2439 // ALSRangeRestrictionRight ({ALSOverride.leftOperand=current} '++' rightOperand=ALSRangeRestrictionRight)?; 2439 // ALSRangeRestrictionRight ({ALSOverride.leftOperand=current} '++' rightOperand=ALSRangeRestrictionRight)?
2440 public ALSOverrideElements getALSOverrideAccess() { 2440 public ALSOverrideElements getALSOverrideAccess() {
2441 return pALSOverride; 2441 return pALSOverride;
2442 } 2442 }
@@ -2446,7 +2446,7 @@ public class AlloyLanguageGrammarAccess extends AbstractGrammarElementFinder {
2446 } 2446 }
2447 2447
2448 //ALSRangeRestrictionRight ALSTerm: 2448 //ALSRangeRestrictionRight ALSTerm:
2449 // ALSRangeRestrictionLeft ({ALSRangeRestrictionRight.relation=current} ':>' filter=ALSRangeRestrictionLeft)?; 2449 // ALSRangeRestrictionLeft ({ALSRangeRestrictionRight.relation=current} ':>' filter=ALSRangeRestrictionLeft)?
2450 public ALSRangeRestrictionRightElements getALSRangeRestrictionRightAccess() { 2450 public ALSRangeRestrictionRightElements getALSRangeRestrictionRightAccess() {
2451 return pALSRangeRestrictionRight; 2451 return pALSRangeRestrictionRight;
2452 } 2452 }
@@ -2456,7 +2456,7 @@ public class AlloyLanguageGrammarAccess extends AbstractGrammarElementFinder {
2456 } 2456 }
2457 2457
2458 //ALSRangeRestrictionLeft ALSTerm: 2458 //ALSRangeRestrictionLeft ALSTerm:
2459 // ALSJoin ({ALSRangeRestrictionLeft.filter=current} '<:' relation=ALSJoin)?; 2459 // ALSJoin ({ALSRangeRestrictionLeft.filter=current} '<:' relation=ALSJoin)?
2460 public ALSRangeRestrictionLeftElements getALSRangeRestrictionLeftAccess() { 2460 public ALSRangeRestrictionLeftElements getALSRangeRestrictionLeftAccess() {
2461 return pALSRangeRestrictionLeft; 2461 return pALSRangeRestrictionLeft;
2462 } 2462 }
@@ -2466,7 +2466,7 @@ public class AlloyLanguageGrammarAccess extends AbstractGrammarElementFinder {
2466 } 2466 }
2467 2467
2468 //ALSJoin ALSTerm: 2468 //ALSJoin ALSTerm:
2469 // ALSMinus ({ALSJoin.leftOperand=current} '.' rightOperand=ALSMinus)*; 2469 // ALSMinus ({ALSJoin.leftOperand=current} '.' rightOperand=ALSMinus)*
2470 public ALSJoinElements getALSJoinAccess() { 2470 public ALSJoinElements getALSJoinAccess() {
2471 return pALSJoin; 2471 return pALSJoin;
2472 } 2472 }
@@ -2476,7 +2476,7 @@ public class AlloyLanguageGrammarAccess extends AbstractGrammarElementFinder {
2476 } 2476 }
2477 2477
2478 //ALSMinus ALSTerm: 2478 //ALSMinus ALSTerm:
2479 // ALSPlus ({ALSMinus.leftOperand=current} '-' rightOperand=ALSPlus)*; 2479 // ALSPlus ({ALSMinus.leftOperand=current} '-' rightOperand=ALSPlus)*
2480 public ALSMinusElements getALSMinusAccess() { 2480 public ALSMinusElements getALSMinusAccess() {
2481 return pALSMinus; 2481 return pALSMinus;
2482 } 2482 }
@@ -2486,7 +2486,7 @@ public class AlloyLanguageGrammarAccess extends AbstractGrammarElementFinder {
2486 } 2486 }
2487 2487
2488 //ALSPlus ALSTerm: 2488 //ALSPlus ALSTerm:
2489 // ALSIntersection ({ALSPlus.leftOperand=current} '+' rightOperand=ALSIntersection)*; 2489 // ALSIntersection ({ALSPlus.leftOperand=current} '+' rightOperand=ALSIntersection)*
2490 public ALSPlusElements getALSPlusAccess() { 2490 public ALSPlusElements getALSPlusAccess() {
2491 return pALSPlus; 2491 return pALSPlus;
2492 } 2492 }
@@ -2496,7 +2496,7 @@ public class AlloyLanguageGrammarAccess extends AbstractGrammarElementFinder {
2496 } 2496 }
2497 2497
2498 //ALSIntersection ALSTerm: 2498 //ALSIntersection ALSTerm:
2499 // ALSDirectProduct ({ALSIntersection.leftOperand=current} '&' rightOperand=ALSDirectProduct)*; 2499 // ALSDirectProduct ({ALSIntersection.leftOperand=current} '&' rightOperand=ALSDirectProduct)*
2500 public ALSIntersectionElements getALSIntersectionAccess() { 2500 public ALSIntersectionElements getALSIntersectionAccess() {
2501 return pALSIntersection; 2501 return pALSIntersection;
2502 } 2502 }
@@ -2510,7 +2510,7 @@ public class AlloyLanguageGrammarAccess extends AbstractGrammarElementFinder {
2510 // ALSPreficed ({ALSDirectProduct.leftOperand=current} leftMultiplicit=ALSMultiplicity? 2510 // ALSPreficed ({ALSDirectProduct.leftOperand=current} leftMultiplicit=ALSMultiplicity?
2511 // '->' 2511 // '->'
2512 // rightMultiplicit=ALSMultiplicity? 2512 // rightMultiplicit=ALSMultiplicity?
2513 // rightOperand=ALSPreficed)?; 2513 // rightOperand=ALSPreficed)?
2514 public ALSDirectProductElements getALSDirectProductAccess() { 2514 public ALSDirectProductElements getALSDirectProductAccess() {
2515 return pALSDirectProduct; 2515 return pALSDirectProduct;
2516 } 2516 }
@@ -2526,7 +2526,7 @@ public class AlloyLanguageGrammarAccess extends AbstractGrammarElementFinder {
2526 // operand=ALSBasicRelationTerm | {ALSSum} 'sum' variables+=ALSVariableDeclaration (',' 2526 // operand=ALSBasicRelationTerm | {ALSSum} 'sum' variables+=ALSVariableDeclaration (','
2527 // variables+=ALSVariableDeclaration)* '{' expression=ALSTerm '}' | {ALSFunctionCall} 2527 // variables+=ALSVariableDeclaration)* '{' expression=ALSTerm '}' | {ALSFunctionCall}
2528 // (referredDefinition=[ALSDefinition] | referredNumericOperator=ALSNumericOperator) '[' params+=ALSTerm (',' 2528 // (referredDefinition=[ALSDefinition] | referredNumericOperator=ALSNumericOperator) '[' params+=ALSTerm (','
2529 // params+=ALSTerm)* ']' | ALSBasicRelationTerm; 2529 // params+=ALSTerm)* ']' | ALSBasicRelationTerm
2530 public ALSPreficedElements getALSPreficedAccess() { 2530 public ALSPreficedElements getALSPreficedAccess() {
2531 return pALSPreficed; 2531 return pALSPreficed;
2532 } 2532 }
@@ -2559,7 +2559,7 @@ public class AlloyLanguageGrammarAccess extends AbstractGrammarElementFinder {
2559 //ALSBasicRelationTerm ALSTerm: 2559 //ALSBasicRelationTerm ALSTerm:
2560 // {ALSNone} 'none' | {ALSIden} 'iden' | {ALSUniv} 'univ' | {ALSInt} 'Int' | {ALSReference} 2560 // {ALSNone} 'none' | {ALSIden} 'iden' | {ALSUniv} 'univ' | {ALSInt} 'Int' | {ALSReference}
2561 // referred=[ALSRelationDeclaration] | {ALSNumberLiteral} value=INT | 2561 // referred=[ALSRelationDeclaration] | {ALSNumberLiteral} value=INT |
2562 // '(' ALSTerm ')'; 2562 // '(' ALSTerm ')'
2563 public ALSBasicRelationTermElements getALSBasicRelationTermAccess() { 2563 public ALSBasicRelationTermElements getALSBasicRelationTermAccess() {
2564 return pALSBasicRelationTerm; 2564 return pALSBasicRelationTerm;
2565 } 2565 }
@@ -2624,7 +2624,7 @@ public class AlloyLanguageGrammarAccess extends AbstractGrammarElementFinder {
2624 } 2624 }
2625 2625
2626 //terminal ML_COMMENT: 2626 //terminal ML_COMMENT:
2627 // '/*'->'*/'; 2627 // '/ *'->'* /';
2628 public TerminalRule getML_COMMENTRule() { 2628 public TerminalRule getML_COMMENTRule() {
2629 return gaTerminals.getML_COMMENTRule(); 2629 return gaTerminals.getML_COMMENTRule();
2630 } 2630 }