Merge lp:~tapaal-contributor/tapaal/manual-edit-parsing into lp:tapaal

Proposed by Lena Ernstsen
Status: Superseded
Proposed branch: lp:~tapaal-contributor/tapaal/manual-edit-parsing
Merge into: lp:tapaal
Diff against target: 2979 lines (+1487/-1310) (has conflicts)
6 files modified
src/dk/aau/cs/TCTL/CTLParsing/TAPAALCTLQueryParser.java (+756/-682)
src/dk/aau/cs/TCTL/Parsing/TAPAALQueryParser.java (+665/-597)
src/dk/aau/cs/TCTL/TCTLEFNode.java (+2/-1)
src/pipe/gui/widgets/QueryDialog.java (+42/-28)
src/resources/TCTLParser/TAPAALCTLQueryParser.jj (+11/-1)
src/resources/TCTLParser/TAPAALQueryParser.jj (+11/-1)
Text conflict in src/pipe/gui/widgets/QueryDialog.java
To merge this branch: bzr merge lp:~tapaal-contributor/tapaal/manual-edit-parsing
Reviewer Review Type Date Requested Status
Jiri Srba Needs Fixing
Kenneth Yrke Jørgensen code Approve
Review via email: mp+408607@code.launchpad.net

This proposal supersedes a proposal from 2021-08-18.

This proposal has been superseded by a proposal from 2021-09-29.

Commit message

Ensures that everything in the query is parsed

Description of the change

Added an EOF check, to ensure that we parse everything from the query.

Before it would incorrectly accept a query such as "AF TAPN1.P0 = 0 jkdnj" by ignoring the last part of the query and it would return "AF TAPN1.P0 = 0".

Also fixed incorrect logic for checking whether the identifiers for the places and transitions included in the query existed in the net.

To post a comment you must log in.
Revision history for this message
Jiri Srba (srba) wrote : Posted in a previous version of this proposal

What problem is this branch fixing?

review: Needs Information
Revision history for this message
Lena Ernstsen (lsaid) wrote :

The problem that is being fixed is ensuring that we parse everything from the query.

Before it would incorrectly accept a query such as "AF TAPN1.P0 = 0 jkdnj" by ignoring the last part of the query and it would return "AF TAPN1.P0 = 0".

Revision history for this message
Kenneth Yrke Jørgensen (yrke) :
review: Approve (code)
Revision history for this message
Jiri Srba (srba) wrote :

Almost works, two small issues:

1. the text in case an unknown place/transition name is used says "... transitionswere used ..."
   so there is missing a space (separator)

2. if you misspell place name in a query, it show the name correctly, however, for misspelled transitions, it does not show the transition name (the list is empty)

review: Needs Fixing
1140. By Lena Ernstsen

Fixed spacing and missing transition names in manual edit error message

1141. By Lena Ernstsen

Merged trunk

