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:56
2
2
 
3
3
  package sh.calaba.instrumentationbackend.query.antlr;
4
4
 
@@ -14,22 +14,29 @@ import org.antlr.runtime.tree.*;
14
14
  @SuppressWarnings({"all", "warnings", "unchecked"})
15
15
  public class UIQueryParser extends Parser {
16
16
  public static final String[] tokenNames = new String[] {
17
- "<invalid>", "<EOR>", "<DOWN>", "<UP>", "BOOL", "ESC_SEQ", "FILTER_COLON", "HEX_DIGIT", "INT", "NAME", "NIL", "OCTAL_ESC", "QUALIFIED_NAME", "STRING", "UNICODE_ESC", "WHITE"
17
+ "<invalid>", "<EOR>", "<DOWN>", "<UP>", "ALL", "BEGINPRED", "BOOL", "DIRECTION", "ENDPRED", "ESC_SEQ", "FILTER_COLON", "HEX_DIGIT", "INT", "NAME", "NIL", "OCTAL_ESC", "QUALIFIED_NAME", "RELATION", "STRING", "UNICODE_ESC", "VISIBLE", "WHITE", "WILDCARD"
18
18
  };
19
19
 
20
20
  public static final int EOF=-1;
21
- public static final int BOOL=4;
22
- public static final int ESC_SEQ=5;
23
- public static final int FILTER_COLON=6;
24
- public static final int HEX_DIGIT=7;
25
- public static final int INT=8;
26
- public static final int NAME=9;
27
- public static final int NIL=10;
28
- public static final int OCTAL_ESC=11;
29
- public static final int QUALIFIED_NAME=12;
30
- public static final int STRING=13;
31
- public static final int UNICODE_ESC=14;
32
- public static final int WHITE=15;
21
+ public static final int ALL=4;
22
+ public static final int BEGINPRED=5;
23
+ public static final int BOOL=6;
24
+ public static final int DIRECTION=7;
25
+ public static final int ENDPRED=8;
26
+ public static final int ESC_SEQ=9;
27
+ public static final int FILTER_COLON=10;
28
+ public static final int HEX_DIGIT=11;
29
+ public static final int INT=12;
30
+ public static final int NAME=13;
31
+ public static final int NIL=14;
32
+ public static final int OCTAL_ESC=15;
33
+ public static final int QUALIFIED_NAME=16;
34
+ public static final int RELATION=17;
35
+ public static final int STRING=18;
36
+ public static final int UNICODE_ESC=19;
37
+ public static final int VISIBLE=20;
38
+ public static final int WHITE=21;
39
+ public static final int WILDCARD=22;
33
40
 
34
41
  // delegates
35
42
  public Parser[] getDelegates() {
@@ -65,7 +72,7 @@ public TreeAdaptor getTreeAdaptor() {
65
72
 
66
73
 
67
74
  // $ANTLR start "query"
68
- // antlr/UIQuery.g:16:1: query : expr ( WHITE ! expr )* ;
75
+ // antlr/UIQuery.g:35:1: query : expr ( WHITE ! expr )* ;
69
76
  public final UIQueryParser.query_return query() throws RecognitionException {
70
77
  UIQueryParser.query_return retval = new UIQueryParser.query_return();
71
78
  retval.start = input.LT(1);
@@ -82,20 +89,20 @@ public TreeAdaptor getTreeAdaptor() {
82
89
  CommonTree WHITE2_tree=null;
83
90
 
84
91
  try {
85
- // antlr/UIQuery.g:16:7: ( expr ( WHITE ! expr )* )
86
- // antlr/UIQuery.g:16:9: expr ( WHITE ! expr )*
92
+ // antlr/UIQuery.g:35:7: ( expr ( WHITE ! expr )* )
93
+ // antlr/UIQuery.g:35:9: expr ( WHITE ! expr )*
87
94
  {
88
95
  root_0 = (CommonTree)adaptor.nil();
89
96
 
90
97
 
91
- pushFollow(FOLLOW_expr_in_query48);
98
+ pushFollow(FOLLOW_expr_in_query56);
92
99
  expr1=expr();
93
100
 
94
101
  state._fsp--;
95
102
 
96
103
  adaptor.addChild(root_0, expr1.getTree());
97
104
 
98
- // antlr/UIQuery.g:16:14: ( WHITE ! expr )*
105
+ // antlr/UIQuery.g:35:14: ( WHITE ! expr )*
99
106
  loop1:
100
107
  do {
101
108
  int alt1=2;
@@ -108,11 +115,11 @@ public TreeAdaptor getTreeAdaptor() {
108
115
 
109
116
  switch (alt1) {
110
117
  case 1 :
111
- // antlr/UIQuery.g:16:15: WHITE ! expr
118
+ // antlr/UIQuery.g:35:15: WHITE ! expr
112
119
  {
113
- WHITE2=(Token)match(input,WHITE,FOLLOW_WHITE_in_query51);
120
+ WHITE2=(Token)match(input,WHITE,FOLLOW_WHITE_in_query59);
114
121
 
115
- pushFollow(FOLLOW_expr_in_query54);
122
+ pushFollow(FOLLOW_expr_in_query62);
116
123
  expr3=expr();
117
124
 
118
125
  state._fsp--;
@@ -159,7 +166,7 @@ public TreeAdaptor getTreeAdaptor() {
159
166
 
160
167
 
161
168
  // $ANTLR start "expr"
162
- // antlr/UIQuery.g:20:1: expr : ( className | filter ) ;
169
+ // antlr/UIQuery.g:39:1: expr : ( className | filter | visibility | predicate | DIRECTION ^) ;
163
170
  public final UIQueryParser.expr_return expr() throws RecognitionException {
164
171
  UIQueryParser.expr_return retval = new UIQueryParser.expr_return();
165
172
  retval.start = input.LT(1);
@@ -167,55 +174,82 @@ public TreeAdaptor getTreeAdaptor() {
167
174
 
168
175
  CommonTree root_0 = null;
169
176
 
177
+ Token DIRECTION8=null;
170
178
  UIQueryParser.className_return className4 =null;
171
179
 
172
180
  UIQueryParser.filter_return filter5 =null;
173
181
 
182
+ UIQueryParser.visibility_return visibility6 =null;
174
183
 
184
+ UIQueryParser.predicate_return predicate7 =null;
185
+
186
+
187
+ CommonTree DIRECTION8_tree=null;
175
188
 
176
189
  try {
177
- // antlr/UIQuery.g:20:6: ( ( className | filter ) )
178
- // antlr/UIQuery.g:20:8: ( className | filter )
190
+ // antlr/UIQuery.g:39:6: ( ( className | filter | visibility | predicate | DIRECTION ^) )
191
+ // antlr/UIQuery.g:39:8: ( className | filter | visibility | predicate | DIRECTION ^)
179
192
  {
180
193
  root_0 = (CommonTree)adaptor.nil();
181
194
 
182
195
 
183
- // antlr/UIQuery.g:20:8: ( className | filter )
184
- int alt2=2;
185
- int LA2_0 = input.LA(1);
186
-
187
- if ( (LA2_0==NAME) ) {
188
- int LA2_1 = input.LA(2);
196
+ // antlr/UIQuery.g:39:8: ( className | filter | visibility | predicate | DIRECTION ^)
197
+ int alt2=5;
198
+ switch ( input.LA(1) ) {
199
+ case QUALIFIED_NAME:
200
+ case WILDCARD:
201
+ {
202
+ alt2=1;
203
+ }
204
+ break;
205
+ case NAME:
206
+ {
207
+ int LA2_2 = input.LA(2);
189
208
 
190
- if ( (LA2_1==FILTER_COLON) ) {
209
+ if ( (LA2_2==FILTER_COLON) ) {
191
210
  alt2=2;
192
211
  }
193
- else if ( (LA2_1==EOF||LA2_1==WHITE) ) {
212
+ else if ( (LA2_2==EOF||LA2_2==WHITE) ) {
194
213
  alt2=1;
195
214
  }
196
215
  else {
197
216
  NoViableAltException nvae =
198
- new NoViableAltException("", 2, 1, input);
217
+ new NoViableAltException("", 2, 2, input);
199
218
 
200
219
  throw nvae;
201
220
 
202
221
  }
203
- }
204
- else if ( (LA2_0==QUALIFIED_NAME) ) {
205
- alt2=1;
206
- }
207
- else {
222
+ }
223
+ break;
224
+ case ALL:
225
+ case VISIBLE:
226
+ {
227
+ alt2=3;
228
+ }
229
+ break;
230
+ case BEGINPRED:
231
+ {
232
+ alt2=4;
233
+ }
234
+ break;
235
+ case DIRECTION:
236
+ {
237
+ alt2=5;
238
+ }
239
+ break;
240
+ default:
208
241
  NoViableAltException nvae =
209
242
  new NoViableAltException("", 2, 0, input);
210
243
 
211
244
  throw nvae;
212
245
 
213
246
  }
247
+
214
248
  switch (alt2) {
215
249
  case 1 :
216
- // antlr/UIQuery.g:20:9: className
250
+ // antlr/UIQuery.g:39:9: className
217
251
  {
218
- pushFollow(FOLLOW_className_in_expr72);
252
+ pushFollow(FOLLOW_className_in_expr80);
219
253
  className4=className();
220
254
 
221
255
  state._fsp--;
@@ -225,15 +259,51 @@ public TreeAdaptor getTreeAdaptor() {
225
259
  }
226
260
  break;
227
261
  case 2 :
228
- // antlr/UIQuery.g:20:21: filter
262
+ // antlr/UIQuery.g:39:21: filter
229
263
  {
230
- pushFollow(FOLLOW_filter_in_expr76);
264
+ pushFollow(FOLLOW_filter_in_expr84);
231
265
  filter5=filter();
232
266
 
233
267
  state._fsp--;
234
268
 
235
269
  adaptor.addChild(root_0, filter5.getTree());
236
270
 
271
+ }
272
+ break;
273
+ case 3 :
274
+ // antlr/UIQuery.g:39:30: visibility
275
+ {
276
+ pushFollow(FOLLOW_visibility_in_expr88);
277
+ visibility6=visibility();
278
+
279
+ state._fsp--;
280
+
281
+ adaptor.addChild(root_0, visibility6.getTree());
282
+
283
+ }
284
+ break;
285
+ case 4 :
286
+ // antlr/UIQuery.g:39:43: predicate
287
+ {
288
+ pushFollow(FOLLOW_predicate_in_expr92);
289
+ predicate7=predicate();
290
+
291
+ state._fsp--;
292
+
293
+ adaptor.addChild(root_0, predicate7.getTree());
294
+
295
+ }
296
+ break;
297
+ case 5 :
298
+ // antlr/UIQuery.g:39:55: DIRECTION ^
299
+ {
300
+ DIRECTION8=(Token)match(input,DIRECTION,FOLLOW_DIRECTION_in_expr96);
301
+ DIRECTION8_tree =
302
+ (CommonTree)adaptor.create(DIRECTION8)
303
+ ;
304
+ root_0 = (CommonTree)adaptor.becomeRoot(DIRECTION8_tree, root_0);
305
+
306
+
237
307
  }
238
308
  break;
239
309
 
@@ -271,7 +341,7 @@ public TreeAdaptor getTreeAdaptor() {
271
341
 
272
342
 
273
343
  // $ANTLR start "className"
274
- // antlr/UIQuery.g:23:1: className : ( NAME ^| QUALIFIED_NAME ^) ;
344
+ // antlr/UIQuery.g:45:1: className : ( WILDCARD ^| NAME ^| QUALIFIED_NAME ^) ;
275
345
  public final UIQueryParser.className_return className() throws RecognitionException {
276
346
  UIQueryParser.className_return retval = new UIQueryParser.className_return();
277
347
  retval.start = input.LT(1);
@@ -279,57 +349,80 @@ public TreeAdaptor getTreeAdaptor() {
279
349
 
280
350
  CommonTree root_0 = null;
281
351
 
282
- Token NAME6=null;
283
- Token QUALIFIED_NAME7=null;
352
+ Token WILDCARD9=null;
353
+ Token NAME10=null;
354
+ Token QUALIFIED_NAME11=null;
284
355
 
285
- CommonTree NAME6_tree=null;
286
- CommonTree QUALIFIED_NAME7_tree=null;
356
+ CommonTree WILDCARD9_tree=null;
357
+ CommonTree NAME10_tree=null;
358
+ CommonTree QUALIFIED_NAME11_tree=null;
287
359
 
288
360
  try {
289
- // antlr/UIQuery.g:23:13: ( ( NAME ^| QUALIFIED_NAME ^) )
290
- // antlr/UIQuery.g:23:17: ( NAME ^| QUALIFIED_NAME ^)
361
+ // antlr/UIQuery.g:45:13: ( ( WILDCARD ^| NAME ^| QUALIFIED_NAME ^) )
362
+ // antlr/UIQuery.g:45:17: ( WILDCARD ^| NAME ^| QUALIFIED_NAME ^)
291
363
  {
292
364
  root_0 = (CommonTree)adaptor.nil();
293
365
 
294
366
 
295
- // antlr/UIQuery.g:23:17: ( NAME ^| QUALIFIED_NAME ^)
296
- int alt3=2;
297
- int LA3_0 = input.LA(1);
298
-
299
- if ( (LA3_0==NAME) ) {
367
+ // antlr/UIQuery.g:45:17: ( WILDCARD ^| NAME ^| QUALIFIED_NAME ^)
368
+ int alt3=3;
369
+ switch ( input.LA(1) ) {
370
+ case WILDCARD:
371
+ {
300
372
  alt3=1;
301
- }
302
- else if ( (LA3_0==QUALIFIED_NAME) ) {
373
+ }
374
+ break;
375
+ case NAME:
376
+ {
303
377
  alt3=2;
304
- }
305
- else {
378
+ }
379
+ break;
380
+ case QUALIFIED_NAME:
381
+ {
382
+ alt3=3;
383
+ }
384
+ break;
385
+ default:
306
386
  NoViableAltException nvae =
307
387
  new NoViableAltException("", 3, 0, input);
308
388
 
309
389
  throw nvae;
310
390
 
311
391
  }
392
+
312
393
  switch (alt3) {
313
394
  case 1 :
314
- // antlr/UIQuery.g:23:18: NAME ^
395
+ // antlr/UIQuery.g:45:18: WILDCARD ^
315
396
  {
316
- NAME6=(Token)match(input,NAME,FOLLOW_NAME_in_className94);
317
- NAME6_tree =
318
- (CommonTree)adaptor.create(NAME6)
397
+ WILDCARD9=(Token)match(input,WILDCARD,FOLLOW_WILDCARD_in_className140);
398
+ WILDCARD9_tree =
399
+ (CommonTree)adaptor.create(WILDCARD9)
319
400
  ;
320
- root_0 = (CommonTree)adaptor.becomeRoot(NAME6_tree, root_0);
401
+ root_0 = (CommonTree)adaptor.becomeRoot(WILDCARD9_tree, root_0);
321
402
 
322
403
 
323
404
  }
324
405
  break;
325
406
  case 2 :
326
- // antlr/UIQuery.g:23:26: QUALIFIED_NAME ^
407
+ // antlr/UIQuery.g:45:30: NAME ^
408
+ {
409
+ NAME10=(Token)match(input,NAME,FOLLOW_NAME_in_className145);
410
+ NAME10_tree =
411
+ (CommonTree)adaptor.create(NAME10)
412
+ ;
413
+ root_0 = (CommonTree)adaptor.becomeRoot(NAME10_tree, root_0);
414
+
415
+
416
+ }
417
+ break;
418
+ case 3 :
419
+ // antlr/UIQuery.g:45:38: QUALIFIED_NAME ^
327
420
  {
328
- QUALIFIED_NAME7=(Token)match(input,QUALIFIED_NAME,FOLLOW_QUALIFIED_NAME_in_className99);
329
- QUALIFIED_NAME7_tree =
330
- (CommonTree)adaptor.create(QUALIFIED_NAME7)
421
+ QUALIFIED_NAME11=(Token)match(input,QUALIFIED_NAME,FOLLOW_QUALIFIED_NAME_in_className150);
422
+ QUALIFIED_NAME11_tree =
423
+ (CommonTree)adaptor.create(QUALIFIED_NAME11)
331
424
  ;
332
- root_0 = (CommonTree)adaptor.becomeRoot(QUALIFIED_NAME7_tree, root_0);
425
+ root_0 = (CommonTree)adaptor.becomeRoot(QUALIFIED_NAME11_tree, root_0);
333
426
 
334
427
 
335
428
  }
@@ -362,6 +455,104 @@ public TreeAdaptor getTreeAdaptor() {
362
455
  // $ANTLR end "className"
363
456
 
364
457
 
458
+ public static class visibility_return extends ParserRuleReturnScope {
459
+ CommonTree tree;
460
+ public Object getTree() { return tree; }
461
+ };
462
+
463
+
464
+ // $ANTLR start "visibility"
465
+ // antlr/UIQuery.g:51:1: visibility : ( ALL ^| VISIBLE ^) ;
466
+ public final UIQueryParser.visibility_return visibility() throws RecognitionException {
467
+ UIQueryParser.visibility_return retval = new UIQueryParser.visibility_return();
468
+ retval.start = input.LT(1);
469
+
470
+
471
+ CommonTree root_0 = null;
472
+
473
+ Token ALL12=null;
474
+ Token VISIBLE13=null;
475
+
476
+ CommonTree ALL12_tree=null;
477
+ CommonTree VISIBLE13_tree=null;
478
+
479
+ try {
480
+ // antlr/UIQuery.g:51:14: ( ( ALL ^| VISIBLE ^) )
481
+ // antlr/UIQuery.g:51:18: ( ALL ^| VISIBLE ^)
482
+ {
483
+ root_0 = (CommonTree)adaptor.nil();
484
+
485
+
486
+ // antlr/UIQuery.g:51:18: ( ALL ^| VISIBLE ^)
487
+ int alt4=2;
488
+ int LA4_0 = input.LA(1);
489
+
490
+ if ( (LA4_0==ALL) ) {
491
+ alt4=1;
492
+ }
493
+ else if ( (LA4_0==VISIBLE) ) {
494
+ alt4=2;
495
+ }
496
+ else {
497
+ NoViableAltException nvae =
498
+ new NoViableAltException("", 4, 0, input);
499
+
500
+ throw nvae;
501
+
502
+ }
503
+ switch (alt4) {
504
+ case 1 :
505
+ // antlr/UIQuery.g:51:19: ALL ^
506
+ {
507
+ ALL12=(Token)match(input,ALL,FOLLOW_ALL_in_visibility188);
508
+ ALL12_tree =
509
+ (CommonTree)adaptor.create(ALL12)
510
+ ;
511
+ root_0 = (CommonTree)adaptor.becomeRoot(ALL12_tree, root_0);
512
+
513
+
514
+ }
515
+ break;
516
+ case 2 :
517
+ // antlr/UIQuery.g:51:26: VISIBLE ^
518
+ {
519
+ VISIBLE13=(Token)match(input,VISIBLE,FOLLOW_VISIBLE_in_visibility193);
520
+ VISIBLE13_tree =
521
+ (CommonTree)adaptor.create(VISIBLE13)
522
+ ;
523
+ root_0 = (CommonTree)adaptor.becomeRoot(VISIBLE13_tree, root_0);
524
+
525
+
526
+ }
527
+ break;
528
+
529
+ }
530
+
531
+
532
+ }
533
+
534
+ retval.stop = input.LT(-1);
535
+
536
+
537
+ retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
538
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
539
+
540
+ }
541
+ catch (RecognitionException re) {
542
+ reportError(re);
543
+ recover(input,re);
544
+ retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
545
+
546
+ }
547
+
548
+ finally {
549
+ // do for sure before leaving
550
+ }
551
+ return retval;
552
+ }
553
+ // $ANTLR end "visibility"
554
+
555
+
365
556
  public static class filter_return extends ParserRuleReturnScope {
366
557
  CommonTree tree;
367
558
  public Object getTree() { return tree; }
@@ -369,7 +560,7 @@ public TreeAdaptor getTreeAdaptor() {
369
560
 
370
561
 
371
562
  // $ANTLR start "filter"
372
- // antlr/UIQuery.g:27:1: filter : NAME FILTER_COLON ^ ( INT | STRING | BOOL | NIL ) ;
563
+ // antlr/UIQuery.g:58:1: filter : NAME FILTER_COLON ^ ( INT | STRING | BOOL | NIL ) ;
373
564
  public final UIQueryParser.filter_return filter() throws RecognitionException {
374
565
  UIQueryParser.filter_return retval = new UIQueryParser.filter_return();
375
566
  retval.start = input.LT(1);
@@ -377,41 +568,41 @@ public TreeAdaptor getTreeAdaptor() {
377
568
 
378
569
  CommonTree root_0 = null;
379
570
 
380
- Token NAME8=null;
381
- Token FILTER_COLON9=null;
382
- Token set10=null;
571
+ Token NAME14=null;
572
+ Token FILTER_COLON15=null;
573
+ Token set16=null;
383
574
 
384
- CommonTree NAME8_tree=null;
385
- CommonTree FILTER_COLON9_tree=null;
386
- CommonTree set10_tree=null;
575
+ CommonTree NAME14_tree=null;
576
+ CommonTree FILTER_COLON15_tree=null;
577
+ CommonTree set16_tree=null;
387
578
 
388
579
  try {
389
- // antlr/UIQuery.g:27:8: ( NAME FILTER_COLON ^ ( INT | STRING | BOOL | NIL ) )
390
- // antlr/UIQuery.g:27:10: NAME FILTER_COLON ^ ( INT | STRING | BOOL | NIL )
580
+ // antlr/UIQuery.g:58:8: ( NAME FILTER_COLON ^ ( INT | STRING | BOOL | NIL ) )
581
+ // antlr/UIQuery.g:58:10: NAME FILTER_COLON ^ ( INT | STRING | BOOL | NIL )
391
582
  {
392
583
  root_0 = (CommonTree)adaptor.nil();
393
584
 
394
585
 
395
- NAME8=(Token)match(input,NAME,FOLLOW_NAME_in_filter124);
396
- NAME8_tree =
397
- (CommonTree)adaptor.create(NAME8)
586
+ NAME14=(Token)match(input,NAME,FOLLOW_NAME_in_filter220);
587
+ NAME14_tree =
588
+ (CommonTree)adaptor.create(NAME14)
398
589
  ;
399
- adaptor.addChild(root_0, NAME8_tree);
590
+ adaptor.addChild(root_0, NAME14_tree);
400
591
 
401
592
 
402
- FILTER_COLON9=(Token)match(input,FILTER_COLON,FOLLOW_FILTER_COLON_in_filter126);
403
- FILTER_COLON9_tree =
404
- (CommonTree)adaptor.create(FILTER_COLON9)
593
+ FILTER_COLON15=(Token)match(input,FILTER_COLON,FOLLOW_FILTER_COLON_in_filter222);
594
+ FILTER_COLON15_tree =
595
+ (CommonTree)adaptor.create(FILTER_COLON15)
405
596
  ;
406
- root_0 = (CommonTree)adaptor.becomeRoot(FILTER_COLON9_tree, root_0);
597
+ root_0 = (CommonTree)adaptor.becomeRoot(FILTER_COLON15_tree, root_0);
407
598
 
408
599
 
409
- set10=(Token)input.LT(1);
600
+ set16=(Token)input.LT(1);
410
601
 
411
602
  if ( input.LA(1)==BOOL||input.LA(1)==INT||input.LA(1)==NIL||input.LA(1)==STRING ) {
412
603
  input.consume();
413
604
  adaptor.addChild(root_0,
414
- (CommonTree)adaptor.create(set10)
605
+ (CommonTree)adaptor.create(set16)
415
606
  );
416
607
  state.errorRecovery=false;
417
608
  }
@@ -444,20 +635,137 @@ public TreeAdaptor getTreeAdaptor() {
444
635
  }
445
636
  // $ANTLR end "filter"
446
637
 
638
+
639
+ public static class predicate_return extends ParserRuleReturnScope {
640
+ CommonTree tree;
641
+ public Object getTree() { return tree; }
642
+ };
643
+
644
+
645
+ // $ANTLR start "predicate"
646
+ // antlr/UIQuery.g:63:1: predicate : BEGINPRED ^ NAME WHITE ! RELATION WHITE ! ( INT | STRING | BOOL | NIL ) ENDPRED !;
647
+ public final UIQueryParser.predicate_return predicate() throws RecognitionException {
648
+ UIQueryParser.predicate_return retval = new UIQueryParser.predicate_return();
649
+ retval.start = input.LT(1);
650
+
651
+
652
+ CommonTree root_0 = null;
653
+
654
+ Token BEGINPRED17=null;
655
+ Token NAME18=null;
656
+ Token WHITE19=null;
657
+ Token RELATION20=null;
658
+ Token WHITE21=null;
659
+ Token set22=null;
660
+ Token ENDPRED23=null;
661
+
662
+ CommonTree BEGINPRED17_tree=null;
663
+ CommonTree NAME18_tree=null;
664
+ CommonTree WHITE19_tree=null;
665
+ CommonTree RELATION20_tree=null;
666
+ CommonTree WHITE21_tree=null;
667
+ CommonTree set22_tree=null;
668
+ CommonTree ENDPRED23_tree=null;
669
+
670
+ try {
671
+ // antlr/UIQuery.g:63:11: ( BEGINPRED ^ NAME WHITE ! RELATION WHITE ! ( INT | STRING | BOOL | NIL ) ENDPRED !)
672
+ // antlr/UIQuery.g:63:13: BEGINPRED ^ NAME WHITE ! RELATION WHITE ! ( INT | STRING | BOOL | NIL ) ENDPRED !
673
+ {
674
+ root_0 = (CommonTree)adaptor.nil();
675
+
676
+
677
+ BEGINPRED17=(Token)match(input,BEGINPRED,FOLLOW_BEGINPRED_in_predicate258);
678
+ BEGINPRED17_tree =
679
+ (CommonTree)adaptor.create(BEGINPRED17)
680
+ ;
681
+ root_0 = (CommonTree)adaptor.becomeRoot(BEGINPRED17_tree, root_0);
682
+
683
+
684
+ NAME18=(Token)match(input,NAME,FOLLOW_NAME_in_predicate261);
685
+ NAME18_tree =
686
+ (CommonTree)adaptor.create(NAME18)
687
+ ;
688
+ adaptor.addChild(root_0, NAME18_tree);
689
+
690
+
691
+ WHITE19=(Token)match(input,WHITE,FOLLOW_WHITE_in_predicate263);
692
+
693
+ RELATION20=(Token)match(input,RELATION,FOLLOW_RELATION_in_predicate266);
694
+ RELATION20_tree =
695
+ (CommonTree)adaptor.create(RELATION20)
696
+ ;
697
+ adaptor.addChild(root_0, RELATION20_tree);
698
+
699
+
700
+ WHITE21=(Token)match(input,WHITE,FOLLOW_WHITE_in_predicate268);
701
+
702
+ set22=(Token)input.LT(1);
703
+
704
+ if ( input.LA(1)==BOOL||input.LA(1)==INT||input.LA(1)==NIL||input.LA(1)==STRING ) {
705
+ input.consume();
706
+ adaptor.addChild(root_0,
707
+ (CommonTree)adaptor.create(set22)
708
+ );
709
+ state.errorRecovery=false;
710
+ }
711
+ else {
712
+ MismatchedSetException mse = new MismatchedSetException(null,input);
713
+ throw mse;
714
+ }
715
+
716
+
717
+ ENDPRED23=(Token)match(input,ENDPRED,FOLLOW_ENDPRED_in_predicate287);
718
+
719
+ }
720
+
721
+ retval.stop = input.LT(-1);
722
+
723
+
724
+ retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
725
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
726
+
727
+ }
728
+ catch (RecognitionException re) {
729
+ reportError(re);
730
+ recover(input,re);
731
+ retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
732
+
733
+ }
734
+
735
+ finally {
736
+ // do for sure before leaving
737
+ }
738
+ return retval;
739
+ }
740
+ // $ANTLR end "predicate"
741
+
447
742
  // Delegated rules
448
743
 
449
744
 
450
745
 
451
746
 
452
- public static final BitSet FOLLOW_expr_in_query48 = new BitSet(new long[]{0x0000000000008002L});
453
- public static final BitSet FOLLOW_WHITE_in_query51 = new BitSet(new long[]{0x0000000000001200L});
454
- public static final BitSet FOLLOW_expr_in_query54 = new BitSet(new long[]{0x0000000000008002L});
455
- public static final BitSet FOLLOW_className_in_expr72 = new BitSet(new long[]{0x0000000000000002L});
456
- public static final BitSet FOLLOW_filter_in_expr76 = new BitSet(new long[]{0x0000000000000002L});
457
- public static final BitSet FOLLOW_NAME_in_className94 = new BitSet(new long[]{0x0000000000000002L});
458
- public static final BitSet FOLLOW_QUALIFIED_NAME_in_className99 = new BitSet(new long[]{0x0000000000000002L});
459
- public static final BitSet FOLLOW_NAME_in_filter124 = new BitSet(new long[]{0x0000000000000040L});
460
- public static final BitSet FOLLOW_FILTER_COLON_in_filter126 = new BitSet(new long[]{0x0000000000002510L});
461
- public static final BitSet FOLLOW_set_in_filter129 = new BitSet(new long[]{0x0000000000000002L});
747
+ public static final BitSet FOLLOW_expr_in_query56 = new BitSet(new long[]{0x0000000000200002L});
748
+ public static final BitSet FOLLOW_WHITE_in_query59 = new BitSet(new long[]{0x00000000005120B0L});
749
+ public static final BitSet FOLLOW_expr_in_query62 = new BitSet(new long[]{0x0000000000200002L});
750
+ public static final BitSet FOLLOW_className_in_expr80 = new BitSet(new long[]{0x0000000000000002L});
751
+ public static final BitSet FOLLOW_filter_in_expr84 = new BitSet(new long[]{0x0000000000000002L});
752
+ public static final BitSet FOLLOW_visibility_in_expr88 = new BitSet(new long[]{0x0000000000000002L});
753
+ public static final BitSet FOLLOW_predicate_in_expr92 = new BitSet(new long[]{0x0000000000000002L});
754
+ public static final BitSet FOLLOW_DIRECTION_in_expr96 = new BitSet(new long[]{0x0000000000000002L});
755
+ public static final BitSet FOLLOW_WILDCARD_in_className140 = new BitSet(new long[]{0x0000000000000002L});
756
+ public static final BitSet FOLLOW_NAME_in_className145 = new BitSet(new long[]{0x0000000000000002L});
757
+ public static final BitSet FOLLOW_QUALIFIED_NAME_in_className150 = new BitSet(new long[]{0x0000000000000002L});
758
+ public static final BitSet FOLLOW_ALL_in_visibility188 = new BitSet(new long[]{0x0000000000000002L});
759
+ public static final BitSet FOLLOW_VISIBLE_in_visibility193 = new BitSet(new long[]{0x0000000000000002L});
760
+ public static final BitSet FOLLOW_NAME_in_filter220 = new BitSet(new long[]{0x0000000000000400L});
761
+ public static final BitSet FOLLOW_FILTER_COLON_in_filter222 = new BitSet(new long[]{0x0000000000045040L});
762
+ public static final BitSet FOLLOW_set_in_filter225 = new BitSet(new long[]{0x0000000000000002L});
763
+ public static final BitSet FOLLOW_BEGINPRED_in_predicate258 = new BitSet(new long[]{0x0000000000002000L});
764
+ public static final BitSet FOLLOW_NAME_in_predicate261 = new BitSet(new long[]{0x0000000000200000L});
765
+ public static final BitSet FOLLOW_WHITE_in_predicate263 = new BitSet(new long[]{0x0000000000020000L});
766
+ public static final BitSet FOLLOW_RELATION_in_predicate266 = new BitSet(new long[]{0x0000000000200000L});
767
+ public static final BitSet FOLLOW_WHITE_in_predicate268 = new BitSet(new long[]{0x0000000000045040L});
768
+ public static final BitSet FOLLOW_set_in_predicate271 = new BitSet(new long[]{0x0000000000000100L});
769
+ public static final BitSet FOLLOW_ENDPRED_in_predicate287 = new BitSet(new long[]{0x0000000000000002L});
462
770
 
463
771
  }