This project has retired. For details please refer to its Attic page.
TextSearchParser xref

1   // $ANTLR 3.3 Nov 30, 2010 12:46:29 org/apache/chemistry/opencmis/server/support/query/TextSearch.g 2012-04-03 05:22:14
2   
3   /*
4    * THIS FILE IS AUTO-GENERATED, DO NOT EDIT.
5    *
6    * Licensed to the Apache Software Foundation (ASF) under one
7    * or more contributor license agreements.  See the NOTICE file
8    * distributed with this work for additional information
9    * regarding copyright ownership.  The ASF licenses this file
10   * to you under the Apache License, Version 2.0 (the
11   * "License"); you may not use this file except in compliance
12   * with the License.  You may obtain a copy of the License at
13   *
14   * http://www.apache.org/licenses/LICENSE-2.0
15   *
16   * Unless required by applicable law or agreed to in writing,
17   * software distributed under the License is distributed on an
18   * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
19   * KIND, either express or implied.  See the License for the
20   * specific language governing permissions and limitations
21   * under the License.
22   *
23   * THIS FILE IS AUTO-GENERATED, DO NOT EDIT.
24   */
25  
26  package org.apache.chemistry.opencmis.server.support.query;
27  
28  
29  import org.antlr.runtime.*;
30  import java.util.Stack;
31  import java.util.List;
32  import java.util.ArrayList;
33  
34  
35  import org.antlr.runtime.tree.*;
36  
37  /**
38   * CMISQL parser.
39   http://stackoverflow.com/questions/504402/how-to-handle-escape-sequences-in-string-literals-in-antlr-3
40   */
41  public class TextSearchParser extends Parser {
42      public static final String[] tokenNames = new String[] {
43          "<invalid>", "<EOR>", "<DOWN>", "<UP>", "TEXT_AND", "TEXT_OR", "TEXT_MINUS", "AND", "OR", "QUOTE", "BACKSL", "ESC", "WS", "TEXT_SEARCH_PHRASE_STRING", "TEXT_SEARCH_PHRASE_STRING_LIT", "TEXT_SEARCH_WORD_LIT"
44      };
45      public static final int EOF=-1;
46      public static final int TEXT_AND=4;
47      public static final int TEXT_OR=5;
48      public static final int TEXT_MINUS=6;
49      public static final int AND=7;
50      public static final int OR=8;
51      public static final int QUOTE=9;
52      public static final int BACKSL=10;
53      public static final int ESC=11;
54      public static final int WS=12;
55      public static final int TEXT_SEARCH_PHRASE_STRING=13;
56      public static final int TEXT_SEARCH_PHRASE_STRING_LIT=14;
57      public static final int TEXT_SEARCH_WORD_LIT=15;
58  
59      // delegates
60      // delegators
61  
62  
63          public TextSearchParser(TokenStream input) {
64              this(input, new RecognizerSharedState());
65          }
66          public TextSearchParser(TokenStream input, RecognizerSharedState state) {
67              super(input, state);
68               
69          }
70          
71      protected TreeAdaptor adaptor = new CommonTreeAdaptor();
72  
73      public void setTreeAdaptor(TreeAdaptor adaptor) {
74          this.adaptor = adaptor;
75      }
76      public TreeAdaptor getTreeAdaptor() {
77          return adaptor;
78      }
79  
80      public String[] getTokenNames() { return TextSearchParser.tokenNames; }
81      public String getGrammarFileName() { return "org/apache/chemistry/opencmis/server/support/query/TextSearch.g"; }
82  
83  
84      public static class text_search_expression_return extends ParserRuleReturnScope {
85          CommonTree tree;
86          public Object getTree() { return tree; }
87      };
88  
89      // $ANTLR start "text_search_expression"
90      // org/apache/chemistry/opencmis/server/support/query/TextSearch.g:150:1: text_search_expression : ( conjunct ( OR conjunct )+ -> ^( TEXT_OR ( conjunct )+ ) | conjunct );
91      public final TextSearchParser.text_search_expression_return text_search_expression() throws RecognitionException {
92          TextSearchParser.text_search_expression_return retval = new TextSearchParser.text_search_expression_return();
93          retval.start = input.LT(1);
94  
95          CommonTree root_0 = null;
96  
97          Token OR2=null;
98          TextSearchParser.conjunct_return conjunct1 = null;
99  
100         TextSearchParser.conjunct_return conjunct3 = null;
101 
102         TextSearchParser.conjunct_return conjunct4 = null;
103 
104 
105         CommonTree OR2_tree=null;
106         RewriteRuleTokenStream stream_OR=new RewriteRuleTokenStream(adaptor,"token OR");
107         RewriteRuleSubtreeStream stream_conjunct=new RewriteRuleSubtreeStream(adaptor,"rule conjunct");
108         try {
109             // org/apache/chemistry/opencmis/server/support/query/TextSearch.g:151:5: ( conjunct ( OR conjunct )+ -> ^( TEXT_OR ( conjunct )+ ) | conjunct )
110             int alt2=2;
111             alt2 = dfa2.predict(input);
112             switch (alt2) {
113                 case 1 :
114                     // org/apache/chemistry/opencmis/server/support/query/TextSearch.g:151:7: conjunct ( OR conjunct )+
115                     {
116                     pushFollow(FOLLOW_conjunct_in_text_search_expression367);
117                     conjunct1=conjunct();
118 
119                     state._fsp--;
120 
121                     stream_conjunct.add(conjunct1.getTree());
122                     // org/apache/chemistry/opencmis/server/support/query/TextSearch.g:151:16: ( OR conjunct )+
123                     int cnt1=0;
124                     loop1:
125                     do {
126                         int alt1=2;
127                         switch ( input.LA(1) ) {
128                         case OR:
129                             {
130                             alt1=1;
131                             }
132                             break;
133 
134                         }
135 
136                         switch (alt1) {
137                     	case 1 :
138                     	    // org/apache/chemistry/opencmis/server/support/query/TextSearch.g:151:17: OR conjunct
139                     	    {
140                     	    OR2=(Token)match(input,OR,FOLLOW_OR_in_text_search_expression370);  
141                     	    stream_OR.add(OR2);
142 
143                     	    pushFollow(FOLLOW_conjunct_in_text_search_expression372);
144                     	    conjunct3=conjunct();
145 
146                     	    state._fsp--;
147 
148                     	    stream_conjunct.add(conjunct3.getTree());
149 
150                     	    }
151                     	    break;
152 
153                     	default :
154                     	    if ( cnt1 >= 1 ) break loop1;
155                                 EarlyExitException eee =
156                                     new EarlyExitException(1, input);
157                                 throw eee;
158                         }
159                         cnt1++;
160                     } while (true);
161 
162 
163 
164                     // AST REWRITE
165                     // elements: conjunct
166                     // token labels: 
167                     // rule labels: retval
168                     // token list labels: 
169                     // rule list labels: 
170                     // wildcard labels: 
171                     retval.tree = root_0;
172                     RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
173 
174                     root_0 = (CommonTree)adaptor.nil();
175                     // 152:6: -> ^( TEXT_OR ( conjunct )+ )
176                     {
177                         // org/apache/chemistry/opencmis/server/support/query/TextSearch.g:152:9: ^( TEXT_OR ( conjunct )+ )
178                         {
179                         CommonTree root_1 = (CommonTree)adaptor.nil();
180                         root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(TEXT_OR, "TEXT_OR"), root_1);
181 
182                         if ( !(stream_conjunct.hasNext()) ) {
183                             throw new RewriteEarlyExitException();
184                         }
185                         while ( stream_conjunct.hasNext() ) {
186                             adaptor.addChild(root_1, stream_conjunct.nextTree());
187 
188                         }
189                         stream_conjunct.reset();
190 
191                         adaptor.addChild(root_0, root_1);
192                         }
193 
194                     }
195 
196                     retval.tree = root_0;
197                     }
198                     break;
199                 case 2 :
200                     // org/apache/chemistry/opencmis/server/support/query/TextSearch.g:153:4: conjunct
201                     {
202                     root_0 = (CommonTree)adaptor.nil();
203 
204                     pushFollow(FOLLOW_conjunct_in_text_search_expression393);
205                     conjunct4=conjunct();
206 
207                     state._fsp--;
208 
209                     adaptor.addChild(root_0, conjunct4.getTree());
210 
211                     }
212                     break;
213 
214             }
215             retval.stop = input.LT(-1);
216 
217             retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
218             adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
219 
220         }
221         catch (RecognitionException re) {
222             reportError(re);
223             recover(input,re);
224     	retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
225 
226         }
227         finally {
228         }
229         return retval;
230     }
231     // $ANTLR end "text_search_expression"
232 
233     public static class conjunct_return extends ParserRuleReturnScope {
234         CommonTree tree;
235         public Object getTree() { return tree; }
236     };
237 
238     // $ANTLR start "conjunct"
239     // org/apache/chemistry/opencmis/server/support/query/TextSearch.g:156:1: conjunct : ( term ( ( AND )? term )+ -> ^( TEXT_AND ( term )+ ) | term );
240     public final TextSearchParser.conjunct_return conjunct() throws RecognitionException {
241         TextSearchParser.conjunct_return retval = new TextSearchParser.conjunct_return();
242         retval.start = input.LT(1);
243 
244         CommonTree root_0 = null;
245 
246         Token AND6=null;
247         TextSearchParser.term_return term5 = null;
248 
249         TextSearchParser.term_return term7 = null;
250 
251         TextSearchParser.term_return term8 = null;
252 
253 
254         CommonTree AND6_tree=null;
255         RewriteRuleTokenStream stream_AND=new RewriteRuleTokenStream(adaptor,"token AND");
256         RewriteRuleSubtreeStream stream_term=new RewriteRuleSubtreeStream(adaptor,"rule term");
257         try {
258             // org/apache/chemistry/opencmis/server/support/query/TextSearch.g:157:5: ( term ( ( AND )? term )+ -> ^( TEXT_AND ( term )+ ) | term )
259             int alt5=2;
260             switch ( input.LA(1) ) {
261             case TEXT_MINUS:
262                 {
263                 switch ( input.LA(2) ) {
264                 case TEXT_SEARCH_WORD_LIT:
265                     {
266                     switch ( input.LA(3) ) {
267                     case TEXT_MINUS:
268                     case AND:
269                     case TEXT_SEARCH_PHRASE_STRING_LIT:
270                     case TEXT_SEARCH_WORD_LIT:
271                         {
272                         alt5=1;
273                         }
274                         break;
275                     case EOF:
276                     case OR:
277                         {
278                         alt5=2;
279                         }
280                         break;
281                     default:
282                         NoViableAltException nvae =
283                             new NoViableAltException("", 5, 2, input);
284 
285                         throw nvae;
286                     }
287 
288                     }
289                     break;
290                 case TEXT_SEARCH_PHRASE_STRING_LIT:
291                     {
292                     switch ( input.LA(3) ) {
293                     case TEXT_MINUS:
294                     case AND:
295                     case TEXT_SEARCH_PHRASE_STRING_LIT:
296                     case TEXT_SEARCH_WORD_LIT:
297                         {
298                         alt5=1;
299                         }
300                         break;
301                     case EOF:
302                     case OR:
303                         {
304                         alt5=2;
305                         }
306                         break;
307                     default:
308                         NoViableAltException nvae =
309                             new NoViableAltException("", 5, 3, input);
310 
311                         throw nvae;
312                     }
313 
314                     }
315                     break;
316                 default:
317                     NoViableAltException nvae =
318                         new NoViableAltException("", 5, 1, input);
319 
320                     throw nvae;
321                 }
322 
323                 }
324                 break;
325             case TEXT_SEARCH_WORD_LIT:
326                 {
327                 switch ( input.LA(2) ) {
328                 case TEXT_MINUS:
329                 case AND:
330                 case TEXT_SEARCH_PHRASE_STRING_LIT:
331                 case TEXT_SEARCH_WORD_LIT:
332                     {
333                     alt5=1;
334                     }
335                     break;
336                 case EOF:
337                 case OR:
338                     {
339                     alt5=2;
340                     }
341                     break;
342                 default:
343                     NoViableAltException nvae =
344                         new NoViableAltException("", 5, 2, input);
345 
346                     throw nvae;
347                 }
348 
349                 }
350                 break;
351             case TEXT_SEARCH_PHRASE_STRING_LIT:
352                 {
353                 switch ( input.LA(2) ) {
354                 case TEXT_MINUS:
355                 case AND:
356                 case TEXT_SEARCH_PHRASE_STRING_LIT:
357                 case TEXT_SEARCH_WORD_LIT:
358                     {
359                     alt5=1;
360                     }
361                     break;
362                 case EOF:
363                 case OR:
364                     {
365                     alt5=2;
366                     }
367                     break;
368                 default:
369                     NoViableAltException nvae =
370                         new NoViableAltException("", 5, 3, input);
371 
372                     throw nvae;
373                 }
374 
375                 }
376                 break;
377             default:
378                 NoViableAltException nvae =
379                     new NoViableAltException("", 5, 0, input);
380 
381                 throw nvae;
382             }
383 
384             switch (alt5) {
385                 case 1 :
386                     // org/apache/chemistry/opencmis/server/support/query/TextSearch.g:157:7: term ( ( AND )? term )+
387                     {
388                     pushFollow(FOLLOW_term_in_conjunct407);
389                     term5=term();
390 
391                     state._fsp--;
392 
393                     stream_term.add(term5.getTree());
394                     // org/apache/chemistry/opencmis/server/support/query/TextSearch.g:157:12: ( ( AND )? term )+
395                     int cnt4=0;
396                     loop4:
397                     do {
398                         int alt4=2;
399                         switch ( input.LA(1) ) {
400                         case TEXT_MINUS:
401                         case AND:
402                         case TEXT_SEARCH_PHRASE_STRING_LIT:
403                         case TEXT_SEARCH_WORD_LIT:
404                             {
405                             alt4=1;
406                             }
407                             break;
408 
409                         }
410 
411                         switch (alt4) {
412                     	case 1 :
413                     	    // org/apache/chemistry/opencmis/server/support/query/TextSearch.g:157:13: ( AND )? term
414                     	    {
415                     	    // org/apache/chemistry/opencmis/server/support/query/TextSearch.g:157:13: ( AND )?
416                     	    int alt3=2;
417                     	    switch ( input.LA(1) ) {
418                     	        case AND:
419                     	            {
420                     	            alt3=1;
421                     	            }
422                     	            break;
423                     	    }
424 
425                     	    switch (alt3) {
426                     	        case 1 :
427                     	            // org/apache/chemistry/opencmis/server/support/query/TextSearch.g:157:13: AND
428                     	            {
429                     	            AND6=(Token)match(input,AND,FOLLOW_AND_in_conjunct410);  
430                     	            stream_AND.add(AND6);
431 
432 
433                     	            }
434                     	            break;
435 
436                     	    }
437 
438                     	    pushFollow(FOLLOW_term_in_conjunct413);
439                     	    term7=term();
440 
441                     	    state._fsp--;
442 
443                     	    stream_term.add(term7.getTree());
444 
445                     	    }
446                     	    break;
447 
448                     	default :
449                     	    if ( cnt4 >= 1 ) break loop4;
450                                 EarlyExitException eee =
451                                     new EarlyExitException(4, input);
452                                 throw eee;
453                         }
454                         cnt4++;
455                     } while (true);
456 
457 
458 
459                     // AST REWRITE
460                     // elements: term
461                     // token labels: 
462                     // rule labels: retval
463                     // token list labels: 
464                     // rule list labels: 
465                     // wildcard labels: 
466                     retval.tree = root_0;
467                     RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
468 
469                     root_0 = (CommonTree)adaptor.nil();
470                     // 158:6: -> ^( TEXT_AND ( term )+ )
471                     {
472                         // org/apache/chemistry/opencmis/server/support/query/TextSearch.g:158:9: ^( TEXT_AND ( term )+ )
473                         {
474                         CommonTree root_1 = (CommonTree)adaptor.nil();
475                         root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(TEXT_AND, "TEXT_AND"), root_1);
476 
477                         if ( !(stream_term.hasNext()) ) {
478                             throw new RewriteEarlyExitException();
479                         }
480                         while ( stream_term.hasNext() ) {
481                             adaptor.addChild(root_1, stream_term.nextTree());
482 
483                         }
484                         stream_term.reset();
485 
486                         adaptor.addChild(root_0, root_1);
487                         }
488 
489                     }
490 
491                     retval.tree = root_0;
492                     }
493                     break;
494                 case 2 :
495                     // org/apache/chemistry/opencmis/server/support/query/TextSearch.g:159:6: term
496                     {
497                     root_0 = (CommonTree)adaptor.nil();
498 
499                     pushFollow(FOLLOW_term_in_conjunct436);
500                     term8=term();
501 
502                     state._fsp--;
503 
504                     adaptor.addChild(root_0, term8.getTree());
505 
506                     }
507                     break;
508 
509             }
510             retval.stop = input.LT(-1);
511 
512             retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
513             adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
514 
515         }
516         catch (RecognitionException re) {
517             reportError(re);
518             recover(input,re);
519     	retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
520 
521         }
522         finally {
523         }
524         return retval;
525     }
526     // $ANTLR end "conjunct"
527 
528     public static class term_return extends ParserRuleReturnScope {
529         CommonTree tree;
530         public Object getTree() { return tree; }
531     };
532 
533     // $ANTLR start "term"
534     // org/apache/chemistry/opencmis/server/support/query/TextSearch.g:162:1: term : ( TEXT_MINUS )? ( word | phrase ) ;
535     public final TextSearchParser.term_return term() throws RecognitionException {
536         TextSearchParser.term_return retval = new TextSearchParser.term_return();
537         retval.start = input.LT(1);
538 
539         CommonTree root_0 = null;
540 
541         Token TEXT_MINUS9=null;
542         TextSearchParser.word_return word10 = null;
543 
544         TextSearchParser.phrase_return phrase11 = null;
545 
546 
547         CommonTree TEXT_MINUS9_tree=null;
548 
549         try {
550             // org/apache/chemistry/opencmis/server/support/query/TextSearch.g:163:5: ( ( TEXT_MINUS )? ( word | phrase ) )
551             // org/apache/chemistry/opencmis/server/support/query/TextSearch.g:163:7: ( TEXT_MINUS )? ( word | phrase )
552             {
553             root_0 = (CommonTree)adaptor.nil();
554 
555             // org/apache/chemistry/opencmis/server/support/query/TextSearch.g:163:17: ( TEXT_MINUS )?
556             int alt6=2;
557             switch ( input.LA(1) ) {
558                 case TEXT_MINUS:
559                     {
560                     alt6=1;
561                     }
562                     break;
563             }
564 
565             switch (alt6) {
566                 case 1 :
567                     // org/apache/chemistry/opencmis/server/support/query/TextSearch.g:163:17: TEXT_MINUS
568                     {
569                     TEXT_MINUS9=(Token)match(input,TEXT_MINUS,FOLLOW_TEXT_MINUS_in_term451); 
570                     TEXT_MINUS9_tree = (CommonTree)adaptor.create(TEXT_MINUS9);
571                     root_0 = (CommonTree)adaptor.becomeRoot(TEXT_MINUS9_tree, root_0);
572 
573 
574                     }
575                     break;
576 
577             }
578 
579             // org/apache/chemistry/opencmis/server/support/query/TextSearch.g:163:20: ( word | phrase )
580             int alt7=2;
581             switch ( input.LA(1) ) {
582             case TEXT_SEARCH_WORD_LIT:
583                 {
584                 alt7=1;
585                 }
586                 break;
587             case TEXT_SEARCH_PHRASE_STRING_LIT:
588                 {
589                 alt7=2;
590                 }
591                 break;
592             default:
593                 NoViableAltException nvae =
594                     new NoViableAltException("", 7, 0, input);
595 
596                 throw nvae;
597             }
598 
599             switch (alt7) {
600                 case 1 :
601                     // org/apache/chemistry/opencmis/server/support/query/TextSearch.g:163:21: word
602                     {
603                     pushFollow(FOLLOW_word_in_term456);
604                     word10=word();
605 
606                     state._fsp--;
607 
608                     adaptor.addChild(root_0, word10.getTree());
609 
610                     }
611                     break;
612                 case 2 :
613                     // org/apache/chemistry/opencmis/server/support/query/TextSearch.g:163:28: phrase
614                     {
615                     pushFollow(FOLLOW_phrase_in_term460);
616                     phrase11=phrase();
617 
618                     state._fsp--;
619 
620                     adaptor.addChild(root_0, phrase11.getTree());
621 
622                     }
623                     break;
624 
625             }
626 
627 
628             }
629 
630             retval.stop = input.LT(-1);
631 
632             retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
633             adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
634 
635         }
636         catch (RecognitionException re) {
637             reportError(re);
638             recover(input,re);
639     	retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
640 
641         }
642         finally {
643         }
644         return retval;
645     }
646     // $ANTLR end "term"
647 
648     public static class phrase_return extends ParserRuleReturnScope {
649         CommonTree tree;
650         public Object getTree() { return tree; }
651     };
652 
653     // $ANTLR start "phrase"
654     // org/apache/chemistry/opencmis/server/support/query/TextSearch.g:166:1: phrase : TEXT_SEARCH_PHRASE_STRING_LIT ;
655     public final TextSearchParser.phrase_return phrase() throws RecognitionException {
656         TextSearchParser.phrase_return retval = new TextSearchParser.phrase_return();
657         retval.start = input.LT(1);
658 
659         CommonTree root_0 = null;
660 
661         Token TEXT_SEARCH_PHRASE_STRING_LIT12=null;
662 
663         CommonTree TEXT_SEARCH_PHRASE_STRING_LIT12_tree=null;
664 
665         try {
666             // org/apache/chemistry/opencmis/server/support/query/TextSearch.g:167:5: ( TEXT_SEARCH_PHRASE_STRING_LIT )
667             // org/apache/chemistry/opencmis/server/support/query/TextSearch.g:167:7: TEXT_SEARCH_PHRASE_STRING_LIT
668             {
669             root_0 = (CommonTree)adaptor.nil();
670 
671             TEXT_SEARCH_PHRASE_STRING_LIT12=(Token)match(input,TEXT_SEARCH_PHRASE_STRING_LIT,FOLLOW_TEXT_SEARCH_PHRASE_STRING_LIT_in_phrase476); 
672             TEXT_SEARCH_PHRASE_STRING_LIT12_tree = (CommonTree)adaptor.create(TEXT_SEARCH_PHRASE_STRING_LIT12);
673             adaptor.addChild(root_0, TEXT_SEARCH_PHRASE_STRING_LIT12_tree);
674 
675 
676             }
677 
678             retval.stop = input.LT(-1);
679 
680             retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
681             adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
682 
683         }
684         catch (RecognitionException re) {
685             reportError(re);
686             recover(input,re);
687     	retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
688 
689         }
690         finally {
691         }
692         return retval;
693     }
694     // $ANTLR end "phrase"
695 
696     public static class word_return extends ParserRuleReturnScope {
697         CommonTree tree;
698         public Object getTree() { return tree; }
699     };
700 
701     // $ANTLR start "word"
702     // org/apache/chemistry/opencmis/server/support/query/TextSearch.g:170:1: word : TEXT_SEARCH_WORD_LIT ;
703     public final TextSearchParser.word_return word() throws RecognitionException {
704         TextSearchParser.word_return retval = new TextSearchParser.word_return();
705         retval.start = input.LT(1);
706 
707         CommonTree root_0 = null;
708 
709         Token TEXT_SEARCH_WORD_LIT13=null;
710 
711         CommonTree TEXT_SEARCH_WORD_LIT13_tree=null;
712 
713         try {
714             // org/apache/chemistry/opencmis/server/support/query/TextSearch.g:171:5: ( TEXT_SEARCH_WORD_LIT )
715             // org/apache/chemistry/opencmis/server/support/query/TextSearch.g:171:7: TEXT_SEARCH_WORD_LIT
716             {
717             root_0 = (CommonTree)adaptor.nil();
718 
719             TEXT_SEARCH_WORD_LIT13=(Token)match(input,TEXT_SEARCH_WORD_LIT,FOLLOW_TEXT_SEARCH_WORD_LIT_in_word490); 
720             TEXT_SEARCH_WORD_LIT13_tree = (CommonTree)adaptor.create(TEXT_SEARCH_WORD_LIT13);
721             adaptor.addChild(root_0, TEXT_SEARCH_WORD_LIT13_tree);
722 
723 
724             }
725 
726             retval.stop = input.LT(-1);
727 
728             retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
729             adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
730 
731         }
732         catch (RecognitionException re) {
733             reportError(re);
734             recover(input,re);
735     	retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
736 
737         }
738         finally {
739         }
740         return retval;
741     }
742     // $ANTLR end "word"
743 
744     // Delegated rules
745 
746 
747     protected DFA2 dfa2 = new DFA2(this);
748     static final String DFA2_eotS =
749         "\12\uffff";
750     static final String DFA2_eofS =
751         "\2\uffff\2\11\2\uffff\2\11\2\uffff";
752     static final String DFA2_minS =
753         "\1\6\1\16\3\6\1\16\2\6\2\uffff";
754     static final String DFA2_maxS =
755         "\10\17\2\uffff";
756     static final String DFA2_acceptS =
757         "\10\uffff\1\1\1\2";
758     static final String DFA2_specialS =
759         "\12\uffff}>";
760     static final String[] DFA2_transitionS = {
761             "\1\1\7\uffff\1\3\1\2",
762             "\1\3\1\2",
763             "\1\5\1\4\1\10\5\uffff\1\7\1\6",
764             "\1\5\1\4\1\10\5\uffff\1\7\1\6",
765             "\1\5\7\uffff\1\7\1\6",
766             "\1\7\1\6",
767             "\1\5\1\4\1\10\5\uffff\1\7\1\6",
768             "\1\5\1\4\1\10\5\uffff\1\7\1\6",
769             "",
770             ""
771     };
772 
773     static final short[] DFA2_eot = DFA.unpackEncodedString(DFA2_eotS);
774     static final short[] DFA2_eof = DFA.unpackEncodedString(DFA2_eofS);
775     static final char[] DFA2_min = DFA.unpackEncodedStringToUnsignedChars(DFA2_minS);
776     static final char[] DFA2_max = DFA.unpackEncodedStringToUnsignedChars(DFA2_maxS);
777     static final short[] DFA2_accept = DFA.unpackEncodedString(DFA2_acceptS);
778     static final short[] DFA2_special = DFA.unpackEncodedString(DFA2_specialS);
779     static final short[][] DFA2_transition;
780 
781     static {
782         int numStates = DFA2_transitionS.length;
783         DFA2_transition = new short[numStates][];
784         for (int i=0; i<numStates; i++) {
785             DFA2_transition[i] = DFA.unpackEncodedString(DFA2_transitionS[i]);
786         }
787     }
788 
789     class DFA2 extends DFA {
790 
791         public DFA2(BaseRecognizer recognizer) {
792             this.recognizer = recognizer;
793             this.decisionNumber = 2;
794             this.eot = DFA2_eot;
795             this.eof = DFA2_eof;
796             this.min = DFA2_min;
797             this.max = DFA2_max;
798             this.accept = DFA2_accept;
799             this.special = DFA2_special;
800             this.transition = DFA2_transition;
801         }
802         public String getDescription() {
803             return "150:1: text_search_expression : ( conjunct ( OR conjunct )+ -> ^( TEXT_OR ( conjunct )+ ) | conjunct );";
804         }
805     }
806  
807 
808     public static final BitSet FOLLOW_conjunct_in_text_search_expression367 = new BitSet(new long[]{0x0000000000000100L});
809     public static final BitSet FOLLOW_OR_in_text_search_expression370 = new BitSet(new long[]{0x000000000000C040L});
810     public static final BitSet FOLLOW_conjunct_in_text_search_expression372 = new BitSet(new long[]{0x0000000000000102L});
811     public static final BitSet FOLLOW_conjunct_in_text_search_expression393 = new BitSet(new long[]{0x0000000000000002L});
812     public static final BitSet FOLLOW_term_in_conjunct407 = new BitSet(new long[]{0x000000000000C0C0L});
813     public static final BitSet FOLLOW_AND_in_conjunct410 = new BitSet(new long[]{0x000000000000C040L});
814     public static final BitSet FOLLOW_term_in_conjunct413 = new BitSet(new long[]{0x000000000000C0C2L});
815     public static final BitSet FOLLOW_term_in_conjunct436 = new BitSet(new long[]{0x0000000000000002L});
816     public static final BitSet FOLLOW_TEXT_MINUS_in_term451 = new BitSet(new long[]{0x000000000000C040L});
817     public static final BitSet FOLLOW_word_in_term456 = new BitSet(new long[]{0x0000000000000002L});
818     public static final BitSet FOLLOW_phrase_in_term460 = new BitSet(new long[]{0x0000000000000002L});
819     public static final BitSet FOLLOW_TEXT_SEARCH_PHRASE_STRING_LIT_in_phrase476 = new BitSet(new long[]{0x0000000000000002L});
820     public static final BitSet FOLLOW_TEXT_SEARCH_WORD_LIT_in_word490 = new BitSet(new long[]{0x0000000000000002L});
821 
822 }