Unmerged revisions

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'src/dk/aau/cs/TCTL/CTLParsing/TAPAALCTLQueryParser.java'
--- src/dk/aau/cs/TCTL/CTLParsing/TAPAALCTLQueryParser.java 2019-03-22 10:13:18 +0000
+++ src/dk/aau/cs/TCTL/CTLParsing/TAPAALCTLQueryParser.java 2021-09-29 07:20:55 +0000
@@ -1,3 +1,4 @@
1/* TAPAALCTLQueryParser.java */
1/* Generated By:JavaCC: Do not edit this line. TAPAALCTLQueryParser.java */2/* Generated By:JavaCC: Do not edit this line. TAPAALCTLQueryParser.java */
2package dk.aau.cs.TCTL.CTLParsing;3package dk.aau.cs.TCTL.CTLParsing;
34
@@ -13,6 +14,7 @@
13import dk.aau.cs.TCTL.TCTLAGNode;14import dk.aau.cs.TCTL.TCTLAGNode;
14import dk.aau.cs.TCTL.TCTLAUNode;15import dk.aau.cs.TCTL.TCTLAUNode;
15import dk.aau.cs.TCTL.TCTLAXNode;16import dk.aau.cs.TCTL.TCTLAXNode;
17import dk.aau.cs.TCTL.TCTLAbstractProperty;
16import dk.aau.cs.TCTL.TCTLAbstractStateProperty;18import dk.aau.cs.TCTL.TCTLAbstractStateProperty;
17import dk.aau.cs.TCTL.TCTLAbstractPathProperty;19import dk.aau.cs.TCTL.TCTLAbstractPathProperty;
18import dk.aau.cs.TCTL.TCTLAndListNode;20import dk.aau.cs.TCTL.TCTLAndListNode;
@@ -31,714 +33,786 @@
3133
32public class TAPAALCTLQueryParser implements TAPAALCTLQueryParserConstants {34public class TAPAALCTLQueryParser implements TAPAALCTLQueryParserConstants {
3335
34 private static final String ERROR_PARSING_QUERY_MESSAGE = "TAPAAL countered an error trying to parse the query";36 private static final String ERROR_PARSING_QUERY_MESSAGE = "TAPAAL countered an error trying to parse the query";
3537
36 public static TCTLAbstractPathProperty parse(String query) throws ParseException {38 public static TCTLAbstractPathProperty parse(String query) throws ParseException {
37 TAPAALCTLQueryParser parser = new TAPAALCTLQueryParser(new StringReader(query));39 TAPAALCTLQueryParser parser = new TAPAALCTLQueryParser(new StringReader(query));
38 return parser.AbstractPathProperty();40 return parser.Start();
39 }41 }
4042
41/** Root production. */43 /** Root production. */
42 final public TCTLAbstractPathProperty AbstractPathProperty() throws ParseException {44 final public TCTLAbstractPathProperty Start() throws ParseException {TCTLAbstractPathProperty child = null;
43 TCTLAbstractStateProperty child = null;45 child = AbstractPathProperty();
46 jj_consume_token(0);
47 {if ("" != null) return child;}
48 throw new Error("Missing return statement in function");
49 }
50
51 final public TCTLAbstractPathProperty AbstractPathProperty() throws ParseException {TCTLAbstractStateProperty child = null;
44 TCTLAbstractStateProperty child2 = null;52 TCTLAbstractStateProperty child2 = null;
45 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {53 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
46 case EF:54 case EF:{
47 jj_consume_token(EF);55 jj_consume_token(EF);
48 child = OrExpr();56 child = OrExpr();
49 {if (true) return new TCTLEFNode(child);}57 {if ("" != null) return new TCTLEFNode(child);}
50 break;58 break;
51 case EG:59 }
52 jj_consume_token(EG);60 case EG:{
53 child = OrExpr();61 jj_consume_token(EG);
54 {if (true) return new TCTLEGNode(child);}62 child = OrExpr();
55 break;63 {if ("" != null) return new TCTLEGNode(child);}
56 case EX:64 break;
57 jj_consume_token(EX);65 }
58 child = OrExpr();66 case EX:{
59 {if (true) return new TCTLEXNode(child);}67 jj_consume_token(EX);
60 break;68 child = OrExpr();
61 case E:69 {if ("" != null) return new TCTLEXNode(child);}
62 jj_consume_token(E);70 break;
63 jj_consume_token(26);71 }
64 child = OrExpr();72 case E:{
65 jj_consume_token(U);73 jj_consume_token(E);
66 child2 = OrExpr();74 jj_consume_token(26);
67 jj_consume_token(27);75 child = OrExpr();
68 {if (true) return new TCTLEUNode(child, child2);}76 jj_consume_token(U);
69 break;77 child2 = OrExpr();
70 case AF:78 jj_consume_token(27);
71 jj_consume_token(AF);79 {if ("" != null) return new TCTLEUNode(child, child2);}
72 child = OrExpr();80 break;
73 {if (true) return new TCTLAFNode(child);}81 }
74 break;82 case AF:{
75 case AG:83 jj_consume_token(AF);
76 jj_consume_token(AG);84 child = OrExpr();
77 child = OrExpr();85 {if ("" != null) return new TCTLAFNode(child);}
78 {if (true) return new TCTLAGNode(child);}86 break;
79 break;87 }
80 case A:88 case AG:{
81 jj_consume_token(A);89 jj_consume_token(AG);
82 jj_consume_token(26);90 child = OrExpr();
83 child = OrExpr();91 {if ("" != null) return new TCTLAGNode(child);}
84 jj_consume_token(U);92 break;
85 child2 = OrExpr();93 }
86 jj_consume_token(27);94 case A:{
87 {if (true) return new TCTLAUNode(child, child2);}95 jj_consume_token(A);
88 break;96 jj_consume_token(26);
89 case AX:97 child = OrExpr();
90 jj_consume_token(AX);98 jj_consume_token(U);
91 child = OrExpr();99 child2 = OrExpr();
92 {if (true) return new TCTLAXNode(child);}100 jj_consume_token(27);
93 break;101 {if ("" != null) return new TCTLAUNode(child, child2);}
94 default:102 break;
95 jj_la1[0] = jj_gen;103 }
96 child = OrExpr();104 case AX:{
97 {if (true) return new TCTLStateToPathConverter(child);}105 jj_consume_token(AX);
106 child = OrExpr();
107 {if ("" != null) return new TCTLAXNode(child);}
108 break;
109 }
110 default:
111 jj_la1[0] = jj_gen;
112 child = OrExpr();
113 {if ("" != null) return new TCTLStateToPathConverter(child);}
114 }
115 throw new Error("Missing return statement in function");
98 }116 }
99 throw new Error("Missing return statement in function");
100 }
101117
102 final public TCTLAbstractStateProperty OrExpr() throws ParseException {118 final public TCTLAbstractStateProperty OrExpr() throws ParseException {TCTLAbstractStateProperty currentChild;
103 TCTLAbstractStateProperty currentChild;
104 ArrayList<TCTLAbstractStateProperty> disjunctions = new ArrayList<TCTLAbstractStateProperty>();119 ArrayList<TCTLAbstractStateProperty> disjunctions = new ArrayList<TCTLAbstractStateProperty>();
105 currentChild = AndExpr();120 currentChild = AndExpr();
106 disjunctions.add(currentChild);121 disjunctions.add(currentChild);
107 label_1:122 label_1:
108 while (true) {123 while (true) {
109 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {124 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
110 case OR:125 case OR:{
111 ;126 ;
112 break;127 break;
113 default:128 }
114 jj_la1[1] = jj_gen;129 default:
115 break label_1;130 jj_la1[1] = jj_gen;
116 }131 break label_1;
117 jj_consume_token(OR);132 }
118 currentChild = AndExpr();133 jj_consume_token(OR);
119 disjunctions.add(currentChild);134 currentChild = AndExpr();
135 disjunctions.add(currentChild);
136 }
137 {if ("" != null) return disjunctions.size() == 1 ? currentChild : new TCTLOrListNode(disjunctions);}
138 throw new Error("Missing return statement in function");
120 }139 }
121 {if (true) return disjunctions.size() == 1 ? currentChild : new TCTLOrListNode(disjunctions);}
122 throw new Error("Missing return statement in function");
123 }
124140
125 final public TCTLAbstractStateProperty AndExpr() throws ParseException {141 final public TCTLAbstractStateProperty AndExpr() throws ParseException {TCTLAbstractStateProperty currentChild;
126 TCTLAbstractStateProperty currentChild;
127 ArrayList<TCTLAbstractStateProperty> conjunctions = new ArrayList<TCTLAbstractStateProperty>();142 ArrayList<TCTLAbstractStateProperty> conjunctions = new ArrayList<TCTLAbstractStateProperty>();
128 currentChild = NotExpr();143 currentChild = NotExpr();
129 conjunctions.add(currentChild);144 conjunctions.add(currentChild);
130 label_2:145 label_2:
131 while (true) {146 while (true) {
132 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {147 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
133 case AND:148 case AND:{
134 ;149 ;
135 break;150 break;
136 default:151 }
137 jj_la1[2] = jj_gen;152 default:
138 break label_2;153 jj_la1[2] = jj_gen;
139 }154 break label_2;
140 jj_consume_token(AND);155 }
141 currentChild = NotExpr();156 jj_consume_token(AND);
142 conjunctions.add(currentChild);157 currentChild = NotExpr();
158 conjunctions.add(currentChild);
159 }
160 {if ("" != null) return conjunctions.size() == 1 ? currentChild : new TCTLAndListNode(conjunctions);}
161 throw new Error("Missing return statement in function");
143 }162 }
144 {if (true) return conjunctions.size() == 1 ? currentChild : new TCTLAndListNode(conjunctions);}
145 throw new Error("Missing return statement in function");
146 }
147163
148 final public TCTLAbstractStateProperty NotExpr() throws ParseException {164 final public TCTLAbstractStateProperty NotExpr() throws ParseException {TCTLAbstractStateProperty child;
149 TCTLAbstractStateProperty child;
150 TCTLAbstractPathProperty childConverter;165 TCTLAbstractPathProperty childConverter;
151 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {166 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
152 case NOT:167 case NOT:{
153 jj_consume_token(NOT);168 jj_consume_token(NOT);
154 jj_consume_token(26);169 jj_consume_token(26);
155 child = OrExpr();170 child = OrExpr();
156 jj_consume_token(27);171 jj_consume_token(27);
157 {if (true) return new TCTLNotNode(child);}172 {if ("" != null) return new TCTLNotNode(child);}
158 break;173 break;
159 default:174 }
160 jj_la1[3] = jj_gen;175 default:
161 child = Factor();176 jj_la1[3] = jj_gen;
162 {if (true) return child;}177 child = Factor();
178 {if ("" != null) return child;}
179 }
180 throw new Error("Missing return statement in function");
163 }181 }
164 throw new Error("Missing return statement in function");
165 }
166182
167 final public TCTLAbstractStateProperty Factor() throws ParseException {183 final public TCTLAbstractStateProperty Factor() throws ParseException {TCTLAbstractStateProperty thisProp;
168 TCTLAbstractStateProperty thisProp;
169 Token temp = null;184 Token temp = null;
170 Token transition;185 Token transition;
171 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {186 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
172 case TRUE:187 case TRUE:{
173 jj_consume_token(TRUE);188 jj_consume_token(TRUE);
174 thisProp = new TCTLTrueNode();189 thisProp = new TCTLTrueNode();
175 break;190 break;
176 case FALSE:191 }
177 jj_consume_token(FALSE);192 case FALSE:{
178 thisProp = new TCTLFalseNode();193 jj_consume_token(FALSE);
179 break;194 thisProp = new TCTLFalseNode();
180 case DEADLOCK:195 break;
181 jj_consume_token(DEADLOCK);196 }
182 thisProp = new TCTLDeadlockNode();197 case DEADLOCK:{
183 break;198 jj_consume_token(DEADLOCK);
184 default:199 thisProp = new TCTLDeadlockNode();
185 jj_la1[4] = jj_gen;200 break;
186 if (jj_2_2(2147483647)) {201 }
187 thisProp = AtomicProposition();202 default:
188 } else {203 jj_la1[4] = jj_gen;
189 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {204 if (jj_2_2(2147483647)) {
190 case IDENT:205 thisProp = AtomicProposition();
191 if (jj_2_1(2)) {206 } else {
192 temp = jj_consume_token(IDENT);207 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
193 jj_consume_token(28);208 case IDENT:{
194 } else {209 if (jj_2_1(2)) {
195 ;210 temp = jj_consume_token(IDENT);
196 }211 jj_consume_token(28);
197 transition = jj_consume_token(IDENT);212 } else {
198 thisProp = new TCTLTransitionNode(temp == null ? "" : temp.image, transition.image);213 ;
199 break;214 }
200 case 26:215 transition = jj_consume_token(IDENT);
201 jj_consume_token(26);216 thisProp = new TCTLTransitionNode(temp == null ? "" : temp.image, transition.image);
202 thisProp = OrExpr();217 break;
203 jj_consume_token(27);218 }
204 break;219 case 26:{
205 default:220 jj_consume_token(26);
206 jj_la1[5] = jj_gen;221 thisProp = OrExpr();
207 thisProp = new TCTLPathToStateConverter(AbstractPathProperty());222 jj_consume_token(27);
223 break;
224 }
225 default:
226 jj_la1[5] = jj_gen;
227 thisProp = new TCTLPathToStateConverter(AbstractPathProperty());
228 }
229 }
208 }230 }
209 }231 {if ("" != null) return thisProp;}
232 throw new Error("Missing return statement in function");
210 }233 }
211 {if (true) return thisProp;}
212 throw new Error("Missing return statement in function");
213 }
214234
215 final public TCTLAbstractStateProperty AtomicProposition() throws ParseException {235 final public TCTLAbstractStateProperty AtomicProposition() throws ParseException {TCTLAbstractStateProperty left;
216 TCTLAbstractStateProperty left;
217 TCTLAbstractStateProperty right;236 TCTLAbstractStateProperty right;
218 Token op;237 Token op;
219 left = AritmeticExpr();238 left = AritmeticExpr();
220 op = jj_consume_token(OP);239 op = jj_consume_token(OP);
221 right = AritmeticExpr();240 right = AritmeticExpr();
222 {if (true) return new TCTLAtomicPropositionNode(left, op.image, right);}241 {if ("" != null) return new TCTLAtomicPropositionNode(left, op.image, right);}
223 throw new Error("Missing return statement in function");242 throw new Error("Missing return statement in function");
224 }243 }
225244
226 final public TCTLAbstractStateProperty AritmeticExpr() throws ParseException {245 final public TCTLAbstractStateProperty AritmeticExpr() throws ParseException {TCTLAbstractStateProperty currentChild;
227 TCTLAbstractStateProperty currentChild;246 ArrayList<TCTLAbstractStateProperty> terms = new ArrayList<TCTLAbstractStateProperty>();
228 ArrayList<TCTLAbstractStateProperty> terms = new ArrayList<TCTLAbstractStateProperty>();247 Token op;
229 Token op;248 currentChild = AritmeticMinusExpr();
230 currentChild = AritmeticMinusExpr();249 terms.add(currentChild);
231 terms.add(currentChild);250 label_3:
232 label_3:251 while (true) {
233 while (true) {252 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
234 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {253 case PLUS:{
235 case PLUS:254 ;
236 ;255 break;
237 break;256 }
238 default:257 default:
239 jj_la1[6] = jj_gen;258 jj_la1[6] = jj_gen;
240 break label_3;259 break label_3;
241 }260 }
242 op = jj_consume_token(PLUS);261 op = jj_consume_token(PLUS);
243 currentChild = AritmeticMinusExpr();262 currentChild = AritmeticMinusExpr();
244 terms.add(new AritmeticOperator(op.image));263 terms.add(new AritmeticOperator(op.image));
245 terms.add(currentChild);264 terms.add(currentChild);
246 }265 }
247 {if (true) return terms.size() == 1 ? currentChild : new TCTLTermListNode(terms);}266 {if ("" != null) return terms.size() == 1 ? currentChild : new TCTLTermListNode(terms);}
248 throw new Error("Missing return statement in function");267 throw new Error("Missing return statement in function");
249 }268 }
250269
251 final public TCTLAbstractStateProperty AritmeticMinusExpr() throws ParseException {270 final public TCTLAbstractStateProperty AritmeticMinusExpr() throws ParseException {TCTLAbstractStateProperty currentChild;
252 TCTLAbstractStateProperty currentChild;271 ArrayList<TCTLAbstractStateProperty> terms = new ArrayList<TCTLAbstractStateProperty>();
253 ArrayList<TCTLAbstractStateProperty> terms = new ArrayList<TCTLAbstractStateProperty>();272 Token op;
254 Token op;273 currentChild = AritmeticTerm();
255 currentChild = AritmeticTerm();274 terms.add(currentChild);
256 terms.add(currentChild);275 label_4:
257 label_4:276 while (true) {
258 while (true) {277 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
259 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {278 case MINUS:{
260 case MINUS:279 ;
261 ;280 break;
262 break;281 }
263 default:282 default:
264 jj_la1[7] = jj_gen;283 jj_la1[7] = jj_gen;
265 break label_4;284 break label_4;
266 }285 }
267 op = jj_consume_token(MINUS);286 op = jj_consume_token(MINUS);
268 currentChild = AritmeticTerm();287 currentChild = AritmeticTerm();
269 terms.add(new AritmeticOperator(op.image));288 terms.add(new AritmeticOperator(op.image));
270 terms.add(currentChild);289 terms.add(currentChild);
271 }290 }
272 {if (true) return terms.size() == 1 ? currentChild : new TCTLTermListNode(terms);}291 {if ("" != null) return terms.size() == 1 ? currentChild : new TCTLTermListNode(terms);}
273 throw new Error("Missing return statement in function");292 throw new Error("Missing return statement in function");
274 }293 }
275294
276 final public TCTLAbstractStateProperty AritmeticTerm() throws ParseException {295 final public TCTLAbstractStateProperty AritmeticTerm() throws ParseException {TCTLAbstractStateProperty currentChild;
277 TCTLAbstractStateProperty currentChild;
278 ArrayList<TCTLAbstractStateProperty> factors = new ArrayList<TCTLAbstractStateProperty>();296 ArrayList<TCTLAbstractStateProperty> factors = new ArrayList<TCTLAbstractStateProperty>();
279 Token op;297 Token op;
280 currentChild = AritmeticFactor();298 currentChild = AritmeticFactor();
281 factors.add(currentChild);299 factors.add(currentChild);
282 label_5:300 label_5:
283 while (true) {301 while (true) {
284 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {302 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
285 case MULT:303 case MULT:{
286 ;304 ;
287 break;305 break;
288 default:306 }
289 jj_la1[8] = jj_gen;307 default:
290 break label_5;308 jj_la1[8] = jj_gen;
291 }309 break label_5;
292 op = jj_consume_token(MULT);310 }
293 currentChild = AritmeticFactor();311 op = jj_consume_token(MULT);
294 factors.add(new AritmeticOperator(op.image));312 currentChild = AritmeticFactor();
295 factors.add(currentChild);313 factors.add(new AritmeticOperator(op.image));
314 factors.add(currentChild);
315 }
316 {if ("" != null) return factors.size() == 1 ? currentChild : new TCTLTermListNode(factors);}
317 throw new Error("Missing return statement in function");
296 }318 }
297 {if (true) return factors.size() == 1 ? currentChild : new TCTLTermListNode(factors);}
298 throw new Error("Missing return statement in function");
299 }
300319
301 final public TCTLAbstractStateProperty AritmeticFactor() throws ParseException {320 final public TCTLAbstractStateProperty AritmeticFactor() throws ParseException {TCTLAbstractStateProperty thisProp;
302 TCTLAbstractStateProperty thisProp;
303 Token temp = null;321 Token temp = null;
304 Token place;322 Token place;
305 Token op;323 Token op;
306 Token num;324 Token num;
307 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {325 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
308 case IDENT:326 case IDENT:{
309 if (jj_2_3(2)) {327 if (jj_2_3(2)) {
310 temp = jj_consume_token(IDENT);328 temp = jj_consume_token(IDENT);
311 jj_consume_token(28);329 jj_consume_token(28);
312 } else {330 } else {
313 ;331 ;
314 }332 }
315 place = jj_consume_token(IDENT);333 place = jj_consume_token(IDENT);
316 thisProp = new TCTLPlaceNode(temp == null ? "" : temp.image, place.image);334 thisProp = new TCTLPlaceNode(temp == null ? "" : temp.image, place.image);
317 break;335 break;
318 case NUM:336 }
319 num = jj_consume_token(NUM);337 case NUM:{
320 thisProp = new TCTLConstNode(Integer.parseInt(num.image));338 num = jj_consume_token(NUM);
321 break;339 thisProp = new TCTLConstNode(Integer.parseInt(num.image));
322 case 26:340 break;
323 jj_consume_token(26);341 }
324 thisProp = AritmeticExpr();342 case 26:{
325 jj_consume_token(27);343 jj_consume_token(26);
326 break;344 thisProp = AritmeticExpr();
327 default:345 jj_consume_token(27);
328 jj_la1[9] = jj_gen;346 break;
329 jj_consume_token(-1);347 }
330 throw new ParseException();348 default:
331 }349 jj_la1[9] = jj_gen;
332 {if (true) return thisProp;}350 jj_consume_token(-1);
333 throw new Error("Missing return statement in function");351 throw new ParseException();
334 }352 }
335353 {if ("" != null) return thisProp;}
336 private boolean jj_2_1(int xla) {354 throw new Error("Missing return statement in function");
337 jj_la = xla; jj_lastpos = jj_scanpos = token;355 }
338 try { return !jj_3_1(); }356
339 catch(LookaheadSuccess ls) { return true; }357 private boolean jj_2_1(int xla)
340 finally { jj_save(0, xla); }358 {
341 }359 jj_la = xla; jj_lastpos = jj_scanpos = token;
342360 try { return (!jj_3_1()); }
343 private boolean jj_2_2(int xla) {361 catch(LookaheadSuccess ls) { return true; }
344 jj_la = xla; jj_lastpos = jj_scanpos = token;362 finally { jj_save(0, xla); }
345 try { return !jj_3_2(); }363 }
346 catch(LookaheadSuccess ls) { return true; }364
347 finally { jj_save(1, xla); }365 private boolean jj_2_2(int xla)
348 }366 {
349367 jj_la = xla; jj_lastpos = jj_scanpos = token;
350 private boolean jj_2_3(int xla) {368 try { return (!jj_3_2()); }
351 jj_la = xla; jj_lastpos = jj_scanpos = token;369 catch(LookaheadSuccess ls) { return true; }
352 try { return !jj_3_3(); }370 finally { jj_save(1, xla); }
353 catch(LookaheadSuccess ls) { return true; }371 }
354 finally { jj_save(2, xla); }372
355 }373 private boolean jj_2_3(int xla)
356374 {
357 private boolean jj_3R_16() {375 jj_la = xla; jj_lastpos = jj_scanpos = token;
358 if (jj_scan_token(26)) return true;376 try { return (!jj_3_3()); }
359 if (jj_3R_7()) return true;377 catch(LookaheadSuccess ls) { return true; }
360 if (jj_scan_token(27)) return true;378 finally { jj_save(2, xla); }
361 return false;379 }
362 }380
363381 private boolean jj_3R_AritmeticTerm_287_9_10()
364 private boolean jj_3R_13() {382 {
365 if (jj_scan_token(MULT)) return true;383 if (jj_3R_AritmeticFactor_308_9_12()) return true;
366 if (jj_3R_12()) return true;384 Token xsp;
367 return false;385 while (true) {
368 }386 xsp = jj_scanpos;
369387 if (jj_3R_AritmeticTerm_290_17_13()) { jj_scanpos = xsp; break; }
370 private boolean jj_3_1() {388 }
371 if (jj_scan_token(IDENT)) return true;389 return false;
372 if (jj_scan_token(28)) return true;390 }
373 return false;391
374 }392 private boolean jj_3R_AritmeticFactor_308_9_12()
375393 {
376 private boolean jj_3R_15() {394 Token xsp;
377 if (jj_scan_token(NUM)) return true;395 xsp = jj_scanpos;
378 return false;396 if (jj_3R_AritmeticFactor_309_17_14()) {
379 }397 jj_scanpos = xsp;
380398 if (jj_3R_AritmeticFactor_310_19_15()) {
381 private boolean jj_3_3() {399 jj_scanpos = xsp;
382 if (jj_scan_token(IDENT)) return true;400 if (jj_3R_AritmeticFactor_311_19_16()) return true;
383 if (jj_scan_token(28)) return true;401 }
384 return false;402 }
385 }403 return false;
386404 }
387 private boolean jj_3R_7() {405
388 if (jj_3R_8()) return true;406 private boolean jj_3R_AritmeticExpr_252_17_9()
389 Token xsp;407 {
390 while (true) {408 if (jj_scan_token(PLUS)) return true;
391 xsp = jj_scanpos;409 if (jj_3R_AritmeticMinusExpr_268_9_8()) return true;
392 if (jj_3R_9()) { jj_scanpos = xsp; break; }410 return false;
393 }411 }
394 return false;412
395 }413 private boolean jj_3_2()
396414 {
397 private boolean jj_3R_14() {415 if (jj_3R_AtomicProposition_234_9_6()) return true;
398 Token xsp;416 return false;
399 xsp = jj_scanpos;417 }
400 if (jj_3_3()) jj_scanpos = xsp;418
401 if (jj_scan_token(IDENT)) return true;419 private boolean jj_3R_AtomicProposition_234_9_6()
402 return false;420 {
403 }421 if (jj_3R_AritmeticExpr_249_9_7()) return true;
404422 if (jj_scan_token(OP)) return true;
405 private boolean jj_3R_8() {423 if (jj_3R_AritmeticExpr_249_9_7()) return true;
406 if (jj_3R_10()) return true;424 return false;
407 Token xsp;425 }
408 while (true) {426
409 xsp = jj_scanpos;427 private boolean jj_3R_AritmeticMinusExpr_271_17_11()
410 if (jj_3R_11()) { jj_scanpos = xsp; break; }428 {
411 }429 if (jj_scan_token(MINUS)) return true;
412 return false;430 if (jj_3R_AritmeticTerm_287_9_10()) return true;
413 }431 return false;
414432 }
415 private boolean jj_3R_10() {433
416 if (jj_3R_12()) return true;434 private boolean jj_3R_AritmeticFactor_311_19_16()
417 Token xsp;435 {
418 while (true) {436 if (jj_scan_token(26)) return true;
419 xsp = jj_scanpos;437 if (jj_3R_AritmeticExpr_249_9_7()) return true;
420 if (jj_3R_13()) { jj_scanpos = xsp; break; }438 if (jj_scan_token(27)) return true;
421 }439 return false;
422 return false;440 }
423 }441
424442 private boolean jj_3R_AritmeticTerm_290_17_13()
425 private boolean jj_3R_12() {443 {
426 Token xsp;444 if (jj_scan_token(MULT)) return true;
427 xsp = jj_scanpos;445 if (jj_3R_AritmeticFactor_308_9_12()) return true;
428 if (jj_3R_14()) {446 return false;
429 jj_scanpos = xsp;447 }
430 if (jj_3R_15()) {448
431 jj_scanpos = xsp;449 private boolean jj_3_1()
432 if (jj_3R_16()) return true;450 {
433 }451 if (jj_scan_token(IDENT)) return true;
434 }452 if (jj_scan_token(28)) return true;
435 return false;453 return false;
436 }454 }
437455
438 private boolean jj_3R_9() {456 private boolean jj_3R_AritmeticFactor_310_19_15()
439 if (jj_scan_token(PLUS)) return true;457 {
440 if (jj_3R_8()) return true;458 if (jj_scan_token(NUM)) return true;
441 return false;459 return false;
442 }460 }
443461
444 private boolean jj_3_2() {462 private boolean jj_3_3()
445 if (jj_3R_6()) return true;463 {
446 return false;464 if (jj_scan_token(IDENT)) return true;
447 }465 if (jj_scan_token(28)) return true;
448466 return false;
449 private boolean jj_3R_6() {467 }
450 if (jj_3R_7()) return true;468
451 if (jj_scan_token(OP)) return true;469 private boolean jj_3R_AritmeticExpr_249_9_7()
452 if (jj_3R_7()) return true;470 {
453 return false;471 if (jj_3R_AritmeticMinusExpr_268_9_8()) return true;
454 }472 Token xsp;
455473 while (true) {
456 private boolean jj_3R_11() {474 xsp = jj_scanpos;
457 if (jj_scan_token(MINUS)) return true;475 if (jj_3R_AritmeticExpr_252_17_9()) { jj_scanpos = xsp; break; }
458 if (jj_3R_10()) return true;476 }
459 return false;477 return false;
460 }478 }
461479
462 /** Generated Token Manager. */480 private boolean jj_3R_AritmeticFactor_309_17_14()
463 public TAPAALCTLQueryParserTokenManager token_source;481 {
464 SimpleCharStream jj_input_stream;482 Token xsp;
465 /** Current token. */483 xsp = jj_scanpos;
466 public Token token;484 if (jj_3_3()) jj_scanpos = xsp;
467 /** Next token. */485 if (jj_scan_token(IDENT)) return true;
468 public Token jj_nt;486 return false;
469 private int jj_ntk;487 }
470 private Token jj_scanpos, jj_lastpos;488
471 private int jj_la;489 private boolean jj_3R_AritmeticMinusExpr_268_9_8()
472 private int jj_gen;490 {
473 final private int[] jj_la1 = new int[10];491 if (jj_3R_AritmeticTerm_287_9_10()) return true;
474 static private int[] jj_la1_0;492 Token xsp;
475 static {493 while (true) {
476 jj_la1_init_0();494 xsp = jj_scanpos;
477 }495 if (jj_3R_AritmeticMinusExpr_271_17_11()) { jj_scanpos = xsp; break; }
478 private static void jj_la1_init_0() {496 }
479 jj_la1_0 = new int[] {0x1ef0,0x2000,0x4000,0x8000,0xe,0x4100000,0x10000,0x20000,0x40000,0x4180000,};497 return false;
480 }498 }
481 final private JJCalls[] jj_2_rtns = new JJCalls[3];499
482 private boolean jj_rescan = false;500 /** Generated Token Manager. */
483 private int jj_gc = 0;501 public TAPAALCTLQueryParserTokenManager token_source;
484502 SimpleCharStream jj_input_stream;
485 /** Constructor with InputStream. */503 /** Current token. */
486 public TAPAALCTLQueryParser(java.io.InputStream stream) {504 public Token token;
487 this(stream, null);505 /** Next token. */
488 }506 public Token jj_nt;
489 /** Constructor with InputStream and supplied encoding */507 private int jj_ntk;
490 public TAPAALCTLQueryParser(java.io.InputStream stream, String encoding) {508 private Token jj_scanpos, jj_lastpos;
491 try { jj_input_stream = new SimpleCharStream(stream, encoding, 1, 1); } catch(java.io.UnsupportedEncodingException e) { throw new RuntimeException(e); }509 private int jj_la;
492 token_source = new TAPAALCTLQueryParserTokenManager(jj_input_stream);510 private int jj_gen;
493 token = new Token();511 final private int[] jj_la1 = new int[10];
494 jj_ntk = -1;512 static private int[] jj_la1_0;
495 jj_gen = 0;513 static {
496 for (int i = 0; i < 10; i++) jj_la1[i] = -1;514 jj_la1_init_0();
497 for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();515 }
498 }516 private static void jj_la1_init_0() {
499517 jj_la1_0 = new int[] {0x1ef0,0x2000,0x4000,0x8000,0xe,0x4100000,0x10000,0x20000,0x40000,0x4180000,};
500 /** Reinitialise. */518 }
501 public void ReInit(java.io.InputStream stream) {519 final private JJCalls[] jj_2_rtns = new JJCalls[3];
502 ReInit(stream, null);520 private boolean jj_rescan = false;
503 }521 private int jj_gc = 0;
504 /** Reinitialise. */522
505 public void ReInit(java.io.InputStream stream, String encoding) {523 /** Constructor with InputStream. */
506 try { jj_input_stream.ReInit(stream, encoding, 1, 1); } catch(java.io.UnsupportedEncodingException e) { throw new RuntimeException(e); }524 public TAPAALCTLQueryParser(java.io.InputStream stream) {
507 token_source.ReInit(jj_input_stream);525 this(stream, null);
508 token = new Token();526 }
509 jj_ntk = -1;527 /** Constructor with InputStream and supplied encoding */
510 jj_gen = 0;528 public TAPAALCTLQueryParser(java.io.InputStream stream, String encoding) {
511 for (int i = 0; i < 10; i++) jj_la1[i] = -1;529 try { jj_input_stream = new SimpleCharStream(stream, encoding, 1, 1); } catch(java.io.UnsupportedEncodingException e) { throw new RuntimeException(e); }
512 for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();530 token_source = new TAPAALCTLQueryParserTokenManager(jj_input_stream);
513 }531 token = new Token();
514532 jj_ntk = -1;
515 /** Constructor. */533 jj_gen = 0;
516 public TAPAALCTLQueryParser(java.io.Reader stream) {534 for (int i = 0; i < 10; i++) jj_la1[i] = -1;
517 jj_input_stream = new SimpleCharStream(stream, 1, 1);535 for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
518 token_source = new TAPAALCTLQueryParserTokenManager(jj_input_stream);536 }
519 token = new Token();537
520 jj_ntk = -1;538 /** Reinitialise. */
521 jj_gen = 0;539 public void ReInit(java.io.InputStream stream) {
522 for (int i = 0; i < 10; i++) jj_la1[i] = -1;540 ReInit(stream, null);
523 for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();541 }
524 }542 /** Reinitialise. */
525543 public void ReInit(java.io.InputStream stream, String encoding) {
526 /** Reinitialise. */544 try { jj_input_stream.ReInit(stream, encoding, 1, 1); } catch(java.io.UnsupportedEncodingException e) { throw new RuntimeException(e); }
527 public void ReInit(java.io.Reader stream) {545 token_source.ReInit(jj_input_stream);
528 jj_input_stream.ReInit(stream, 1, 1);546 token = new Token();
529 token_source.ReInit(jj_input_stream);547 jj_ntk = -1;
530 token = new Token();548 jj_gen = 0;
531 jj_ntk = -1;549 for (int i = 0; i < 10; i++) jj_la1[i] = -1;
532 jj_gen = 0;550 for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
533 for (int i = 0; i < 10; i++) jj_la1[i] = -1;551 }
534 for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();552
535 }553 /** Constructor. */
536554 public TAPAALCTLQueryParser(java.io.Reader stream) {
537 /** Constructor with generated Token Manager. */555 jj_input_stream = new SimpleCharStream(stream, 1, 1);
538 public TAPAALCTLQueryParser(TAPAALCTLQueryParserTokenManager tm) {556 token_source = new TAPAALCTLQueryParserTokenManager(jj_input_stream);
539 token_source = tm;557 token = new Token();
540 token = new Token();558 jj_ntk = -1;
541 jj_ntk = -1;559 jj_gen = 0;
542 jj_gen = 0;560 for (int i = 0; i < 10; i++) jj_la1[i] = -1;
543 for (int i = 0; i < 10; i++) jj_la1[i] = -1;561 for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
544 for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();562 }
545 }563
546564 /** Reinitialise. */
547 /** Reinitialise. */565 public void ReInit(java.io.Reader stream) {
548 public void ReInit(TAPAALCTLQueryParserTokenManager tm) {566 if (jj_input_stream == null) {
549 token_source = tm;567 jj_input_stream = new SimpleCharStream(stream, 1, 1);
550 token = new Token();568 } else {
551 jj_ntk = -1;569 jj_input_stream.ReInit(stream, 1, 1);
552 jj_gen = 0;570 }
553 for (int i = 0; i < 10; i++) jj_la1[i] = -1;571 if (token_source == null) {
554 for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();572 token_source = new TAPAALCTLQueryParserTokenManager(jj_input_stream);
555 }573 }
556574
557 private Token jj_consume_token(int kind) throws ParseException {575 token_source.ReInit(jj_input_stream);
558 Token oldToken;576 token = new Token();
559 if ((oldToken = token).next != null) token = token.next;577 jj_ntk = -1;
560 else token = token.next = token_source.getNextToken();578 jj_gen = 0;
561 jj_ntk = -1;579 for (int i = 0; i < 10; i++) jj_la1[i] = -1;
562 if (token.kind == kind) {580 for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
563 jj_gen++;581 }
564 if (++jj_gc > 100) {582
565 jj_gc = 0;583 /** Constructor with generated Token Manager. */
566 for (int i = 0; i < jj_2_rtns.length; i++) {584 public TAPAALCTLQueryParser(TAPAALCTLQueryParserTokenManager tm) {
567 JJCalls c = jj_2_rtns[i];585 token_source = tm;
568 while (c != null) {586 token = new Token();
569 if (c.gen < jj_gen) c.first = null;587 jj_ntk = -1;
570 c = c.next;588 jj_gen = 0;
571 }589 for (int i = 0; i < 10; i++) jj_la1[i] = -1;
572 }590 for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
573 }591 }
574 return token;592
575 }593 /** Reinitialise. */
576 token = oldToken;594 public void ReInit(TAPAALCTLQueryParserTokenManager tm) {
577 jj_kind = kind;595 token_source = tm;
578 throw generateParseException();596 token = new Token();
579 }597 jj_ntk = -1;
580598 jj_gen = 0;
581 static private final class LookaheadSuccess extends java.lang.Error { }599 for (int i = 0; i < 10; i++) jj_la1[i] = -1;
582 final private LookaheadSuccess jj_ls = new LookaheadSuccess();600 for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
583 private boolean jj_scan_token(int kind) {601 }
584 if (jj_scanpos == jj_lastpos) {602
585 jj_la--;603 private Token jj_consume_token(int kind) throws ParseException {
586 if (jj_scanpos.next == null) {604 Token oldToken;
587 jj_lastpos = jj_scanpos = jj_scanpos.next = token_source.getNextToken();605 if ((oldToken = token).next != null) token = token.next;
588 } else {606 else token = token.next = token_source.getNextToken();
589 jj_lastpos = jj_scanpos = jj_scanpos.next;607 jj_ntk = -1;
590 }608 if (token.kind == kind) {
591 } else {609 jj_gen++;
592 jj_scanpos = jj_scanpos.next;610 if (++jj_gc > 100) {
593 }611 jj_gc = 0;
594 if (jj_rescan) {612 for (int i = 0; i < jj_2_rtns.length; i++) {
595 int i = 0; Token tok = token;613 JJCalls c = jj_2_rtns[i];
596 while (tok != null && tok != jj_scanpos) { i++; tok = tok.next; }614 while (c != null) {
597 if (tok != null) jj_add_error_token(kind, i);615 if (c.gen < jj_gen) c.first = null;
598 }616 c = c.next;
599 if (jj_scanpos.kind != kind) return true;617 }
600 if (jj_la == 0 && jj_scanpos == jj_lastpos) throw jj_ls;618 }
601 return false;619 }
602 }620 return token;
603621 }
604622 token = oldToken;
605/** Get the next Token. */623 jj_kind = kind;
606 final public Token getNextToken() {624 throw generateParseException();
607 if (token.next != null) token = token.next;625 }
608 else token = token.next = token_source.getNextToken();626
609 jj_ntk = -1;627 @SuppressWarnings("serial")
610 jj_gen++;628 static private final class LookaheadSuccess extends java.lang.Error {
611 return token;629 @Override
612 }630 public Throwable fillInStackTrace() {
613631 return this;
614/** Get the specific Token. */632 }
615 final public Token getToken(int index) {633 }
616 Token t = token;634 static private final LookaheadSuccess jj_ls = new LookaheadSuccess();
617 for (int i = 0; i < index; i++) {635 private boolean jj_scan_token(int kind) {
618 if (t.next != null) t = t.next;636 if (jj_scanpos == jj_lastpos) {
619 else t = t.next = token_source.getNextToken();637 jj_la--;
620 }638 if (jj_scanpos.next == null) {
621 return t;639 jj_lastpos = jj_scanpos = jj_scanpos.next = token_source.getNextToken();
622 }640 } else {
623641 jj_lastpos = jj_scanpos = jj_scanpos.next;
624 private int jj_ntk() {642 }
625 if ((jj_nt=token.next) == null)643 } else {
626 return (jj_ntk = (token.next=token_source.getNextToken()).kind);644 jj_scanpos = jj_scanpos.next;
627 else645 }
628 return (jj_ntk = jj_nt.kind);646 if (jj_rescan) {
629 }647 int i = 0; Token tok = token;
630648 while (tok != null && tok != jj_scanpos) { i++; tok = tok.next; }
631 private java.util.List<int[]> jj_expentries = new java.util.ArrayList<int[]>();649 if (tok != null) jj_add_error_token(kind, i);
632 private int[] jj_expentry;650 }
633 private int jj_kind = -1;651 if (jj_scanpos.kind != kind) return true;
634 private int[] jj_lasttokens = new int[100];652 if (jj_la == 0 && jj_scanpos == jj_lastpos) throw jj_ls;
635 private int jj_endpos;653 return false;
636654 }
637 private void jj_add_error_token(int kind, int pos) {655
638 if (pos >= 100) return;656
639 if (pos == jj_endpos + 1) {657 /** Get the next Token. */
640 jj_lasttokens[jj_endpos++] = kind;658 final public Token getNextToken() {
641 } else if (jj_endpos != 0) {659 if (token.next != null) token = token.next;
642 jj_expentry = new int[jj_endpos];660 else token = token.next = token_source.getNextToken();
643 for (int i = 0; i < jj_endpos; i++) {661 jj_ntk = -1;
644 jj_expentry[i] = jj_lasttokens[i];662 jj_gen++;
645 }663 return token;
646 boolean exists = false;664 }
647 for (java.util.Iterator<?> it = jj_expentries.iterator(); it.hasNext();) {665
648 exists = true;666 /** Get the specific Token. */
649 int[] oldentry = (int[])(it.next());667 final public Token getToken(int index) {
650 if (oldentry.length == jj_expentry.length) {668 Token t = token;
651 for (int i = 0; i < jj_expentry.length; i++) {669 for (int i = 0; i < index; i++) {
652 if (oldentry[i] != jj_expentry[i]) {670 if (t.next != null) t = t.next;
653 exists = false;671 else t = t.next = token_source.getNextToken();
654 break;672 }
655 }673 return t;
656 }674 }
657 if (exists) break;675
658 }676 private int jj_ntk_f() {
659 }677 if ((jj_nt=token.next) == null)
660 if (!exists) jj_expentries.add(jj_expentry);678 return (jj_ntk = (token.next=token_source.getNextToken()).kind);
661 if (pos != 0) jj_lasttokens[(jj_endpos = pos) - 1] = kind;679 else
662 }680 return (jj_ntk = jj_nt.kind);
663 }681 }
664682
665 /** Generate ParseException. */683 private java.util.List<int[]> jj_expentries = new java.util.ArrayList<int[]>();
666 public ParseException generateParseException() {684 private int[] jj_expentry;
667 jj_expentries.clear();685 private int jj_kind = -1;
668 boolean[] la1tokens = new boolean[29];686 private int[] jj_lasttokens = new int[100];
669 if (jj_kind >= 0) {687 private int jj_endpos;
670 la1tokens[jj_kind] = true;688
671 jj_kind = -1;689 private void jj_add_error_token(int kind, int pos) {
672 }690 if (pos >= 100) {
673 for (int i = 0; i < 10; i++) {691 return;
674 if (jj_la1[i] == jj_gen) {692 }
675 for (int j = 0; j < 32; j++) {693
676 if ((jj_la1_0[i] & (1<<j)) != 0) {694 if (pos == jj_endpos + 1) {
677 la1tokens[j] = true;695 jj_lasttokens[jj_endpos++] = kind;
678 }696 } else if (jj_endpos != 0) {
679 }697 jj_expentry = new int[jj_endpos];
680 }698
681 }699 for (int i = 0; i < jj_endpos; i++) {
682 for (int i = 0; i < 29; i++) {700 jj_expentry[i] = jj_lasttokens[i];
683 if (la1tokens[i]) {701 }
684 jj_expentry = new int[1];702
685 jj_expentry[0] = i;703 for (int[] oldentry : jj_expentries) {
686 jj_expentries.add(jj_expentry);704 if (oldentry.length == jj_expentry.length) {
687 }705 boolean isMatched = true;
688 }706
689 jj_endpos = 0;707 for (int i = 0; i < jj_expentry.length; i++) {
690 jj_rescan_token();708 if (oldentry[i] != jj_expentry[i]) {
691 jj_add_error_token(0, 0);709 isMatched = false;
692 int[][] exptokseq = new int[jj_expentries.size()][];710 break;
693 for (int i = 0; i < jj_expentries.size(); i++) {711 }
694 exptokseq[i] = jj_expentries.get(i);712
695 }713 }
696 return new ParseException(token, exptokseq, tokenImage);714 if (isMatched) {
697 }715 jj_expentries.add(jj_expentry);
698716 break;
699 /** Enable tracing. */717 }
700 final public void enable_tracing() {718 }
701 }719 }
702720
703 /** Disable tracing. */721 if (pos != 0) {
704 final public void disable_tracing() {722 jj_lasttokens[(jj_endpos = pos) - 1] = kind;
705 }723 }
706724 }
707 private void jj_rescan_token() {725 }
708 jj_rescan = true;726
709 for (int i = 0; i < 3; i++) {727 /** Generate ParseException. */
710 try {728 public ParseException generateParseException() {
711 JJCalls p = jj_2_rtns[i];729 jj_expentries.clear();
712 do {730 boolean[] la1tokens = new boolean[29];
713 if (p.gen > jj_gen) {731 if (jj_kind >= 0) {
714 jj_la = p.arg; jj_lastpos = jj_scanpos = p.first;732 la1tokens[jj_kind] = true;
715 switch (i) {733 jj_kind = -1;
716 case 0: jj_3_1(); break;734 }
717 case 1: jj_3_2(); break;735 for (int i = 0; i < 10; i++) {
718 case 2: jj_3_3(); break;736 if (jj_la1[i] == jj_gen) {
719 }737 for (int j = 0; j < 32; j++) {
720 }738 if ((jj_la1_0[i] & (1<<j)) != 0) {
721 p = p.next;739 la1tokens[j] = true;
722 } while (p != null);740 }
723 } catch(LookaheadSuccess ls) { }741 }
724 }742 }
725 jj_rescan = false;743 }
726 }744 for (int i = 0; i < 29; i++) {
727745 if (la1tokens[i]) {
728 private void jj_save(int index, int xla) {746 jj_expentry = new int[1];
729 JJCalls p = jj_2_rtns[index];747 jj_expentry[0] = i;
730 while (p.gen > jj_gen) {748 jj_expentries.add(jj_expentry);
731 if (p.next == null) { p = p.next = new JJCalls(); break; }749 }
732 p = p.next;750 }
733 }751 jj_endpos = 0;
734 p.gen = jj_gen + xla - jj_la; p.first = token; p.arg = xla;752 jj_rescan_token();
735 }753 jj_add_error_token(0, 0);
736754 int[][] exptokseq = new int[jj_expentries.size()][];
737 static final class JJCalls {755 for (int i = 0; i < jj_expentries.size(); i++) {
738 int gen;756 exptokseq[i] = jj_expentries.get(i);
739 Token first;757 }
740 int arg;758 return new ParseException(token, exptokseq, tokenImage);
741 JJCalls next;759 }
742 }760
761 private boolean trace_enabled;
762
763 /** Trace enabled. */
764 final public boolean trace_enabled() {
765 return trace_enabled;
766 }
767
768 /** Enable tracing. */
769 final public void enable_tracing() {
770 }
771
772 /** Disable tracing. */
773 final public void disable_tracing() {
774 }
775
776 private void jj_rescan_token() {
777 jj_rescan = true;
778 for (int i = 0; i < 3; i++) {
779 try {
780 JJCalls p = jj_2_rtns[i];
781
782 do {
783 if (p.gen > jj_gen) {
784 jj_la = p.arg; jj_lastpos = jj_scanpos = p.first;
785 switch (i) {
786 case 0: jj_3_1(); break;
787 case 1: jj_3_2(); break;
788 case 2: jj_3_3(); break;
789 }
790 }
791 p = p.next;
792 } while (p != null);
793
794 } catch(LookaheadSuccess ls) { }
795 }
796 jj_rescan = false;
797 }
798
799 private void jj_save(int index, int xla) {
800 JJCalls p = jj_2_rtns[index];
801 while (p.gen > jj_gen) {
802 if (p.next == null) { p = p.next = new JJCalls(); break; }
803 p = p.next;
804 }
805
806 p.gen = jj_gen + xla - jj_la;
807 p.first = token;
808 p.arg = xla;
809 }
810
811 static final class JJCalls {
812 int gen;
813 Token first;
814 int arg;
815 JJCalls next;
816 }
743817
744}818}
745819
=== modified file 'src/dk/aau/cs/TCTL/Parsing/TAPAALQueryParser.java'
--- src/dk/aau/cs/TCTL/Parsing/TAPAALQueryParser.java 2014-05-22 20:26:41 +0000
+++ src/dk/aau/cs/TCTL/Parsing/TAPAALQueryParser.java 2021-09-29 07:20:55 +0000
@@ -1,3 +1,4 @@
1/* TAPAALQueryParser.java */
1/* Generated By:JavaCC: Do not edit this line. TAPAALQueryParser.java */2/* Generated By:JavaCC: Do not edit this line. TAPAALQueryParser.java */
2package dk.aau.cs.TCTL.Parsing;3package dk.aau.cs.TCTL.Parsing;
34
@@ -25,624 +26,691 @@
2526
26public class TAPAALQueryParser implements TAPAALQueryParserConstants {27public class TAPAALQueryParser implements TAPAALQueryParserConstants {
2728
28 private static final String ERROR_PARSING_QUERY_MESSAGE = "TAPAAL countered an error trying to parse the query";29 private static final String ERROR_PARSING_QUERY_MESSAGE = "TAPAAL countered an error trying to parse the query";
2930
30 public static TCTLAbstractProperty parse(String query) throws ParseException {31 public static TCTLAbstractProperty parse(String query) throws ParseException {
31 TAPAALQueryParser parser = new TAPAALQueryParser(new StringReader(query));32 TAPAALQueryParser parser = new TAPAALQueryParser(new StringReader(query));
32 return parser.AbstractProperty();33 return parser.Start();
34 }
35
36 /** Root production. */
37 final public TCTLAbstractProperty Start() throws ParseException {TCTLAbstractProperty child = null;
38 child = AbstractProperty();
39 jj_consume_token(0);
40 {if ("" != null) return child;}
41 throw new Error("Missing return statement in function");
42 }
43
44 final public TCTLAbstractProperty AbstractProperty() throws ParseException {TCTLAbstractStateProperty child = null;
45 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
46 case EF:{
47 jj_consume_token(EF);
48 child = OrExpr();
49 {if ("" != null) return new TCTLEFNode(child);}
50 break;
51 }
52 case EG:{
53 jj_consume_token(EG);
54 child = OrExpr();
55 {if ("" != null) return new TCTLEGNode(child);}
56 break;
57 }
58 case AF:{
59 jj_consume_token(AF);
60 child = OrExpr();
61 {if ("" != null) return new TCTLAFNode(child);}
62 break;
63 }
64 case AG:{
65 jj_consume_token(AG);
66 child = OrExpr();
67 {if ("" != null) return new TCTLAGNode(child);}
68 break;
69 }
70 default:
71 jj_la1[0] = jj_gen;
72 jj_consume_token(-1);
73 throw new ParseException();
33 }74 }
3475 throw new Error("Missing return statement in function");
35/** Root production. */
36 final public TCTLAbstractProperty AbstractProperty() throws ParseException {
37 TCTLAbstractStateProperty child = null;
38 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
39 case EF:
40 jj_consume_token(EF);
41 child = OrExpr();
42 {if (true) return new TCTLEFNode(child);}
43 break;
44 case EG:
45 jj_consume_token(EG);
46 child = OrExpr();
47 {if (true) return new TCTLEGNode(child);}
48 break;
49 case AF:
50 jj_consume_token(AF);
51 child = OrExpr();
52 {if (true) return new TCTLAFNode(child);}
53 break;
54 case AG:
55 jj_consume_token(AG);
56 child = OrExpr();
57 {if (true) return new TCTLAGNode(child);}
58 break;
59 default:
60 jj_la1[0] = jj_gen;
61 jj_consume_token(-1);
62 throw new ParseException();
63 }76 }
64 throw new Error("Missing return statement in function");
65 }
6677
67 final public TCTLAbstractStateProperty OrExpr() throws ParseException {78 final public TCTLAbstractStateProperty OrExpr() throws ParseException {TCTLAbstractStateProperty currentChild;
68 TCTLAbstractStateProperty currentChild;
69 ArrayList<TCTLAbstractStateProperty> disjunctions = new ArrayList<TCTLAbstractStateProperty>();79 ArrayList<TCTLAbstractStateProperty> disjunctions = new ArrayList<TCTLAbstractStateProperty>();
70 currentChild = AndExpr();80 currentChild = AndExpr();
71 disjunctions.add(currentChild);81 disjunctions.add(currentChild);
72 label_1:82 label_1:
73 while (true) {83 while (true) {
74 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {84 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
75 case OR:85 case OR:{
76 ;86 ;
77 break;87 break;
78 default:88 }
79 jj_la1[1] = jj_gen;89 default:
80 break label_1;90 jj_la1[1] = jj_gen;
81 }91 break label_1;
82 jj_consume_token(OR);92 }
83 currentChild = AndExpr();93 jj_consume_token(OR);
84 disjunctions.add(currentChild);94 currentChild = AndExpr();
95 disjunctions.add(currentChild);
96 }
97 {if ("" != null) return disjunctions.size() == 1 ? currentChild : new TCTLOrListNode(disjunctions);}
98 throw new Error("Missing return statement in function");
85 }99 }
86 {if (true) return disjunctions.size() == 1 ? currentChild : new TCTLOrListNode(disjunctions);}
87 throw new Error("Missing return statement in function");
88 }
89100
90 final public TCTLAbstractStateProperty AndExpr() throws ParseException {101 final public TCTLAbstractStateProperty AndExpr() throws ParseException {TCTLAbstractStateProperty currentChild;
91 TCTLAbstractStateProperty currentChild;
92 ArrayList<TCTLAbstractStateProperty> conjunctions = new ArrayList<TCTLAbstractStateProperty>();102 ArrayList<TCTLAbstractStateProperty> conjunctions = new ArrayList<TCTLAbstractStateProperty>();
93 currentChild = NotExpr();103 currentChild = NotExpr();
94 conjunctions.add(currentChild);104 conjunctions.add(currentChild);
95 label_2:105 label_2:
96 while (true) {106 while (true) {
97 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {107 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
98 case AND:108 case AND:{
99 ;109 ;
100 break;110 break;
101 default:111 }
102 jj_la1[2] = jj_gen;112 default:
103 break label_2;113 jj_la1[2] = jj_gen;
104 }114 break label_2;
105 jj_consume_token(AND);115 }
106 currentChild = NotExpr();116 jj_consume_token(AND);
107 conjunctions.add(currentChild);117 currentChild = NotExpr();
108 }118 conjunctions.add(currentChild);
109 {if (true) return conjunctions.size() == 1 ? currentChild : new TCTLAndListNode(conjunctions);}119 }
110 throw new Error("Missing return statement in function");120 {if ("" != null) return conjunctions.size() == 1 ? currentChild : new TCTLAndListNode(conjunctions);}
111 }121 throw new Error("Missing return statement in function");
112122 }
113 final public TCTLAbstractStateProperty NotExpr() throws ParseException {123
114 TCTLAbstractStateProperty child;124 final public TCTLAbstractStateProperty NotExpr() throws ParseException {TCTLAbstractStateProperty child;
115 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {125 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
116 case NOT:126 case NOT:{
117 jj_consume_token(NOT);127 jj_consume_token(NOT);
118 jj_consume_token(20);128 jj_consume_token(20);
119 child = OrExpr();129 child = OrExpr();
120 jj_consume_token(21);130 jj_consume_token(21);
121 {if (true) return new TCTLNotNode(child);}131 {if ("" != null) return new TCTLNotNode(child);}
122 break;132 break;
123 case TRUE:133 }
124 case FALSE:134 case TRUE:
125 case DEADLOCK:135 case FALSE:
126 case NUM:136 case DEADLOCK:
127 case IDENT:137 case NUM:
128 case 20:138 case IDENT:
129 child = Factor();139 case 20:{
130 {if (true) return child;}140 child = Factor();
131 break;141 {if ("" != null) return child;}
132 default:142 break;
133 jj_la1[3] = jj_gen;143 }
134 jj_consume_token(-1);144 default:
135 throw new ParseException();145 jj_la1[3] = jj_gen;
136 }146 jj_consume_token(-1);
137 throw new Error("Missing return statement in function");147 throw new ParseException();
138 }148 }
139149 throw new Error("Missing return statement in function");
140 final public TCTLAbstractStateProperty Factor() throws ParseException {150 }
141 TCTLAbstractStateProperty thisProp;151
142 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {152 final public TCTLAbstractStateProperty Factor() throws ParseException {TCTLAbstractStateProperty thisProp;
143 case TRUE:153 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
144 jj_consume_token(TRUE);154 case TRUE:{
145 thisProp = new TCTLTrueNode();155 jj_consume_token(TRUE);
146 break;156 thisProp = new TCTLTrueNode();
147 case FALSE:157 break;
148 jj_consume_token(FALSE);158 }
149 thisProp = new TCTLFalseNode();159 case FALSE:{
150 break;160 jj_consume_token(FALSE);
151 case DEADLOCK:161 thisProp = new TCTLFalseNode();
152 jj_consume_token(DEADLOCK);162 break;
153 thisProp = new TCTLDeadlockNode();163 }
154 break;164 case DEADLOCK:{
155 default:165 jj_consume_token(DEADLOCK);
156 jj_la1[4] = jj_gen;166 thisProp = new TCTLDeadlockNode();
157 if (jj_2_1(2147483647)) {167 break;
158 thisProp = AtomicProposition();168 }
159 } else {169 default:
160 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {170 jj_la1[4] = jj_gen;
161 case 20:171 if (jj_2_1(2147483647)) {
162 jj_consume_token(20);172 thisProp = AtomicProposition();
163 thisProp = OrExpr();173 } else {
164 jj_consume_token(21);174 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
165 break;175 case 20:{
166 default:176 jj_consume_token(20);
167 jj_la1[5] = jj_gen;177 thisProp = OrExpr();
168 jj_consume_token(-1);178 jj_consume_token(21);
169 throw new ParseException();179 break;
170 }180 }
171 }181 default:
172 }182 jj_la1[5] = jj_gen;
173 {if (true) return thisProp;}183 jj_consume_token(-1);
174 throw new Error("Missing return statement in function");184 throw new ParseException();
175 }185 }
176186 }
177 final public TCTLAbstractStateProperty AtomicProposition() throws ParseException {187 }
178 TCTLAbstractStateProperty left;188 {if ("" != null) return thisProp;}
189 throw new Error("Missing return statement in function");
190 }
191
192 final public TCTLAbstractStateProperty AtomicProposition() throws ParseException {TCTLAbstractStateProperty left;
179 TCTLAbstractStateProperty right;193 TCTLAbstractStateProperty right;
180 Token op;194 Token op;
181 left = AritmeticExpr();195 left = AritmeticExpr();
182 op = jj_consume_token(OP);196 op = jj_consume_token(OP);
183 right = AritmeticExpr();197 right = AritmeticExpr();
184 {if (true) return new TCTLAtomicPropositionNode(left, op.image, right);}198 {if ("" != null) return new TCTLAtomicPropositionNode(left, op.image, right);}
185 throw new Error("Missing return statement in function");199 throw new Error("Missing return statement in function");
186 }200 }
187201
188 final public TCTLAbstractStateProperty AritmeticExpr() throws ParseException {202 final public TCTLAbstractStateProperty AritmeticExpr() throws ParseException {TCTLAbstractStateProperty currentChild;
189 TCTLAbstractStateProperty currentChild;
190 ArrayList<TCTLAbstractStateProperty> terms = new ArrayList<TCTLAbstractStateProperty>();203 ArrayList<TCTLAbstractStateProperty> terms = new ArrayList<TCTLAbstractStateProperty>();
191 Token op;204 Token op;
192 currentChild = AritmeticTerm();205 currentChild = AritmeticTerm();
193 terms.add(currentChild);206 terms.add(currentChild);
194 label_3:207 label_3:
195 while (true) {208 while (true) {
196 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {209 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
197 case PLUS:210 case PLUS:{
198 ;211 ;
199 break;212 break;
200 default:213 }
201 jj_la1[6] = jj_gen;214 default:
202 break label_3;215 jj_la1[6] = jj_gen;
203 }216 break label_3;
204 op = jj_consume_token(PLUS);217 }
205 currentChild = AritmeticTerm();218 op = jj_consume_token(PLUS);
206 terms.add(new AritmeticOperator(op.image));219 currentChild = AritmeticTerm();
207 terms.add(currentChild);220 terms.add(new AritmeticOperator(op.image));
221 terms.add(currentChild);
222 }
223 {if ("" != null) return terms.size() == 1 ? currentChild : new TCTLPlusListNode(terms);}
224 throw new Error("Missing return statement in function");
208 }225 }
209 {if (true) return terms.size() == 1 ? currentChild : new TCTLPlusListNode(terms);}
210 throw new Error("Missing return statement in function");
211 }
212226
213 final public TCTLAbstractStateProperty AritmeticTerm() throws ParseException {227 final public TCTLAbstractStateProperty AritmeticTerm() throws ParseException {TCTLAbstractStateProperty currentChild;
214 TCTLAbstractStateProperty currentChild;
215 ArrayList<TCTLAbstractStateProperty> factors = new ArrayList<TCTLAbstractStateProperty>();228 ArrayList<TCTLAbstractStateProperty> factors = new ArrayList<TCTLAbstractStateProperty>();
216 Token op;229 Token op;
217 currentChild = AritmeticFactor();230 currentChild = AritmeticFactor();
218 factors.add(currentChild);231 factors.add(currentChild);
219 label_4:232 label_4:
220 while (true) {233 while (true) {
221 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {234 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
222 case MULT:235 case MULT:{
223 ;236 ;
224 break;237 break;
225 default:238 }
226 jj_la1[7] = jj_gen;239 default:
227 break label_4;240 jj_la1[7] = jj_gen;
228 }241 break label_4;
229 op = jj_consume_token(MULT);242 }
230 currentChild = AritmeticFactor();243 op = jj_consume_token(MULT);
231 factors.add(new AritmeticOperator(op.image));244 currentChild = AritmeticFactor();
232 factors.add(currentChild);245 factors.add(new AritmeticOperator(op.image));
246 factors.add(currentChild);
247 }
248 {if ("" != null) return factors.size() == 1 ? currentChild : new TCTLTermListNode(factors);}
249 throw new Error("Missing return statement in function");
233 }250 }
234 {if (true) return factors.size() == 1 ? currentChild : new TCTLTermListNode(factors);}
235 throw new Error("Missing return statement in function");
236 }
237251
238 final public TCTLAbstractStateProperty AritmeticFactor() throws ParseException {252 final public TCTLAbstractStateProperty AritmeticFactor() throws ParseException {TCTLAbstractStateProperty thisProp;
239 TCTLAbstractStateProperty thisProp;
240 Token template = null;253 Token template = null;
241 Token place;254 Token place;
242 Token op;255 Token op;
243 Token num;256 Token num;
244 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {257 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
245 case IDENT:258 case IDENT:{
246 if (jj_2_2(2)) {259 if (jj_2_2(2)) {
247 template = jj_consume_token(IDENT);260 template = jj_consume_token(IDENT);
248 jj_consume_token(22);261 jj_consume_token(22);
249 } else {262 } else {
250 ;263 ;
251 }264 }
252 place = jj_consume_token(IDENT);265 place = jj_consume_token(IDENT);
253 thisProp = new TCTLPlaceNode(template == null ? "" : template.image, place.image);266 thisProp = new TCTLPlaceNode(template == null ? "" : template.image, place.image);
254 break;267 break;
255 case NUM:268 }
256 num = jj_consume_token(NUM);269 case NUM:{
257 thisProp = new TCTLConstNode(Integer.parseInt(num.image));270 num = jj_consume_token(NUM);
258 break;271 thisProp = new TCTLConstNode(Integer.parseInt(num.image));
259 case 20:272 break;
260 jj_consume_token(20);273 }
261 thisProp = AritmeticExpr();274 case 20:{
262 jj_consume_token(21);275 jj_consume_token(20);
263 break;276 thisProp = AritmeticExpr();
264 default:277 jj_consume_token(21);
265 jj_la1[8] = jj_gen;278 break;
266 jj_consume_token(-1);279 }
267 throw new ParseException();280 default:
268 }281 jj_la1[8] = jj_gen;
269 {if (true) return thisProp;}282 jj_consume_token(-1);
270 throw new Error("Missing return statement in function");283 throw new ParseException();
271 }284 }
272285 {if ("" != null) return thisProp;}
273 private boolean jj_2_1(int xla) {286 throw new Error("Missing return statement in function");
274 jj_la = xla; jj_lastpos = jj_scanpos = token;287 }
275 try { return !jj_3_1(); }288
276 catch(LookaheadSuccess ls) { return true; }289 private boolean jj_2_1(int xla)
277 finally { jj_save(0, xla); }290 {
278 }291 jj_la = xla; jj_lastpos = jj_scanpos = token;
279292 try { return (!jj_3_1()); }
280 private boolean jj_2_2(int xla) {293 catch(LookaheadSuccess ls) { return true; }
281 jj_la = xla; jj_lastpos = jj_scanpos = token;294 finally { jj_save(0, xla); }
282 try { return !jj_3_2(); }295 }
283 catch(LookaheadSuccess ls) { return true; }296
284 finally { jj_save(1, xla); }297 private boolean jj_2_2(int xla)
285 }298 {
286299 jj_la = xla; jj_lastpos = jj_scanpos = token;
287 private boolean jj_3_1() {300 try { return (!jj_3_2()); }
288 if (jj_3R_5()) return true;301 catch(LookaheadSuccess ls) { return true; }
289 return false;302 finally { jj_save(1, xla); }
290 }303 }
291304
292 private boolean jj_3R_8() {305 private boolean jj_3_2()
293 if (jj_scan_token(PLUS)) return true;306 {
294 if (jj_3R_7()) return true;307 if (jj_scan_token(IDENT)) return true;
295 return false;308 if (jj_scan_token(22)) return true;
296 }309 return false;
297310 }
298 private boolean jj_3R_5() {311
299 if (jj_3R_6()) return true;312 private boolean jj_3R_AritmeticFactor_256_17_11()
300 if (jj_scan_token(OP)) return true;313 {
301 if (jj_3R_6()) return true;314 Token xsp;
302 return false;315 xsp = jj_scanpos;
303 }316 if (jj_3_2()) jj_scanpos = xsp;
304317 if (jj_scan_token(IDENT)) return true;
305 private boolean jj_3R_13() {318 return false;
306 if (jj_scan_token(20)) return true;319 }
307 if (jj_3R_6()) return true;320
308 if (jj_scan_token(21)) return true;321 private boolean jj_3R_AritmeticExpr_215_9_6()
309 return false;322 {
310 }323 if (jj_3R_AritmeticTerm_234_9_7()) return true;
311324 Token xsp;
312 private boolean jj_3R_10() {325 while (true) {
313 if (jj_scan_token(MULT)) return true;326 xsp = jj_scanpos;
314 if (jj_3R_9()) return true;327 if (jj_3R_AritmeticExpr_218_17_8()) { jj_scanpos = xsp; break; }
315 return false;328 }
316 }329 return false;
317330 }
318 private boolean jj_3R_12() {331
319 if (jj_scan_token(NUM)) return true;332 private boolean jj_3R_AritmeticTerm_234_9_7()
320 return false;333 {
321 }334 if (jj_3R_AritmeticFactor_255_9_9()) return true;
322335 Token xsp;
323 private boolean jj_3_2() {336 while (true) {
324 if (jj_scan_token(IDENT)) return true;337 xsp = jj_scanpos;
325 if (jj_scan_token(22)) return true;338 if (jj_3R_AritmeticTerm_237_17_10()) { jj_scanpos = xsp; break; }
326 return false;339 }
327 }340 return false;
328341 }
329 private boolean jj_3R_11() {342
330 Token xsp;343 private boolean jj_3R_AritmeticFactor_255_9_9()
331 xsp = jj_scanpos;344 {
332 if (jj_3_2()) jj_scanpos = xsp;345 Token xsp;
333 if (jj_scan_token(IDENT)) return true;346 xsp = jj_scanpos;
334 return false;347 if (jj_3R_AritmeticFactor_256_17_11()) {
335 }348 jj_scanpos = xsp;
336349 if (jj_3R_AritmeticFactor_257_19_12()) {
337 private boolean jj_3R_6() {350 jj_scanpos = xsp;
338 if (jj_3R_7()) return true;351 if (jj_3R_AritmeticFactor_258_19_13()) return true;
339 Token xsp;352 }
340 while (true) {353 }
341 xsp = jj_scanpos;354 return false;
342 if (jj_3R_8()) { jj_scanpos = xsp; break; }355 }
343 }356
344 return false;357 private boolean jj_3_1()
345 }358 {
346359 if (jj_3R_AtomicProposition_200_9_5()) return true;
347 private boolean jj_3R_7() {360 return false;
348 if (jj_3R_9()) return true;361 }
349 Token xsp;362
350 while (true) {363 private boolean jj_3R_AritmeticExpr_218_17_8()
351 xsp = jj_scanpos;364 {
352 if (jj_3R_10()) { jj_scanpos = xsp; break; }365 if (jj_scan_token(PLUS)) return true;
353 }366 if (jj_3R_AritmeticTerm_234_9_7()) return true;
354 return false;367 return false;
355 }368 }
356369
357 private boolean jj_3R_9() {370 private boolean jj_3R_AtomicProposition_200_9_5()
358 Token xsp;371 {
359 xsp = jj_scanpos;372 if (jj_3R_AritmeticExpr_215_9_6()) return true;
360 if (jj_3R_11()) {373 if (jj_scan_token(OP)) return true;
361 jj_scanpos = xsp;374 if (jj_3R_AritmeticExpr_215_9_6()) return true;
362 if (jj_3R_12()) {375 return false;
363 jj_scanpos = xsp;376 }
364 if (jj_3R_13()) return true;377
365 }378 private boolean jj_3R_AritmeticFactor_258_19_13()
366 }379 {
367 return false;380 if (jj_scan_token(20)) return true;
368 }381 if (jj_3R_AritmeticExpr_215_9_6()) return true;
369382 if (jj_scan_token(21)) return true;
370 /** Generated Token Manager. */383 return false;
371 public TAPAALQueryParserTokenManager token_source;384 }
372 SimpleCharStream jj_input_stream;385
373 /** Current token. */386 private boolean jj_3R_AritmeticTerm_237_17_10()
374 public Token token;387 {
375 /** Next token. */388 if (jj_scan_token(MULT)) return true;
376 public Token jj_nt;389 if (jj_3R_AritmeticFactor_255_9_9()) return true;
377 private int jj_ntk;390 return false;
378 private Token jj_scanpos, jj_lastpos;391 }
379 private int jj_la;392
380 private int jj_gen;393 private boolean jj_3R_AritmeticFactor_257_19_12()
381 final private int[] jj_la1 = new int[9];394 {
382 static private int[] jj_la1_0;395 if (jj_scan_token(NUM)) return true;
383 static {396 return false;
384 jj_la1_init_0();397 }
385 }398
386 private static void jj_la1_init_0() {399 /** Generated Token Manager. */
387 jj_la1_0 = new int[] {0xf0,0x100,0x200,0x10640e,0xe,0x100000,0x800,0x1000,0x106000,};400 public TAPAALQueryParserTokenManager token_source;
388 }401 SimpleCharStream jj_input_stream;
389 final private JJCalls[] jj_2_rtns = new JJCalls[2];402 /** Current token. */
390 private boolean jj_rescan = false;403 public Token token;
391 private int jj_gc = 0;404 /** Next token. */
392405 public Token jj_nt;
393 /** Constructor with InputStream. */406 private int jj_ntk;
394 public TAPAALQueryParser(java.io.InputStream stream) {407 private Token jj_scanpos, jj_lastpos;
395 this(stream, null);408 private int jj_la;
396 }409 private int jj_gen;
397 /** Constructor with InputStream and supplied encoding */410 final private int[] jj_la1 = new int[9];
398 public TAPAALQueryParser(java.io.InputStream stream, String encoding) {411 static private int[] jj_la1_0;
399 try { jj_input_stream = new SimpleCharStream(stream, encoding, 1, 1); } catch(java.io.UnsupportedEncodingException e) { throw new RuntimeException(e); }412 static {
400 token_source = new TAPAALQueryParserTokenManager(jj_input_stream);413 jj_la1_init_0();
401 token = new Token();414 }
402 jj_ntk = -1;415 private static void jj_la1_init_0() {
403 jj_gen = 0;416 jj_la1_0 = new int[] {0xf0,0x100,0x200,0x10640e,0xe,0x100000,0x800,0x1000,0x106000,};
404 for (int i = 0; i < 9; i++) jj_la1[i] = -1;417 }
405 for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();418 final private JJCalls[] jj_2_rtns = new JJCalls[2];
406 }419 private boolean jj_rescan = false;
407420 private int jj_gc = 0;
408 /** Reinitialise. */421
409 public void ReInit(java.io.InputStream stream) {422 /** Constructor with InputStream. */
410 ReInit(stream, null);423 public TAPAALQueryParser(java.io.InputStream stream) {
411 }424 this(stream, null);
412 /** Reinitialise. */425 }
413 public void ReInit(java.io.InputStream stream, String encoding) {426 /** Constructor with InputStream and supplied encoding */
414 try { jj_input_stream.ReInit(stream, encoding, 1, 1); } catch(java.io.UnsupportedEncodingException e) { throw new RuntimeException(e); }427 public TAPAALQueryParser(java.io.InputStream stream, String encoding) {
415 token_source.ReInit(jj_input_stream);428 try { jj_input_stream = new SimpleCharStream(stream, encoding, 1, 1); } catch(java.io.UnsupportedEncodingException e) { throw new RuntimeException(e); }
416 token = new Token();429 token_source = new TAPAALQueryParserTokenManager(jj_input_stream);
417 jj_ntk = -1;430 token = new Token();
418 jj_gen = 0;431 jj_ntk = -1;
419 for (int i = 0; i < 9; i++) jj_la1[i] = -1;432 jj_gen = 0;
420 for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();433 for (int i = 0; i < 9; i++) jj_la1[i] = -1;
421 }434 for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
422435 }
423 /** Constructor. */436
424 public TAPAALQueryParser(java.io.Reader stream) {437 /** Reinitialise. */
425 jj_input_stream = new SimpleCharStream(stream, 1, 1);438 public void ReInit(java.io.InputStream stream) {
426 token_source = new TAPAALQueryParserTokenManager(jj_input_stream);439 ReInit(stream, null);
427 token = new Token();440 }
428 jj_ntk = -1;441 /** Reinitialise. */
429 jj_gen = 0;442 public void ReInit(java.io.InputStream stream, String encoding) {
430 for (int i = 0; i < 9; i++) jj_la1[i] = -1;443 try { jj_input_stream.ReInit(stream, encoding, 1, 1); } catch(java.io.UnsupportedEncodingException e) { throw new RuntimeException(e); }
431 for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();444 token_source.ReInit(jj_input_stream);
432 }445 token = new Token();
433446 jj_ntk = -1;
434 /** Reinitialise. */447 jj_gen = 0;
435 public void ReInit(java.io.Reader stream) {448 for (int i = 0; i < 9; i++) jj_la1[i] = -1;
436 jj_input_stream.ReInit(stream, 1, 1);449 for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
437 token_source.ReInit(jj_input_stream);450 }
438 token = new Token();451
439 jj_ntk = -1;452 /** Constructor. */
440 jj_gen = 0;453 public TAPAALQueryParser(java.io.Reader stream) {
441 for (int i = 0; i < 9; i++) jj_la1[i] = -1;454 jj_input_stream = new SimpleCharStream(stream, 1, 1);
442 for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();455 token_source = new TAPAALQueryParserTokenManager(jj_input_stream);
443 }456 token = new Token();
444457 jj_ntk = -1;
445 /** Constructor with generated Token Manager. */458 jj_gen = 0;
446 public TAPAALQueryParser(TAPAALQueryParserTokenManager tm) {459 for (int i = 0; i < 9; i++) jj_la1[i] = -1;
447 token_source = tm;460 for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
448 token = new Token();461 }
449 jj_ntk = -1;462
450 jj_gen = 0;463 /** Reinitialise. */
451 for (int i = 0; i < 9; i++) jj_la1[i] = -1;464 public void ReInit(java.io.Reader stream) {
452 for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();465 if (jj_input_stream == null) {
453 }466 jj_input_stream = new SimpleCharStream(stream, 1, 1);
454467 } else {
455 /** Reinitialise. */468 jj_input_stream.ReInit(stream, 1, 1);
456 public void ReInit(TAPAALQueryParserTokenManager tm) {469 }
457 token_source = tm;470 if (token_source == null) {
458 token = new Token();471 token_source = new TAPAALQueryParserTokenManager(jj_input_stream);
459 jj_ntk = -1;472 }
460 jj_gen = 0;473
461 for (int i = 0; i < 9; i++) jj_la1[i] = -1;474 token_source.ReInit(jj_input_stream);
462 for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();475 token = new Token();
463 }476 jj_ntk = -1;
464477 jj_gen = 0;
465 private Token jj_consume_token(int kind) throws ParseException {478 for (int i = 0; i < 9; i++) jj_la1[i] = -1;
466 Token oldToken;479 for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
467 if ((oldToken = token).next != null) token = token.next;480 }
468 else token = token.next = token_source.getNextToken();481
469 jj_ntk = -1;482 /** Constructor with generated Token Manager. */
470 if (token.kind == kind) {483 public TAPAALQueryParser(TAPAALQueryParserTokenManager tm) {
471 jj_gen++;484 token_source = tm;
472 if (++jj_gc > 100) {485 token = new Token();
473 jj_gc = 0;486 jj_ntk = -1;
474 for (int i = 0; i < jj_2_rtns.length; i++) {487 jj_gen = 0;
475 JJCalls c = jj_2_rtns[i];488 for (int i = 0; i < 9; i++) jj_la1[i] = -1;
476 while (c != null) {489 for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
477 if (c.gen < jj_gen) c.first = null;490 }
478 c = c.next;491
479 }492 /** Reinitialise. */
480 }493 public void ReInit(TAPAALQueryParserTokenManager tm) {
481 }494 token_source = tm;
482 return token;495 token = new Token();
483 }496 jj_ntk = -1;
484 token = oldToken;497 jj_gen = 0;
485 jj_kind = kind;498 for (int i = 0; i < 9; i++) jj_la1[i] = -1;
486 throw generateParseException();499 for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
487 }500 }
488501
489 static private final class LookaheadSuccess extends java.lang.Error { }502 private Token jj_consume_token(int kind) throws ParseException {
490 final private LookaheadSuccess jj_ls = new LookaheadSuccess();503 Token oldToken;
491 private boolean jj_scan_token(int kind) {504 if ((oldToken = token).next != null) token = token.next;
492 if (jj_scanpos == jj_lastpos) {505 else token = token.next = token_source.getNextToken();
493 jj_la--;506 jj_ntk = -1;
494 if (jj_scanpos.next == null) {507 if (token.kind == kind) {
495 jj_lastpos = jj_scanpos = jj_scanpos.next = token_source.getNextToken();508 jj_gen++;
496 } else {509 if (++jj_gc > 100) {
497 jj_lastpos = jj_scanpos = jj_scanpos.next;510 jj_gc = 0;
498 }511 for (int i = 0; i < jj_2_rtns.length; i++) {
499 } else {512 JJCalls c = jj_2_rtns[i];
500 jj_scanpos = jj_scanpos.next;513 while (c != null) {
501 }514 if (c.gen < jj_gen) c.first = null;
502 if (jj_rescan) {515 c = c.next;
503 int i = 0; Token tok = token;516 }
504 while (tok != null && tok != jj_scanpos) { i++; tok = tok.next; }517 }
505 if (tok != null) jj_add_error_token(kind, i);518 }
506 }519 return token;
507 if (jj_scanpos.kind != kind) return true;520 }
508 if (jj_la == 0 && jj_scanpos == jj_lastpos) throw jj_ls;521 token = oldToken;
509 return false;522 jj_kind = kind;
510 }523 throw generateParseException();
511524 }
512525
513/** Get the next Token. */526 @SuppressWarnings("serial")
514 final public Token getNextToken() {527 static private final class LookaheadSuccess extends java.lang.Error {
515 if (token.next != null) token = token.next;528 @Override
516 else token = token.next = token_source.getNextToken();529 public Throwable fillInStackTrace() {
517 jj_ntk = -1;530 return this;
518 jj_gen++;531 }
519 return token;532 }
520 }533 static private final LookaheadSuccess jj_ls = new LookaheadSuccess();
521534 private boolean jj_scan_token(int kind) {
522/** Get the specific Token. */535 if (jj_scanpos == jj_lastpos) {
523 final public Token getToken(int index) {536 jj_la--;
524 Token t = token;537 if (jj_scanpos.next == null) {
525 for (int i = 0; i < index; i++) {538 jj_lastpos = jj_scanpos = jj_scanpos.next = token_source.getNextToken();
526 if (t.next != null) t = t.next;539 } else {
527 else t = t.next = token_source.getNextToken();540 jj_lastpos = jj_scanpos = jj_scanpos.next;
528 }541 }
529 return t;542 } else {
530 }543 jj_scanpos = jj_scanpos.next;
531544 }
532 private int jj_ntk() {545 if (jj_rescan) {
533 if ((jj_nt=token.next) == null)546 int i = 0; Token tok = token;
534 return (jj_ntk = (token.next=token_source.getNextToken()).kind);547 while (tok != null && tok != jj_scanpos) { i++; tok = tok.next; }
535 else548 if (tok != null) jj_add_error_token(kind, i);
536 return (jj_ntk = jj_nt.kind);549 }
537 }550 if (jj_scanpos.kind != kind) return true;
538551 if (jj_la == 0 && jj_scanpos == jj_lastpos) throw jj_ls;
539 private java.util.List<int[]> jj_expentries = new java.util.ArrayList<int[]>();552 return false;
540 private int[] jj_expentry;553 }
541 private int jj_kind = -1;554
542 private int[] jj_lasttokens = new int[100];555
543 private int jj_endpos;556 /** Get the next Token. */
544557 final public Token getNextToken() {
545 private void jj_add_error_token(int kind, int pos) {558 if (token.next != null) token = token.next;
546 if (pos >= 100) return;559 else token = token.next = token_source.getNextToken();
547 if (pos == jj_endpos + 1) {560 jj_ntk = -1;
548 jj_lasttokens[jj_endpos++] = kind;561 jj_gen++;
549 } else if (jj_endpos != 0) {562 return token;
550 jj_expentry = new int[jj_endpos];563 }
551 for (int i = 0; i < jj_endpos; i++) {564
552 jj_expentry[i] = jj_lasttokens[i];565 /** Get the specific Token. */
553 }566 final public Token getToken(int index) {
554 jj_entries_loop: for (java.util.Iterator<?> it = jj_expentries.iterator(); it.hasNext();) {567 Token t = token;
555 int[] oldentry = (int[])(it.next());568 for (int i = 0; i < index; i++) {
556 if (oldentry.length == jj_expentry.length) {569 if (t.next != null) t = t.next;
557 for (int i = 0; i < jj_expentry.length; i++) {570 else t = t.next = token_source.getNextToken();
558 if (oldentry[i] != jj_expentry[i]) {571 }
559 continue jj_entries_loop;572 return t;
560 }573 }
561 }574
562 jj_expentries.add(jj_expentry);575 private int jj_ntk_f() {
563 break jj_entries_loop;576 if ((jj_nt=token.next) == null)
564 }577 return (jj_ntk = (token.next=token_source.getNextToken()).kind);
565 }578 else
566 if (pos != 0) jj_lasttokens[(jj_endpos = pos) - 1] = kind;579 return (jj_ntk = jj_nt.kind);
567 }580 }
568 }581
569582 private java.util.List<int[]> jj_expentries = new java.util.ArrayList<int[]>();
570 /** Generate ParseException. */583 private int[] jj_expentry;
571 public ParseException generateParseException() {584 private int jj_kind = -1;
572 jj_expentries.clear();585 private int[] jj_lasttokens = new int[100];
573 boolean[] la1tokens = new boolean[23];586 private int jj_endpos;
574 if (jj_kind >= 0) {587
575 la1tokens[jj_kind] = true;588 private void jj_add_error_token(int kind, int pos) {
576 jj_kind = -1;589 if (pos >= 100) {
577 }590 return;
578 for (int i = 0; i < 9; i++) {591 }
579 if (jj_la1[i] == jj_gen) {592
580 for (int j = 0; j < 32; j++) {593 if (pos == jj_endpos + 1) {
581 if ((jj_la1_0[i] & (1<<j)) != 0) {594 jj_lasttokens[jj_endpos++] = kind;
582 la1tokens[j] = true;595 } else if (jj_endpos != 0) {
583 }596 jj_expentry = new int[jj_endpos];
584 }597
585 }598 for (int i = 0; i < jj_endpos; i++) {
586 }599 jj_expentry[i] = jj_lasttokens[i];
587 for (int i = 0; i < 23; i++) {600 }
588 if (la1tokens[i]) {601
589 jj_expentry = new int[1];602 for (int[] oldentry : jj_expentries) {
590 jj_expentry[0] = i;603 if (oldentry.length == jj_expentry.length) {
591 jj_expentries.add(jj_expentry);604 boolean isMatched = true;
592 }605
593 }606 for (int i = 0; i < jj_expentry.length; i++) {
594 jj_endpos = 0;607 if (oldentry[i] != jj_expentry[i]) {
595 jj_rescan_token();608 isMatched = false;
596 jj_add_error_token(0, 0);609 break;
597 int[][] exptokseq = new int[jj_expentries.size()][];610 }
598 for (int i = 0; i < jj_expentries.size(); i++) {611
599 exptokseq[i] = jj_expentries.get(i);612 }
600 }613 if (isMatched) {
601 return new ParseException(token, exptokseq, tokenImage);614 jj_expentries.add(jj_expentry);
602 }615 break;
603616 }
604 /** Enable tracing. */617 }
605 final public void enable_tracing() {618 }
606 }619
607620 if (pos != 0) {
608 /** Disable tracing. */621 jj_lasttokens[(jj_endpos = pos) - 1] = kind;
609 final public void disable_tracing() {622 }
610 }623 }
611624 }
612 private void jj_rescan_token() {625
613 jj_rescan = true;626 /** Generate ParseException. */
614 for (int i = 0; i < 2; i++) {627 public ParseException generateParseException() {
615 try {628 jj_expentries.clear();
616 JJCalls p = jj_2_rtns[i];629 boolean[] la1tokens = new boolean[23];
617 do {630 if (jj_kind >= 0) {
618 if (p.gen > jj_gen) {631 la1tokens[jj_kind] = true;
619 jj_la = p.arg; jj_lastpos = jj_scanpos = p.first;632 jj_kind = -1;
620 switch (i) {633 }
621 case 0: jj_3_1(); break;634 for (int i = 0; i < 9; i++) {
622 case 1: jj_3_2(); break;635 if (jj_la1[i] == jj_gen) {
623 }636 for (int j = 0; j < 32; j++) {
624 }637 if ((jj_la1_0[i] & (1<<j)) != 0) {
625 p = p.next;638 la1tokens[j] = true;
626 } while (p != null);639 }
627 } catch(LookaheadSuccess ls) { }640 }
628 }641 }
629 jj_rescan = false;642 }
630 }643 for (int i = 0; i < 23; i++) {
631644 if (la1tokens[i]) {
632 private void jj_save(int index, int xla) {645 jj_expentry = new int[1];
633 JJCalls p = jj_2_rtns[index];646 jj_expentry[0] = i;
634 while (p.gen > jj_gen) {647 jj_expentries.add(jj_expentry);
635 if (p.next == null) { p = p.next = new JJCalls(); break; }648 }
636 p = p.next;649 }
637 }650 jj_endpos = 0;
638 p.gen = jj_gen + xla - jj_la; p.first = token; p.arg = xla;651 jj_rescan_token();
639 }652 jj_add_error_token(0, 0);
640653 int[][] exptokseq = new int[jj_expentries.size()][];
641 static final class JJCalls {654 for (int i = 0; i < jj_expentries.size(); i++) {
642 int gen;655 exptokseq[i] = jj_expentries.get(i);
643 Token first;656 }
644 int arg;657 return new ParseException(token, exptokseq, tokenImage);
645 JJCalls next;658 }
646 }659
660 private boolean trace_enabled;
661
662 /** Trace enabled. */
663 final public boolean trace_enabled() {
664 return trace_enabled;
665 }
666
667 /** Enable tracing. */
668 final public void enable_tracing() {
669 }
670
671 /** Disable tracing. */
672 final public void disable_tracing() {
673 }
674
675 private void jj_rescan_token() {
676 jj_rescan = true;
677 for (int i = 0; i < 2; i++) {
678 try {
679 JJCalls p = jj_2_rtns[i];
680
681 do {
682 if (p.gen > jj_gen) {
683 jj_la = p.arg; jj_lastpos = jj_scanpos = p.first;
684 switch (i) {
685 case 0: jj_3_1(); break;
686 case 1: jj_3_2(); break;
687 }
688 }
689 p = p.next;
690 } while (p != null);
691
692 } catch(LookaheadSuccess ls) { }
693 }
694 jj_rescan = false;
695 }
696
697 private void jj_save(int index, int xla) {
698 JJCalls p = jj_2_rtns[index];
699 while (p.gen > jj_gen) {
700 if (p.next == null) { p = p.next = new JJCalls(); break; }
701 p = p.next;
702 }
703
704 p.gen = jj_gen + xla - jj_la;
705 p.first = token;
706 p.arg = xla;
707 }
708
709 static final class JJCalls {
710 int gen;
711 Token first;
712 int arg;
713 JJCalls next;
714 }
647715
648}716}
649717
=== modified file 'src/dk/aau/cs/TCTL/TCTLEFNode.java'
--- src/dk/aau/cs/TCTL/TCTLEFNode.java 2020-11-06 19:41:50 +0000
+++ src/dk/aau/cs/TCTL/TCTLEFNode.java 2021-09-29 07:20:55 +0000
@@ -2,6 +2,8 @@
22
3import dk.aau.cs.TCTL.visitors.ITCTLVisitor;3import dk.aau.cs.TCTL.visitors.ITCTLVisitor;
44
5import java.util.HashMap;
6
5public class TCTLEFNode extends TCTLAbstractPathProperty {7public class TCTLEFNode extends TCTLAbstractPathProperty {
68
7 private TCTLAbstractStateProperty property;9 private TCTLAbstractStateProperty property;
@@ -104,7 +106,6 @@
104 @Override106 @Override
105 public TCTLAbstractProperty findFirstPlaceHolder() {107 public TCTLAbstractProperty findFirstPlaceHolder() {
106 return property.findFirstPlaceHolder();108 return property.findFirstPlaceHolder();
107
108 }109 }
109110
110}111}
111112
=== modified file 'src/pipe/gui/widgets/QueryDialog.java'
--- src/pipe/gui/widgets/QueryDialog.java 2021-09-11 17:11:34 +0000
+++ src/pipe/gui/widgets/QueryDialog.java 2021-09-29 07:20:55 +0000
@@ -2326,42 +2326,37 @@
23262326
2327 if (newQuery != null) // new query parsed successfully2327 if (newQuery != null) // new query parsed successfully
2328 {2328 {
2329 // check correct place names are used in atomic propositions2329 VerifyPlaceNamesVisitor.Context placeContext = getPlaceContext(newQuery);
2330 ArrayList<Tuple<String,String>> templatePlaceNames = new ArrayList<Tuple<String,String>>();2330 VerifyTransitionNamesVisitor.Context transitionContext = getTransitionContext(newQuery);
2331 for(TimedArcPetriNet tapn : tapnNetwork.activeTemplates()) {
2332 for(TimedPlace p : tapn.places()) {
2333 if (lens.isTimed() || !p.isShared() || lens.isGame()) {
2334 templatePlaceNames.add(new Tuple<String, String>(tapn.name(), p.name()));
2335 }
2336 }
2337 }
2338
2339 for(TimedPlace p : tapnNetwork.sharedPlaces()) {
2340 templatePlaceNames.add(new Tuple<String, String>("", p.name()));
2341 }
2342
2343 FixAbbrivPlaceNames.fixAbbrivPlaceNames(templatePlaceNames, newQuery);
2344 VerifyPlaceNamesVisitor nameChecker = new VerifyPlaceNamesVisitor(templatePlaceNames);
2345 VerifyPlaceNamesVisitor.Context c = nameChecker.verifyPlaceNames(newQuery);
23462331
2347 boolean isResultFalse;2332 boolean isResultFalse;
23482333
2349 if (lens.isTimed() || lens.isGame()) {2334 if (lens.isTimed() || lens.isGame()) {
2350 isResultFalse = !c.getResult();2335 isResultFalse = !placeContext.getResult();
2351 } else {2336 } else {
2352 isResultFalse = checkUntimedResult(newQuery) && !c.getResult();2337 isResultFalse = !transitionContext.getResult() || !placeContext.getResult();
2353 }2338 }
23542339
2355 if (isResultFalse) {2340 if (isResultFalse) {
2356 StringBuilder s = new StringBuilder();2341 StringBuilder s = new StringBuilder();
2342<<<<<<< TREE
2357 s.append("The following places" + (lens.isTimed() ? "" : " or transitions") +2343 s.append("The following places" + (lens.isTimed() ? "" : " or transitions") +
2358 " were used in the query, but are not present in your model:\n\n");2344 " were used in the query, but are not present in your model:\n\n");
2345=======
2346 s.append("The following places " + (lens.isTimed() ? "" : "or transitions") +
2347 " were used in the query, but are not present in your model:\n\n");
2348>>>>>>> MERGE-SOURCE
23592349
2360 for (String placeName : c.getIncorrectPlaceNames()) {2350 for (String placeName : placeContext.getIncorrectPlaceNames()) {
2361 s.append(placeName);2351 s.append(placeName);
2362 s.append('\n');2352 s.append('\n');
2363 }2353 }
23642354
2355 for (String transitionName : transitionContext.getIncorrectTransitionNames()) {
2356 s.append(transitionName);
2357 s.append('\n');
2358 }
2359
2365 s.append("\nThe specified query has not been saved. Do you want to edit it again?");2360 s.append("\nThe specified query has not been saved. Do you want to edit it again?");
2366 int choice = JOptionPane.showConfirmDialog(2361 int choice = JOptionPane.showConfirmDialog(
2367 CreateGui.getApp(), s.toString(),2362 CreateGui.getApp(), s.toString(),
@@ -2442,25 +2437,44 @@
2442 queryPanel.add(editingButtonPanel, gbc);2437 queryPanel.add(editingButtonPanel, gbc);
2443 }2438 }
24442439
2445 private boolean checkUntimedResult(TCTLAbstractProperty newQuery) {2440 private VerifyPlaceNamesVisitor.Context getPlaceContext(TCTLAbstractProperty newQuery) {
2441 // check correct place names are used in atomic propositions
2442 ArrayList<Tuple<String,String>> templatePlaceNames = new ArrayList<Tuple<String,String>>();
2443 for(TimedArcPetriNet tapn : tapnNetwork.activeTemplates()) {
2444 for(TimedPlace p : tapn.places()) {
2445 if (lens.isTimed() || !p.isShared() || lens.isGame()) {
2446 templatePlaceNames.add(new Tuple<String, String>(tapn.name(), p.name()));
2447 }
2448 }
2449 }
2450
2451 for(TimedPlace p : tapnNetwork.sharedPlaces()) {
2452 templatePlaceNames.add(new Tuple<String, String>("", p.name()));
2453 }
2454
2455 FixAbbrivPlaceNames.fixAbbrivPlaceNames(templatePlaceNames, newQuery);
2456 VerifyPlaceNamesVisitor nameChecker = new VerifyPlaceNamesVisitor(templatePlaceNames);
2457 return nameChecker.verifyPlaceNames(newQuery);
2458 }
2459
2460 private VerifyTransitionNamesVisitor.Context getTransitionContext(TCTLAbstractProperty newQuery) {
2446 // check correct transition names are used in atomic propositions2461 // check correct transition names are used in atomic propositions
2447 ArrayList<Tuple<String, String>> templateTransitionNames = new ArrayList<Tuple<String, String>>();2462 ArrayList<Tuple<String,String>> templateTransitionNames = new ArrayList<Tuple<String,String>>();
2448 for (TimedArcPetriNet tapn : tapnNetwork.activeTemplates()) {2463 for (TimedArcPetriNet tapn : tapnNetwork.activeTemplates()) {
2449 for (TimedTransition t : tapn.transitions()) {2464 for (TimedTransition t : tapn.transitions()) {
2450 if (!t.isShared()) {2465 if (lens.isTimed() || !t.isShared() || lens.isGame()) {
2451 templateTransitionNames.add(new Tuple<String, String>(tapn.name(), t.name()));2466 templateTransitionNames.add(new Tuple<>(tapn.name(), t.name()));
2452 }2467 }
2453 }2468 }
2454 }2469 }
24552470
2456 for (SharedTransition t : tapnNetwork.sharedTransitions()) {2471 for (SharedTransition t : tapnNetwork.sharedTransitions()) {
2457 templateTransitionNames.add(new Tuple<String, String>("", t.name()));2472 templateTransitionNames.add(new Tuple<>("", t.name()));
2458 }2473 }
24592474
2460 FixAbbrivTransitionNames.fixAbbrivTransitionNames(templateTransitionNames, newQuery);2475 FixAbbrivTransitionNames.fixAbbrivTransitionNames(templateTransitionNames, newQuery);
2461 VerifyTransitionNamesVisitor transitionNameChecker = new VerifyTransitionNamesVisitor(templateTransitionNames);2476 VerifyTransitionNamesVisitor nameChecker = new VerifyTransitionNamesVisitor(templateTransitionNames);
2462 VerifyTransitionNamesVisitor.Context c2 = transitionNameChecker.verifyTransitionNames(newQuery);2477 return nameChecker.verifyTransitionNames(newQuery);
2463 return !c2.getResult();
2464 }2478 }
24652479
2466 private void initUppaalOptionsPanel() {2480 private void initUppaalOptionsPanel() {
24672481
=== modified file 'src/resources/TCTLParser/TAPAALCTLQueryParser.jj'
--- src/resources/TCTLParser/TAPAALCTLQueryParser.jj 2017-09-05 21:24:23 +0000
+++ src/resources/TCTLParser/TAPAALCTLQueryParser.jj 2021-09-29 07:20:55 +0000
@@ -56,7 +56,7 @@
5656
57 public static TCTLAbstractPathProperty parse(String query) throws ParseException {57 public static TCTLAbstractPathProperty parse(String query) throws ParseException {
58 TAPAALCTLQueryParser parser = new TAPAALCTLQueryParser(new StringReader(query));58 TAPAALCTLQueryParser parser = new TAPAALCTLQueryParser(new StringReader(query));
59 return parser.AbstractPathProperty();59 return parser.Start();
60 }60 }
61}61}
6262
@@ -131,6 +131,16 @@
131}131}
132132
133/** Root production. */133/** Root production. */
134TCTLAbstractPathProperty Start() :
135{
136 TCTLAbstractPathProperty child = null;
137}
138{
139 (
140 child = AbstractPathProperty() <EOF> {return child;}
141 )
142}
143
134TCTLAbstractPathProperty AbstractPathProperty() :144TCTLAbstractPathProperty AbstractPathProperty() :
135{145{
136 TCTLAbstractStateProperty child = null; 146 TCTLAbstractStateProperty child = null;
137147
=== modified file 'src/resources/TCTLParser/TAPAALQueryParser.jj'
--- src/resources/TCTLParser/TAPAALQueryParser.jj 2014-05-22 20:26:41 +0000
+++ src/resources/TCTLParser/TAPAALQueryParser.jj 2021-09-29 07:20:55 +0000
@@ -49,7 +49,7 @@
4949
50 public static TCTLAbstractProperty parse(String query) throws ParseException {50 public static TCTLAbstractProperty parse(String query) throws ParseException {
51 TAPAALQueryParser parser = new TAPAALQueryParser(new StringReader(query));51 TAPAALQueryParser parser = new TAPAALQueryParser(new StringReader(query));
52 return parser.AbstractProperty();52 return parser.Start();
53 }53 }
54}54}
5555
@@ -112,6 +112,16 @@
112}112}
113113
114/** Root production. */114/** Root production. */
115TCTLAbstractProperty Start() :
116{
117 TCTLAbstractProperty child = null;
118}
119{
120 (
121 child = AbstractProperty() <EOF> {return child;}
122 )
123}
124
115TCTLAbstractProperty AbstractProperty() :125TCTLAbstractProperty AbstractProperty() :
116{126{
117 TCTLAbstractStateProperty child = null; 127 TCTLAbstractStateProperty child = null;

Subscribers

People subscribed via source and target branches