Merge lp:~tapaal-contributor/tapaal/manual-edit-parsing into lp:tapaal
- manual-edit-parsing
- Merge into trunk
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 |
Related bugs: |
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.
Jiri Srba (srba) wrote : Posted in a previous version of this proposal | # |
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".
Kenneth Yrke Jørgensen (yrke) : | # |
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)
- 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
1 | === modified file 'src/dk/aau/cs/TCTL/CTLParsing/TAPAALCTLQueryParser.java' | |||
2 | --- src/dk/aau/cs/TCTL/CTLParsing/TAPAALCTLQueryParser.java 2019-03-22 10:13:18 +0000 | |||
3 | +++ src/dk/aau/cs/TCTL/CTLParsing/TAPAALCTLQueryParser.java 2021-09-29 07:20:55 +0000 | |||
4 | @@ -1,3 +1,4 @@ | |||
5 | 1 | /* TAPAALCTLQueryParser.java */ | ||
6 | 1 | /* Generated By:JavaCC: Do not edit this line. TAPAALCTLQueryParser.java */ | 2 | /* Generated By:JavaCC: Do not edit this line. TAPAALCTLQueryParser.java */ |
7 | 2 | package dk.aau.cs.TCTL.CTLParsing; | 3 | package dk.aau.cs.TCTL.CTLParsing; |
8 | 3 | 4 | ||
9 | @@ -13,6 +14,7 @@ | |||
10 | 13 | import dk.aau.cs.TCTL.TCTLAGNode; | 14 | import dk.aau.cs.TCTL.TCTLAGNode; |
11 | 14 | import dk.aau.cs.TCTL.TCTLAUNode; | 15 | import dk.aau.cs.TCTL.TCTLAUNode; |
12 | 15 | import dk.aau.cs.TCTL.TCTLAXNode; | 16 | import dk.aau.cs.TCTL.TCTLAXNode; |
13 | 17 | import dk.aau.cs.TCTL.TCTLAbstractProperty; | ||
14 | 16 | import dk.aau.cs.TCTL.TCTLAbstractStateProperty; | 18 | import dk.aau.cs.TCTL.TCTLAbstractStateProperty; |
15 | 17 | import dk.aau.cs.TCTL.TCTLAbstractPathProperty; | 19 | import dk.aau.cs.TCTL.TCTLAbstractPathProperty; |
16 | 18 | import dk.aau.cs.TCTL.TCTLAndListNode; | 20 | import dk.aau.cs.TCTL.TCTLAndListNode; |
17 | @@ -31,714 +33,786 @@ | |||
18 | 31 | 33 | ||
19 | 32 | public class TAPAALCTLQueryParser implements TAPAALCTLQueryParserConstants { | 34 | public class TAPAALCTLQueryParser implements TAPAALCTLQueryParserConstants { |
20 | 33 | 35 | ||
31 | 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"; |
32 | 35 | 37 | ||
33 | 36 | public static TCTLAbstractPathProperty parse(String query) throws ParseException { | 38 | public static TCTLAbstractPathProperty parse(String query) throws ParseException { |
34 | 37 | TAPAALCTLQueryParser parser = new TAPAALCTLQueryParser(new StringReader(query)); | 39 | TAPAALCTLQueryParser parser = new TAPAALCTLQueryParser(new StringReader(query)); |
35 | 38 | return parser.AbstractPathProperty(); | 40 | return parser.Start(); |
36 | 39 | } | 41 | } |
37 | 40 | 42 | ||
38 | 41 | /** Root production. */ | 43 | /** Root production. */ |
39 | 42 | final public TCTLAbstractPathProperty AbstractPathProperty() throws ParseException { | 44 | final public TCTLAbstractPathProperty Start() throws ParseException {TCTLAbstractPathProperty child = null; |
40 | 43 | TCTLAbstractStateProperty child = null; | 45 | child = AbstractPathProperty(); |
41 | 46 | jj_consume_token(0); | ||
42 | 47 | {if ("" != null) return child;} | ||
43 | 48 | throw new Error("Missing return statement in function"); | ||
44 | 49 | } | ||
45 | 50 | |||
46 | 51 | final public TCTLAbstractPathProperty AbstractPathProperty() throws ParseException {TCTLAbstractStateProperty child = null; | ||
47 | 44 | TCTLAbstractStateProperty child2 = null; | 52 | TCTLAbstractStateProperty child2 = null; |
101 | 45 | switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { | 53 | switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { |
102 | 46 | case EF: | 54 | case EF:{ |
103 | 47 | jj_consume_token(EF); | 55 | jj_consume_token(EF); |
104 | 48 | child = OrExpr(); | 56 | child = OrExpr(); |
105 | 49 | {if (true) return new TCTLEFNode(child);} | 57 | {if ("" != null) return new TCTLEFNode(child);} |
106 | 50 | break; | 58 | break; |
107 | 51 | case EG: | 59 | } |
108 | 52 | jj_consume_token(EG); | 60 | case EG:{ |
109 | 53 | child = OrExpr(); | 61 | jj_consume_token(EG); |
110 | 54 | {if (true) return new TCTLEGNode(child);} | 62 | child = OrExpr(); |
111 | 55 | break; | 63 | {if ("" != null) return new TCTLEGNode(child);} |
112 | 56 | case EX: | 64 | break; |
113 | 57 | jj_consume_token(EX); | 65 | } |
114 | 58 | child = OrExpr(); | 66 | case EX:{ |
115 | 59 | {if (true) return new TCTLEXNode(child);} | 67 | jj_consume_token(EX); |
116 | 60 | break; | 68 | child = OrExpr(); |
117 | 61 | case E: | 69 | {if ("" != null) return new TCTLEXNode(child);} |
118 | 62 | jj_consume_token(E); | 70 | break; |
119 | 63 | jj_consume_token(26); | 71 | } |
120 | 64 | child = OrExpr(); | 72 | case E:{ |
121 | 65 | jj_consume_token(U); | 73 | jj_consume_token(E); |
122 | 66 | child2 = OrExpr(); | 74 | jj_consume_token(26); |
123 | 67 | jj_consume_token(27); | 75 | child = OrExpr(); |
124 | 68 | {if (true) return new TCTLEUNode(child, child2);} | 76 | jj_consume_token(U); |
125 | 69 | break; | 77 | child2 = OrExpr(); |
126 | 70 | case AF: | 78 | jj_consume_token(27); |
127 | 71 | jj_consume_token(AF); | 79 | {if ("" != null) return new TCTLEUNode(child, child2);} |
128 | 72 | child = OrExpr(); | 80 | break; |
129 | 73 | {if (true) return new TCTLAFNode(child);} | 81 | } |
130 | 74 | break; | 82 | case AF:{ |
131 | 75 | case AG: | 83 | jj_consume_token(AF); |
132 | 76 | jj_consume_token(AG); | 84 | child = OrExpr(); |
133 | 77 | child = OrExpr(); | 85 | {if ("" != null) return new TCTLAFNode(child);} |
134 | 78 | {if (true) return new TCTLAGNode(child);} | 86 | break; |
135 | 79 | break; | 87 | } |
136 | 80 | case A: | 88 | case AG:{ |
137 | 81 | jj_consume_token(A); | 89 | jj_consume_token(AG); |
138 | 82 | jj_consume_token(26); | 90 | child = OrExpr(); |
139 | 83 | child = OrExpr(); | 91 | {if ("" != null) return new TCTLAGNode(child);} |
140 | 84 | jj_consume_token(U); | 92 | break; |
141 | 85 | child2 = OrExpr(); | 93 | } |
142 | 86 | jj_consume_token(27); | 94 | case A:{ |
143 | 87 | {if (true) return new TCTLAUNode(child, child2);} | 95 | jj_consume_token(A); |
144 | 88 | break; | 96 | jj_consume_token(26); |
145 | 89 | case AX: | 97 | child = OrExpr(); |
146 | 90 | jj_consume_token(AX); | 98 | jj_consume_token(U); |
147 | 91 | child = OrExpr(); | 99 | child2 = OrExpr(); |
148 | 92 | {if (true) return new TCTLAXNode(child);} | 100 | jj_consume_token(27); |
149 | 93 | break; | 101 | {if ("" != null) return new TCTLAUNode(child, child2);} |
150 | 94 | default: | 102 | break; |
151 | 95 | jj_la1[0] = jj_gen; | 103 | } |
152 | 96 | child = OrExpr(); | 104 | case AX:{ |
153 | 97 | {if (true) return new TCTLStateToPathConverter(child);} | 105 | jj_consume_token(AX); |
154 | 106 | child = OrExpr(); | ||
155 | 107 | {if ("" != null) return new TCTLAXNode(child);} | ||
156 | 108 | break; | ||
157 | 109 | } | ||
158 | 110 | default: | ||
159 | 111 | jj_la1[0] = jj_gen; | ||
160 | 112 | child = OrExpr(); | ||
161 | 113 | {if ("" != null) return new TCTLStateToPathConverter(child);} | ||
162 | 114 | } | ||
163 | 115 | throw new Error("Missing return statement in function"); | ||
164 | 98 | } | 116 | } |
165 | 99 | throw new Error("Missing return statement in function"); | ||
166 | 100 | } | ||
167 | 101 | 117 | ||
170 | 102 | final public TCTLAbstractStateProperty OrExpr() throws ParseException { | 118 | final public TCTLAbstractStateProperty OrExpr() throws ParseException {TCTLAbstractStateProperty currentChild; |
169 | 103 | TCTLAbstractStateProperty currentChild; | ||
171 | 104 | ArrayList<TCTLAbstractStateProperty> disjunctions = new ArrayList<TCTLAbstractStateProperty>(); | 119 | ArrayList<TCTLAbstractStateProperty> disjunctions = new ArrayList<TCTLAbstractStateProperty>(); |
187 | 105 | currentChild = AndExpr(); | 120 | currentChild = AndExpr(); |
188 | 106 | disjunctions.add(currentChild); | 121 | disjunctions.add(currentChild); |
189 | 107 | label_1: | 122 | label_1: |
190 | 108 | while (true) { | 123 | while (true) { |
191 | 109 | switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { | 124 | switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { |
192 | 110 | case OR: | 125 | case OR:{ |
193 | 111 | ; | 126 | ; |
194 | 112 | break; | 127 | break; |
195 | 113 | default: | 128 | } |
196 | 114 | jj_la1[1] = jj_gen; | 129 | default: |
197 | 115 | break label_1; | 130 | jj_la1[1] = jj_gen; |
198 | 116 | } | 131 | break label_1; |
199 | 117 | jj_consume_token(OR); | 132 | } |
200 | 118 | currentChild = AndExpr(); | 133 | jj_consume_token(OR); |
201 | 119 | disjunctions.add(currentChild); | 134 | currentChild = AndExpr(); |
202 | 135 | disjunctions.add(currentChild); | ||
203 | 136 | } | ||
204 | 137 | {if ("" != null) return disjunctions.size() == 1 ? currentChild : new TCTLOrListNode(disjunctions);} | ||
205 | 138 | throw new Error("Missing return statement in function"); | ||
206 | 120 | } | 139 | } |
207 | 121 | {if (true) return disjunctions.size() == 1 ? currentChild : new TCTLOrListNode(disjunctions);} | ||
208 | 122 | throw new Error("Missing return statement in function"); | ||
209 | 123 | } | ||
210 | 124 | 140 | ||
213 | 125 | final public TCTLAbstractStateProperty AndExpr() throws ParseException { | 141 | final public TCTLAbstractStateProperty AndExpr() throws ParseException {TCTLAbstractStateProperty currentChild; |
212 | 126 | TCTLAbstractStateProperty currentChild; | ||
214 | 127 | ArrayList<TCTLAbstractStateProperty> conjunctions = new ArrayList<TCTLAbstractStateProperty>(); | 142 | ArrayList<TCTLAbstractStateProperty> conjunctions = new ArrayList<TCTLAbstractStateProperty>(); |
230 | 128 | currentChild = NotExpr(); | 143 | currentChild = NotExpr(); |
231 | 129 | conjunctions.add(currentChild); | 144 | conjunctions.add(currentChild); |
232 | 130 | label_2: | 145 | label_2: |
233 | 131 | while (true) { | 146 | while (true) { |
234 | 132 | switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { | 147 | switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { |
235 | 133 | case AND: | 148 | case AND:{ |
236 | 134 | ; | 149 | ; |
237 | 135 | break; | 150 | break; |
238 | 136 | default: | 151 | } |
239 | 137 | jj_la1[2] = jj_gen; | 152 | default: |
240 | 138 | break label_2; | 153 | jj_la1[2] = jj_gen; |
241 | 139 | } | 154 | break label_2; |
242 | 140 | jj_consume_token(AND); | 155 | } |
243 | 141 | currentChild = NotExpr(); | 156 | jj_consume_token(AND); |
244 | 142 | conjunctions.add(currentChild); | 157 | currentChild = NotExpr(); |
245 | 158 | conjunctions.add(currentChild); | ||
246 | 159 | } | ||
247 | 160 | {if ("" != null) return conjunctions.size() == 1 ? currentChild : new TCTLAndListNode(conjunctions);} | ||
248 | 161 | throw new Error("Missing return statement in function"); | ||
249 | 143 | } | 162 | } |
250 | 144 | {if (true) return conjunctions.size() == 1 ? currentChild : new TCTLAndListNode(conjunctions);} | ||
251 | 145 | throw new Error("Missing return statement in function"); | ||
252 | 146 | } | ||
253 | 147 | 163 | ||
256 | 148 | final public TCTLAbstractStateProperty NotExpr() throws ParseException { | 164 | final public TCTLAbstractStateProperty NotExpr() throws ParseException {TCTLAbstractStateProperty child; |
255 | 149 | TCTLAbstractStateProperty child; | ||
257 | 150 | TCTLAbstractPathProperty childConverter; | 165 | TCTLAbstractPathProperty childConverter; |
270 | 151 | switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { | 166 | switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { |
271 | 152 | case NOT: | 167 | case NOT:{ |
272 | 153 | jj_consume_token(NOT); | 168 | jj_consume_token(NOT); |
273 | 154 | jj_consume_token(26); | 169 | jj_consume_token(26); |
274 | 155 | child = OrExpr(); | 170 | child = OrExpr(); |
275 | 156 | jj_consume_token(27); | 171 | jj_consume_token(27); |
276 | 157 | {if (true) return new TCTLNotNode(child);} | 172 | {if ("" != null) return new TCTLNotNode(child);} |
277 | 158 | break; | 173 | break; |
278 | 159 | default: | 174 | } |
279 | 160 | jj_la1[3] = jj_gen; | 175 | default: |
280 | 161 | child = Factor(); | 176 | jj_la1[3] = jj_gen; |
281 | 162 | {if (true) return child;} | 177 | child = Factor(); |
282 | 178 | {if ("" != null) return child;} | ||
283 | 179 | } | ||
284 | 180 | throw new Error("Missing return statement in function"); | ||
285 | 163 | } | 181 | } |
286 | 164 | throw new Error("Missing return statement in function"); | ||
287 | 165 | } | ||
288 | 166 | 182 | ||
291 | 167 | final public TCTLAbstractStateProperty Factor() throws ParseException { | 183 | final public TCTLAbstractStateProperty Factor() throws ParseException {TCTLAbstractStateProperty thisProp; |
290 | 168 | TCTLAbstractStateProperty thisProp; | ||
292 | 169 | Token temp = null; | 184 | Token temp = null; |
293 | 170 | Token transition; | 185 | Token transition; |
331 | 171 | switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { | 186 | switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { |
332 | 172 | case TRUE: | 187 | case TRUE:{ |
333 | 173 | jj_consume_token(TRUE); | 188 | jj_consume_token(TRUE); |
334 | 174 | thisProp = new TCTLTrueNode(); | 189 | thisProp = new TCTLTrueNode(); |
335 | 175 | break; | 190 | break; |
336 | 176 | case FALSE: | 191 | } |
337 | 177 | jj_consume_token(FALSE); | 192 | case FALSE:{ |
338 | 178 | thisProp = new TCTLFalseNode(); | 193 | jj_consume_token(FALSE); |
339 | 179 | break; | 194 | thisProp = new TCTLFalseNode(); |
340 | 180 | case DEADLOCK: | 195 | break; |
341 | 181 | jj_consume_token(DEADLOCK); | 196 | } |
342 | 182 | thisProp = new TCTLDeadlockNode(); | 197 | case DEADLOCK:{ |
343 | 183 | break; | 198 | jj_consume_token(DEADLOCK); |
344 | 184 | default: | 199 | thisProp = new TCTLDeadlockNode(); |
345 | 185 | jj_la1[4] = jj_gen; | 200 | break; |
346 | 186 | if (jj_2_2(2147483647)) { | 201 | } |
347 | 187 | thisProp = AtomicProposition(); | 202 | default: |
348 | 188 | } else { | 203 | jj_la1[4] = jj_gen; |
349 | 189 | switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { | 204 | if (jj_2_2(2147483647)) { |
350 | 190 | case IDENT: | 205 | thisProp = AtomicProposition(); |
351 | 191 | if (jj_2_1(2)) { | 206 | } else { |
352 | 192 | temp = jj_consume_token(IDENT); | 207 | switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { |
353 | 193 | jj_consume_token(28); | 208 | case IDENT:{ |
354 | 194 | } else { | 209 | if (jj_2_1(2)) { |
355 | 195 | ; | 210 | temp = jj_consume_token(IDENT); |
356 | 196 | } | 211 | jj_consume_token(28); |
357 | 197 | transition = jj_consume_token(IDENT); | 212 | } else { |
358 | 198 | thisProp = new TCTLTransitionNode(temp == null ? "" : temp.image, transition.image); | 213 | ; |
359 | 199 | break; | 214 | } |
360 | 200 | case 26: | 215 | transition = jj_consume_token(IDENT); |
361 | 201 | jj_consume_token(26); | 216 | thisProp = new TCTLTransitionNode(temp == null ? "" : temp.image, transition.image); |
362 | 202 | thisProp = OrExpr(); | 217 | break; |
363 | 203 | jj_consume_token(27); | 218 | } |
364 | 204 | break; | 219 | case 26:{ |
365 | 205 | default: | 220 | jj_consume_token(26); |
366 | 206 | jj_la1[5] = jj_gen; | 221 | thisProp = OrExpr(); |
367 | 207 | thisProp = new TCTLPathToStateConverter(AbstractPathProperty()); | 222 | jj_consume_token(27); |
368 | 223 | break; | ||
369 | 224 | } | ||
370 | 225 | default: | ||
371 | 226 | jj_la1[5] = jj_gen; | ||
372 | 227 | thisProp = new TCTLPathToStateConverter(AbstractPathProperty()); | ||
373 | 228 | } | ||
374 | 229 | } | ||
375 | 208 | } | 230 | } |
377 | 209 | } | 231 | {if ("" != null) return thisProp;} |
378 | 232 | throw new Error("Missing return statement in function"); | ||
379 | 210 | } | 233 | } |
380 | 211 | {if (true) return thisProp;} | ||
381 | 212 | throw new Error("Missing return statement in function"); | ||
382 | 213 | } | ||
383 | 214 | 234 | ||
386 | 215 | final public TCTLAbstractStateProperty AtomicProposition() throws ParseException { | 235 | final public TCTLAbstractStateProperty AtomicProposition() throws ParseException {TCTLAbstractStateProperty left; |
385 | 216 | TCTLAbstractStateProperty left; | ||
387 | 217 | TCTLAbstractStateProperty right; | 236 | TCTLAbstractStateProperty right; |
388 | 218 | Token op; | 237 | Token op; |
448 | 219 | left = AritmeticExpr(); | 238 | left = AritmeticExpr(); |
449 | 220 | op = jj_consume_token(OP); | 239 | op = jj_consume_token(OP); |
450 | 221 | right = AritmeticExpr(); | 240 | right = AritmeticExpr(); |
451 | 222 | {if (true) return new TCTLAtomicPropositionNode(left, op.image, right);} | 241 | {if ("" != null) return new TCTLAtomicPropositionNode(left, op.image, right);} |
452 | 223 | throw new Error("Missing return statement in function"); | 242 | throw new Error("Missing return statement in function"); |
453 | 224 | } | 243 | } |
454 | 225 | 244 | ||
455 | 226 | final public TCTLAbstractStateProperty AritmeticExpr() throws ParseException { | 245 | final public TCTLAbstractStateProperty AritmeticExpr() throws ParseException {TCTLAbstractStateProperty currentChild; |
456 | 227 | TCTLAbstractStateProperty currentChild; | 246 | ArrayList<TCTLAbstractStateProperty> terms = new ArrayList<TCTLAbstractStateProperty>(); |
457 | 228 | ArrayList<TCTLAbstractStateProperty> terms = new ArrayList<TCTLAbstractStateProperty>(); | 247 | Token op; |
458 | 229 | Token op; | 248 | currentChild = AritmeticMinusExpr(); |
459 | 230 | currentChild = AritmeticMinusExpr(); | 249 | terms.add(currentChild); |
460 | 231 | terms.add(currentChild); | 250 | label_3: |
461 | 232 | label_3: | 251 | while (true) { |
462 | 233 | while (true) { | 252 | switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { |
463 | 234 | switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { | 253 | case PLUS:{ |
464 | 235 | case PLUS: | 254 | ; |
465 | 236 | ; | 255 | break; |
466 | 237 | break; | 256 | } |
467 | 238 | default: | 257 | default: |
468 | 239 | jj_la1[6] = jj_gen; | 258 | jj_la1[6] = jj_gen; |
469 | 240 | break label_3; | 259 | break label_3; |
470 | 241 | } | 260 | } |
471 | 242 | op = jj_consume_token(PLUS); | 261 | op = jj_consume_token(PLUS); |
472 | 243 | currentChild = AritmeticMinusExpr(); | 262 | currentChild = AritmeticMinusExpr(); |
473 | 244 | terms.add(new AritmeticOperator(op.image)); | 263 | terms.add(new AritmeticOperator(op.image)); |
474 | 245 | terms.add(currentChild); | 264 | terms.add(currentChild); |
475 | 246 | } | 265 | } |
476 | 247 | {if (true) return terms.size() == 1 ? currentChild : new TCTLTermListNode(terms);} | 266 | {if ("" != null) return terms.size() == 1 ? currentChild : new TCTLTermListNode(terms);} |
477 | 248 | throw new Error("Missing return statement in function"); | 267 | throw new Error("Missing return statement in function"); |
478 | 249 | } | 268 | } |
479 | 250 | 269 | ||
480 | 251 | final public TCTLAbstractStateProperty AritmeticMinusExpr() throws ParseException { | 270 | final public TCTLAbstractStateProperty AritmeticMinusExpr() throws ParseException {TCTLAbstractStateProperty currentChild; |
481 | 252 | TCTLAbstractStateProperty currentChild; | 271 | ArrayList<TCTLAbstractStateProperty> terms = new ArrayList<TCTLAbstractStateProperty>(); |
482 | 253 | ArrayList<TCTLAbstractStateProperty> terms = new ArrayList<TCTLAbstractStateProperty>(); | 272 | Token op; |
483 | 254 | Token op; | 273 | currentChild = AritmeticTerm(); |
484 | 255 | currentChild = AritmeticTerm(); | 274 | terms.add(currentChild); |
485 | 256 | terms.add(currentChild); | 275 | label_4: |
486 | 257 | label_4: | 276 | while (true) { |
487 | 258 | while (true) { | 277 | switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { |
488 | 259 | switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { | 278 | case MINUS:{ |
489 | 260 | case MINUS: | 279 | ; |
490 | 261 | ; | 280 | break; |
491 | 262 | break; | 281 | } |
492 | 263 | default: | 282 | default: |
493 | 264 | jj_la1[7] = jj_gen; | 283 | jj_la1[7] = jj_gen; |
494 | 265 | break label_4; | 284 | break label_4; |
495 | 266 | } | 285 | } |
496 | 267 | op = jj_consume_token(MINUS); | 286 | op = jj_consume_token(MINUS); |
497 | 268 | currentChild = AritmeticTerm(); | 287 | currentChild = AritmeticTerm(); |
498 | 269 | terms.add(new AritmeticOperator(op.image)); | 288 | terms.add(new AritmeticOperator(op.image)); |
499 | 270 | terms.add(currentChild); | 289 | terms.add(currentChild); |
500 | 271 | } | 290 | } |
501 | 272 | {if (true) return terms.size() == 1 ? currentChild : new TCTLTermListNode(terms);} | 291 | {if ("" != null) return terms.size() == 1 ? currentChild : new TCTLTermListNode(terms);} |
502 | 273 | throw new Error("Missing return statement in function"); | 292 | throw new Error("Missing return statement in function"); |
503 | 274 | } | 293 | } |
504 | 275 | 294 | ||
505 | 276 | final public TCTLAbstractStateProperty AritmeticTerm() throws ParseException { | 295 | final public TCTLAbstractStateProperty AritmeticTerm() throws ParseException {TCTLAbstractStateProperty currentChild; |
447 | 277 | TCTLAbstractStateProperty currentChild; | ||
506 | 278 | ArrayList<TCTLAbstractStateProperty> factors = new ArrayList<TCTLAbstractStateProperty>(); | 296 | ArrayList<TCTLAbstractStateProperty> factors = new ArrayList<TCTLAbstractStateProperty>(); |
507 | 279 | Token op; | 297 | Token op; |
524 | 280 | currentChild = AritmeticFactor(); | 298 | currentChild = AritmeticFactor(); |
525 | 281 | factors.add(currentChild); | 299 | factors.add(currentChild); |
526 | 282 | label_5: | 300 | label_5: |
527 | 283 | while (true) { | 301 | while (true) { |
528 | 284 | switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { | 302 | switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { |
529 | 285 | case MULT: | 303 | case MULT:{ |
530 | 286 | ; | 304 | ; |
531 | 287 | break; | 305 | break; |
532 | 288 | default: | 306 | } |
533 | 289 | jj_la1[8] = jj_gen; | 307 | default: |
534 | 290 | break label_5; | 308 | jj_la1[8] = jj_gen; |
535 | 291 | } | 309 | break label_5; |
536 | 292 | op = jj_consume_token(MULT); | 310 | } |
537 | 293 | currentChild = AritmeticFactor(); | 311 | op = jj_consume_token(MULT); |
538 | 294 | factors.add(new AritmeticOperator(op.image)); | 312 | currentChild = AritmeticFactor(); |
539 | 295 | factors.add(currentChild); | 313 | factors.add(new AritmeticOperator(op.image)); |
540 | 314 | factors.add(currentChild); | ||
541 | 315 | } | ||
542 | 316 | {if ("" != null) return factors.size() == 1 ? currentChild : new TCTLTermListNode(factors);} | ||
543 | 317 | throw new Error("Missing return statement in function"); | ||
544 | 296 | } | 318 | } |
545 | 297 | {if (true) return factors.size() == 1 ? currentChild : new TCTLTermListNode(factors);} | ||
546 | 298 | throw new Error("Missing return statement in function"); | ||
547 | 299 | } | ||
548 | 300 | 319 | ||
551 | 301 | final public TCTLAbstractStateProperty AritmeticFactor() throws ParseException { | 320 | final public TCTLAbstractStateProperty AritmeticFactor() throws ParseException {TCTLAbstractStateProperty thisProp; |
550 | 302 | TCTLAbstractStateProperty thisProp; | ||
552 | 303 | Token temp = null; | 321 | Token temp = null; |
553 | 304 | Token place; | 322 | Token place; |
554 | 305 | Token op; | 323 | Token op; |
555 | 306 | Token num; | 324 | Token num; |
992 | 307 | switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { | 325 | switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { |
993 | 308 | case IDENT: | 326 | case IDENT:{ |
994 | 309 | if (jj_2_3(2)) { | 327 | if (jj_2_3(2)) { |
995 | 310 | temp = jj_consume_token(IDENT); | 328 | temp = jj_consume_token(IDENT); |
996 | 311 | jj_consume_token(28); | 329 | jj_consume_token(28); |
997 | 312 | } else { | 330 | } else { |
998 | 313 | ; | 331 | ; |
999 | 314 | } | 332 | } |
1000 | 315 | place = jj_consume_token(IDENT); | 333 | place = jj_consume_token(IDENT); |
1001 | 316 | thisProp = new TCTLPlaceNode(temp == null ? "" : temp.image, place.image); | 334 | thisProp = new TCTLPlaceNode(temp == null ? "" : temp.image, place.image); |
1002 | 317 | break; | 335 | break; |
1003 | 318 | case NUM: | 336 | } |
1004 | 319 | num = jj_consume_token(NUM); | 337 | case NUM:{ |
1005 | 320 | thisProp = new TCTLConstNode(Integer.parseInt(num.image)); | 338 | num = jj_consume_token(NUM); |
1006 | 321 | break; | 339 | thisProp = new TCTLConstNode(Integer.parseInt(num.image)); |
1007 | 322 | case 26: | 340 | break; |
1008 | 323 | jj_consume_token(26); | 341 | } |
1009 | 324 | thisProp = AritmeticExpr(); | 342 | case 26:{ |
1010 | 325 | jj_consume_token(27); | 343 | jj_consume_token(26); |
1011 | 326 | break; | 344 | thisProp = AritmeticExpr(); |
1012 | 327 | default: | 345 | jj_consume_token(27); |
1013 | 328 | jj_la1[9] = jj_gen; | 346 | break; |
1014 | 329 | jj_consume_token(-1); | 347 | } |
1015 | 330 | throw new ParseException(); | 348 | default: |
1016 | 331 | } | 349 | jj_la1[9] = jj_gen; |
1017 | 332 | {if (true) return thisProp;} | 350 | jj_consume_token(-1); |
1018 | 333 | throw new Error("Missing return statement in function"); | 351 | throw new ParseException(); |
1019 | 334 | } | 352 | } |
1020 | 335 | 353 | {if ("" != null) return thisProp;} | |
1021 | 336 | private boolean jj_2_1(int xla) { | 354 | throw new Error("Missing return statement in function"); |
1022 | 337 | jj_la = xla; jj_lastpos = jj_scanpos = token; | 355 | } |
1023 | 338 | try { return !jj_3_1(); } | 356 | |
1024 | 339 | catch(LookaheadSuccess ls) { return true; } | 357 | private boolean jj_2_1(int xla) |
1025 | 340 | finally { jj_save(0, xla); } | 358 | { |
1026 | 341 | } | 359 | jj_la = xla; jj_lastpos = jj_scanpos = token; |
1027 | 342 | 360 | try { return (!jj_3_1()); } | |
1028 | 343 | private boolean jj_2_2(int xla) { | 361 | catch(LookaheadSuccess ls) { return true; } |
1029 | 344 | jj_la = xla; jj_lastpos = jj_scanpos = token; | 362 | finally { jj_save(0, xla); } |
1030 | 345 | try { return !jj_3_2(); } | 363 | } |
1031 | 346 | catch(LookaheadSuccess ls) { return true; } | 364 | |
1032 | 347 | finally { jj_save(1, xla); } | 365 | private boolean jj_2_2(int xla) |
1033 | 348 | } | 366 | { |
1034 | 349 | 367 | jj_la = xla; jj_lastpos = jj_scanpos = token; | |
1035 | 350 | private boolean jj_2_3(int xla) { | 368 | try { return (!jj_3_2()); } |
1036 | 351 | jj_la = xla; jj_lastpos = jj_scanpos = token; | 369 | catch(LookaheadSuccess ls) { return true; } |
1037 | 352 | try { return !jj_3_3(); } | 370 | finally { jj_save(1, xla); } |
1038 | 353 | catch(LookaheadSuccess ls) { return true; } | 371 | } |
1039 | 354 | finally { jj_save(2, xla); } | 372 | |
1040 | 355 | } | 373 | private boolean jj_2_3(int xla) |
1041 | 356 | 374 | { | |
1042 | 357 | private boolean jj_3R_16() { | 375 | jj_la = xla; jj_lastpos = jj_scanpos = token; |
1043 | 358 | if (jj_scan_token(26)) return true; | 376 | try { return (!jj_3_3()); } |
1044 | 359 | if (jj_3R_7()) return true; | 377 | catch(LookaheadSuccess ls) { return true; } |
1045 | 360 | if (jj_scan_token(27)) return true; | 378 | finally { jj_save(2, xla); } |
1046 | 361 | return false; | 379 | } |
1047 | 362 | } | 380 | |
1048 | 363 | 381 | private boolean jj_3R_AritmeticTerm_287_9_10() | |
1049 | 364 | private boolean jj_3R_13() { | 382 | { |
1050 | 365 | if (jj_scan_token(MULT)) return true; | 383 | if (jj_3R_AritmeticFactor_308_9_12()) return true; |
1051 | 366 | if (jj_3R_12()) return true; | 384 | Token xsp; |
1052 | 367 | return false; | 385 | while (true) { |
1053 | 368 | } | 386 | xsp = jj_scanpos; |
1054 | 369 | 387 | if (jj_3R_AritmeticTerm_290_17_13()) { jj_scanpos = xsp; break; } | |
1055 | 370 | private boolean jj_3_1() { | 388 | } |
1056 | 371 | if (jj_scan_token(IDENT)) return true; | 389 | return false; |
1057 | 372 | if (jj_scan_token(28)) return true; | 390 | } |
1058 | 373 | return false; | 391 | |
1059 | 374 | } | 392 | private boolean jj_3R_AritmeticFactor_308_9_12() |
1060 | 375 | 393 | { | |
1061 | 376 | private boolean jj_3R_15() { | 394 | Token xsp; |
1062 | 377 | if (jj_scan_token(NUM)) return true; | 395 | xsp = jj_scanpos; |
1063 | 378 | return false; | 396 | if (jj_3R_AritmeticFactor_309_17_14()) { |
1064 | 379 | } | 397 | jj_scanpos = xsp; |
1065 | 380 | 398 | if (jj_3R_AritmeticFactor_310_19_15()) { | |
1066 | 381 | private boolean jj_3_3() { | 399 | jj_scanpos = xsp; |
1067 | 382 | if (jj_scan_token(IDENT)) return true; | 400 | if (jj_3R_AritmeticFactor_311_19_16()) return true; |
1068 | 383 | if (jj_scan_token(28)) return true; | 401 | } |
1069 | 384 | return false; | 402 | } |
1070 | 385 | } | 403 | return false; |
1071 | 386 | 404 | } | |
1072 | 387 | private boolean jj_3R_7() { | 405 | |
1073 | 388 | if (jj_3R_8()) return true; | 406 | private boolean jj_3R_AritmeticExpr_252_17_9() |
1074 | 389 | Token xsp; | 407 | { |
1075 | 390 | while (true) { | 408 | if (jj_scan_token(PLUS)) return true; |
1076 | 391 | xsp = jj_scanpos; | 409 | if (jj_3R_AritmeticMinusExpr_268_9_8()) return true; |
1077 | 392 | if (jj_3R_9()) { jj_scanpos = xsp; break; } | 410 | return false; |
1078 | 393 | } | 411 | } |
1079 | 394 | return false; | 412 | |
1080 | 395 | } | 413 | private boolean jj_3_2() |
1081 | 396 | 414 | { | |
1082 | 397 | private boolean jj_3R_14() { | 415 | if (jj_3R_AtomicProposition_234_9_6()) return true; |
1083 | 398 | Token xsp; | 416 | return false; |
1084 | 399 | xsp = jj_scanpos; | 417 | } |
1085 | 400 | if (jj_3_3()) jj_scanpos = xsp; | 418 | |
1086 | 401 | if (jj_scan_token(IDENT)) return true; | 419 | private boolean jj_3R_AtomicProposition_234_9_6() |
1087 | 402 | return false; | 420 | { |
1088 | 403 | } | 421 | if (jj_3R_AritmeticExpr_249_9_7()) return true; |
1089 | 404 | 422 | if (jj_scan_token(OP)) return true; | |
1090 | 405 | private boolean jj_3R_8() { | 423 | if (jj_3R_AritmeticExpr_249_9_7()) return true; |
1091 | 406 | if (jj_3R_10()) return true; | 424 | return false; |
1092 | 407 | Token xsp; | 425 | } |
1093 | 408 | while (true) { | 426 | |
1094 | 409 | xsp = jj_scanpos; | 427 | private boolean jj_3R_AritmeticMinusExpr_271_17_11() |
1095 | 410 | if (jj_3R_11()) { jj_scanpos = xsp; break; } | 428 | { |
1096 | 411 | } | 429 | if (jj_scan_token(MINUS)) return true; |
1097 | 412 | return false; | 430 | if (jj_3R_AritmeticTerm_287_9_10()) return true; |
1098 | 413 | } | 431 | return false; |
1099 | 414 | 432 | } | |
1100 | 415 | private boolean jj_3R_10() { | 433 | |
1101 | 416 | if (jj_3R_12()) return true; | 434 | private boolean jj_3R_AritmeticFactor_311_19_16() |
1102 | 417 | Token xsp; | 435 | { |
1103 | 418 | while (true) { | 436 | if (jj_scan_token(26)) return true; |
1104 | 419 | xsp = jj_scanpos; | 437 | if (jj_3R_AritmeticExpr_249_9_7()) return true; |
1105 | 420 | if (jj_3R_13()) { jj_scanpos = xsp; break; } | 438 | if (jj_scan_token(27)) return true; |
1106 | 421 | } | 439 | return false; |
1107 | 422 | return false; | 440 | } |
1108 | 423 | } | 441 | |
1109 | 424 | 442 | private boolean jj_3R_AritmeticTerm_290_17_13() | |
1110 | 425 | private boolean jj_3R_12() { | 443 | { |
1111 | 426 | Token xsp; | 444 | if (jj_scan_token(MULT)) return true; |
1112 | 427 | xsp = jj_scanpos; | 445 | if (jj_3R_AritmeticFactor_308_9_12()) return true; |
1113 | 428 | if (jj_3R_14()) { | 446 | return false; |
1114 | 429 | jj_scanpos = xsp; | 447 | } |
1115 | 430 | if (jj_3R_15()) { | 448 | |
1116 | 431 | jj_scanpos = xsp; | 449 | private boolean jj_3_1() |
1117 | 432 | if (jj_3R_16()) return true; | 450 | { |
1118 | 433 | } | 451 | if (jj_scan_token(IDENT)) return true; |
1119 | 434 | } | 452 | if (jj_scan_token(28)) return true; |
1120 | 435 | return false; | 453 | return false; |
1121 | 436 | } | 454 | } |
1122 | 437 | 455 | ||
1123 | 438 | private boolean jj_3R_9() { | 456 | private boolean jj_3R_AritmeticFactor_310_19_15() |
1124 | 439 | if (jj_scan_token(PLUS)) return true; | 457 | { |
1125 | 440 | if (jj_3R_8()) return true; | 458 | if (jj_scan_token(NUM)) return true; |
1126 | 441 | return false; | 459 | return false; |
1127 | 442 | } | 460 | } |
1128 | 443 | 461 | ||
1129 | 444 | private boolean jj_3_2() { | 462 | private boolean jj_3_3() |
1130 | 445 | if (jj_3R_6()) return true; | 463 | { |
1131 | 446 | return false; | 464 | if (jj_scan_token(IDENT)) return true; |
1132 | 447 | } | 465 | if (jj_scan_token(28)) return true; |
1133 | 448 | 466 | return false; | |
1134 | 449 | private boolean jj_3R_6() { | 467 | } |
1135 | 450 | if (jj_3R_7()) return true; | 468 | |
1136 | 451 | if (jj_scan_token(OP)) return true; | 469 | private boolean jj_3R_AritmeticExpr_249_9_7() |
1137 | 452 | if (jj_3R_7()) return true; | 470 | { |
1138 | 453 | return false; | 471 | if (jj_3R_AritmeticMinusExpr_268_9_8()) return true; |
1139 | 454 | } | 472 | Token xsp; |
1140 | 455 | 473 | while (true) { | |
1141 | 456 | private boolean jj_3R_11() { | 474 | xsp = jj_scanpos; |
1142 | 457 | if (jj_scan_token(MINUS)) return true; | 475 | if (jj_3R_AritmeticExpr_252_17_9()) { jj_scanpos = xsp; break; } |
1143 | 458 | if (jj_3R_10()) return true; | 476 | } |
1144 | 459 | return false; | 477 | return false; |
1145 | 460 | } | 478 | } |
1146 | 461 | 479 | ||
1147 | 462 | /** Generated Token Manager. */ | 480 | private boolean jj_3R_AritmeticFactor_309_17_14() |
1148 | 463 | public TAPAALCTLQueryParserTokenManager token_source; | 481 | { |
1149 | 464 | SimpleCharStream jj_input_stream; | 482 | Token xsp; |
1150 | 465 | /** Current token. */ | 483 | xsp = jj_scanpos; |
1151 | 466 | public Token token; | 484 | if (jj_3_3()) jj_scanpos = xsp; |
1152 | 467 | /** Next token. */ | 485 | if (jj_scan_token(IDENT)) return true; |
1153 | 468 | public Token jj_nt; | 486 | return false; |
1154 | 469 | private int jj_ntk; | 487 | } |
1155 | 470 | private Token jj_scanpos, jj_lastpos; | 488 | |
1156 | 471 | private int jj_la; | 489 | private boolean jj_3R_AritmeticMinusExpr_268_9_8() |
1157 | 472 | private int jj_gen; | 490 | { |
1158 | 473 | final private int[] jj_la1 = new int[10]; | 491 | if (jj_3R_AritmeticTerm_287_9_10()) return true; |
1159 | 474 | static private int[] jj_la1_0; | 492 | Token xsp; |
1160 | 475 | static { | 493 | while (true) { |
1161 | 476 | jj_la1_init_0(); | 494 | xsp = jj_scanpos; |
1162 | 477 | } | 495 | if (jj_3R_AritmeticMinusExpr_271_17_11()) { jj_scanpos = xsp; break; } |
1163 | 478 | private static void jj_la1_init_0() { | 496 | } |
1164 | 479 | jj_la1_0 = new int[] {0x1ef0,0x2000,0x4000,0x8000,0xe,0x4100000,0x10000,0x20000,0x40000,0x4180000,}; | 497 | return false; |
1165 | 480 | } | 498 | } |
1166 | 481 | final private JJCalls[] jj_2_rtns = new JJCalls[3]; | 499 | |
1167 | 482 | private boolean jj_rescan = false; | 500 | /** Generated Token Manager. */ |
1168 | 483 | private int jj_gc = 0; | 501 | public TAPAALCTLQueryParserTokenManager token_source; |
1169 | 484 | 502 | SimpleCharStream jj_input_stream; | |
1170 | 485 | /** Constructor with InputStream. */ | 503 | /** Current token. */ |
1171 | 486 | public TAPAALCTLQueryParser(java.io.InputStream stream) { | 504 | public Token token; |
1172 | 487 | this(stream, null); | 505 | /** Next token. */ |
1173 | 488 | } | 506 | public Token jj_nt; |
1174 | 489 | /** Constructor with InputStream and supplied encoding */ | 507 | private int jj_ntk; |
1175 | 490 | public TAPAALCTLQueryParser(java.io.InputStream stream, String encoding) { | 508 | private Token jj_scanpos, jj_lastpos; |
1176 | 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; |
1177 | 492 | token_source = new TAPAALCTLQueryParserTokenManager(jj_input_stream); | 510 | private int jj_gen; |
1178 | 493 | token = new Token(); | 511 | final private int[] jj_la1 = new int[10]; |
1179 | 494 | jj_ntk = -1; | 512 | static private int[] jj_la1_0; |
1180 | 495 | jj_gen = 0; | 513 | static { |
1181 | 496 | for (int i = 0; i < 10; i++) jj_la1[i] = -1; | 514 | jj_la1_init_0(); |
1182 | 497 | for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls(); | 515 | } |
1183 | 498 | } | 516 | private static void jj_la1_init_0() { |
1184 | 499 | 517 | jj_la1_0 = new int[] {0x1ef0,0x2000,0x4000,0x8000,0xe,0x4100000,0x10000,0x20000,0x40000,0x4180000,}; | |
1185 | 500 | /** Reinitialise. */ | 518 | } |
1186 | 501 | public void ReInit(java.io.InputStream stream) { | 519 | final private JJCalls[] jj_2_rtns = new JJCalls[3]; |
1187 | 502 | ReInit(stream, null); | 520 | private boolean jj_rescan = false; |
1188 | 503 | } | 521 | private int jj_gc = 0; |
1189 | 504 | /** Reinitialise. */ | 522 | |
1190 | 505 | public void ReInit(java.io.InputStream stream, String encoding) { | 523 | /** Constructor with InputStream. */ |
1191 | 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) { |
1192 | 507 | token_source.ReInit(jj_input_stream); | 525 | this(stream, null); |
1193 | 508 | token = new Token(); | 526 | } |
1194 | 509 | jj_ntk = -1; | 527 | /** Constructor with InputStream and supplied encoding */ |
1195 | 510 | jj_gen = 0; | 528 | public TAPAALCTLQueryParser(java.io.InputStream stream, String encoding) { |
1196 | 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); } |
1197 | 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); |
1198 | 513 | } | 531 | token = new Token(); |
1199 | 514 | 532 | jj_ntk = -1; | |
1200 | 515 | /** Constructor. */ | 533 | jj_gen = 0; |
1201 | 516 | public TAPAALCTLQueryParser(java.io.Reader stream) { | 534 | for (int i = 0; i < 10; i++) jj_la1[i] = -1; |
1202 | 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(); |
1203 | 518 | token_source = new TAPAALCTLQueryParserTokenManager(jj_input_stream); | 536 | } |
1204 | 519 | token = new Token(); | 537 | |
1205 | 520 | jj_ntk = -1; | 538 | /** Reinitialise. */ |
1206 | 521 | jj_gen = 0; | 539 | public void ReInit(java.io.InputStream stream) { |
1207 | 522 | for (int i = 0; i < 10; i++) jj_la1[i] = -1; | 540 | ReInit(stream, null); |
1208 | 523 | for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls(); | 541 | } |
1209 | 524 | } | 542 | /** Reinitialise. */ |
1210 | 525 | 543 | public void ReInit(java.io.InputStream stream, String encoding) { | |
1211 | 526 | /** Reinitialise. */ | 544 | try { jj_input_stream.ReInit(stream, encoding, 1, 1); } catch(java.io.UnsupportedEncodingException e) { throw new RuntimeException(e); } |
1212 | 527 | public void ReInit(java.io.Reader stream) { | 545 | token_source.ReInit(jj_input_stream); |
1213 | 528 | jj_input_stream.ReInit(stream, 1, 1); | 546 | token = new Token(); |
1214 | 529 | token_source.ReInit(jj_input_stream); | 547 | jj_ntk = -1; |
1215 | 530 | token = new Token(); | 548 | jj_gen = 0; |
1216 | 531 | jj_ntk = -1; | 549 | for (int i = 0; i < 10; i++) jj_la1[i] = -1; |
1217 | 532 | jj_gen = 0; | 550 | for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls(); |
1218 | 533 | for (int i = 0; i < 10; i++) jj_la1[i] = -1; | 551 | } |
1219 | 534 | for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls(); | 552 | |
1220 | 535 | } | 553 | /** Constructor. */ |
1221 | 536 | 554 | public TAPAALCTLQueryParser(java.io.Reader stream) { | |
1222 | 537 | /** Constructor with generated Token Manager. */ | 555 | jj_input_stream = new SimpleCharStream(stream, 1, 1); |
1223 | 538 | public TAPAALCTLQueryParser(TAPAALCTLQueryParserTokenManager tm) { | 556 | token_source = new TAPAALCTLQueryParserTokenManager(jj_input_stream); |
1224 | 539 | token_source = tm; | 557 | token = new Token(); |
1225 | 540 | token = new Token(); | 558 | jj_ntk = -1; |
1226 | 541 | jj_ntk = -1; | 559 | jj_gen = 0; |
1227 | 542 | jj_gen = 0; | 560 | for (int i = 0; i < 10; i++) jj_la1[i] = -1; |
1228 | 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(); |
1229 | 544 | for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls(); | 562 | } |
1230 | 545 | } | 563 | |
1231 | 546 | 564 | /** Reinitialise. */ | |
1232 | 547 | /** Reinitialise. */ | 565 | public void ReInit(java.io.Reader stream) { |
1233 | 548 | public void ReInit(TAPAALCTLQueryParserTokenManager tm) { | 566 | if (jj_input_stream == null) { |
1234 | 549 | token_source = tm; | 567 | jj_input_stream = new SimpleCharStream(stream, 1, 1); |
1235 | 550 | token = new Token(); | 568 | } else { |
1236 | 551 | jj_ntk = -1; | 569 | jj_input_stream.ReInit(stream, 1, 1); |
1237 | 552 | jj_gen = 0; | 570 | } |
1238 | 553 | for (int i = 0; i < 10; i++) jj_la1[i] = -1; | 571 | if (token_source == null) { |
1239 | 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); |
1240 | 555 | } | 573 | } |
1241 | 556 | 574 | ||
1242 | 557 | private Token jj_consume_token(int kind) throws ParseException { | 575 | token_source.ReInit(jj_input_stream); |
1243 | 558 | Token oldToken; | 576 | token = new Token(); |
1244 | 559 | if ((oldToken = token).next != null) token = token.next; | 577 | jj_ntk = -1; |
1245 | 560 | else token = token.next = token_source.getNextToken(); | 578 | jj_gen = 0; |
1246 | 561 | jj_ntk = -1; | 579 | for (int i = 0; i < 10; i++) jj_la1[i] = -1; |
1247 | 562 | if (token.kind == kind) { | 580 | for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls(); |
1248 | 563 | jj_gen++; | 581 | } |
1249 | 564 | if (++jj_gc > 100) { | 582 | |
1250 | 565 | jj_gc = 0; | 583 | /** Constructor with generated Token Manager. */ |
1251 | 566 | for (int i = 0; i < jj_2_rtns.length; i++) { | 584 | public TAPAALCTLQueryParser(TAPAALCTLQueryParserTokenManager tm) { |
1252 | 567 | JJCalls c = jj_2_rtns[i]; | 585 | token_source = tm; |
1253 | 568 | while (c != null) { | 586 | token = new Token(); |
1254 | 569 | if (c.gen < jj_gen) c.first = null; | 587 | jj_ntk = -1; |
1255 | 570 | c = c.next; | 588 | jj_gen = 0; |
1256 | 571 | } | 589 | for (int i = 0; i < 10; i++) jj_la1[i] = -1; |
1257 | 572 | } | 590 | for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls(); |
1258 | 573 | } | 591 | } |
1259 | 574 | return token; | 592 | |
1260 | 575 | } | 593 | /** Reinitialise. */ |
1261 | 576 | token = oldToken; | 594 | public void ReInit(TAPAALCTLQueryParserTokenManager tm) { |
1262 | 577 | jj_kind = kind; | 595 | token_source = tm; |
1263 | 578 | throw generateParseException(); | 596 | token = new Token(); |
1264 | 579 | } | 597 | jj_ntk = -1; |
1265 | 580 | 598 | jj_gen = 0; | |
1266 | 581 | static private final class LookaheadSuccess extends java.lang.Error { } | 599 | for (int i = 0; i < 10; i++) jj_la1[i] = -1; |
1267 | 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(); |
1268 | 583 | private boolean jj_scan_token(int kind) { | 601 | } |
1269 | 584 | if (jj_scanpos == jj_lastpos) { | 602 | |
1270 | 585 | jj_la--; | 603 | private Token jj_consume_token(int kind) throws ParseException { |
1271 | 586 | if (jj_scanpos.next == null) { | 604 | Token oldToken; |
1272 | 587 | jj_lastpos = jj_scanpos = jj_scanpos.next = token_source.getNextToken(); | 605 | if ((oldToken = token).next != null) token = token.next; |
1273 | 588 | } else { | 606 | else token = token.next = token_source.getNextToken(); |
1274 | 589 | jj_lastpos = jj_scanpos = jj_scanpos.next; | 607 | jj_ntk = -1; |
1275 | 590 | } | 608 | if (token.kind == kind) { |
1276 | 591 | } else { | 609 | jj_gen++; |
1277 | 592 | jj_scanpos = jj_scanpos.next; | 610 | if (++jj_gc > 100) { |
1278 | 593 | } | 611 | jj_gc = 0; |
1279 | 594 | if (jj_rescan) { | 612 | for (int i = 0; i < jj_2_rtns.length; i++) { |
1280 | 595 | int i = 0; Token tok = token; | 613 | JJCalls c = jj_2_rtns[i]; |
1281 | 596 | while (tok != null && tok != jj_scanpos) { i++; tok = tok.next; } | 614 | while (c != null) { |
1282 | 597 | if (tok != null) jj_add_error_token(kind, i); | 615 | if (c.gen < jj_gen) c.first = null; |
1283 | 598 | } | 616 | c = c.next; |
1284 | 599 | if (jj_scanpos.kind != kind) return true; | 617 | } |
1285 | 600 | if (jj_la == 0 && jj_scanpos == jj_lastpos) throw jj_ls; | 618 | } |
1286 | 601 | return false; | 619 | } |
1287 | 602 | } | 620 | return token; |
1288 | 603 | 621 | } | |
1289 | 604 | 622 | token = oldToken; | |
1290 | 605 | /** Get the next Token. */ | 623 | jj_kind = kind; |
1291 | 606 | final public Token getNextToken() { | 624 | throw generateParseException(); |
1292 | 607 | if (token.next != null) token = token.next; | 625 | } |
1293 | 608 | else token = token.next = token_source.getNextToken(); | 626 | |
1294 | 609 | jj_ntk = -1; | 627 | @SuppressWarnings("serial") |
1295 | 610 | jj_gen++; | 628 | static private final class LookaheadSuccess extends java.lang.Error { |
1296 | 611 | return token; | 629 | @Override |
1297 | 612 | } | 630 | public Throwable fillInStackTrace() { |
1298 | 613 | 631 | return this; | |
1299 | 614 | /** Get the specific Token. */ | 632 | } |
1300 | 615 | final public Token getToken(int index) { | 633 | } |
1301 | 616 | Token t = token; | 634 | static private final LookaheadSuccess jj_ls = new LookaheadSuccess(); |
1302 | 617 | for (int i = 0; i < index; i++) { | 635 | private boolean jj_scan_token(int kind) { |
1303 | 618 | if (t.next != null) t = t.next; | 636 | if (jj_scanpos == jj_lastpos) { |
1304 | 619 | else t = t.next = token_source.getNextToken(); | 637 | jj_la--; |
1305 | 620 | } | 638 | if (jj_scanpos.next == null) { |
1306 | 621 | return t; | 639 | jj_lastpos = jj_scanpos = jj_scanpos.next = token_source.getNextToken(); |
1307 | 622 | } | 640 | } else { |
1308 | 623 | 641 | jj_lastpos = jj_scanpos = jj_scanpos.next; | |
1309 | 624 | private int jj_ntk() { | 642 | } |
1310 | 625 | if ((jj_nt=token.next) == null) | 643 | } else { |
1311 | 626 | return (jj_ntk = (token.next=token_source.getNextToken()).kind); | 644 | jj_scanpos = jj_scanpos.next; |
1312 | 627 | else | 645 | } |
1313 | 628 | return (jj_ntk = jj_nt.kind); | 646 | if (jj_rescan) { |
1314 | 629 | } | 647 | int i = 0; Token tok = token; |
1315 | 630 | 648 | while (tok != null && tok != jj_scanpos) { i++; tok = tok.next; } | |
1316 | 631 | private java.util.List<int[]> jj_expentries = new java.util.ArrayList<int[]>(); | 649 | if (tok != null) jj_add_error_token(kind, i); |
1317 | 632 | private int[] jj_expentry; | 650 | } |
1318 | 633 | private int jj_kind = -1; | 651 | if (jj_scanpos.kind != kind) return true; |
1319 | 634 | private int[] jj_lasttokens = new int[100]; | 652 | if (jj_la == 0 && jj_scanpos == jj_lastpos) throw jj_ls; |
1320 | 635 | private int jj_endpos; | 653 | return false; |
1321 | 636 | 654 | } | |
1322 | 637 | private void jj_add_error_token(int kind, int pos) { | 655 | |
1323 | 638 | if (pos >= 100) return; | 656 | |
1324 | 639 | if (pos == jj_endpos + 1) { | 657 | /** Get the next Token. */ |
1325 | 640 | jj_lasttokens[jj_endpos++] = kind; | 658 | final public Token getNextToken() { |
1326 | 641 | } else if (jj_endpos != 0) { | 659 | if (token.next != null) token = token.next; |
1327 | 642 | jj_expentry = new int[jj_endpos]; | 660 | else token = token.next = token_source.getNextToken(); |
1328 | 643 | for (int i = 0; i < jj_endpos; i++) { | 661 | jj_ntk = -1; |
1329 | 644 | jj_expentry[i] = jj_lasttokens[i]; | 662 | jj_gen++; |
1330 | 645 | } | 663 | return token; |
1331 | 646 | boolean exists = false; | 664 | } |
1332 | 647 | for (java.util.Iterator<?> it = jj_expentries.iterator(); it.hasNext();) { | 665 | |
1333 | 648 | exists = true; | 666 | /** Get the specific Token. */ |
1334 | 649 | int[] oldentry = (int[])(it.next()); | 667 | final public Token getToken(int index) { |
1335 | 650 | if (oldentry.length == jj_expentry.length) { | 668 | Token t = token; |
1336 | 651 | for (int i = 0; i < jj_expentry.length; i++) { | 669 | for (int i = 0; i < index; i++) { |
1337 | 652 | if (oldentry[i] != jj_expentry[i]) { | 670 | if (t.next != null) t = t.next; |
1338 | 653 | exists = false; | 671 | else t = t.next = token_source.getNextToken(); |
1339 | 654 | break; | 672 | } |
1340 | 655 | } | 673 | return t; |
1341 | 656 | } | 674 | } |
1342 | 657 | if (exists) break; | 675 | |
1343 | 658 | } | 676 | private int jj_ntk_f() { |
1344 | 659 | } | 677 | if ((jj_nt=token.next) == null) |
1345 | 660 | if (!exists) jj_expentries.add(jj_expentry); | 678 | return (jj_ntk = (token.next=token_source.getNextToken()).kind); |
1346 | 661 | if (pos != 0) jj_lasttokens[(jj_endpos = pos) - 1] = kind; | 679 | else |
1347 | 662 | } | 680 | return (jj_ntk = jj_nt.kind); |
1348 | 663 | } | 681 | } |
1349 | 664 | 682 | ||
1350 | 665 | /** Generate ParseException. */ | 683 | private java.util.List<int[]> jj_expentries = new java.util.ArrayList<int[]>(); |
1351 | 666 | public ParseException generateParseException() { | 684 | private int[] jj_expentry; |
1352 | 667 | jj_expentries.clear(); | 685 | private int jj_kind = -1; |
1353 | 668 | boolean[] la1tokens = new boolean[29]; | 686 | private int[] jj_lasttokens = new int[100]; |
1354 | 669 | if (jj_kind >= 0) { | 687 | private int jj_endpos; |
1355 | 670 | la1tokens[jj_kind] = true; | 688 | |
1356 | 671 | jj_kind = -1; | 689 | private void jj_add_error_token(int kind, int pos) { |
1357 | 672 | } | 690 | if (pos >= 100) { |
1358 | 673 | for (int i = 0; i < 10; i++) { | 691 | return; |
1359 | 674 | if (jj_la1[i] == jj_gen) { | 692 | } |
1360 | 675 | for (int j = 0; j < 32; j++) { | 693 | |
1361 | 676 | if ((jj_la1_0[i] & (1<<j)) != 0) { | 694 | if (pos == jj_endpos + 1) { |
1362 | 677 | la1tokens[j] = true; | 695 | jj_lasttokens[jj_endpos++] = kind; |
1363 | 678 | } | 696 | } else if (jj_endpos != 0) { |
1364 | 679 | } | 697 | jj_expentry = new int[jj_endpos]; |
1365 | 680 | } | 698 | |
1366 | 681 | } | 699 | for (int i = 0; i < jj_endpos; i++) { |
1367 | 682 | for (int i = 0; i < 29; i++) { | 700 | jj_expentry[i] = jj_lasttokens[i]; |
1368 | 683 | if (la1tokens[i]) { | 701 | } |
1369 | 684 | jj_expentry = new int[1]; | 702 | |
1370 | 685 | jj_expentry[0] = i; | 703 | for (int[] oldentry : jj_expentries) { |
1371 | 686 | jj_expentries.add(jj_expentry); | 704 | if (oldentry.length == jj_expentry.length) { |
1372 | 687 | } | 705 | boolean isMatched = true; |
1373 | 688 | } | 706 | |
1374 | 689 | jj_endpos = 0; | 707 | for (int i = 0; i < jj_expentry.length; i++) { |
1375 | 690 | jj_rescan_token(); | 708 | if (oldentry[i] != jj_expentry[i]) { |
1376 | 691 | jj_add_error_token(0, 0); | 709 | isMatched = false; |
1377 | 692 | int[][] exptokseq = new int[jj_expentries.size()][]; | 710 | break; |
1378 | 693 | for (int i = 0; i < jj_expentries.size(); i++) { | 711 | } |
1379 | 694 | exptokseq[i] = jj_expentries.get(i); | 712 | |
1380 | 695 | } | 713 | } |
1381 | 696 | return new ParseException(token, exptokseq, tokenImage); | 714 | if (isMatched) { |
1382 | 697 | } | 715 | jj_expentries.add(jj_expentry); |
1383 | 698 | 716 | break; | |
1384 | 699 | /** Enable tracing. */ | 717 | } |
1385 | 700 | final public void enable_tracing() { | 718 | } |
1386 | 701 | } | 719 | } |
1387 | 702 | 720 | ||
1388 | 703 | /** Disable tracing. */ | 721 | if (pos != 0) { |
1389 | 704 | final public void disable_tracing() { | 722 | jj_lasttokens[(jj_endpos = pos) - 1] = kind; |
1390 | 705 | } | 723 | } |
1391 | 706 | 724 | } | |
1392 | 707 | private void jj_rescan_token() { | 725 | } |
1393 | 708 | jj_rescan = true; | 726 | |
1394 | 709 | for (int i = 0; i < 3; i++) { | 727 | /** Generate ParseException. */ |
1395 | 710 | try { | 728 | public ParseException generateParseException() { |
1396 | 711 | JJCalls p = jj_2_rtns[i]; | 729 | jj_expentries.clear(); |
1397 | 712 | do { | 730 | boolean[] la1tokens = new boolean[29]; |
1398 | 713 | if (p.gen > jj_gen) { | 731 | if (jj_kind >= 0) { |
1399 | 714 | jj_la = p.arg; jj_lastpos = jj_scanpos = p.first; | 732 | la1tokens[jj_kind] = true; |
1400 | 715 | switch (i) { | 733 | jj_kind = -1; |
1401 | 716 | case 0: jj_3_1(); break; | 734 | } |
1402 | 717 | case 1: jj_3_2(); break; | 735 | for (int i = 0; i < 10; i++) { |
1403 | 718 | case 2: jj_3_3(); break; | 736 | if (jj_la1[i] == jj_gen) { |
1404 | 719 | } | 737 | for (int j = 0; j < 32; j++) { |
1405 | 720 | } | 738 | if ((jj_la1_0[i] & (1<<j)) != 0) { |
1406 | 721 | p = p.next; | 739 | la1tokens[j] = true; |
1407 | 722 | } while (p != null); | 740 | } |
1408 | 723 | } catch(LookaheadSuccess ls) { } | 741 | } |
1409 | 724 | } | 742 | } |
1410 | 725 | jj_rescan = false; | 743 | } |
1411 | 726 | } | 744 | for (int i = 0; i < 29; i++) { |
1412 | 727 | 745 | if (la1tokens[i]) { | |
1413 | 728 | private void jj_save(int index, int xla) { | 746 | jj_expentry = new int[1]; |
1414 | 729 | JJCalls p = jj_2_rtns[index]; | 747 | jj_expentry[0] = i; |
1415 | 730 | while (p.gen > jj_gen) { | 748 | jj_expentries.add(jj_expentry); |
1416 | 731 | if (p.next == null) { p = p.next = new JJCalls(); break; } | 749 | } |
1417 | 732 | p = p.next; | 750 | } |
1418 | 733 | } | 751 | jj_endpos = 0; |
1419 | 734 | p.gen = jj_gen + xla - jj_la; p.first = token; p.arg = xla; | 752 | jj_rescan_token(); |
1420 | 735 | } | 753 | jj_add_error_token(0, 0); |
1421 | 736 | 754 | int[][] exptokseq = new int[jj_expentries.size()][]; | |
1422 | 737 | static final class JJCalls { | 755 | for (int i = 0; i < jj_expentries.size(); i++) { |
1423 | 738 | int gen; | 756 | exptokseq[i] = jj_expentries.get(i); |
1424 | 739 | Token first; | 757 | } |
1425 | 740 | int arg; | 758 | return new ParseException(token, exptokseq, tokenImage); |
1426 | 741 | JJCalls next; | 759 | } |
1427 | 742 | } | 760 | |
1428 | 761 | private boolean trace_enabled; | ||
1429 | 762 | |||
1430 | 763 | /** Trace enabled. */ | ||
1431 | 764 | final public boolean trace_enabled() { | ||
1432 | 765 | return trace_enabled; | ||
1433 | 766 | } | ||
1434 | 767 | |||
1435 | 768 | /** Enable tracing. */ | ||
1436 | 769 | final public void enable_tracing() { | ||
1437 | 770 | } | ||
1438 | 771 | |||
1439 | 772 | /** Disable tracing. */ | ||
1440 | 773 | final public void disable_tracing() { | ||
1441 | 774 | } | ||
1442 | 775 | |||
1443 | 776 | private void jj_rescan_token() { | ||
1444 | 777 | jj_rescan = true; | ||
1445 | 778 | for (int i = 0; i < 3; i++) { | ||
1446 | 779 | try { | ||
1447 | 780 | JJCalls p = jj_2_rtns[i]; | ||
1448 | 781 | |||
1449 | 782 | do { | ||
1450 | 783 | if (p.gen > jj_gen) { | ||
1451 | 784 | jj_la = p.arg; jj_lastpos = jj_scanpos = p.first; | ||
1452 | 785 | switch (i) { | ||
1453 | 786 | case 0: jj_3_1(); break; | ||
1454 | 787 | case 1: jj_3_2(); break; | ||
1455 | 788 | case 2: jj_3_3(); break; | ||
1456 | 789 | } | ||
1457 | 790 | } | ||
1458 | 791 | p = p.next; | ||
1459 | 792 | } while (p != null); | ||
1460 | 793 | |||
1461 | 794 | } catch(LookaheadSuccess ls) { } | ||
1462 | 795 | } | ||
1463 | 796 | jj_rescan = false; | ||
1464 | 797 | } | ||
1465 | 798 | |||
1466 | 799 | private void jj_save(int index, int xla) { | ||
1467 | 800 | JJCalls p = jj_2_rtns[index]; | ||
1468 | 801 | while (p.gen > jj_gen) { | ||
1469 | 802 | if (p.next == null) { p = p.next = new JJCalls(); break; } | ||
1470 | 803 | p = p.next; | ||
1471 | 804 | } | ||
1472 | 805 | |||
1473 | 806 | p.gen = jj_gen + xla - jj_la; | ||
1474 | 807 | p.first = token; | ||
1475 | 808 | p.arg = xla; | ||
1476 | 809 | } | ||
1477 | 810 | |||
1478 | 811 | static final class JJCalls { | ||
1479 | 812 | int gen; | ||
1480 | 813 | Token first; | ||
1481 | 814 | int arg; | ||
1482 | 815 | JJCalls next; | ||
1483 | 816 | } | ||
1484 | 743 | 817 | ||
1485 | 744 | } | 818 | } |
1486 | 745 | 819 | ||
1487 | === modified file 'src/dk/aau/cs/TCTL/Parsing/TAPAALQueryParser.java' | |||
1488 | --- src/dk/aau/cs/TCTL/Parsing/TAPAALQueryParser.java 2014-05-22 20:26:41 +0000 | |||
1489 | +++ src/dk/aau/cs/TCTL/Parsing/TAPAALQueryParser.java 2021-09-29 07:20:55 +0000 | |||
1490 | @@ -1,3 +1,4 @@ | |||
1491 | 1 | /* TAPAALQueryParser.java */ | ||
1492 | 1 | /* Generated By:JavaCC: Do not edit this line. TAPAALQueryParser.java */ | 2 | /* Generated By:JavaCC: Do not edit this line. TAPAALQueryParser.java */ |
1493 | 2 | package dk.aau.cs.TCTL.Parsing; | 3 | package dk.aau.cs.TCTL.Parsing; |
1494 | 3 | 4 | ||
1495 | @@ -25,624 +26,691 @@ | |||
1496 | 25 | 26 | ||
1497 | 26 | public class TAPAALQueryParser implements TAPAALQueryParserConstants { | 27 | public class TAPAALQueryParser implements TAPAALQueryParserConstants { |
1498 | 27 | 28 | ||
1504 | 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"; |
1505 | 29 | 30 | ||
1506 | 30 | public static TCTLAbstractProperty parse(String query) throws ParseException { | 31 | public static TCTLAbstractProperty parse(String query) throws ParseException { |
1507 | 31 | TAPAALQueryParser parser = new TAPAALQueryParser(new StringReader(query)); | 32 | TAPAALQueryParser parser = new TAPAALQueryParser(new StringReader(query)); |
1508 | 32 | return parser.AbstractProperty(); | 33 | return parser.Start(); |
1509 | 34 | } | ||
1510 | 35 | |||
1511 | 36 | /** Root production. */ | ||
1512 | 37 | final public TCTLAbstractProperty Start() throws ParseException {TCTLAbstractProperty child = null; | ||
1513 | 38 | child = AbstractProperty(); | ||
1514 | 39 | jj_consume_token(0); | ||
1515 | 40 | {if ("" != null) return child;} | ||
1516 | 41 | throw new Error("Missing return statement in function"); | ||
1517 | 42 | } | ||
1518 | 43 | |||
1519 | 44 | final public TCTLAbstractProperty AbstractProperty() throws ParseException {TCTLAbstractStateProperty child = null; | ||
1520 | 45 | switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { | ||
1521 | 46 | case EF:{ | ||
1522 | 47 | jj_consume_token(EF); | ||
1523 | 48 | child = OrExpr(); | ||
1524 | 49 | {if ("" != null) return new TCTLEFNode(child);} | ||
1525 | 50 | break; | ||
1526 | 51 | } | ||
1527 | 52 | case EG:{ | ||
1528 | 53 | jj_consume_token(EG); | ||
1529 | 54 | child = OrExpr(); | ||
1530 | 55 | {if ("" != null) return new TCTLEGNode(child);} | ||
1531 | 56 | break; | ||
1532 | 57 | } | ||
1533 | 58 | case AF:{ | ||
1534 | 59 | jj_consume_token(AF); | ||
1535 | 60 | child = OrExpr(); | ||
1536 | 61 | {if ("" != null) return new TCTLAFNode(child);} | ||
1537 | 62 | break; | ||
1538 | 63 | } | ||
1539 | 64 | case AG:{ | ||
1540 | 65 | jj_consume_token(AG); | ||
1541 | 66 | child = OrExpr(); | ||
1542 | 67 | {if ("" != null) return new TCTLAGNode(child);} | ||
1543 | 68 | break; | ||
1544 | 69 | } | ||
1545 | 70 | default: | ||
1546 | 71 | jj_la1[0] = jj_gen; | ||
1547 | 72 | jj_consume_token(-1); | ||
1548 | 73 | throw new ParseException(); | ||
1549 | 33 | } | 74 | } |
1579 | 34 | 75 | throw new Error("Missing return statement in function"); | |
1551 | 35 | /** Root production. */ | ||
1552 | 36 | final public TCTLAbstractProperty AbstractProperty() throws ParseException { | ||
1553 | 37 | TCTLAbstractStateProperty child = null; | ||
1554 | 38 | switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { | ||
1555 | 39 | case EF: | ||
1556 | 40 | jj_consume_token(EF); | ||
1557 | 41 | child = OrExpr(); | ||
1558 | 42 | {if (true) return new TCTLEFNode(child);} | ||
1559 | 43 | break; | ||
1560 | 44 | case EG: | ||
1561 | 45 | jj_consume_token(EG); | ||
1562 | 46 | child = OrExpr(); | ||
1563 | 47 | {if (true) return new TCTLEGNode(child);} | ||
1564 | 48 | break; | ||
1565 | 49 | case AF: | ||
1566 | 50 | jj_consume_token(AF); | ||
1567 | 51 | child = OrExpr(); | ||
1568 | 52 | {if (true) return new TCTLAFNode(child);} | ||
1569 | 53 | break; | ||
1570 | 54 | case AG: | ||
1571 | 55 | jj_consume_token(AG); | ||
1572 | 56 | child = OrExpr(); | ||
1573 | 57 | {if (true) return new TCTLAGNode(child);} | ||
1574 | 58 | break; | ||
1575 | 59 | default: | ||
1576 | 60 | jj_la1[0] = jj_gen; | ||
1577 | 61 | jj_consume_token(-1); | ||
1578 | 62 | throw new ParseException(); | ||
1580 | 63 | } | 76 | } |
1581 | 64 | throw new Error("Missing return statement in function"); | ||
1582 | 65 | } | ||
1583 | 66 | 77 | ||
1586 | 67 | final public TCTLAbstractStateProperty OrExpr() throws ParseException { | 78 | final public TCTLAbstractStateProperty OrExpr() throws ParseException {TCTLAbstractStateProperty currentChild; |
1585 | 68 | TCTLAbstractStateProperty currentChild; | ||
1587 | 69 | ArrayList<TCTLAbstractStateProperty> disjunctions = new ArrayList<TCTLAbstractStateProperty>(); | 79 | ArrayList<TCTLAbstractStateProperty> disjunctions = new ArrayList<TCTLAbstractStateProperty>(); |
1603 | 70 | currentChild = AndExpr(); | 80 | currentChild = AndExpr(); |
1604 | 71 | disjunctions.add(currentChild); | 81 | disjunctions.add(currentChild); |
1605 | 72 | label_1: | 82 | label_1: |
1606 | 73 | while (true) { | 83 | while (true) { |
1607 | 74 | switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { | 84 | switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { |
1608 | 75 | case OR: | 85 | case OR:{ |
1609 | 76 | ; | 86 | ; |
1610 | 77 | break; | 87 | break; |
1611 | 78 | default: | 88 | } |
1612 | 79 | jj_la1[1] = jj_gen; | 89 | default: |
1613 | 80 | break label_1; | 90 | jj_la1[1] = jj_gen; |
1614 | 81 | } | 91 | break label_1; |
1615 | 82 | jj_consume_token(OR); | 92 | } |
1616 | 83 | currentChild = AndExpr(); | 93 | jj_consume_token(OR); |
1617 | 84 | disjunctions.add(currentChild); | 94 | currentChild = AndExpr(); |
1618 | 95 | disjunctions.add(currentChild); | ||
1619 | 96 | } | ||
1620 | 97 | {if ("" != null) return disjunctions.size() == 1 ? currentChild : new TCTLOrListNode(disjunctions);} | ||
1621 | 98 | throw new Error("Missing return statement in function"); | ||
1622 | 85 | } | 99 | } |
1623 | 86 | {if (true) return disjunctions.size() == 1 ? currentChild : new TCTLOrListNode(disjunctions);} | ||
1624 | 87 | throw new Error("Missing return statement in function"); | ||
1625 | 88 | } | ||
1626 | 89 | 100 | ||
1629 | 90 | final public TCTLAbstractStateProperty AndExpr() throws ParseException { | 101 | final public TCTLAbstractStateProperty AndExpr() throws ParseException {TCTLAbstractStateProperty currentChild; |
1628 | 91 | TCTLAbstractStateProperty currentChild; | ||
1630 | 92 | ArrayList<TCTLAbstractStateProperty> conjunctions = new ArrayList<TCTLAbstractStateProperty>(); | 102 | ArrayList<TCTLAbstractStateProperty> conjunctions = new ArrayList<TCTLAbstractStateProperty>(); |
1717 | 93 | currentChild = NotExpr(); | 103 | currentChild = NotExpr(); |
1718 | 94 | conjunctions.add(currentChild); | 104 | conjunctions.add(currentChild); |
1719 | 95 | label_2: | 105 | label_2: |
1720 | 96 | while (true) { | 106 | while (true) { |
1721 | 97 | switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { | 107 | switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { |
1722 | 98 | case AND: | 108 | case AND:{ |
1723 | 99 | ; | 109 | ; |
1724 | 100 | break; | 110 | break; |
1725 | 101 | default: | 111 | } |
1726 | 102 | jj_la1[2] = jj_gen; | 112 | default: |
1727 | 103 | break label_2; | 113 | jj_la1[2] = jj_gen; |
1728 | 104 | } | 114 | break label_2; |
1729 | 105 | jj_consume_token(AND); | 115 | } |
1730 | 106 | currentChild = NotExpr(); | 116 | jj_consume_token(AND); |
1731 | 107 | conjunctions.add(currentChild); | 117 | currentChild = NotExpr(); |
1732 | 108 | } | 118 | conjunctions.add(currentChild); |
1733 | 109 | {if (true) return conjunctions.size() == 1 ? currentChild : new TCTLAndListNode(conjunctions);} | 119 | } |
1734 | 110 | throw new Error("Missing return statement in function"); | 120 | {if ("" != null) return conjunctions.size() == 1 ? currentChild : new TCTLAndListNode(conjunctions);} |
1735 | 111 | } | 121 | throw new Error("Missing return statement in function"); |
1736 | 112 | 122 | } | |
1737 | 113 | final public TCTLAbstractStateProperty NotExpr() throws ParseException { | 123 | |
1738 | 114 | TCTLAbstractStateProperty child; | 124 | final public TCTLAbstractStateProperty NotExpr() throws ParseException {TCTLAbstractStateProperty child; |
1739 | 115 | switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { | 125 | switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { |
1740 | 116 | case NOT: | 126 | case NOT:{ |
1741 | 117 | jj_consume_token(NOT); | 127 | jj_consume_token(NOT); |
1742 | 118 | jj_consume_token(20); | 128 | jj_consume_token(20); |
1743 | 119 | child = OrExpr(); | 129 | child = OrExpr(); |
1744 | 120 | jj_consume_token(21); | 130 | jj_consume_token(21); |
1745 | 121 | {if (true) return new TCTLNotNode(child);} | 131 | {if ("" != null) return new TCTLNotNode(child);} |
1746 | 122 | break; | 132 | break; |
1747 | 123 | case TRUE: | 133 | } |
1748 | 124 | case FALSE: | 134 | case TRUE: |
1749 | 125 | case DEADLOCK: | 135 | case FALSE: |
1750 | 126 | case NUM: | 136 | case DEADLOCK: |
1751 | 127 | case IDENT: | 137 | case NUM: |
1752 | 128 | case 20: | 138 | case IDENT: |
1753 | 129 | child = Factor(); | 139 | case 20:{ |
1754 | 130 | {if (true) return child;} | 140 | child = Factor(); |
1755 | 131 | break; | 141 | {if ("" != null) return child;} |
1756 | 132 | default: | 142 | break; |
1757 | 133 | jj_la1[3] = jj_gen; | 143 | } |
1758 | 134 | jj_consume_token(-1); | 144 | default: |
1759 | 135 | throw new ParseException(); | 145 | jj_la1[3] = jj_gen; |
1760 | 136 | } | 146 | jj_consume_token(-1); |
1761 | 137 | throw new Error("Missing return statement in function"); | 147 | throw new ParseException(); |
1762 | 138 | } | 148 | } |
1763 | 139 | 149 | throw new Error("Missing return statement in function"); | |
1764 | 140 | final public TCTLAbstractStateProperty Factor() throws ParseException { | 150 | } |
1765 | 141 | TCTLAbstractStateProperty thisProp; | 151 | |
1766 | 142 | switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { | 152 | final public TCTLAbstractStateProperty Factor() throws ParseException {TCTLAbstractStateProperty thisProp; |
1767 | 143 | case TRUE: | 153 | switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { |
1768 | 144 | jj_consume_token(TRUE); | 154 | case TRUE:{ |
1769 | 145 | thisProp = new TCTLTrueNode(); | 155 | jj_consume_token(TRUE); |
1770 | 146 | break; | 156 | thisProp = new TCTLTrueNode(); |
1771 | 147 | case FALSE: | 157 | break; |
1772 | 148 | jj_consume_token(FALSE); | 158 | } |
1773 | 149 | thisProp = new TCTLFalseNode(); | 159 | case FALSE:{ |
1774 | 150 | break; | 160 | jj_consume_token(FALSE); |
1775 | 151 | case DEADLOCK: | 161 | thisProp = new TCTLFalseNode(); |
1776 | 152 | jj_consume_token(DEADLOCK); | 162 | break; |
1777 | 153 | thisProp = new TCTLDeadlockNode(); | 163 | } |
1778 | 154 | break; | 164 | case DEADLOCK:{ |
1779 | 155 | default: | 165 | jj_consume_token(DEADLOCK); |
1780 | 156 | jj_la1[4] = jj_gen; | 166 | thisProp = new TCTLDeadlockNode(); |
1781 | 157 | if (jj_2_1(2147483647)) { | 167 | break; |
1782 | 158 | thisProp = AtomicProposition(); | 168 | } |
1783 | 159 | } else { | 169 | default: |
1784 | 160 | switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { | 170 | jj_la1[4] = jj_gen; |
1785 | 161 | case 20: | 171 | if (jj_2_1(2147483647)) { |
1786 | 162 | jj_consume_token(20); | 172 | thisProp = AtomicProposition(); |
1787 | 163 | thisProp = OrExpr(); | 173 | } else { |
1788 | 164 | jj_consume_token(21); | 174 | switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { |
1789 | 165 | break; | 175 | case 20:{ |
1790 | 166 | default: | 176 | jj_consume_token(20); |
1791 | 167 | jj_la1[5] = jj_gen; | 177 | thisProp = OrExpr(); |
1792 | 168 | jj_consume_token(-1); | 178 | jj_consume_token(21); |
1793 | 169 | throw new ParseException(); | 179 | break; |
1794 | 170 | } | 180 | } |
1795 | 171 | } | 181 | default: |
1796 | 172 | } | 182 | jj_la1[5] = jj_gen; |
1797 | 173 | {if (true) return thisProp;} | 183 | jj_consume_token(-1); |
1798 | 174 | throw new Error("Missing return statement in function"); | 184 | throw new ParseException(); |
1799 | 175 | } | 185 | } |
1800 | 176 | 186 | } | |
1801 | 177 | final public TCTLAbstractStateProperty AtomicProposition() throws ParseException { | 187 | } |
1802 | 178 | TCTLAbstractStateProperty left; | 188 | {if ("" != null) return thisProp;} |
1803 | 189 | throw new Error("Missing return statement in function"); | ||
1804 | 190 | } | ||
1805 | 191 | |||
1806 | 192 | final public TCTLAbstractStateProperty AtomicProposition() throws ParseException {TCTLAbstractStateProperty left; | ||
1807 | 179 | TCTLAbstractStateProperty right; | 193 | TCTLAbstractStateProperty right; |
1808 | 180 | Token op; | 194 | Token op; |
1815 | 181 | left = AritmeticExpr(); | 195 | left = AritmeticExpr(); |
1816 | 182 | op = jj_consume_token(OP); | 196 | op = jj_consume_token(OP); |
1817 | 183 | right = AritmeticExpr(); | 197 | right = AritmeticExpr(); |
1818 | 184 | {if (true) return new TCTLAtomicPropositionNode(left, op.image, right);} | 198 | {if ("" != null) return new TCTLAtomicPropositionNode(left, op.image, right);} |
1819 | 185 | throw new Error("Missing return statement in function"); | 199 | throw new Error("Missing return statement in function"); |
1820 | 186 | } | 200 | } |
1821 | 187 | 201 | ||
1824 | 188 | final public TCTLAbstractStateProperty AritmeticExpr() throws ParseException { | 202 | final public TCTLAbstractStateProperty AritmeticExpr() throws ParseException {TCTLAbstractStateProperty currentChild; |
1823 | 189 | TCTLAbstractStateProperty currentChild; | ||
1825 | 190 | ArrayList<TCTLAbstractStateProperty> terms = new ArrayList<TCTLAbstractStateProperty>(); | 203 | ArrayList<TCTLAbstractStateProperty> terms = new ArrayList<TCTLAbstractStateProperty>(); |
1826 | 191 | Token op; | 204 | Token op; |
1843 | 192 | currentChild = AritmeticTerm(); | 205 | currentChild = AritmeticTerm(); |
1844 | 193 | terms.add(currentChild); | 206 | terms.add(currentChild); |
1845 | 194 | label_3: | 207 | label_3: |
1846 | 195 | while (true) { | 208 | while (true) { |
1847 | 196 | switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { | 209 | switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { |
1848 | 197 | case PLUS: | 210 | case PLUS:{ |
1849 | 198 | ; | 211 | ; |
1850 | 199 | break; | 212 | break; |
1851 | 200 | default: | 213 | } |
1852 | 201 | jj_la1[6] = jj_gen; | 214 | default: |
1853 | 202 | break label_3; | 215 | jj_la1[6] = jj_gen; |
1854 | 203 | } | 216 | break label_3; |
1855 | 204 | op = jj_consume_token(PLUS); | 217 | } |
1856 | 205 | currentChild = AritmeticTerm(); | 218 | op = jj_consume_token(PLUS); |
1857 | 206 | terms.add(new AritmeticOperator(op.image)); | 219 | currentChild = AritmeticTerm(); |
1858 | 207 | terms.add(currentChild); | 220 | terms.add(new AritmeticOperator(op.image)); |
1859 | 221 | terms.add(currentChild); | ||
1860 | 222 | } | ||
1861 | 223 | {if ("" != null) return terms.size() == 1 ? currentChild : new TCTLPlusListNode(terms);} | ||
1862 | 224 | throw new Error("Missing return statement in function"); | ||
1863 | 208 | } | 225 | } |
1864 | 209 | {if (true) return terms.size() == 1 ? currentChild : new TCTLPlusListNode(terms);} | ||
1865 | 210 | throw new Error("Missing return statement in function"); | ||
1866 | 211 | } | ||
1867 | 212 | 226 | ||
1870 | 213 | final public TCTLAbstractStateProperty AritmeticTerm() throws ParseException { | 227 | final public TCTLAbstractStateProperty AritmeticTerm() throws ParseException {TCTLAbstractStateProperty currentChild; |
1869 | 214 | TCTLAbstractStateProperty currentChild; | ||
1871 | 215 | ArrayList<TCTLAbstractStateProperty> factors = new ArrayList<TCTLAbstractStateProperty>(); | 228 | ArrayList<TCTLAbstractStateProperty> factors = new ArrayList<TCTLAbstractStateProperty>(); |
1872 | 216 | Token op; | 229 | Token op; |
1889 | 217 | currentChild = AritmeticFactor(); | 230 | currentChild = AritmeticFactor(); |
1890 | 218 | factors.add(currentChild); | 231 | factors.add(currentChild); |
1891 | 219 | label_4: | 232 | label_4: |
1892 | 220 | while (true) { | 233 | while (true) { |
1893 | 221 | switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { | 234 | switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { |
1894 | 222 | case MULT: | 235 | case MULT:{ |
1895 | 223 | ; | 236 | ; |
1896 | 224 | break; | 237 | break; |
1897 | 225 | default: | 238 | } |
1898 | 226 | jj_la1[7] = jj_gen; | 239 | default: |
1899 | 227 | break label_4; | 240 | jj_la1[7] = jj_gen; |
1900 | 228 | } | 241 | break label_4; |
1901 | 229 | op = jj_consume_token(MULT); | 242 | } |
1902 | 230 | currentChild = AritmeticFactor(); | 243 | op = jj_consume_token(MULT); |
1903 | 231 | factors.add(new AritmeticOperator(op.image)); | 244 | currentChild = AritmeticFactor(); |
1904 | 232 | factors.add(currentChild); | 245 | factors.add(new AritmeticOperator(op.image)); |
1905 | 246 | factors.add(currentChild); | ||
1906 | 247 | } | ||
1907 | 248 | {if ("" != null) return factors.size() == 1 ? currentChild : new TCTLTermListNode(factors);} | ||
1908 | 249 | throw new Error("Missing return statement in function"); | ||
1909 | 233 | } | 250 | } |
1910 | 234 | {if (true) return factors.size() == 1 ? currentChild : new TCTLTermListNode(factors);} | ||
1911 | 235 | throw new Error("Missing return statement in function"); | ||
1912 | 236 | } | ||
1913 | 237 | 251 | ||
1916 | 238 | final public TCTLAbstractStateProperty AritmeticFactor() throws ParseException { | 252 | final public TCTLAbstractStateProperty AritmeticFactor() throws ParseException {TCTLAbstractStateProperty thisProp; |
1915 | 239 | TCTLAbstractStateProperty thisProp; | ||
1917 | 240 | Token template = null; | 253 | Token template = null; |
1918 | 241 | Token place; | 254 | Token place; |
1919 | 242 | Token op; | 255 | Token op; |
1920 | 243 | Token num; | 256 | Token num; |
2324 | 244 | switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { | 257 | switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { |
2325 | 245 | case IDENT: | 258 | case IDENT:{ |
2326 | 246 | if (jj_2_2(2)) { | 259 | if (jj_2_2(2)) { |
2327 | 247 | template = jj_consume_token(IDENT); | 260 | template = jj_consume_token(IDENT); |
2328 | 248 | jj_consume_token(22); | 261 | jj_consume_token(22); |
2329 | 249 | } else { | 262 | } else { |
2330 | 250 | ; | 263 | ; |
2331 | 251 | } | 264 | } |
2332 | 252 | place = jj_consume_token(IDENT); | 265 | place = jj_consume_token(IDENT); |
2333 | 253 | thisProp = new TCTLPlaceNode(template == null ? "" : template.image, place.image); | 266 | thisProp = new TCTLPlaceNode(template == null ? "" : template.image, place.image); |
2334 | 254 | break; | 267 | break; |
2335 | 255 | case NUM: | 268 | } |
2336 | 256 | num = jj_consume_token(NUM); | 269 | case NUM:{ |
2337 | 257 | thisProp = new TCTLConstNode(Integer.parseInt(num.image)); | 270 | num = jj_consume_token(NUM); |
2338 | 258 | break; | 271 | thisProp = new TCTLConstNode(Integer.parseInt(num.image)); |
2339 | 259 | case 20: | 272 | break; |
2340 | 260 | jj_consume_token(20); | 273 | } |
2341 | 261 | thisProp = AritmeticExpr(); | 274 | case 20:{ |
2342 | 262 | jj_consume_token(21); | 275 | jj_consume_token(20); |
2343 | 263 | break; | 276 | thisProp = AritmeticExpr(); |
2344 | 264 | default: | 277 | jj_consume_token(21); |
2345 | 265 | jj_la1[8] = jj_gen; | 278 | break; |
2346 | 266 | jj_consume_token(-1); | 279 | } |
2347 | 267 | throw new ParseException(); | 280 | default: |
2348 | 268 | } | 281 | jj_la1[8] = jj_gen; |
2349 | 269 | {if (true) return thisProp;} | 282 | jj_consume_token(-1); |
2350 | 270 | throw new Error("Missing return statement in function"); | 283 | throw new ParseException(); |
2351 | 271 | } | 284 | } |
2352 | 272 | 285 | {if ("" != null) return thisProp;} | |
2353 | 273 | private boolean jj_2_1(int xla) { | 286 | throw new Error("Missing return statement in function"); |
2354 | 274 | jj_la = xla; jj_lastpos = jj_scanpos = token; | 287 | } |
2355 | 275 | try { return !jj_3_1(); } | 288 | |
2356 | 276 | catch(LookaheadSuccess ls) { return true; } | 289 | private boolean jj_2_1(int xla) |
2357 | 277 | finally { jj_save(0, xla); } | 290 | { |
2358 | 278 | } | 291 | jj_la = xla; jj_lastpos = jj_scanpos = token; |
2359 | 279 | 292 | try { return (!jj_3_1()); } | |
2360 | 280 | private boolean jj_2_2(int xla) { | 293 | catch(LookaheadSuccess ls) { return true; } |
2361 | 281 | jj_la = xla; jj_lastpos = jj_scanpos = token; | 294 | finally { jj_save(0, xla); } |
2362 | 282 | try { return !jj_3_2(); } | 295 | } |
2363 | 283 | catch(LookaheadSuccess ls) { return true; } | 296 | |
2364 | 284 | finally { jj_save(1, xla); } | 297 | private boolean jj_2_2(int xla) |
2365 | 285 | } | 298 | { |
2366 | 286 | 299 | jj_la = xla; jj_lastpos = jj_scanpos = token; | |
2367 | 287 | private boolean jj_3_1() { | 300 | try { return (!jj_3_2()); } |
2368 | 288 | if (jj_3R_5()) return true; | 301 | catch(LookaheadSuccess ls) { return true; } |
2369 | 289 | return false; | 302 | finally { jj_save(1, xla); } |
2370 | 290 | } | 303 | } |
2371 | 291 | 304 | ||
2372 | 292 | private boolean jj_3R_8() { | 305 | private boolean jj_3_2() |
2373 | 293 | if (jj_scan_token(PLUS)) return true; | 306 | { |
2374 | 294 | if (jj_3R_7()) return true; | 307 | if (jj_scan_token(IDENT)) return true; |
2375 | 295 | return false; | 308 | if (jj_scan_token(22)) return true; |
2376 | 296 | } | 309 | return false; |
2377 | 297 | 310 | } | |
2378 | 298 | private boolean jj_3R_5() { | 311 | |
2379 | 299 | if (jj_3R_6()) return true; | 312 | private boolean jj_3R_AritmeticFactor_256_17_11() |
2380 | 300 | if (jj_scan_token(OP)) return true; | 313 | { |
2381 | 301 | if (jj_3R_6()) return true; | 314 | Token xsp; |
2382 | 302 | return false; | 315 | xsp = jj_scanpos; |
2383 | 303 | } | 316 | if (jj_3_2()) jj_scanpos = xsp; |
2384 | 304 | 317 | if (jj_scan_token(IDENT)) return true; | |
2385 | 305 | private boolean jj_3R_13() { | 318 | return false; |
2386 | 306 | if (jj_scan_token(20)) return true; | 319 | } |
2387 | 307 | if (jj_3R_6()) return true; | 320 | |
2388 | 308 | if (jj_scan_token(21)) return true; | 321 | private boolean jj_3R_AritmeticExpr_215_9_6() |
2389 | 309 | return false; | 322 | { |
2390 | 310 | } | 323 | if (jj_3R_AritmeticTerm_234_9_7()) return true; |
2391 | 311 | 324 | Token xsp; | |
2392 | 312 | private boolean jj_3R_10() { | 325 | while (true) { |
2393 | 313 | if (jj_scan_token(MULT)) return true; | 326 | xsp = jj_scanpos; |
2394 | 314 | if (jj_3R_9()) return true; | 327 | if (jj_3R_AritmeticExpr_218_17_8()) { jj_scanpos = xsp; break; } |
2395 | 315 | return false; | 328 | } |
2396 | 316 | } | 329 | return false; |
2397 | 317 | 330 | } | |
2398 | 318 | private boolean jj_3R_12() { | 331 | |
2399 | 319 | if (jj_scan_token(NUM)) return true; | 332 | private boolean jj_3R_AritmeticTerm_234_9_7() |
2400 | 320 | return false; | 333 | { |
2401 | 321 | } | 334 | if (jj_3R_AritmeticFactor_255_9_9()) return true; |
2402 | 322 | 335 | Token xsp; | |
2403 | 323 | private boolean jj_3_2() { | 336 | while (true) { |
2404 | 324 | if (jj_scan_token(IDENT)) return true; | 337 | xsp = jj_scanpos; |
2405 | 325 | if (jj_scan_token(22)) return true; | 338 | if (jj_3R_AritmeticTerm_237_17_10()) { jj_scanpos = xsp; break; } |
2406 | 326 | return false; | 339 | } |
2407 | 327 | } | 340 | return false; |
2408 | 328 | 341 | } | |
2409 | 329 | private boolean jj_3R_11() { | 342 | |
2410 | 330 | Token xsp; | 343 | private boolean jj_3R_AritmeticFactor_255_9_9() |
2411 | 331 | xsp = jj_scanpos; | 344 | { |
2412 | 332 | if (jj_3_2()) jj_scanpos = xsp; | 345 | Token xsp; |
2413 | 333 | if (jj_scan_token(IDENT)) return true; | 346 | xsp = jj_scanpos; |
2414 | 334 | return false; | 347 | if (jj_3R_AritmeticFactor_256_17_11()) { |
2415 | 335 | } | 348 | jj_scanpos = xsp; |
2416 | 336 | 349 | if (jj_3R_AritmeticFactor_257_19_12()) { | |
2417 | 337 | private boolean jj_3R_6() { | 350 | jj_scanpos = xsp; |
2418 | 338 | if (jj_3R_7()) return true; | 351 | if (jj_3R_AritmeticFactor_258_19_13()) return true; |
2419 | 339 | Token xsp; | 352 | } |
2420 | 340 | while (true) { | 353 | } |
2421 | 341 | xsp = jj_scanpos; | 354 | return false; |
2422 | 342 | if (jj_3R_8()) { jj_scanpos = xsp; break; } | 355 | } |
2423 | 343 | } | 356 | |
2424 | 344 | return false; | 357 | private boolean jj_3_1() |
2425 | 345 | } | 358 | { |
2426 | 346 | 359 | if (jj_3R_AtomicProposition_200_9_5()) return true; | |
2427 | 347 | private boolean jj_3R_7() { | 360 | return false; |
2428 | 348 | if (jj_3R_9()) return true; | 361 | } |
2429 | 349 | Token xsp; | 362 | |
2430 | 350 | while (true) { | 363 | private boolean jj_3R_AritmeticExpr_218_17_8() |
2431 | 351 | xsp = jj_scanpos; | 364 | { |
2432 | 352 | if (jj_3R_10()) { jj_scanpos = xsp; break; } | 365 | if (jj_scan_token(PLUS)) return true; |
2433 | 353 | } | 366 | if (jj_3R_AritmeticTerm_234_9_7()) return true; |
2434 | 354 | return false; | 367 | return false; |
2435 | 355 | } | 368 | } |
2436 | 356 | 369 | ||
2437 | 357 | private boolean jj_3R_9() { | 370 | private boolean jj_3R_AtomicProposition_200_9_5() |
2438 | 358 | Token xsp; | 371 | { |
2439 | 359 | xsp = jj_scanpos; | 372 | if (jj_3R_AritmeticExpr_215_9_6()) return true; |
2440 | 360 | if (jj_3R_11()) { | 373 | if (jj_scan_token(OP)) return true; |
2441 | 361 | jj_scanpos = xsp; | 374 | if (jj_3R_AritmeticExpr_215_9_6()) return true; |
2442 | 362 | if (jj_3R_12()) { | 375 | return false; |
2443 | 363 | jj_scanpos = xsp; | 376 | } |
2444 | 364 | if (jj_3R_13()) return true; | 377 | |
2445 | 365 | } | 378 | private boolean jj_3R_AritmeticFactor_258_19_13() |
2446 | 366 | } | 379 | { |
2447 | 367 | return false; | 380 | if (jj_scan_token(20)) return true; |
2448 | 368 | } | 381 | if (jj_3R_AritmeticExpr_215_9_6()) return true; |
2449 | 369 | 382 | if (jj_scan_token(21)) return true; | |
2450 | 370 | /** Generated Token Manager. */ | 383 | return false; |
2451 | 371 | public TAPAALQueryParserTokenManager token_source; | 384 | } |
2452 | 372 | SimpleCharStream jj_input_stream; | 385 | |
2453 | 373 | /** Current token. */ | 386 | private boolean jj_3R_AritmeticTerm_237_17_10() |
2454 | 374 | public Token token; | 387 | { |
2455 | 375 | /** Next token. */ | 388 | if (jj_scan_token(MULT)) return true; |
2456 | 376 | public Token jj_nt; | 389 | if (jj_3R_AritmeticFactor_255_9_9()) return true; |
2457 | 377 | private int jj_ntk; | 390 | return false; |
2458 | 378 | private Token jj_scanpos, jj_lastpos; | 391 | } |
2459 | 379 | private int jj_la; | 392 | |
2460 | 380 | private int jj_gen; | 393 | private boolean jj_3R_AritmeticFactor_257_19_12() |
2461 | 381 | final private int[] jj_la1 = new int[9]; | 394 | { |
2462 | 382 | static private int[] jj_la1_0; | 395 | if (jj_scan_token(NUM)) return true; |
2463 | 383 | static { | 396 | return false; |
2464 | 384 | jj_la1_init_0(); | 397 | } |
2465 | 385 | } | 398 | |
2466 | 386 | private static void jj_la1_init_0() { | 399 | /** Generated Token Manager. */ |
2467 | 387 | jj_la1_0 = new int[] {0xf0,0x100,0x200,0x10640e,0xe,0x100000,0x800,0x1000,0x106000,}; | 400 | public TAPAALQueryParserTokenManager token_source; |
2468 | 388 | } | 401 | SimpleCharStream jj_input_stream; |
2469 | 389 | final private JJCalls[] jj_2_rtns = new JJCalls[2]; | 402 | /** Current token. */ |
2470 | 390 | private boolean jj_rescan = false; | 403 | public Token token; |
2471 | 391 | private int jj_gc = 0; | 404 | /** Next token. */ |
2472 | 392 | 405 | public Token jj_nt; | |
2473 | 393 | /** Constructor with InputStream. */ | 406 | private int jj_ntk; |
2474 | 394 | public TAPAALQueryParser(java.io.InputStream stream) { | 407 | private Token jj_scanpos, jj_lastpos; |
2475 | 395 | this(stream, null); | 408 | private int jj_la; |
2476 | 396 | } | 409 | private int jj_gen; |
2477 | 397 | /** Constructor with InputStream and supplied encoding */ | 410 | final private int[] jj_la1 = new int[9]; |
2478 | 398 | public TAPAALQueryParser(java.io.InputStream stream, String encoding) { | 411 | static private int[] jj_la1_0; |
2479 | 399 | try { jj_input_stream = new SimpleCharStream(stream, encoding, 1, 1); } catch(java.io.UnsupportedEncodingException e) { throw new RuntimeException(e); } | 412 | static { |
2480 | 400 | token_source = new TAPAALQueryParserTokenManager(jj_input_stream); | 413 | jj_la1_init_0(); |
2481 | 401 | token = new Token(); | 414 | } |
2482 | 402 | jj_ntk = -1; | 415 | private static void jj_la1_init_0() { |
2483 | 403 | jj_gen = 0; | 416 | jj_la1_0 = new int[] {0xf0,0x100,0x200,0x10640e,0xe,0x100000,0x800,0x1000,0x106000,}; |
2484 | 404 | for (int i = 0; i < 9; i++) jj_la1[i] = -1; | 417 | } |
2485 | 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]; |
2486 | 406 | } | 419 | private boolean jj_rescan = false; |
2487 | 407 | 420 | private int jj_gc = 0; | |
2488 | 408 | /** Reinitialise. */ | 421 | |
2489 | 409 | public void ReInit(java.io.InputStream stream) { | 422 | /** Constructor with InputStream. */ |
2490 | 410 | ReInit(stream, null); | 423 | public TAPAALQueryParser(java.io.InputStream stream) { |
2491 | 411 | } | 424 | this(stream, null); |
2492 | 412 | /** Reinitialise. */ | 425 | } |
2493 | 413 | public void ReInit(java.io.InputStream stream, String encoding) { | 426 | /** Constructor with InputStream and supplied encoding */ |
2494 | 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) { |
2495 | 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); } |
2496 | 416 | token = new Token(); | 429 | token_source = new TAPAALQueryParserTokenManager(jj_input_stream); |
2497 | 417 | jj_ntk = -1; | 430 | token = new Token(); |
2498 | 418 | jj_gen = 0; | 431 | jj_ntk = -1; |
2499 | 419 | for (int i = 0; i < 9; i++) jj_la1[i] = -1; | 432 | jj_gen = 0; |
2500 | 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; |
2501 | 421 | } | 434 | for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls(); |
2502 | 422 | 435 | } | |
2503 | 423 | /** Constructor. */ | 436 | |
2504 | 424 | public TAPAALQueryParser(java.io.Reader stream) { | 437 | /** Reinitialise. */ |
2505 | 425 | jj_input_stream = new SimpleCharStream(stream, 1, 1); | 438 | public void ReInit(java.io.InputStream stream) { |
2506 | 426 | token_source = new TAPAALQueryParserTokenManager(jj_input_stream); | 439 | ReInit(stream, null); |
2507 | 427 | token = new Token(); | 440 | } |
2508 | 428 | jj_ntk = -1; | 441 | /** Reinitialise. */ |
2509 | 429 | jj_gen = 0; | 442 | public void ReInit(java.io.InputStream stream, String encoding) { |
2510 | 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); } |
2511 | 431 | for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls(); | 444 | token_source.ReInit(jj_input_stream); |
2512 | 432 | } | 445 | token = new Token(); |
2513 | 433 | 446 | jj_ntk = -1; | |
2514 | 434 | /** Reinitialise. */ | 447 | jj_gen = 0; |
2515 | 435 | public void ReInit(java.io.Reader stream) { | 448 | for (int i = 0; i < 9; i++) jj_la1[i] = -1; |
2516 | 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(); |
2517 | 437 | token_source.ReInit(jj_input_stream); | 450 | } |
2518 | 438 | token = new Token(); | 451 | |
2519 | 439 | jj_ntk = -1; | 452 | /** Constructor. */ |
2520 | 440 | jj_gen = 0; | 453 | public TAPAALQueryParser(java.io.Reader stream) { |
2521 | 441 | for (int i = 0; i < 9; i++) jj_la1[i] = -1; | 454 | jj_input_stream = new SimpleCharStream(stream, 1, 1); |
2522 | 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); |
2523 | 443 | } | 456 | token = new Token(); |
2524 | 444 | 457 | jj_ntk = -1; | |
2525 | 445 | /** Constructor with generated Token Manager. */ | 458 | jj_gen = 0; |
2526 | 446 | public TAPAALQueryParser(TAPAALQueryParserTokenManager tm) { | 459 | for (int i = 0; i < 9; i++) jj_la1[i] = -1; |
2527 | 447 | token_source = tm; | 460 | for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls(); |
2528 | 448 | token = new Token(); | 461 | } |
2529 | 449 | jj_ntk = -1; | 462 | |
2530 | 450 | jj_gen = 0; | 463 | /** Reinitialise. */ |
2531 | 451 | for (int i = 0; i < 9; i++) jj_la1[i] = -1; | 464 | public void ReInit(java.io.Reader stream) { |
2532 | 452 | for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls(); | 465 | if (jj_input_stream == null) { |
2533 | 453 | } | 466 | jj_input_stream = new SimpleCharStream(stream, 1, 1); |
2534 | 454 | 467 | } else { | |
2535 | 455 | /** Reinitialise. */ | 468 | jj_input_stream.ReInit(stream, 1, 1); |
2536 | 456 | public void ReInit(TAPAALQueryParserTokenManager tm) { | 469 | } |
2537 | 457 | token_source = tm; | 470 | if (token_source == null) { |
2538 | 458 | token = new Token(); | 471 | token_source = new TAPAALQueryParserTokenManager(jj_input_stream); |
2539 | 459 | jj_ntk = -1; | 472 | } |
2540 | 460 | jj_gen = 0; | 473 | |
2541 | 461 | for (int i = 0; i < 9; i++) jj_la1[i] = -1; | 474 | token_source.ReInit(jj_input_stream); |
2542 | 462 | for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls(); | 475 | token = new Token(); |
2543 | 463 | } | 476 | jj_ntk = -1; |
2544 | 464 | 477 | jj_gen = 0; | |
2545 | 465 | private Token jj_consume_token(int kind) throws ParseException { | 478 | for (int i = 0; i < 9; i++) jj_la1[i] = -1; |
2546 | 466 | Token oldToken; | 479 | for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls(); |
2547 | 467 | if ((oldToken = token).next != null) token = token.next; | 480 | } |
2548 | 468 | else token = token.next = token_source.getNextToken(); | 481 | |
2549 | 469 | jj_ntk = -1; | 482 | /** Constructor with generated Token Manager. */ |
2550 | 470 | if (token.kind == kind) { | 483 | public TAPAALQueryParser(TAPAALQueryParserTokenManager tm) { |
2551 | 471 | jj_gen++; | 484 | token_source = tm; |
2552 | 472 | if (++jj_gc > 100) { | 485 | token = new Token(); |
2553 | 473 | jj_gc = 0; | 486 | jj_ntk = -1; |
2554 | 474 | for (int i = 0; i < jj_2_rtns.length; i++) { | 487 | jj_gen = 0; |
2555 | 475 | JJCalls c = jj_2_rtns[i]; | 488 | for (int i = 0; i < 9; i++) jj_la1[i] = -1; |
2556 | 476 | while (c != null) { | 489 | for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls(); |
2557 | 477 | if (c.gen < jj_gen) c.first = null; | 490 | } |
2558 | 478 | c = c.next; | 491 | |
2559 | 479 | } | 492 | /** Reinitialise. */ |
2560 | 480 | } | 493 | public void ReInit(TAPAALQueryParserTokenManager tm) { |
2561 | 481 | } | 494 | token_source = tm; |
2562 | 482 | return token; | 495 | token = new Token(); |
2563 | 483 | } | 496 | jj_ntk = -1; |
2564 | 484 | token = oldToken; | 497 | jj_gen = 0; |
2565 | 485 | jj_kind = kind; | 498 | for (int i = 0; i < 9; i++) jj_la1[i] = -1; |
2566 | 486 | throw generateParseException(); | 499 | for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls(); |
2567 | 487 | } | 500 | } |
2568 | 488 | 501 | ||
2569 | 489 | static private final class LookaheadSuccess extends java.lang.Error { } | 502 | private Token jj_consume_token(int kind) throws ParseException { |
2570 | 490 | final private LookaheadSuccess jj_ls = new LookaheadSuccess(); | 503 | Token oldToken; |
2571 | 491 | private boolean jj_scan_token(int kind) { | 504 | if ((oldToken = token).next != null) token = token.next; |
2572 | 492 | if (jj_scanpos == jj_lastpos) { | 505 | else token = token.next = token_source.getNextToken(); |
2573 | 493 | jj_la--; | 506 | jj_ntk = -1; |
2574 | 494 | if (jj_scanpos.next == null) { | 507 | if (token.kind == kind) { |
2575 | 495 | jj_lastpos = jj_scanpos = jj_scanpos.next = token_source.getNextToken(); | 508 | jj_gen++; |
2576 | 496 | } else { | 509 | if (++jj_gc > 100) { |
2577 | 497 | jj_lastpos = jj_scanpos = jj_scanpos.next; | 510 | jj_gc = 0; |
2578 | 498 | } | 511 | for (int i = 0; i < jj_2_rtns.length; i++) { |
2579 | 499 | } else { | 512 | JJCalls c = jj_2_rtns[i]; |
2580 | 500 | jj_scanpos = jj_scanpos.next; | 513 | while (c != null) { |
2581 | 501 | } | 514 | if (c.gen < jj_gen) c.first = null; |
2582 | 502 | if (jj_rescan) { | 515 | c = c.next; |
2583 | 503 | int i = 0; Token tok = token; | 516 | } |
2584 | 504 | while (tok != null && tok != jj_scanpos) { i++; tok = tok.next; } | 517 | } |
2585 | 505 | if (tok != null) jj_add_error_token(kind, i); | 518 | } |
2586 | 506 | } | 519 | return token; |
2587 | 507 | if (jj_scanpos.kind != kind) return true; | 520 | } |
2588 | 508 | if (jj_la == 0 && jj_scanpos == jj_lastpos) throw jj_ls; | 521 | token = oldToken; |
2589 | 509 | return false; | 522 | jj_kind = kind; |
2590 | 510 | } | 523 | throw generateParseException(); |
2591 | 511 | 524 | } | |
2592 | 512 | 525 | ||
2593 | 513 | /** Get the next Token. */ | 526 | @SuppressWarnings("serial") |
2594 | 514 | final public Token getNextToken() { | 527 | static private final class LookaheadSuccess extends java.lang.Error { |
2595 | 515 | if (token.next != null) token = token.next; | 528 | @Override |
2596 | 516 | else token = token.next = token_source.getNextToken(); | 529 | public Throwable fillInStackTrace() { |
2597 | 517 | jj_ntk = -1; | 530 | return this; |
2598 | 518 | jj_gen++; | 531 | } |
2599 | 519 | return token; | 532 | } |
2600 | 520 | } | 533 | static private final LookaheadSuccess jj_ls = new LookaheadSuccess(); |
2601 | 521 | 534 | private boolean jj_scan_token(int kind) { | |
2602 | 522 | /** Get the specific Token. */ | 535 | if (jj_scanpos == jj_lastpos) { |
2603 | 523 | final public Token getToken(int index) { | 536 | jj_la--; |
2604 | 524 | Token t = token; | 537 | if (jj_scanpos.next == null) { |
2605 | 525 | for (int i = 0; i < index; i++) { | 538 | jj_lastpos = jj_scanpos = jj_scanpos.next = token_source.getNextToken(); |
2606 | 526 | if (t.next != null) t = t.next; | 539 | } else { |
2607 | 527 | else t = t.next = token_source.getNextToken(); | 540 | jj_lastpos = jj_scanpos = jj_scanpos.next; |
2608 | 528 | } | 541 | } |
2609 | 529 | return t; | 542 | } else { |
2610 | 530 | } | 543 | jj_scanpos = jj_scanpos.next; |
2611 | 531 | 544 | } | |
2612 | 532 | private int jj_ntk() { | 545 | if (jj_rescan) { |
2613 | 533 | if ((jj_nt=token.next) == null) | 546 | int i = 0; Token tok = token; |
2614 | 534 | return (jj_ntk = (token.next=token_source.getNextToken()).kind); | 547 | while (tok != null && tok != jj_scanpos) { i++; tok = tok.next; } |
2615 | 535 | else | 548 | if (tok != null) jj_add_error_token(kind, i); |
2616 | 536 | return (jj_ntk = jj_nt.kind); | 549 | } |
2617 | 537 | } | 550 | if (jj_scanpos.kind != kind) return true; |
2618 | 538 | 551 | if (jj_la == 0 && jj_scanpos == jj_lastpos) throw jj_ls; | |
2619 | 539 | private java.util.List<int[]> jj_expentries = new java.util.ArrayList<int[]>(); | 552 | return false; |
2620 | 540 | private int[] jj_expentry; | 553 | } |
2621 | 541 | private int jj_kind = -1; | 554 | |
2622 | 542 | private int[] jj_lasttokens = new int[100]; | 555 | |
2623 | 543 | private int jj_endpos; | 556 | /** Get the next Token. */ |
2624 | 544 | 557 | final public Token getNextToken() { | |
2625 | 545 | private void jj_add_error_token(int kind, int pos) { | 558 | if (token.next != null) token = token.next; |
2626 | 546 | if (pos >= 100) return; | 559 | else token = token.next = token_source.getNextToken(); |
2627 | 547 | if (pos == jj_endpos + 1) { | 560 | jj_ntk = -1; |
2628 | 548 | jj_lasttokens[jj_endpos++] = kind; | 561 | jj_gen++; |
2629 | 549 | } else if (jj_endpos != 0) { | 562 | return token; |
2630 | 550 | jj_expentry = new int[jj_endpos]; | 563 | } |
2631 | 551 | for (int i = 0; i < jj_endpos; i++) { | 564 | |
2632 | 552 | jj_expentry[i] = jj_lasttokens[i]; | 565 | /** Get the specific Token. */ |
2633 | 553 | } | 566 | final public Token getToken(int index) { |
2634 | 554 | jj_entries_loop: for (java.util.Iterator<?> it = jj_expentries.iterator(); it.hasNext();) { | 567 | Token t = token; |
2635 | 555 | int[] oldentry = (int[])(it.next()); | 568 | for (int i = 0; i < index; i++) { |
2636 | 556 | if (oldentry.length == jj_expentry.length) { | 569 | if (t.next != null) t = t.next; |
2637 | 557 | for (int i = 0; i < jj_expentry.length; i++) { | 570 | else t = t.next = token_source.getNextToken(); |
2638 | 558 | if (oldentry[i] != jj_expentry[i]) { | 571 | } |
2639 | 559 | continue jj_entries_loop; | 572 | return t; |
2640 | 560 | } | 573 | } |
2641 | 561 | } | 574 | |
2642 | 562 | jj_expentries.add(jj_expentry); | 575 | private int jj_ntk_f() { |
2643 | 563 | break jj_entries_loop; | 576 | if ((jj_nt=token.next) == null) |
2644 | 564 | } | 577 | return (jj_ntk = (token.next=token_source.getNextToken()).kind); |
2645 | 565 | } | 578 | else |
2646 | 566 | if (pos != 0) jj_lasttokens[(jj_endpos = pos) - 1] = kind; | 579 | return (jj_ntk = jj_nt.kind); |
2647 | 567 | } | 580 | } |
2648 | 568 | } | 581 | |
2649 | 569 | 582 | private java.util.List<int[]> jj_expentries = new java.util.ArrayList<int[]>(); | |
2650 | 570 | /** Generate ParseException. */ | 583 | private int[] jj_expentry; |
2651 | 571 | public ParseException generateParseException() { | 584 | private int jj_kind = -1; |
2652 | 572 | jj_expentries.clear(); | 585 | private int[] jj_lasttokens = new int[100]; |
2653 | 573 | boolean[] la1tokens = new boolean[23]; | 586 | private int jj_endpos; |
2654 | 574 | if (jj_kind >= 0) { | 587 | |
2655 | 575 | la1tokens[jj_kind] = true; | 588 | private void jj_add_error_token(int kind, int pos) { |
2656 | 576 | jj_kind = -1; | 589 | if (pos >= 100) { |
2657 | 577 | } | 590 | return; |
2658 | 578 | for (int i = 0; i < 9; i++) { | 591 | } |
2659 | 579 | if (jj_la1[i] == jj_gen) { | 592 | |
2660 | 580 | for (int j = 0; j < 32; j++) { | 593 | if (pos == jj_endpos + 1) { |
2661 | 581 | if ((jj_la1_0[i] & (1<<j)) != 0) { | 594 | jj_lasttokens[jj_endpos++] = kind; |
2662 | 582 | la1tokens[j] = true; | 595 | } else if (jj_endpos != 0) { |
2663 | 583 | } | 596 | jj_expentry = new int[jj_endpos]; |
2664 | 584 | } | 597 | |
2665 | 585 | } | 598 | for (int i = 0; i < jj_endpos; i++) { |
2666 | 586 | } | 599 | jj_expentry[i] = jj_lasttokens[i]; |
2667 | 587 | for (int i = 0; i < 23; i++) { | 600 | } |
2668 | 588 | if (la1tokens[i]) { | 601 | |
2669 | 589 | jj_expentry = new int[1]; | 602 | for (int[] oldentry : jj_expentries) { |
2670 | 590 | jj_expentry[0] = i; | 603 | if (oldentry.length == jj_expentry.length) { |
2671 | 591 | jj_expentries.add(jj_expentry); | 604 | boolean isMatched = true; |
2672 | 592 | } | 605 | |
2673 | 593 | } | 606 | for (int i = 0; i < jj_expentry.length; i++) { |
2674 | 594 | jj_endpos = 0; | 607 | if (oldentry[i] != jj_expentry[i]) { |
2675 | 595 | jj_rescan_token(); | 608 | isMatched = false; |
2676 | 596 | jj_add_error_token(0, 0); | 609 | break; |
2677 | 597 | int[][] exptokseq = new int[jj_expentries.size()][]; | 610 | } |
2678 | 598 | for (int i = 0; i < jj_expentries.size(); i++) { | 611 | |
2679 | 599 | exptokseq[i] = jj_expentries.get(i); | 612 | } |
2680 | 600 | } | 613 | if (isMatched) { |
2681 | 601 | return new ParseException(token, exptokseq, tokenImage); | 614 | jj_expentries.add(jj_expentry); |
2682 | 602 | } | 615 | break; |
2683 | 603 | 616 | } | |
2684 | 604 | /** Enable tracing. */ | 617 | } |
2685 | 605 | final public void enable_tracing() { | 618 | } |
2686 | 606 | } | 619 | |
2687 | 607 | 620 | if (pos != 0) { | |
2688 | 608 | /** Disable tracing. */ | 621 | jj_lasttokens[(jj_endpos = pos) - 1] = kind; |
2689 | 609 | final public void disable_tracing() { | 622 | } |
2690 | 610 | } | 623 | } |
2691 | 611 | 624 | } | |
2692 | 612 | private void jj_rescan_token() { | 625 | |
2693 | 613 | jj_rescan = true; | 626 | /** Generate ParseException. */ |
2694 | 614 | for (int i = 0; i < 2; i++) { | 627 | public ParseException generateParseException() { |
2695 | 615 | try { | 628 | jj_expentries.clear(); |
2696 | 616 | JJCalls p = jj_2_rtns[i]; | 629 | boolean[] la1tokens = new boolean[23]; |
2697 | 617 | do { | 630 | if (jj_kind >= 0) { |
2698 | 618 | if (p.gen > jj_gen) { | 631 | la1tokens[jj_kind] = true; |
2699 | 619 | jj_la = p.arg; jj_lastpos = jj_scanpos = p.first; | 632 | jj_kind = -1; |
2700 | 620 | switch (i) { | 633 | } |
2701 | 621 | case 0: jj_3_1(); break; | 634 | for (int i = 0; i < 9; i++) { |
2702 | 622 | case 1: jj_3_2(); break; | 635 | if (jj_la1[i] == jj_gen) { |
2703 | 623 | } | 636 | for (int j = 0; j < 32; j++) { |
2704 | 624 | } | 637 | if ((jj_la1_0[i] & (1<<j)) != 0) { |
2705 | 625 | p = p.next; | 638 | la1tokens[j] = true; |
2706 | 626 | } while (p != null); | 639 | } |
2707 | 627 | } catch(LookaheadSuccess ls) { } | 640 | } |
2708 | 628 | } | 641 | } |
2709 | 629 | jj_rescan = false; | 642 | } |
2710 | 630 | } | 643 | for (int i = 0; i < 23; i++) { |
2711 | 631 | 644 | if (la1tokens[i]) { | |
2712 | 632 | private void jj_save(int index, int xla) { | 645 | jj_expentry = new int[1]; |
2713 | 633 | JJCalls p = jj_2_rtns[index]; | 646 | jj_expentry[0] = i; |
2714 | 634 | while (p.gen > jj_gen) { | 647 | jj_expentries.add(jj_expentry); |
2715 | 635 | if (p.next == null) { p = p.next = new JJCalls(); break; } | 648 | } |
2716 | 636 | p = p.next; | 649 | } |
2717 | 637 | } | 650 | jj_endpos = 0; |
2718 | 638 | p.gen = jj_gen + xla - jj_la; p.first = token; p.arg = xla; | 651 | jj_rescan_token(); |
2719 | 639 | } | 652 | jj_add_error_token(0, 0); |
2720 | 640 | 653 | int[][] exptokseq = new int[jj_expentries.size()][]; | |
2721 | 641 | static final class JJCalls { | 654 | for (int i = 0; i < jj_expentries.size(); i++) { |
2722 | 642 | int gen; | 655 | exptokseq[i] = jj_expentries.get(i); |
2723 | 643 | Token first; | 656 | } |
2724 | 644 | int arg; | 657 | return new ParseException(token, exptokseq, tokenImage); |
2725 | 645 | JJCalls next; | 658 | } |
2726 | 646 | } | 659 | |
2727 | 660 | private boolean trace_enabled; | ||
2728 | 661 | |||
2729 | 662 | /** Trace enabled. */ | ||
2730 | 663 | final public boolean trace_enabled() { | ||
2731 | 664 | return trace_enabled; | ||
2732 | 665 | } | ||
2733 | 666 | |||
2734 | 667 | /** Enable tracing. */ | ||
2735 | 668 | final public void enable_tracing() { | ||
2736 | 669 | } | ||
2737 | 670 | |||
2738 | 671 | /** Disable tracing. */ | ||
2739 | 672 | final public void disable_tracing() { | ||
2740 | 673 | } | ||
2741 | 674 | |||
2742 | 675 | private void jj_rescan_token() { | ||
2743 | 676 | jj_rescan = true; | ||
2744 | 677 | for (int i = 0; i < 2; i++) { | ||
2745 | 678 | try { | ||
2746 | 679 | JJCalls p = jj_2_rtns[i]; | ||
2747 | 680 | |||
2748 | 681 | do { | ||
2749 | 682 | if (p.gen > jj_gen) { | ||
2750 | 683 | jj_la = p.arg; jj_lastpos = jj_scanpos = p.first; | ||
2751 | 684 | switch (i) { | ||
2752 | 685 | case 0: jj_3_1(); break; | ||
2753 | 686 | case 1: jj_3_2(); break; | ||
2754 | 687 | } | ||
2755 | 688 | } | ||
2756 | 689 | p = p.next; | ||
2757 | 690 | } while (p != null); | ||
2758 | 691 | |||
2759 | 692 | } catch(LookaheadSuccess ls) { } | ||
2760 | 693 | } | ||
2761 | 694 | jj_rescan = false; | ||
2762 | 695 | } | ||
2763 | 696 | |||
2764 | 697 | private void jj_save(int index, int xla) { | ||
2765 | 698 | JJCalls p = jj_2_rtns[index]; | ||
2766 | 699 | while (p.gen > jj_gen) { | ||
2767 | 700 | if (p.next == null) { p = p.next = new JJCalls(); break; } | ||
2768 | 701 | p = p.next; | ||
2769 | 702 | } | ||
2770 | 703 | |||
2771 | 704 | p.gen = jj_gen + xla - jj_la; | ||
2772 | 705 | p.first = token; | ||
2773 | 706 | p.arg = xla; | ||
2774 | 707 | } | ||
2775 | 708 | |||
2776 | 709 | static final class JJCalls { | ||
2777 | 710 | int gen; | ||
2778 | 711 | Token first; | ||
2779 | 712 | int arg; | ||
2780 | 713 | JJCalls next; | ||
2781 | 714 | } | ||
2782 | 647 | 715 | ||
2783 | 648 | } | 716 | } |
2784 | 649 | 717 | ||
2785 | === modified file 'src/dk/aau/cs/TCTL/TCTLEFNode.java' | |||
2786 | --- src/dk/aau/cs/TCTL/TCTLEFNode.java 2020-11-06 19:41:50 +0000 | |||
2787 | +++ src/dk/aau/cs/TCTL/TCTLEFNode.java 2021-09-29 07:20:55 +0000 | |||
2788 | @@ -2,6 +2,8 @@ | |||
2789 | 2 | 2 | ||
2790 | 3 | import dk.aau.cs.TCTL.visitors.ITCTLVisitor; | 3 | import dk.aau.cs.TCTL.visitors.ITCTLVisitor; |
2791 | 4 | 4 | ||
2792 | 5 | import java.util.HashMap; | ||
2793 | 6 | |||
2794 | 5 | public class TCTLEFNode extends TCTLAbstractPathProperty { | 7 | public class TCTLEFNode extends TCTLAbstractPathProperty { |
2795 | 6 | 8 | ||
2796 | 7 | private TCTLAbstractStateProperty property; | 9 | private TCTLAbstractStateProperty property; |
2797 | @@ -104,7 +106,6 @@ | |||
2798 | 104 | @Override | 106 | @Override |
2799 | 105 | public TCTLAbstractProperty findFirstPlaceHolder() { | 107 | public TCTLAbstractProperty findFirstPlaceHolder() { |
2800 | 106 | return property.findFirstPlaceHolder(); | 108 | return property.findFirstPlaceHolder(); |
2801 | 107 | |||
2802 | 108 | } | 109 | } |
2803 | 109 | 110 | ||
2804 | 110 | } | 111 | } |
2805 | 111 | 112 | ||
2806 | === modified file 'src/pipe/gui/widgets/QueryDialog.java' | |||
2807 | --- src/pipe/gui/widgets/QueryDialog.java 2021-09-11 17:11:34 +0000 | |||
2808 | +++ src/pipe/gui/widgets/QueryDialog.java 2021-09-29 07:20:55 +0000 | |||
2809 | @@ -2326,42 +2326,37 @@ | |||
2810 | 2326 | 2326 | ||
2811 | 2327 | if (newQuery != null) // new query parsed successfully | 2327 | if (newQuery != null) // new query parsed successfully |
2812 | 2328 | { | 2328 | { |
2830 | 2329 | // check correct place names are used in atomic propositions | 2329 | VerifyPlaceNamesVisitor.Context placeContext = getPlaceContext(newQuery); |
2831 | 2330 | ArrayList<Tuple<String,String>> templatePlaceNames = new ArrayList<Tuple<String,String>>(); | 2330 | VerifyTransitionNamesVisitor.Context transitionContext = getTransitionContext(newQuery); |
2815 | 2331 | for(TimedArcPetriNet tapn : tapnNetwork.activeTemplates()) { | ||
2816 | 2332 | for(TimedPlace p : tapn.places()) { | ||
2817 | 2333 | if (lens.isTimed() || !p.isShared() || lens.isGame()) { | ||
2818 | 2334 | templatePlaceNames.add(new Tuple<String, String>(tapn.name(), p.name())); | ||
2819 | 2335 | } | ||
2820 | 2336 | } | ||
2821 | 2337 | } | ||
2822 | 2338 | |||
2823 | 2339 | for(TimedPlace p : tapnNetwork.sharedPlaces()) { | ||
2824 | 2340 | templatePlaceNames.add(new Tuple<String, String>("", p.name())); | ||
2825 | 2341 | } | ||
2826 | 2342 | |||
2827 | 2343 | FixAbbrivPlaceNames.fixAbbrivPlaceNames(templatePlaceNames, newQuery); | ||
2828 | 2344 | VerifyPlaceNamesVisitor nameChecker = new VerifyPlaceNamesVisitor(templatePlaceNames); | ||
2829 | 2345 | VerifyPlaceNamesVisitor.Context c = nameChecker.verifyPlaceNames(newQuery); | ||
2832 | 2346 | 2331 | ||
2833 | 2347 | boolean isResultFalse; | 2332 | boolean isResultFalse; |
2834 | 2348 | 2333 | ||
2835 | 2349 | if (lens.isTimed() || lens.isGame()) { | 2334 | if (lens.isTimed() || lens.isGame()) { |
2837 | 2350 | isResultFalse = !c.getResult(); | 2335 | isResultFalse = !placeContext.getResult(); |
2838 | 2351 | } else { | 2336 | } else { |
2840 | 2352 | isResultFalse = checkUntimedResult(newQuery) && !c.getResult(); | 2337 | isResultFalse = !transitionContext.getResult() || !placeContext.getResult(); |
2841 | 2353 | } | 2338 | } |
2842 | 2354 | 2339 | ||
2843 | 2355 | if (isResultFalse) { | 2340 | if (isResultFalse) { |
2844 | 2356 | StringBuilder s = new StringBuilder(); | 2341 | StringBuilder s = new StringBuilder(); |
2845 | 2342 | <<<<<<< TREE | ||
2846 | 2357 | s.append("The following places" + (lens.isTimed() ? "" : " or transitions") + | 2343 | s.append("The following places" + (lens.isTimed() ? "" : " or transitions") + |
2847 | 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"); |
2848 | 2345 | ======= | ||
2849 | 2346 | s.append("The following places " + (lens.isTimed() ? "" : "or transitions") + | ||
2850 | 2347 | " were used in the query, but are not present in your model:\n\n"); | ||
2851 | 2348 | >>>>>>> MERGE-SOURCE | ||
2852 | 2359 | 2349 | ||
2854 | 2360 | for (String placeName : c.getIncorrectPlaceNames()) { | 2350 | for (String placeName : placeContext.getIncorrectPlaceNames()) { |
2855 | 2361 | s.append(placeName); | 2351 | s.append(placeName); |
2856 | 2362 | s.append('\n'); | 2352 | s.append('\n'); |
2857 | 2363 | } | 2353 | } |
2858 | 2364 | 2354 | ||
2859 | 2355 | for (String transitionName : transitionContext.getIncorrectTransitionNames()) { | ||
2860 | 2356 | s.append(transitionName); | ||
2861 | 2357 | s.append('\n'); | ||
2862 | 2358 | } | ||
2863 | 2359 | |||
2864 | 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?"); |
2865 | 2366 | int choice = JOptionPane.showConfirmDialog( | 2361 | int choice = JOptionPane.showConfirmDialog( |
2866 | 2367 | CreateGui.getApp(), s.toString(), | 2362 | CreateGui.getApp(), s.toString(), |
2867 | @@ -2442,25 +2437,44 @@ | |||
2868 | 2442 | queryPanel.add(editingButtonPanel, gbc); | 2437 | queryPanel.add(editingButtonPanel, gbc); |
2869 | 2443 | } | 2438 | } |
2870 | 2444 | 2439 | ||
2872 | 2445 | private boolean checkUntimedResult(TCTLAbstractProperty newQuery) { | 2440 | private VerifyPlaceNamesVisitor.Context getPlaceContext(TCTLAbstractProperty newQuery) { |
2873 | 2441 | // check correct place names are used in atomic propositions | ||
2874 | 2442 | ArrayList<Tuple<String,String>> templatePlaceNames = new ArrayList<Tuple<String,String>>(); | ||
2875 | 2443 | for(TimedArcPetriNet tapn : tapnNetwork.activeTemplates()) { | ||
2876 | 2444 | for(TimedPlace p : tapn.places()) { | ||
2877 | 2445 | if (lens.isTimed() || !p.isShared() || lens.isGame()) { | ||
2878 | 2446 | templatePlaceNames.add(new Tuple<String, String>(tapn.name(), p.name())); | ||
2879 | 2447 | } | ||
2880 | 2448 | } | ||
2881 | 2449 | } | ||
2882 | 2450 | |||
2883 | 2451 | for(TimedPlace p : tapnNetwork.sharedPlaces()) { | ||
2884 | 2452 | templatePlaceNames.add(new Tuple<String, String>("", p.name())); | ||
2885 | 2453 | } | ||
2886 | 2454 | |||
2887 | 2455 | FixAbbrivPlaceNames.fixAbbrivPlaceNames(templatePlaceNames, newQuery); | ||
2888 | 2456 | VerifyPlaceNamesVisitor nameChecker = new VerifyPlaceNamesVisitor(templatePlaceNames); | ||
2889 | 2457 | return nameChecker.verifyPlaceNames(newQuery); | ||
2890 | 2458 | } | ||
2891 | 2459 | |||
2892 | 2460 | private VerifyTransitionNamesVisitor.Context getTransitionContext(TCTLAbstractProperty newQuery) { | ||
2893 | 2446 | // check correct transition names are used in atomic propositions | 2461 | // check correct transition names are used in atomic propositions |
2895 | 2447 | ArrayList<Tuple<String, String>> templateTransitionNames = new ArrayList<Tuple<String, String>>(); | 2462 | ArrayList<Tuple<String,String>> templateTransitionNames = new ArrayList<Tuple<String,String>>(); |
2896 | 2448 | for (TimedArcPetriNet tapn : tapnNetwork.activeTemplates()) { | 2463 | for (TimedArcPetriNet tapn : tapnNetwork.activeTemplates()) { |
2897 | 2449 | for (TimedTransition t : tapn.transitions()) { | 2464 | for (TimedTransition t : tapn.transitions()) { |
2900 | 2450 | if (!t.isShared()) { | 2465 | if (lens.isTimed() || !t.isShared() || lens.isGame()) { |
2901 | 2451 | templateTransitionNames.add(new Tuple<String, String>(tapn.name(), t.name())); | 2466 | templateTransitionNames.add(new Tuple<>(tapn.name(), t.name())); |
2902 | 2452 | } | 2467 | } |
2903 | 2453 | } | 2468 | } |
2904 | 2454 | } | 2469 | } |
2905 | 2455 | 2470 | ||
2906 | 2456 | for (SharedTransition t : tapnNetwork.sharedTransitions()) { | 2471 | for (SharedTransition t : tapnNetwork.sharedTransitions()) { |
2908 | 2457 | templateTransitionNames.add(new Tuple<String, String>("", t.name())); | 2472 | templateTransitionNames.add(new Tuple<>("", t.name())); |
2909 | 2458 | } | 2473 | } |
2910 | 2459 | 2474 | ||
2911 | 2460 | FixAbbrivTransitionNames.fixAbbrivTransitionNames(templateTransitionNames, newQuery); | 2475 | FixAbbrivTransitionNames.fixAbbrivTransitionNames(templateTransitionNames, newQuery); |
2915 | 2461 | VerifyTransitionNamesVisitor transitionNameChecker = new VerifyTransitionNamesVisitor(templateTransitionNames); | 2476 | VerifyTransitionNamesVisitor nameChecker = new VerifyTransitionNamesVisitor(templateTransitionNames); |
2916 | 2462 | VerifyTransitionNamesVisitor.Context c2 = transitionNameChecker.verifyTransitionNames(newQuery); | 2477 | return nameChecker.verifyTransitionNames(newQuery); |
2914 | 2463 | return !c2.getResult(); | ||
2917 | 2464 | } | 2478 | } |
2918 | 2465 | 2479 | ||
2919 | 2466 | private void initUppaalOptionsPanel() { | 2480 | private void initUppaalOptionsPanel() { |
2920 | 2467 | 2481 | ||
2921 | === modified file 'src/resources/TCTLParser/TAPAALCTLQueryParser.jj' | |||
2922 | --- src/resources/TCTLParser/TAPAALCTLQueryParser.jj 2017-09-05 21:24:23 +0000 | |||
2923 | +++ src/resources/TCTLParser/TAPAALCTLQueryParser.jj 2021-09-29 07:20:55 +0000 | |||
2924 | @@ -56,7 +56,7 @@ | |||
2925 | 56 | 56 | ||
2926 | 57 | public static TCTLAbstractPathProperty parse(String query) throws ParseException { | 57 | public static TCTLAbstractPathProperty parse(String query) throws ParseException { |
2927 | 58 | TAPAALCTLQueryParser parser = new TAPAALCTLQueryParser(new StringReader(query)); | 58 | TAPAALCTLQueryParser parser = new TAPAALCTLQueryParser(new StringReader(query)); |
2929 | 59 | return parser.AbstractPathProperty(); | 59 | return parser.Start(); |
2930 | 60 | } | 60 | } |
2931 | 61 | } | 61 | } |
2932 | 62 | 62 | ||
2933 | @@ -131,6 +131,16 @@ | |||
2934 | 131 | } | 131 | } |
2935 | 132 | 132 | ||
2936 | 133 | /** Root production. */ | 133 | /** Root production. */ |
2937 | 134 | TCTLAbstractPathProperty Start() : | ||
2938 | 135 | { | ||
2939 | 136 | TCTLAbstractPathProperty child = null; | ||
2940 | 137 | } | ||
2941 | 138 | { | ||
2942 | 139 | ( | ||
2943 | 140 | child = AbstractPathProperty() <EOF> {return child;} | ||
2944 | 141 | ) | ||
2945 | 142 | } | ||
2946 | 143 | |||
2947 | 134 | TCTLAbstractPathProperty AbstractPathProperty() : | 144 | TCTLAbstractPathProperty AbstractPathProperty() : |
2948 | 135 | { | 145 | { |
2949 | 136 | TCTLAbstractStateProperty child = null; | 146 | TCTLAbstractStateProperty child = null; |
2950 | 137 | 147 | ||
2951 | === modified file 'src/resources/TCTLParser/TAPAALQueryParser.jj' | |||
2952 | --- src/resources/TCTLParser/TAPAALQueryParser.jj 2014-05-22 20:26:41 +0000 | |||
2953 | +++ src/resources/TCTLParser/TAPAALQueryParser.jj 2021-09-29 07:20:55 +0000 | |||
2954 | @@ -49,7 +49,7 @@ | |||
2955 | 49 | 49 | ||
2956 | 50 | public static TCTLAbstractProperty parse(String query) throws ParseException { | 50 | public static TCTLAbstractProperty parse(String query) throws ParseException { |
2957 | 51 | TAPAALQueryParser parser = new TAPAALQueryParser(new StringReader(query)); | 51 | TAPAALQueryParser parser = new TAPAALQueryParser(new StringReader(query)); |
2959 | 52 | return parser.AbstractProperty(); | 52 | return parser.Start(); |
2960 | 53 | } | 53 | } |
2961 | 54 | } | 54 | } |
2962 | 55 | 55 | ||
2963 | @@ -112,6 +112,16 @@ | |||
2964 | 112 | } | 112 | } |
2965 | 113 | 113 | ||
2966 | 114 | /** Root production. */ | 114 | /** Root production. */ |
2967 | 115 | TCTLAbstractProperty Start() : | ||
2968 | 116 | { | ||
2969 | 117 | TCTLAbstractProperty child = null; | ||
2970 | 118 | } | ||
2971 | 119 | { | ||
2972 | 120 | ( | ||
2973 | 121 | child = AbstractProperty() <EOF> {return child;} | ||
2974 | 122 | ) | ||
2975 | 123 | } | ||
2976 | 124 | |||
2977 | 115 | TCTLAbstractProperty AbstractProperty() : | 125 | TCTLAbstractProperty AbstractProperty() : |
2978 | 116 | { | 126 | { |
2979 | 117 | TCTLAbstractStateProperty child = null; | 127 | TCTLAbstractStateProperty child = null; |
What problem is this branch fixing?