ANTLRTokdefLexer.java
上传用户:afrynkmhm
上传日期:2007-01-06
资源大小:1262k
文件大小:18k
源码类别:

编译器/解释器

开发平台:

Others

  1. package antlr;
  2. /*
  3.  * ANTLR-generated file resulting from grammar tokdef.g
  4.  * 
  5.  * Terence Parr, MageLang Institute
  6.  * ANTLR Version 2.7.0a2; 1989-1999
  7.  */
  8.  import java.io.InputStream;
  9. import java.io.Reader;
  10. import antlr.TokenStreamException;
  11. import antlr.TokenStreamIOException;
  12. import antlr.CharStreamException;
  13. import antlr.CharStreamIOException;
  14. import java.util.Hashtable;
  15. import antlr.CharScanner;
  16. import antlr.InputBuffer;
  17. import antlr.ByteBuffer;
  18. import antlr.CharBuffer;
  19. import antlr.Token;
  20. import antlr.CommonToken;
  21. import antlr.RecognitionException;
  22. import antlr.NoViableAltForCharException;
  23. import antlr.MismatchedCharException;
  24. import antlr.TokenStream;
  25. import antlr.ANTLRHashString;
  26. import antlr.LexerSharedInputState;
  27. import antlr.collections.impl.BitSet;
  28. public class ANTLRTokdefLexer extends antlr.CharScanner implements ANTLRTokdefParserTokenTypes, TokenStream
  29.  {
  30. private static final long _tokenSet_0_data_[] = { -9224L, 9223372036854775807L, 0L, 0L };
  31. public static final BitSet _tokenSet_0 = new BitSet(_tokenSet_0_data_);
  32. private static final long _tokenSet_1_data_[] = { -140737488355336L, 9223372036854775807L, 0L, 0L };
  33. public static final BitSet _tokenSet_1 = new BitSet(_tokenSet_1_data_);
  34. public ANTLRTokdefLexer(InputBuffer ib) {
  35. this(new LexerSharedInputState(ib));
  36. }
  37. public ANTLRTokdefLexer(LexerSharedInputState state) {
  38. super(state);
  39. literals = new Hashtable();
  40. caseSensitiveLiterals = true;
  41. setCaseSensitive(true);
  42. }
  43. public ANTLRTokdefLexer(InputStream in) {
  44. this(new ByteBuffer(in));
  45. }
  46. public ANTLRTokdefLexer(Reader in) {
  47. this(new CharBuffer(in));
  48. }
  49. public final void mASSIGN(boolean _createToken) throws RecognitionException, CharStreamException {
  50. int _ttype; Token _token=null; int _begin=text.length();
  51. _ttype = ASSIGN;
  52. int _saveIndex;
  53. match('=');
  54. if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
  55. _token = makeToken(_ttype);
  56. _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
  57. }
  58. _returnToken = _token;
  59. }
  60. protected final void mDIGIT(boolean _createToken) throws RecognitionException, CharStreamException {
  61. int _ttype; Token _token=null; int _begin=text.length();
  62. _ttype = DIGIT;
  63. int _saveIndex;
  64. matchRange('0','9');
  65. if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
  66. _token = makeToken(_ttype);
  67. _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
  68. }
  69. _returnToken = _token;
  70. }
  71. protected final void mESC(boolean _createToken) throws RecognitionException, CharStreamException {
  72. int _ttype; Token _token=null; int _begin=text.length();
  73. _ttype = ESC;
  74. int _saveIndex;
  75. match('\');
  76. {
  77. switch ( LA(1)) {
  78. case 'n':
  79. {
  80. match('n');
  81. break;
  82. }
  83. case 'r':
  84. {
  85. match('r');
  86. break;
  87. }
  88. case 't':
  89. {
  90. match('t');
  91. break;
  92. }
  93. case 'b':
  94. {
  95. match('b');
  96. break;
  97. }
  98. case 'f':
  99. {
  100. match('f');
  101. break;
  102. }
  103. case '"':
  104. {
  105. match('"');
  106. break;
  107. }
  108. case ''':
  109. {
  110. match(''');
  111. break;
  112. }
  113. case '\':
  114. {
  115. match('\');
  116. break;
  117. }
  118. case '0':  case '1':  case '2':  case '3':
  119. {
  120. {
  121. matchRange('0','3');
  122. }
  123. {
  124. if (((LA(1) >= '0' && LA(1) <= '9')) && ((LA(2) >= '3' && LA(2) <= '~'))) {
  125. mDIGIT(false);
  126. {
  127. if (((LA(1) >= '0' && LA(1) <= '9')) && ((LA(2) >= '3' && LA(2) <= '~'))) {
  128. mDIGIT(false);
  129. }
  130. else if (((LA(1) >= '3' && LA(1) <= '~')) && (true)) {
  131. }
  132. else {
  133. throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine());
  134. }
  135. }
  136. }
  137. else if (((LA(1) >= '3' && LA(1) <= '~')) && (true)) {
  138. }
  139. else {
  140. throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine());
  141. }
  142. }
  143. break;
  144. }
  145. case '4':  case '5':  case '6':  case '7':
  146. {
  147. {
  148. matchRange('4','7');
  149. }
  150. {
  151. if (((LA(1) >= '0' && LA(1) <= '9')) && ((LA(2) >= '3' && LA(2) <= '~'))) {
  152. mDIGIT(false);
  153. }
  154. else if (((LA(1) >= '3' && LA(1) <= '~')) && (true)) {
  155. }
  156. else {
  157. throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine());
  158. }
  159. }
  160. break;
  161. }
  162. case 'u':
  163. {
  164. match('u');
  165. mXDIGIT(false);
  166. mXDIGIT(false);
  167. mXDIGIT(false);
  168. mXDIGIT(false);
  169. break;
  170. }
  171. default:
  172. {
  173. throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine());
  174. }
  175. }
  176. }
  177. if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
  178. _token = makeToken(_ttype);
  179. _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
  180. }
  181. _returnToken = _token;
  182. }
  183. public final void mID(boolean _createToken) throws RecognitionException, CharStreamException {
  184. int _ttype; Token _token=null; int _begin=text.length();
  185. _ttype = ID;
  186. int _saveIndex;
  187. {
  188. switch ( LA(1)) {
  189. case 'a':  case 'b':  case 'c':  case 'd':
  190. case 'e':  case 'f':  case 'g':  case 'h':
  191. case 'i':  case 'j':  case 'k':  case 'l':
  192. case 'm':  case 'n':  case 'o':  case 'p':
  193. case 'q':  case 'r':  case 's':  case 't':
  194. case 'u':  case 'v':  case 'w':  case 'x':
  195. case 'y':  case 'z':
  196. {
  197. matchRange('a','z');
  198. break;
  199. }
  200. case 'A':  case 'B':  case 'C':  case 'D':
  201. case 'E':  case 'F':  case 'G':  case 'H':
  202. case 'I':  case 'J':  case 'K':  case 'L':
  203. case 'M':  case 'N':  case 'O':  case 'P':
  204. case 'Q':  case 'R':  case 'S':  case 'T':
  205. case 'U':  case 'V':  case 'W':  case 'X':
  206. case 'Y':  case 'Z':
  207. {
  208. matchRange('A','Z');
  209. break;
  210. }
  211. default:
  212. {
  213. throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine());
  214. }
  215. }
  216. }
  217. {
  218. _loop37:
  219. do {
  220. switch ( LA(1)) {
  221. case 'a':  case 'b':  case 'c':  case 'd':
  222. case 'e':  case 'f':  case 'g':  case 'h':
  223. case 'i':  case 'j':  case 'k':  case 'l':
  224. case 'm':  case 'n':  case 'o':  case 'p':
  225. case 'q':  case 'r':  case 's':  case 't':
  226. case 'u':  case 'v':  case 'w':  case 'x':
  227. case 'y':  case 'z':
  228. {
  229. matchRange('a','z');
  230. break;
  231. }
  232. case 'A':  case 'B':  case 'C':  case 'D':
  233. case 'E':  case 'F':  case 'G':  case 'H':
  234. case 'I':  case 'J':  case 'K':  case 'L':
  235. case 'M':  case 'N':  case 'O':  case 'P':
  236. case 'Q':  case 'R':  case 'S':  case 'T':
  237. case 'U':  case 'V':  case 'W':  case 'X':
  238. case 'Y':  case 'Z':
  239. {
  240. matchRange('A','Z');
  241. break;
  242. }
  243. case '_':
  244. {
  245. match('_');
  246. break;
  247. }
  248. case '0':  case '1':  case '2':  case '3':
  249. case '4':  case '5':  case '6':  case '7':
  250. case '8':  case '9':
  251. {
  252. matchRange('0','9');
  253. break;
  254. }
  255. default:
  256. {
  257. break _loop37;
  258. }
  259. }
  260. } while (true);
  261. }
  262. if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
  263. _token = makeToken(_ttype);
  264. _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
  265. }
  266. _returnToken = _token;
  267. }
  268. public final void mINT(boolean _createToken) throws RecognitionException, CharStreamException {
  269. int _ttype; Token _token=null; int _begin=text.length();
  270. _ttype = INT;
  271. int _saveIndex;
  272. {
  273. int _cnt40=0;
  274. _loop40:
  275. do {
  276. if (((LA(1) >= '0' && LA(1) <= '9'))) {
  277. mDIGIT(false);
  278. }
  279. else {
  280. if ( _cnt40>=1 ) { break _loop40; } else {throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine());}
  281. }
  282. _cnt40++;
  283. } while (true);
  284. }
  285. if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
  286. _token = makeToken(_ttype);
  287. _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
  288. }
  289. _returnToken = _token;
  290. }
  291. public final void mLPAREN(boolean _createToken) throws RecognitionException, CharStreamException {
  292. int _ttype; Token _token=null; int _begin=text.length();
  293. _ttype = LPAREN;
  294. int _saveIndex;
  295. match('(');
  296. if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
  297. _token = makeToken(_ttype);
  298. _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
  299. }
  300. _returnToken = _token;
  301. }
  302. public final void mML_COMMENT(boolean _createToken) throws RecognitionException, CharStreamException {
  303. int _ttype; Token _token=null; int _begin=text.length();
  304. _ttype = ML_COMMENT;
  305. int _saveIndex;
  306. match("/*");
  307. {
  308. _loop17:
  309. do {
  310. switch ( LA(1)) {
  311. case 'n':
  312. {
  313. match('n');
  314. newline();
  315. break;
  316. }
  317. case '3':  case '4':  case '5':  case '6':
  318. case '7':  case '10':  case 't':  case '13':
  319. case '14':  case 'r':  case '16':  case '17':
  320. case '20':  case '21':  case '22':  case '23':
  321. case '24':  case '25':  case '26':  case '27':
  322. case '30':  case '31':  case '32':  case '33':
  323. case '34':  case '35':  case '36':  case '37':
  324. case ' ':  case '!':  case '"':  case '#':
  325. case '$':  case '%':  case '&':  case ''':
  326. case '(':  case ')':  case '+':  case ',':
  327. case '-':  case '.':  case '/':  case '0':
  328. case '1':  case '2':  case '3':  case '4':
  329. case '5':  case '6':  case '7':  case '8':
  330. case '9':  case ':':  case ';':  case '<':
  331. case '=':  case '>':  case '?':  case '@':
  332. case 'A':  case 'B':  case 'C':  case 'D':
  333. case 'E':  case 'F':  case 'G':  case 'H':
  334. case 'I':  case 'J':  case 'K':  case 'L':
  335. case 'M':  case 'N':  case 'O':  case 'P':
  336. case 'Q':  case 'R':  case 'S':  case 'T':
  337. case 'U':  case 'V':  case 'W':  case 'X':
  338. case 'Y':  case 'Z':  case '[':  case '\':
  339. case ']':  case '^':  case '_':  case '`':
  340. case 'a':  case 'b':  case 'c':  case 'd':
  341. case 'e':  case 'f':  case 'g':  case 'h':
  342. case 'i':  case 'j':  case 'k':  case 'l':
  343. case 'm':  case 'n':  case 'o':  case 'p':
  344. case 'q':  case 'r':  case 's':  case 't':
  345. case 'u':  case 'v':  case 'w':  case 'x':
  346. case 'y':  case 'z':  case '{':  case '|':
  347. case '}':  case '~':
  348. {
  349. matchNot('*');
  350. break;
  351. }
  352. default:
  353. if ((LA(1)=='*') && (_tokenSet_1.member(LA(2)))) {
  354. match('*');
  355. matchNot('/');
  356. }
  357. else {
  358. break _loop17;
  359. }
  360. }
  361. } while (true);
  362. }
  363. match("*/");
  364. _ttype = Token.SKIP;
  365. if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
  366. _token = makeToken(_ttype);
  367. _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
  368. }
  369. _returnToken = _token;
  370. }
  371. public final void mRPAREN(boolean _createToken) throws RecognitionException, CharStreamException {
  372. int _ttype; Token _token=null; int _begin=text.length();
  373. _ttype = RPAREN;
  374. int _saveIndex;
  375. match(')');
  376. if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
  377. _token = makeToken(_ttype);
  378. _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
  379. }
  380. _returnToken = _token;
  381. }
  382. public final void mSL_COMMENT(boolean _createToken) throws RecognitionException, CharStreamException {
  383. int _ttype; Token _token=null; int _begin=text.length();
  384. _ttype = SL_COMMENT;
  385. int _saveIndex;
  386. match("//");
  387. {
  388. _loop12:
  389. do {
  390. if ((_tokenSet_0.member(LA(1)))) {
  391. {
  392. match(_tokenSet_0);
  393. }
  394. }
  395. else {
  396. break _loop12;
  397. }
  398. } while (true);
  399. }
  400. {
  401. switch ( LA(1)) {
  402. case 'n':
  403. {
  404. match('n');
  405. break;
  406. }
  407. case 'r':
  408. {
  409. match('r');
  410. {
  411. if ((LA(1)=='n')) {
  412. match('n');
  413. }
  414. else {
  415. }
  416. }
  417. break;
  418. }
  419. default:
  420. {
  421. throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine());
  422. }
  423. }
  424. }
  425. _ttype = Token.SKIP; newline();
  426. if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
  427. _token = makeToken(_ttype);
  428. _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
  429. }
  430. _returnToken = _token;
  431. }
  432. public final void mSTRING(boolean _createToken) throws RecognitionException, CharStreamException {
  433. int _ttype; Token _token=null; int _begin=text.length();
  434. _ttype = STRING;
  435. int _saveIndex;
  436. match('"');
  437. {
  438. _loop23:
  439. do {
  440. switch ( LA(1)) {
  441. case '\':
  442. {
  443. mESC(false);
  444. break;
  445. }
  446. case '3':  case '4':  case '5':  case '6':
  447. case '7':  case '10':  case 't':  case 'n':
  448. case '13':  case '14':  case 'r':  case '16':
  449. case '17':  case '20':  case '21':  case '22':
  450. case '23':  case '24':  case '25':  case '26':
  451. case '27':  case '30':  case '31':  case '32':
  452. case '33':  case '34':  case '35':  case '36':
  453. case '37':  case ' ':  case '!':  case '#':
  454. case '$':  case '%':  case '&':  case ''':
  455. case '(':  case ')':  case '*':  case '+':
  456. case ',':  case '-':  case '.':  case '/':
  457. case '0':  case '1':  case '2':  case '3':
  458. case '4':  case '5':  case '6':  case '7':
  459. case '8':  case '9':  case ':':  case ';':
  460. case '<':  case '=':  case '>':  case '?':
  461. case '@':  case 'A':  case 'B':  case 'C':
  462. case 'D':  case 'E':  case 'F':  case 'G':
  463. case 'H':  case 'I':  case 'J':  case 'K':
  464. case 'L':  case 'M':  case 'N':  case 'O':
  465. case 'P':  case 'Q':  case 'R':  case 'S':
  466. case 'T':  case 'U':  case 'V':  case 'W':
  467. case 'X':  case 'Y':  case 'Z':  case '[':
  468. case ']':  case '^':  case '_':  case '`':
  469. case 'a':  case 'b':  case 'c':  case 'd':
  470. case 'e':  case 'f':  case 'g':  case 'h':
  471. case 'i':  case 'j':  case 'k':  case 'l':
  472. case 'm':  case 'n':  case 'o':  case 'p':
  473. case 'q':  case 'r':  case 's':  case 't':
  474. case 'u':  case 'v':  case 'w':  case 'x':
  475. case 'y':  case 'z':  case '{':  case '|':
  476. case '}':  case '~':
  477. {
  478. matchNot('"');
  479. break;
  480. }
  481. default:
  482. {
  483. break _loop23;
  484. }
  485. }
  486. } while (true);
  487. }
  488. match('"');
  489. if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
  490. _token = makeToken(_ttype);
  491. _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
  492. }
  493. _returnToken = _token;
  494. }
  495. protected final void mVOCAB(boolean _createToken) throws RecognitionException, CharStreamException {
  496. int _ttype; Token _token=null; int _begin=text.length();
  497. _ttype = VOCAB;
  498. int _saveIndex;
  499. matchRange('3','176');
  500. if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
  501. _token = makeToken(_ttype);
  502. _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
  503. }
  504. _returnToken = _token;
  505. }
  506. public final void mWS(boolean _createToken) throws RecognitionException, CharStreamException {
  507. int _ttype; Token _token=null; int _begin=text.length();
  508. _ttype = WS;
  509. int _saveIndex;
  510. {
  511. switch ( LA(1)) {
  512. case ' ':
  513. {
  514. match(' ');
  515. break;
  516. }
  517. case 't':
  518. {
  519. match('t');
  520. break;
  521. }
  522. case 'r':
  523. {
  524. match('r');
  525. {
  526. if ((LA(1)=='n')) {
  527. match('n');
  528. }
  529. else {
  530. }
  531. }
  532. newline();
  533. break;
  534. }
  535. case 'n':
  536. {
  537. match('n');
  538. newline();
  539. break;
  540. }
  541. default:
  542. {
  543. throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine());
  544. }
  545. }
  546. }
  547. _ttype = Token.SKIP;
  548. if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
  549. _token = makeToken(_ttype);
  550. _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
  551. }
  552. _returnToken = _token;
  553. }
  554. protected final void mXDIGIT(boolean _createToken) throws RecognitionException, CharStreamException {
  555. int _ttype; Token _token=null; int _begin=text.length();
  556. _ttype = XDIGIT;
  557. int _saveIndex;
  558. switch ( LA(1)) {
  559. case '0':  case '1':  case '2':  case '3':
  560. case '4':  case '5':  case '6':  case '7':
  561. case '8':  case '9':
  562. {
  563. matchRange('0','9');
  564. break;
  565. }
  566. case 'a':  case 'b':  case 'c':  case 'd':
  567. case 'e':  case 'f':
  568. {
  569. matchRange('a','f');
  570. break;
  571. }
  572. case 'A':  case 'B':  case 'C':  case 'D':
  573. case 'E':  case 'F':
  574. {
  575. matchRange('A','F');
  576. break;
  577. }
  578. default:
  579. {
  580. throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine());
  581. }
  582. }
  583. if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
  584. _token = makeToken(_ttype);
  585. _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
  586. }
  587. _returnToken = _token;
  588. }
  589. public Token nextToken() throws TokenStreamException {
  590. Token _rettoken=null;
  591. tryAgain:
  592. for (;;) {
  593. Token _token = null;
  594. int _ttype = Token.INVALID_TYPE;
  595. resetText();
  596. try {
  597. try {   // for error handling
  598. switch ( LA(1)) {
  599. case 't':  case 'n':  case 'r':  case ' ':
  600. {
  601. mWS(true);
  602. _rettoken=_returnToken;
  603. break;
  604. }
  605. case '(':
  606. {
  607. mLPAREN(true);
  608. _rettoken=_returnToken;
  609. break;
  610. }
  611. case ')':
  612. {
  613. mRPAREN(true);
  614. _rettoken=_returnToken;
  615. break;
  616. }
  617. case '=':
  618. {
  619. mASSIGN(true);
  620. _rettoken=_returnToken;
  621. break;
  622. }
  623. case '"':
  624. {
  625. mSTRING(true);
  626. _rettoken=_returnToken;
  627. break;
  628. }
  629. case 'A':  case 'B':  case 'C':  case 'D':
  630. case 'E':  case 'F':  case 'G':  case 'H':
  631. case 'I':  case 'J':  case 'K':  case 'L':
  632. case 'M':  case 'N':  case 'O':  case 'P':
  633. case 'Q':  case 'R':  case 'S':  case 'T':
  634. case 'U':  case 'V':  case 'W':  case 'X':
  635. case 'Y':  case 'Z':  case 'a':  case 'b':
  636. case 'c':  case 'd':  case 'e':  case 'f':
  637. case 'g':  case 'h':  case 'i':  case 'j':
  638. case 'k':  case 'l':  case 'm':  case 'n':
  639. case 'o':  case 'p':  case 'q':  case 'r':
  640. case 's':  case 't':  case 'u':  case 'v':
  641. case 'w':  case 'x':  case 'y':  case 'z':
  642. {
  643. mID(true);
  644. _rettoken=_returnToken;
  645. break;
  646. }
  647. case '0':  case '1':  case '2':  case '3':
  648. case '4':  case '5':  case '6':  case '7':
  649. case '8':  case '9':
  650. {
  651. mINT(true);
  652. _rettoken=_returnToken;
  653. break;
  654. }
  655. default:
  656. if ((LA(1)=='/') && (LA(2)=='/')) {
  657. mSL_COMMENT(true);
  658. _rettoken=_returnToken;
  659. }
  660. else if ((LA(1)=='/') && (LA(2)=='*')) {
  661. mML_COMMENT(true);
  662. _rettoken=_returnToken;
  663. }
  664. else {
  665. if (LA(1)==EOF_CHAR) {_returnToken = makeToken(Token.EOF_TYPE);}
  666. else {throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine());}
  667. }
  668. }
  669. if ( _returnToken==null ) continue tryAgain; // found SKIP token
  670. _ttype = _returnToken.getType();
  671. _returnToken.setType(_ttype);
  672. return _returnToken;
  673. }
  674. catch (RecognitionException e) {
  675. reportError(e);
  676. consume();
  677. }
  678. }
  679. catch (CharStreamException cse) {
  680. if ( cse instanceof CharStreamIOException ) {
  681. throw new TokenStreamIOException(((CharStreamIOException)cse).io);
  682. }
  683. else {
  684. throw new TokenStreamException(cse.getMessage());
  685. }
  686. }
  687. }
  688. }
  689. }