1 /* Generated By:JavaCC: Do not edit this line. QueryParserTokenManager.java */
2 package org.apache.lucene.queryParser.surround.parser;
3 import java.util.ArrayList;
5 import java.io.StringReader;
6 import org.apache.lucene.analysis.TokenStream;
7 import org.apache.lucene.queryParser.surround.query.SrndQuery;
8 import org.apache.lucene.queryParser.surround.query.FieldsQuery;
9 import org.apache.lucene.queryParser.surround.query.OrQuery;
10 import org.apache.lucene.queryParser.surround.query.AndQuery;
11 import org.apache.lucene.queryParser.surround.query.NotQuery;
12 import org.apache.lucene.queryParser.surround.query.DistanceQuery;
13 import org.apache.lucene.queryParser.surround.query.SrndTermQuery;
14 import org.apache.lucene.queryParser.surround.query.SrndPrefixQuery;
15 import org.apache.lucene.queryParser.surround.query.SrndTruncQuery;
18 public class QueryParserTokenManager implements QueryParserConstants
22 public java.io.PrintStream debugStream = System.out;
23 /** Set debug output. */
24 public void setDebugStream(java.io.PrintStream ds) { debugStream = ds; }
25 private final int jjStopStringLiteralDfa_1(int pos, long active0)
33 private final int jjStartNfa_1(int pos, long active0)
35 return jjMoveNfa_1(jjStopStringLiteralDfa_1(pos, active0), pos + 1);
37 private int jjStopAtPos(int pos, int kind)
43 private int jjMoveStringLiteralDfa0_1()
48 return jjStopAtPos(0, 13);
50 return jjStopAtPos(0, 14);
52 return jjStopAtPos(0, 15);
54 return jjStopAtPos(0, 16);
56 return jjStopAtPos(0, 17);
58 return jjMoveNfa_1(0, 0);
61 static final long[] jjbitVec0 = {
62 0xfffffffffffffffeL, 0xffffffffffffffffL, 0xffffffffffffffffL, 0xffffffffffffffffL
64 static final long[] jjbitVec2 = {
65 0x0L, 0x0L, 0xffffffffffffffffL, 0xffffffffffffffffL
67 private int jjMoveNfa_1(int startState, int curPos)
72 jjstateSet[0] = startState;
73 int kind = 0x7fffffff;
76 if (++jjround == 0x7fffffff)
80 long l = 1L << curChar;
83 switch(jjstateSet[--i])
86 if ((0x7bffe8faffffd9ffL & l) != 0L)
90 jjCheckNAddStates(0, 4);
92 else if ((0x100002600L & l) != 0L)
97 else if (curChar == 34)
98 jjCheckNAddStates(5, 7);
99 if ((0x3fc000000000000L & l) != 0L)
100 jjCheckNAddStates(8, 11);
101 else if (curChar == 49)
102 jjCheckNAddTwoStates(20, 21);
105 if ((0x3fc000000000000L & l) != 0L)
106 jjCheckNAddStates(8, 11);
109 if ((0x3ff000000000000L & l) != 0L)
113 if ((0x3ff000000000000L & l) != 0L)
118 jjCheckNAddTwoStates(20, 21);
122 jjCheckNAddStates(5, 7);
125 if ((0xfffffffbffffffffL & l) != 0L)
126 jjCheckNAddTwoStates(24, 25);
130 jjstateSet[jjnewStateCnt++] = 26;
133 if (curChar == 42 && kind > 18)
137 if ((0xfffffffbffffffffL & l) != 0L)
138 jjCheckNAddStates(12, 14);
142 jjCheckNAddStates(12, 14);
145 if (curChar == 34 && kind > 19)
149 if ((0x7bffe8faffffd9ffL & l) == 0L)
153 jjCheckNAddStates(0, 4);
156 if ((0x7bffe8faffffd9ffL & l) != 0L)
157 jjCheckNAddTwoStates(32, 33);
160 if (curChar == 42 && kind > 20)
164 if ((0x7bffe8faffffd9ffL & l) != 0L)
165 jjCheckNAddTwoStates(34, 35);
168 if ((0x8000040000000000L & l) == 0L)
172 jjCheckNAddTwoStates(35, 36);
175 if ((0xfbffecfaffffd9ffL & l) == 0L)
182 if ((0x7bffe8faffffd9ffL & l) == 0L)
190 } while(i != startsAt);
192 else if (curChar < 128)
194 long l = 1L << (curChar & 077);
197 switch(jjstateSet[--i])
200 if ((0xffffffffbfffffffL & l) != 0L)
204 jjCheckNAddStates(0, 4);
206 if ((0x400000004000L & l) != 0L)
211 else if ((0x80000000800000L & l) != 0L)
216 else if (curChar == 97)
217 jjstateSet[jjnewStateCnt++] = 9;
218 else if (curChar == 65)
219 jjstateSet[jjnewStateCnt++] = 6;
220 else if (curChar == 111)
221 jjstateSet[jjnewStateCnt++] = 3;
222 else if (curChar == 79)
223 jjstateSet[jjnewStateCnt++] = 1;
225 jjstateSet[jjnewStateCnt++] = 15;
226 else if (curChar == 78)
227 jjstateSet[jjnewStateCnt++] = 12;
230 if (curChar == 82 && kind > 8)
235 jjstateSet[jjnewStateCnt++] = 1;
238 if (curChar == 114 && kind > 8)
243 jjstateSet[jjnewStateCnt++] = 3;
246 if (curChar == 68 && kind > 9)
251 jjstateSet[jjnewStateCnt++] = 5;
255 jjstateSet[jjnewStateCnt++] = 6;
258 if (curChar == 100 && kind > 9)
263 jjstateSet[jjnewStateCnt++] = 8;
267 jjstateSet[jjnewStateCnt++] = 9;
270 if (curChar == 84 && kind > 10)
275 jjstateSet[jjnewStateCnt++] = 11;
279 jjstateSet[jjnewStateCnt++] = 12;
282 if (curChar == 116 && kind > 10)
287 jjstateSet[jjnewStateCnt++] = 14;
291 jjstateSet[jjnewStateCnt++] = 15;
294 if ((0x80000000800000L & l) != 0L && kind > 11)
298 if ((0x400000004000L & l) != 0L && kind > 12)
305 if ((0xffffffffefffffffL & l) != 0L)
306 jjCheckNAddStates(12, 14);
310 jjstateSet[jjnewStateCnt++] = 29;
314 jjCheckNAddStates(12, 14);
317 if ((0xffffffffbfffffffL & l) == 0L)
321 jjCheckNAddStates(0, 4);
324 if ((0xffffffffbfffffffL & l) != 0L)
325 jjCheckNAddTwoStates(32, 33);
328 if ((0xffffffffbfffffffL & l) != 0L)
329 jjCheckNAddTwoStates(34, 35);
332 if ((0xffffffffbfffffffL & l) == 0L)
336 jjstateSet[jjnewStateCnt++] = 36;
339 if ((0xffffffffbfffffffL & l) == 0L)
347 } while(i != startsAt);
351 int hiByte = (int)(curChar >> 8);
352 int i1 = hiByte >> 6;
353 long l1 = 1L << (hiByte & 077);
354 int i2 = (curChar & 0xff) >> 6;
355 long l2 = 1L << (curChar & 077);
358 switch(jjstateSet[--i])
361 if (!jjCanMove_0(hiByte, i1, i2, l1, l2))
365 jjCheckNAddStates(0, 4);
368 if (jjCanMove_0(hiByte, i1, i2, l1, l2))
372 if (jjCanMove_0(hiByte, i1, i2, l1, l2))
376 if (jjCanMove_0(hiByte, i1, i2, l1, l2))
377 jjCheckNAddTwoStates(32, 33);
380 if (jjCanMove_0(hiByte, i1, i2, l1, l2))
381 jjCheckNAddTwoStates(34, 35);
384 if (!jjCanMove_0(hiByte, i1, i2, l1, l2))
388 jjstateSet[jjnewStateCnt++] = 36;
391 if (!jjCanMove_0(hiByte, i1, i2, l1, l2))
399 } while(i != startsAt);
401 if (kind != 0x7fffffff)
403 jjmatchedKind = kind;
404 jjmatchedPos = curPos;
408 if ((i = jjnewStateCnt) == (startsAt = 38 - (jjnewStateCnt = startsAt)))
410 try { curChar = input_stream.readChar(); }
411 catch(java.io.IOException e) { return curPos; }
414 private int jjMoveStringLiteralDfa0_0()
416 return jjMoveNfa_0(0, 0);
418 private int jjMoveNfa_0(int startState, int curPos)
423 jjstateSet[0] = startState;
424 int kind = 0x7fffffff;
427 if (++jjround == 0x7fffffff)
431 long l = 1L << curChar;
434 switch(jjstateSet[--i])
437 if ((0x3ff000000000000L & l) == 0L)
448 if ((0x3ff000000000000L & l) == 0L)
456 } while(i != startsAt);
458 else if (curChar < 128)
460 long l = 1L << (curChar & 077);
463 switch(jjstateSet[--i])
467 } while(i != startsAt);
471 int hiByte = (int)(curChar >> 8);
472 int i1 = hiByte >> 6;
473 long l1 = 1L << (hiByte & 077);
474 int i2 = (curChar & 0xff) >> 6;
475 long l2 = 1L << (curChar & 077);
478 switch(jjstateSet[--i])
482 } while(i != startsAt);
484 if (kind != 0x7fffffff)
486 jjmatchedKind = kind;
487 jjmatchedPos = curPos;
491 if ((i = jjnewStateCnt) == (startsAt = 3 - (jjnewStateCnt = startsAt)))
493 try { curChar = input_stream.readChar(); }
494 catch(java.io.IOException e) { return curPos; }
497 static final int[] jjnextStates = {
498 32, 33, 34, 35, 37, 24, 27, 28, 20, 17, 21, 18, 27, 28, 30, 24,
501 private static final boolean jjCanMove_0(int hiByte, int i1, int i2, long l1, long l2)
506 return ((jjbitVec2[i2] & l2) != 0L);
508 if ((jjbitVec0[i1] & l1) != 0L)
514 /** Token literal values. */
515 public static final String[] jjstrLiteralImages = {
516 "", null, null, null, null, null, null, null, null, null, null, null, null,
517 "\50", "\51", "\54", "\72", "\136", null, null, null, null, null, null, };
519 /** Lexer state names. */
520 public static final String[] lexStateNames = {
525 /** Lex State array. */
526 public static final int[] jjnewLexState = {
527 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, 1,
529 static final long[] jjtoToken = {
532 static final long[] jjtoSkip = {
535 protected CharStream input_stream;
536 private final int[] jjrounds = new int[38];
537 private final int[] jjstateSet = new int[76];
538 protected char curChar;
540 public QueryParserTokenManager(CharStream stream){
541 input_stream = stream;
545 public QueryParserTokenManager(CharStream stream, int lexState){
550 /** Reinitialise parser. */
551 public void ReInit(CharStream stream)
553 jjmatchedPos = jjnewStateCnt = 0;
554 curLexState = defaultLexState;
555 input_stream = stream;
558 private void ReInitRounds()
561 jjround = 0x80000001;
562 for (i = 38; i-- > 0;)
563 jjrounds[i] = 0x80000000;
566 /** Reinitialise parser. */
567 public void ReInit(CharStream stream, int lexState)
573 /** Switch to specified lex state. */
574 public void SwitchTo(int lexState)
576 if (lexState >= 2 || lexState < 0)
577 throw new TokenMgrError("Error: Ignoring invalid lexical state : " + lexState + ". State unchanged.", TokenMgrError.INVALID_LEXICAL_STATE);
579 curLexState = lexState;
582 protected Token jjFillToken()
585 final String curTokenImage;
588 final int beginColumn;
590 String im = jjstrLiteralImages[jjmatchedKind];
591 curTokenImage = (im == null) ? input_stream.GetImage() : im;
592 beginLine = input_stream.getBeginLine();
593 beginColumn = input_stream.getBeginColumn();
594 endLine = input_stream.getEndLine();
595 endColumn = input_stream.getEndColumn();
596 t = Token.newToken(jjmatchedKind, curTokenImage);
598 t.beginLine = beginLine;
600 t.beginColumn = beginColumn;
601 t.endColumn = endColumn;
607 int defaultLexState = 1;
613 /** Get the next Token. */
614 public Token getNextToken()
624 curChar = input_stream.BeginToken();
626 catch(java.io.IOException e)
629 matchedToken = jjFillToken();
636 jjmatchedKind = 0x7fffffff;
638 curPos = jjMoveStringLiteralDfa0_0();
641 jjmatchedKind = 0x7fffffff;
643 curPos = jjMoveStringLiteralDfa0_1();
646 if (jjmatchedKind != 0x7fffffff)
648 if (jjmatchedPos + 1 < curPos)
649 input_stream.backup(curPos - jjmatchedPos - 1);
650 if ((jjtoToken[jjmatchedKind >> 6] & (1L << (jjmatchedKind & 077))) != 0L)
652 matchedToken = jjFillToken();
653 if (jjnewLexState[jjmatchedKind] != -1)
654 curLexState = jjnewLexState[jjmatchedKind];
659 if (jjnewLexState[jjmatchedKind] != -1)
660 curLexState = jjnewLexState[jjmatchedKind];
664 int error_line = input_stream.getEndLine();
665 int error_column = input_stream.getEndColumn();
666 String error_after = null;
667 boolean EOFSeen = false;
668 try { input_stream.readChar(); input_stream.backup(1); }
669 catch (java.io.IOException e1) {
671 error_after = curPos <= 1 ? "" : input_stream.GetImage();
672 if (curChar == '\n' || curChar == '\r') {
680 input_stream.backup(1);
681 error_after = curPos <= 1 ? "" : input_stream.GetImage();
683 throw new TokenMgrError(EOFSeen, curLexState, error_line, error_column, error_after, curChar, TokenMgrError.LEXICAL_ERROR);
687 private void jjCheckNAdd(int state)
689 if (jjrounds[state] != jjround)
691 jjstateSet[jjnewStateCnt++] = state;
692 jjrounds[state] = jjround;
695 private void jjAddStates(int start, int end)
698 jjstateSet[jjnewStateCnt++] = jjnextStates[start];
699 } while (start++ != end);
701 private void jjCheckNAddTwoStates(int state1, int state2)
707 private void jjCheckNAddStates(int start, int end)
710 jjCheckNAdd(jjnextStates[start]);
711 } while (start++ != end);