calabash-android 0.4.0.pre1 → 0.4.0.pre2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (121) hide show
  1. data/bin/calabash-android-build.rb +6 -0
  2. data/bin/calabash-android-setup.rb +2 -3
  3. data/lib/calabash-android/canned_steps.md +1 -1
  4. data/lib/calabash-android/helpers.rb +35 -2
  5. data/lib/calabash-android/lib/TestServer.apk +0 -0
  6. data/lib/calabash-android/operations.rb +13 -6
  7. data/lib/calabash-android/version.rb +1 -1
  8. data/test-server/instrumentation-backend/.classpath +2 -1
  9. data/test-server/instrumentation-backend/antlr.sh +2 -0
  10. data/test-server/instrumentation-backend/antlr/UIQuery.g +70 -0
  11. data/test-server/instrumentation-backend/antlr/UIQuery.tokens +12 -0
  12. data/test-server/instrumentation-backend/build-libs/antlr-3.4-complete.jar +0 -0
  13. data/test-server/instrumentation-backend/build-libs/junit.jar +0 -0
  14. data/test-server/instrumentation-backend/build.xml +56 -0
  15. data/test-server/instrumentation-backend/src/org/antlr/runtime/ANTLRFileStream.java +78 -0
  16. data/test-server/instrumentation-backend/src/org/antlr/runtime/ANTLRInputStream.java +70 -0
  17. data/test-server/instrumentation-backend/src/org/antlr/runtime/ANTLRReaderStream.java +95 -0
  18. data/test-server/instrumentation-backend/src/org/antlr/runtime/ANTLRStringStream.java +230 -0
  19. data/test-server/instrumentation-backend/src/org/antlr/runtime/BaseRecognizer.java +894 -0
  20. data/test-server/instrumentation-backend/src/org/antlr/runtime/BitSet.java +325 -0
  21. data/test-server/instrumentation-backend/src/org/antlr/runtime/BufferedTokenStream.java +272 -0
  22. data/test-server/instrumentation-backend/src/org/antlr/runtime/CharStream.java +57 -0
  23. data/test-server/instrumentation-backend/src/org/antlr/runtime/CharStreamState.java +45 -0
  24. data/test-server/instrumentation-backend/src/org/antlr/runtime/ClassicToken.java +141 -0
  25. data/test-server/instrumentation-backend/src/org/antlr/runtime/CommonToken.java +191 -0
  26. data/test-server/instrumentation-backend/src/org/antlr/runtime/CommonTokenStream.java +153 -0
  27. data/test-server/instrumentation-backend/src/org/antlr/runtime/DFA.java +250 -0
  28. data/test-server/instrumentation-backend/src/org/antlr/runtime/EarlyExitException.java +41 -0
  29. data/test-server/instrumentation-backend/src/org/antlr/runtime/FailedPredicateException.java +54 -0
  30. data/test-server/instrumentation-backend/src/org/antlr/runtime/IntStream.java +122 -0
  31. data/test-server/instrumentation-backend/src/org/antlr/runtime/LegacyCommonTokenStream.java +394 -0
  32. data/test-server/instrumentation-backend/src/org/antlr/runtime/Lexer.java +340 -0
  33. data/test-server/instrumentation-backend/src/org/antlr/runtime/MismatchedNotSetException.java +41 -0
  34. data/test-server/instrumentation-backend/src/org/antlr/runtime/MismatchedRangeException.java +45 -0
  35. data/test-server/instrumentation-backend/src/org/antlr/runtime/MismatchedSetException.java +44 -0
  36. data/test-server/instrumentation-backend/src/org/antlr/runtime/MismatchedTokenException.java +45 -0
  37. data/test-server/instrumentation-backend/src/org/antlr/runtime/MismatchedTreeNodeException.java +49 -0
  38. data/test-server/instrumentation-backend/src/org/antlr/runtime/MissingTokenException.java +56 -0
  39. data/test-server/instrumentation-backend/src/org/antlr/runtime/NoViableAltException.java +57 -0
  40. data/test-server/instrumentation-backend/src/org/antlr/runtime/Parser.java +98 -0
  41. data/test-server/instrumentation-backend/src/org/antlr/runtime/ParserRuleReturnScope.java +52 -0
  42. data/test-server/instrumentation-backend/src/org/antlr/runtime/RecognitionException.java +180 -0
  43. data/test-server/instrumentation-backend/src/org/antlr/runtime/RecognizerSharedState.java +144 -0
  44. data/test-server/instrumentation-backend/src/org/antlr/runtime/RuleReturnScope.java +42 -0
  45. data/test-server/instrumentation-backend/src/org/antlr/runtime/SerializedGrammar.java +204 -0
  46. data/test-server/instrumentation-backend/src/org/antlr/runtime/Token.java +92 -0
  47. data/test-server/instrumentation-backend/src/org/antlr/runtime/TokenRewriteStream.java +569 -0
  48. data/test-server/instrumentation-backend/src/org/antlr/runtime/TokenSource.java +54 -0
  49. data/test-server/instrumentation-backend/src/org/antlr/runtime/TokenStream.java +75 -0
  50. data/test-server/instrumentation-backend/src/org/antlr/runtime/UnbufferedTokenStream.java +82 -0
  51. data/test-server/instrumentation-backend/src/org/antlr/runtime/UnwantedTokenException.java +53 -0
  52. data/test-server/instrumentation-backend/src/org/antlr/runtime/debug/BlankDebugEventListener.java +77 -0
  53. data/test-server/instrumentation-backend/src/org/antlr/runtime/debug/DebugEventHub.java +292 -0
  54. data/test-server/instrumentation-backend/src/org/antlr/runtime/debug/DebugEventListener.java +323 -0
  55. data/test-server/instrumentation-backend/src/org/antlr/runtime/debug/DebugEventRepeater.java +88 -0
  56. data/test-server/instrumentation-backend/src/org/antlr/runtime/debug/DebugEventSocketProxy.java +358 -0
  57. data/test-server/instrumentation-backend/src/org/antlr/runtime/debug/DebugParser.java +101 -0
  58. data/test-server/instrumentation-backend/src/org/antlr/runtime/debug/DebugTokenStream.java +156 -0
  59. data/test-server/instrumentation-backend/src/org/antlr/runtime/debug/DebugTreeAdaptor.java +250 -0
  60. data/test-server/instrumentation-backend/src/org/antlr/runtime/debug/DebugTreeNodeStream.java +155 -0
  61. data/test-server/instrumentation-backend/src/org/antlr/runtime/debug/DebugTreeParser.java +112 -0
  62. data/test-server/instrumentation-backend/src/org/antlr/runtime/debug/ParseTreeBuilder.java +109 -0
  63. data/test-server/instrumentation-backend/src/org/antlr/runtime/debug/Profiler.java +772 -0
  64. data/test-server/instrumentation-backend/src/org/antlr/runtime/debug/RemoteDebugEventSocketListener.java +541 -0
  65. data/test-server/instrumentation-backend/src/org/antlr/runtime/debug/TraceDebugEventListener.java +108 -0
  66. data/test-server/instrumentation-backend/src/org/antlr/runtime/debug/Tracer.java +69 -0
  67. data/test-server/instrumentation-backend/src/org/antlr/runtime/misc/DoubleKeyMap.java +62 -0
  68. data/test-server/instrumentation-backend/src/org/antlr/runtime/misc/FastQueue.java +100 -0
  69. data/test-server/instrumentation-backend/src/org/antlr/runtime/misc/IntArray.java +87 -0
  70. data/test-server/instrumentation-backend/src/org/antlr/runtime/misc/LookaheadStream.java +161 -0
  71. data/test-server/instrumentation-backend/src/org/antlr/runtime/misc/Stats.java +189 -0
  72. data/test-server/instrumentation-backend/src/org/antlr/runtime/tree/BaseTree.java +349 -0
  73. data/test-server/instrumentation-backend/src/org/antlr/runtime/tree/BaseTreeAdaptor.java +279 -0
  74. data/test-server/instrumentation-backend/src/org/antlr/runtime/tree/BufferedTreeNodeStream.java +489 -0
  75. data/test-server/instrumentation-backend/src/org/antlr/runtime/tree/CommonErrorNode.java +108 -0
  76. data/test-server/instrumentation-backend/src/org/antlr/runtime/tree/CommonTree.java +185 -0
  77. data/test-server/instrumentation-backend/src/org/antlr/runtime/tree/CommonTreeAdaptor.java +168 -0
  78. data/test-server/instrumentation-backend/src/org/antlr/runtime/tree/CommonTreeNodeStream.java +171 -0
  79. data/test-server/instrumentation-backend/src/org/antlr/runtime/tree/ParseTree.java +119 -0
  80. data/test-server/instrumentation-backend/src/org/antlr/runtime/tree/RewriteCardinalityException.java +47 -0
  81. data/test-server/instrumentation-backend/src/org/antlr/runtime/tree/RewriteEarlyExitException.java +39 -0
  82. data/test-server/instrumentation-backend/src/org/antlr/runtime/tree/RewriteEmptyStreamException.java +35 -0
  83. data/test-server/instrumentation-backend/src/org/antlr/runtime/tree/RewriteRuleElementStream.java +210 -0
  84. data/test-server/instrumentation-backend/src/org/antlr/runtime/tree/RewriteRuleNodeStream.java +70 -0
  85. data/test-server/instrumentation-backend/src/org/antlr/runtime/tree/RewriteRuleSubtreeStream.java +86 -0
  86. data/test-server/instrumentation-backend/src/org/antlr/runtime/tree/RewriteRuleTokenStream.java +76 -0
  87. data/test-server/instrumentation-backend/src/org/antlr/runtime/tree/Tree.java +127 -0
  88. data/test-server/instrumentation-backend/src/org/antlr/runtime/tree/TreeAdaptor.java +263 -0
  89. data/test-server/instrumentation-backend/src/org/antlr/runtime/tree/TreeFilter.java +135 -0
  90. data/test-server/instrumentation-backend/src/org/antlr/runtime/tree/TreeIterator.java +132 -0
  91. data/test-server/instrumentation-backend/src/org/antlr/runtime/tree/TreeNodeStream.java +106 -0
  92. data/test-server/instrumentation-backend/src/org/antlr/runtime/tree/TreeParser.java +169 -0
  93. data/test-server/instrumentation-backend/src/org/antlr/runtime/tree/TreePatternLexer.java +135 -0
  94. data/test-server/instrumentation-backend/src/org/antlr/runtime/tree/TreePatternParser.java +154 -0
  95. data/test-server/instrumentation-backend/src/org/antlr/runtime/tree/TreeRewriter.java +124 -0
  96. data/test-server/instrumentation-backend/src/org/antlr/runtime/tree/TreeRuleReturnScope.java +41 -0
  97. data/test-server/instrumentation-backend/src/org/antlr/runtime/tree/TreeVisitor.java +69 -0
  98. data/test-server/instrumentation-backend/src/org/antlr/runtime/tree/TreeVisitorAction.java +47 -0
  99. data/test-server/instrumentation-backend/src/org/antlr/runtime/tree/TreeWizard.java +531 -0
  100. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/ClearAppData.java +22 -7
  101. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/InstrumentationBackend.java +4 -4
  102. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/Result.java +0 -1
  103. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/HttpServer.java +161 -129
  104. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/activity/SetActivityOrientation.java +5 -7
  105. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/view/GetViewProperty.java +1 -7
  106. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/query/Query.java +70 -61
  107. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/query/UIQuery.tokens +12 -0
  108. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/query/ViewMapper.java +63 -0
  109. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/query/antlr/UIQuery.tokens +10 -0
  110. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/query/antlr/UIQueryLexer.java +945 -0
  111. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/query/antlr/UIQueryParser.java +463 -0
  112. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/query/ast/InvalidUIQueryException.java +10 -0
  113. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/query/ast/UIQueryAST.java +8 -0
  114. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/query/ast/UIQueryASTClassName.java +115 -0
  115. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/query/ast/UIQueryASTWith.java +157 -0
  116. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/query/ast/UIQueryDirection.java +5 -0
  117. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/query/ast/UIQueryEvaluator.java +205 -0
  118. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/query/ast/UIQueryUtils.java +135 -0
  119. data/test-server/instrumentation-backend/tests/sh/calaba/instrumentationbackend/query/tests/UIQueryTest.java +134 -0
  120. metadata +106 -3
  121. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/activity/SetOrientation.java +0 -39
