1 // $ANTLR 3.1.3 Mar 17, 2009 19:23:44 LensQuery.g 2009-10-13 14:02:52
\r
3 /*--------------------------------------------------------------------------
\r
4 * Copyright 2009 Taro L. Saito
\r
6 * Licensed under the Apache License, Version 2.0 (the "License");
\r
7 * you may not use this file except in compliance with the License.
\r
8 * You may obtain a copy of the License at
\r
10 * http://www.apache.org/licenses/LICENSE-2.0
\r
12 * Unless required by applicable law or agreed to in writing, software
\r
13 * distributed under the License is distributed on an "AS IS" BASIS,
\r
14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
\r
15 * See the License for the specific language governing permissions and
\r
16 * limitations under the License.
\r
17 *--------------------------------------------------------------------------*/
\r
18 //--------------------------------------
\r
21 // LensQueryParser.g
\r
22 // Since: Aug 6, 2009 08:30:02 AM
\r
24 //--------------------------------------
\r
25 package org.xerial.lens.relation.query.impl;
\r
29 import org.antlr.runtime.*;
\r
30 import java.util.Stack;
\r
31 import java.util.List;
\r
32 import java.util.ArrayList;
\r
35 import org.antlr.runtime.tree.*;
\r
37 public class LensQueryParser extends Parser {
\r
38 public static final String[] tokenNames = new String[] {
\r
39 "<invalid>", "<EOR>", "<DOWN>", "<UP>", "QUERY", "RELATION", "COMPARE", "OPERATOR", "OPERAND", "PATTERNMATCH", "NODE", "ALIAS", "NODEVALUE", "NAME", "VALUE", "LineBreakChar", "LineComment", "LineBreak", "Digit", "Letter", "HexDigit", "UnicodeChar", "EscapeSequence", "StringChar", "StringChar_s", "String", "Integer", "Frac", "Exp", "Double", "True", "False", "Null", "Lt", "Gt", "Leq", "Geq", "Eq", "Neq", "Match", "Regex", "Dot", "Comma", "Colon", "As", "LParen", "RParen", "Star", "UnsafeUnicodeChar", "SafeFirstLetter", "SafeLetter", "WhiteSpace", "QNameChar", "QName", "WhiteSpaces"
\r
41 public static final int PATTERNMATCH=9;
\r
42 public static final int Match=39;
\r
43 public static final int Regex=40;
\r
44 public static final int Digit=18;
\r
45 public static final int Frac=27;
\r
46 public static final int HexDigit=20;
\r
47 public static final int QUERY=4;
\r
48 public static final int ALIAS=11;
\r
49 public static final int VALUE=14;
\r
50 public static final int Letter=19;
\r
51 public static final int Comma=42;
\r
52 public static final int Dot=41;
\r
53 public static final int EscapeSequence=22;
\r
54 public static final int Integer=26;
\r
55 public static final int WhiteSpace=51;
\r
56 public static final int OPERATOR=7;
\r
57 public static final int False=31;
\r
58 public static final int LineComment=16;
\r
59 public static final int Colon=43;
\r
60 public static final int NODEVALUE=12;
\r
61 public static final int As=44;
\r
62 public static final int SafeFirstLetter=49;
\r
63 public static final int Null=32;
\r
64 public static final int Star=47;
\r
65 public static final int Eq=37;
\r
66 public static final int Exp=28;
\r
67 public static final int QNameChar=52;
\r
68 public static final int RELATION=5;
\r
69 public static final int Gt=34;
\r
70 public static final int RParen=46;
\r
71 public static final int UnicodeChar=21;
\r
72 public static final int StringChar=23;
\r
73 public static final int True=30;
\r
74 public static final int OPERAND=8;
\r
75 public static final int LineBreak=17;
\r
76 public static final int LParen=45;
\r
77 public static final int String=25;
\r
78 public static final int SafeLetter=50;
\r
79 public static final int LineBreakChar=15;
\r
80 public static final int COMPARE=6;
\r
81 public static final int QName=53;
\r
82 public static final int EOF=-1;
\r
83 public static final int Geq=36;
\r
84 public static final int NODE=10;
\r
85 public static final int StringChar_s=24;
\r
86 public static final int Neq=38;
\r
87 public static final int UnsafeUnicodeChar=48;
\r
88 public static final int Double=29;
\r
89 public static final int Lt=33;
\r
90 public static final int NAME=13;
\r
91 public static final int Leq=35;
\r
92 public static final int WhiteSpaces=54;
\r
98 public LensQueryParser(TokenStream input) {
\r
99 this(input, new RecognizerSharedState());
\r
101 public LensQueryParser(TokenStream input, RecognizerSharedState state) {
\r
102 super(input, state);
\r
106 protected TreeAdaptor adaptor = new CommonTreeAdaptor();
\r
108 public void setTreeAdaptor(TreeAdaptor adaptor) {
\r
109 this.adaptor = adaptor;
\r
111 public TreeAdaptor getTreeAdaptor() {
\r
115 public String[] getTokenNames() { return LensQueryParser.tokenNames; }
\r
116 public String getGrammarFileName() { return "LensQuery.g"; }
\r
121 public static class expr_return extends ParserRuleReturnScope {
\r
123 public Object getTree() { return tree; }
\r
126 // $ANTLR start "expr"
\r
127 // LensQuery.g:185:1: expr : relation ;
\r
128 public final LensQueryParser.expr_return expr() throws RecognitionException {
\r
129 LensQueryParser.expr_return retval = new LensQueryParser.expr_return();
\r
130 retval.start = input.LT(1);
\r
132 Object root_0 = null;
\r
134 LensQueryParser.relation_return relation1 = null;
\r
139 // LensQuery.g:185:5: ( relation )
\r
140 // LensQuery.g:186:3: relation
\r
142 root_0 = (Object)adaptor.nil();
\r
144 pushFollow(FOLLOW_relation_in_expr774);
\r
145 relation1=relation();
\r
149 adaptor.addChild(root_0, relation1.getTree());
\r
153 retval.stop = input.LT(-1);
\r
155 retval.tree = (Object)adaptor.rulePostProcessing(root_0);
\r
156 adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
\r
159 catch (RecognitionException re) {
\r
162 retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
\r
169 // $ANTLR end "expr"
\r
171 public static class relation_return extends ParserRuleReturnScope {
\r
173 public Object getTree() { return tree; }
\r
176 // $ANTLR start "relation"
\r
177 // LensQuery.g:189:1: relation : relation_i -> ^( RELATION relation_i ) ;
\r
178 public final LensQueryParser.relation_return relation() throws RecognitionException {
\r
179 LensQueryParser.relation_return retval = new LensQueryParser.relation_return();
\r
180 retval.start = input.LT(1);
\r
182 Object root_0 = null;
\r
184 LensQueryParser.relation_i_return relation_i2 = null;
\r
187 RewriteRuleSubtreeStream stream_relation_i=new RewriteRuleSubtreeStream(adaptor,"rule relation_i");
\r
189 // LensQuery.g:190:4: ( relation_i -> ^( RELATION relation_i ) )
\r
190 // LensQuery.g:190:6: relation_i
\r
192 pushFollow(FOLLOW_relation_i_in_relation792);
\r
193 relation_i2=relation_i();
\r
197 stream_relation_i.add(relation_i2.getTree());
\r
201 // elements: relation_i
\r
203 // rule labels: retval
\r
204 // token list labels:
\r
205 // rule list labels:
\r
206 // wildcard labels:
\r
207 retval.tree = root_0;
\r
208 RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
\r
210 root_0 = (Object)adaptor.nil();
\r
211 // 190:17: -> ^( RELATION relation_i )
\r
213 // LensQuery.g:190:20: ^( RELATION relation_i )
\r
215 Object root_1 = (Object)adaptor.nil();
\r
216 root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(RELATION, "RELATION"), root_1);
\r
218 adaptor.addChild(root_1, stream_relation_i.nextTree());
\r
220 adaptor.addChild(root_0, root_1);
\r
225 retval.tree = root_0;
\r
228 retval.stop = input.LT(-1);
\r
230 retval.tree = (Object)adaptor.rulePostProcessing(root_0);
\r
231 adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
\r
234 catch (RecognitionException re) {
\r
237 retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
\r
244 // $ANTLR end "relation"
\r
246 public static class relation_i_return extends ParserRuleReturnScope {
\r
248 public Object getTree() { return tree; }
\r
251 // $ANTLR start "relation_i"
\r
252 // LensQuery.g:193:1: relation_i : nodeName ( alias )? LParen nodeItem ( Comma nodeItem )* RParen ;
\r
253 public final LensQueryParser.relation_i_return relation_i() throws RecognitionException {
\r
254 LensQueryParser.relation_i_return retval = new LensQueryParser.relation_i_return();
\r
255 retval.start = input.LT(1);
\r
257 Object root_0 = null;
\r
259 Token LParen5=null;
\r
261 Token RParen9=null;
\r
262 LensQueryParser.nodeName_return nodeName3 = null;
\r
264 LensQueryParser.alias_return alias4 = null;
\r
266 LensQueryParser.nodeItem_return nodeItem6 = null;
\r
268 LensQueryParser.nodeItem_return nodeItem8 = null;
\r
271 Object LParen5_tree=null;
\r
272 Object Comma7_tree=null;
\r
273 Object RParen9_tree=null;
\r
276 // LensQuery.g:193:11: ( nodeName ( alias )? LParen nodeItem ( Comma nodeItem )* RParen )
\r
277 // LensQuery.g:193:13: nodeName ( alias )? LParen nodeItem ( Comma nodeItem )* RParen
\r
279 root_0 = (Object)adaptor.nil();
\r
281 pushFollow(FOLLOW_nodeName_in_relation_i808);
\r
282 nodeName3=nodeName();
\r
286 adaptor.addChild(root_0, nodeName3.getTree());
\r
287 // LensQuery.g:193:22: ( alias )?
\r
289 int LA1_0 = input.LA(1);
\r
291 if ( (LA1_0==As) ) {
\r
296 // LensQuery.g:193:22: alias
\r
298 pushFollow(FOLLOW_alias_in_relation_i810);
\r
303 adaptor.addChild(root_0, alias4.getTree());
\r
310 LParen5=(Token)match(input,LParen,FOLLOW_LParen_in_relation_i813);
\r
311 pushFollow(FOLLOW_nodeItem_in_relation_i816);
\r
312 nodeItem6=nodeItem();
\r
316 adaptor.addChild(root_0, nodeItem6.getTree());
\r
317 // LensQuery.g:193:46: ( Comma nodeItem )*
\r
321 int LA2_0 = input.LA(1);
\r
323 if ( (LA2_0==Comma) ) {
\r
330 // LensQuery.g:193:47: Comma nodeItem
\r
332 Comma7=(Token)match(input,Comma,FOLLOW_Comma_in_relation_i819);
\r
333 pushFollow(FOLLOW_nodeItem_in_relation_i822);
\r
334 nodeItem8=nodeItem();
\r
338 adaptor.addChild(root_0, nodeItem8.getTree());
\r
348 RParen9=(Token)match(input,RParen,FOLLOW_RParen_in_relation_i826);
\r
352 retval.stop = input.LT(-1);
\r
354 retval.tree = (Object)adaptor.rulePostProcessing(root_0);
\r
355 adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
\r
358 catch (RecognitionException re) {
\r
361 retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
\r
368 // $ANTLR end "relation_i"
\r
370 public static class nodeName_return extends ParserRuleReturnScope {
\r
372 public Object getTree() { return tree; }
\r
375 // $ANTLR start "nodeName"
\r
376 // LensQuery.g:196:1: fragment nodeName : ( QName -> NAME[$QName.text] | String -> NAME[$String.text] );
\r
377 public final LensQueryParser.nodeName_return nodeName() throws RecognitionException {
\r
378 LensQueryParser.nodeName_return retval = new LensQueryParser.nodeName_return();
\r
379 retval.start = input.LT(1);
\r
381 Object root_0 = null;
\r
383 Token QName10=null;
\r
384 Token String11=null;
\r
386 Object QName10_tree=null;
\r
387 Object String11_tree=null;
\r
388 RewriteRuleTokenStream stream_String=new RewriteRuleTokenStream(adaptor,"token String");
\r
389 RewriteRuleTokenStream stream_QName=new RewriteRuleTokenStream(adaptor,"token QName");
\r
392 // LensQuery.g:198:3: ( QName -> NAME[$QName.text] | String -> NAME[$String.text] )
\r
394 int LA3_0 = input.LA(1);
\r
396 if ( (LA3_0==QName) ) {
\r
399 else if ( (LA3_0==String) ) {
\r
403 NoViableAltException nvae =
\r
404 new NoViableAltException("", 3, 0, input);
\r
410 // LensQuery.g:198:5: QName
\r
412 QName10=(Token)match(input,QName,FOLLOW_QName_in_nodeName840);
\r
413 stream_QName.add(QName10);
\r
420 // rule labels: retval
\r
421 // token list labels:
\r
422 // rule list labels:
\r
423 // wildcard labels:
\r
424 retval.tree = root_0;
\r
425 RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
\r
427 root_0 = (Object)adaptor.nil();
\r
428 // 198:11: -> NAME[$QName.text]
\r
430 adaptor.addChild(root_0, (Object)adaptor.create(NAME, (QName10!=null?QName10.getText():null)));
\r
434 retval.tree = root_0;
\r
438 // LensQuery.g:199:5: String
\r
440 String11=(Token)match(input,String,FOLLOW_String_in_nodeName851);
\r
441 stream_String.add(String11);
\r
448 // rule labels: retval
\r
449 // token list labels:
\r
450 // rule list labels:
\r
451 // wildcard labels:
\r
452 retval.tree = root_0;
\r
453 RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
\r
455 root_0 = (Object)adaptor.nil();
\r
456 // 199:12: -> NAME[$String.text]
\r
458 adaptor.addChild(root_0, (Object)adaptor.create(NAME, (String11!=null?String11.getText():null)));
\r
462 retval.tree = root_0;
\r
467 retval.stop = input.LT(-1);
\r
469 retval.tree = (Object)adaptor.rulePostProcessing(root_0);
\r
470 adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
\r
473 catch (RecognitionException re) {
\r
476 retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
\r
483 // $ANTLR end "nodeName"
\r
485 public static class alias_return extends ParserRuleReturnScope {
\r
487 public Object getTree() { return tree; }
\r
490 // $ANTLR start "alias"
\r
491 // LensQuery.g:202:1: fragment alias : As QName -> ALIAS[$QName.text] ;
\r
492 public final LensQueryParser.alias_return alias() throws RecognitionException {
\r
493 LensQueryParser.alias_return retval = new LensQueryParser.alias_return();
\r
494 retval.start = input.LT(1);
\r
496 Object root_0 = null;
\r
499 Token QName13=null;
\r
501 Object As12_tree=null;
\r
502 Object QName13_tree=null;
\r
503 RewriteRuleTokenStream stream_As=new RewriteRuleTokenStream(adaptor,"token As");
\r
504 RewriteRuleTokenStream stream_QName=new RewriteRuleTokenStream(adaptor,"token QName");
\r
507 // LensQuery.g:203:6: ( As QName -> ALIAS[$QName.text] )
\r
508 // LensQuery.g:203:8: As QName
\r
510 As12=(Token)match(input,As,FOLLOW_As_in_alias868);
\r
511 stream_As.add(As12);
\r
513 QName13=(Token)match(input,QName,FOLLOW_QName_in_alias870);
\r
514 stream_QName.add(QName13);
\r
521 // rule labels: retval
\r
522 // token list labels:
\r
523 // rule list labels:
\r
524 // wildcard labels:
\r
525 retval.tree = root_0;
\r
526 RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
\r
528 root_0 = (Object)adaptor.nil();
\r
529 // 203:17: -> ALIAS[$QName.text]
\r
531 adaptor.addChild(root_0, (Object)adaptor.create(ALIAS, (QName13!=null?QName13.getText():null)));
\r
535 retval.tree = root_0;
\r
538 retval.stop = input.LT(-1);
\r
540 retval.tree = (Object)adaptor.rulePostProcessing(root_0);
\r
541 adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
\r
544 catch (RecognitionException re) {
\r
547 retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
\r
554 // $ANTLR end "alias"
\r
556 public static class nodeItem_return extends ParserRuleReturnScope {
\r
558 public Object getTree() { return tree; }
\r
561 // $ANTLR start "nodeItem"
\r
562 // LensQuery.g:206:1: fragment nodeItem : ( nodeName ( alias )? ( nodeValue )? -> ^( NODE nodeName ( alias )? ( nodeValue )? ) | relation );
\r
563 public final LensQueryParser.nodeItem_return nodeItem() throws RecognitionException {
\r
564 LensQueryParser.nodeItem_return retval = new LensQueryParser.nodeItem_return();
\r
565 retval.start = input.LT(1);
\r
567 Object root_0 = null;
\r
569 LensQueryParser.nodeName_return nodeName14 = null;
\r
571 LensQueryParser.alias_return alias15 = null;
\r
573 LensQueryParser.nodeValue_return nodeValue16 = null;
\r
575 LensQueryParser.relation_return relation17 = null;
\r
578 RewriteRuleSubtreeStream stream_nodeName=new RewriteRuleSubtreeStream(adaptor,"rule nodeName");
\r
579 RewriteRuleSubtreeStream stream_nodeValue=new RewriteRuleSubtreeStream(adaptor,"rule nodeValue");
\r
580 RewriteRuleSubtreeStream stream_alias=new RewriteRuleSubtreeStream(adaptor,"rule alias");
\r
582 // LensQuery.g:208:3: ( nodeName ( alias )? ( nodeValue )? -> ^( NODE nodeName ( alias )? ( nodeValue )? ) | relation )
\r
584 int LA6_0 = input.LA(1);
\r
586 if ( (LA6_0==QName) ) {
\r
587 switch ( input.LA(2) ) {
\r
590 int LA6_3 = input.LA(3);
\r
592 if ( (LA6_3==QName) ) {
\r
593 int LA6_6 = input.LA(4);
\r
595 if ( ((LA6_6>=Lt && LA6_6<=Match)||(LA6_6>=Comma && LA6_6<=Colon)||LA6_6==RParen) ) {
\r
598 else if ( (LA6_6==LParen) ) {
\r
602 NoViableAltException nvae =
\r
603 new NoViableAltException("", 6, 6, input);
\r
609 NoViableAltException nvae =
\r
610 new NoViableAltException("", 6, 3, input);
\r
636 NoViableAltException nvae =
\r
637 new NoViableAltException("", 6, 1, input);
\r
643 else if ( (LA6_0==String) ) {
\r
644 switch ( input.LA(2) ) {
\r
647 int LA6_3 = input.LA(3);
\r
649 if ( (LA6_3==QName) ) {
\r
650 int LA6_6 = input.LA(4);
\r
652 if ( ((LA6_6>=Lt && LA6_6<=Match)||(LA6_6>=Comma && LA6_6<=Colon)||LA6_6==RParen) ) {
\r
655 else if ( (LA6_6==LParen) ) {
\r
659 NoViableAltException nvae =
\r
660 new NoViableAltException("", 6, 6, input);
\r
666 NoViableAltException nvae =
\r
667 new NoViableAltException("", 6, 3, input);
\r
693 NoViableAltException nvae =
\r
694 new NoViableAltException("", 6, 2, input);
\r
701 NoViableAltException nvae =
\r
702 new NoViableAltException("", 6, 0, input);
\r
708 // LensQuery.g:208:5: nodeName ( alias )? ( nodeValue )?
\r
710 pushFollow(FOLLOW_nodeName_in_nodeItem890);
\r
711 nodeName14=nodeName();
\r
715 stream_nodeName.add(nodeName14.getTree());
\r
716 // LensQuery.g:208:14: ( alias )?
\r
718 int LA4_0 = input.LA(1);
\r
720 if ( (LA4_0==As) ) {
\r
725 // LensQuery.g:208:14: alias
\r
727 pushFollow(FOLLOW_alias_in_nodeItem892);
\r
732 stream_alias.add(alias15.getTree());
\r
739 // LensQuery.g:208:21: ( nodeValue )?
\r
741 int LA5_0 = input.LA(1);
\r
743 if ( ((LA5_0>=Lt && LA5_0<=Match)||LA5_0==Colon) ) {
\r
748 // LensQuery.g:208:21: nodeValue
\r
750 pushFollow(FOLLOW_nodeValue_in_nodeItem895);
\r
751 nodeValue16=nodeValue();
\r
755 stream_nodeValue.add(nodeValue16.getTree());
\r
765 // elements: nodeName, alias, nodeValue
\r
767 // rule labels: retval
\r
768 // token list labels:
\r
769 // rule list labels:
\r
770 // wildcard labels:
\r
771 retval.tree = root_0;
\r
772 RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
\r
774 root_0 = (Object)adaptor.nil();
\r
775 // 209:5: -> ^( NODE nodeName ( alias )? ( nodeValue )? )
\r
777 // LensQuery.g:209:8: ^( NODE nodeName ( alias )? ( nodeValue )? )
\r
779 Object root_1 = (Object)adaptor.nil();
\r
780 root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(NODE, "NODE"), root_1);
\r
782 adaptor.addChild(root_1, stream_nodeName.nextTree());
\r
783 // LensQuery.g:209:24: ( alias )?
\r
784 if ( stream_alias.hasNext() ) {
\r
785 adaptor.addChild(root_1, stream_alias.nextTree());
\r
788 stream_alias.reset();
\r
789 // LensQuery.g:209:31: ( nodeValue )?
\r
790 if ( stream_nodeValue.hasNext() ) {
\r
791 adaptor.addChild(root_1, stream_nodeValue.nextTree());
\r
794 stream_nodeValue.reset();
\r
796 adaptor.addChild(root_0, root_1);
\r
801 retval.tree = root_0;
\r
805 // LensQuery.g:210:5: relation
\r
807 root_0 = (Object)adaptor.nil();
\r
809 pushFollow(FOLLOW_relation_in_nodeItem921);
\r
810 relation17=relation();
\r
814 adaptor.addChild(root_0, relation17.getTree());
\r
820 retval.stop = input.LT(-1);
\r
822 retval.tree = (Object)adaptor.rulePostProcessing(root_0);
\r
823 adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
\r
826 catch (RecognitionException re) {
\r
829 retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
\r
836 // $ANTLR end "nodeItem"
\r
838 public static class value_return extends ParserRuleReturnScope {
\r
840 public Object getTree() { return tree; }
\r
843 // $ANTLR start "value"
\r
844 // LensQuery.g:213:1: fragment value : ( String | Integer | Double | QName );
\r
845 public final LensQueryParser.value_return value() throws RecognitionException {
\r
846 LensQueryParser.value_return retval = new LensQueryParser.value_return();
\r
847 retval.start = input.LT(1);
\r
849 Object root_0 = null;
\r
853 Object set18_tree=null;
\r
856 // LensQuery.g:215:3: ( String | Integer | Double | QName )
\r
859 root_0 = (Object)adaptor.nil();
\r
861 set18=(Token)input.LT(1);
\r
862 if ( (input.LA(1)>=String && input.LA(1)<=Integer)||input.LA(1)==Double||input.LA(1)==QName ) {
\r
864 adaptor.addChild(root_0, (Object)adaptor.create(set18));
\r
865 state.errorRecovery=false;
\r
868 MismatchedSetException mse = new MismatchedSetException(null,input);
\r
875 retval.stop = input.LT(-1);
\r
877 retval.tree = (Object)adaptor.rulePostProcessing(root_0);
\r
878 adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
\r
881 catch (RecognitionException re) {
\r
884 retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
\r
891 // $ANTLR end "value"
\r
893 public static class nodeValue_return extends ParserRuleReturnScope {
\r
895 public Object getTree() { return tree; }
\r
898 // $ANTLR start "nodeValue"
\r
899 // LensQuery.g:218:1: fragment nodeValue : ( Colon value -> NODEVALUE[$value.text] | nodeCmp );
\r
900 public final LensQueryParser.nodeValue_return nodeValue() throws RecognitionException {
\r
901 LensQueryParser.nodeValue_return retval = new LensQueryParser.nodeValue_return();
\r
902 retval.start = input.LT(1);
\r
904 Object root_0 = null;
\r
906 Token Colon19=null;
\r
907 LensQueryParser.value_return value20 = null;
\r
909 LensQueryParser.nodeCmp_return nodeCmp21 = null;
\r
912 Object Colon19_tree=null;
\r
913 RewriteRuleTokenStream stream_Colon=new RewriteRuleTokenStream(adaptor,"token Colon");
\r
914 RewriteRuleSubtreeStream stream_value=new RewriteRuleSubtreeStream(adaptor,"rule value");
\r
916 // LensQuery.g:220:3: ( Colon value -> NODEVALUE[$value.text] | nodeCmp )
\r
918 int LA7_0 = input.LA(1);
\r
920 if ( (LA7_0==Colon) ) {
\r
923 else if ( ((LA7_0>=Lt && LA7_0<=Match)) ) {
\r
927 NoViableAltException nvae =
\r
928 new NoViableAltException("", 7, 0, input);
\r
934 // LensQuery.g:220:5: Colon value
\r
936 Colon19=(Token)match(input,Colon,FOLLOW_Colon_in_nodeValue970);
\r
937 stream_Colon.add(Colon19);
\r
939 pushFollow(FOLLOW_value_in_nodeValue972);
\r
944 stream_value.add(value20.getTree());
\r
950 // rule labels: retval
\r
951 // token list labels:
\r
952 // rule list labels:
\r
953 // wildcard labels:
\r
954 retval.tree = root_0;
\r
955 RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
\r
957 root_0 = (Object)adaptor.nil();
\r
958 // 220:17: -> NODEVALUE[$value.text]
\r
960 adaptor.addChild(root_0, (Object)adaptor.create(NODEVALUE, (value20!=null?input.toString(value20.start,value20.stop):null)));
\r
964 retval.tree = root_0;
\r
968 // LensQuery.g:221:5: nodeCmp
\r
970 root_0 = (Object)adaptor.nil();
\r
972 pushFollow(FOLLOW_nodeCmp_in_nodeValue983);
\r
973 nodeCmp21=nodeCmp();
\r
977 adaptor.addChild(root_0, nodeCmp21.getTree());
\r
983 retval.stop = input.LT(-1);
\r
985 retval.tree = (Object)adaptor.rulePostProcessing(root_0);
\r
986 adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
\r
989 catch (RecognitionException re) {
\r
992 retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
\r
999 // $ANTLR end "nodeValue"
\r
1001 public static class nodeCmp_return extends ParserRuleReturnScope {
\r
1003 public Object getTree() { return tree; }
\r
1006 // $ANTLR start "nodeCmp"
\r
1007 // LensQuery.g:224:1: fragment nodeCmp : ( cmpOp value -> ^( COMPARE OPERATOR[$cmpOp.text] OPERAND[$value.text] ) | Match Regex -> ^( PATTERNMATCH OPERAND[$Regex.text] ) );
\r
1008 public final LensQueryParser.nodeCmp_return nodeCmp() throws RecognitionException {
\r
1009 LensQueryParser.nodeCmp_return retval = new LensQueryParser.nodeCmp_return();
\r
1010 retval.start = input.LT(1);
\r
1012 Object root_0 = null;
\r
1014 Token Match24=null;
\r
1015 Token Regex25=null;
\r
1016 LensQueryParser.cmpOp_return cmpOp22 = null;
\r
1018 LensQueryParser.value_return value23 = null;
\r
1021 Object Match24_tree=null;
\r
1022 Object Regex25_tree=null;
\r
1023 RewriteRuleTokenStream stream_Match=new RewriteRuleTokenStream(adaptor,"token Match");
\r
1024 RewriteRuleTokenStream stream_Regex=new RewriteRuleTokenStream(adaptor,"token Regex");
\r
1025 RewriteRuleSubtreeStream stream_value=new RewriteRuleSubtreeStream(adaptor,"rule value");
\r
1026 RewriteRuleSubtreeStream stream_cmpOp=new RewriteRuleSubtreeStream(adaptor,"rule cmpOp");
\r
1028 // LensQuery.g:226:3: ( cmpOp value -> ^( COMPARE OPERATOR[$cmpOp.text] OPERAND[$value.text] ) | Match Regex -> ^( PATTERNMATCH OPERAND[$Regex.text] ) )
\r
1030 int LA8_0 = input.LA(1);
\r
1032 if ( ((LA8_0>=Lt && LA8_0<=Neq)) ) {
\r
1035 else if ( (LA8_0==Match) ) {
\r
1039 NoViableAltException nvae =
\r
1040 new NoViableAltException("", 8, 0, input);
\r
1046 // LensQuery.g:226:5: cmpOp value
\r
1048 pushFollow(FOLLOW_cmpOp_in_nodeCmp1003);
\r
1053 stream_cmpOp.add(cmpOp22.getTree());
\r
1054 pushFollow(FOLLOW_value_in_nodeCmp1005);
\r
1059 stream_value.add(value23.getTree());
\r
1065 // rule labels: retval
\r
1066 // token list labels:
\r
1067 // rule list labels:
\r
1068 // wildcard labels:
\r
1069 retval.tree = root_0;
\r
1070 RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
\r
1072 root_0 = (Object)adaptor.nil();
\r
1073 // 226:17: -> ^( COMPARE OPERATOR[$cmpOp.text] OPERAND[$value.text] )
\r
1075 // LensQuery.g:226:20: ^( COMPARE OPERATOR[$cmpOp.text] OPERAND[$value.text] )
\r
1077 Object root_1 = (Object)adaptor.nil();
\r
1078 root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(COMPARE, "COMPARE"), root_1);
\r
1080 adaptor.addChild(root_1, (Object)adaptor.create(OPERATOR, (cmpOp22!=null?input.toString(cmpOp22.start,cmpOp22.stop):null)));
\r
1081 adaptor.addChild(root_1, (Object)adaptor.create(OPERAND, (value23!=null?input.toString(value23.start,value23.stop):null)));
\r
1083 adaptor.addChild(root_0, root_1);
\r
1088 retval.tree = root_0;
\r
1092 // LensQuery.g:227:5: Match Regex
\r
1094 Match24=(Token)match(input,Match,FOLLOW_Match_in_nodeCmp1023);
\r
1095 stream_Match.add(Match24);
\r
1097 Regex25=(Token)match(input,Regex,FOLLOW_Regex_in_nodeCmp1025);
\r
1098 stream_Regex.add(Regex25);
\r
1105 // rule labels: retval
\r
1106 // token list labels:
\r
1107 // rule list labels:
\r
1108 // wildcard labels:
\r
1109 retval.tree = root_0;
\r
1110 RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
\r
1112 root_0 = (Object)adaptor.nil();
\r
1113 // 227:17: -> ^( PATTERNMATCH OPERAND[$Regex.text] )
\r
1115 // LensQuery.g:227:20: ^( PATTERNMATCH OPERAND[$Regex.text] )
\r
1117 Object root_1 = (Object)adaptor.nil();
\r
1118 root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(PATTERNMATCH, "PATTERNMATCH"), root_1);
\r
1120 adaptor.addChild(root_1, (Object)adaptor.create(OPERAND, (Regex25!=null?Regex25.getText():null)));
\r
1122 adaptor.addChild(root_0, root_1);
\r
1127 retval.tree = root_0;
\r
1132 retval.stop = input.LT(-1);
\r
1134 retval.tree = (Object)adaptor.rulePostProcessing(root_0);
\r
1135 adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
\r
1138 catch (RecognitionException re) {
\r
1140 recover(input,re);
\r
1141 retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
\r
1148 // $ANTLR end "nodeCmp"
\r
1150 public static class cmpOp_return extends ParserRuleReturnScope {
\r
1152 public Object getTree() { return tree; }
\r
1155 // $ANTLR start "cmpOp"
\r
1156 // LensQuery.g:230:1: fragment cmpOp : ( Lt | Gt | Eq | Leq | Geq | Neq ) ;
\r
1157 public final LensQueryParser.cmpOp_return cmpOp() throws RecognitionException {
\r
1158 LensQueryParser.cmpOp_return retval = new LensQueryParser.cmpOp_return();
\r
1159 retval.start = input.LT(1);
\r
1161 Object root_0 = null;
\r
1165 Object set26_tree=null;
\r
1168 // LensQuery.g:231:6: ( ( Lt | Gt | Eq | Leq | Geq | Neq ) )
\r
1169 // LensQuery.g:231:8: ( Lt | Gt | Eq | Leq | Geq | Neq )
\r
1171 root_0 = (Object)adaptor.nil();
\r
1173 set26=(Token)input.LT(1);
\r
1174 if ( (input.LA(1)>=Lt && input.LA(1)<=Neq) ) {
\r
1176 adaptor.addChild(root_0, (Object)adaptor.create(set26));
\r
1177 state.errorRecovery=false;
\r
1180 MismatchedSetException mse = new MismatchedSetException(null,input);
\r
1187 retval.stop = input.LT(-1);
\r
1189 retval.tree = (Object)adaptor.rulePostProcessing(root_0);
\r
1190 adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
\r
1193 catch (RecognitionException re) {
\r
1195 recover(input,re);
\r
1196 retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
\r
1203 // $ANTLR end "cmpOp"
\r
1205 // Delegated rules
\r
1210 public static final BitSet FOLLOW_relation_in_expr774 = new BitSet(new long[]{0x0000000000000002L});
\r
1211 public static final BitSet FOLLOW_relation_i_in_relation792 = new BitSet(new long[]{0x0000000000000002L});
\r
1212 public static final BitSet FOLLOW_nodeName_in_relation_i808 = new BitSet(new long[]{0x0000300000000000L});
\r
1213 public static final BitSet FOLLOW_alias_in_relation_i810 = new BitSet(new long[]{0x0000200000000000L});
\r
1214 public static final BitSet FOLLOW_LParen_in_relation_i813 = new BitSet(new long[]{0x0020000002000000L});
\r
1215 public static final BitSet FOLLOW_nodeItem_in_relation_i816 = new BitSet(new long[]{0x0000440000000000L});
\r
1216 public static final BitSet FOLLOW_Comma_in_relation_i819 = new BitSet(new long[]{0x0020000002000000L});
\r
1217 public static final BitSet FOLLOW_nodeItem_in_relation_i822 = new BitSet(new long[]{0x0000440000000000L});
\r
1218 public static final BitSet FOLLOW_RParen_in_relation_i826 = new BitSet(new long[]{0x0000000000000002L});
\r
1219 public static final BitSet FOLLOW_QName_in_nodeName840 = new BitSet(new long[]{0x0000000000000002L});
\r
1220 public static final BitSet FOLLOW_String_in_nodeName851 = new BitSet(new long[]{0x0000000000000002L});
\r
1221 public static final BitSet FOLLOW_As_in_alias868 = new BitSet(new long[]{0x0020000000000000L});
\r
1222 public static final BitSet FOLLOW_QName_in_alias870 = new BitSet(new long[]{0x0000000000000002L});
\r
1223 public static final BitSet FOLLOW_nodeName_in_nodeItem890 = new BitSet(new long[]{0x000018FE00000002L});
\r
1224 public static final BitSet FOLLOW_alias_in_nodeItem892 = new BitSet(new long[]{0x000008FE00000002L});
\r
1225 public static final BitSet FOLLOW_nodeValue_in_nodeItem895 = new BitSet(new long[]{0x0000000000000002L});
\r
1226 public static final BitSet FOLLOW_relation_in_nodeItem921 = new BitSet(new long[]{0x0000000000000002L});
\r
1227 public static final BitSet FOLLOW_set_in_value0 = new BitSet(new long[]{0x0000000000000002L});
\r
1228 public static final BitSet FOLLOW_Colon_in_nodeValue970 = new BitSet(new long[]{0x0020000026000000L});
\r
1229 public static final BitSet FOLLOW_value_in_nodeValue972 = new BitSet(new long[]{0x0000000000000002L});
\r
1230 public static final BitSet FOLLOW_nodeCmp_in_nodeValue983 = new BitSet(new long[]{0x0000000000000002L});
\r
1231 public static final BitSet FOLLOW_cmpOp_in_nodeCmp1003 = new BitSet(new long[]{0x0020000026000000L});
\r
1232 public static final BitSet FOLLOW_value_in_nodeCmp1005 = new BitSet(new long[]{0x0000000000000002L});
\r
1233 public static final BitSet FOLLOW_Match_in_nodeCmp1023 = new BitSet(new long[]{0x0000010000000000L});
\r
1234 public static final BitSet FOLLOW_Regex_in_nodeCmp1025 = new BitSet(new long[]{0x0000000000000002L});
\r
1235 public static final BitSet FOLLOW_set_in_cmpOp1050 = new BitSet(new long[]{0x0000000000000002L});
\r