testautoa 0.4.0 → 0.4.1

Sign up to get free protection for your applications and to get access to all the features.
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