@@ -1,85 +1,83 @@
1
1
  package sh.calaba.instrumentationbackend.query;
2
2
 
3
- import android.content.res.Resources;
4
- import android.view.View;
5
- import android.widget.Button;
6
- import android.widget.CheckBox;
7
- import android.widget.TextView;
8
- import sh.calaba.instrumentationbackend.InstrumentationBackend;
3
+ import static sh.calaba.instrumentationbackend.InstrumentationBackend.viewFetcher;
9
4
 
10
5
  import java.util.ArrayList;
11
- import java.util.HashMap;
6
+ import java.util.Collections;
7
+ import java.util.HashSet;
12
8
  import java.util.List;
13
- import java.util.Map;
9
+ import java.util.Set;
10
+ import java.util.concurrent.atomic.AtomicReference;
14
11
 
15
- import static sh.calaba.instrumentationbackend.InstrumentationBackend.*;
12
+ import sh.calaba.instrumentationbackend.InstrumentationBackend;
13
+ import sh.calaba.instrumentationbackend.query.ast.UIQueryEvaluator;
14
+ import sh.calaba.instrumentationbackend.query.ast.UIQueryUtils;
15
+ import android.os.Looper;
16
+ import android.view.View;
16
17
 
17
18
  public class Query {
18
19
 
19
20
  private String queryString;
21
+ @SuppressWarnings("rawtypes")
22
+ private List arguments;
20
23
 
21
- public Query(String queryString) {
22
- System.out.println("CREATED QUERY: " + queryString);
24
+ public Query(String queryString) {
23
25
  this.queryString = queryString;
26
+ this.arguments = Collections.EMPTY_LIST;
27
+ if (this.queryString == null || this.queryString.trim().equals(""))
28
+ {
29
+ throw new IllegalArgumentException("Illegal query: "+this.queryString);
30
+ }
24
31
  }
25
32
 
33
+ @SuppressWarnings("rawtypes")
34
+ public Query(String queryString,List args) {
35
+ this(queryString);
36
+ this.arguments = args;
37
+ }
26
38
 
27
- public QueryResult execute() {
28
- List<Map<?,?>> result = new ArrayList<Map<?, ?>>();
29
- for (View v : allVisibleViews()) {
30
-
31
- if (!v.isShown() ) {
32
- continue;
33
- }
34
-
35
- if (queryString != null) {
36
- if (!queryString.isEmpty()) {
37
- if (!queryString.equalsIgnoreCase(v.getClass().getSimpleName())) {
38
- continue;
39
- }
40
- }
41
- }
39
+ public QueryResult executeInMainThread()
40
+ {
41
+ if ( Looper.getMainLooper().getThread() != Thread.currentThread()) {
42
+ return execute();
43
+ }
42
44
 
43
- System.out.println(v.getClass().getSimpleName().toString());
44
- Map view = new HashMap();
45
- view.put("class", v.getClass().getSimpleName());
46
- view.put("description", v.toString());
47
- view.put("contentDescription", v.getContentDescription());
48
- view.put("enabled", v.isEnabled());
49
- String id = null;
50
- try {
51
- id = InstrumentationBackend.solo.getCurrentActivity().getResources().getResourceEntryName(v.getId());
52
- } catch (Resources.NotFoundException e) {
53
- System.out.println("Resource not found for " + v.getId() + ". Moving on.");
45
+ final AtomicReference<QueryResult> result = new AtomicReference<QueryResult>();
46
+ InstrumentationBackend.instrumentation.runOnMainSync(new Runnable() {
47
+ @Override
48
+ public void run() {
49
+ result.set(execute());
54
50
  }
55
- view.put("id", id);
56
-
57
- Map frame = new HashMap();
58
- int[] location = new int[2];
59
- v.getLocationOnScreen(location);
60
-
61
- frame.put("x", location[0]);
62
- frame.put("y", location[1]);
63
- frame.put("width", v.getWidth());
64
- frame.put("height", v.getHeight());
51
+ });
52
+ return result.get();
65
53
 
66
- view.put("frame", frame);
54
+ }
67
55
 
68
- if (v instanceof Button) {
69
- Button b = (Button)v;
70
- view.put("text", b.getText().toString());
71
- }
72
- if (v instanceof CheckBox) {
73
- CheckBox c = (CheckBox)v;
74
- view.put("checked", c.isChecked());
56
+ @SuppressWarnings({"unchecked", "rawtypes" })
57
+ public QueryResult execute() {
58
+ List result = new ArrayList();
59
+ View decorView = InstrumentationBackend.solo
60
+ .getCurrentActivity().getWindow().getDecorView();
61
+ if (decorView == null) { throw new IllegalStateException("Unable to find window decorView."); }
62
+ View rootView = decorView
63
+ .findViewById(android.R.id.content);
64
+ if (rootView == null) { throw new IllegalStateException("Unable to find root view."); }
65
+
66
+ long before = System.currentTimeMillis();
67
+ List queryResults = UIQueryEvaluator.evaluateQueryWithOptions(this.queryString, rootViews(), this.arguments);
68
+ long after = System.currentTimeMillis();
69
+
70
+ String action = "EvaluateQuery";
71
+ System.out.println(action+ " took: "+ (after-before) + "ms");
72
+
73
+ for (Object v : queryResults) {
74
+ if (UIQueryUtils.isVisible(v)) {
75
+ System.out.println("Query result: "+v);
76
+ result.add(ViewMapper.extractDataFromView(v));
75
77
  }
76
- if (v instanceof TextView) {
77
- TextView t = (TextView)v;
78
- view.put("text", t.getText().toString());
79
- }
80
-
81
- result.add(view);
78
+
82
79
  }
80
+
83
81
  return new QueryResult(result);
84
82
  }
85
83
 
@@ -87,4 +85,15 @@ public class Query {
87
85
  public List<View> allVisibleViews() {
88
86
  return viewFetcher.getAllViews(false);
89
87
  }
88
+
89
+ public List<View> rootViews() {
90
+ Set<View> parents = new HashSet<View>(8);
91
+ for (View v : allVisibleViews())
92
+ {
93
+ parents.add(viewFetcher.getTopParent(v));
94
+ }
95
+ List<View> results = new ArrayList<View>();
96
+ results.addAll(parents);
97
+ return results;
98
+ }
90
99
  }
@@ -0,0 +1,12 @@
1
+ BOOL=4
2
+ ESC_SEQ=5
3
+ FILTER_COLON=6
4
+ HEX_DIGIT=7
5
+ INT=8
6
+ NAME=9
7
+ NIL=10
8
+ OCTAL_ESC=11
9
+ QUALIFIED_NAME=12
10
+ STRING=13
11
+ UNICODE_ESC=14
12
+ WHITE=15
@@ -0,0 +1,63 @@
1
+ package sh.calaba.instrumentationbackend.query;
2
+
3
+ import java.util.HashMap;
4
+ import java.util.Map;
5
+
6
+ import sh.calaba.instrumentationbackend.InstrumentationBackend;
7
+ import android.content.res.Resources;
8
+ import android.view.View;
9
+ import android.widget.Button;
10
+ import android.widget.CheckBox;
11
+ import android.widget.TextView;
12
+
13
+ public class ViewMapper {
14
+
15
+ @SuppressWarnings({ "rawtypes", "unchecked" })
16
+ public static Object extractDataFromView(Object obj) {
17
+ if (!(obj instanceof View)) {return obj;}
18
+ View v = (View) obj;
19
+ Map data = new HashMap();
20
+ data.put("class", v.getClass().getSimpleName());
21
+ data.put("qualified_class", v.getClass().getName());
22
+ data.put("description", v.toString());
23
+ CharSequence description = v.getContentDescription();
24
+ data.put("contentDescription", description != null ? description.toString() : null);
25
+ data.put("enabled", v.isEnabled());
26
+ String id = null;
27
+ try {
28
+ id = InstrumentationBackend.solo.getCurrentActivity()
29
+ .getResources().getResourceEntryName(v.getId());
30
+ } catch (Resources.NotFoundException e) {
31
+ System.out.println("Resource not found for " + v.getId()
32
+ + ". Moving on.");
33
+ }
34
+ data.put("id", id);
35
+
36
+ Map frame = new HashMap();
37
+ int[] location = new int[2];
38
+ v.getLocationOnScreen(location);
39
+
40
+ frame.put("x", location[0]);
41
+ frame.put("y", location[1]);
42
+ frame.put("width", v.getWidth());
43
+ frame.put("height", v.getHeight());
44
+
45
+ data.put("frame", frame);
46
+
47
+ if (v instanceof Button) {
48
+ Button b = (Button) v;
49
+ data.put("text", b.getText().toString());
50
+ }
51
+ if (v instanceof CheckBox) {
52
+ CheckBox c = (CheckBox) v;
53
+ data.put("checked", c.isChecked());
54
+ }
55
+ if (v instanceof TextView) {
56
+ TextView t = (TextView) v;
57
+ data.put("text", t.getText().toString());
58
+ }
59
+ return data;
60
+
61
+ }
62
+
63
+ }
@@ -0,0 +1,10 @@
1
+ ESC_SEQ=4
2
+ FILTER_COLON=5
3
+ HEX_DIGIT=6
4
+ INT=7
5
+ NAME=8
6
+ OCTAL_ESC=9
7
+ QUALIFIED_NAME=10
8
+ STRING=11
9
+ UNICODE_ESC=12
10
+ WHITE=13
@@ -0,0 +1,945 @@
1
+ // $ANTLR 3.4 antlr/UIQuery.g 2012-12-14 14:03:36
2
+
3
+ package sh.calaba.instrumentationbackend.query.antlr;
4
+
5
+
6
+ import org.antlr.runtime.*;
7
+ import java.util.Stack;
8
+ import java.util.List;
9
+ import java.util.ArrayList;
10
+
11
+ @SuppressWarnings({"all", "warnings", "unchecked"})
12
+ public class UIQueryLexer extends Lexer {
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;
26
+
27
+ // delegates
28
+ // delegators
29
+ public Lexer[] getDelegates() {
30
+ return new Lexer[] {};
31
+ }
32
+
33
+ public UIQueryLexer() {}
34
+ public UIQueryLexer(CharStream input) {
35
+ this(input, new RecognizerSharedState());
36
+ }
37
+ public UIQueryLexer(CharStream input, RecognizerSharedState state) {
38
+ super(input,state);
39
+ }
40
+ public String getGrammarFileName() { return "antlr/UIQuery.g"; }
41
+
42
+ // $ANTLR start "QUALIFIED_NAME"
43
+ public final void mQUALIFIED_NAME() throws RecognitionException {
44
+ try {
45
+ int _type = QUALIFIED_NAME;
46
+ int _channel = DEFAULT_TOKEN_CHANNEL;
47
+ // antlr/UIQuery.g:25:16: ( NAME ( '.' NAME )+ )
48
+ // antlr/UIQuery.g:25:18: NAME ( '.' NAME )+
49
+ {
50
+ mNAME();
51
+
52
+
53
+ // antlr/UIQuery.g:25:23: ( '.' NAME )+
54
+ int cnt1=0;
55
+ loop1:
56
+ do {
57
+ int alt1=2;
58
+ int LA1_0 = input.LA(1);
59
+
60
+ if ( (LA1_0=='.') ) {
61
+ alt1=1;
62
+ }
63
+
64
+
65
+ switch (alt1) {
66
+ case 1 :
67
+ // antlr/UIQuery.g:25:24: '.' NAME
68
+ {
69
+ match('.');
70
+
71
+ mNAME();
72
+
73
+
74
+ }
75
+ break;
76
+
77
+ default :
78
+ if ( cnt1 >= 1 ) break loop1;
79
+ EarlyExitException eee =
80
+ new EarlyExitException(1, input);
81
+ throw eee;
82
+ }
83
+ cnt1++;
84
+ } while (true);
85
+
86
+
87
+ }
88
+
89
+ state.type = _type;
90
+ state.channel = _channel;
91
+ }
92
+ finally {
93
+ // do for sure before leaving
94
+ }
95
+ }
96
+ // $ANTLR end "QUALIFIED_NAME"
97
+
98
+ // $ANTLR start "FILTER_COLON"
99
+ public final void mFILTER_COLON() throws RecognitionException {
100
+ try {
101
+ int _type = FILTER_COLON;
102
+ int _channel = DEFAULT_TOKEN_CHANNEL;
103
+ // antlr/UIQuery.g:29:15: ( ':' )
104
+ // antlr/UIQuery.g:29:17: ':'
105
+ {
106
+ match(':');
107
+
108
+ }
109
+
110
+ state.type = _type;
111
+ state.channel = _channel;
112
+ }
113
+ finally {
114
+ // do for sure before leaving
115
+ }
116
+ }
117
+ // $ANTLR end "FILTER_COLON"
118
+
119
+ // $ANTLR start "INT"
120
+ public final void mINT() throws RecognitionException {
121
+ try {
122
+ int _type = INT;
123
+ int _channel = DEFAULT_TOKEN_CHANNEL;
124
+ // antlr/UIQuery.g:33:5: ( ( '0' .. '9' )+ )
125
+ // antlr/UIQuery.g:33:7: ( '0' .. '9' )+
126
+ {
127
+ // antlr/UIQuery.g:33:7: ( '0' .. '9' )+
128
+ int cnt2=0;
129
+ loop2:
130
+ do {
131
+ int alt2=2;
132
+ int LA2_0 = input.LA(1);
133
+
134
+ if ( ((LA2_0 >= '0' && LA2_0 <= '9')) ) {
135
+ alt2=1;
136
+ }
137
+
138
+
139
+ switch (alt2) {
140
+ case 1 :
141
+ // antlr/UIQuery.g:
142
+ {
143
+ if ( (input.LA(1) >= '0' && input.LA(1) <= '9') ) {
144
+ input.consume();
145
+ }
146
+ else {
147
+ MismatchedSetException mse = new MismatchedSetException(null,input);
148
+ recover(mse);
149
+ throw mse;
150
+ }
151
+
152
+
153
+ }
154
+ break;
155
+
156
+ default :
157
+ if ( cnt2 >= 1 ) break loop2;
158
+ EarlyExitException eee =
159
+ new EarlyExitException(2, input);
160
+ throw eee;
161
+ }
162
+ cnt2++;
163
+ } while (true);
164
+
165
+
166
+ }
167
+
168
+ state.type = _type;
169
+ state.channel = _channel;
170
+ }
171
+ finally {
172
+ // do for sure before leaving
173
+ }
174
+ }
175
+ // $ANTLR end "INT"
176
+
177
+ // $ANTLR start "BOOL"
178
+ public final void mBOOL() throws RecognitionException {
179
+ try {
180
+ int _type = BOOL;
181
+ int _channel = DEFAULT_TOKEN_CHANNEL;
182
+ // antlr/UIQuery.g:36:6: ( 'true' | 'false' )
183
+ int alt3=2;
184
+ int LA3_0 = input.LA(1);
185
+
186
+ if ( (LA3_0=='t') ) {
187
+ alt3=1;
188
+ }
189
+ else if ( (LA3_0=='f') ) {
190
+ alt3=2;
191
+ }
192
+ else {
193
+ NoViableAltException nvae =
194
+ new NoViableAltException("", 3, 0, input);
195
+
196
+ throw nvae;
197
+
198
+ }
199
+ switch (alt3) {
200
+ case 1 :
201
+ // antlr/UIQuery.g:36:8: 'true'
202
+ {
203
+ match("true");
204
+
205
+
206
+
207
+ }
208
+ break;
209
+ case 2 :
210
+ // antlr/UIQuery.g:36:17: 'false'
211
+ {
212
+ match("false");
213
+
214
+
215
+
216
+ }
217
+ break;
218
+
219
+ }
220
+ state.type = _type;
221
+ state.channel = _channel;
222
+ }
223
+ finally {
224
+ // do for sure before leaving
225
+ }
226
+ }
227
+ // $ANTLR end "BOOL"
228
+
229
+ // $ANTLR start "NIL"
230
+ public final void mNIL() throws RecognitionException {
231
+ try {
232
+ int _type = NIL;
233
+ int _channel = DEFAULT_TOKEN_CHANNEL;
234
+ // antlr/UIQuery.g:39:5: ( 'nil' | 'null' )
235
+ int alt4=2;
236
+ int LA4_0 = input.LA(1);
237
+
238
+ if ( (LA4_0=='n') ) {
239
+ int LA4_1 = input.LA(2);
240
+
241
+ if ( (LA4_1=='i') ) {
242
+ alt4=1;
243
+ }
244
+ else if ( (LA4_1=='u') ) {
245
+ alt4=2;
246
+ }
247
+ else {
248
+ NoViableAltException nvae =
249
+ new NoViableAltException("", 4, 1, input);
250
+
251
+ throw nvae;
252
+
253
+ }
254
+ }
255
+ else {
256
+ NoViableAltException nvae =
257
+ new NoViableAltException("", 4, 0, input);
258
+
259
+ throw nvae;
260
+
261
+ }
262
+ switch (alt4) {
263
+ case 1 :
264
+ // antlr/UIQuery.g:39:7: 'nil'
265
+ {
266
+ match("nil");
267
+
268
+
269
+
270
+ }
271
+ break;
272
+ case 2 :
273
+ // antlr/UIQuery.g:39:15: 'null'
274
+ {
275
+ match("null");
276
+
277
+
278
+
279
+ }
280
+ break;
281
+
282
+ }
283
+ state.type = _type;
284
+ state.channel = _channel;
285
+ }
286
+ finally {
287
+ // do for sure before leaving
288
+ }
289
+ }
290
+ // $ANTLR end "NIL"
291
+
292
+ // $ANTLR start "NAME"
293
+ public final void mNAME() throws RecognitionException {
294
+ try {
295
+ int _type = NAME;
296
+ 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' | '_' )*
299
+ {
300
+ if ( (input.LA(1) >= 'A' && input.LA(1) <= 'Z')||input.LA(1)=='_'||(input.LA(1) >= 'a' && input.LA(1) <= 'z') ) {
301
+ input.consume();
302
+ }
303
+ else {
304
+ MismatchedSetException mse = new MismatchedSetException(null,input);
305
+ recover(mse);
306
+ throw mse;
307
+ }
308
+
309
+
310
+ // antlr/UIQuery.g:42:33: ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '_' )*
311
+ loop5:
312
+ do {
313
+ int alt5=2;
314
+ int LA5_0 = input.LA(1);
315
+
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;
318
+ }
319
+
320
+
321
+ switch (alt5) {
322
+ case 1 :
323
+ // antlr/UIQuery.g:
324
+ {
325
+ if ( (input.LA(1) >= '0' && input.LA(1) <= '9')||(input.LA(1) >= 'A' && input.LA(1) <= 'Z')||input.LA(1)=='_'||(input.LA(1) >= 'a' && input.LA(1) <= 'z') ) {
326
+ input.consume();
327
+ }
328
+ else {
329
+ MismatchedSetException mse = new MismatchedSetException(null,input);
330
+ recover(mse);
331
+ throw mse;
332
+ }
333
+
334
+
335
+ }
336
+ break;
337
+
338
+ default :
339
+ break loop5;
340
+ }
341
+ } while (true);
342
+
343
+
344
+ }
345
+
346
+ state.type = _type;
347
+ state.channel = _channel;
348
+ }
349
+ finally {
350
+ // do for sure before leaving
351
+ }
352
+ }
353
+ // $ANTLR end "NAME"
354
+
355
+ // $ANTLR start "STRING"
356
+ public final void mSTRING() throws RecognitionException {
357
+ try {
358
+ int _type = STRING;
359
+ int _channel = DEFAULT_TOKEN_CHANNEL;
360
+ // antlr/UIQuery.g:46:5: ( '\\'' ( ESC_SEQ |~ ( '\\\\' | '\"' ) )* '\\'' )
361
+ // antlr/UIQuery.g:46:8: '\\'' ( ESC_SEQ |~ ( '\\\\' | '\"' ) )* '\\''
362
+ {
363
+ match('\'');
364
+
365
+ // antlr/UIQuery.g:46:13: ( ESC_SEQ |~ ( '\\\\' | '\"' ) )*
366
+ loop6:
367
+ do {
368
+ int alt6=3;
369
+ int LA6_0 = input.LA(1);
370
+
371
+ if ( (LA6_0=='\'') ) {
372
+ int LA6_1 = input.LA(2);
373
+
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;
382
+ }
383
+ else if ( ((LA6_0 >= '\u0000' && LA6_0 <= '!')||(LA6_0 >= '#' && LA6_0 <= '&')||(LA6_0 >= '(' && LA6_0 <= '[')||(LA6_0 >= ']' && LA6_0 <= '\uFFFF')) ) {
384
+ alt6=2;
385
+ }
386
+
387
+
388
+ switch (alt6) {
389
+ case 1 :
390
+ // antlr/UIQuery.g:46:15: ESC_SEQ
391
+ {
392
+ mESC_SEQ();
393
+
394
+
395
+ }
396
+ break;
397
+ case 2 :
398
+ // antlr/UIQuery.g:46:25: ~ ( '\\\\' | '\"' )
399
+ {
400
+ if ( (input.LA(1) >= '\u0000' && input.LA(1) <= '!')||(input.LA(1) >= '#' && input.LA(1) <= '[')||(input.LA(1) >= ']' && input.LA(1) <= '\uFFFF') ) {
401
+ input.consume();
402
+ }
403
+ else {
404
+ MismatchedSetException mse = new MismatchedSetException(null,input);
405
+ recover(mse);
406
+ throw mse;
407
+ }
408
+
409
+
410
+ }
411
+ break;
412
+
413
+ default :
414
+ break loop6;
415
+ }
416
+ } while (true);
417
+
418
+
419
+ match('\'');
420
+
421
+ }
422
+
423
+ state.type = _type;
424
+ state.channel = _channel;
425
+ }
426
+ finally {
427
+ // do for sure before leaving
428
+ }
429
+ }
430
+ // $ANTLR end "STRING"
431
+
432
+ // $ANTLR start "WHITE"
433
+ public final void mWHITE() throws RecognitionException {
434
+ try {
435
+ int _type = WHITE;
436
+ int _channel = DEFAULT_TOKEN_CHANNEL;
437
+ // antlr/UIQuery.g:49:9: ( ( ' ' )* )
438
+ // antlr/UIQuery.g:49:11: ( ' ' )*
439
+ {
440
+ // antlr/UIQuery.g:49:11: ( ' ' )*
441
+ loop7:
442
+ do {
443
+ int alt7=2;
444
+ int LA7_0 = input.LA(1);
445
+
446
+ if ( (LA7_0==' ') ) {
447
+ alt7=1;
448
+ }
449
+
450
+
451
+ switch (alt7) {
452
+ case 1 :
453
+ // antlr/UIQuery.g:49:11: ' '
454
+ {
455
+ match(' ');
456
+
457
+ }
458
+ break;
459
+
460
+ default :
461
+ break loop7;
462
+ }
463
+ } while (true);
464
+
465
+
466
+ }
467
+
468
+ state.type = _type;
469
+ state.channel = _channel;
470
+ }
471
+ finally {
472
+ // do for sure before leaving
473
+ }
474
+ }
475
+ // $ANTLR end "WHITE"
476
+
477
+ // $ANTLR start "HEX_DIGIT"
478
+ public final void mHEX_DIGIT() throws RecognitionException {
479
+ try {
480
+ // antlr/UIQuery.g:52:11: ( ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' ) )
481
+ // antlr/UIQuery.g:
482
+ {
483
+ 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') ) {
484
+ input.consume();
485
+ }
486
+ else {
487
+ MismatchedSetException mse = new MismatchedSetException(null,input);
488
+ recover(mse);
489
+ throw mse;
490
+ }
491
+
492
+
493
+ }
494
+
495
+
496
+ }
497
+ finally {
498
+ // do for sure before leaving
499
+ }
500
+ }
501
+ // $ANTLR end "HEX_DIGIT"
502
+
503
+ // $ANTLR start "ESC_SEQ"
504
+ public final void mESC_SEQ() throws RecognitionException {
505
+ 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);
509
+
510
+ if ( (LA8_0=='\\') ) {
511
+ switch ( input.LA(2) ) {
512
+ case '\"':
513
+ case '\'':
514
+ case '\\':
515
+ case 'b':
516
+ case 'f':
517
+ case 'n':
518
+ case 'r':
519
+ case 't':
520
+ {
521
+ alt8=1;
522
+ }
523
+ break;
524
+ case 'u':
525
+ {
526
+ alt8=2;
527
+ }
528
+ break;
529
+ case '0':
530
+ case '1':
531
+ case '2':
532
+ case '3':
533
+ case '4':
534
+ case '5':
535
+ case '6':
536
+ case '7':
537
+ {
538
+ alt8=3;
539
+ }
540
+ break;
541
+ default:
542
+ NoViableAltException nvae =
543
+ new NoViableAltException("", 8, 1, input);
544
+
545
+ throw nvae;
546
+
547
+ }
548
+
549
+ }
550
+ else {
551
+ NoViableAltException nvae =
552
+ new NoViableAltException("", 8, 0, input);
553
+
554
+ throw nvae;
555
+
556
+ }
557
+ switch (alt8) {
558
+ case 1 :
559
+ // antlr/UIQuery.g:56:9: '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | '\\\"' | '\\'' | '\\\\' )
560
+ {
561
+ match('\\');
562
+
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' ) {
564
+ input.consume();
565
+ }
566
+ else {
567
+ MismatchedSetException mse = new MismatchedSetException(null,input);
568
+ recover(mse);
569
+ throw mse;
570
+ }
571
+
572
+
573
+ }
574
+ break;
575
+ case 2 :
576
+ // antlr/UIQuery.g:57:9: UNICODE_ESC
577
+ {
578
+ mUNICODE_ESC();
579
+
580
+
581
+ }
582
+ break;
583
+ case 3 :
584
+ // antlr/UIQuery.g:58:9: OCTAL_ESC
585
+ {
586
+ mOCTAL_ESC();
587
+
588
+
589
+ }
590
+ break;
591
+
592
+ }
593
+
594
+ }
595
+ finally {
596
+ // do for sure before leaving
597
+ }
598
+ }
599
+ // $ANTLR end "ESC_SEQ"
600
+
601
+ // $ANTLR start "OCTAL_ESC"
602
+ public final void mOCTAL_ESC() throws RecognitionException {
603
+ 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);
607
+
608
+ if ( (LA9_0=='\\') ) {
609
+ int LA9_1 = input.LA(2);
610
+
611
+ if ( ((LA9_1 >= '0' && LA9_1 <= '3')) ) {
612
+ int LA9_2 = input.LA(3);
613
+
614
+ if ( ((LA9_2 >= '0' && LA9_2 <= '7')) ) {
615
+ int LA9_4 = input.LA(4);
616
+
617
+ if ( ((LA9_4 >= '0' && LA9_4 <= '7')) ) {
618
+ alt9=1;
619
+ }
620
+ else {
621
+ alt9=2;
622
+ }
623
+ }
624
+ else {
625
+ alt9=3;
626
+ }
627
+ }
628
+ else if ( ((LA9_1 >= '4' && LA9_1 <= '7')) ) {
629
+ int LA9_3 = input.LA(3);
630
+
631
+ if ( ((LA9_3 >= '0' && LA9_3 <= '7')) ) {
632
+ alt9=2;
633
+ }
634
+ else {
635
+ alt9=3;
636
+ }
637
+ }
638
+ else {
639
+ NoViableAltException nvae =
640
+ new NoViableAltException("", 9, 1, input);
641
+
642
+ throw nvae;
643
+
644
+ }
645
+ }
646
+ else {
647
+ NoViableAltException nvae =
648
+ new NoViableAltException("", 9, 0, input);
649
+
650
+ throw nvae;
651
+
652
+ }
653
+ switch (alt9) {
654
+ case 1 :
655
+ // antlr/UIQuery.g:63:9: '\\\\' ( '0' .. '3' ) ( '0' .. '7' ) ( '0' .. '7' )
656
+ {
657
+ match('\\');
658
+
659
+ if ( (input.LA(1) >= '0' && input.LA(1) <= '3') ) {
660
+ input.consume();
661
+ }
662
+ else {
663
+ MismatchedSetException mse = new MismatchedSetException(null,input);
664
+ recover(mse);
665
+ throw mse;
666
+ }
667
+
668
+
669
+ if ( (input.LA(1) >= '0' && input.LA(1) <= '7') ) {
670
+ input.consume();
671
+ }
672
+ else {
673
+ MismatchedSetException mse = new MismatchedSetException(null,input);
674
+ recover(mse);
675
+ throw mse;
676
+ }
677
+
678
+
679
+ if ( (input.LA(1) >= '0' && input.LA(1) <= '7') ) {
680
+ input.consume();
681
+ }
682
+ else {
683
+ MismatchedSetException mse = new MismatchedSetException(null,input);
684
+ recover(mse);
685
+ throw mse;
686
+ }
687
+
688
+
689
+ }
690
+ break;
691
+ case 2 :
692
+ // antlr/UIQuery.g:64:9: '\\\\' ( '0' .. '7' ) ( '0' .. '7' )
693
+ {
694
+ match('\\');
695
+
696
+ if ( (input.LA(1) >= '0' && input.LA(1) <= '7') ) {
697
+ input.consume();
698
+ }
699
+ else {
700
+ MismatchedSetException mse = new MismatchedSetException(null,input);
701
+ recover(mse);
702
+ throw mse;
703
+ }
704
+
705
+
706
+ if ( (input.LA(1) >= '0' && input.LA(1) <= '7') ) {
707
+ input.consume();
708
+ }
709
+ else {
710
+ MismatchedSetException mse = new MismatchedSetException(null,input);
711
+ recover(mse);
712
+ throw mse;
713
+ }
714
+
715
+
716
+ }
717
+ break;
718
+ case 3 :
719
+ // antlr/UIQuery.g:65:9: '\\\\' ( '0' .. '7' )
720
+ {
721
+ match('\\');
722
+
723
+ if ( (input.LA(1) >= '0' && input.LA(1) <= '7') ) {
724
+ input.consume();
725
+ }
726
+ else {
727
+ MismatchedSetException mse = new MismatchedSetException(null,input);
728
+ recover(mse);
729
+ throw mse;
730
+ }
731
+
732
+
733
+ }
734
+ break;
735
+
736
+ }
737
+
738
+ }
739
+ finally {
740
+ // do for sure before leaving
741
+ }
742
+ }
743
+ // $ANTLR end "OCTAL_ESC"
744
+
745
+ // $ANTLR start "UNICODE_ESC"
746
+ public final void mUNICODE_ESC() throws RecognitionException {
747
+ 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
750
+ {
751
+ match('\\');
752
+
753
+ match('u');
754
+
755
+ mHEX_DIGIT();
756
+
757
+
758
+ mHEX_DIGIT();
759
+
760
+
761
+ mHEX_DIGIT();
762
+
763
+
764
+ mHEX_DIGIT();
765
+
766
+
767
+ }
768
+
769
+
770
+ }
771
+ finally {
772
+ // do for sure before leaving
773
+ }
774
+ }
775
+ // $ANTLR end "UNICODE_ESC"
776
+
777
+ 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) {
782
+ case 1 :
783
+ // antlr/UIQuery.g:1:10: QUALIFIED_NAME
784
+ {
785
+ mQUALIFIED_NAME();
786
+
787
+
788
+ }
789
+ break;
790
+ case 2 :
791
+ // antlr/UIQuery.g:1:25: FILTER_COLON
792
+ {
793
+ mFILTER_COLON();
794
+
795
+
796
+ }
797
+ break;
798
+ case 3 :
799
+ // antlr/UIQuery.g:1:38: INT
800
+ {
801
+ mINT();
802
+
803
+
804
+ }
805
+ break;
806
+ case 4 :
807
+ // antlr/UIQuery.g:1:42: BOOL
808
+ {
809
+ mBOOL();
810
+
811
+
812
+ }
813
+ break;
814
+ case 5 :
815
+ // antlr/UIQuery.g:1:47: NIL
816
+ {
817
+ mNIL();
818
+
819
+
820
+ }
821
+ break;
822
+ case 6 :
823
+ // antlr/UIQuery.g:1:51: NAME
824
+ {
825
+ mNAME();
826
+
827
+
828
+ }
829
+ break;
830
+ case 7 :
831
+ // antlr/UIQuery.g:1:56: STRING
832
+ {
833
+ mSTRING();
834
+
835
+
836
+ }
837
+ break;
838
+ case 8 :
839
+ // antlr/UIQuery.g:1:63: WHITE
840
+ {
841
+ mWHITE();
842
+
843
+
844
+ }
845
+ break;
846
+
847
+ }
848
+
849
+ }
850
+
851
+
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",
874
+ "",
875
+ "",
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
+ "",
882
+ "",
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",
886
+ "",
887
+ "",
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",
904
+ "",
905
+ "\1\14\1\uffff\12\12\7\uffff\32\12\4\uffff\1\12\1\uffff\32\12",
906
+ "",
907
+ "\1\14\1\uffff\12\12\7\uffff\32\12\4\uffff\1\12\1\uffff\32\12"
908
+ };
909
+
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;
917
+
918
+ static {
919
+ int numStates = DFA10_transitionS.length;
920
+ DFA10_transition = new short[numStates][];
921
+ for (int i=0; i<numStates; i++) {
922
+ DFA10_transition[i] = DFA.unpackEncodedString(DFA10_transitionS[i]);
923
+ }
924
+ }
925
+
926
+ class DFA10 extends DFA {
927
+
928
+ public DFA10(BaseRecognizer recognizer) {
929
+ 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;
938
+ }
939
+ public String getDescription() {
940
+ return "1:1: Tokens : ( QUALIFIED_NAME | FILTER_COLON | INT | BOOL | NIL | NAME | STRING | WHITE );";
941
+ }
942
+ }
943
+
944
+
945
+ }