testautoa 0.4.0 → 0.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (79) hide show
  1. data/Rakefile +7 -7
  2. data/bin/calabash-android +8 -1
  3. data/bin/calabash-android-build.rb +1 -1
  4. data/bin/calabash-android-console.rb +4 -4
  5. data/bin/calabash-android-run.rb +2 -10
  6. data/bin/testautoa +461 -0
  7. data/calabash-android.gemspec +3 -1
  8. data/features-skeleton/support/app_life_cycle_hooks.rb +0 -1
  9. data/irbrc +3 -1
  10. data/lib/calabash-android/helpers.rb +45 -17
  11. data/lib/calabash-android/lib/TestServer.apk +0 -0
  12. data/lib/calabash-android/lib/unsign.jar +0 -0
  13. data/lib/calabash-android/operations.rb +150 -66
  14. data/lib/calabash-android/steps/list_steps.rb +1 -1
  15. data/lib/calabash-android/steps/time_picker_steps.rb +1 -1
  16. data/lib/calabash-android/touch_helpers.rb +9 -0
  17. data/lib/calabash-android/version.rb +1 -1
  18. data/lib/calabash-android/wait_helpers.rb +93 -0
  19. data/test-server/AndroidManifest.xml +2 -0
  20. data/test-server/build.xml +1 -0
  21. data/test-server/instrumentation-backend/.classpath +0 -1
  22. data/test-server/instrumentation-backend/AndroidManifest.xml +1 -1
  23. data/test-server/instrumentation-backend/antlr/UIQuery.g +48 -5
  24. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/Command.java +4 -3
  25. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/FranklyResult.java +95 -0
  26. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/Result.java +7 -1
  27. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/HttpServer.java +14 -29
  28. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/activity/FinishOpenedActivities.java +19 -0
  29. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/activity/GetOpenedActivities.java +31 -0
  30. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/activity/GoBackToActivity.java +67 -0
  31. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/gestures/DragCoordinates.java +28 -0
  32. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/gestures/Swipe.java +11 -5
  33. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/location/FakeGPSLocation.java +13 -10
  34. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/softkey/LeftKey.java +24 -0
  35. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/softkey/RightKey.java +24 -0
  36. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/softkey/UpKey.java +24 -0
  37. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/version/Version.java +31 -0
  38. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/webview/CalabashChromeClient.java +131 -36
  39. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/webview/DumpBodyHtml.java +38 -18
  40. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/webview/DumpHtml.java +38 -16
  41. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/webview/EnterTextByCssSelector.java +94 -66
  42. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/webview/ExecuteAsyncJavascript.java +55 -33
  43. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/webview/ExecuteJavascript.java +53 -31
  44. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/webview/JavaScriptOperation.java +44 -0
  45. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/webview/PressByCssSelector.java +52 -27
  46. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/webview/QueryHelper.java +39 -32
  47. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/webview/ScrollTo.java +56 -41
  48. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/webview/SetPropertyByCssSelector.java +50 -25
  49. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/webview/SetText.java +19 -22
  50. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/query/CompletedFuture.java +40 -0
  51. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/query/InvocationOperation.java +222 -0
  52. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/query/Operation.java +7 -0
  53. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/query/PropertyOperation.java +56 -0
  54. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/query/Query.java +151 -43
  55. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/query/UIQuery.tokens +19 -12
  56. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/query/UIQueryResultVoid.java +22 -0
  57. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/query/ViewMapper.java +41 -11
  58. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/query/antlr/UIQueryLexer.java +1010 -242
  59. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/query/antlr/UIQueryParser.java +406 -98
  60. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/query/ast/BeginsWithRelation.java +45 -0
  61. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/query/ast/ComparisonOperator.java +54 -0
  62. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/query/ast/ContainsRelation.java +41 -0
  63. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/query/ast/EndsWithRelation.java +42 -0
  64. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/query/ast/LikeRelation.java +79 -0
  65. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/query/ast/PartialFutureList.java +100 -0
  66. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/query/ast/UIQueryAST.java +1 -1
  67. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/query/ast/UIQueryASTClassName.java +54 -25
  68. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/query/ast/UIQueryASTPredicate.java +147 -0
  69. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/query/ast/UIQueryASTPredicateRelation.java +5 -0
  70. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/query/ast/UIQueryASTWith.java +153 -89
  71. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/query/ast/UIQueryDirection.java +12 -2
  72. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/query/ast/UIQueryEvaluator.java +58 -141
  73. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/query/ast/UIQueryUtils.java +162 -7
  74. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/query/ast/UIQueryVisibility.java +32 -0
  75. metadata +130 -97
  76. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/webview/Query.java +0 -24
  77. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/webview/Touch.java +0 -44
  78. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/query/antlr/UIQuery.tokens +0 -10
  79. data/test-server/instrumentation-backend/tests/sh/calaba/instrumentationbackend/query/tests/UIQueryTest.java +0 -134
@@ -1,4 +1,4 @@
1
- // $ANTLR 3.4 antlr/UIQuery.g 2012-12-14 14:03:36
1
+ // $ANTLR 3.4 antlr/UIQuery.g 2013-02-02 18:08:57
2
2
 
3
3
  package sh.calaba.instrumentationbackend.query.antlr;
4
4
 
@@ -11,18 +11,44 @@ import java.util.ArrayList;
11
11
  @SuppressWarnings({"all", "warnings", "unchecked"})
