aboutsummaryrefslogtreecommitdiffstats
path: root/Domains/crossingScenario/src/crossingScenario/run/QueryDebug.java
blob: 7f19d2a81ec2fb0d9d018e83d5176953bed0cf7b (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
package crossingScenario.run;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class QueryDebug {
	/*
	public static void main(String[] args) {
		Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap( ).put("*", new XMIResourceFactoryImpl());
		EPackage.Registry.INSTANCE.put(SimpleScenarioPackage.eNS_URI, SimpleScenarioPackage.eINSTANCE);
		ResourceSet rs = new ResourceSetImpl();
		rs.getResource(URI.createFileURI("inputs/sample.xmi"), true);
		
		ViatraQueryEngine engine = ViatraQueryEngine.on(new EMFScope(rs));		
		// Access pattern matcher
		
		
		
		SimpleScenarioQueries.instance().prepare(engine);
		RefSpec.Matcher matcher = RefSpec.Matcher.on(engine);
		// Get and iterate over all matches
		for (RefSpec.Match match : matcher.getAllMatches()) {
			// Print all the matches to the standard output
			System.out.println(match.getL());
		}
	}
	*/
	
	/*
	public static void main(String[] args) {
		//Add xmi resource
		Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap( ).put("*", new XMIResourceFactoryImpl());
		//Add required EPackages
//		EPackage.Registry.INSTANCE.put(SimpleScenarioPackage.eNS_URI, SimpleScenarioPackage.eINSTANCE);
		EPackage.Registry.INSTANCE.put(LogiclanguagePackage.eNS_URI, LogiclanguagePackage.eINSTANCE);
		EPackage.Registry.INSTANCE.put(LogicproblemPackage.eNS_URI, LogicproblemPackage.eINSTANCE);
		EPackage.Registry.INSTANCE.put(PartialinterpretationPackage.eNS_URI, PartialinterpretationPackage.eINSTANCE);
		EPackage.Registry.INSTANCE.put(Ecore2logicannotationsPackage.eNS_URI, Ecore2logicannotationsPackage.eINSTANCE);
		EPackage.Registry.INSTANCE.put(Partial2logicannotationsPackage.eNS_URI, Partial2logicannotationsPackage.eINSTANCE);
		EPackage.Registry.INSTANCE.put(Viatra2LogicAnnotationsPackage.eNS_URI, Viatra2LogicAnnotationsPackage.eINSTANCE);
		EPackage.Registry.INSTANCE.put(LogicresultPackage.eNS_URI, LogicresultPackage.eINSTANCE);
		
		//Get res
		ResourceSet rs = new ResourceSetImpl();
		rs.getResource(URI.createFileURI("inputs/partial-int.xmi"), true);
		
		ViatraQueryEngine engine = ViatraQueryEngine.on(new EMFScope(rs));		
		// Access pattern matcher
		
		
		
		LogProb.instance().prepare(engine);
		// Get and iterate over all matches
		System.out.println("UPMUST:");
		for (UPMUSTPropagateConstraint0_pattern_queries_refSpec.Match match : 
			UPMUSTPropagateConstraint0_pattern_queries_refSpec.Matcher.on(engine).getAllMatches()) {
			// Print all the matches to the standard output
			System.out.println(match.getVar_l());
		}
		
		System.out.println("mustIn:");
		for (MustInRelationreferenceCoord_attribute_Lane.Match match : 
			MustInRelationreferenceCoord_attribute_Lane.Matcher.on(engine).getAllMatches()) {
			// Print all the matches to the standard output
			DefinedElement de = match.getTarget();			
			System.out.println(de);
			System.out.println("--set?:  " + ((PrimitiveElement) de).isValueSet());
			System.out.println("--val?:  " + ((IntegerElement) de).getValue());
			
		}
		
		System.out.println("interp:");
		for (Interpretation.Match match : 
			Interpretation.Matcher.on(engine).getAllMatches()) {
			// Print all the matches to the standard output
			System.out.println(match.getProblem());
		}
	}
	*/
	
	public static void main(String[] args) {
		ArrayList<String> out = new ArrayList<String>();
		out.add("delta-sat with delta = 0.001");
		out.add("w1602659765 : [1.797693134862315708e+308, 1.797693134862315708e+308]");
		String s = "1.797693134862315708e+308";
		
		System.out.println(parseDrealOutput(out));
		
	}
	
	private static Map<String, String> parseDrealOutput(List<String> output) {
		Map<String, String> res = new HashMap<String, String>();
		String re = "(\\w+) : \\[([0-9\\+-.e]+), ([0-9\\+-.e]+)\\]";
//		String re = "(\\w+) : \\[(.*), (.*)\\]";
		Pattern p = Pattern.compile(re);
		for (String varVal : output) {
		    Matcher m = p.matcher(varVal);
		    if (m.matches()) {
		        String name = m.group(1);
		        String lowerB = m.group(2);
		        String upperB = m.group(2);
		        res.put(name, lowerB);
		    }
		}
		return res;
	}
}