2010-07-25 Carlos Alberto Cortez <calberto.cortez@gmail.com>
[mono.git] / mcs / tools / monodoc / Lucene.Net / Lucene.Net / QueryParser / QueryParserTokenManager.cs
1 /*\r
2  * Copyright 2004 The Apache Software Foundation\r
3  * \r
4  * Licensed under the Apache License, Version 2.0 (the "License");\r
5  * you may not use this file except in compliance with the License.\r
6  * You may obtain a copy of the License at\r
7  * \r
8  * http://www.apache.org/licenses/LICENSE-2.0\r
9  * \r
10  * Unless required by applicable law or agreed to in writing, software\r
11  * distributed under the License is distributed on an "AS IS" BASIS,\r
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
13  * See the License for the specific language governing permissions and\r
14  * limitations under the License.\r
15  */\r
16 /* Generated By:JavaCC: Do not edit this line. QueryParserTokenManager.java */\r
17 using System;\r
18 using Monodoc.Lucene.Net.Analysis;\r
19 using Monodoc.Lucene.Net.Documents;\r
20 using Term = Monodoc.Lucene.Net.Index.Term;\r
21 using Monodoc.Lucene.Net.Search;\r
22 using Searchable = Monodoc.Lucene.Net.Search.Searchable;\r
23 namespace Monodoc.Lucene.Net.QueryParsers\r
24 {\r
25         \r
26         public class QueryParserTokenManager : QueryParserConstants\r
27         {\r
28                 private void  InitBlock()\r
29                 {\r
30             System.IO.StreamWriter temp_writer;\r
31             temp_writer = new System.IO.StreamWriter(System.Console.OpenStandardOutput(), System.Console.Out.Encoding);\r
32             temp_writer.AutoFlush = true;\r
33             debugStream = temp_writer;\r
34         }\r
35                 public System.IO.StreamWriter debugStream;\r
36                 public virtual void  SetDebugStream(System.IO.StreamWriter ds)\r
37                 {\r
38                         debugStream = ds;\r
39                 }\r
40                 private int jjStopStringLiteralDfa_3(int pos, long active0)\r
41                 {\r
42                         switch (pos)\r
43                         {\r
44                                 \r
45                                 default: \r
46                                         return - 1;\r
47                                 \r
48                         }\r
49                 }\r
50         private int jjStartNfa_3(int pos, long active0)\r
51         {\r
52             return JjMoveNfa_3(jjStopStringLiteralDfa_3(pos, active0), pos + 1);\r
53         }\r
54         private int JjStopAtPos(int pos, int kind)\r
55         {\r
56             jjmatchedKind = kind;\r
57             jjmatchedPos = pos;\r
58             return pos + 1;\r
59         }\r
60         private int JjStartNfaWithStates_3(int pos, int kind, int state)\r
61         {\r
62             jjmatchedKind = kind;\r
63             jjmatchedPos = pos;\r
64             try\r
65             {\r
66                 curChar = input_stream.ReadChar();\r
67             }\r
68             catch (System.IO.IOException e)\r
69             {\r
70                 return pos + 1;\r
71             }\r
72             return JjMoveNfa_3(state, pos + 1);\r
73         }\r
74         private int JjMoveStringLiteralDfa0_3()\r
75         {\r
76             switch (curChar)\r
77             {\r
78                                 \r
79                 case (char) (40): \r
80                     return JjStopAtPos(0, 12);\r
81                                 \r
82                 case (char) (41): \r
83                     return JjStopAtPos(0, 13);\r
84                                 \r
85                 case (char) (43): \r
86                     return JjStopAtPos(0, 10);\r
87                                 \r
88                 case (char) (45): \r
89                     return JjStopAtPos(0, 11);\r
90                                 \r
91                 case (char) (58): \r
92                     return JjStopAtPos(0, 14);\r
93                                 \r
94                 case (char) (91): \r
95                     return JjStopAtPos(0, 21);\r
96                                 \r
97                 case (char) (94): \r
98                     return JjStopAtPos(0, 15);\r
99                                 \r
100                 case (char) (123): \r
101                     return JjStopAtPos(0, 22);\r
102                                 \r
103                 default: \r
104                     return JjMoveNfa_3(0, 0);\r
105                                 \r
106             }\r
107         }\r
108         private void  JjCheckNAdd(int state)\r
109         {\r
110             if (jjrounds[state] != jjround)\r
111             {\r
112                 jjstateSet[jjnewStateCnt++] = state;\r
113                 jjrounds[state] = jjround;\r
114             }\r
115         }\r
116         private void  JjAddStates(int start, int end)\r
117         {\r
118             do \r
119             {\r
120                 jjstateSet[jjnewStateCnt++] = jjnextStates[start];\r
121             }\r
122             while (start++ != end);\r
123         }\r
124         private void  JjCheckNAddTwoStates(int state1, int state2)\r
125         {\r
126             JjCheckNAdd(state1);\r
127             JjCheckNAdd(state2);\r
128         }\r
129         private void  JjCheckNAddStates(int start, int end)\r
130         {\r
131             do \r
132             {\r
133                 JjCheckNAdd(jjnextStates[start]);\r
134             }\r
135             while (start++ != end);\r
136         }\r
137         private void  JjCheckNAddStates(int start)\r
138         {\r
139             JjCheckNAdd(jjnextStates[start]);\r
140             JjCheckNAdd(jjnextStates[start + 1]);\r
141         }\r
142         internal static readonly ulong[] jjbitVec0 = new ulong[]{0xfffffffffffffffeL, 0xffffffffffffffffL, 0xffffffffffffffffL, 0xffffffffffffffffL};\r
143         internal static readonly ulong[] jjbitVec2 = new ulong[]{0x0L, 0x0L, 0xffffffffffffffffL, 0xffffffffffffffffL};\r
144         private int JjMoveNfa_3(int startState, int curPos)\r
145         {\r
146             int[] nextStates;\r
147             int startsAt = 0;\r
148             jjnewStateCnt = 33;\r
149             int i = 1;\r
150             jjstateSet[0] = startState;\r
151             int j, kind = 0x7fffffff;\r
152             for (; ; )\r
153             {\r
154                 if (++jjround == 0x7fffffff)\r
155                     ReInitRounds();\r
156                 if (curChar < 64)\r
157                 {\r
158                     ulong l = ((ulong) 1L) << curChar;\r\r
159 MatchLoop: \r
160                     do \r
161                                         {\r
162                                                 switch (jjstateSet[--i])\r
163                                                 {\r
164                                                         \r
165                                                         case 0: \r
166                                                                 if ((0x7bffd0f8ffffd9ffL & l) != (ulong) 0L)\r
167                                                                 {\r
168                                                                         if (kind > 17)\r
169                                                                                 kind = 17;\r
170                                                                         JjCheckNAddStates(0, 6);\r
171                                                                 }\r
172                                                                 else if ((0x100002600L & l) != (ulong) 0L)\r
173                                                                 {\r
174                                                                         if (kind > 6)\r
175                                                                                 kind = 6;\r
176                                                                 }\r
177                                                                 else if (curChar == 34)\r
178                                                                         JjCheckNAdd(15);\r
179                                                                 else if (curChar == 33)\r
180                                                                 {\r
181                                                                         if (kind > 9)\r
182                                                                                 kind = 9;\r
183                                                                 }\r
184                                                                 if (curChar == 38)\r
185                                                                         jjstateSet[jjnewStateCnt++] = 4;\r
186                                                                 break;\r
187                                                         \r
188                                                         case 4: \r
189                                                                 if (curChar == 38 && kind > 7)\r
190                                                                         kind = 7;\r
191                                                                 break;\r
192                                                         \r
193                                                         case 5: \r
194                                                                 if (curChar == 38)\r
195                                                                         jjstateSet[jjnewStateCnt++] = 4;\r
196                                                                 break;\r
197                                                         \r
198                                                         case 13: \r
199                                                                 if (curChar == 33 && kind > 9)\r
200                                                                         kind = 9;\r
201                                                                 break;\r
202                                                         \r
203                                                         case 14: \r
204                                                                 if (curChar == 34)\r
205                                                                         JjCheckNAdd(15);\r
206                                                                 break;\r
207                                                         \r
208                                                         case 15: \r
209                                                                 if ((0xfffffffbffffffffL & l) != (ulong) 0L)\r
210                                                                         JjCheckNAddTwoStates(15, 16);\r
211                                                                 break;\r
212                                                         \r
213                                                         case 16: \r
214                                                                 if (curChar == 34 && kind > 16)\r
215                                                                         kind = 16;\r
216                                                                 break;\r
217                                                         \r
218                                                         case 18: \r
219                                                                 if ((0x3ff000000000000L & l) == (ulong) 0L)\r
220                                                                         break;\r
221                                                                 if (kind > 18)\r
222                                                                         kind = 18;\r
223                                                                 JjAddStates(7, 8);\r
224                                                                 break;\r
225                                                         \r
226                                                         case 19: \r
227                                 if (curChar == 46)\r
228                                     JjCheckNAdd(20);\r
229                                 break;\r
230                                                         \r
231                                                         case 20: \r
232                                                                 if ((0x3ff000000000000L & l) == (ulong) 0L)\r
233                                                                         break;\r
234                                                                 if (kind > 18)\r
235                                                                         kind = 18;\r
236                                                                 JjCheckNAdd(20);\r
237                                                                 break;\r
238                                                         \r
239                             case 21: \r
240                                 if ((0x7bffd0f8ffffd9ffL & l) == (ulong) 0L)\r
241                                     break;\r
242                                 if (kind > 17)\r
243                                     kind = 17;\r
244                                 JjCheckNAddStates(0, 6);\r
245                                 break;\r
246                                                         \r
247                             case 22: \r
248                                                                 if ((0x7bfff8f8ffffd9ffL & l) == (ulong) 0L)\r
249                                                                         break;\r
250                                                                 if (kind > 17)\r
251                                                                         kind = 17;\r
252                                                                 JjCheckNAddTwoStates(22, 23);\r
253                                                                 break;\r
254                                                         \r
255                                                         case 24: \r
256                                 if ((0x84002f0600000000L & l) == (ulong) 0L)\r
257                                     break;\r
258                                 if (kind > 17)\r
259                                     kind = 17;\r
260                                 JjCheckNAddTwoStates(22, 23);\r
261                                 break;\r
262                                                         \r
263                             case 25: \r
264                                 if ((0x7bfff8f8ffffd9ffL & l) != (ulong) 0L)\r
265                                     JjCheckNAddStates(9, 11);\r
266                                 break;\r
267                                                         \r
268                                                         case 26: \r
269                                 if (curChar == 42 && kind > 19)\r
270                                     kind = 19;\r
271                                 break;\r
272                                                         \r
273                             case 28: \r
274                                 if ((0x84002f0600000000L & l) != (ulong) 0L)\r
275                                     JjCheckNAddStates(9, 11);\r
276                                 break;\r
277                                                         \r
278                                                         case 29: \r
279                                 if ((0xfbfffcf8ffffd9ffL & l) == (ulong) 0L)\r
280                                     break;\r
281                                 if (kind > 20)\r
282                                     kind = 20;\r
283                                 JjCheckNAddTwoStates(29, 30);\r
284                                 break;\r
285                                                         \r
286                             case 31: \r
287                                 if ((0x84002f0600000000L & l) == (ulong) 0L)\r
288                                     break;\r
289                                 if (kind > 20)\r
290                                     kind = 20;\r
291                                 JjCheckNAddTwoStates(29, 30);\r
292                                 break;\r
293                                                         \r
294                             default:  break;\r
295                                                         \r
296                                                 }\r
297                                         }\r
298                                         while (i != startsAt);\r
299                                 }\r
300                                 else if (curChar < 128)\r
301                                 {\r
302                                         ulong l = ((ulong) 1L) << (curChar & 63);\r\r
303 MatchLoop1: \r
304                                         do \r
305                                         {\r
306                                                 switch (jjstateSet[--i])\r
307                                                 {\r
308                                                         \r
309                                                         case 0: \r
310                                                                 if ((0x97ffffff97ffffffL & l) != (ulong) 0L)\r
311                                                                 {\r
312                                                                         if (kind > 17)\r
313                                                                                 kind = 17;\r
314                                                                         JjCheckNAddStates(0, 6);\r
315                                                                 }\r
316                                                                 else if (curChar == 126)\r
317                                 {\r
318                                     if (kind > 18)\r
319                                         kind = 18;\r
320                                     jjstateSet[jjnewStateCnt++] = 18;\r
321                                 }\r
322                                 if (curChar == 92)\r
323                                                                         JjCheckNAddStates(12, 14);\r
324                                                                 else if (curChar == 78)\r
325                                                                         jjstateSet[jjnewStateCnt++] = 11;\r
326                                                                 else if (curChar == 124)\r
327                                                                         jjstateSet[jjnewStateCnt++] = 8;\r
328                                                                 else if (curChar == 79)\r
329                                                                         jjstateSet[jjnewStateCnt++] = 6;\r
330                                                                 else if (curChar == 65)\r
331                                                                         jjstateSet[jjnewStateCnt++] = 2;\r
332                                                                 break;\r
333                                                         \r
334                                                         case 1: \r
335                                                                 if (curChar == 68 && kind > 7)\r
336                                                                         kind = 7;\r
337                                                                 break;\r
338                                                         \r
339                                                         case 2: \r
340                                                                 if (curChar == 78)\r
341                                                                         jjstateSet[jjnewStateCnt++] = 1;\r
342                                                                 break;\r
343                                                         \r
344                                                         case 3: \r
345                                                                 if (curChar == 65)\r
346                                                                         jjstateSet[jjnewStateCnt++] = 2;\r
347                                                                 break;\r
348                                                         \r
349                                                         case 6: \r
350                                                                 if (curChar == 82 && kind > 8)\r
351                                                                         kind = 8;\r
352                                                                 break;\r
353                                                         \r
354                                                         case 7: \r
355                                                                 if (curChar == 79)\r
356                                                                         jjstateSet[jjnewStateCnt++] = 6;\r
357                                                                 break;\r
358                                                         \r
359                                                         case 8: \r
360                                                                 if (curChar == 124 && kind > 8)\r
361                                                                         kind = 8;\r
362                                                                 break;\r
363                                                         \r
364                                                         case 9: \r
365                                                                 if (curChar == 124)\r
366                                                                         jjstateSet[jjnewStateCnt++] = 8;\r
367                                                                 break;\r
368                                                         \r
369                                                         case 10: \r
370                                                                 if (curChar == 84 && kind > 9)\r
371                                                                         kind = 9;\r
372                                                                 break;\r
373                                                         \r
374                                                         case 11: \r
375                                                                 if (curChar == 79)\r
376                                                                         jjstateSet[jjnewStateCnt++] = 10;\r
377                                                                 break;\r
378                                                         \r
379                                                         case 12: \r
380                                                                 if (curChar == 78)\r
381                                                                         jjstateSet[jjnewStateCnt++] = 11;\r
382                                                                 break;\r
383                                                         \r
384                                                         case 15: \r
385                                                                 JjAddStates(13, 16);\r
386                                                                 break;\r
387                                                         \r
388                                                         case 17: \r
389                                 if (curChar != 126)\r
390                                     break;\r
391                                 if (kind > 18)\r
392                                     kind = 18;\r
393                                 jjstateSet[jjnewStateCnt++] = 18;\r
394                                 break;\r
395                                                         \r
396                                                         case 21: \r
397                                 if ((0x97ffffff97ffffffL & l) == (ulong) 0L)\r
398                                     break;\r
399                                 if (kind > 17)\r
400                                     kind = 17;\r
401                                 JjCheckNAddStates(0, 6);\r
402                                 break;\r
403                                                         \r
404                                                         case 22: \r
405                                                                 if ((0x97ffffff97ffffffL & l) == (ulong) 0L)\r
406                                                                         break;\r
407                                                                 if (kind > 17)\r
408                                                                         kind = 17;\r
409                                                                 JjCheckNAddTwoStates(22, 23);\r
410                                                                 break;\r
411                                                         \r
412                                                         case 23: \r
413                                 if (curChar == 92)\r
414                                     JjCheckNAddTwoStates(24, 24);\r
415                                 break;\r
416                                                         \r
417                             case 24: \r
418                                 if ((0x6800000078000000L & l) == (ulong) 0L)\r
419                                     break;\r
420                                 if (kind > 17)\r
421                                     kind = 17;\r
422                                 JjCheckNAddTwoStates(22, 23);\r
423                                 break;\r
424                                                         \r
425                                                         case 25: \r
426                                 if ((0x97ffffff97ffffffL & l) != (ulong) 0L)\r
427                                     JjCheckNAddStates(9, 11);\r
428                                 break;\r
429                                                         \r
430                                                         case 27: \r
431                                 if (curChar == 92)\r
432                                     JjCheckNAddTwoStates(28, 28);\r
433                                 break;\r
434                                                         \r
435                                                         case 28: \r
436                                 if ((0x6800000078000000L & l) != (ulong) 0L)\r
437                                     JjCheckNAddStates(9, 11);\r
438                                 break;\r
439                                                         \r
440                                                         case 29: \r
441                                 if ((0x97ffffff97ffffffL & l) == (ulong) 0L)\r
442                                     break;\r
443                                 if (kind > 20)\r
444                                     kind = 20;\r
445                                 JjCheckNAddTwoStates(29, 30);\r
446                                 break;\r
447                                                         \r
448                                                         case 30: \r
449                                                                 if (curChar == 92)\r
450                                                                         JjCheckNAddTwoStates(31, 31);\r
451                                                                 break;\r
452                                                         \r
453                             case 31: \r
454                                 if ((0x6800000078000000L & l) == (ulong) 0L)\r
455                                     break;\r
456                                 if (kind > 20)\r
457                                     kind = 20;\r
458                                 JjCheckNAddTwoStates(29, 30);\r
459                                 break;\r
460                                                         \r
461                             case 32: \r
462                                 if (curChar == 92)\r
463                                     JjCheckNAddStates(12, 14);\r
464                                 break;\r
465                                                         \r
466                             default:  break;\r
467                                                         \r
468                                                 }\r
469                                         }\r
470                                         while (i != startsAt);\r
471                                 }\r
472                                 else\r
473                                 {\r
474                                         int hiByte = (int) (curChar >> 8);\r
475                                         int i1 = hiByte >> 6;\r
476                                         ulong l1 = ((ulong) 1L) << (hiByte & 63);\r
477                                         int i2 = (curChar & 0xff) >> 6;\r
478                                         ulong l2 = ((ulong) 1L) << (curChar & 63);\r\r
479 MatchLoop1: \r
480                                         do \r
481                                         {\r
482                                                 switch (jjstateSet[--i])\r
483                                                 {\r
484                                                         \r
485                                                         case 0: \r
486                                                                 if (!jjCanMove_0(hiByte, i1, i2, (ulong) l1, (ulong) l2))\r
487                                                                         break;\r
488                                                                 if (kind > 17)\r
489                                                                         kind = 17;\r
490                                                                 JjCheckNAddStates(0, 6);\r
491                                                                 break;\r
492                                                         \r
493                                                         case 15: \r
494                                                                 if (jjCanMove_0(hiByte, i1, i2, (ulong) l1, (ulong) l2))\r
495                                                                         JjAddStates(15, 16);\r
496                                                                 break;\r
497                                                         \r
498                                                         case 22: \r
499                                                                 if (!jjCanMove_0(hiByte, i1, i2, (ulong) l1, (ulong) l2))\r
500                                                                         break;\r
501                                                                 if (kind > 17)\r
502                                                                         kind = 17;\r
503                                                                 JjCheckNAddTwoStates(22, 23);\r
504                                                                 break;\r
505                                                         \r
506                                                         case 25: \r
507                                                                 if (jjCanMove_0(hiByte, i1, i2, (ulong) l1, (ulong) l2))\r
508                                                                         JjCheckNAddStates(9, 11);\r
509                                                                 break;\r
510                                                         \r
511                                                         case 29: \r
512                                                                 if (!jjCanMove_0(hiByte, i1, i2, (ulong) l1, (ulong) l2))\r
513                                                                         break;\r
514                                 if (kind > 20)\r
515                                     kind = 20;\r
516                                 JjCheckNAddTwoStates(29, 30);\r
517                                 break;\r
518                                                         \r
519                                                         default:  break;\r
520                                                         \r
521                                                 }\r
522                                         }\r
523                                         while (i != startsAt);\r
524                                 }\r
525                                 if (kind != 0x7fffffff)\r
526                                 {\r
527                                         jjmatchedKind = kind;\r
528                                         jjmatchedPos = curPos;\r
529                                         kind = 0x7fffffff;\r
530                                 }\r
531                                 ++curPos;\r
532                                 if ((i = jjnewStateCnt) == (startsAt = 33 - (jjnewStateCnt = startsAt)))\r
533                                         return curPos;\r
534                                 try\r
535                                 {\r
536                                         curChar = input_stream.ReadChar();\r
537                                 }\r
538                                 catch (System.IO.IOException)\r
539                                 {\r
540                                         return curPos;\r
541                                 }\r
542                         }\r
543                 }\r
544                 private int JjStopStringLiteralDfa_1(int pos, ulong active0)\r
545                 {\r
546                         switch (pos)\r
547                         {\r
548                                 \r
549                                 case 0: \r
550                                         if ((active0 & 0x10000000L) != 0L)\r
551                                         {\r
552                                                 jjmatchedKind = 31;\r
553                                                 return 4;\r
554                                         }\r
555                                         return - 1;\r
556                                 \r
557                                 default: \r
558                                         return - 1;\r
559                                 \r
560                         }\r
561                 }\r
562                 private int JjStartNfa_1(int pos, ulong active0)\r
563                 {\r
564                         return JjMoveNfa_1(JjStopStringLiteralDfa_1(pos, (ulong) active0), pos + 1);\r
565                 }\r
566                 private int JjStartNfaWithStates_1(int pos, int kind, int state)\r
567                 {\r
568                         jjmatchedKind = kind;\r
569                         jjmatchedPos = pos;\r
570                         try\r
571                         {\r
572                                 curChar = input_stream.ReadChar();\r
573                         }\r
574                         catch (System.IO.IOException)\r
575                         {\r
576                                 return pos + 1;\r
577                         }\r
578                         return JjMoveNfa_1(state, pos + 1);\r
579                 }\r
580                 private int JjMoveStringLiteralDfa0_1()\r
581                 {\r
582                         switch (curChar)\r
583                         {\r
584                                 \r
585                                 case (char) (84): \r
586                                         return JjMoveStringLiteralDfa1_1((ulong) 0x10000000L);\r
587                                 \r
588                                 case (char) (125): \r
589                                         return JjStopAtPos(0, 29);\r
590                                 \r
591                                 default: \r
592                                         return JjMoveNfa_1(0, 0);\r
593                                 \r
594                         }\r
595                 }\r
596                 private int JjMoveStringLiteralDfa1_1(ulong active0)\r
597                 {\r
598                         try\r
599                         {\r
600                                 curChar = input_stream.ReadChar();\r
601                         }\r
602                         catch (System.IO.IOException)\r
603                         {\r
604                                 JjStopStringLiteralDfa_1(0, (ulong) active0);\r
605                                 return 1;\r
606                         }\r
607                         switch (curChar)\r
608                         {\r
609                                 \r
610                                 case (char) (79): \r
611                                         if ((active0 & 0x10000000L) != 0L)\r
612                                                 return JjStartNfaWithStates_1(1, 28, 4);\r
613                                         break;\r
614                                 \r
615                                 default: \r
616                                         break;\r
617                                 \r
618                         }\r
619                         return JjStartNfa_1(0, (ulong) active0);\r
620                 }\r
621                 private int JjMoveNfa_1(int startState, int curPos)\r
622                 {\r
623                         int[] nextStates;\r
624                         int startsAt = 0;\r
625                         jjnewStateCnt = 5;\r
626                         int i = 1;\r
627                         jjstateSet[0] = startState;\r
628                         int j, kind = 0x7fffffff;\r
629                         for (; ; )\r
630                         {\r
631                                 if (++jjround == 0x7fffffff)\r
632                                         ReInitRounds();\r
633                                 if (curChar < 64)\r
634                                 {\r
635                                         ulong l = ((ulong) 1L) << curChar;\r\r
636 MatchLoop1: \r
637                                         do \r
638                                         {\r
639                                                 switch (jjstateSet[--i])\r
640                                                 {\r
641                                                         \r
642                                                         case 0: \r
643                                                                 if ((0xfffffffeffffffffL & l) != (ulong) 0L)\r
644                                                                 {\r
645                                                                         if (kind > 31)\r
646                                                                                 kind = 31;\r
647                                                                         JjCheckNAdd(4);\r
648                                                                 }\r
649                                                                 if ((0x100002600L & l) != (ulong) 0L)\r
650                                                                 {\r
651                                                                         if (kind > 6)\r
652                                                                                 kind = 6;\r
653                                                                 }\r
654                                                                 else if (curChar == 34)\r
655                                                                         JjCheckNAdd(2);\r
656                                                                 break;\r
657                                                         \r
658                                                         case 1: \r
659                                                                 if (curChar == 34)\r
660                                                                         JjCheckNAdd(2);\r
661                                                                 break;\r
662                                                         \r
663                                                         case 2: \r
664                                                                 if ((0xfffffffbffffffffL & l) != (ulong) 0L)\r
665                                                                         JjCheckNAddTwoStates(2, 3);\r
666                                                                 break;\r
667                                                         \r
668                                                         case 3: \r
669                                                                 if (curChar == 34 && kind > 30)\r
670                                                                         kind = 30;\r
671                                                                 break;\r
672                                                         \r
673                                                         case 4: \r
674                                                                 if ((0xfffffffeffffffffL & l) == (ulong) 0L)\r
675                                                                         break;\r
676                                                                 if (kind > 31)\r
677                                                                         kind = 31;\r
678                                                                 JjCheckNAdd(4);\r
679                                                                 break;\r
680                                                         \r
681                                                         default:  break;\r
682                                                         \r
683                                                 }\r
684                                         }\r
685                                         while (i != startsAt);\r
686                                 }\r
687                                 else if (curChar < 128)\r
688                                 {\r
689                                         ulong l = ((ulong) 1L) << (curChar & 63);\r\r
690 MatchLoop1: \r
691                                         do \r
692                                         {\r
693                                                 switch (jjstateSet[--i])\r
694                                                 {\r
695                                                         \r
696                                                         case 0: \r
697                                                         case 4: \r
698                                                                 if ((0xdfffffffffffffffL & l) == (ulong) 0L)\r
699                                                                         break;\r
700                                                                 if (kind > 31)\r
701                                                                         kind = 31;\r
702                                                                 JjCheckNAdd(4);\r
703                                                                 break;\r
704                                                         \r
705                                                         case 2: \r
706                                                                 JjAddStates(17, 18);\r
707                                                                 break;\r
708                                                         \r
709                                                         default:  break;\r
710                                                         \r
711                                                 }\r
712                                         }\r
713                                         while (i != startsAt);\r
714                                 }\r
715                                 else\r
716                                 {\r
717                                         int hiByte = (int) (curChar >> 8);\r
718                                         int i1 = hiByte >> 6;\r
719                                         ulong l1 = ((ulong) 1L) << (hiByte & 63);\r
720                                         int i2 = (curChar & 0xff) >> 6;\r
721                                         ulong l2 = ((ulong) 1L) << (curChar & 63);\r\r
722 MatchLoop1: \r
723                                         do \r
724                                         {\r
725                                                 switch (jjstateSet[--i])\r
726                                                 {\r
727                                                         \r
728                                                         case 0: \r
729                                                         case 4: \r
730                                                                 if (!jjCanMove_0(hiByte, i1, i2, (ulong) l1, (ulong) l2))\r
731                                                                         break;\r
732                                                                 if (kind > 31)\r
733                                                                         kind = 31;\r
734                                                                 JjCheckNAdd(4);\r
735                                                                 break;\r
736                                                         \r
737                                                         case 2: \r
738                                                                 if (jjCanMove_0(hiByte, i1, i2, (ulong) l1, (ulong) l2))\r
739                                                                         JjAddStates(17, 18);\r
740                                                                 break;\r
741                                                         \r
742                                                         default:  break;\r
743                                                         \r
744                                                 }\r
745                                         }\r
746                                         while (i != startsAt);\r
747                                 }\r
748                                 if (kind != 0x7fffffff)\r
749                                 {\r
750                                         jjmatchedKind = kind;\r
751                                         jjmatchedPos = curPos;\r
752                                         kind = 0x7fffffff;\r
753                                 }\r
754                                 ++curPos;\r
755                                 if ((i = jjnewStateCnt) == (startsAt = 5 - (jjnewStateCnt = startsAt)))\r
756                                         return curPos;\r
757                                 try\r
758                                 {\r
759                                         curChar = input_stream.ReadChar();\r
760                                 }\r
761                                 catch (System.IO.IOException)\r
762                                 {\r
763                                         return curPos;\r
764                                 }\r
765                         }\r
766                 }\r
767                 private int JjMoveStringLiteralDfa0_0()\r
768                 {\r
769                         return JjMoveNfa_0(0, 0);\r
770                 }\r
771                 private int JjMoveNfa_0(int startState, int curPos)\r
772                 {\r
773                         int[] nextStates;\r
774                         int startsAt = 0;\r
775                         jjnewStateCnt = 3;\r
776                         int i = 1;\r
777                         jjstateSet[0] = startState;\r
778                         int j, kind = 0x7fffffff;\r
779                         for (; ; )\r
780                         {\r
781                                 if (++jjround == 0x7fffffff)\r
782                                         ReInitRounds();\r
783                                 if (curChar < 64)\r
784                                 {\r
785                                         ulong l = ((ulong) 1L) << curChar;\r\r
786 MatchLoop1: \r
787                                         do \r
788                                         {\r
789                                                 switch (jjstateSet[--i])\r
790                                                 {\r
791                                                         \r
792                                                         case 0: \r
793                                 if ((0x3ff000000000000L & l) == (ulong) 0L)\r
794                                                                         break;\r
795                                 if (kind > 23)\r
796                                     kind = 23;\r
797                                 JjAddStates(19, 20);\r
798                                 break;\r
799                                                         \r
800                                                         case 1: \r
801                                                                 if (curChar == 46)\r
802                                                                         JjCheckNAdd(2);\r
803                                                                 break;\r
804                                                         \r
805                                                         case 2: \r
806                                                                 if ((0x3ff000000000000L & l) == (ulong) 0L)\r
807                                                                         break;\r
808                                 if (kind > 23)\r
809                                     kind = 23;\r
810                                 JjCheckNAdd(2);\r
811                                 break;\r
812                                                         \r
813                                                         default:  break;\r
814                                                         \r
815                                                 }\r
816                                         }\r
817                                         while (i != startsAt);\r
818                                 }\r
819                                 else if (curChar < 128)\r
820                                 {\r
821                                         ulong l = ((ulong) 1L) << (curChar & 63);\r\r
822 MatchLoop1: \r
823                                         do \r
824                                         {\r
825                                                 switch (jjstateSet[--i])\r
826                                                 {\r
827                                                         \r
828                                                         default:  break;\r
829                                                         \r
830                                                 }\r
831                                         }\r
832                                         while (i != startsAt);\r
833                                 }\r
834                                 else\r
835                                 {\r
836                                         int hiByte = (int) (curChar >> 8);\r
837                                         int i1 = hiByte >> 6;\r
838                                         ulong l1 = ((ulong) 1L) << (hiByte & 63);\r
839                                         int i2 = (curChar & 0xff) >> 6;\r
840                                         ulong l2 = ((ulong) 1L) << (curChar & 63);\r\r
841 MatchLoop1: \r
842                                         do \r
843                                         {\r
844                                                 switch (jjstateSet[--i])\r
845                                                 {\r
846                                                         \r
847                                                         default:  break;\r
848                                                         \r
849                                                 }\r
850                                         }\r
851                                         while (i != startsAt);\r
852                                 }\r
853                                 if (kind != 0x7fffffff)\r
854                                 {\r
855                                         jjmatchedKind = kind;\r
856                                         jjmatchedPos = curPos;\r
857                                         kind = 0x7fffffff;\r
858                                 }\r
859                                 ++curPos;\r
860                                 if ((i = jjnewStateCnt) == (startsAt = 3 - (jjnewStateCnt = startsAt)))\r
861                                         return curPos;\r
862                                 try\r
863                                 {\r
864                                         curChar = input_stream.ReadChar();\r
865                                 }\r
866                                 catch (System.IO.IOException e)\r
867                                 {\r
868                                         return curPos;\r
869                                 }\r
870                         }\r
871                 }\r
872                 private int JjStopStringLiteralDfa_2(int pos, ulong active0)\r
873                 {\r
874                         switch (pos)\r
875                         {\r
876                                 \r
877                                 case 0: \r
878                                         if ((active0 & 0x1000000L) != (ulong) 0L)\r
879                                         {\r
880                                                 jjmatchedKind = 27;\r
881                                                 return 4;\r
882                                         }\r
883                                         return - 1;\r
884                                 \r
885                                 default: \r
886                                         return - 1;\r
887                                 \r
888                         }\r
889                 }\r
890                 private int JjStartNfa_2(int pos, ulong active0)\r
891                 {\r
892                         return JjMoveNfa_2(JjStopStringLiteralDfa_2(pos, (ulong) active0), pos + 1);\r
893                 }\r
894                 private int JjStartNfaWithStates_2(int pos, int kind, int state)\r
895                 {\r
896                         jjmatchedKind = kind;\r
897                         jjmatchedPos = pos;\r
898                         try\r
899                         {\r
900                                 curChar = input_stream.ReadChar();\r
901                         }\r
902                         catch (System.IO.IOException e)\r
903                         {\r
904                                 return pos + 1;\r
905                         }\r
906                         return JjMoveNfa_2(state, pos + 1);\r
907                 }\r
908                 private int JjMoveStringLiteralDfa0_2()\r
909                 {\r
910                         switch (curChar)\r
911                         {\r
912                                 \r
913                                 case (char) (84): \r
914                                         return JjMoveStringLiteralDfa1_2((ulong) 0x1000000L);\r
915                                 \r
916                                 case (char) (93): \r
917                                         return JjStopAtPos(0, 25);\r
918                                 \r
919                                 default: \r
920                                         return JjMoveNfa_2(0, 0);\r
921                                 \r
922                         }\r
923                 }\r
924                 private int JjMoveStringLiteralDfa1_2(ulong active0)\r
925                 {\r
926                         try\r
927                         {\r
928                                 curChar = input_stream.ReadChar();\r
929                         }\r
930                         catch (System.IO.IOException e)\r
931                         {\r
932                                 JjStopStringLiteralDfa_2(0, (ulong) active0);\r
933                                 return 1;\r
934                         }\r
935                         switch (curChar)\r
936                         {\r
937                                 \r
938                                 case (char) (79): \r
939                                         if ((active0 & 0x1000000L) != (ulong) 0L)\r
940                                                 return JjStartNfaWithStates_2(1, 24, 4);\r
941                                         break;\r
942                                 \r
943                                 default: \r
944                                         break;\r
945                                 \r
946                         }\r
947                         return JjStartNfa_2(0, (ulong) active0);\r
948                 }\r
949                 private int JjMoveNfa_2(int startState, int curPos)\r
950                 {\r
951                         int[] nextStates;\r
952                         int startsAt = 0;\r
953                         jjnewStateCnt = 5;\r
954                         int i = 1;\r
955                         jjstateSet[0] = startState;\r
956                         int j, kind = 0x7fffffff;\r
957                         for (; ; )\r
958                         {\r
959                                 if (++jjround == 0x7fffffff)\r
960                                         ReInitRounds();\r
961                                 if (curChar < 64)\r
962                                 {\r
963                                         ulong l = ((ulong) 1L) << curChar;\r\r
964 MatchLoop1: \r
965                                         do \r
966                                         {\r
967                                                 switch (jjstateSet[--i])\r
968                                                 {\r
969                                                         \r
970                                                         case 0: \r
971                                                                 if ((0xfffffffeffffffffL & l) != (ulong) 0L)\r
972                                                                 {\r
973                                                                         if (kind > 27)\r
974                                                                                 kind = 27;\r
975                                                                         JjCheckNAdd(4);\r
976                                                                 }\r
977                                                                 if ((0x100002600L & l) != (ulong) 0L)\r
978                                                                 {\r
979                                                                         if (kind > 6)\r
980                                                                                 kind = 6;\r
981                                                                 }\r
982                                                                 else if (curChar == 34)\r
983                                                                         JjCheckNAdd(2);\r
984                                                                 break;\r
985                                                         \r
986                                                         case 1: \r
987                                                                 if (curChar == 34)\r
988                                                                         JjCheckNAdd(2);\r
989                                                                 break;\r
990                                                         \r
991                                                         case 2: \r
992                                                                 if ((0xfffffffbffffffffL & l) != (ulong) 0L)\r
993                                                                         JjCheckNAddTwoStates(2, 3);\r
994                                                                 break;\r
995                                                         \r
996                                                         case 3: \r
997                                                                 if (curChar == 34 && kind > 26)\r
998                                                                         kind = 26;\r
999                                                                 break;\r
1000                                                         \r
1001                                                         case 4: \r
1002                                                                 if ((0xfffffffeffffffffL & l) == (ulong) 0L)\r
1003                                                                         break;\r
1004                                                                 if (kind > 27)\r
1005                                                                         kind = 27;\r
1006                                                                 JjCheckNAdd(4);\r
1007                                                                 break;\r
1008                                                         \r
1009                                                         default:  break;\r
1010                                                         \r
1011                                                 }\r
1012                                         }\r
1013                                         while (i != startsAt);\r
1014                                 }\r
1015                                 else if (curChar < 128)\r
1016                                 {\r
1017                                         ulong l = ((ulong) 1L) << (curChar & 63);\r\r
1018 MatchLoop1: \r
1019                                         do \r
1020                                         {\r
1021                                                 switch (jjstateSet[--i])\r
1022                                                 {\r
1023                                                         \r
1024                                                         case 0: \r
1025                                                         case 4: \r
1026                                                                 if ((0xffffffffdfffffffL & l) == (ulong) 0L)\r
1027                                                                         break;\r
1028                                                                 if (kind > 27)\r
1029                                                                         kind = 27;\r
1030                                                                 JjCheckNAdd(4);\r
1031                                                                 break;\r
1032                                                         \r
1033                                                         case 2: \r
1034                                                                 JjAddStates(17, 16);\r
1035                                                                 break;\r
1036                                                         \r
1037                                                         default:  break;\r
1038                                                         \r
1039                                                 }\r
1040                                         }\r
1041                                         while (i != startsAt);\r
1042                                 }\r
1043                                 else\r
1044                                 {\r
1045                                         int hiByte = (int) (curChar >> 8);\r
1046                                         int i1 = hiByte >> 6;\r
1047                                         ulong l1 = ((ulong) 1L) << (hiByte & 63);\r
1048                                         int i2 = (curChar & 0xff) >> 6;\r
1049                                         ulong l2 = ((ulong) 1L) << (curChar & 63);\r\r
1050 MatchLoop1: \r
1051                                         do \r
1052                                         {\r
1053                                                 switch (jjstateSet[--i])\r
1054                                                 {\r
1055                                                         \r
1056                                                         case 0: \r
1057                                                         case 4: \r
1058                                                                 if (!jjCanMove_0(hiByte, i1, i2, (ulong) l1, (ulong) l2))\r
1059                                                                         break;\r
1060                                                                 if (kind > 27)\r
1061                                                                         kind = 27;\r
1062                                                                 JjCheckNAdd(4);\r
1063                                                                 break;\r
1064                                                         \r
1065                                                         case 2: \r
1066                                                                 if (jjCanMove_0(hiByte, i1, i2, (ulong) l1, (ulong) l2))\r
1067                                                                         JjAddStates(17, 18);\r
1068                                                                 break;\r
1069                                                         \r
1070                                                         default:  break;\r
1071                                                         \r
1072                                                 }\r
1073                                         }\r
1074                                         while (i != startsAt);\r
1075                                 }\r
1076                                 if (kind != 0x7fffffff)\r
1077                                 {\r
1078                                         jjmatchedKind = kind;\r
1079                                         jjmatchedPos = curPos;\r
1080                                         kind = 0x7fffffff;\r
1081                                 }\r
1082                                 ++curPos;\r
1083                                 if ((i = jjnewStateCnt) == (startsAt = 5 - (jjnewStateCnt = startsAt)))\r
1084                                         return curPos;\r
1085                                 try\r
1086                                 {\r
1087                                         curChar = input_stream.ReadChar();\r
1088                                 }\r
1089                                 catch (System.IO.IOException e)\r
1090                                 {\r
1091                                         return curPos;\r
1092                                 }\r
1093                         }\r
1094                 }\r
1095         internal static readonly int[] jjnextStates = new int[]{22, 25, 26, 29, 30, 27, 23, 18, 19, 25, 26, 27, 24, 28, 31, 15, 16, 2, 3, 0, 1};\r
1096                 private static bool jjCanMove_0(int hiByte, int i1, int i2, ulong l1, ulong l2)\r
1097                 {\r
1098                         switch (hiByte)\r
1099                         {\r
1100                                 \r
1101                                 case 0: \r
1102                                         return ((jjbitVec2[i2] & l2) != (ulong) 0L);\r
1103                                 \r
1104                                 default: \r
1105                                         if ((jjbitVec0[i1] & l1) != (ulong) 0L)\r
1106                                                 return true;\r
1107                                         return false;\r
1108                                 \r
1109                         }\r
1110                 }\r
1111                 public static readonly System.String[] jjstrLiteralImages = new System.String[]{"", null, null, null, null, null, null, null, null, null, "\x002B", "\x002D", "\x0028", "\x0029", "\x003A", "\x005E", null, null, null, null, null, "\x005B", "\x007B", null, "\x0054\x004F", "\x005D", null, null, "\x0054\x004F", "\x007D", null, null};\r
1112                 public static readonly System.String[] lexStateNames = new System.String[]{"Boost", "RangeEx", "RangeIn", "DEFAULT"};\r
1113                 public static readonly int[] jjnewLexState = new int[]{- 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, 0, - 1, - 1, - 1, - 1, - 1, 2, 1, 3, - 1, 3, - 1, - 1, - 1, 3, - 1, - 1};\r
1114                 internal static readonly ulong[] jjtoToken = new ulong[]{0xffffff81L};\r
1115                 internal static readonly long[] jjtoSkip = new long[]{0x40L};\r
1116                 protected internal CharStream input_stream;\r
1117                 private uint[] jjrounds = new uint[33];\r
1118                 private int[] jjstateSet = new int[66];\r
1119                 protected internal char curChar;\r
1120                 public QueryParserTokenManager(CharStream stream)\r
1121                 {\r
1122                         InitBlock();\r
1123                         input_stream = stream;\r
1124                 }\r
1125                 public QueryParserTokenManager(CharStream stream, int lexState) : this(stream)\r
1126                 {\r
1127                         SwitchTo(lexState);\r
1128                 }\r
1129                 public virtual void  ReInit(CharStream stream)\r
1130                 {\r
1131                         jjmatchedPos = jjnewStateCnt = 0;\r
1132                         curLexState = defaultLexState;\r
1133                         input_stream = stream;\r
1134                         ReInitRounds();\r
1135                 }\r
1136                 private void  ReInitRounds()\r
1137                 {\r
1138                         int i;\r
1139                         jjround = 0x80000001;\r
1140                         for (i = 33; i-- > 0; )\r
1141                                 jjrounds[i] = 0x80000000;\r
1142                 }\r
1143                 public virtual void  ReInit(CharStream stream, int lexState)\r
1144                 {\r
1145                         ReInit(stream);\r
1146                         SwitchTo(lexState);\r
1147                 }\r
1148                 public virtual void  SwitchTo(int lexState)\r
1149                 {\r
1150                         if (lexState >= 4 || lexState < 0)\r
1151                                 throw new TokenMgrError("Error: Ignoring invalid lexical state : " + lexState + ". State unchanged.", TokenMgrError.INVALID_LEXICAL_STATE);\r
1152                         else\r
1153                                 curLexState = lexState;\r
1154                 }\r
1155                 \r
1156                 protected internal virtual Token JjFillToken()\r
1157                 {\r
1158                         Token t = Token.NewToken(jjmatchedKind);\r
1159                         t.kind = jjmatchedKind;\r
1160                         System.String im = jjstrLiteralImages[jjmatchedKind];\r
1161                         t.image = (im == null) ? input_stream.GetImage() : im;\r
1162                         t.beginLine = input_stream.GetBeginLine();\r
1163                         t.beginColumn = input_stream.GetBeginColumn();\r
1164                         t.endLine = input_stream.GetEndLine();\r
1165                         t.endColumn = input_stream.GetEndColumn();\r
1166                         return t;\r
1167                 }\r
1168                 \r
1169                 internal int curLexState = 3;\r
1170                 internal int defaultLexState = 3;\r
1171                 internal int jjnewStateCnt;\r
1172                 internal uint jjround;\r
1173                 internal int jjmatchedPos;\r
1174                 internal int jjmatchedKind;\r
1175                 \r
1176                 public virtual Token GetNextToken()\r
1177                 {\r
1178                         int kind;\r
1179                         Token specialToken = null;\r
1180                         Token matchedToken;\r
1181                         int curPos = 0;\r
1182                         \r
1183                         for (; ; )\r
1184                         {\r
1185                                 try\r
1186                                 {\r
1187                                         curChar = input_stream.BeginToken();\r
1188                                 }\r
1189                                 catch (System.IO.IOException e)\r
1190                                 {\r
1191                                         jjmatchedKind = 0;\r
1192                                         matchedToken = JjFillToken();\r
1193                                         return matchedToken;\r
1194                                 }\r
1195                                 \r
1196                                 switch (curLexState)\r
1197                                 {\r
1198                                         \r
1199                                         case 0: \r
1200                                                 jjmatchedKind = 0x7fffffff;\r
1201                                                 jjmatchedPos = 0;\r
1202                                                 curPos = JjMoveStringLiteralDfa0_0();\r
1203                                                 break;\r
1204                                         \r
1205                                         case 1: \r
1206                                                 jjmatchedKind = 0x7fffffff;\r
1207                                                 jjmatchedPos = 0;\r
1208                                                 curPos = JjMoveStringLiteralDfa0_1();\r
1209                                                 break;\r
1210                                         \r
1211                                         case 2: \r
1212                                                 jjmatchedKind = 0x7fffffff;\r
1213                                                 jjmatchedPos = 0;\r
1214                                                 curPos = JjMoveStringLiteralDfa0_2();\r
1215                                                 break;\r
1216                                         \r
1217                                         case 3: \r
1218                                                 jjmatchedKind = 0x7fffffff;\r
1219                                                 jjmatchedPos = 0;\r
1220                                                 curPos = JjMoveStringLiteralDfa0_3();\r
1221                                                 break;\r
1222                                         }\r
1223                                 if (jjmatchedKind != 0x7fffffff)\r
1224                                 {\r
1225                                         if (jjmatchedPos + 1 < curPos)\r
1226                                                 input_stream.Backup(curPos - jjmatchedPos - 1);\r
1227                                         if ((jjtoToken[jjmatchedKind >> 6] & ((ulong) (1L << (jjmatchedKind & 63)))) != (ulong) 0L)\r
1228                                         {\r
1229                                                 matchedToken = JjFillToken();\r
1230                                                 if (jjnewLexState[jjmatchedKind] != - 1)\r
1231                                                         curLexState = jjnewLexState[jjmatchedKind];\r
1232                                                 return matchedToken;\r
1233                                         }\r
1234                                         else\r
1235                                         {\r
1236                                                 if (jjnewLexState[jjmatchedKind] != - 1)\r
1237                                                         curLexState = jjnewLexState[jjmatchedKind];\r
1238                                                 goto EOFLoop;\r
1239                                         }\r
1240                                 }\r
1241                                 int error_line = input_stream.GetEndLine();\r
1242                                 int error_column = input_stream.GetEndColumn();\r
1243                                 System.String error_after = null;\r
1244                                 bool EOFSeen = false;\r
1245                                 try\r
1246                                 {\r
1247                                         input_stream.ReadChar(); input_stream.Backup(1);\r
1248                                 }\r
1249                                 catch (System.IO.IOException e1)\r
1250                                 {\r
1251                                         EOFSeen = true;\r
1252                                         error_after = curPos <= 1?"":input_stream.GetImage();\r
1253                                         if (curChar == '\n' || curChar == '\r')\r
1254                                         {\r
1255                                                 error_line++;\r
1256                                                 error_column = 0;\r
1257                                         }\r
1258                                         else\r
1259                                                 error_column++;\r
1260                                 }\r
1261                                 if (!EOFSeen)\r
1262                                 {\r
1263                                         input_stream.Backup(1);\r
1264                                         error_after = curPos <= 1?"":input_stream.GetImage();\r
1265                                 }\r
1266                                 throw new TokenMgrError(EOFSeen, curLexState, error_line, error_column, error_after, curChar, TokenMgrError.LEXICAL_ERROR);\r
1267 \r
1268 EOFLoop: ;\r
1269                         }\r
1270                 }\r
1271         }\r
1272 }