12
12
  public class UIQueryLexer extends Lexer {
13
13
  public static final int EOF=-1;
14
- public static final int BOOL=4;
15
- public static final int ESC_SEQ=5;
16
- public static final int FILTER_COLON=6;
17
- public static final int HEX_DIGIT=7;
18
- public static final int INT=8;
19
- public static final int NAME=9;
20
- public static final int NIL=10;
21
- public static final int OCTAL_ESC=11;
22
- public static final int QUALIFIED_NAME=12;
23
- public static final int STRING=13;
24
- public static final int UNICODE_ESC=14;
25
- public static final int WHITE=15;
14
+ public static final int ALL=4;
15
+ public static final int BEGINPRED=5;
16
+ public static final int BOOL=6;
17
+ public static final int DIRECTION=7;
18
+ public static final int ENDPRED=8;
19
+ public static final int ESC_SEQ=9;
20
+ public static final int FILTER_COLON=10;
21
+ public static final int HEX_DIGIT=11;
22
+ public static final int INT=12;
23
+ public static final int NAME=13;
24
+ public static final int NIL=14;
25
+ public static final int OCTAL_ESC=15;
26
+ public static final int QUALIFIED_NAME=16;
27
+ public static final int RELATION=17;
28
+ public static final int STRING=18;
29
+ public static final int UNICODE_ESC=19;
30
+ public static final int VISIBLE=20;
31
+ public static final int WHITE=21;
32
+ public static final int WILDCARD=22;
33
+
34
+ public String getErrorMessage(RecognitionException e, String[] tokenNames)
35
+ {
36
+ List stack = getRuleInvocationStack(e, this.getClass().getName());
37
+ String msg = null;
38
+ if ( e instanceof NoViableAltException ) {
39
+ NoViableAltException nvae = (NoViableAltException)e;
40
+ msg = " no viable alt; token="+e.token+" (decision="+nvae.decisionNumber+" state "+nvae.stateNumber+")"+" decision=<<"+nvae.grammarDecisionDescription+">>";
41
+ throw new RuntimeException(msg, e);
42
+ }
43
+ else {
44
+ msg = super.getErrorMessage(e, tokenNames);
45
+ }
46
+ return stack+" "+msg;
47
+ }
48
+ public String getTokenErrorDisplay(Token t) {
49
+ return t.toString();
50
+ }
51
+
26
52
 
27
53
  // delegates
28
54
  // delegators
@@ -39,32 +65,137 @@ public class UIQueryLexer extends Lexer {
39
65
  }
40
66
  public String getGrammarFileName() { return "antlr/UIQuery.g"; }
41
67
 
68
+ // $ANTLR start "DIRECTION"
69
+ public final void mDIRECTION() throws RecognitionException {
70
+ try {
71
+ int _type = DIRECTION;
72
+ int _channel = DEFAULT_TOKEN_CHANNEL;
73
+ // antlr/UIQuery.g:42:11: ( 'descendant' | 'child' | 'parent' | 'sibling' )
74
+ int alt1=4;
75
+ switch ( input.LA(1) ) {
76
+ case 'd':
77
+ {
78
+ alt1=1;
79
+ }
80
+ break;
81
+ case 'c':
82
+ {
83
+ alt1=2;
84
+ }
85
+ break;
86
+ case 'p':
87
+ {
88
+ alt1=3;
89
+ }
90
+ break;
91
+ case 's':
92
+ {
93
+ alt1=4;
94
+ }
95
+ break;
96
+ default:
97
+ NoViableAltException nvae =
98
+ new NoViableAltException("", 1, 0, input);
99
+
100
+ throw nvae;
101
+
102
+ }
103
+
104
+ switch (alt1) {
105
+ case 1 :
106
+ // antlr/UIQuery.g:42:13: 'descendant'
107
+ {
108
+ match("descendant");
109
+
110
+
111
+
112
+ }
113
+ break;
114
+ case 2 :
115
+ // antlr/UIQuery.g:42:28: 'child'
116
+ {
117
+ match("child");
118
+
119
+
120
+
121
+ }
122
+ break;
123
+ case 3 :
124
+ // antlr/UIQuery.g:42:38: 'parent'
125
+ {
126
+ match("parent");
127
+
128
+
129
+
130
+ }
131
+ break;
132
+ case 4 :
133
+ // antlr/UIQuery.g:42:49: 'sibling'
134
+ {
135
+ match("sibling");
136
+
137
+
138
+
139
+ }
140
+ break;
141
+
142
+ }
143
+ state.type = _type;
144
+ state.channel = _channel;
145
+ }
146
+ finally {
147
+ // do for sure before leaving
148
+ }
149
+ }
150
+ // $ANTLR end "DIRECTION"
151
+
152
+ // $ANTLR start "WILDCARD"
153
+ public final void mWILDCARD() throws RecognitionException {
154
+ try {
155
+ int _type = WILDCARD;
156
+ int _channel = DEFAULT_TOKEN_CHANNEL;
157
+ // antlr/UIQuery.g:47:10: ( '*' )
158
+ // antlr/UIQuery.g:47:12: '*'
159
+ {
160
+ match('*');
161
+
162
+ }
163
+
164
+ state.type = _type;
165
+ state.channel = _channel;
166
+ }
167
+ finally {
168
+ // do for sure before leaving
169
+ }
170
+ }
171
+ // $ANTLR end "WILDCARD"
172
+
42
173
  // $ANTLR start "QUALIFIED_NAME"
43
174
  public final void mQUALIFIED_NAME() throws RecognitionException {
44
175
  try {
45
176
  int _type = QUALIFIED_NAME;
46
177
  int _channel = DEFAULT_TOKEN_CHANNEL;
47
- // antlr/UIQuery.g:25:16: ( NAME ( '.' NAME )+ )
48
- // antlr/UIQuery.g:25:18: NAME ( '.' NAME )+
178
+ // antlr/UIQuery.g:49:16: ( NAME ( '.' NAME )+ )
179
+ // antlr/UIQuery.g:49:18: NAME ( '.' NAME )+
49
180
  {
50
181
  mNAME();
51
182
 
52
183
 
53
- // antlr/UIQuery.g:25:23: ( '.' NAME )+
54
- int cnt1=0;
55
- loop1:
184
+ // antlr/UIQuery.g:49:23: ( '.' NAME )+
185
+ int cnt2=0;
186
+ loop2:
56
187
  do {
57
- int alt1=2;
58
- int LA1_0 = input.LA(1);
188
+ int alt2=2;
189
+ int LA2_0 = input.LA(1);
59
190
 
60
- if ( (LA1_0=='.') ) {
61
- alt1=1;
191
+ if ( (LA2_0=='.') ) {
192
+ alt2=1;
62
193
  }
63
194
 
64
195
 
65
- switch (alt1) {
196
+ switch (alt2) {
66
197
  case 1 :
67
- // antlr/UIQuery.g:25:24: '.' NAME
198
+ // antlr/UIQuery.g:49:24: '.' NAME
68
199
  {
69
200
  match('.');
70
201
 
@@ -75,12 +206,12 @@ public class UIQueryLexer extends Lexer {
75
206
  break;
76
207
 
77
208
  default :
78
- if ( cnt1 >= 1 ) break loop1;
209
+ if ( cnt2 >= 1 ) break loop2;
79
210
  EarlyExitException eee =
80
- new EarlyExitException(1, input);
211
+ new EarlyExitException(2, input);
81
212
  throw eee;
82
213
  }
83
- cnt1++;
214
+ cnt2++;
84
215
  } while (true);
85
216
 
86
217
 
@@ -95,13 +226,59 @@ public class UIQueryLexer extends Lexer {
95
226
  }
96
227
  // $ANTLR end "QUALIFIED_NAME"
97
228
 
229
+ // $ANTLR start "ALL"
230
+ public final void mALL() throws RecognitionException {
231
+ try {
232
+ int _type = ALL;
233
+ int _channel = DEFAULT_TOKEN_CHANNEL;
234
+ // antlr/UIQuery.g:53:5: ( 'all' )
235
+ // antlr/UIQuery.g:53:7: 'all'
236
+ {
237
+ match("all");
238
+
239
+
240
+
241
+ }
242
+
243
+ state.type = _type;
244
+ state.channel = _channel;
245
+ }
246
+ finally {
247
+ // do for sure before leaving
248
+ }
249
+ }
250
+ // $ANTLR end "ALL"
251
+
252
+ // $ANTLR start "VISIBLE"
253
+ public final void mVISIBLE() throws RecognitionException {
254
+ try {
255
+ int _type = VISIBLE;
256
+ int _channel = DEFAULT_TOKEN_CHANNEL;
257
+ // antlr/UIQuery.g:55:9: ( 'visible' )
258
+ // antlr/UIQuery.g:55:11: 'visible'
259
+ {
260
+ match("visible");
261
+
262
+
263
+
264
+ }
265
+
266
+ state.type = _type;
267
+ state.channel = _channel;
268
+ }
269
+ finally {
270
+ // do for sure before leaving
271
+ }
272
+ }
273
+ // $ANTLR end "VISIBLE"
274
+
98
275
  // $ANTLR start "FILTER_COLON"
99
276
  public final void mFILTER_COLON() throws RecognitionException {
100
277
  try {
101
278
  int _type = FILTER_COLON;
102
279
  int _channel = DEFAULT_TOKEN_CHANNEL;
103
- // antlr/UIQuery.g:29:15: ( ':' )
104
- // antlr/UIQuery.g:29:17: ':'
280
+ // antlr/UIQuery.g:60:15: ( ':' )
281
+ // antlr/UIQuery.g:60:17: ':'
105
282
  {
106
283
  match(':');
107
284
 
@@ -116,27 +293,372 @@ public class UIQueryLexer extends Lexer {
116
293
  }
117
294
  // $ANTLR end "FILTER_COLON"
118
295
 
296
+ // $ANTLR start "BEGINPRED"
297
+ public final void mBEGINPRED() throws RecognitionException {
298
+ try {
299
+ int _type = BEGINPRED;
300
+ int _channel = DEFAULT_TOKEN_CHANNEL;
301
+ // antlr/UIQuery.g:65:11: ( '{' )
302
+ // antlr/UIQuery.g:65:13: '{'
303
+ {
304
+ match('{');
305
+
306
+ }
307
+
308
+ state.type = _type;
309
+ state.channel = _channel;
310
+ }
311
+ finally {
312
+ // do for sure before leaving
313
+ }
314
+ }
315
+ // $ANTLR end "BEGINPRED"
316
+
317
+ // $ANTLR start "ENDPRED"
318
+ public final void mENDPRED() throws RecognitionException {
319
+ try {
320
+ int _type = ENDPRED;
321
+ int _channel = DEFAULT_TOKEN_CHANNEL;
322
+ // antlr/UIQuery.g:67:11: ( '}' )
323
+ // antlr/UIQuery.g:67:13: '}'
324
+ {
325
+ match('}');
326
+
327
+ }
328
+
329
+ state.type = _type;
330
+ state.channel = _channel;
331
+ }
332
+ finally {
333
+ // do for sure before leaving
334
+ }
335
+ }
336
+ // $ANTLR end "ENDPRED"
337
+
338
+ // $ANTLR start "RELATION"
339
+ public final void mRELATION() throws RecognitionException {
340
+ try {
341
+ int _type = RELATION;
342
+ int _channel = DEFAULT_TOKEN_CHANNEL;
343
+ // antlr/UIQuery.g:70:10: (| '=' | '>' | '>=' | '<' | '<=' | ( ( 'BEGINSWITH' | 'ENDSWITH' | 'CONTAINS' | 'LIKE' | 'beginswith' | 'endswith' | 'contains' | 'like' ) ( '[' ( 'a' .. 'z' | 'A' .. 'Z' )* ']' )? ) )
344
+ int alt6=7;
345
+ switch ( input.LA(1) ) {
346
+ case '=':
347
+ {
348
+ alt6=2;
349
+ }
350
+ break;
351
+ case '>':
352
+ {
353
+ int LA6_3 = input.LA(2);
354
+
355
+ if ( (LA6_3=='=') ) {
356
+ alt6=4;
357
+ }
358
+ else {
359
+ alt6=3;
360
+ }
361
+ }
362
+ break;
363
+ case '<':
364
+ {
365
+ int LA6_4 = input.LA(2);
366
+
367
+ if ( (LA6_4=='=') ) {
368
+ alt6=6;
369
+ }
370
+ else {
371
+ alt6=5;
372
+ }
373
+ }
374
+ break;
375
+ case 'B':
376
+ case 'C':
377
+ case 'E':
378
+ case 'L':
379
+ case 'b':
380
+ case 'c':
381
+ case 'e':
382
+ case 'l':
383
+ {
384
+ alt6=7;
385
+ }
386
+ break;
387
+ default:
388
+ alt6=1;
389
+ }
390
+
391
+ switch (alt6) {
392
+ case 1 :
393
+ // antlr/UIQuery.g:70:12:
394
+ {
395
+ }
396
+ break;
397
+ case 2 :
398
+ // antlr/UIQuery.g:70:14: '='
399
+ {
400
+ match('=');
401
+
402
+ }
403
+ break;
404
+ case 3 :
405
+ // antlr/UIQuery.g:70:20: '>'
406
+ {
407
+ match('>');
408
+
409
+ }
410
+ break;
411
+ case 4 :
412
+ // antlr/UIQuery.g:70:26: '>='
413
+ {
414
+ match(">=");
415
+
416
+
417
+
418
+ }
419
+ break;
420
+ case 5 :
421
+ // antlr/UIQuery.g:70:33: '<'
422
+ {
423
+ match('<');
424
+
425
+ }
426
+ break;
427
+ case 6 :
428
+ // antlr/UIQuery.g:70:39: '<='
429
+ {
430
+ match("<=");
431
+
432
+
433
+
434
+ }
435
+ break;
436
+ case 7 :
437
+ // antlr/UIQuery.g:71:4: ( ( 'BEGINSWITH' | 'ENDSWITH' | 'CONTAINS' | 'LIKE' | 'beginswith' | 'endswith' | 'contains' | 'like' ) ( '[' ( 'a' .. 'z' | 'A' .. 'Z' )* ']' )? )
438
+ {
439
+ // antlr/UIQuery.g:71:4: ( ( 'BEGINSWITH' | 'ENDSWITH' | 'CONTAINS' | 'LIKE' | 'beginswith' | 'endswith' | 'contains' | 'like' ) ( '[' ( 'a' .. 'z' | 'A' .. 'Z' )* ']' )? )
440
+ // antlr/UIQuery.g:71:5: ( 'BEGINSWITH' | 'ENDSWITH' | 'CONTAINS' | 'LIKE' | 'beginswith' | 'endswith' | 'contains' | 'like' ) ( '[' ( 'a' .. 'z' | 'A' .. 'Z' )* ']' )?
441
+ {
442
+ // antlr/UIQuery.g:71:5: ( 'BEGINSWITH' | 'ENDSWITH' | 'CONTAINS' | 'LIKE' | 'beginswith' | 'endswith' | 'contains' | 'like' )
443
+ int alt3=8;
444
+ switch ( input.LA(1) ) {
445
+ case 'B':
446
+ {
447
+ alt3=1;
448
+ }
449
+ break;
450
+ case 'E':
451
+ {
452
+ alt3=2;
453
+ }
454
+ break;
455
+ case 'C':
456
+ {
457
+ alt3=3;
458
+ }
459
+ break;
460
+ case 'L':
461
+ {
462
+ alt3=4;
463
+ }
464
+ break;
465
+ case 'b':
466
+ {
467
+ alt3=5;
468
+ }
469
+ break;
470
+ case 'e':
471
+ {
472
+ alt3=6;
473
+ }
474
+ break;
475
+ case 'c':
476
+ {
477
+ alt3=7;
478
+ }
479
+ break;
480
+ case 'l':
481
+ {
482
+ alt3=8;
483
+ }
484
+ break;
485
+ default:
486
+ NoViableAltException nvae =
487
+ new NoViableAltException("", 3, 0, input);
488
+
489
+ throw nvae;
490
+
491
+ }
492
+
493
+ switch (alt3) {
494
+ case 1 :
495
+ // antlr/UIQuery.g:71:7: 'BEGINSWITH'
496
+ {
497
+ match("BEGINSWITH");
498
+
499
+
500
+
501
+ }
502
+ break;
503
+ case 2 :
504
+ // antlr/UIQuery.g:71:22: 'ENDSWITH'
505
+ {
506
+ match("ENDSWITH");
507
+
508
+
509
+
510
+ }
511
+ break;
512
+ case 3 :
513
+ // antlr/UIQuery.g:71:35: 'CONTAINS'
514
+ {
515
+ match("CONTAINS");
516
+
517
+
518
+
519
+ }
520
+ break;
521
+ case 4 :
522
+ // antlr/UIQuery.g:71:48: 'LIKE'
523
+ {
524
+ match("LIKE");
525
+
526
+
527
+
528
+ }
529
+ break;
530
+ case 5 :
531
+ // antlr/UIQuery.g:72:12: 'beginswith'
532
+ {
533
+ match("beginswith");
534
+
535
+
536
+
537
+ }
538
+ break;
539
+ case 6 :
540
+ // antlr/UIQuery.g:72:27: 'endswith'
541
+ {
542
+ match("endswith");
543
+
544
+
545
+
546
+ }
547
+ break;
548
+ case 7 :
549
+ // antlr/UIQuery.g:72:40: 'contains'
550
+ {
551
+ match("contains");
552
+
553
+
554
+
555
+ }
556
+ break;
557
+ case 8 :
558
+ // antlr/UIQuery.g:72:53: 'like'
559
+ {
560
+ match("like");
561
+
562
+
563
+
564
+ }
565
+ break;
566
+
567
+ }
568
+
569
+
570
+ // antlr/UIQuery.g:72:61: ( '[' ( 'a' .. 'z' | 'A' .. 'Z' )* ']' )?
571
+ int alt5=2;
572
+ int LA5_0 = input.LA(1);
573
+
574
+ if ( (LA5_0=='[') ) {
575
+ alt5=1;
576
+ }
577
+ switch (alt5) {
578
+ case 1 :
579
+ // antlr/UIQuery.g:72:62: '[' ( 'a' .. 'z' | 'A' .. 'Z' )* ']'
580
+ {
581
+ match('[');
582
+
583
+ // antlr/UIQuery.g:72:66: ( 'a' .. 'z' | 'A' .. 'Z' )*
584
+ loop4:
585
+ do {
586
+ int alt4=2;
587
+ int LA4_0 = input.LA(1);
588
+
589
+ if ( ((LA4_0 >= 'A' && LA4_0 <= 'Z')||(LA4_0 >= 'a' && LA4_0 <= 'z')) ) {
590
+ alt4=1;
591
+ }
592
+
593
+
594
+ switch (alt4) {
595
+ case 1 :
596
+ // antlr/UIQuery.g:
597
+ {
598
+ if ( (input.LA(1) >= 'A' && input.LA(1) <= 'Z')||(input.LA(1) >= 'a' && input.LA(1) <= 'z') ) {
599
+ input.consume();
600
+ }
601
+ else {
602
+ MismatchedSetException mse = new MismatchedSetException(null,input);
603
+ recover(mse);
604
+ throw mse;
605
+ }
606
+
607
+
608
+ }
609
+ break;
610
+
611
+ default :
612
+ break loop4;
613
+ }
614
+ } while (true);
615
+
616
+
617
+ match(']');
618
+
619
+ }
620
+ break;
621
+
622
+ }
623
+
624
+
625
+ }
626
+
627
+
628
+ }
629
+ break;
630
+
631
+ }
632
+ state.type = _type;
633
+ state.channel = _channel;
634
+ }
635
+ finally {
636
+ // do for sure before leaving
637
+ }
638
+ }
639
+ // $ANTLR end "RELATION"
640
+
119
641
  // $ANTLR start "INT"
120
642
  public final void mINT() throws RecognitionException {
121
643
  try {
122
644
  int _type = INT;
123
645
  int _channel = DEFAULT_TOKEN_CHANNEL;
124
- // antlr/UIQuery.g:33:5: ( ( '0' .. '9' )+ )
125
- // antlr/UIQuery.g:33:7: ( '0' .. '9' )+
646
+ // antlr/UIQuery.g:76:5: ( ( '0' .. '9' )+ )
647
+ // antlr/UIQuery.g:76:7: ( '0' .. '9' )+
126
648
  {
127
- // antlr/UIQuery.g:33:7: ( '0' .. '9' )+
128
- int cnt2=0;
129
- loop2:
649
+ // antlr/UIQuery.g:76:7: ( '0' .. '9' )+
650
+ int cnt7=0;
651
+ loop7:
130
652
  do {
131
- int alt2=2;
132
- int LA2_0 = input.LA(1);
653
+ int alt7=2;
654
+ int LA7_0 = input.LA(1);
133
655
 
134
- if ( ((LA2_0 >= '0' && LA2_0 <= '9')) ) {
135
- alt2=1;
656
+ if ( ((LA7_0 >= '0' && LA7_0 <= '9')) ) {
657
+ alt7=1;
136
658
  }
137
659
 
138
660
 
139
- switch (alt2) {
661
+ switch (alt7) {
140
662
  case 1 :
141
663
  // antlr/UIQuery.g:
142
664
  {
@@ -154,12 +676,12 @@ public class UIQueryLexer extends Lexer {
154
676
  break;
155
677
 
156
678
  default :
157
- if ( cnt2 >= 1 ) break loop2;
679
+ if ( cnt7 >= 1 ) break loop7;
158
680
  EarlyExitException eee =
159
- new EarlyExitException(2, input);
681
+ new EarlyExitException(7, input);
160
682
  throw eee;
161
683
  }
162
- cnt2++;
684
+ cnt7++;
163
685
  } while (true);
164
686
 
165
687
 
@@ -179,26 +701,26 @@ public class UIQueryLexer extends Lexer {
179
701
  try {
180
702
  int _type = BOOL;
181
703
  int _channel = DEFAULT_TOKEN_CHANNEL;
182
- // antlr/UIQuery.g:36:6: ( 'true' | 'false' )
183
- int alt3=2;
184
- int LA3_0 = input.LA(1);
704
+ // antlr/UIQuery.g:79:6: ( 'true' | 'false' )
705
+ int alt8=2;
706
+ int LA8_0 = input.LA(1);
185
707
 
186
- if ( (LA3_0=='t') ) {
187
- alt3=1;
708
+ if ( (LA8_0=='t') ) {
709
+ alt8=1;
188
710
  }
189
- else if ( (LA3_0=='f') ) {
190
- alt3=2;
711
+ else if ( (LA8_0=='f') ) {
712
+ alt8=2;
191
713
  }
192
714
  else {
193
715
  NoViableAltException nvae =
194
- new NoViableAltException("", 3, 0, input);
716
+ new NoViableAltException("", 8, 0, input);
195
717
 
196
718
  throw nvae;
197
719
 
198
720
  }
199
- switch (alt3) {
721
+ switch (alt8) {
200
722
  case 1 :
201
- // antlr/UIQuery.g:36:8: 'true'
723
+ // antlr/UIQuery.g:79:8: 'true'
202
724
  {
203
725
  match("true");
204
726
 
@@ -207,7 +729,7 @@ public class UIQueryLexer extends Lexer {
207
729
  }
208
730
  break;
209
731
  case 2 :
210
- // antlr/UIQuery.g:36:17: 'false'
732
+ // antlr/UIQuery.g:79:17: 'false'
211
733
  {
212
734
  match("false");
213
735
 
@@ -231,22 +753,22 @@ public class UIQueryLexer extends Lexer {
231
753
  try {
232
754
  int _type = NIL;
233
755
  int _channel = DEFAULT_TOKEN_CHANNEL;
234
- // antlr/UIQuery.g:39:5: ( 'nil' | 'null' )
235
- int alt4=2;
236
- int LA4_0 = input.LA(1);
756
+ // antlr/UIQuery.g:82:5: ( 'nil' | 'null' )
757
+ int alt9=2;
758
+ int LA9_0 = input.LA(1);
237
759
 
238
- if ( (LA4_0=='n') ) {
239
- int LA4_1 = input.LA(2);
760
+ if ( (LA9_0=='n') ) {
761
+ int LA9_1 = input.LA(2);
240
762
 
241
- if ( (LA4_1=='i') ) {
242
- alt4=1;
763
+ if ( (LA9_1=='i') ) {
764
+ alt9=1;
243
765
  }
244
- else if ( (LA4_1=='u') ) {
245
- alt4=2;
766
+ else if ( (LA9_1=='u') ) {
767
+ alt9=2;
246
768
  }
247
769
  else {
248
770
  NoViableAltException nvae =
249
- new NoViableAltException("", 4, 1, input);
771
+ new NoViableAltException("", 9, 1, input);
250
772
 
251
773
  throw nvae;
252
774
 
@@ -254,14 +776,14 @@ public class UIQueryLexer extends Lexer {
254
776
  }
255
777
  else {
256
778
  NoViableAltException nvae =
257
- new NoViableAltException("", 4, 0, input);
779
+ new NoViableAltException("", 9, 0, input);
258
780
 
259
781
  throw nvae;
260
782
 
261
783
  }
262
- switch (alt4) {
784
+ switch (alt9) {
263
785
  case 1 :
264
- // antlr/UIQuery.g:39:7: 'nil'
786
+ // antlr/UIQuery.g:82:7: 'nil'
265
787
  {
266
788
  match("nil");
267
789
 
@@ -270,7 +792,7 @@ public class UIQueryLexer extends Lexer {
270
792
  }
271
793
  break;
272
794
  case 2 :
273
- // antlr/UIQuery.g:39:15: 'null'
795
+ // antlr/UIQuery.g:82:15: 'null'
274
796
  {
275
797
  match("null");
276
798
 
@@ -294,8 +816,8 @@ public class UIQueryLexer extends Lexer {
294
816
  try {
295
817
  int _type = NAME;
296
818
  int _channel = DEFAULT_TOKEN_CHANNEL;
297
- // antlr/UIQuery.g:42:7: ( ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '_' )* )
298
- // antlr/UIQuery.g:42:9: ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '_' )*
819
+ // antlr/UIQuery.g:85:7: ( ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '_' )* )
820
+ // antlr/UIQuery.g:85:9: ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '_' )*
299
821
  {
300
822
  if ( (input.LA(1) >= 'A' && input.LA(1) <= 'Z')||input.LA(1)=='_'||(input.LA(1) >= 'a' && input.LA(1) <= 'z') ) {
301
823
  input.consume();
@@ -307,18 +829,18 @@ public class UIQueryLexer extends Lexer {
307
829
  }
308
830
 
309
831
 
310
- // antlr/UIQuery.g:42:33: ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '_' )*
311
- loop5:
832
+ // antlr/UIQuery.g:85:33: ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '_' )*
833
+ loop10:
312
834
  do {
313
- int alt5=2;
314
- int LA5_0 = input.LA(1);
835
+ int alt10=2;
836
+ int LA10_0 = input.LA(1);
315
837
 
316
- if ( ((LA5_0 >= '0' && LA5_0 <= '9')||(LA5_0 >= 'A' && LA5_0 <= 'Z')||LA5_0=='_'||(LA5_0 >= 'a' && LA5_0 <= 'z')) ) {
317
- alt5=1;
838
+ if ( ((LA10_0 >= '0' && LA10_0 <= '9')||(LA10_0 >= 'A' && LA10_0 <= 'Z')||LA10_0=='_'||(LA10_0 >= 'a' && LA10_0 <= 'z')) ) {
839
+ alt10=1;
318
840
  }
319
841
 
320
842
 
321
- switch (alt5) {
843
+ switch (alt10) {
322
844
  case 1 :
323
845
  // antlr/UIQuery.g:
324
846
  {
@@ -336,7 +858,7 @@ public class UIQueryLexer extends Lexer {
336
858
  break;
337
859
 
338
860
  default :
339
- break loop5;
861
+ break loop10;
340
862
  }
341
863
  } while (true);
342
864
 
@@ -357,37 +879,28 @@ public class UIQueryLexer extends Lexer {
357
879
  try {
358
880
  int _type = STRING;
359
881
  int _channel = DEFAULT_TOKEN_CHANNEL;
360
- // antlr/UIQuery.g:46:5: ( '\\'' ( ESC_SEQ |~ ( '\\\\' | '\"' ) )* '\\'' )
361
- // antlr/UIQuery.g:46:8: '\\'' ( ESC_SEQ |~ ( '\\\\' | '\"' ) )* '\\''
882
+ // antlr/UIQuery.g:89:5: ( '\\'' ( ESC_SEQ |~ ( '\\\\' | '\\'' ) )* '\\'' )
883
+ // antlr/UIQuery.g:89:8: '\\'' ( ESC_SEQ |~ ( '\\\\' | '\\'' ) )* '\\''
362
884
  {
363
885
  match('\'');
364
886
 
365
- // antlr/UIQuery.g:46:13: ( ESC_SEQ |~ ( '\\\\' | '\"' ) )*
366
- loop6:
887
+ // antlr/UIQuery.g:89:13: ( ESC_SEQ |~ ( '\\\\' | '\\'' ) )*
888
+ loop11:
367
889
  do {
368
- int alt6=3;
369
- int LA6_0 = input.LA(1);
370
-
371
- if ( (LA6_0=='\'') ) {
372
- int LA6_1 = input.LA(2);
890
+ int alt11=3;
891
+ int LA11_0 = input.LA(1);
373
892
 
374
- if ( ((LA6_1 >= '\u0000' && LA6_1 <= '!')||(LA6_1 >= '#' && LA6_1 <= '\uFFFF')) ) {
375
- alt6=2;
376
- }
377
-
378
-
379
- }
380
- else if ( (LA6_0=='\\') ) {
381
- alt6=1;
893
+ if ( (LA11_0=='\\') ) {
894
+ alt11=1;
382
895
  }
383
- else if ( ((LA6_0 >= '\u0000' && LA6_0 <= '!')||(LA6_0 >= '#' && LA6_0 <= '&')||(LA6_0 >= '(' && LA6_0 <= '[')||(LA6_0 >= ']' && LA6_0 <= '\uFFFF')) ) {
384
- alt6=2;
896
+ else if ( ((LA11_0 >= '\u0000' && LA11_0 <= '&')||(LA11_0 >= '(' && LA11_0 <= '[')||(LA11_0 >= ']' && LA11_0 <= '\uFFFF')) ) {
897
+ alt11=2;
385
898
  }
386
899
 
387
900
 
388
- switch (alt6) {
901
+ switch (alt11) {
389
902
  case 1 :
390
- // antlr/UIQuery.g:46:15: ESC_SEQ
903
+ // antlr/UIQuery.g:89:15: ESC_SEQ
391
904
  {
392
905
  mESC_SEQ();
393
906
 
@@ -395,9 +908,9 @@ public class UIQueryLexer extends Lexer {
395
908
  }
396
909
  break;
397
910
  case 2 :
398
- // antlr/UIQuery.g:46:25: ~ ( '\\\\' | '\"' )
911
+ // antlr/UIQuery.g:89:25: ~ ( '\\\\' | '\\'' )
399
912
  {
400
- if ( (input.LA(1) >= '\u0000' && input.LA(1) <= '!')||(input.LA(1) >= '#' && input.LA(1) <= '[')||(input.LA(1) >= ']' && input.LA(1) <= '\uFFFF') ) {
913
+ if ( (input.LA(1) >= '\u0000' && input.LA(1) <= '&')||(input.LA(1) >= '(' && input.LA(1) <= '[')||(input.LA(1) >= ']' && input.LA(1) <= '\uFFFF') ) {
401
914
  input.consume();
402
915
  }
403
916
  else {
@@ -411,7 +924,7 @@ public class UIQueryLexer extends Lexer {
411
924
  break;
412
925
 
413
926
  default :
414
- break loop6;
927
+ break loop11;
415
928
  }
416
929
  } while (true);
417
930
 
@@ -434,23 +947,24 @@ public class UIQueryLexer extends Lexer {
434
947
  try {
435
948
  int _type = WHITE;
436
949
  int _channel = DEFAULT_TOKEN_CHANNEL;
437
- // antlr/UIQuery.g:49:9: ( ( ' ' )* )
438
- // antlr/UIQuery.g:49:11: ( ' ' )*
950
+ // antlr/UIQuery.g:92:9: ( ( ' ' )+ )
951
+ // antlr/UIQuery.g:92:11: ( ' ' )+
439
952
  {
440
- // antlr/UIQuery.g:49:11: ( ' ' )*
441
- loop7:
953
+ // antlr/UIQuery.g:92:11: ( ' ' )+
954
+ int cnt12=0;
955
+ loop12:
442
956
  do {
443
- int alt7=2;
444
- int LA7_0 = input.LA(1);
957
+ int alt12=2;
958
+ int LA12_0 = input.LA(1);
445
959
 
446
- if ( (LA7_0==' ') ) {
447
- alt7=1;
960
+ if ( (LA12_0==' ') ) {
961
+ alt12=1;
448
962
  }
449
963
 
450
964
 
451
- switch (alt7) {
965
+ switch (alt12) {
452
966
  case 1 :
453
- // antlr/UIQuery.g:49:11: ' '
967
+ // antlr/UIQuery.g:92:11: ' '
454
968
  {
455
969
  match(' ');
456
970
 
@@ -458,8 +972,12 @@ public class UIQueryLexer extends Lexer {
458
972
  break;
459
973
 
460
974
  default :
461
- break loop7;
975
+ if ( cnt12 >= 1 ) break loop12;
976
+ EarlyExitException eee =
977
+ new EarlyExitException(12, input);
978
+ throw eee;
462
979
  }
980
+ cnt12++;
463
981
  } while (true);
464
982
 
465
983
 
@@ -477,7 +995,7 @@ public class UIQueryLexer extends Lexer {
477
995
  // $ANTLR start "HEX_DIGIT"
478
996
  public final void mHEX_DIGIT() throws RecognitionException {
479
997
  try {
480
- // antlr/UIQuery.g:52:11: ( ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' ) )
998
+ // antlr/UIQuery.g:95:11: ( ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' ) )
481
999
  // antlr/UIQuery.g:
482
1000
  {
483
1001
  if ( (input.LA(1) >= '0' && input.LA(1) <= '9')||(input.LA(1) >= 'A' && input.LA(1) <= 'F')||(input.LA(1) >= 'a' && input.LA(1) <= 'f') ) {
@@ -503,13 +1021,12 @@ public class UIQueryLexer extends Lexer {
503
1021
  // $ANTLR start "ESC_SEQ"
504
1022
  public final void mESC_SEQ() throws RecognitionException {
505
1023
  try {
506
- // antlr/UIQuery.g:56:5: ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | '\\\"' | '\\'' | '\\\\' ) | UNICODE_ESC | OCTAL_ESC )
507
- int alt8=3;
508
- int LA8_0 = input.LA(1);
1024
+ // antlr/UIQuery.g:99:5: ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | '\\'' | '\\\\' ) | UNICODE_ESC | OCTAL_ESC )
1025
+ int alt13=3;
1026
+ int LA13_0 = input.LA(1);
509
1027
 
510
- if ( (LA8_0=='\\') ) {
1028
+ if ( (LA13_0=='\\') ) {
511
1029
  switch ( input.LA(2) ) {
512
- case '\"':
513
1030
  case '\'':
514
1031
  case '\\':
515
1032
  case 'b':
@@ -518,12 +1035,12 @@ public class UIQueryLexer extends Lexer {
518
1035
  case 'r':
519
1036
  case 't':
520
1037
  {
521
- alt8=1;
1038
+ alt13=1;
522
1039
  }
523
1040
  break;
524
1041
  case 'u':
525
1042
  {
526
- alt8=2;
1043
+ alt13=2;
527
1044
  }
528
1045
  break;
529
1046
  case '0':
@@ -535,12 +1052,12 @@ public class UIQueryLexer extends Lexer {
535
1052
  case '6':
536
1053
  case '7':
537
1054
  {
538
- alt8=3;
1055
+ alt13=3;
539
1056
  }
540
1057
  break;
541
1058
  default:
542
1059
  NoViableAltException nvae =
543
- new NoViableAltException("", 8, 1, input);
1060
+ new NoViableAltException("", 13, 1, input);
544
1061
 
545
1062
  throw nvae;
546
1063
 
@@ -549,18 +1066,18 @@ public class UIQueryLexer extends Lexer {
549
1066
  }
550
1067
  else {
551
1068
  NoViableAltException nvae =
552
- new NoViableAltException("", 8, 0, input);
1069
+ new NoViableAltException("", 13, 0, input);
553
1070
 
554
1071
  throw nvae;
555
1072
 
556
1073
  }
557
- switch (alt8) {
1074
+ switch (alt13) {
558
1075
  case 1 :
559
- // antlr/UIQuery.g:56:9: '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | '\\\"' | '\\'' | '\\\\' )
1076
+ // antlr/UIQuery.g:99:9: '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | '\\'' | '\\\\' )
560
1077
  {
561
1078
  match('\\');
562
1079
 
563
- if ( input.LA(1)=='\"'||input.LA(1)=='\''||input.LA(1)=='\\'||input.LA(1)=='b'||input.LA(1)=='f'||input.LA(1)=='n'||input.LA(1)=='r'||input.LA(1)=='t' ) {
1080
+ if ( input.LA(1)=='\''||input.LA(1)=='\\'||input.LA(1)=='b'||input.LA(1)=='f'||input.LA(1)=='n'||input.LA(1)=='r'||input.LA(1)=='t' ) {
564
1081
  input.consume();
565
1082
  }
566
1083
  else {
@@ -573,7 +1090,7 @@ public class UIQueryLexer extends Lexer {
573
1090
  }
574
1091
  break;
575
1092
  case 2 :
576
- // antlr/UIQuery.g:57:9: UNICODE_ESC
1093
+ // antlr/UIQuery.g:100:9: UNICODE_ESC
577
1094
  {
578
1095
  mUNICODE_ESC();
579
1096
 
@@ -581,7 +1098,7 @@ public class UIQueryLexer extends Lexer {
581
1098
  }
582
1099
  break;
583
1100
  case 3 :
584
- // antlr/UIQuery.g:58:9: OCTAL_ESC
1101
+ // antlr/UIQuery.g:101:9: OCTAL_ESC
585
1102
  {
586
1103
  mOCTAL_ESC();
587
1104
 
@@ -601,43 +1118,43 @@ public class UIQueryLexer extends Lexer {
601
1118
  // $ANTLR start "OCTAL_ESC"
602
1119
  public final void mOCTAL_ESC() throws RecognitionException {
603
1120
  try {
604
- // antlr/UIQuery.g:63:5: ( '\\\\' ( '0' .. '3' ) ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) )
605
- int alt9=3;
606
- int LA9_0 = input.LA(1);
1121
+ // antlr/UIQuery.g:106:5: ( '\\\\' ( '0' .. '3' ) ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) )
1122
+ int alt14=3;
1123
+ int LA14_0 = input.LA(1);
607
1124
 
608
- if ( (LA9_0=='\\') ) {
609
- int LA9_1 = input.LA(2);
1125
+ if ( (LA14_0=='\\') ) {
1126
+ int LA14_1 = input.LA(2);
610
1127
 
611
- if ( ((LA9_1 >= '0' && LA9_1 <= '3')) ) {
612
- int LA9_2 = input.LA(3);
1128
+ if ( ((LA14_1 >= '0' && LA14_1 <= '3')) ) {
1129
+ int LA14_2 = input.LA(3);
613
1130
 
614
- if ( ((LA9_2 >= '0' && LA9_2 <= '7')) ) {
615
- int LA9_4 = input.LA(4);
1131
+ if ( ((LA14_2 >= '0' && LA14_2 <= '7')) ) {
1132
+ int LA14_4 = input.LA(4);
616
1133
 
617
- if ( ((LA9_4 >= '0' && LA9_4 <= '7')) ) {
618
- alt9=1;
1134
+ if ( ((LA14_4 >= '0' && LA14_4 <= '7')) ) {
1135
+ alt14=1;
619
1136
  }
620
1137
  else {
621
- alt9=2;
1138
+ alt14=2;
622
1139
  }
623
1140
  }
624
1141
  else {
625
- alt9=3;
1142
+ alt14=3;
626
1143
  }
627
1144
  }
628
- else if ( ((LA9_1 >= '4' && LA9_1 <= '7')) ) {
629
- int LA9_3 = input.LA(3);
1145
+ else if ( ((LA14_1 >= '4' && LA14_1 <= '7')) ) {
1146
+ int LA14_3 = input.LA(3);
630
1147
 
631
- if ( ((LA9_3 >= '0' && LA9_3 <= '7')) ) {
632
- alt9=2;
1148
+ if ( ((LA14_3 >= '0' && LA14_3 <= '7')) ) {
1149
+ alt14=2;
633
1150
  }
634
1151
  else {
635
- alt9=3;
1152
+ alt14=3;
636
1153
  }
637
1154
  }
638
1155
  else {
639
1156
  NoViableAltException nvae =
640
- new NoViableAltException("", 9, 1, input);
1157
+ new NoViableAltException("", 14, 1, input);
641
1158
 
642
1159
  throw nvae;
643
1160
 
@@ -645,14 +1162,14 @@ public class UIQueryLexer extends Lexer {
645
1162
  }
646
1163
  else {
647
1164
  NoViableAltException nvae =
648
- new NoViableAltException("", 9, 0, input);
1165
+ new NoViableAltException("", 14, 0, input);
649
1166
 
650
1167
  throw nvae;
651
1168
 
652
1169
  }
653
- switch (alt9) {
1170
+ switch (alt14) {
654
1171
  case 1 :
655
- // antlr/UIQuery.g:63:9: '\\\\' ( '0' .. '3' ) ( '0' .. '7' ) ( '0' .. '7' )
1172
+ // antlr/UIQuery.g:106:9: '\\\\' ( '0' .. '3' ) ( '0' .. '7' ) ( '0' .. '7' )
656
1173
  {
657
1174
  match('\\');
658
1175
 
@@ -689,7 +1206,7 @@ public class UIQueryLexer extends Lexer {
689
1206
  }
690
1207
  break;
691
1208
  case 2 :
692
- // antlr/UIQuery.g:64:9: '\\\\' ( '0' .. '7' ) ( '0' .. '7' )
1209
+ // antlr/UIQuery.g:107:9: '\\\\' ( '0' .. '7' ) ( '0' .. '7' )
693
1210
  {
694
1211
  match('\\');
695
1212
 
@@ -716,7 +1233,7 @@ public class UIQueryLexer extends Lexer {
716
1233
  }
717
1234
  break;
718
1235
  case 3 :
719
- // antlr/UIQuery.g:65:9: '\\\\' ( '0' .. '7' )
1236
+ // antlr/UIQuery.g:108:9: '\\\\' ( '0' .. '7' )
720
1237
  {
721
1238
  match('\\');
722
1239
 
@@ -745,8 +1262,8 @@ public class UIQueryLexer extends Lexer {
745
1262
  // $ANTLR start "UNICODE_ESC"
746
1263
  public final void mUNICODE_ESC() throws RecognitionException {
747
1264
  try {
748
- // antlr/UIQuery.g:70:5: ( '\\\\' 'u' HEX_DIGIT HEX_DIGIT HEX_DIGIT HEX_DIGIT )
749
- // antlr/UIQuery.g:70:9: '\\\\' 'u' HEX_DIGIT HEX_DIGIT HEX_DIGIT HEX_DIGIT
1265
+ // antlr/UIQuery.g:113:5: ( '\\\\' 'u' HEX_DIGIT HEX_DIGIT HEX_DIGIT HEX_DIGIT )
1266
+ // antlr/UIQuery.g:113:9: '\\\\' 'u' HEX_DIGIT HEX_DIGIT HEX_DIGIT HEX_DIGIT
750
1267
  {
751
1268
  match('\\');
752
1269
 
@@ -775,68 +1292,124 @@ public class UIQueryLexer extends Lexer {
775
1292
  // $ANTLR end "UNICODE_ESC"
776
1293
 
777
1294
  public void mTokens() throws RecognitionException {
778
- // antlr/UIQuery.g:1:8: ( QUALIFIED_NAME | FILTER_COLON | INT | BOOL | NIL | NAME | STRING | WHITE )
779
- int alt10=8;
780
- alt10 = dfa10.predict(input);
781
- switch (alt10) {
1295
+ // antlr/UIQuery.g:1:8: ( DIRECTION | WILDCARD | QUALIFIED_NAME | ALL | VISIBLE | FILTER_COLON | BEGINPRED | ENDPRED | RELATION | INT | BOOL | NIL | NAME | STRING | WHITE )
1296
+ int alt15=15;
1297
+ alt15 = dfa15.predict(input);
1298
+ switch (alt15) {
782
1299
  case 1 :
783
- // antlr/UIQuery.g:1:10: QUALIFIED_NAME
1300
+ // antlr/UIQuery.g:1:10: DIRECTION
784
1301
  {
785
- mQUALIFIED_NAME();
1302
+ mDIRECTION();
786
1303
 
787
1304
 
788
1305
  }
789
1306
  break;
790
1307
  case 2 :
791
- // antlr/UIQuery.g:1:25: FILTER_COLON
1308
+ // antlr/UIQuery.g:1:20: WILDCARD
792
1309
  {
793
- mFILTER_COLON();
1310
+ mWILDCARD();
794
1311
 
795
1312
 
796
1313
  }
797
1314
  break;
798
1315
  case 3 :
799
- // antlr/UIQuery.g:1:38: INT
1316
+ // antlr/UIQuery.g:1:29: QUALIFIED_NAME
800
1317
  {
801
- mINT();
1318
+ mQUALIFIED_NAME();
802
1319
 
803
1320
 
804
1321
  }
805
1322
  break;
806
1323
  case 4 :
807
- // antlr/UIQuery.g:1:42: BOOL
1324
+ // antlr/UIQuery.g:1:44: ALL
808
1325
  {
809
- mBOOL();
1326
+ mALL();
810
1327
 
811
1328
 
812
1329
  }
813
1330
  break;
814
1331
  case 5 :
815
- // antlr/UIQuery.g:1:47: NIL
1332
+ // antlr/UIQuery.g:1:48: VISIBLE
816
1333
  {
817
- mNIL();
1334
+ mVISIBLE();
818
1335
 
819
1336
 
820
1337
  }
821
1338
  break;
822
1339
  case 6 :
823
- // antlr/UIQuery.g:1:51: NAME
1340
+ // antlr/UIQuery.g:1:56: FILTER_COLON
824
1341
  {
825
- mNAME();
1342
+ mFILTER_COLON();
826
1343
 
827
1344
 
828
1345
  }
829
1346
  break;
830
1347
  case 7 :
831
- // antlr/UIQuery.g:1:56: STRING
1348
+ // antlr/UIQuery.g:1:69: BEGINPRED
832
1349
  {
833
- mSTRING();
1350
+ mBEGINPRED();
834
1351
 
835
1352
 
836
1353
  }
837
1354
  break;
838
1355
  case 8 :
839
- // antlr/UIQuery.g:1:63: WHITE
1356
+ // antlr/UIQuery.g:1:79: ENDPRED
1357
+ {
1358
+ mENDPRED();
1359
+
1360
+
1361
+ }
1362
+ break;
1363
+ case 9 :
1364
+ // antlr/UIQuery.g:1:87: RELATION
1365
+ {
1366
+ mRELATION();
1367
+
1368
+
1369
+ }
1370
+ break;
1371
+ case 10 :
1372
+ // antlr/UIQuery.g:1:96: INT
1373
+ {
1374
+ mINT();
1375
+
1376
+
1377
+ }
1378
+ break;
1379
+ case 11 :
1380
+ // antlr/UIQuery.g:1:100: BOOL
1381
+ {
1382
+ mBOOL();
1383
+
1384
+
1385
+ }
1386
+ break;
1387
+ case 12 :
1388
+ // antlr/UIQuery.g:1:105: NIL
1389
+ {
1390
+ mNIL();
1391
+
1392
+
1393
+ }
1394
+ break;
1395
+ case 13 :
1396
+ // antlr/UIQuery.g:1:109: NAME
1397
+ {
1398
+ mNAME();
1399
+
1400
+
1401
+ }
1402
+ break;
1403
+ case 14 :
1404
+ // antlr/UIQuery.g:1:114: STRING
1405
+ {
1406
+ mSTRING();
1407
+
1408
+
1409
+ }
1410
+ break;
1411
+ case 15 :
1412
+ // antlr/UIQuery.g:1:121: WHITE
840
1413
  {
841
1414
  mWHITE();
842
1415
 
@@ -849,95 +1422,290 @@ public class UIQueryLexer extends Lexer {
849
1422
  }
850
1423
 
851
1424
 
852
- protected DFA10 dfa10 = new DFA10(this);
853
- static final String DFA10_eotS =
854
- "\1\10\1\13\2\uffff\3\13\2\uffff\2\13\2\uffff\5\13\1\26\1\13\1\30"+
855
- "\1\13\1\uffff\1\26\1\uffff\1\30";
856
- static final String DFA10_eofS =
857
- "\32\uffff";
858
- static final String DFA10_minS =
859
- "\1\47\1\56\2\uffff\3\56\2\uffff\2\56\2\uffff\11\56\1\uffff\1\56"+
860
- "\1\uffff\1\56";
861
- static final String DFA10_maxS =
862
- "\2\172\2\uffff\3\172\2\uffff\2\172\2\uffff\11\172\1\uffff\1\172"+
863
- "\1\uffff\1\172";
864
- static final String DFA10_acceptS =
865
- "\2\uffff\1\2\1\3\3\uffff\1\7\1\10\2\uffff\1\6\1\1\11\uffff\1\5\1"+
866
- "\uffff\1\4\1\uffff";
867
- static final String DFA10_specialS =
868
- "\32\uffff}>";
869
- static final String[] DFA10_transitionS = {
870
- "\1\7\10\uffff\12\3\1\2\6\uffff\32\6\4\uffff\1\6\1\uffff\5\6"+
871
- "\1\4\7\6\1\5\5\6\1\1\6\6",
872
- "\1\14\1\uffff\12\12\7\uffff\32\12\4\uffff\1\12\1\uffff\21\12"+
873
- "\1\11\10\12",
1425
+ protected DFA15 dfa15 = new DFA15(this);
1426
+ static final String DFA15_eotS =
1427
+ "\1\14\4\34\1\uffff\3\34\4\uffff\7\34\1\uffff\3\34\2\uffff\2\34\2"+
1428
+ "\uffff\26\34\1\106\12\34\1\121\6\34\1\uffff\4\34\1\14\2\34\1\14"+
1429
+ "\1\136\1\34\1\uffff\1\121\1\34\1\141\11\34\1\uffff\1\136\1\34\1"+
1430
+ "\uffff\1\34\1\141\11\34\1\141\1\166\6\34\1\14\1\uffff\1\34\2\14"+
1431
+ "\1\34\1\14\3\34\1\141\2\14";
1432
+ static final String DFA15_eofS =
1433
+ "\u0082\uffff";
1434
+ static final String DFA15_minS =
1435
+ "\1\40\4\56\1\uffff\3\56\4\uffff\7\56\1\uffff\3\56\2\uffff\2\56\2"+
1436
+ "\uffff\50\56\1\uffff\12\56\1\uffff\14\56\1\uffff\2\56\1\uffff\24"+
1437
+ "\56\1\uffff\13\56";
1438
+ static final String DFA15_maxS =
1439
+ "\1\175\4\172\1\uffff\3\172\4\uffff\7\172\1\uffff\3\172\2\uffff\2"+
1440
+ "\172\2\uffff\50\172\1\uffff\12\172\1\uffff\14\172\1\uffff\2\172"+
1441
+ "\1\uffff\24\172\1\uffff\13\172";
1442
+ static final String DFA15_acceptS =
1443
+ "\5\uffff\1\2\3\uffff\1\6\1\7\1\10\1\11\7\uffff\1\12\3\uffff\1\16"+
1444
+ "\1\17\2\uffff\1\15\1\3\50\uffff\1\4\12\uffff\1\14\14\uffff\1\13"+
1445
+ "\2\uffff\1\1\24\uffff\1\5\13\uffff";
1446
+ static final String DFA15_specialS =
1447
+ "\u0082\uffff}>";
1448
+ static final String[] DFA15_transitionS = {
1449
+ "\1\31\6\uffff\1\30\2\uffff\1\5\5\uffff\12\24\1\11\6\uffff\1"+
1450
+ "\27\1\10\1\16\1\27\1\15\6\27\1\17\16\27\4\uffff\1\27\1\uffff"+
1451
+ "\1\6\1\20\1\2\1\1\1\21\1\25\5\27\1\22\1\27\1\26\1\27\1\3\2\27"+
1452
+ "\1\4\1\23\1\27\1\7\4\27\1\12\1\uffff\1\13",
1453
+ "\1\35\1\uffff\12\33\7\uffff\32\33\4\uffff\1\33\1\uffff\4\33"+
1454
+ "\1\32\25\33",
1455
+ "\1\35\1\uffff\12\33\7\uffff\32\33\4\uffff\1\33\1\uffff\7\33"+
1456
+ "\1\36\6\33\1\37\13\33",
1457
+ "\1\35\1\uffff\12\33\7\uffff\32\33\4\uffff\1\33\1\uffff\1\40"+
1458
+ "\31\33",
1459
+ "\1\35\1\uffff\12\33\7\uffff\32\33\4\uffff\1\33\1\uffff\10\33"+
1460
+ "\1\41\21\33",
1461
+ "",
1462
+ "\1\35\1\uffff\12\33\7\uffff\32\33\4\uffff\1\33\1\uffff\13\33"+
1463
+ "\1\42\16\33",
1464
+ "\1\35\1\uffff\12\33\7\uffff\32\33\4\uffff\1\33\1\uffff\10\33"+
1465
+ "\1\43\21\33",
1466
+ "\1\35\1\uffff\12\33\7\uffff\4\33\1\44\25\33\4\uffff\1\33\1"+
1467
+ "\uffff\32\33",
1468
+ "",
1469
+ "",
1470
+ "",
1471
+ "",
1472
+ "\1\35\1\uffff\12\33\7\uffff\15\33\1\45\14\33\4\uffff\1\33\1"+
1473
+ "\uffff\32\33",
1474
+ "\1\35\1\uffff\12\33\7\uffff\16\33\1\46\13\33\4\uffff\1\33\1"+
1475
+ "\uffff\32\33",
1476
+ "\1\35\1\uffff\12\33\7\uffff\10\33\1\47\21\33\4\uffff\1\33\1"+
1477
+ "\uffff\32\33",
1478
+ "\1\35\1\uffff\12\33\7\uffff\32\33\4\uffff\1\33\1\uffff\4\33"+
1479
+ "\1\50\25\33",
1480
+ "\1\35\1\uffff\12\33\7\uffff\32\33\4\uffff\1\33\1\uffff\15\33"+
1481
+ "\1\51\14\33",
1482
+ "\1\35\1\uffff\12\33\7\uffff\32\33\4\uffff\1\33\1\uffff\10\33"+
1483
+ "\1\52\21\33",
1484
+ "\1\35\1\uffff\12\33\7\uffff\32\33\4\uffff\1\33\1\uffff\21\33"+
1485
+ "\1\53\10\33",
1486
+ "",
1487
+ "\1\35\1\uffff\12\33\7\uffff\32\33\4\uffff\1\33\1\uffff\1\54"+
1488
+ "\31\33",
1489
+ "\1\35\1\uffff\12\33\7\uffff\32\33\4\uffff\1\33\1\uffff\10\33"+
1490
+ "\1\55\13\33\1\56\5\33",
1491
+ "\1\35\1\uffff\12\33\7\uffff\32\33\4\uffff\1\33\1\uffff\32\33",
1492
+ "",
874
1493
  "",
1494
+ "\1\35\1\uffff\12\33\7\uffff\32\33\4\uffff\1\33\1\uffff\22\33"+
1495
+ "\1\57\7\33",
1496
+ "\1\35\1\uffff\12\33\7\uffff\32\33\4\uffff\1\33\1\uffff\32\33",
875
1497
  "",
876
- "\1\14\1\uffff\12\12\7\uffff\32\12\4\uffff\1\12\1\uffff\1\15"+
877
- "\31\12",
878
- "\1\14\1\uffff\12\12\7\uffff\32\12\4\uffff\1\12\1\uffff\10\12"+
879
- "\1\16\13\12\1\17\5\12",
880
- "\1\14\1\uffff\12\12\7\uffff\32\12\4\uffff\1\12\1\uffff\32\12",
881
1498
  "",
1499
+ "\1\35\1\uffff\12\33\7\uffff\32\33\4\uffff\1\33\1\uffff\10\33"+
1500
+ "\1\60\21\33",
1501
+ "\1\35\1\uffff\12\33\7\uffff\32\33\4\uffff\1\33\1\uffff\15\33"+
1502
+ "\1\61\14\33",
1503
+ "\1\35\1\uffff\12\33\7\uffff\32\33\4\uffff\1\33\1\uffff\21\33"+
1504
+ "\1\62\10\33",
1505
+ "\1\35\1\uffff\12\33\7\uffff\32\33\4\uffff\1\33\1\uffff\1\33"+
1506
+ "\1\63\30\33",
1507
+ "\1\35\1\uffff\12\33\7\uffff\32\33\4\uffff\1\33\1\uffff\13\33"+
1508
+ "\1\64\16\33",
1509
+ "\1\35\1\uffff\12\33\7\uffff\32\33\4\uffff\1\33\1\uffff\22\33"+
1510
+ "\1\65\7\33",
1511
+ "\1\35\1\uffff\12\33\7\uffff\6\33\1\66\23\33\4\uffff\1\33\1"+
1512
+ "\uffff\32\33",
1513
+ "\1\35\1\uffff\12\33\7\uffff\3\33\1\67\26\33\4\uffff\1\33\1"+
1514
+ "\uffff\32\33",
1515
+ "\1\35\1\uffff\12\33\7\uffff\15\33\1\70\14\33\4\uffff\1\33\1"+
1516
+ "\uffff\32\33",
1517
+ "\1\35\1\uffff\12\33\7\uffff\12\33\1\71\17\33\4\uffff\1\33\1"+
1518
+ "\uffff\32\33",
1519
+ "\1\35\1\uffff\12\33\7\uffff\32\33\4\uffff\1\33\1\uffff\6\33"+
1520
+ "\1\72\23\33",
1521
+ "\1\35\1\uffff\12\33\7\uffff\32\33\4\uffff\1\33\1\uffff\3\33"+
1522
+ "\1\73\26\33",
1523
+ "\1\35\1\uffff\12\33\7\uffff\32\33\4\uffff\1\33\1\uffff\12\33"+
1524
+ "\1\74\17\33",
1525
+ "\1\35\1\uffff\12\33\7\uffff\32\33\4\uffff\1\33\1\uffff\24\33"+
1526
+ "\1\75\5\33",
1527
+ "\1\35\1\uffff\12\33\7\uffff\32\33\4\uffff\1\33\1\uffff\13\33"+
1528
+ "\1\76\16\33",
1529
+ "\1\35\1\uffff\12\33\7\uffff\32\33\4\uffff\1\33\1\uffff\13\33"+
1530
+ "\1\77\16\33",
1531
+ "\1\35\1\uffff\12\33\7\uffff\32\33\4\uffff\1\33\1\uffff\13\33"+
1532
+ "\1\100\16\33",
1533
+ "\1\35\1\uffff\12\33\7\uffff\32\33\4\uffff\1\33\1\uffff\2\33"+
1534
+ "\1\101\27\33",
1535
+ "\1\35\1\uffff\12\33\7\uffff\32\33\4\uffff\1\33\1\uffff\13\33"+
1536
+ "\1\102\16\33",
1537
+ "\1\35\1\uffff\12\33\7\uffff\32\33\4\uffff\1\33\1\uffff\23\33"+
1538
+ "\1\103\6\33",
1539
+ "\1\35\1\uffff\12\33\7\uffff\32\33\4\uffff\1\33\1\uffff\4\33"+
1540
+ "\1\104\25\33",
1541
+ "\1\35\1\uffff\12\33\7\uffff\32\33\4\uffff\1\33\1\uffff\13\33"+
1542
+ "\1\105\16\33",
1543
+ "\1\35\1\uffff\12\33\7\uffff\32\33\4\uffff\1\33\1\uffff\32\33",
1544
+ "\1\35\1\uffff\12\33\7\uffff\32\33\4\uffff\1\33\1\uffff\10\33"+
1545
+ "\1\107\21\33",
1546
+ "\1\35\1\uffff\12\33\7\uffff\10\33\1\110\21\33\4\uffff\1\33"+
1547
+ "\1\uffff\32\33",
1548
+ "\1\35\1\uffff\12\33\7\uffff\22\33\1\111\7\33\4\uffff\1\33\1"+
1549
+ "\uffff\32\33",
1550
+ "\1\35\1\uffff\12\33\7\uffff\23\33\1\112\6\33\4\uffff\1\33\1"+
1551
+ "\uffff\32\33",
1552
+ "\1\35\1\uffff\12\33\7\uffff\4\33\1\113\25\33\4\uffff\1\33\1"+
1553
+ "\uffff\32\33",
1554
+ "\1\35\1\uffff\12\33\7\uffff\32\33\4\uffff\1\33\1\uffff\10\33"+
1555
+ "\1\114\21\33",
1556
+ "\1\35\1\uffff\12\33\7\uffff\32\33\4\uffff\1\33\1\uffff\22\33"+
1557
+ "\1\115\7\33",
1558
+ "\1\35\1\uffff\12\33\7\uffff\32\33\4\uffff\1\33\1\uffff\4\33"+
1559
+ "\1\116\25\33",
1560
+ "\1\35\1\uffff\12\33\7\uffff\32\33\4\uffff\1\33\1\uffff\4\33"+
1561
+ "\1\117\25\33",
1562
+ "\1\35\1\uffff\12\33\7\uffff\32\33\4\uffff\1\33\1\uffff\22\33"+
1563
+ "\1\120\7\33",
1564
+ "\1\35\1\uffff\12\33\7\uffff\32\33\4\uffff\1\33\1\uffff\32\33",
1565
+ "\1\35\1\uffff\12\33\7\uffff\32\33\4\uffff\1\33\1\uffff\13\33"+
1566
+ "\1\122\16\33",
1567
+ "\1\35\1\uffff\12\33\7\uffff\32\33\4\uffff\1\33\1\uffff\4\33"+
1568
+ "\1\123\25\33",
1569
+ "\1\35\1\uffff\12\33\7\uffff\32\33\4\uffff\1\33\1\uffff\3\33"+
1570
+ "\1\124\26\33",
1571
+ "\1\35\1\uffff\12\33\7\uffff\32\33\4\uffff\1\33\1\uffff\1\125"+
1572
+ "\31\33",
1573
+ "\1\35\1\uffff\12\33\7\uffff\32\33\4\uffff\1\33\1\uffff\15\33"+
1574
+ "\1\126\14\33",
1575
+ "\1\35\1\uffff\12\33\7\uffff\32\33\4\uffff\1\33\1\uffff\10\33"+
1576
+ "\1\127\21\33",
882
1577
  "",
883
- "\1\14\1\uffff\12\12\7\uffff\32\12\4\uffff\1\12\1\uffff\24\12"+
884
- "\1\20\5\12",
885
- "\1\14\1\uffff\12\12\7\uffff\32\12\4\uffff\1\12\1\uffff\32\12",
1578
+ "\1\35\1\uffff\12\33\7\uffff\32\33\4\uffff\1\33\1\uffff\1\33"+
1579
+ "\1\130\30\33",
1580
+ "\1\35\1\uffff\12\33\7\uffff\15\33\1\131\14\33\4\uffff\1\33"+
1581
+ "\1\uffff\32\33",
1582
+ "\1\35\1\uffff\12\33\7\uffff\26\33\1\132\3\33\4\uffff\1\33\1"+
1583
+ "\uffff\32\33",
1584
+ "\1\35\1\uffff\12\33\7\uffff\1\133\31\33\4\uffff\1\33\1\uffff"+
1585
+ "\32\33",
1586
+ "\1\35\1\uffff\12\33\7\uffff\32\33\4\uffff\1\33\1\uffff\32\33",
1587
+ "\1\35\1\uffff\12\33\7\uffff\32\33\4\uffff\1\33\1\uffff\15\33"+
1588
+ "\1\134\14\33",
1589
+ "\1\35\1\uffff\12\33\7\uffff\32\33\4\uffff\1\33\1\uffff\26\33"+
1590
+ "\1\135\3\33",
1591
+ "\1\35\1\uffff\12\33\7\uffff\32\33\4\uffff\1\33\1\uffff\32\33",
1592
+ "\1\35\1\uffff\12\33\7\uffff\32\33\4\uffff\1\33\1\uffff\32\33",
1593
+ "\1\35\1\uffff\12\33\7\uffff\32\33\4\uffff\1\33\1\uffff\4\33"+
1594
+ "\1\137\25\33",
886
1595
  "",
1596
+ "\1\35\1\uffff\12\33\7\uffff\32\33\4\uffff\1\33\1\uffff\32\33",
1597
+ "\1\35\1\uffff\12\33\7\uffff\32\33\4\uffff\1\33\1\uffff\15\33"+
1598
+ "\1\140\14\33",
1599
+ "\1\35\1\uffff\12\33\7\uffff\32\33\4\uffff\1\33\1\uffff\32\33",
1600
+ "\1\35\1\uffff\12\33\7\uffff\32\33\4\uffff\1\33\1\uffff\10\33"+
1601
+ "\1\142\21\33",
1602
+ "\1\35\1\uffff\12\33\7\uffff\32\33\4\uffff\1\33\1\uffff\23\33"+
1603
+ "\1\143\6\33",
1604
+ "\1\35\1\uffff\12\33\7\uffff\32\33\4\uffff\1\33\1\uffff\15\33"+
1605
+ "\1\144\14\33",
1606
+ "\1\35\1\uffff\12\33\7\uffff\32\33\4\uffff\1\33\1\uffff\13\33"+
1607
+ "\1\145\16\33",
1608
+ "\1\35\1\uffff\12\33\7\uffff\22\33\1\146\7\33\4\uffff\1\33\1"+
1609
+ "\uffff\32\33",
1610
+ "\1\35\1\uffff\12\33\7\uffff\10\33\1\147\21\33\4\uffff\1\33"+
1611
+ "\1\uffff\32\33",
1612
+ "\1\35\1\uffff\12\33\7\uffff\10\33\1\150\21\33\4\uffff\1\33"+
1613
+ "\1\uffff\32\33",
1614
+ "\1\35\1\uffff\12\33\7\uffff\32\33\4\uffff\1\33\1\uffff\22\33"+
1615
+ "\1\151\7\33",
1616
+ "\1\35\1\uffff\12\33\7\uffff\32\33\4\uffff\1\33\1\uffff\10\33"+
1617
+ "\1\152\21\33",
887
1618
  "",
888
- "\1\14\1\uffff\12\12\7\uffff\32\12\4\uffff\1\12\1\uffff\13\12"+
889
- "\1\21\16\12",
890
- "\1\14\1\uffff\12\12\7\uffff\32\12\4\uffff\1\12\1\uffff\13\12"+
891
- "\1\22\16\12",
892
- "\1\14\1\uffff\12\12\7\uffff\32\12\4\uffff\1\12\1\uffff\13\12"+
893
- "\1\23\16\12",
894
- "\1\14\1\uffff\12\12\7\uffff\32\12\4\uffff\1\12\1\uffff\4\12"+
895
- "\1\24\25\12",
896
- "\1\14\1\uffff\12\12\7\uffff\32\12\4\uffff\1\12\1\uffff\22\12"+
897
- "\1\25\7\12",
898
- "\1\14\1\uffff\12\12\7\uffff\32\12\4\uffff\1\12\1\uffff\32\12",
899
- "\1\14\1\uffff\12\12\7\uffff\32\12\4\uffff\1\12\1\uffff\13\12"+
900
- "\1\27\16\12",
901
- "\1\14\1\uffff\12\12\7\uffff\32\12\4\uffff\1\12\1\uffff\32\12",
902
- "\1\14\1\uffff\12\12\7\uffff\32\12\4\uffff\1\12\1\uffff\4\12"+
903
- "\1\31\25\12",
1619
+ "\1\35\1\uffff\12\33\7\uffff\32\33\4\uffff\1\33\1\uffff\32\33",
1620
+ "\1\35\1\uffff\12\33\7\uffff\32\33\4\uffff\1\33\1\uffff\3\33"+
1621
+ "\1\153\26\33",
904
1622
  "",
905
- "\1\14\1\uffff\12\12\7\uffff\32\12\4\uffff\1\12\1\uffff\32\12",
1623
+ "\1\35\1\uffff\12\33\7\uffff\32\33\4\uffff\1\33\1\uffff\15\33"+
1624
+ "\1\154\14\33",
1625
+ "\1\35\1\uffff\12\33\7\uffff\32\33\4\uffff\1\33\1\uffff\32\33",
1626
+ "\1\35\1\uffff\12\33\7\uffff\32\33\4\uffff\1\33\1\uffff\6\33"+
1627
+ "\1\155\23\33",
1628
+ "\1\35\1\uffff\12\33\7\uffff\32\33\4\uffff\1\33\1\uffff\4\33"+
1629
+ "\1\156\25\33",
1630
+ "\1\35\1\uffff\12\33\7\uffff\26\33\1\157\3\33\4\uffff\1\33\1"+
1631
+ "\uffff\32\33",
1632
+ "\1\35\1\uffff\12\33\7\uffff\23\33\1\160\6\33\4\uffff\1\33\1"+
1633
+ "\uffff\32\33",
1634
+ "\1\35\1\uffff\12\33\7\uffff\15\33\1\161\14\33\4\uffff\1\33"+
1635
+ "\1\uffff\32\33",
1636
+ "\1\35\1\uffff\12\33\7\uffff\32\33\4\uffff\1\33\1\uffff\26\33"+
1637
+ "\1\162\3\33",
1638
+ "\1\35\1\uffff\12\33\7\uffff\32\33\4\uffff\1\33\1\uffff\23\33"+
1639
+ "\1\163\6\33",
1640
+ "\1\35\1\uffff\12\33\7\uffff\32\33\4\uffff\1\33\1\uffff\1\164"+
1641
+ "\31\33",
1642
+ "\1\35\1\uffff\12\33\7\uffff\32\33\4\uffff\1\33\1\uffff\22\33"+
1643
+ "\1\165\7\33",
1644
+ "\1\35\1\uffff\12\33\7\uffff\32\33\4\uffff\1\33\1\uffff\32\33",
1645
+ "\1\35\1\uffff\12\33\7\uffff\32\33\4\uffff\1\33\1\uffff\32\33",
1646
+ "\1\35\1\uffff\12\33\7\uffff\10\33\1\167\21\33\4\uffff\1\33"+
1647
+ "\1\uffff\32\33",
1648
+ "\1\35\1\uffff\12\33\7\uffff\7\33\1\170\22\33\4\uffff\1\33\1"+
1649
+ "\uffff\32\33",
1650
+ "\1\35\1\uffff\12\33\7\uffff\22\33\1\171\7\33\4\uffff\1\33\1"+
1651
+ "\uffff\32\33",
1652
+ "\1\35\1\uffff\12\33\7\uffff\32\33\4\uffff\1\33\1\uffff\10\33"+
1653
+ "\1\172\21\33",
1654
+ "\1\35\1\uffff\12\33\7\uffff\32\33\4\uffff\1\33\1\uffff\7\33"+
1655
+ "\1\173\22\33",
1656
+ "\1\35\1\uffff\12\33\7\uffff\32\33\4\uffff\1\33\1\uffff\15\33"+
1657
+ "\1\174\14\33",
1658
+ "\1\35\1\uffff\12\33\7\uffff\32\33\4\uffff\1\33\1\uffff\32\33",
906
1659
  "",
907
- "\1\14\1\uffff\12\12\7\uffff\32\12\4\uffff\1\12\1\uffff\32\12"
1660
+ "\1\35\1\uffff\12\33\7\uffff\23\33\1\175\6\33\4\uffff\1\33\1"+
1661
+ "\uffff\32\33",
1662
+ "\1\35\1\uffff\12\33\7\uffff\32\33\4\uffff\1\33\1\uffff\32\33",
1663
+ "\1\35\1\uffff\12\33\7\uffff\32\33\4\uffff\1\33\1\uffff\32\33",
1664
+ "\1\35\1\uffff\12\33\7\uffff\32\33\4\uffff\1\33\1\uffff\23\33"+
1665
+ "\1\176\6\33",
1666
+ "\1\35\1\uffff\12\33\7\uffff\32\33\4\uffff\1\33\1\uffff\32\33",
1667
+ "\1\35\1\uffff\12\33\7\uffff\32\33\4\uffff\1\33\1\uffff\23\33"+
1668
+ "\1\177\6\33",
1669
+ "\1\35\1\uffff\12\33\7\uffff\7\33\1\u0080\22\33\4\uffff\1\33"+
1670
+ "\1\uffff\32\33",
1671
+ "\1\35\1\uffff\12\33\7\uffff\32\33\4\uffff\1\33\1\uffff\7\33"+
1672
+ "\1\u0081\22\33",
1673
+ "\1\35\1\uffff\12\33\7\uffff\32\33\4\uffff\1\33\1\uffff\32\33",
1674
+ "\1\35\1\uffff\12\33\7\uffff\32\33\4\uffff\1\33\1\uffff\32\33",
1675
+ "\1\35\1\uffff\12\33\7\uffff\32\33\4\uffff\1\33\1\uffff\32\33"
908
1676
  };
909
1677
 
910
- static final short[] DFA10_eot = DFA.unpackEncodedString(DFA10_eotS);
911
- static final short[] DFA10_eof = DFA.unpackEncodedString(DFA10_eofS);
912
- static final char[] DFA10_min = DFA.unpackEncodedStringToUnsignedChars(DFA10_minS);
913
- static final char[] DFA10_max = DFA.unpackEncodedStringToUnsignedChars(DFA10_maxS);
914
- static final short[] DFA10_accept = DFA.unpackEncodedString(DFA10_acceptS);
915
- static final short[] DFA10_special = DFA.unpackEncodedString(DFA10_specialS);
916
- static final short[][] DFA10_transition;
1678
+ static final short[] DFA15_eot = DFA.unpackEncodedString(DFA15_eotS);
1679
+ static final short[] DFA15_eof = DFA.unpackEncodedString(DFA15_eofS);
1680
+ static final char[] DFA15_min = DFA.unpackEncodedStringToUnsignedChars(DFA15_minS);
1681
+ static final char[] DFA15_max = DFA.unpackEncodedStringToUnsignedChars(DFA15_maxS);
1682
+ static final short[] DFA15_accept = DFA.unpackEncodedString(DFA15_acceptS);
1683
+ static final short[] DFA15_special = DFA.unpackEncodedString(DFA15_specialS);
1684
+ static final short[][] DFA15_transition;
917
1685
 
918
1686
  static {
919
- int numStates = DFA10_transitionS.length;
920
- DFA10_transition = new short[numStates][];
1687
+ int numStates = DFA15_transitionS.length;
1688
+ DFA15_transition = new short[numStates][];
921
1689
  for (int i=0; i<numStates; i++) {
922
- DFA10_transition[i] = DFA.unpackEncodedString(DFA10_transitionS[i]);
1690
+ DFA15_transition[i] = DFA.unpackEncodedString(DFA15_transitionS[i]);
923
1691
  }
924
1692
  }
925
1693
 
926
- class DFA10 extends DFA {
1694
+ class DFA15 extends DFA {
927
1695
 
928
- public DFA10(BaseRecognizer recognizer) {
1696
+ public DFA15(BaseRecognizer recognizer) {
929
1697
  this.recognizer = recognizer;
930
- this.decisionNumber = 10;
931
- this.eot = DFA10_eot;
932
- this.eof = DFA10_eof;
933
- this.min = DFA10_min;
934
- this.max = DFA10_max;
935
- this.accept = DFA10_accept;
936
- this.special = DFA10_special;
937
- this.transition = DFA10_transition;
1698
+ this.decisionNumber = 15;
1699
+ this.eot = DFA15_eot;
1700
+ this.eof = DFA15_eof;
1701
+ this.min = DFA15_min;
1702
+ this.max = DFA15_max;
1703
+ this.accept = DFA15_accept;
1704
+ this.special = DFA15_special;
1705
+ this.transition = DFA15_transition;
938
1706
  }
939
1707
  public String getDescription() {
940
- return "1:1: Tokens : ( QUALIFIED_NAME | FILTER_COLON | INT | BOOL | NIL | NAME | STRING | WHITE );";
1708
+ return "1:1: Tokens : ( DIRECTION | WILDCARD | QUALIFIED_NAME | ALL | VISIBLE | FILTER_COLON | BEGINPRED | ENDPRED | RELATION | INT | BOOL | NIL | NAME | STRING | WHITE );";
941
1709
  }
942
1710
  }
943
1711