aboutsummaryrefslogtreecommitdiffstats
path: root/Tests/MODELS2020-CaseStudies/case.study.pledge.run/xtend-gen/run/GenerateFromConfig.java
diff options
context:
space:
mode:
authorLibravatar ArenBabikian <aren.babikian@mail.mcgill.ca>2020-05-10 20:56:55 -0400
committerLibravatar ArenBabikian <aren.babikian@mail.mcgill.ca>2020-05-10 20:56:55 -0400
commitfb99d0d2a8ddcd7bad3b1f59152328e76ae8edb6 (patch)
tree4ee9262ebb91eb6bf8a84af0f771d6c4366c7b0d /Tests/MODELS2020-CaseStudies/case.study.pledge.run/xtend-gen/run/GenerateFromConfig.java
parentSatelite case study update for Models-Attribute paper (diff)
downloadVIATRA-Generator-fb99d0d2a8ddcd7bad3b1f59152328e76ae8edb6.tar.gz
VIATRA-Generator-fb99d0d2a8ddcd7bad3b1f59152328e76ae8edb6.tar.zst
VIATRA-Generator-fb99d0d2a8ddcd7bad3b1f59152328e76ae8edb6.zip
Fix PLEDGE Case Study File
Diffstat (limited to 'Tests/MODELS2020-CaseStudies/case.study.pledge.run/xtend-gen/run/GenerateFromConfig.java')
-rw-r--r--Tests/MODELS2020-CaseStudies/case.study.pledge.run/xtend-gen/run/GenerateFromConfig.java396
1 files changed, 396 insertions, 0 deletions
diff --git a/Tests/MODELS2020-CaseStudies/case.study.pledge.run/xtend-gen/run/GenerateFromConfig.java b/Tests/MODELS2020-CaseStudies/case.study.pledge.run/xtend-gen/run/GenerateFromConfig.java
new file mode 100644
index 00000000..3015d4dd
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/case.study.pledge.run/xtend-gen/run/GenerateFromConfig.java
@@ -0,0 +1,396 @@
1package run;
2
3import com.google.common.base.Objects;
4import com.google.common.collect.Iterables;
5import hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.Command;
6import hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.Config;
7import hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.ConfigEntry;
8import hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.ConfigSpecification;
9import hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.ConfigurationScript;
10import hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.File;
11import hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.FileSpecification;
12import hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.GenerationTask;
13import hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.IntervallNumber;
14import hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.NumberSpecification;
15import hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.ObjectTypeScope;
16import hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.RuntimeEntry;
17import hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.Scope;
18import hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.ScopeSpecification;
19import hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.TypeScope;
20import hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor;
21import hu.bme.mit.inf.dslreasoner.application.execution.StandaloneScriptExecutor;
22import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic;
23import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic_Trace;
24import hu.bme.mit.inf.dslreasoner.ecore2logic.EcoreMetamodelDescriptor;
25import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicModelInterpretation;
26import hu.bme.mit.inf.dslreasoner.logic.model.builder.TracedOutput;
27import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Type;
28import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.LogicProblem;
29import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.LogicResult;
30import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.ModelResult;
31import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.Statistics;
32import hu.bme.mit.inf.dslreasoner.logic2ecore.Logic2Ecore;
33import hu.bme.mit.inf.dslreasoner.viatra2logic.ViatraQuerySetDescriptor;
34import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.partialinterpretation.PartialInterpretation;
35import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.visualisation.PartialInterpretation2Gml;
36import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.visualisation.PartialInterpretationVisualisation;
37import hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner.ViatraReasoner;
38import hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner.ViatraReasonerConfiguration;
39import hu.bme.mit.inf.dslreasoner.visualisation.pi2graphviz.GraphvizVisualiser;
40import hu.bme.mit.inf.dslreasoner.workspace.FileSystemWorkspace;
41import hu.bme.mit.inf.dslreasoner.workspace.ReasonerWorkspace;
42import java.io.PrintWriter;
43import java.math.BigDecimal;
44import java.text.SimpleDateFormat;
45import java.util.ArrayList;
46import java.util.Collections;
47import java.util.Date;
48import java.util.HashMap;
49import java.util.List;
50import java.util.Map;
51import java.util.Set;
52import org.eclipse.core.runtime.NullProgressMonitor;
53import org.eclipse.emf.common.util.EList;
54import org.eclipse.emf.common.util.URI;
55import org.eclipse.emf.ecore.EAttribute;
56import org.eclipse.emf.ecore.EClass;
57import org.eclipse.emf.ecore.EEnum;
58import org.eclipse.emf.ecore.EEnumLiteral;
59import org.eclipse.emf.ecore.EObject;
60import org.eclipse.emf.ecore.EPackage;
61import org.eclipse.emf.ecore.EReference;
62import org.eclipse.emf.ecore.EStructuralFeature;
63import org.eclipse.emf.ecore.resource.Resource;
64import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl;
65import org.eclipse.viatra.query.runtime.api.IQueryGroup;
66import org.eclipse.viatra.query.runtime.api.IQuerySpecification;
67import org.eclipse.viatra.query.runtime.matchers.psystem.annotations.PAnnotation;
68import org.eclipse.xtend2.lib.StringConcatenation;
69import org.eclipse.xtext.xbase.lib.CollectionExtensions;
70import org.eclipse.xtext.xbase.lib.CollectionLiterals;
71import org.eclipse.xtext.xbase.lib.Exceptions;
72import org.eclipse.xtext.xbase.lib.ExclusiveRange;
73import org.eclipse.xtext.xbase.lib.Functions.Function0;
74import org.eclipse.xtext.xbase.lib.Functions.Function1;
75import org.eclipse.xtext.xbase.lib.InputOutput;
76import org.eclipse.xtext.xbase.lib.IterableExtensions;
77import org.eclipse.xtext.xbase.lib.ListExtensions;
78
79@SuppressWarnings("all")
80public class GenerateFromConfig {
81 private static final int SIZE_LB = 1;
82
83 private static final int SIZE_UB = 1;
84
85 private static final int SIZE_MUL = 1;
86
87 private static final int SIZE_INC = 5;
88
89 private static int REPS = 1;
90
91 private static final int RUNTIME = 2100;
92
93 private static final String DOMAIN = "Taxation";
94
95 private static final boolean QUERIES = true;
96
97 private static final boolean INITIAL = true;
98
99 private static final boolean INDIV_WRT = true;
100
101 private static final boolean GLOBAL_WRT = true;
102
103 private static final String q2t = new Function0<String>() {
104 @Override
105 public String apply() {
106 String _xifexpression = null;
107 if (GenerateFromConfig.QUERIES) {
108 _xifexpression = "Y";
109 } else {
110 _xifexpression = "N";
111 }
112 return _xifexpression;
113 }
114 }.apply();
115
116 public static void main(final String[] args) {
117 try {
118 Map<String, Object> _extensionToFactoryMap = Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap();
119 XMIResourceFactoryImpl _xMIResourceFactoryImpl = new XMIResourceFactoryImpl();
120 _extensionToFactoryMap.put("xmi", _xMIResourceFactoryImpl);
121 long _currentTimeMillis = System.currentTimeMillis();
122 final Date date = new Date(_currentTimeMillis);
123 final SimpleDateFormat format = new SimpleDateFormat("dd-HHmm");
124 String _format = format.format(date);
125 final String formattedDate = ((GenerateFromConfig.DOMAIN + "-") + _format);
126 StringConcatenation _builder = new StringConcatenation();
127 _builder.append("output/");
128 String _plus = (_builder.toString() + formattedDate);
129 StringConcatenation _builder_1 = new StringConcatenation();
130 _builder_1.append("/");
131 String _plus_1 = (_plus + _builder_1);
132 final FileSystemWorkspace workspace = new FileSystemWorkspace(_plus_1, "");
133 workspace.initAndClear();
134 InputOutput.<String>println("Input and output workspaces are created");
135 final ScriptExecutor executor = new ScriptExecutor();
136 final String path = (("config//generic" + GenerateFromConfig.DOMAIN) + ".vsconfig");
137 ConfigurationScript config = StandaloneScriptExecutor.loadScript(path);
138 InputOutput.<String>println("Config File loaded");
139 PrintWriter global_writer = null;
140 final String header = "domain, queries?,size,model?,timeout,measuredTime,TransformatonTime,SolverTime\n";
141 if (GenerateFromConfig.GLOBAL_WRT) {
142 URI _workspaceURI = workspace.getWorkspaceURI();
143 String _plus_2 = (_workspaceURI + "//_");
144 String _plus_3 = (_plus_2 + GenerateFromConfig.DOMAIN);
145 String _plus_4 = (_plus_3 + Integer.valueOf(GenerateFromConfig.SIZE_LB));
146 String _plus_5 = (_plus_4 + "to");
147 String _plus_6 = (_plus_5 + Integer.valueOf(GenerateFromConfig.SIZE_UB));
148 String _plus_7 = (_plus_6 + "x");
149 String _plus_8 = (_plus_7 + Integer.valueOf(GenerateFromConfig.REPS));
150 String _plus_9 = (_plus_8 + "q");
151 String _plus_10 = (_plus_9 + GenerateFromConfig.q2t);
152 String _plus_11 = (_plus_10 + "-");
153 String _plus_12 = (_plus_11 + formattedDate);
154 String _plus_13 = (_plus_12 + ".csv");
155 PrintWriter _printWriter = new PrintWriter(_plus_13);
156 global_writer = _printWriter;
157 global_writer.append(header);
158 }
159 int NEXT_INC = GenerateFromConfig.SIZE_INC;
160 {
161 int size = GenerateFromConfig.SIZE_LB;
162 boolean _while = (size <= GenerateFromConfig.SIZE_UB);
163 while (_while) {
164 {
165 int _NEXT_INC = NEXT_INC;
166 NEXT_INC = (_NEXT_INC * GenerateFromConfig.SIZE_MUL);
167 PrintWriter indiv_writer = null;
168 if (GenerateFromConfig.INDIV_WRT) {
169 URI _workspaceURI_1 = workspace.getWorkspaceURI();
170 String _plus_14 = (_workspaceURI_1 + "//__");
171 String _plus_15 = (_plus_14 + GenerateFromConfig.DOMAIN);
172 String _plus_16 = (_plus_15 + "Sz");
173 String _plus_17 = (_plus_16 + Integer.valueOf(size));
174 String _plus_18 = (_plus_17 + "x");
175 String _plus_19 = (_plus_18 + Integer.valueOf(GenerateFromConfig.REPS));
176 String _plus_20 = (_plus_19 + "q");
177 String _plus_21 = (_plus_20 + GenerateFromConfig.q2t);
178 String _plus_22 = (_plus_21 + "-");
179 String _plus_23 = (_plus_22 + formattedDate);
180 String _plus_24 = (_plus_23 +
181 ".csv");
182 PrintWriter _printWriter_1 = new PrintWriter(_plus_24);
183 indiv_writer = _printWriter_1;
184 indiv_writer.append(header);
185 }
186 InputOutput.println();
187 InputOutput.<String>println(((("DOMAIN: " + GenerateFromConfig.DOMAIN) + ", SIZE=") + Integer.valueOf(size)));
188 for (int i = 0; (i < GenerateFromConfig.REPS); i++) {
189 {
190 InputOutput.<String>print((("<<Run number " + Integer.valueOf(i)) + ">> : "));
191 final ArrayList<Integer> knownIntegers = new ArrayList<Integer>();
192 CollectionExtensions.<Integer>addAll(knownIntegers, Integer.valueOf(0), Integer.valueOf(10), Integer.valueOf(20), Integer.valueOf(30), Integer.valueOf(40), Integer.valueOf(50));
193 final ArrayList<BigDecimal> knownReals = new ArrayList<BigDecimal>();
194 BigDecimal _bigDecimal = new BigDecimal("0.0");
195 CollectionExtensions.<BigDecimal>addAll(knownReals, _bigDecimal);
196 final ArrayList<String> knownStrings = new ArrayList<String>();
197 CollectionExtensions.<String>addAll(knownStrings, "r0", "r1", "r2", "r3", "r4", "r5", "r6");
198 final String outputPath = (((((("output/" + formattedDate) + "/size") + Integer.valueOf(size)) + "/run") + Integer.valueOf(i)) + "/models/");
199 final String debugPath = (((((("output/" + formattedDate) + "/size") + Integer.valueOf(size)) + "/run") + Integer.valueOf(i)) + "/debug/");
200 final String logPath = (debugPath + "log.txt");
201 final String statsPath = (debugPath + "statistics.csv");
202 Command _get = config.getCommands().get(0);
203 final GenerationTask genTask = ((GenerationTask) _get);
204 if ((!GenerateFromConfig.QUERIES)) {
205 genTask.setPatterns(null);
206 }
207 if ((!GenerateFromConfig.INITIAL)) {
208 genTask.setPartialModel(null);
209 }
210 Scope _scope = genTask.getScope();
211 final ScopeSpecification scopeSpec = ((ScopeSpecification) _scope);
212 TypeScope _get_1 = scopeSpec.getScopes().get(0);
213 final ObjectTypeScope objScope = ((ObjectTypeScope) _get_1);
214 NumberSpecification _number = objScope.getNumber();
215 final IntervallNumber interval = ((IntervallNumber) _number);
216 interval.setMin(size);
217 interval.setMaxUnlimited(true);
218 Config _config = genTask.getConfig();
219 final ConfigSpecification configScope = ((ConfigSpecification) _config);
220 ConfigEntry _get_2 = configScope.getEntries().get(0);
221 final RuntimeEntry runtimeEntry = ((RuntimeEntry) _get_2);
222 runtimeEntry.setMillisecLimit(GenerateFromConfig.RUNTIME);
223 File _debugFolder = genTask.getDebugFolder();
224 final FileSpecification debug = ((FileSpecification) _debugFolder);
225 debug.setPath(debugPath);
226 File _tagetFolder = genTask.getTagetFolder();
227 final FileSpecification output = ((FileSpecification) _tagetFolder);
228 output.setPath(outputPath);
229 File _targetLogFile = genTask.getTargetLogFile();
230 final FileSpecification log = ((FileSpecification) _targetLogFile);
231 log.setPath(logPath);
232 File _targetStatisticsFile = genTask.getTargetStatisticsFile();
233 final FileSpecification stats = ((FileSpecification) _targetStatisticsFile);
234 stats.setPath(statsPath);
235 final long startTime = System.currentTimeMillis();
236 NullProgressMonitor _nullProgressMonitor = new NullProgressMonitor();
237 executor.executeScript(config, _nullProgressMonitor);
238 long _currentTimeMillis_1 = System.currentTimeMillis();
239 final long measuredTime = (_currentTimeMillis_1 - startTime);
240 InputOutput.<String>println((("<<END ->" + Double.valueOf((measuredTime / 1000.0))) + "s >>\n"));
241 final Runtime r = Runtime.getRuntime();
242 r.gc();
243 r.gc();
244 r.gc();
245 Thread.sleep(3000);
246 }
247 }
248 if (GenerateFromConfig.INDIV_WRT) {
249 indiv_writer.close();
250 }
251 }
252 int _size = size;
253 size = (_size + NEXT_INC);
254 _while = (size <= GenerateFromConfig.SIZE_UB);
255 }
256 }
257 if (GenerateFromConfig.GLOBAL_WRT) {
258 global_writer.close();
259 }
260 } catch (Throwable _e) {
261 throw Exceptions.sneakyThrow(_e);
262 }
263 }
264
265 public static Map<Type, Integer> getTypeMap(final Map<Class, Integer> classMap, final EcoreMetamodelDescriptor metamodel, final Ecore2Logic e2l, final Ecore2Logic_Trace trace) {
266 final HashMap<Type, Integer> typeMap = new HashMap<Type, Integer>();
267 final Function1<EClass, String> _function = (EClass s) -> {
268 return s.getName();
269 };
270 final Map<String, EClass> listMap = IterableExtensions.<String, EClass>toMap(metamodel.getClasses(), _function);
271 Set<Class> _keySet = classMap.keySet();
272 for (final Class elem : _keySet) {
273 typeMap.put(
274 e2l.TypeofEClass(trace,
275 listMap.get(elem.getSimpleName())), classMap.get(elem));
276 }
277 return typeMap;
278 }
279
280 public static EcoreMetamodelDescriptor loadMetamodel(final EPackage pckg) {
281 final List<EClass> classes = IterableExtensions.<EClass>toList(Iterables.<EClass>filter(pckg.getEClassifiers(), EClass.class));
282 final List<EEnum> enums = IterableExtensions.<EEnum>toList(Iterables.<EEnum>filter(pckg.getEClassifiers(), EEnum.class));
283 final Function1<EEnum, EList<EEnumLiteral>> _function = (EEnum it) -> {
284 return it.getELiterals();
285 };
286 final List<EEnumLiteral> literals = IterableExtensions.<EEnumLiteral>toList(Iterables.<EEnumLiteral>concat(ListExtensions.<EEnum, EList<EEnumLiteral>>map(enums, _function)));
287 final Function1<EClass, EList<EReference>> _function_1 = (EClass it) -> {
288 return it.getEReferences();
289 };
290 final List<EReference> references = IterableExtensions.<EReference>toList(Iterables.<EReference>concat(ListExtensions.<EClass, EList<EReference>>map(classes, _function_1)));
291 final Function1<EClass, EList<EAttribute>> _function_2 = (EClass it) -> {
292 return it.getEAttributes();
293 };
294 final List<EAttribute> attributes = IterableExtensions.<EAttribute>toList(Iterables.<EAttribute>concat(ListExtensions.<EClass, EList<EAttribute>>map(classes, _function_2)));
295 return new EcoreMetamodelDescriptor(classes, Collections.<EClass>unmodifiableSet(CollectionLiterals.<EClass>newHashSet()), false, enums, literals, references, attributes);
296 }
297
298 public static EList<EObject> loadPartialModel(final ReasonerWorkspace inputs, final String path) {
299 EList<EObject> _xblockexpression = null;
300 {
301 Map<String, Object> _extensionToFactoryMap = Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap();
302 XMIResourceFactoryImpl _xMIResourceFactoryImpl = new XMIResourceFactoryImpl();
303 _extensionToFactoryMap.put("*", _xMIResourceFactoryImpl);
304 _xblockexpression = inputs.<EObject>readModel(EObject.class, path).eResource().getContents();
305 }
306 return _xblockexpression;
307 }
308
309 public static ViatraQuerySetDescriptor loadQueries(final EcoreMetamodelDescriptor metamodel, final IQueryGroup i) {
310 final List<IQuerySpecification<?>> patterns = IterableExtensions.<IQuerySpecification<?>>toList(i.getSpecifications());
311 final Function1<IQuerySpecification<?>, Boolean> _function = (IQuerySpecification<?> it) -> {
312 final Function1<PAnnotation, Boolean> _function_1 = (PAnnotation it_1) -> {
313 String _name = it_1.getName();
314 return Boolean.valueOf(Objects.equal(_name, "Constraint"));
315 };
316 return Boolean.valueOf(IterableExtensions.<PAnnotation>exists(it.getAllAnnotations(), _function_1));
317 };
318 final Set<IQuerySpecification<?>> wfPatterns = IterableExtensions.<IQuerySpecification<?>>toSet(IterableExtensions.<IQuerySpecification<?>>filter(patterns, _function));
319 final Map<IQuerySpecification<?>, EStructuralFeature> derivedFeatures = CollectionLiterals.<IQuerySpecification<?>, EStructuralFeature>emptyMap();
320 final ViatraQuerySetDescriptor res = new ViatraQuerySetDescriptor(patterns, wfPatterns, derivedFeatures);
321 return res;
322 }
323
324 public static void writeInterpretation(final LogicResult solution, final Logic2Ecore logic2Ecore, final ReasonerWorkspace workspace, final String id, final ViatraReasoner reasoner, final TracedOutput<LogicProblem, Ecore2Logic_Trace> mgProb) {
325 final List<? extends LogicModelInterpretation> interpretations = reasoner.getInterpretations(((ModelResult) solution));
326 int _size = interpretations.size();
327 ExclusiveRange _doubleDotLessThan = new ExclusiveRange(0, _size, true);
328 for (final Integer interpIndex : _doubleDotLessThan) {
329 {
330 final LogicModelInterpretation interpretation = interpretations.get((interpIndex).intValue());
331 final EObject model = logic2Ecore.transformInterpretation(interpretation, mgProb.getTrace());
332 StringConcatenation _builder = new StringConcatenation();
333 _builder.append("sol-");
334 _builder.append(id);
335 _builder.append("_");
336 _builder.append(interpIndex);
337 _builder.append(".xmi");
338 workspace.writeModel(model, _builder.toString());
339 }
340 }
341 }
342
343 public static void writeRepresentation(final LogicResult solution, final ReasonerWorkspace workspace, final String id) {
344 final EList<Object> representations = solution.getRepresentation();
345 int _size = representations.size();
346 ExclusiveRange _doubleDotLessThan = new ExclusiveRange(0, _size, true);
347 for (final Integer representationIndex : _doubleDotLessThan) {
348 {
349 final Object representation = representations.get((representationIndex).intValue());
350 if ((representation instanceof PartialInterpretation)) {
351 final String gml = new PartialInterpretation2Gml().transform(((PartialInterpretation)representation));
352 StringConcatenation _builder = new StringConcatenation();
353 _builder.append("sol-");
354 _builder.append(id);
355 _builder.append("_");
356 _builder.append(representationIndex);
357 _builder.append(".gml");
358 workspace.writeText(_builder.toString(), gml);
359 final PartialInterpretationVisualisation png = new GraphvizVisualiser().visualiseConcretization(((PartialInterpretation)representation));
360 StringConcatenation _builder_1 = new StringConcatenation();
361 _builder_1.append("sol-");
362 _builder_1.append(id);
363 _builder_1.append("_");
364 _builder_1.append(representationIndex);
365 _builder_1.append(".png");
366 png.writeToFile(workspace, _builder_1.toString());
367 } else {
368 StringConcatenation _builder_2 = new StringConcatenation();
369 _builder_2.append("sol-");
370 _builder_2.append(representationIndex);
371 _builder_2.append(".txt");
372 workspace.writeText(_builder_2.toString(), representation.toString());
373 }
374 }
375 }
376 }
377
378 public static String writeStats(final LogicResult solution, final long time, final ViatraReasonerConfiguration config) {
379 String _xblockexpression = null;
380 {
381 final Statistics stats = solution.getStatistics();
382 InputOutput.<String>println(" Statistics:");
383 Object _xifexpression = null;
384 if ((config.typeScopes.maxNewElements == 2147483647)) {
385 _xifexpression = "*";
386 } else {
387 _xifexpression = Integer.valueOf(config.typeScopes.maxNewElements);
388 }
389 String _plus = (((" #new nodes : [" + Integer.valueOf(config.typeScopes.minNewElements)) + "..") + _xifexpression);
390 String _plus_1 = (_plus + "]");
391 InputOutput.<String>println(_plus_1);
392 _xblockexpression = InputOutput.<String>println(((" \"solve\" time: " + Double.valueOf((((double) time) / 1000))) + " s"));
393 }
394 return _xblockexpression;
395 }
396}