diff options
Diffstat (limited to 'Solvers')
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 | |||
3 | import hu.bme.mit.inf.dlsreasoner.alloy.reasoner.builder.Alloy2LogicMapper | 3 | import hu.bme.mit.inf.dlsreasoner.alloy.reasoner.builder.Alloy2LogicMapper |
4 | import hu.bme.mit.inf.dlsreasoner.alloy.reasoner.builder.AlloyHandler | 4 | import hu.bme.mit.inf.dlsreasoner.alloy.reasoner.builder.AlloyHandler |
5 | import hu.bme.mit.inf.dlsreasoner.alloy.reasoner.builder.AlloyModelInterpretation | 5 | import hu.bme.mit.inf.dlsreasoner.alloy.reasoner.builder.AlloyModelInterpretation |
6 | import hu.bme.mit.inf.dlsreasoner.alloy.reasoner.builder.AlloyModelInterpretation_TypeInterpretation_FilteredTypes | ||
6 | import hu.bme.mit.inf.dlsreasoner.alloy.reasoner.builder.Logic2AlloyLanguageMapper | 7 | import hu.bme.mit.inf.dlsreasoner.alloy.reasoner.builder.Logic2AlloyLanguageMapper |
7 | import hu.bme.mit.inf.dlsreasoner.alloy.reasoner.builder.Logic2AlloyLanguageMapperTrace | 8 | import hu.bme.mit.inf.dlsreasoner.alloy.reasoner.builder.Logic2AlloyLanguageMapperTrace |
9 | import hu.bme.mit.inf.dlsreasoner.alloy.reasoner.builder.Logic2AlloyLanguageMapper_TypeMapper_FilteredTypes | ||
8 | import hu.bme.mit.inf.dlsreasoner.alloy.reasoner.builder.MonitoredAlloySolution | 10 | import hu.bme.mit.inf.dlsreasoner.alloy.reasoner.builder.MonitoredAlloySolution |
9 | import hu.bme.mit.inf.dslreasoner.AlloyLanguageStandaloneSetupGenerated | 11 | import hu.bme.mit.inf.dslreasoner.AlloyLanguageStandaloneSetupGenerated |
10 | import hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage | 12 | import hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage |
@@ -14,9 +16,6 @@ import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicSolverConfiguration | |||
14 | import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.LogicProblem | 16 | import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.LogicProblem |
15 | import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.ModelResult | 17 | import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.ModelResult |
16 | import hu.bme.mit.inf.dslreasoner.workspace.ReasonerWorkspace | 18 | import hu.bme.mit.inf.dslreasoner.workspace.ReasonerWorkspace |
17 | import hu.bme.mit.inf.dlsreasoner.alloy.reasoner.builder.Logic2AlloyLanguageMapper_TypeMapper_FilteredTypes | ||
18 | import hu.bme.mit.inf.dlsreasoner.alloy.reasoner.builder.AlloyModelInterpretation_TypeInterpretation_FilteredTypes | ||
19 | import org.eclipse.emf.common.util.URI | ||
20 | 19 | ||
21 | class AlloySolver extends LogicReasoner{ | 20 | class 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 | |||
6 | class Alloy2LogicMapper { | 6 | class 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 | |||
21 | import java.util.ArrayList | 21 | import java.util.ArrayList |
22 | import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSDocument | 22 | import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSDocument |
23 | import hu.bme.mit.inf.dlsreasoner.alloy.reasoner.AlloySolverConfiguration | 23 | import hu.bme.mit.inf.dlsreasoner.alloy.reasoner.AlloySolverConfiguration |
24 | import com.google.common.util.concurrent.SimpleTimeLimiter | ||
25 | import java.util.concurrent.Callable | ||
26 | import java.util.concurrent.TimeUnit | ||
27 | import com.google.common.util.concurrent.UncheckedTimeoutException | ||
28 | import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicSolverConfiguration | ||
24 | 29 | ||
25 | class AlloySolverException extends Exception{ | 30 | class 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 | ||
42 | class AlloyHandler { | 46 | class 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 | ||
149 | class 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 | } |