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

编译器/解释器

开发平台:

Others

  1. // $ANTLR 2.7.0a11: action.g -> ActionLexer.java$
  2. package antlr.actions.sather;
  3. import java.io.InputStream;
  4. import antlr.TokenStreamException;
  5. import antlr.TokenStreamIOException;
  6. import antlr.TokenStreamRecognitionException;
  7. import antlr.CharStreamException;
  8. import antlr.CharStreamIOException;
  9. import antlr.ANTLRException;
  10. import java.io.Reader;
  11. import java.util.Hashtable;
  12. import antlr.CharScanner;
  13. import antlr.InputBuffer;
  14. import antlr.ByteBuffer;
  15. import antlr.CharBuffer;
  16. import antlr.Token;
  17. import antlr.CommonToken;
  18. import antlr.RecognitionException;
  19. import antlr.NoViableAltForCharException;
  20. import antlr.MismatchedCharException;
  21. import antlr.TokenStream;
  22. import antlr.ANTLRHashString;
  23. import antlr.LexerSharedInputState;
  24. import antlr.collections.impl.BitSet;
  25. import java.io.StringReader;
  26. import antlr.collections.impl.Vector;
  27. import antlr.*;
  28. /** Perform the following translations:
  29.     AST related translations
  30. @@ -> currentRule_AST
  31. @(x,y,z) -> codeGenerator.getASTCreateString(vector-of(x,y,z))
  32. @[x] -> codeGenerator.getASTCreateString(x)
  33. @x -> codeGenerator.mapTreeId(x)
  34. Inside context of @(...), you can ref (x,y,z), [x], and x as shortcuts.
  35.     Text related translations
  36. %append(x) -> text.append(x)
  37. %setText(x) -> text.setLength(sa_begin); text.append(x)
  38. %getText -> new String(text.getBuffer(),sa_begin,text.length()-sa_begin)
  39. %setToken(x) -> sa_token = x
  40. %setType(x) -> sa_ttype = x
  41.  */
  42. public class ActionLexer extends antlr.CharScanner implements ActionLexerTokenTypes, TokenStream
  43.  {
  44. protected RuleBlock currentRule;
  45. protected CodeGenerator generator;
  46. protected int lineOffset = 0;
  47. private Tool tool; // The ANTLR tool
  48. ActionTransInfo transInfo;
  49.   public ActionLexer( String s,
  50. RuleBlock currentRule,
  51. CodeGenerator generator,
  52. ActionTransInfo transInfo) {
  53. this(new StringReader(s));
  54. this.currentRule = currentRule;
  55. this.generator = generator;
  56. this.transInfo = transInfo;
  57. }
  58. public void setLineOffset(int lineOffset) {
  59. // this.lineOffset = lineOffset;
  60. setLine(lineOffset);
  61. }
  62. public void setTool(Tool tool) {
  63. this.tool = tool;
  64. }
  65. // Override of error-reporting for syntax
  66. public void reportError(RecognitionException e) {
  67. System.err.print("Syntax error in action: ");
  68. super.reportError(e);
  69. }
  70. public ActionLexer(InputStream in) {
  71. this(new ByteBuffer(in));
  72. }
  73. public ActionLexer(Reader in) {
  74. this(new CharBuffer(in));
  75. }
  76. public ActionLexer(InputBuffer ib) {
  77. this(new LexerSharedInputState(ib));
  78. }
  79. public ActionLexer(LexerSharedInputState state) {
  80. super(state);
  81. literals = new Hashtable();
  82. caseSensitiveLiterals = true;
  83. setCaseSensitive(true);
  84. }
  85. public Token nextToken() throws TokenStreamException {
  86. Token theRetToken=null;
  87. tryAgain:
  88. for (;;) {
  89. Token _token = null;
  90. int _ttype = Token.INVALID_TYPE;
  91. resetText();
  92. try {   // for char stream error handling
  93. try {   // for lexical error handling
  94. if (((LA(1) >= '3' && LA(1) <= '~'))) {
  95. mACTION(true);
  96. theRetToken=_returnToken;
  97. }
  98. else {
  99. if (LA(1)==EOF_CHAR) {uponEOF(); _returnToken = makeToken(Token.EOF_TYPE);}
  100. else {throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine());}
  101. }
  102. if ( _returnToken==null ) continue tryAgain; // found SKIP token
  103. _ttype = _returnToken.getType();
  104. _returnToken.setType(_ttype);
  105. return _returnToken;
  106. }
  107. catch (RecognitionException e) {
  108. reportError(e);
  109. consume();
  110. }
  111. }
  112. catch (CharStreamException cse) {
  113. if ( cse instanceof CharStreamIOException ) {
  114. throw new TokenStreamIOException(((CharStreamIOException)cse).io);
  115. }
  116. else {
  117. throw new TokenStreamException(cse.getMessage());
  118. }
  119. }
  120. }
  121. }
  122. public final void mACTION(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
  123. int _ttype; Token _token=null; int _begin=text.length();
  124. _ttype = ACTION;
  125. int _saveIndex;
  126. {
  127. int _cnt3=0;
  128. _loop3:
  129. do {
  130. switch ( LA(1)) {
  131. case '3':  case '4':  case '5':  case '6':
  132. case '7':  case '10':  case 't':  case 'n':
  133. case '13':  case '14':  case 'r':  case '16':
  134. case '17':  case '20':  case '21':  case '22':
  135. case '23':  case '24':  case '25':  case '26':
  136. case '27':  case '30':  case '31':  case '32':
  137. case '33':  case '34':  case '35':  case '36':
  138. case '37':  case ' ':  case '!':  case '"':
  139. case '#':  case '$':  case '&':  case ''':
  140. case '(':  case ')':  case '*':  case '+':
  141. case ',':  case '-':  case '.':  case '/':
  142. case '0':  case '1':  case '2':  case '3':
  143. case '4':  case '5':  case '6':  case '7':
  144. case '8':  case '9':  case ':':  case ';':
  145. case '<':  case '=':  case '>':  case '?':
  146. case 'A':  case 'B':  case 'C':  case 'D':
  147. case 'E':  case 'F':  case 'G':  case 'H':
  148. case 'I':  case 'J':  case 'K':  case 'L':
  149. case 'M':  case 'N':  case 'O':  case 'P':
  150. case 'Q':  case 'R':  case 'S':  case 'T':
  151. case 'U':  case 'V':  case 'W':  case 'X':
  152. case 'Y':  case 'Z':  case '[':  case '\':
  153. case ']':  case '^':  case '_':  case '`':
  154. case 'a':  case 'b':  case 'c':  case 'd':
  155. case 'e':  case 'f':  case 'g':  case 'h':
  156. case 'i':  case 'j':  case 'k':  case 'l':
  157. case 'm':  case 'n':  case 'o':  case 'p':
  158. case 'q':  case 'r':  case 's':  case 't':
  159. case 'u':  case 'v':  case 'w':  case 'x':
  160. case 'y':  case 'z':  case '{':  case '|':
  161. case '}':  case '~':
  162. {
  163. mSTUFF(false);
  164. break;
  165. }
  166. case '@':
  167. {
  168. mAST_ITEM(false);
  169. break;
  170. }
  171. case '%':
  172. {
  173. mTEXT_ITEM(false);
  174. break;
  175. }
  176. default:
  177. {
  178. if ( _cnt3>=1 ) { break _loop3; } else {throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine());}
  179. }
  180. }
  181. _cnt3++;
  182. } while (true);
  183. }
  184. if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
  185. _token = makeToken(_ttype);
  186. _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
  187. }
  188. _returnToken = _token;
  189. }
  190. protected final void mSTUFF(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
  191. int _ttype; Token _token=null; int _begin=text.length();
  192. _ttype = STUFF;
  193. int _saveIndex;
  194. switch ( LA(1)) {
  195. case '(':
  196. {
  197. match('(');
  198. {
  199. if ((LA(1)=='*') && ((LA(2) >= '3' && LA(2) <= '~'))) {
  200. match('*');
  201. {
  202. _loop7:
  203. do {
  204. // nongreedy exit test
  205. if ((LA(1)=='*') && (LA(2)==')')) break _loop7;
  206. if ((LA(1)=='r') && (LA(2)=='n')) {
  207. match('r');
  208. match('n');
  209. newline();
  210. }
  211. else if ((LA(1)=='r') && ((LA(2) >= '3' && LA(2) <= '~'))) {
  212. match('r');
  213. newline();
  214. }
  215. else if ((LA(1)=='n') && ((LA(2) >= '3' && LA(2) <= '~'))) {
  216. match('n');
  217. newline();
  218. }
  219. else if (((LA(1) >= '3' && LA(1) <= '~')) && ((LA(2) >= '3' && LA(2) <= '~'))) {
  220. matchNot(EOF_CHAR);
  221. }
  222. else {
  223. break _loop7;
  224. }
  225. } while (true);
  226. }
  227. match("*)");
  228. }
  229. else {
  230. }
  231. }
  232. break;
  233. }
  234. case '-':
  235. {
  236. match('-');
  237. {
  238. if ((LA(1)=='-') && ((LA(2) >= '3' && LA(2) <= '~'))) {
  239. match('-');
  240. {
  241. _loop10:
  242. do {
  243. // nongreedy exit test
  244. if ((LA(1)=='n'||LA(1)=='r') && (true)) break _loop10;
  245. if (((LA(1) >= '3' && LA(1) <= '~')) && ((LA(2) >= '3' && LA(2) <= '~'))) {
  246. matchNot(EOF_CHAR);
  247. }
  248. else {
  249. break _loop10;
  250. }
  251. } while (true);
  252. }
  253. {
  254. if ((LA(1)=='r') && (LA(2)=='n')) {
  255. match("rn");
  256. }
  257. else if ((LA(1)=='n')) {
  258. match('n');
  259. }
  260. else if ((LA(1)=='r') && (true)) {
  261. match('r');
  262. }
  263. else {
  264. throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine());
  265. }
  266. }
  267. newline();
  268. }
  269. else {
  270. }
  271. }
  272. break;
  273. }
  274. case '"':
  275. {
  276. mSTRING(false);
  277. break;
  278. }
  279. case ''':
  280. {
  281. mCHAR(false);
  282. break;
  283. }
  284. case 'n':
  285. {
  286. match('n');
  287. newline();
  288. break;
  289. }
  290. case '3':  case '4':  case '5':  case '6':
  291. case '7':  case '10':  case 't':  case '13':
  292. case '14':  case '16':  case '17':  case '20':
  293. case '21':  case '22':  case '23':  case '24':
  294. case '25':  case '26':  case '27':  case '30':
  295. case '31':  case '32':  case '33':  case '34':
  296. case '35':  case '36':  case '37':  case ' ':
  297. case '!':  case '#':  case '$':  case '&':
  298. case ')':  case '*':  case '+':  case ',':
  299. case '.':  case '/':  case '0':  case '1':
  300. case '2':  case '3':  case '4':  case '5':
  301. case '6':  case '7':  case '8':  case '9':
  302. case ':':  case ';':  case '<':  case '=':
  303. case '>':  case '?':  case 'A':  case 'B':
  304. case 'C':  case 'D':  case 'E':  case 'F':
  305. case 'G':  case 'H':  case 'I':  case 'J':
  306. case 'K':  case 'L':  case 'M':  case 'N':
  307. case 'O':  case 'P':  case 'Q':  case 'R':
  308. case 'S':  case 'T':  case 'U':  case 'V':
  309. case 'W':  case 'X':  case 'Y':  case 'Z':
  310. case '[':  case '\':  case ']':  case '^':
  311. case '_':  case '`':  case 'a':  case 'b':
  312. case 'c':  case 'd':  case 'e':  case 'f':
  313. case 'g':  case 'h':  case 'i':  case 'j':
  314. case 'k':  case 'l':  case 'm':  case 'n':
  315. case 'o':  case 'p':  case 'q':  case 'r':
  316. case 's':  case 't':  case 'u':  case 'v':
  317. case 'w':  case 'x':  case 'y':  case 'z':
  318. case '{':  case '|':  case '}':  case '~':
  319. {
  320. {
  321. match(_tokenSet_0);
  322. }
  323. break;
  324. }
  325. default:
  326. if ((LA(1)=='r') && (LA(2)=='n')) {
  327. match("rn");
  328. newline();
  329. }
  330. else if ((LA(1)=='r') && (true)) {
  331. match('r');
  332. newline();
  333. }
  334. else {
  335. throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine());
  336. }
  337. }
  338. if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
  339. _token = makeToken(_ttype);
  340. _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
  341. }
  342. _returnToken = _token;
  343. }
  344. protected final void mAST_ITEM(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
  345. int _ttype; Token _token=null; int _begin=text.length();
  346. _ttype = AST_ITEM;
  347. int _saveIndex;
  348. Token t=null;
  349. Token id=null;
  350. Token ctor=null;
  351. if ((LA(1)=='@') && (LA(2)=='(')) {
  352. _saveIndex=text.length();
  353. match('@');
  354. text.setLength(_saveIndex);
  355. mTREE(true);
  356. t=_returnToken;
  357. }
  358. else if ((LA(1)=='@') && (_tokenSet_1.member(LA(2)))) {
  359. _saveIndex=text.length();
  360. match('@');
  361. text.setLength(_saveIndex);
  362. mID(true);
  363. id=_returnToken;
  364. String idt = id.getText();
  365. text.setLength(_begin); text.append(generator.mapTreeId(idt,transInfo));
  366. {
  367. if ((_tokenSet_2.member(LA(1))) && (_tokenSet_3.member(LA(2)))) {
  368. {
  369. switch ( LA(1)) {
  370. case 't':  case 'n':  case 'r':  case ' ':
  371. {
  372. mWS(false);
  373. break;
  374. }
  375. case ':':
  376. {
  377. break;
  378. }
  379. default:
  380. {
  381. throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine());
  382. }
  383. }
  384. }
  385. mVAR_ASSIGN(false);
  386. }
  387. else {
  388. }
  389. }
  390. }
  391. else if ((LA(1)=='@') && (LA(2)=='[')) {
  392. _saveIndex=text.length();
  393. match('@');
  394. text.setLength(_saveIndex);
  395. mAST_CONSTRUCTOR(true);
  396. ctor=_returnToken;
  397. }
  398. else if ((LA(1)=='@') && (LA(2)=='@')) {
  399. match("@@");
  400. String r=currentRule.getRuleName()+"_AST"; text.setLength(_begin); text.append(r);
  401. if ( transInfo!=null ) {
  402. transInfo.refRuleRoot=r; // we ref root of tree
  403. }
  404. {
  405. if ((_tokenSet_2.member(LA(1))) && (_tokenSet_3.member(LA(2)))) {
  406. {
  407. switch ( LA(1)) {
  408. case 't':  case 'n':  case 'r':  case ' ':
  409. {
  410. mWS(false);
  411. break;
  412. }
  413. case ':':
  414. {
  415. break;
  416. }
  417. default:
  418. {
  419. throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine());
  420. }
  421. }
  422. }
  423. mVAR_ASSIGN(false);
  424. }
  425. else {
  426. }
  427. }
  428. }
  429. else {
  430. throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine());
  431. }
  432. if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
  433. _token = makeToken(_ttype);
  434. _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
  435. }
  436. _returnToken = _token;
  437. }
  438. protected final void mTEXT_ITEM(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
  439. int _ttype; Token _token=null; int _begin=text.length();
  440. _ttype = TEXT_ITEM;
  441. int _saveIndex;
  442. Token a1=null;
  443. Token a2=null;
  444. Token a3=null;
  445. Token a4=null;
  446. if ((LA(1)=='%') && (LA(2)=='a')) {
  447. match("%append(");
  448. mTEXT_ARG(true);
  449. a1=_returnToken;
  450. match(')');
  451. String t = "text := text.append("+a1.getText()+")"; text.setLength(_begin); text.append(t);
  452. }
  453. else if ((LA(1)=='%') && (LA(2)=='s')) {
  454. match("%set");
  455. {
  456. if ((LA(1)=='T') && (LA(2)=='e')) {
  457. match("Text(");
  458. mTEXT_ARG(true);
  459. a2=_returnToken;
  460. match(')');
  461. String t;
  462. t = "text := text.substring( 0, sa_begin ) + " + a2.getText();
  463. text.setLength(_begin); text.append(t);
  464. }
  465. else if ((LA(1)=='T') && (LA(2)=='o')) {
  466. match("Token(");
  467. mTEXT_ARG(true);
  468. a3=_returnToken;
  469. match(')');
  470. String t="_token = "+a3.getText();
  471. text.setLength(_begin); text.append(t);
  472. }
  473. else if ((LA(1)=='T') && (LA(2)=='y')) {
  474. match("Type(");
  475. mTEXT_ARG(true);
  476. a4=_returnToken;
  477. match(')');
  478. String t="sa_ttype := "+a4.getText();
  479. text.setLength(_begin); text.append(t);
  480. }
  481. else {
  482. throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine());
  483. }
  484. }
  485. }
  486. else if ((LA(1)=='%') && (LA(2)=='g')) {
  487. match("%getText");
  488. text.setLength(_begin); text.append("text.substring( sa_begin, text.length - sa_begin )");
  489. }
  490. else {
  491. throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine());
  492. }
  493. if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
  494. _token = makeToken(_ttype);
  495. _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
  496. }
  497. _returnToken = _token;
  498. }
  499. protected final void mSTRING(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
  500. int _ttype; Token _token=null; int _begin=text.length();
  501. _ttype = STRING;
  502. int _saveIndex;
  503. match('"');
  504. {
  505. _loop85:
  506. do {
  507. switch ( LA(1)) {
  508. case '\':
  509. {
  510. mESC(false);
  511. break;
  512. }
  513. case '3':  case '4':  case '5':  case '6':
  514. case '7':  case '10':  case 't':  case 'n':
  515. case '13':  case '14':  case 'r':  case '16':
  516. case '17':  case '20':  case '21':  case '22':
  517. case '23':  case '24':  case '25':  case '26':
  518. case '27':  case '30':  case '31':  case '32':
  519. case '33':  case '34':  case '35':  case '36':
  520. case '37':  case ' ':  case '!':  case '#':
  521. case '$':  case '%':  case '&':  case ''':
  522. case '(':  case ')':  case '*':  case '+':
  523. case ',':  case '-':  case '.':  case '/':
  524. case '0':  case '1':  case '2':  case '3':
  525. case '4':  case '5':  case '6':  case '7':
  526. case '8':  case '9':  case ':':  case ';':
  527. case '<':  case '=':  case '>':  case '?':
  528. case '@':  case 'A':  case 'B':  case 'C':
  529. case 'D':  case 'E':  case 'F':  case 'G':
  530. case 'H':  case 'I':  case 'J':  case 'K':
  531. case 'L':  case 'M':  case 'N':  case 'O':
  532. case 'P':  case 'Q':  case 'R':  case 'S':
  533. case 'T':  case 'U':  case 'V':  case 'W':
  534. case 'X':  case 'Y':  case 'Z':  case '[':
  535. case ']':  case '^':  case '_':  case '`':
  536. case 'a':  case 'b':  case 'c':  case 'd':
  537. case 'e':  case 'f':  case 'g':  case 'h':
  538. case 'i':  case 'j':  case 'k':  case 'l':
  539. case 'm':  case 'n':  case 'o':  case 'p':
  540. case 'q':  case 'r':  case 's':  case 't':
  541. case 'u':  case 'v':  case 'w':  case 'x':
  542. case 'y':  case 'z':  case '{':  case '|':
  543. case '}':  case '~':
  544. {
  545. matchNot('"');
  546. break;
  547. }
  548. default:
  549. {
  550. break _loop85;
  551. }
  552. }
  553. } while (true);
  554. }
  555. match('"');
  556. if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
  557. _token = makeToken(_ttype);
  558. _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
  559. }
  560. _returnToken = _token;
  561. }
  562. protected final void mCHAR(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
  563. int _ttype; Token _token=null; int _begin=text.length();
  564. _ttype = CHAR;
  565. int _saveIndex;
  566. match(''');
  567. {
  568. switch ( LA(1)) {
  569. case '\':
  570. {
  571. mESC(false);
  572. break;
  573. }
  574. case '3':  case '4':  case '5':  case '6':
  575. case '7':  case '10':  case 't':  case 'n':
  576. case '13':  case '14':  case 'r':  case '16':
  577. case '17':  case '20':  case '21':  case '22':
  578. case '23':  case '24':  case '25':  case '26':
  579. case '27':  case '30':  case '31':  case '32':
  580. case '33':  case '34':  case '35':  case '36':
  581. case '37':  case ' ':  case '!':  case '"':
  582. case '#':  case '$':  case '%':  case '&':
  583. case '(':  case ')':  case '*':  case '+':
  584. case ',':  case '-':  case '.':  case '/':
  585. case '0':  case '1':  case '2':  case '3':
  586. case '4':  case '5':  case '6':  case '7':
  587. case '8':  case '9':  case ':':  case ';':
  588. case '<':  case '=':  case '>':  case '?':
  589. case '@':  case 'A':  case 'B':  case 'C':
  590. case 'D':  case 'E':  case 'F':  case 'G':
  591. case 'H':  case 'I':  case 'J':  case 'K':
  592. case 'L':  case 'M':  case 'N':  case 'O':
  593. case 'P':  case 'Q':  case 'R':  case 'S':
  594. case 'T':  case 'U':  case 'V':  case 'W':
  595. case 'X':  case 'Y':  case 'Z':  case '[':
  596. case ']':  case '^':  case '_':  case '`':
  597. case 'a':  case 'b':  case 'c':  case 'd':
  598. case 'e':  case 'f':  case 'g':  case 'h':
  599. case 'i':  case 'j':  case 'k':  case 'l':
  600. case 'm':  case 'n':  case 'o':  case 'p':
  601. case 'q':  case 'r':  case 's':  case 't':
  602. case 'u':  case 'v':  case 'w':  case 'x':
  603. case 'y':  case 'z':  case '{':  case '|':
  604. case '}':  case '~':
  605. {
  606. matchNot(''');
  607. break;
  608. }
  609. default:
  610. {
  611. throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine());
  612. }
  613. }
  614. }
  615. match(''');
  616. if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
  617. _token = makeToken(_ttype);
  618. _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
  619. }
  620. _returnToken = _token;
  621. }
  622. protected final void mTREE(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
  623. int _ttype; Token _token=null; int _begin=text.length();
  624. _ttype = TREE;
  625. int _saveIndex;
  626. Token t=null;
  627. Token t2=null;
  628. StringBuffer buf = new StringBuffer();
  629. int n=0;
  630. Vector terms = new Vector(10);
  631. _saveIndex=text.length();
  632. match('(');
  633. text.setLength(_saveIndex);
  634. {
  635. switch ( LA(1)) {
  636. case 't':  case 'n':  case 'r':  case ' ':
  637. {
  638. _saveIndex=text.length();
  639. mWS(false);
  640. text.setLength(_saveIndex);
  641. break;
  642. }
  643. case '"':  case '(':  case '@':  case 'A':
  644. case 'B':  case 'C':  case 'D':  case 'E':
  645. case 'F':  case 'G':  case 'H':  case 'I':
  646. case 'J':  case 'K':  case 'L':  case 'M':
  647. case 'N':  case 'O':  case 'P':  case 'Q':
  648. case 'R':  case 'S':  case 'T':  case 'U':
  649. case 'V':  case 'W':  case 'X':  case 'Y':
  650. case 'Z':  case '[':  case '_':  case 'a':
  651. case 'b':  case 'c':  case 'd':  case 'e':
  652. case 'f':  case 'g':  case 'h':  case 'i':
  653. case 'j':  case 'k':  case 'l':  case 'm':
  654. case 'n':  case 'o':  case 'p':  case 'q':
  655. case 'r':  case 's':  case 't':  case 'u':
  656. case 'v':  case 'w':  case 'x':  case 'y':
  657. case 'z':
  658. {
  659. break;
  660. }
  661. default:
  662. {
  663. throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine());
  664. }
  665. }
  666. }
  667. _saveIndex=text.length();
  668. mTREE_ELEMENT(true);
  669. text.setLength(_saveIndex);
  670. t=_returnToken;
  671. terms.appendElement(t.getText());
  672. {
  673. switch ( LA(1)) {
  674. case 't':  case 'n':  case 'r':  case ' ':
  675. {
  676. _saveIndex=text.length();
  677. mWS(false);
  678. text.setLength(_saveIndex);
  679. break;
  680. }
  681. case ')':  case ',':
  682. {
  683. break;
  684. }
  685. default:
  686. {
  687. throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine());
  688. }
  689. }
  690. }
  691. {
  692. _loop26:
  693. do {
  694. if ((LA(1)==',')) {
  695. _saveIndex=text.length();
  696. match(',');
  697. text.setLength(_saveIndex);
  698. {
  699. switch ( LA(1)) {
  700. case 't':  case 'n':  case 'r':  case ' ':
  701. {
  702. _saveIndex=text.length();
  703. mWS(false);
  704. text.setLength(_saveIndex);
  705. break;
  706. }
  707. case '"':  case '(':  case '@':  case 'A':
  708. case 'B':  case 'C':  case 'D':  case 'E':
  709. case 'F':  case 'G':  case 'H':  case 'I':
  710. case 'J':  case 'K':  case 'L':  case 'M':
  711. case 'N':  case 'O':  case 'P':  case 'Q':
  712. case 'R':  case 'S':  case 'T':  case 'U':
  713. case 'V':  case 'W':  case 'X':  case 'Y':
  714. case 'Z':  case '[':  case '_':  case 'a':
  715. case 'b':  case 'c':  case 'd':  case 'e':
  716. case 'f':  case 'g':  case 'h':  case 'i':
  717. case 'j':  case 'k':  case 'l':  case 'm':
  718. case 'n':  case 'o':  case 'p':  case 'q':
  719. case 'r':  case 's':  case 't':  case 'u':
  720. case 'v':  case 'w':  case 'x':  case 'y':
  721. case 'z':
  722. {
  723. break;
  724. }
  725. default:
  726. {
  727. throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine());
  728. }
  729. }
  730. }
  731. _saveIndex=text.length();
  732. mTREE_ELEMENT(true);
  733. text.setLength(_saveIndex);
  734. t2=_returnToken;
  735. terms.appendElement(t2.getText());
  736. {
  737. switch ( LA(1)) {
  738. case 't':  case 'n':  case 'r':  case ' ':
  739. {
  740. _saveIndex=text.length();
  741. mWS(false);
  742. text.setLength(_saveIndex);
  743. break;
  744. }
  745. case ')':  case ',':
  746. {
  747. break;
  748. }
  749. default:
  750. {
  751. throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine());
  752. }
  753. }
  754. }
  755. }
  756. else {
  757. break _loop26;
  758. }
  759. } while (true);
  760. }
  761. text.setLength(_begin); text.append(generator.getASTCreateString(terms));
  762. _saveIndex=text.length();
  763. match(')');
  764. text.setLength(_saveIndex);
  765. if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
  766. _token = makeToken(_ttype);
  767. _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
  768. }
  769. _returnToken = _token;
  770. }
  771. protected final void mID(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
  772. int _ttype; Token _token=null; int _begin=text.length();
  773. _ttype = ID;
  774. int _saveIndex;
  775. {
  776. switch ( LA(1)) {
  777. case 'a':  case 'b':  case 'c':  case 'd':
  778. case 'e':  case 'f':  case 'g':  case 'h':
  779. case 'i':  case 'j':  case 'k':  case 'l':
  780. case 'm':  case 'n':  case 'o':  case 'p':
  781. case 'q':  case 'r':  case 's':  case 't':
  782. case 'u':  case 'v':  case 'w':  case 'x':
  783. case 'y':  case 'z':
  784. {
  785. matchRange('a','z');
  786. break;
  787. }
  788. case 'A':  case 'B':  case 'C':  case 'D':
  789. case 'E':  case 'F':  case 'G':  case 'H':
  790. case 'I':  case 'J':  case 'K':  case 'L':
  791. case 'M':  case 'N':  case 'O':  case 'P':
  792. case 'Q':  case 'R':  case 'S':  case 'T':
  793. case 'U':  case 'V':  case 'W':  case 'X':
  794. case 'Y':  case 'Z':
  795. {
  796. matchRange('A','Z');
  797. break;
  798. }
  799. case '_':
  800. {
  801. match('_');
  802. break;
  803. }
  804. default:
  805. {
  806. throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine());
  807. }
  808. }
  809. }
  810. {
  811. _loop79:
  812. do {
  813. if ((_tokenSet_4.member(LA(1))) && (true)) {
  814. {
  815. switch ( LA(1)) {
  816. case 'a':  case 'b':  case 'c':  case 'd':
  817. case 'e':  case 'f':  case 'g':  case 'h':
  818. case 'i':  case 'j':  case 'k':  case 'l':
  819. case 'm':  case 'n':  case 'o':  case 'p':
  820. case 'q':  case 'r':  case 's':  case 't':
  821. case 'u':  case 'v':  case 'w':  case 'x':
  822. case 'y':  case 'z':
  823. {
  824. matchRange('a','z');
  825. break;
  826. }
  827. case 'A':  case 'B':  case 'C':  case 'D':
  828. case 'E':  case 'F':  case 'G':  case 'H':
  829. case 'I':  case 'J':  case 'K':  case 'L':
  830. case 'M':  case 'N':  case 'O':  case 'P':
  831. case 'Q':  case 'R':  case 'S':  case 'T':
  832. case 'U':  case 'V':  case 'W':  case 'X':
  833. case 'Y':  case 'Z':
  834. {
  835. matchRange('A','Z');
  836. break;
  837. }
  838. case '0':  case '1':  case '2':  case '3':
  839. case '4':  case '5':  case '6':  case '7':
  840. case '8':  case '9':
  841. {
  842. matchRange('0','9');
  843. break;
  844. }
  845. case '_':
  846. {
  847. match('_');
  848. break;
  849. }
  850. default:
  851. {
  852. throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine());
  853. }
  854. }
  855. }
  856. }
  857. else {
  858. break _loop79;
  859. }
  860. } while (true);
  861. }
  862. if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
  863. _token = makeToken(_ttype);
  864. _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
  865. }
  866. _returnToken = _token;
  867. }
  868. protected final void mWS(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
  869. int _ttype; Token _token=null; int _begin=text.length();
  870. _ttype = WS;
  871. int _saveIndex;
  872. {
  873. int _cnt105=0;
  874. _loop105:
  875. do {
  876. if ((LA(1)==' ') && (_tokenSet_5.member(LA(2)))) {
  877. match(' ');
  878. }
  879. else if ((LA(1)=='t') && (_tokenSet_5.member(LA(2)))) {
  880. match('t');
  881. }
  882. else if ((LA(1)=='r') && (LA(2)=='n')) {
  883. match('r');
  884. match('n');
  885. newline();
  886. }
  887. else if ((LA(1)=='r') && (_tokenSet_5.member(LA(2)))) {
  888. match('r');
  889. newline();
  890. }
  891. else if ((LA(1)=='n') && (_tokenSet_5.member(LA(2)))) {
  892. match('n');
  893. newline();
  894. }
  895. else {
  896. if ( _cnt105>=1 ) { break _loop105; } else {throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine());}
  897. }
  898. _cnt105++;
  899. } while (true);
  900. }
  901. if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
  902. _token = makeToken(_ttype);
  903. _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
  904. }
  905. _returnToken = _token;
  906. }
  907. protected final void mVAR_ASSIGN(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
  908. int _ttype; Token _token=null; int _begin=text.length();
  909. _ttype = VAR_ASSIGN;
  910. int _saveIndex;
  911. match(":=");
  912. // inform the code generator that an assignment was done to
  913. // AST root for the rule if invoker set refRuleRoot.
  914. if ( transInfo!=null && transInfo.refRuleRoot!=null ) {
  915. transInfo.assignToRoot=true;
  916. }
  917. if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
  918. _token = makeToken(_ttype);
  919. _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
  920. }
  921. _returnToken = _token;
  922. }
  923. protected final void mAST_CONSTRUCTOR(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
  924. int _ttype; Token _token=null; int _begin=text.length();
  925. _ttype = AST_CONSTRUCTOR;
  926. int _saveIndex;
  927. Token x=null;
  928. Token y=null;
  929. _saveIndex=text.length();
  930. match('[');
  931. text.setLength(_saveIndex);
  932. {
  933. switch ( LA(1)) {
  934. case 't':  case 'n':  case 'r':  case ' ':
  935. {
  936. _saveIndex=text.length();
  937. mWS(false);
  938. text.setLength(_saveIndex);
  939. break;
  940. }
  941. case '"':  case '(':  case '0':  case '1':
  942. case '2':  case '3':  case '4':  case '5':
  943. case '6':  case '7':  case '8':  case '9':
  944. case '@':  case 'A':  case 'B':  case 'C':
  945. case 'D':  case 'E':  case 'F':  case 'G':
  946. case 'H':  case 'I':  case 'J':  case 'K':
  947. case 'L':  case 'M':  case 'N':  case 'O':
  948. case 'P':  case 'Q':  case 'R':  case 'S':
  949. case 'T':  case 'U':  case 'V':  case 'W':
  950. case 'X':  case 'Y':  case 'Z':  case '[':
  951. case '_':  case 'a':  case 'b':  case 'c':
  952. case 'd':  case 'e':  case 'f':  case 'g':
  953. case 'h':  case 'i':  case 'j':  case 'k':
  954. case 'l':  case 'm':  case 'n':  case 'o':
  955. case 'p':  case 'q':  case 'r':  case 's':
  956. case 't':  case 'u':  case 'v':  case 'w':
  957. case 'x':  case 'y':  case 'z':
  958. {
  959. break;
  960. }
  961. default:
  962. {
  963. throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine());
  964. }
  965. }
  966. }
  967. _saveIndex=text.length();
  968. mAST_CTOR_ELEMENT(true);
  969. text.setLength(_saveIndex);
  970. x=_returnToken;
  971. {
  972. switch ( LA(1)) {
  973. case 't':  case 'n':  case 'r':  case ' ':
  974. {
  975. _saveIndex=text.length();
  976. mWS(false);
  977. text.setLength(_saveIndex);
  978. break;
  979. }
  980. case ',':  case ']':
  981. {
  982. break;
  983. }
  984. default:
  985. {
  986. throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine());
  987. }
  988. }
  989. }
  990. {
  991. switch ( LA(1)) {
  992. case ',':
  993. {
  994. _saveIndex=text.length();
  995. match(',');
  996. text.setLength(_saveIndex);
  997. {
  998. switch ( LA(1)) {
  999. case 't':  case 'n':  case 'r':  case ' ':
  1000. {
  1001. _saveIndex=text.length();
  1002. mWS(false);
  1003. text.setLength(_saveIndex);
  1004. break;
  1005. }
  1006. case '"':  case '(':  case '0':  case '1':
  1007. case '2':  case '3':  case '4':  case '5':
  1008. case '6':  case '7':  case '8':  case '9':
  1009. case '@':  case 'A':  case 'B':  case 'C':
  1010. case 'D':  case 'E':  case 'F':  case 'G':
  1011. case 'H':  case 'I':  case 'J':  case 'K':
  1012. case 'L':  case 'M':  case 'N':  case 'O':
  1013. case 'P':  case 'Q':  case 'R':  case 'S':
  1014. case 'T':  case 'U':  case 'V':  case 'W':
  1015. case 'X':  case 'Y':  case 'Z':  case '[':
  1016. case '_':  case 'a':  case 'b':  case 'c':
  1017. case 'd':  case 'e':  case 'f':  case 'g':
  1018. case 'h':  case 'i':  case 'j':  case 'k':
  1019. case 'l':  case 'm':  case 'n':  case 'o':
  1020. case 'p':  case 'q':  case 'r':  case 's':
  1021. case 't':  case 'u':  case 'v':  case 'w':
  1022. case 'x':  case 'y':  case 'z':
  1023. {
  1024. break;
  1025. }
  1026. default:
  1027. {
  1028. throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine());
  1029. }
  1030. }
  1031. }
  1032. _saveIndex=text.length();
  1033. mAST_CTOR_ELEMENT(true);
  1034. text.setLength(_saveIndex);
  1035. y=_returnToken;
  1036. {
  1037. switch ( LA(1)) {
  1038. case 't':  case 'n':  case 'r':  case ' ':
  1039. {
  1040. _saveIndex=text.length();
  1041. mWS(false);
  1042. text.setLength(_saveIndex);
  1043. break;
  1044. }
  1045. case ']':
  1046. {
  1047. break;
  1048. }
  1049. default:
  1050. {
  1051. throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine());
  1052. }
  1053. }
  1054. }
  1055. break;
  1056. }
  1057. case ']':
  1058. {
  1059. break;
  1060. }
  1061. default:
  1062. {
  1063. throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine());
  1064. }
  1065. }
  1066. }
  1067. _saveIndex=text.length();
  1068. match(']');
  1069. text.setLength(_saveIndex);
  1070. String ys = "";
  1071. if ( y!=null ) {
  1072. ys = ","+y.getText();
  1073. }
  1074. text.setLength(_begin); text.append(generator.getASTCreateString(null,x.getText()+ys));
  1075. if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
  1076. _token = makeToken(_ttype);
  1077. _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
  1078. }
  1079. _returnToken = _token;
  1080. }
  1081. protected final void mTEXT_ARG(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
  1082. int _ttype; Token _token=null; int _begin=text.length();
  1083. _ttype = TEXT_ARG;
  1084. int _saveIndex;
  1085. {
  1086. int _cnt53=0;
  1087. _loop53:
  1088. do {
  1089. if ((_tokenSet_6.member(LA(1))) && ((LA(2) >= '3' && LA(2) <= '~'))) {
  1090. mTEXT_ARG_ELEMENT(false);
  1091. {
  1092. if ((_tokenSet_7.member(LA(1))) && (_tokenSet_8.member(LA(2)))) {
  1093. mWS(false);
  1094. }
  1095. else if ((_tokenSet_8.member(LA(1))) && (true)) {
  1096. }
  1097. else {
  1098. throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine());
  1099. }
  1100. }
  1101. }
  1102. else {
  1103. if ( _cnt53>=1 ) { break _loop53; } else {throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine());}
  1104. }
  1105. _cnt53++;
  1106. } while (true);
  1107. }
  1108. if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
  1109. _token = makeToken(_ttype);
  1110. _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
  1111. }
  1112. _returnToken = _token;
  1113. }
  1114. protected final void mTREE_ELEMENT(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
  1115. int _ttype; Token _token=null; int _begin=text.length();
  1116. _ttype = TREE_ELEMENT;
  1117. int _saveIndex;
  1118. Token id=null;
  1119. switch ( LA(1)) {
  1120. case '(':
  1121. {
  1122. mTREE(false);
  1123. break;
  1124. }
  1125. case '[':
  1126. {
  1127. mAST_CONSTRUCTOR(false);
  1128. break;
  1129. }
  1130. case 'A':  case 'B':  case 'C':  case 'D':
  1131. case 'E':  case 'F':  case 'G':  case 'H':
  1132. case 'I':  case 'J':  case 'K':  case 'L':
  1133. case 'M':  case 'N':  case 'O':  case 'P':
  1134. case 'Q':  case 'R':  case 'S':  case 'T':
  1135. case 'U':  case 'V':  case 'W':  case 'X':
  1136. case 'Y':  case 'Z':  case '_':  case 'a':
  1137. case 'b':  case 'c':  case 'd':  case 'e':
  1138. case 'f':  case 'g':  case 'h':  case 'i':
  1139. case 'j':  case 'k':  case 'l':  case 'm':
  1140. case 'n':  case 'o':  case 'p':  case 'q':
  1141. case 'r':  case 's':  case 't':  case 'u':
  1142. case 'v':  case 'w':  case 'x':  case 'y':
  1143. case 'z':
  1144. {
  1145. mID_ELEMENT(false);
  1146. break;
  1147. }
  1148. case '"':
  1149. {
  1150. mSTRING(false);
  1151. break;
  1152. }
  1153. default:
  1154. if ((LA(1)=='@') && (LA(2)=='(')) {
  1155. _saveIndex=text.length();
  1156. match('@');
  1157. text.setLength(_saveIndex);
  1158. mTREE(false);
  1159. }
  1160. else if ((LA(1)=='@') && (LA(2)=='[')) {
  1161. _saveIndex=text.length();
  1162. match('@');
  1163. text.setLength(_saveIndex);
  1164. mAST_CONSTRUCTOR(false);
  1165. }
  1166. else if ((LA(1)=='@') && (_tokenSet_1.member(LA(2)))) {
  1167. _saveIndex=text.length();
  1168. match('@');
  1169. text.setLength(_saveIndex);
  1170. mID_ELEMENT(true);
  1171. id=_returnToken;
  1172. String t=generator.mapTreeId(id.getText(), null); text.setLength(_begin); text.append(t);
  1173. }
  1174. else if ((LA(1)=='@') && (LA(2)=='@')) {
  1175. match("@@");
  1176. String t = currentRule.getRuleName()+"_AST"; text.setLength(_begin); text.append(t);
  1177. }
  1178. else {
  1179. throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine());
  1180. }
  1181. }
  1182. if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
  1183. _token = makeToken(_ttype);
  1184. _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
  1185. }
  1186. _returnToken = _token;
  1187. }
  1188. /** An ID_ELEMENT can be a func call, array ref, simple var,
  1189.  *  or AST label ref.
  1190.  */
  1191. protected final void mID_ELEMENT(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
  1192. int _ttype; Token _token=null; int _begin=text.length();
  1193. _ttype = ID_ELEMENT;
  1194. int _saveIndex;
  1195. Token id=null;
  1196. mID(true);
  1197. id=_returnToken;
  1198. {
  1199. if ((_tokenSet_7.member(LA(1))) && (_tokenSet_9.member(LA(2)))) {
  1200. _saveIndex=text.length();
  1201. mWS(false);
  1202. text.setLength(_saveIndex);
  1203. }
  1204. else if ((_tokenSet_9.member(LA(1))) && (true)) {
  1205. }
  1206. else {
  1207. throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine());
  1208. }
  1209. }
  1210. {
  1211. switch ( LA(1)) {
  1212. case '(':
  1213. {
  1214. match('(');
  1215. {
  1216. if ((_tokenSet_7.member(LA(1))) && (_tokenSet_10.member(LA(2)))) {
  1217. _saveIndex=text.length();
  1218. mWS(false);
  1219. text.setLength(_saveIndex);
  1220. }
  1221. else if ((_tokenSet_10.member(LA(1))) && ((LA(2) >= '3' && LA(2) <= '~'))) {
  1222. }
  1223. else {
  1224. throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine());
  1225. }
  1226. }
  1227. {
  1228. switch ( LA(1)) {
  1229. case '"':  case ''':  case '(':  case '0':
  1230. case '1':  case '2':  case '3':  case '4':
  1231. case '5':  case '6':  case '7':  case '8':
  1232. case '9':  case '@':  case 'A':  case 'B':
  1233. case 'C':  case 'D':  case 'E':  case 'F':
  1234. case 'G':  case 'H':  case 'I':  case 'J':
  1235. case 'K':  case 'L':  case 'M':  case 'N':
  1236. case 'O':  case 'P':  case 'Q':  case 'R':
  1237. case 'S':  case 'T':  case 'U':  case 'V':
  1238. case 'W':  case 'X':  case 'Y':  case 'Z':
  1239. case '[':  case '_':  case 'a':  case 'b':
  1240. case 'c':  case 'd':  case 'e':  case 'f':
  1241. case 'g':  case 'h':  case 'i':  case 'j':
  1242. case 'k':  case 'l':  case 'm':  case 'n':
  1243. case 'o':  case 'p':  case 'q':  case 'r':
  1244. case 's':  case 't':  case 'u':  case 'v':
  1245. case 'w':  case 'x':  case 'y':  case 'z':
  1246. {
  1247. mARG(false);
  1248. {
  1249. _loop42:
  1250. do {
  1251. if ((LA(1)==',')) {
  1252. match(',');
  1253. {
  1254. switch ( LA(1)) {
  1255. case 't':  case 'n':  case 'r':  case ' ':
  1256. {
  1257. _saveIndex=text.length();
  1258. mWS(false);
  1259. text.setLength(_saveIndex);
  1260. break;
  1261. }
  1262. case '"':  case ''':  case '(':  case '0':
  1263. case '1':  case '2':  case '3':  case '4':
  1264. case '5':  case '6':  case '7':  case '8':
  1265. case '9':  case '@':  case 'A':  case 'B':
  1266. case 'C':  case 'D':  case 'E':  case 'F':
  1267. case 'G':  case 'H':  case 'I':  case 'J':
  1268. case 'K':  case 'L':  case 'M':  case 'N':
  1269. case 'O':  case 'P':  case 'Q':  case 'R':
  1270. case 'S':  case 'T':  case 'U':  case 'V':
  1271. case 'W':  case 'X':  case 'Y':  case 'Z':
  1272. case '[':  case '_':  case 'a':  case 'b':
  1273. case 'c':  case 'd':  case 'e':  case 'f':
  1274. case 'g':  case 'h':  case 'i':  case 'j':
  1275. case 'k':  case 'l':  case 'm':  case 'n':
  1276. case 'o':  case 'p':  case 'q':  case 'r':
  1277. case 's':  case 't':  case 'u':  case 'v':
  1278. case 'w':  case 'x':  case 'y':  case 'z':
  1279. {
  1280. break;
  1281. }
  1282. default:
  1283. {
  1284. throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine());
  1285. }
  1286. }
  1287. }
  1288. mARG(false);
  1289. }
  1290. else {
  1291. break _loop42;
  1292. }
  1293. } while (true);
  1294. }
  1295. break;
  1296. }
  1297. case 't':  case 'n':  case 'r':  case ' ':
  1298. case ')':
  1299. {
  1300. break;
  1301. }
  1302. default:
  1303. {
  1304. throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine());
  1305. }
  1306. }
  1307. }
  1308. {
  1309. switch ( LA(1)) {
  1310. case 't':  case 'n':  case 'r':  case ' ':
  1311. {
  1312. _saveIndex=text.length();
  1313. mWS(false);
  1314. text.setLength(_saveIndex);
  1315. break;
  1316. }
  1317. case ')':
  1318. {
  1319. break;
  1320. }
  1321. default:
  1322. {
  1323. throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine());
  1324. }
  1325. }
  1326. }
  1327. match(')');
  1328. break;
  1329. }
  1330. case '[':
  1331. {
  1332. {
  1333. int _cnt47=0;
  1334. _loop47:
  1335. do {
  1336. if ((LA(1)=='[')) {
  1337. match('[');
  1338. {
  1339. switch ( LA(1)) {
  1340. case 't':  case 'n':  case 'r':  case ' ':
  1341. {
  1342. _saveIndex=text.length();
  1343. mWS(false);
  1344. text.setLength(_saveIndex);
  1345. break;
  1346. }
  1347. case '"':  case ''':  case '(':  case '0':
  1348. case '1':  case '2':  case '3':  case '4':
  1349. case '5':  case '6':  case '7':  case '8':
  1350. case '9':  case '@':  case 'A':  case 'B':
  1351. case 'C':  case 'D':  case 'E':  case 'F':
  1352. case 'G':  case 'H':  case 'I':  case 'J':
  1353. case 'K':  case 'L':  case 'M':  case 'N':
  1354. case 'O':  case 'P':  case 'Q':  case 'R':
  1355. case 'S':  case 'T':  case 'U':  case 'V':
  1356. case 'W':  case 'X':  case 'Y':  case 'Z':
  1357. case '[':  case '_':  case 'a':  case 'b':
  1358. case 'c':  case 'd':  case 'e':  case 'f':
  1359. case 'g':  case 'h':  case 'i':  case 'j':
  1360. case 'k':  case 'l':  case 'm':  case 'n':
  1361. case 'o':  case 'p':  case 'q':  case 'r':
  1362. case 's':  case 't':  case 'u':  case 'v':
  1363. case 'w':  case 'x':  case 'y':  case 'z':
  1364. {
  1365. break;
  1366. }
  1367. default:
  1368. {
  1369. throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine());
  1370. }
  1371. }
  1372. }
  1373. mARG(false);
  1374. {
  1375. switch ( LA(1)) {
  1376. case 't':  case 'n':  case 'r':  case ' ':
  1377. {
  1378. _saveIndex=text.length();
  1379. mWS(false);
  1380. text.setLength(_saveIndex);
  1381. break;
  1382. }
  1383. case ']':
  1384. {
  1385. break;
  1386. }
  1387. default:
  1388. {
  1389. throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine());
  1390. }
  1391. }
  1392. }
  1393. match(']');
  1394. }
  1395. else {
  1396. if ( _cnt47>=1 ) { break _loop47; } else {throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine());}
  1397. }
  1398. _cnt47++;
  1399. } while (true);
  1400. }
  1401. break;
  1402. }
  1403. case '.':
  1404. {
  1405. match('.');
  1406. mID_ELEMENT(false);
  1407. break;
  1408. }
  1409. case 't':  case 'n':  case 'r':  case ' ':
  1410. case ')':  case '*':  case '+':  case ',':
  1411. case '-':  case '/':  case ':':  case ']':
  1412. {
  1413. String t=generator.mapTreeId(id.getText(), transInfo);
  1414. text.setLength(_begin); text.append(t);
  1415. {
  1416. if (((_tokenSet_2.member(LA(1))) && (_tokenSet_3.member(LA(2))))&&(transInfo!=null && transInfo.refRuleRoot!=null)) {
  1417. {
  1418. switch ( LA(1)) {
  1419. case 't':  case 'n':  case 'r':  case ' ':
  1420. {
  1421. mWS(false);
  1422. break;
  1423. }
  1424. case ':':
  1425. {
  1426. break;
  1427. }
  1428. default:
  1429. {
  1430. throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine());
  1431. }
  1432. }
  1433. }
  1434. mVAR_ASSIGN(false);
  1435. }
  1436. else if ((_tokenSet_11.member(LA(1))) && (true)) {
  1437. }
  1438. else {
  1439. throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine());
  1440. }
  1441. }
  1442. break;
  1443. }
  1444. default:
  1445. {
  1446. throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine());
  1447. }
  1448. }
  1449. }
  1450. if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
  1451. _token = makeToken(_ttype);
  1452. _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
  1453. }
  1454. _returnToken = _token;
  1455. }
  1456. /** The arguments of a @[...] constructor are text, token type,
  1457.  *  or a tree.
  1458.  */
  1459. protected final void mAST_CTOR_ELEMENT(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
  1460. int _ttype; Token _token=null; int _begin=text.length();
  1461. _ttype = AST_CTOR_ELEMENT;
  1462. int _saveIndex;
  1463. if ((LA(1)=='"') && ((LA(2) >= '3' && LA(2) <= '~'))) {
  1464. mSTRING(false);
  1465. }
  1466. else if ((_tokenSet_12.member(LA(1))) && ((LA(2) >= '3' && LA(2) <= '~'))) {
  1467. mTREE_ELEMENT(false);
  1468. }
  1469. else if (((LA(1) >= '0' && LA(1) <= '9'))) {
  1470. mINT(false);
  1471. }
  1472. else {
  1473. throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine());
  1474. }
  1475. if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
  1476. _token = makeToken(_ttype);
  1477. _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
  1478. }
  1479. _returnToken = _token;
  1480. }
  1481. protected final void mINT(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
  1482. int _ttype; Token _token=null; int _begin=text.length();
  1483. _ttype = INT;
  1484. int _saveIndex;
  1485. {
  1486. int _cnt96=0;
  1487. _loop96:
  1488. do {
  1489. if (((LA(1) >= '0' && LA(1) <= '9'))) {
  1490. mDIGIT(false);
  1491. }
  1492. else {
  1493. if ( _cnt96>=1 ) { break _loop96; } else {throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine());}
  1494. }
  1495. _cnt96++;
  1496. } while (true);
  1497. }
  1498. if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
  1499. _token = makeToken(_ttype);
  1500. _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
  1501. }
  1502. _returnToken = _token;
  1503. }
  1504. protected final void mARG(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
  1505. int _ttype; Token _token=null; int _begin=text.length();
  1506. _ttype = ARG;
  1507. int _saveIndex;
  1508. {
  1509. switch ( LA(1)) {
  1510. case ''':
  1511. {
  1512. mCHAR(false);
  1513. break;
  1514. }
  1515. case '0':  case '1':  case '2':  case '3':
  1516. case '4':  case '5':  case '6':  case '7':
  1517. case '8':  case '9':
  1518. {
  1519. mINT_OR_FLOAT(false);
  1520. break;
  1521. }
  1522. default:
  1523. if ((_tokenSet_12.member(LA(1))) && ((LA(2) >= '3' && LA(2) <= '~'))) {
  1524. mTREE_ELEMENT(false);
  1525. }
  1526. else if ((LA(1)=='"') && ((LA(2) >= '3' && LA(2) <= '~'))) {
  1527. mSTRING(false);
  1528. }
  1529. else {
  1530. throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine());
  1531. }
  1532. }
  1533. }
  1534. {
  1535. _loop74:
  1536. do {
  1537. if ((_tokenSet_13.member(LA(1))) && (_tokenSet_14.member(LA(2)))) {
  1538. {
  1539. switch ( LA(1)) {
  1540. case 't':  case 'n':  case 'r':  case ' ':
  1541. {
  1542. mWS(false);
  1543. break;
  1544. }
  1545. case '*':  case '+':  case '-':  case '/':
  1546. {
  1547. break;
  1548. }
  1549. default:
  1550. {
  1551. throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine());
  1552. }
  1553. }
  1554. }
  1555. {
  1556. switch ( LA(1)) {
  1557. case '+':
  1558. {
  1559. match('+');
  1560. break;
  1561. }
  1562. case '-':
  1563. {
  1564. match('-');
  1565. break;
  1566. }
  1567. case '*':
  1568. {
  1569. match('*');
  1570. break;
  1571. }
  1572. case '/':
  1573. {
  1574. match('/');
  1575. break;
  1576. }
  1577. default:
  1578. {
  1579. throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine());
  1580. }
  1581. }
  1582. }
  1583. {
  1584. switch ( LA(1)) {
  1585. case 't':  case 'n':  case 'r':  case ' ':
  1586. {
  1587. mWS(false);
  1588. break;
  1589. }
  1590. case '"':  case ''':  case '(':  case '0':
  1591. case '1':  case '2':  case '3':  case '4':
  1592. case '5':  case '6':  case '7':  case '8':
  1593. case '9':  case '@':  case 'A':  case 'B':
  1594. case 'C':  case 'D':  case 'E':  case 'F':
  1595. case 'G':  case 'H':  case 'I':  case 'J':
  1596. case 'K':  case 'L':  case 'M':  case 'N':
  1597. case 'O':  case 'P':  case 'Q':  case 'R':
  1598. case 'S':  case 'T':  case 'U':  case 'V':
  1599. case 'W':  case 'X':  case 'Y':  case 'Z':
  1600. case '[':  case '_':  case 'a':  case 'b':
  1601. case 'c':  case 'd':  case 'e':  case 'f':
  1602. case 'g':  case 'h':  case 'i':  case 'j':
  1603. case 'k':  case 'l':  case 'm':  case 'n':
  1604. case 'o':  case 'p':  case 'q':  case 'r':
  1605. case 's':  case 't':  case 'u':  case 'v':
  1606. case 'w':  case 'x':  case 'y':  case 'z':
  1607. {
  1608. break;
  1609. }
  1610. default:
  1611. {
  1612. throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine());
  1613. }
  1614. }
  1615. }
  1616. mARG(false);
  1617. }
  1618. else {
  1619. break _loop74;
  1620. }
  1621. } while (true);
  1622. }
  1623. if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
  1624. _token = makeToken(_ttype);
  1625. _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
  1626. }
  1627. _returnToken = _token;
  1628. }
  1629. protected final void mTEXT_ARG_ELEMENT(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
  1630. int _ttype; Token _token=null; int _begin=text.length();
  1631. _ttype = TEXT_ARG_ELEMENT;
  1632. int _saveIndex;
  1633. switch ( LA(1)) {
  1634. case 'A':  case 'B':  case 'C':  case 'D':
  1635. case 'E':  case 'F':  case 'G':  case 'H':
  1636. case 'I':  case 'J':  case 'K':  case 'L':
  1637. case 'M':  case 'N':  case 'O':  case 'P':
  1638. case 'Q':  case 'R':  case 'S':  case 'T':
  1639. case 'U':  case 'V':  case 'W':  case 'X':
  1640. case 'Y':  case 'Z':  case '_':  case 'a':
  1641. case 'b':  case 'c':  case 'd':  case 'e':
  1642. case 'f':  case 'g':  case 'h':  case 'i':
  1643. case 'j':  case 'k':  case 'l':  case 'm':
  1644. case 'n':  case 'o':  case 'p':  case 'q':
  1645. case 'r':  case 's':  case 't':  case 'u':
  1646. case 'v':  case 'w':  case 'x':  case 'y':
  1647. case 'z':
  1648. {
  1649. mTEXT_ARG_ID_ELEMENT(false);
  1650. break;
  1651. }
  1652. case '"':
  1653. {
  1654. mSTRING(false);
  1655. break;
  1656. }
  1657. case ''':
  1658. {
  1659. mCHAR(false);
  1660. break;
  1661. }
  1662. case '0':  case '1':  case '2':  case '3':
  1663. case '4':  case '5':  case '6':  case '7':
  1664. case '8':  case '9':
  1665. {
  1666. mINT_OR_FLOAT(false);
  1667. break;
  1668. }
  1669. case '%':
  1670. {
  1671. mTEXT_ITEM(false);
  1672. break;
  1673. }
  1674. case '+':
  1675. {
  1676. match('+');
  1677. break;
  1678. }
  1679. default:
  1680. {
  1681. throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine());
  1682. }
  1683. }
  1684. if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
  1685. _token = makeToken(_ttype);
  1686. _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
  1687. }
  1688. _returnToken = _token;
  1689. }
  1690. protected final void mTEXT_ARG_ID_ELEMENT(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
  1691. int _ttype; Token _token=null; int _begin=text.length();
  1692. _ttype = TEXT_ARG_ID_ELEMENT;
  1693. int _saveIndex;
  1694. Token id=null;
  1695. mID(true);
  1696. id=_returnToken;
  1697. {
  1698. if ((_tokenSet_7.member(LA(1))) && (_tokenSet_15.member(LA(2)))) {
  1699. _saveIndex=text.length();
  1700. mWS(false);
  1701. text.setLength(_saveIndex);
  1702. }
  1703. else if ((_tokenSet_15.member(LA(1))) && (true)) {
  1704. }
  1705. else {
  1706. throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine());
  1707. }
  1708. }
  1709. {
  1710. switch ( LA(1)) {
  1711. case '(':
  1712. {
  1713. match('(');
  1714. {
  1715. if ((_tokenSet_7.member(LA(1))) && (_tokenSet_16.member(LA(2)))) {
  1716. _saveIndex=text.length();
  1717. mWS(false);
  1718. text.setLength(_saveIndex);
  1719. }
  1720. else if ((_tokenSet_16.member(LA(1))) && ((LA(2) >= '3' && LA(2) <= '~'))) {
  1721. }
  1722. else {
  1723. throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine());
  1724. }
  1725. }
  1726. {
  1727. _loop62:
  1728. do {
  1729. if ((_tokenSet_6.member(LA(1)))) {
  1730. mTEXT_ARG(false);
  1731. {
  1732. _loop61:
  1733. do {
  1734. if ((LA(1)==',')) {
  1735. match(',');
  1736. mTEXT_ARG(false);
  1737. }
  1738. else {
  1739. break _loop61;
  1740. }
  1741. } while (true);
  1742. }
  1743. }
  1744. else {
  1745. break _loop62;
  1746. }
  1747. } while (true);
  1748. }
  1749. {
  1750. switch ( LA(1)) {
  1751. case 't':  case 'n':  case 'r':  case ' ':
  1752. {
  1753. _saveIndex=text.length();
  1754. mWS(false);
  1755. text.setLength(_saveIndex);
  1756. break;
  1757. }
  1758. case ')':
  1759. {
  1760. break;
  1761. }
  1762. default:
  1763. {
  1764. throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine());
  1765. }
  1766. }
  1767. }
  1768. match(')');
  1769. break;
  1770. }
  1771. case '[':
  1772. {
  1773. {
  1774. int _cnt67=0;
  1775. _loop67:
  1776. do {
  1777. if ((LA(1)=='[')) {
  1778. match('[');
  1779. {
  1780. switch ( LA(1)) {
  1781. case 't':  case 'n':  case 'r':  case ' ':
  1782. {
  1783. _saveIndex=text.length();
  1784. mWS(false);
  1785. text.setLength(_saveIndex);
  1786. break;
  1787. }
  1788. case '"':  case '%':  case ''':  case '+':
  1789. case '0':  case '1':  case '2':  case '3':
  1790. case '4':  case '5':  case '6':  case '7':
  1791. case '8':  case '9':  case 'A':  case 'B':
  1792. case 'C':  case 'D':  case 'E':  case 'F':
  1793. case 'G':  case 'H':  case 'I':  case 'J':
  1794. case 'K':  case 'L':  case 'M':  case 'N':
  1795. case 'O':  case 'P':  case 'Q':  case 'R':
  1796. case 'S':  case 'T':  case 'U':  case 'V':
  1797. case 'W':  case 'X':  case 'Y':  case 'Z':
  1798. case '_':  case 'a':  case 'b':  case 'c':
  1799. case 'd':  case 'e':  case 'f':  case 'g':
  1800. case 'h':  case 'i':  case 'j':  case 'k':
  1801. case 'l':  case 'm':  case 'n':  case 'o':
  1802. case 'p':  case 'q':  case 'r':  case 's':
  1803. case 't':  case 'u':  case 'v':  case 'w':
  1804. case 'x':  case 'y':  case 'z':
  1805. {
  1806. break;
  1807. }
  1808. default:
  1809. {
  1810. throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine());
  1811. }
  1812. }
  1813. }
  1814. mTEXT_ARG(false);
  1815. {
  1816. switch ( LA(1)) {
  1817. case 't':  case 'n':  case 'r':  case ' ':
  1818. {
  1819. _saveIndex=text.length();
  1820. mWS(false);
  1821. text.setLength(_saveIndex);
  1822. break;
  1823. }
  1824. case ']':
  1825. {
  1826. break;
  1827. }
  1828. default:
  1829. {
  1830. throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine());
  1831. }
  1832. }
  1833. }
  1834. match(']');
  1835. }
  1836. else {
  1837. if ( _cnt67>=1 ) { break _loop67; } else {throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine());}
  1838. }
  1839. _cnt67++;
  1840. } while (true);
  1841. }
  1842. break;
  1843. }
  1844. case '.':
  1845. {
  1846. match('.');
  1847. mTEXT_ARG_ID_ELEMENT(false);
  1848. break;
  1849. }
  1850. case '-':
  1851. {
  1852. match("->");
  1853. mTEXT_ARG_ID_ELEMENT(false);
  1854. break;
  1855. }
  1856. case ':':
  1857. {
  1858. match("::");
  1859. mTEXT_ARG_ID_ELEMENT(false);
  1860. break;
  1861. }
  1862. case 't':  case 'n':  case 'r':  case ' ':
  1863. case '"':  case '%':  case ''':  case ')':
  1864. case '+':  case ',':  case '0':  case '1':
  1865. case '2':  case '3':  case '4':  case '5':
  1866. case '6':  case '7':  case '8':  case '9':
  1867. case 'A':  case 'B':  case 'C':  case 'D':
  1868. case 'E':  case 'F':  case 'G':  case 'H':
  1869. case 'I':  case 'J':  case 'K':  case 'L':
  1870. case 'M':  case 'N':  case 'O':  case 'P':
  1871. case 'Q':  case 'R':  case 'S':  case 'T':
  1872. case 'U':  case 'V':  case 'W':  case 'X':
  1873. case 'Y':  case 'Z':  case ']':  case '_':
  1874. case 'a':  case 'b':  case 'c':  case 'd':
  1875. case 'e':  case 'f':  case 'g':  case 'h':
  1876. case 'i':  case 'j':  case 'k':  case 'l':
  1877. case 'm':  case 'n':  case 'o':  case 'p':
  1878. case 'q':  case 'r':  case 's':  case 't':
  1879. case 'u':  case 'v':  case 'w':  case 'x':
  1880. case 'y':  case 'z':
  1881. {
  1882. break;
  1883. }
  1884. default:
  1885. {
  1886. throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine());
  1887. }
  1888. }
  1889. }
  1890. if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
  1891. _token = makeToken(_ttype);
  1892. _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
  1893. }
  1894. _returnToken = _token;
  1895. }
  1896. protected final void mINT_OR_FLOAT(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
  1897. int _ttype; Token _token=null; int _begin=text.length();
  1898. _ttype = INT_OR_FLOAT;
  1899. int _saveIndex;
  1900. {
  1901. int _cnt99=0;
  1902. _loop99:
  1903. do {
  1904. if (((LA(1) >= '0' && LA(1) <= '9')) && (_tokenSet_17.member(LA(2)))) {
  1905. mDIGIT(false);
  1906. }
  1907. else {
  1908. if ( _cnt99>=1 ) { break _loop99; } else {throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine());}
  1909. }
  1910. _cnt99++;
  1911. } while (true);
  1912. }
  1913. {
  1914. if ((LA(1)=='L') && (_tokenSet_18.member(LA(2)))) {
  1915. match('L');
  1916. }
  1917. else if ((LA(1)=='l') && (_tokenSet_18.member(LA(2)))) {
  1918. match('l');
  1919. }
  1920. else if ((LA(1)=='.')) {
  1921. match('.');
  1922. {
  1923. _loop102:
  1924. do {
  1925. if (((LA(1) >= '0' && LA(1) <= '9')) && (_tokenSet_18.member(LA(2)))) {
  1926. mDIGIT(false);
  1927. }
  1928. else {
  1929. break _loop102;
  1930. }
  1931. } while (true);
  1932. }
  1933. }
  1934. else if ((_tokenSet_18.member(LA(1))) && (true)) {
  1935. }
  1936. else {
  1937. throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine());
  1938. }
  1939. }
  1940. if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
  1941. _token = makeToken(_ttype);
  1942. _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
  1943. }
  1944. _returnToken = _token;
  1945. }
  1946. protected final void mESC(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
  1947. int _ttype; Token _token=null; int _begin=text.length();
  1948. _ttype = ESC;
  1949. int _saveIndex;
  1950. match('\');
  1951. {
  1952. switch ( LA(1)) {
  1953. case 'n':
  1954. {
  1955. match('n');
  1956. break;
  1957. }
  1958. case 'r':
  1959. {
  1960. match('r');
  1961. break;
  1962. }
  1963. case 't':
  1964. {
  1965. match('t');
  1966. break;
  1967. }
  1968. case 'b':
  1969. {
  1970. match('b');
  1971. break;
  1972. }
  1973. case 'f':
  1974. {
  1975. match('f');
  1976. break;
  1977. }
  1978. case '"':
  1979. {
  1980. match('"');
  1981. break;
  1982. }
  1983. case ''':
  1984. {
  1985. match(''');
  1986. break;
  1987. }
  1988. case '\':
  1989. {
  1990. match('\');
  1991. break;
  1992. }
  1993. case '0':  case '1':  case '2':  case '3':
  1994. {
  1995. {
  1996. matchRange('0','3');
  1997. }
  1998. {
  1999. if (((LA(1) >= '0' && LA(1) <= '9')) && ((LA(2) >= '3' && LA(2) <= '~'))) {
  2000. mDIGIT(false);
  2001. {
  2002. if (((LA(1) >= '0' && LA(1) <= '9')) && ((LA(2) >= '3' && LA(2) <= '~'))) {
  2003. mDIGIT(false);
  2004. }
  2005. else if (((LA(1) >= '3' && LA(1) <= '~')) && (true)) {
  2006. }
  2007. else {
  2008. throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine());
  2009. }
  2010. }
  2011. }
  2012. else if (((LA(1) >= '3' && LA(1) <= '~')) && (true)) {
  2013. }
  2014. else {
  2015. throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine());
  2016. }
  2017. }
  2018. break;
  2019. }
  2020. case '4':  case '5':  case '6':  case '7':
  2021. {
  2022. {
  2023. matchRange('4','7');
  2024. }
  2025. {
  2026. if (((LA(1) >= '0' && LA(1) <= '9')) && ((LA(2) >= '3' && LA(2) <= '~'))) {
  2027. mDIGIT(false);
  2028. }
  2029. else if (((LA(1) >= '3' && LA(1) <= '~')) && (true)) {
  2030. }
  2031. else {
  2032. throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine());
  2033. }
  2034. }
  2035. break;
  2036. }
  2037. default:
  2038. {
  2039. throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine());
  2040. }
  2041. }
  2042. }
  2043. if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
  2044. _token = makeToken(_ttype);
  2045. _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
  2046. }
  2047. _returnToken = _token;
  2048. }
  2049. protected final void mDIGIT(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
  2050. int _ttype; Token _token=null; int _begin=text.length();
  2051. _ttype = DIGIT;
  2052. int _saveIndex;
  2053. matchRange('0','9');
  2054. if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
  2055. _token = makeToken(_ttype);
  2056. _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
  2057. }
  2058. _returnToken = _token;
  2059. }
  2060. private static final long _tokenSet_0_data_[] = { -36988258362376L, 9223372036854775806L, 0L, 0L };
  2061. public static final BitSet _tokenSet_0 = new BitSet(_tokenSet_0_data_);
  2062. private static final long _tokenSet_1_data_[] = { 0L, 576460745995190270L, 0L, 0L };
  2063. public static final BitSet _tokenSet_1 = new BitSet(_tokenSet_1_data_);
  2064. private static final long _tokenSet_2_data_[] = { 288230380446688768L, 0L, 0L };
  2065. public static final BitSet _tokenSet_2 = new BitSet(_tokenSet_2_data_);
  2066. private static final long _tokenSet_3_data_[] = { 2594073389660382720L, 0L, 0L };
  2067. public static final BitSet _tokenSet_3 = new BitSet(_tokenSet_3_data_);
  2068. private static final long _tokenSet_4_data_[] = { 287948901175001088L, 576460745995190270L, 0L, 0L };
  2069. public static final BitSet _tokenSet_4 = new BitSet(_tokenSet_4_data_);
  2070. private static final long _tokenSet_5_data_[] = { 576460361461409280L, 576460746666278911L, 0L, 0L };
  2071. public static final BitSet _tokenSet_5 = new BitSet(_tokenSet_5_data_);
  2072. private static final long _tokenSet_6_data_[] = { 287958401642659840L, 576460745995190270L, 0L, 0L };
  2073. public static final BitSet _tokenSet_6 = new BitSet(_tokenSet_6_data_);
  2074. private static final long _tokenSet_7_data_[] = { 4294977024L, 0L, 0L };
  2075. public static final BitSet _tokenSet_7 = new BitSet(_tokenSet_7_data_);
  2076. private static final long _tokenSet_8_data_[] = { 287978197146936832L, 576460746532061182L, 0L, 0L };
  2077. public static final BitSet _tokenSet_8 = new BitSet(_tokenSet_8_data_);
  2078. private static final long _tokenSet_9_data_[] = { 288510755911771648L, 671088640L, 0L, 0L };
  2079. public static final BitSet _tokenSet_9 = new BitSet(_tokenSet_9_data_);
  2080. private static final long _tokenSet_10_data_[] = { 287952770940544512L, 576460746129407999L, 0L, 0L };
  2081. public static final BitSet _tokenSet_10 = new BitSet(_tokenSet_10_data_);
  2082. private static final long _tokenSet_11_data_[] = { 208911504254464L, 536870912L, 0L, 0L };
  2083. public static final BitSet _tokenSet_11 = new BitSet(_tokenSet_11_data_);
  2084. private static final long _tokenSet_12_data_[] = { 1116691496960L, 576460746129407999L, 0L, 0L };
  2085. public static final BitSet _tokenSet_12 = new BitSet(_tokenSet_12_data_);
  2086. private static final long _tokenSet_13_data_[] = { 189120294954496L, 0L, 0L };
  2087. public static final BitSet _tokenSet_13 = new BitSet(_tokenSet_13_data_);
  2088. private static final long _tokenSet_14_data_[] = { 288139687917266432L, 576460746129407999L, 0L, 0L };
  2089. public static final BitSet _tokenSet_14 = new BitSet(_tokenSet_14_data_);
  2090. private static final long _tokenSet_15_data_[] = { 576315225926542848L, 576460746666278910L, 0L, 0L };
  2091. public static final BitSet _tokenSet_15 = new BitSet(_tokenSet_15_data_);
  2092. private static final long _tokenSet_16_data_[] = { 287960604960892416L, 576460745995190270L, 0L, 0L };
  2093. public static final BitSet _tokenSet_16 = new BitSet(_tokenSet_16_data_);
  2094. private static final long _tokenSet_17_data_[] = { 288228885798069760L, 576460746532061182L, 0L, 0L };
  2095. public static final BitSet _tokenSet_17 = new BitSet(_tokenSet_17_data_);
  2096. private static final long _tokenSet_18_data_[] = { 288158517053892096L, 576460746532061182L, 0L, 0L };
  2097. public static final BitSet _tokenSet_18 = new BitSet(_tokenSet_18_data_);
  2098. }