QueryParserTokenManager.cs
上传用户:zhangkuixh
上传日期:2013-09-30
资源大小:5473k
文件大小:29k
源码类别:

搜索引擎

开发平台:

C#

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