/plugins/Beauty/trunk/src/beauty/parsers/bsh/BSHParserTokenManager.java

# · Java · 1801 lines · 1642 code · 53 blank · 106 comment · 468 complexity · 3d6e43e319658ec8860a6c05b4fc1acb MD5 · raw file

Large files are truncated click here to view the full file

  1. /* Generated By:JavaCC: Do not edit this line. BSHParserTokenManager.java */
  2. package beauty.parsers.bsh;
  3. import java.io.*;
  4. import java.util.*;
  5. /** Token Manager. */
  6. public class BSHParserTokenManager implements BSHParserConstants
  7. {
  8. // line buffer, text is accumulated here, then written to the output stream
  9. // on end of line marker.
  10. static StringBuilder b = new StringBuilder();
  11. // all text is accumulated here. When processing is complete, this buffer
  12. // will contain the final beautified text.
  13. static StringBuilder outputBuffer = new StringBuilder();
  14. // accumulate pieces a token or string at a time. The objects in this array
  15. // will be ocnverted to strings, padded as appropriate, and added to the
  16. // line buffer b. This is the "accumulator".
  17. static ArrayList a = new ArrayList();
  18. // where to write the completely beautified code.
  19. private static PrintWriter out = null;
  20. // level of indentation
  21. static int level = 0;
  22. // width of indent
  23. static int indent_width = 4;
  24. static String indent = " ";
  25. static String double_indent = indent + indent;
  26. // the soft tab setting from jEdit, use soft tabs by default.
  27. static boolean useSoftTabs = true;
  28. // line separator, defaults to system line separator, but can be set to
  29. // a specific separator
  30. static String ls = System.getProperty("line.separator");
  31. static void reset() {
  32. b = new StringBuilder();
  33. outputBuffer = new StringBuilder();
  34. a.clear();
  35. level = 0;
  36. }
  37. static String getText() {
  38. return outputBuffer.toString();
  39. }
  40. static void setLineSeparator(String le) {
  41. ls = le;
  42. }
  43. static void setIndentWidth(int w) {
  44. indent_width = w;
  45. if (indent_width <= 0) {
  46. indent_width = 4;
  47. }
  48. indent = "";
  49. for (int i = 0; i < w; i++) {
  50. indent += " ";
  51. }
  52. double_indent = indent + indent;
  53. }
  54. static void setUseSoftTabs(boolean b) {
  55. useSoftTabs = b;
  56. if (b) {
  57. indent = "\u005ct";
  58. double_indent = "\u005ct\u005ct";
  59. }
  60. else {
  61. setIndentWidth(indent_width);
  62. }
  63. }
  64. // add a token to the accumulator
  65. static void add(Token t) {
  66. if (t != null) {
  67. a.add(t);
  68. }
  69. }
  70. // add a string to the accumulator
  71. static void add(String s) {
  72. if (s != null) {
  73. a.add(s);
  74. }
  75. }
  76. // trim spaces from the last item in the accumulator
  77. static void trim() {
  78. if (a.size() == 0)
  79. return;
  80. Object o = a.get(a.size() - 1);
  81. StringBuilder sb = new StringBuilder();
  82. if (o instanceof Token)
  83. sb.append( ((Token)o).image );
  84. else
  85. sb.append((String)o);
  86. while(sb.length() > 0 && sb.charAt(sb.length() - 1) == ' ')
  87. sb.deleteCharAt(sb.length() - 1);
  88. a.set(a.size() - 1, sb.toString() );
  89. }
  90. // trim a single new line from the end of the output buffer
  91. static void trimNL() {
  92. if(outputBuffer.length() > 0 && outputBuffer.charAt(outputBuffer.length() - 1) == '\u005cn')
  93. outputBuffer.deleteCharAt(outputBuffer.length() - 1);
  94. if(outputBuffer.length() > 0 && outputBuffer.charAt(outputBuffer.length() - 1) == '\u005cr')
  95. outputBuffer.deleteCharAt(outputBuffer.length() - 1);
  96. }
  97. // trim all \n and/or \r from the end of the given string
  98. static void trimNL(String s) {
  99. StringBuilder sb = new StringBuilder(s);
  100. while(sb.length() > 0 && (sb.charAt(sb.length() - 1) == '\u005cr' || sb.charAt(sb.length() - 1) == '\u005cn'))
  101. sb.deleteCharAt(sb.length() - 1);
  102. }
  103. // trim all whitespace (\r, \n, space, \t) from the start of the given string
  104. static String trimStart(String s) {
  105. StringBuilder sb = new StringBuilder(s);
  106. while(sb.length() > 0 && (sb.charAt(0) == '\u005cr'
  107. || sb.charAt(0) == '\u005cn'
  108. || sb.charAt(0) == '\u005ct'
  109. || sb.charAt(0) == ' ')) {
  110. sb.deleteCharAt(0);
  111. }
  112. return sb.toString();
  113. }
  114. // trim up to max whitespace (\r, \n, space, \t) from the start of the given string
  115. static String trimStart(String s, int max) {
  116. StringBuilder sb = new StringBuilder(s);
  117. int trimmed = 0;
  118. while(sb.length() > 0 && Character.isWhitespace(sb.charAt(0)) && trimmed < max) {
  119. sb.deleteCharAt(0);
  120. ++trimmed;
  121. }
  122. return sb.toString();
  123. }
  124. // trims whitespace (\r, \n, space, \t) from the last items in the
  125. // accumulator. If the last item is all whitespace, continues on to the
  126. // previous until a non-whitespace character is encountered. If the
  127. // entire accumulator is whitespace, continues to trim whitespace from the
  128. // outputBuffer.
  129. static void trimWhitespace() {
  130. for (int i = a.size() - 1; i >= 0; i-- ) {
  131. Object o = a.get(i);
  132. StringBuilder sb = new StringBuilder();
  133. if (o instanceof Token)
  134. sb.append( ((Token)o).image );
  135. else
  136. sb.append((String)o);
  137. while(sb.length() > 0 && (sb.charAt(sb.length() - 1) == '\u005cr'
  138. || sb.charAt(sb.length() - 1) == '\u005cn'
  139. || sb.charAt(sb.length() - 1) == '\u005ct'
  140. || sb.charAt(sb.length() - 1) == ' ')) {
  141. sb.deleteCharAt(sb.length() - 1);
  142. }
  143. if (sb.length() == 0) {
  144. a.remove(i);
  145. }
  146. else {
  147. a.set(i, sb.toString());
  148. break;
  149. }
  150. }
  151. if (a.size() == 0) {
  152. while(outputBuffer.length() > 0 && (outputBuffer.charAt(outputBuffer.length() - 1) == '\u005cr'
  153. || outputBuffer.charAt(outputBuffer.length() - 1) == '\u005cn'
  154. || outputBuffer.charAt(outputBuffer.length() - 1) == '\u005ct'
  155. || outputBuffer.charAt(outputBuffer.length() - 1) == ' ')) {
  156. outputBuffer.deleteCharAt(outputBuffer.length() - 1);
  157. }
  158. }
  159. }
  160. // writes the contents of the accumulator to the outputBuffer. The line
  161. // buffer (b) is used to build the line.
  162. static void write() {
  163. try {
  164. b.setLength(0); // clear the line buffer
  165. // this next section builds the output string while protecting
  166. // string literals. All extra spaces are removed from the output
  167. // string, except that string literals are left as is.
  168. ArrayList list = new ArrayList();
  169. String s = new String("");
  170. for (int i = 0; i < a.size(); i++) {
  171. Object o = a.get(i);
  172. if (o instanceof Token) {
  173. Token token = (Token)o;
  174. if (token.kind == BSHParserConstants.STRING_LITERAL) {
  175. s = s.replaceAll("[ ]+", " ");
  176. list.add(s);
  177. s = new String("");
  178. list.add(token.image);
  179. }
  180. else {
  181. s += ((Token)o).image;
  182. s = s.replaceAll("[ ]+", " ");
  183. }
  184. }
  185. else {
  186. s += (String)o;
  187. s = s.replaceAll("[ ]+", " ");
  188. }
  189. }
  190. for (int i = 0; i < list.size(); i++) {
  191. b.append((String)list.get(i));
  192. }
  193. b.append(s);
  194. s = b.toString();
  195. // check for blank line(s)
  196. String maybe_blank = new String(s);
  197. if (maybe_blank.trim().isEmpty()) {
  198. // yep, it's a blank, so just print out a line separator
  199. outputBuffer.append(ls);
  200. a.clear();
  201. return;
  202. }
  203. // indent --
  204. // most lines get indented, but there are a few special cases:
  205. // "else" gets put on the same line as the closing "}" for the "if",
  206. // so don't want to indent. Similarly with "catch" and "finally".
  207. // The "while" at the end of a "do" loop is marked as "^while" to
  208. // differentiate it from a regular "while" block. "else if" is also
  209. // a special case.
  210. if (!s.startsWith(" else")
  211. && !s.startsWith(" catch")
  212. && !s.startsWith(" finally")
  213. && !s.startsWith(" ^while")
  214. && !s.startsWith(" {")
  215. && (!endsWith(outputBuffer, "else") && !endsWith(outputBuffer, "else "))) {
  216. s = s.trim();
  217. for (int i = 0; i < level; i++) {
  218. s = indent + s;
  219. }
  220. }
  221. // maybe clean out the ^ from the specially marked "while" at the
  222. // end of a "do" loop
  223. if (s.startsWith(" ^while")) {
  224. b.deleteCharAt(1);
  225. s = b.toString();
  226. }
  227. // check if the output buffer does NOT end with a new line. If it
  228. // doesn't, remove any leading whitespace from this line
  229. if (!endsWith(outputBuffer, "\u005cn") && !endsWith(outputBuffer, "\u005cr")) {
  230. s = trimStart(s);
  231. }
  232. // check that there aren't extra spaces in the buffer already --
  233. // this handles the case where the output buffer ends with a space
  234. // and the new string starts with a space, don't want 2 spaces.
  235. if (s.startsWith(" ") && endsWith(outputBuffer, " ")) {
  236. s = s.substring(1);
  237. }
  238. // check that there is one space between the end of the output
  239. // buffer and this line -- this handles the case where the output
  240. // buffer does not end in a space and the new string does not start
  241. // with a space, want one space in between.
  242. if (!s.startsWith(" ")
  243. && !endsWith(outputBuffer, " ")
  244. && !endsWith(outputBuffer, "\u005cr")
  245. && !endsWith(outputBuffer, "\u005cn")
  246. && outputBuffer.length() > 0) {
  247. outputBuffer.append(" ");
  248. }
  249. // by the Sun standard, there is no situation where '(' is followed
  250. // by a space or ')' is preceded with by a space
  251. s = s.replaceAll("[(][ ]", "(");
  252. s = s.replaceAll("[ ][)]", ")");
  253. // there should be no situation where a comma is preceded by a space,
  254. // although that seems to happen when formatting string arrays.
  255. s = s.replaceAll("\u005c\u005cs+[,]", ",");
  256. // finally! add the string to the output buffer
  257. // check for line length, may need to wrap. Sun says to avoid lines
  258. // longer than 80 characters. This doesn't work well yet, so I've
  259. // commented out the wrapping code. Still need to clean out the
  260. // wrapping markers.
  261. //s = s.replaceAll("[]", "");
  262. outputBuffer.append(s);
  263. /*
  264. int wrap_sep_count = countWrapSep(s);
  265. if (s.length() - wrap_sep_count > 80) {
  266. String[] lines = wrapLines(s);
  267. if ( lines != null ) {
  268. for (int i = 0; i < lines.length; i++) {
  269. outputBuffer.append(lines[i]).append(ls);
  270. }
  271. }
  272. else {
  273. // whack any remaining  characters
  274. s = s.replaceAll("[]", "");
  275. outputBuffer.append(s);
  276. }
  277. }
  278. else {
  279. // whack any remaining  characters
  280. s = s.replaceAll("[]", "");
  281. outputBuffer.append(s);
  282. }
  283. */
  284. // clear the accumulator for the next line
  285. a.clear();
  286. }
  287. catch(Exception e) {
  288. e.printStackTrace();
  289. }
  290. }
  291. static void writeln() {
  292. write();
  293. trimNL();
  294. outputBuffer.append(ls);
  295. }
  296. static int countWrapSep(String s) {
  297. int count = 0;
  298. for (int i = 0; i < s.length(); i++) {
  299. if (s.charAt(i) == '\u001c') {
  300. ++count;
  301. }
  302. }
  303. return count;
  304. }
  305. // needs work, does a wrap, but not per spec
  306. static String[] wrapLines(String s) {
  307. if (s.length() <= 80) {
  308. return new String[]{s};
  309. }
  310. int wc = countWrapSep(s);
  311. if (wc > 0) {
  312. int[] break_points = new int[wc];
  313. int offset = 0;
  314. for (int i = 0; i < wc; i++) {
  315. int index = s.indexOf('\u001c', offset);
  316. break_points[i] = index;
  317. offset = index + 1;
  318. }
  319. int first_break = -1;
  320. for (int i = 0; i < break_points.length; i++) {
  321. int possible = break_points[i];
  322. if (possible > 80) {
  323. break;
  324. }
  325. first_break = possible;
  326. }
  327. if ( first_break == -1 ) {
  328. first_break = s.length();
  329. }
  330. int ws_length = 0;
  331. for (int i = 0; i < s.length(); i++) {
  332. if (s.charAt(i) == ' ')
  333. ++ws_length;
  334. else
  335. break;
  336. }
  337. String leading_ws = s.substring(0, ws_length);
  338. String head = s.substring(0, first_break);
  339. String tail = s.substring(first_break);
  340. //head = head.replaceAll("[]", "");
  341. //tail = tail.replaceAll("[]", "");
  342. return new String[]{head, leading_ws + double_indent + tail};
  343. }
  344. return null;
  345. }
  346. // StringBuilder doesn't have an "endsWith" method
  347. static boolean endsWith(StringBuilder sb, String s) {
  348. if (sb == null && s == null)
  349. return true;
  350. if (sb == null && sb != null)
  351. return false;
  352. if (sb.length() < s.length())
  353. return false;
  354. String end = sb.substring(sb.length() - s.length());
  355. return end.equals(s);
  356. }
  357. static void writeJavadocComment(String s) {
  358. String[] lines = s.split("\u005cr\u005cn|\u005cr|\u005cn");
  359. // indent the first line. It won't have any leading whitespace, but
  360. // may have trailing whitespace
  361. String line = lines[0].trim();
  362. for (int j = 0; j < level; j++) {
  363. line = " " + line; // 4 spaces
  364. }
  365. outputBuffer.append(line).append(ls);
  366. // handle the remaining lines, put stars in front of them.
  367. // TODO: this needs work. Need to preserve whitepsace after
  368. // the star.
  369. for (int i = 1; i < lines.length; i++) {
  370. line = lines[i].trim();
  371. // apply padding. All javadoc lines start with a *.
  372. if (line.startsWith("*")) {
  373. line = " " + line;
  374. }
  375. else {
  376. line = " * " + line;
  377. }
  378. // apply indenting. The Sun rule is 4 spaces.
  379. for (int j = 0; j < level; j++) {
  380. line = " " + line;
  381. }
  382. outputBuffer.append(line);
  383. if (i < lines.length - 1) {
  384. outputBuffer.append(ls);
  385. }
  386. }
  387. }
  388. // comments of the /* ... */ variety. This sort of comment is commonly
  389. // used to "comment out" a block of code, so I don't want to modify the
  390. // existing indenting within the block.
  391. static void writeBlockComment(String s) {
  392. String[] lines = s.split("\u005cr\u005cn|\u005cr|\u005cn");
  393. // indent the first line. It won't have any leading whitespace, but
  394. // may have trailing whitespace
  395. String line = lines[0].trim();
  396. for (int j = 0; j < level; j++) {
  397. line = " " + line; // 4 spaces
  398. }
  399. outputBuffer.append(line).append(ls);
  400. // output body of comment without change
  401. for (int i = 1; i < lines.length - 1; i++) {
  402. line = lines[i]; // trimStart(lines[i], level * 4);
  403. outputBuffer.append(line).append(ls);
  404. }
  405. // output the last line. It will probably have leading whitespace, so
  406. // trim it then indent it the same as the first line.
  407. line = lines[lines.length - 1].trim();
  408. for (int j = 0; j < level; j++) {
  409. line = " " + line; // 4 spaces
  410. }
  411. outputBuffer.append(line);
  412. }
  413. // handle comments like this one
  414. static void writeEndOfLineComment(String s) {
  415. String line = s.trim();
  416. for (int j = 0; j < level; j++) {
  417. line = " " + line; // 4 spaces
  418. }
  419. outputBuffer.append(line).append(ls);
  420. }
  421. /** Debug output. */
  422. public java.io.PrintStream debugStream = System.out;
  423. /** Set debug output. */
  424. public void setDebugStream(java.io.PrintStream ds) { debugStream = ds; }
  425. private final int jjStopStringLiteralDfa_0(int pos, long active0, long active1, long active2)
  426. {
  427. switch (pos)
  428. {
  429. case 0:
  430. if ((active1 & 0x4000L) != 0L)
  431. return 15;
  432. if ((active0 & 0x7fffffffffffe00L) != 0L)
  433. {
  434. jjmatchedKind = 67;
  435. return 39;
  436. }
  437. if ((active1 & 0x80008000000000L) != 0L)
  438. return 60;
  439. return -1;
  440. case 1:
  441. if ((active0 & 0x7ffffff7fcffe00L) != 0L)
  442. {
  443. if (jjmatchedPos != 1)
  444. {
  445. jjmatchedKind = 67;
  446. jjmatchedPos = 1;
  447. }
  448. return 39;
  449. }
  450. if ((active0 & 0x80300000L) != 0L)
  451. return 39;
  452. return -1;
  453. case 2:
  454. if ((active0 & 0x77fff675feffe00L) != 0L)
  455. {
  456. if (jjmatchedPos != 2)
  457. {
  458. jjmatchedKind = 67;
  459. jjmatchedPos = 2;
  460. }
  461. return 39;
  462. }
  463. if ((active0 & 0x80009820000000L) != 0L)
  464. return 39;
  465. return -1;
  466. case 3:
  467. if ((active0 & 0x63ffe571f2e9e00L) != 0L)
  468. {
  469. if (jjmatchedPos != 3)
  470. {
  471. jjmatchedKind = 67;
  472. jjmatchedPos = 3;
  473. }
  474. return 39;
  475. }
  476. if ((active0 & 0x140012040c16000L) != 0L)
  477. return 39;
  478. return -1;
  479. case 4:
  480. if ((active0 & 0x20fbe57012c0600L) != 0L)
  481. {
  482. if (jjmatchedPos != 4)
  483. {
  484. jjmatchedKind = 67;
  485. jjmatchedPos = 4;
  486. }
  487. return 39;
  488. }
  489. if ((active0 & 0x43040001e029800L) != 0L)
  490. return 39;
  491. return -1;
  492. case 5:
  493. if ((active0 & 0x20d0e15090c0600L) != 0L)
  494. {
  495. jjmatchedKind = 67;
  496. jjmatchedPos = 5;
  497. return 39;
  498. }
  499. if ((active0 & 0x22b04200200000L) != 0L)
  500. return 39;
  501. return -1;
  502. case 6:
  503. if ((active0 & 0x20d081500040200L) != 0L)
  504. {
  505. jjmatchedKind = 67;
  506. jjmatchedPos = 6;
  507. return 39;
  508. }
  509. if ((active0 & 0x60009080400L) != 0L)
  510. return 39;
  511. return -1;
  512. case 7:
  513. if ((active0 & 0x201000000040200L) != 0L)
  514. return 39;
  515. if ((active0 & 0xc081500000000L) != 0L)
  516. {
  517. jjmatchedKind = 67;
  518. jjmatchedPos = 7;
  519. return 39;
  520. }
  521. return -1;
  522. case 8:
  523. if ((active0 & 0x4000500000000L) != 0L)
  524. {
  525. jjmatchedKind = 67;
  526. jjmatchedPos = 8;
  527. return 39;
  528. }
  529. if ((active0 & 0x8081000000000L) != 0L)
  530. return 39;
  531. return -1;
  532. case 9:
  533. if ((active0 & 0x4000000000000L) != 0L)
  534. {
  535. jjmatchedKind = 67;
  536. jjmatchedPos = 9;
  537. return 39;
  538. }
  539. if ((active0 & 0x500000000L) != 0L)
  540. return 39;
  541. return -1;
  542. case 10:
  543. if ((active0 & 0x4000000000000L) != 0L)
  544. {
  545. if (jjmatchedPos != 10)
  546. {
  547. jjmatchedKind = 67;
  548. jjmatchedPos = 10;
  549. }
  550. return 39;
  551. }
  552. return -1;
  553. case 11:
  554. if ((active0 & 0x4000000000000L) != 0L)
  555. return 39;
  556. return -1;
  557. default :
  558. return -1;
  559. }
  560. }
  561. private final int jjStartNfa_0(int pos, long active0, long active1, long active2)
  562. {
  563. return jjMoveNfa_0(jjStopStringLiteralDfa_0(pos, active0, active1, active2), pos + 1);
  564. }
  565. private int jjStopAtPos(int pos, int kind)
  566. {
  567. jjmatchedKind = kind;
  568. jjmatchedPos = pos;
  569. return pos + 1;
  570. }
  571. private int jjMoveStringLiteralDfa0_0()
  572. {
  573. switch(curChar)
  574. {
  575. case 33:
  576. jjmatchedKind = 84;
  577. return jjMoveStringLiteralDfa1_0(0x0L, 0x20000000L, 0x0L);
  578. case 37:
  579. jjmatchedKind = 109;
  580. return jjMoveStringLiteralDfa1_0(0x0L, 0x2000000000000000L, 0x0L);
  581. case 38:
  582. jjmatchedKind = 104;
  583. return jjMoveStringLiteralDfa1_0(0x0L, 0x100000100000000L, 0x0L);
  584. case 40:
  585. return jjStopAtPos(0, 70);
  586. case 41:
  587. return jjStopAtPos(0, 71);
  588. case 42:
  589. jjmatchedKind = 102;
  590. return jjMoveStringLiteralDfa1_0(0x0L, 0x40000000000000L, 0x0L);
  591. case 43:
  592. jjmatchedKind = 100;
  593. return jjMoveStringLiteralDfa1_0(0x0L, 0x10000400000000L, 0x0L);
  594. case 44:
  595. return jjStopAtPos(0, 77);
  596. case 45:
  597. jjmatchedKind = 101;
  598. return jjMoveStringLiteralDfa1_0(0x0L, 0x20000800000000L, 0x0L);
  599. case 46:
  600. return jjStartNfaWithStates_0(0, 78, 15);
  601. case 47:
  602. jjmatchedKind = 103;
  603. return jjMoveStringLiteralDfa1_0(0x0L, 0x80000000000000L, 0x0L);
  604. case 58:
  605. return jjStopAtPos(0, 87);
  606. case 59:
  607. return jjStopAtPos(0, 76);
  608. case 60:
  609. jjmatchedKind = 82;
  610. return jjMoveStringLiteralDfa1_0(0x0L, 0x4000400002000000L, 0x0L);
  611. case 61:
  612. jjmatchedKind = 79;
  613. return jjMoveStringLiteralDfa1_0(0x0L, 0x1000000L, 0x0L);
  614. case 62:
  615. jjmatchedKind = 80;
  616. return jjMoveStringLiteralDfa1_0(0x0L, 0x5000008000000L, 0x5L);
  617. case 63:
  618. return jjStopAtPos(0, 86);
  619. case 64:
  620. return jjMoveStringLiteralDfa1_0(0x0L, 0x8a0a8a02940a0000L, 0xaL);
  621. case 91:
  622. return jjStopAtPos(0, 74);
  623. case 93:
  624. return jjStopAtPos(0, 75);
  625. case 94:
  626. jjmatchedKind = 108;
  627. return jjMoveStringLiteralDfa1_0(0x0L, 0x1000000000000000L, 0x0L);
  628. case 97:
  629. return jjMoveStringLiteralDfa1_0(0x200L, 0x0L, 0x0L);
  630. case 98:
  631. return jjMoveStringLiteralDfa1_0(0x2c00L, 0x0L, 0x0L);
  632. case 99:
  633. return jjMoveStringLiteralDfa1_0(0x7d000L, 0x0L, 0x0L);
  634. case 100:
  635. return jjMoveStringLiteralDfa1_0(0x380000L, 0x0L, 0x0L);
  636. case 101:
  637. return jjMoveStringLiteralDfa1_0(0x1c00000L, 0x0L, 0x0L);
  638. case 102:
  639. return jjMoveStringLiteralDfa1_0(0x3e000000L, 0x0L, 0x0L);
  640. case 103:
  641. return jjMoveStringLiteralDfa1_0(0x40000000L, 0x0L, 0x0L);
  642. case 105:
  643. return jjMoveStringLiteralDfa1_0(0x1f80000000L, 0x0L, 0x0L);
  644. case 108:
  645. return jjMoveStringLiteralDfa1_0(0x2000000000L, 0x0L, 0x0L);
  646. case 110:
  647. return jjMoveStringLiteralDfa1_0(0x1c000000000L, 0x0L, 0x0L);
  648. case 112:
  649. return jjMoveStringLiteralDfa1_0(0x1e0000000000L, 0x0L, 0x0L);
  650. case 114:
  651. return jjMoveStringLiteralDfa1_0(0x200000000000L, 0x0L, 0x0L);
  652. case 115:
  653. return jjMoveStringLiteralDfa1_0(0x7c00000000000L, 0x0L, 0x0L);
  654. case 116:
  655. return jjMoveStringLiteralDfa1_0(0xf8000000000000L, 0x0L, 0x0L);
  656. case 118:
  657. return jjMoveStringLiteralDfa1_0(0x300000000000000L, 0x0L, 0x0L);
  658. case 119:
  659. return jjMoveStringLiteralDfa1_0(0x400000000000000L, 0x0L, 0x0L);
  660. case 123:
  661. return jjStopAtPos(0, 72);
  662. case 124:
  663. jjmatchedKind = 106;
  664. return jjMoveStringLiteralDfa1_0(0x0L, 0x400000040000000L, 0x0L);
  665. case 125:
  666. return jjStopAtPos(0, 73);
  667. case 126:
  668. return jjStopAtPos(0, 85);
  669. default :
  670. return jjMoveNfa_0(10, 0);
  671. }
  672. }
  673. private int jjMoveStringLiteralDfa1_0(long active0, long active1, long active2)
  674. {
  675. try { curChar = input_stream.readChar(); }
  676. catch(java.io.IOException e) {
  677. jjStopStringLiteralDfa_0(0, active0, active1, active2);
  678. return 1;
  679. }
  680. switch(curChar)
  681. {
  682. case 38:
  683. if ((active1 & 0x100000000L) != 0L)
  684. return jjStopAtPos(1, 96);
  685. break;
  686. case 43:
  687. if ((active1 & 0x400000000L) != 0L)
  688. return jjStopAtPos(1, 98);
  689. break;
  690. case 45:
  691. if ((active1 & 0x800000000L) != 0L)
  692. return jjStopAtPos(1, 99);
  693. break;
  694. case 60:
  695. if ((active1 & 0x400000000000L) != 0L)
  696. {
  697. jjmatchedKind = 110;
  698. jjmatchedPos = 1;
  699. }
  700. return jjMoveStringLiteralDfa2_0(active0, 0L, active1, 0x4000000000000000L, active2, 0L);
  701. case 61:
  702. if ((active1 & 0x1000000L) != 0L)
  703. return jjStopAtPos(1, 88);
  704. else if ((active1 & 0x2000000L) != 0L)
  705. return jjStopAtPos(1, 89);
  706. else if ((active1 & 0x8000000L) != 0L)
  707. return jjStopAtPos(1, 91);
  708. else if ((active1 & 0x20000000L) != 0L)
  709. return jjStopAtPos(1, 93);
  710. else if ((active1 & 0x10000000000000L) != 0L)
  711. return jjStopAtPos(1, 116);
  712. else if ((active1 & 0x20000000000000L) != 0L)
  713. return jjStopAtPos(1, 117);
  714. else if ((active1 & 0x40000000000000L) != 0L)
  715. return jjStopAtPos(1, 118);
  716. else if ((active1 & 0x80000000000000L) != 0L)
  717. return jjStopAtPos(1, 119);
  718. else if ((active1 & 0x100000000000000L) != 0L)
  719. return jjStopAtPos(1, 120);
  720. else if ((active1 & 0x400000000000000L) != 0L)
  721. return jjStopAtPos(1, 122);
  722. else if ((active1 & 0x1000000000000000L) != 0L)
  723. return jjStopAtPos(1, 124);
  724. else if ((active1 & 0x2000000000000000L) != 0L)
  725. return jjStopAtPos(1, 125);
  726. break;
  727. case 62:
  728. if ((active1 & 0x1000000000000L) != 0L)
  729. {
  730. jjmatchedKind = 112;
  731. jjmatchedPos = 1;
  732. }
  733. return jjMoveStringLiteralDfa2_0(active0, 0L, active1, 0x4000000000000L, active2, 0x5L);
  734. case 97:
  735. return jjMoveStringLiteralDfa2_0(active0, 0x2400200c000L, active1, 0x200000200000000L, active2, 0L);
  736. case 98:
  737. return jjMoveStringLiteralDfa2_0(active0, 0x200L, active1, 0xa0000000000L, active2, 0L);
  738. case 101:
  739. return jjMoveStringLiteralDfa2_0(active0, 0x208000080000L, active1, 0L, active2, 0L);
  740. case 102:
  741. if ((active0 & 0x80000000L) != 0L)
  742. return jjStartNfaWithStates_0(1, 31, 39);
  743. break;
  744. case 103:
  745. return jjMoveStringLiteralDfa2_0(active0, 0L, active1, 0x10020000L, active2, 0L);
  746. case 104:
  747. return jjMoveStringLiteralDfa2_0(active0, 0x430400000010000L, active1, 0L, active2, 0L);
  748. case 105:
  749. return jjMoveStringLiteralDfa2_0(active0, 0xc000000L, active1, 0L, active2, 0L);
  750. case 108:
  751. return jjMoveStringLiteralDfa2_0(active0, 0x10401000L, active1, 0x8000800004080000L, active2, 0L);
  752. case 109:
  753. return jjMoveStringLiteralDfa2_0(active0, 0x300000000L, active1, 0L, active2, 0L);
  754. case 110:
  755. return jjMoveStringLiteralDfa2_0(active0, 0x1c00800000L, active1, 0L, active2, 0L);
  756. case 111:
  757. if ((active0 & 0x100000L) != 0L)
  758. {
  759. jjmatchedKind = 20;
  760. jjmatchedPos = 1;
  761. }
  762. return jjMoveStringLiteralDfa2_0(active0, 0x300002060260400L, active1, 0x800000080000000L, active2, 0L);
  763. case 114:
  764. return jjMoveStringLiteralDfa2_0(active0, 0xc80c0000000800L, active1, 0xa000000000000L, active2, 0xaL);
  765. case 116:
  766. return jjMoveStringLiteralDfa2_0(active0, 0x1800000000000L, active1, 0L, active2, 0L);
  767. case 117:
  768. return jjMoveStringLiteralDfa2_0(active0, 0x110000000000L, active1, 0L, active2, 0L);
  769. case 119:
  770. return jjMoveStringLiteralDfa2_0(active0, 0x2000000000000L, active1, 0L, active2, 0L);
  771. case 120:
  772. return jjMoveStringLiteralDfa2_0(active0, 0x1000000L, active1, 0L, active2, 0L);
  773. case 121:
  774. return jjMoveStringLiteralDfa2_0(active0, 0x4000000002000L, active1, 0L, active2, 0L);
  775. case 124:
  776. if ((active1 & 0x40000000L) != 0L)
  777. return jjStopAtPos(1, 94);
  778. break;
  779. default :
  780. break;
  781. }
  782. return jjStartNfa_0(0, active0, active1, active2);
  783. }
  784. private int jjMoveStringLiteralDfa2_0(long old0, long active0, long old1, long active1, long old2, long active2)
  785. {
  786. if (((active0 &= old0) | (active1 &= old1) | (active2 &= old2)) == 0L)
  787. return jjStartNfa_0(0, old0, old1, old2);
  788. try { curChar = input_stream.readChar(); }
  789. catch(java.io.IOException e) {
  790. jjStopStringLiteralDfa_0(1, active0, active1, active2);
  791. return 2;
  792. }
  793. switch(curChar)
  794. {
  795. case 61:
  796. if ((active1 & 0x4000000000000000L) != 0L)
  797. return jjStopAtPos(2, 126);
  798. else if ((active2 & 0x1L) != 0L)
  799. return jjStopAtPos(2, 128);
  800. break;
  801. case 62:
  802. if ((active1 & 0x4000000000000L) != 0L)
  803. {
  804. jjmatchedKind = 114;
  805. jjmatchedPos = 2;
  806. }
  807. return jjMoveStringLiteralDfa3_0(active0, 0L, active1, 0L, active2, 0x4L);
  808. case 97:
  809. return jjMoveStringLiteralDfa3_0(active0, 0x8800000011000L, active1, 0L, active2, 0L);
  810. case 98:
  811. return jjMoveStringLiteralDfa3_0(active0, 0x100000000000L, active1, 0L, active2, 0L);
  812. case 99:
  813. return jjMoveStringLiteralDfa3_0(active0, 0x20000000000L, active1, 0L, active2, 0L);
  814. case 101:
  815. return jjMoveStringLiteralDfa3_0(active0, 0x800L, active1, 0x8000800000000000L, active2, 0L);
  816. case 102:
  817. return jjMoveStringLiteralDfa3_0(active0, 0x80000L, active1, 0L, active2, 0L);
  818. case 105:
  819. return jjMoveStringLiteralDfa3_0(active0, 0x502040000000000L, active1, 0xa0a0000000000L, active2, 0xaL);
  820. case 108:
  821. return jjMoveStringLiteralDfa3_0(active0, 0x200010002000000L, active1, 0L, active2, 0L);
  822. case 110:
  823. return jjMoveStringLiteralDfa3_0(active0, 0x400200c060000L, active1, 0x200000200000000L, active2, 0L);
  824. case 111:
  825. return jjMoveStringLiteralDfa3_0(active0, 0x480010000400L, active1, 0L, active2, 0L);
  826. case 112:
  827. return jjMoveStringLiteralDfa3_0(active0, 0x300000000L, active1, 0L, active2, 0L);
  828. case 114:
  829. if ((active0 & 0x20000000L) != 0L)
  830. return jjStartNfaWithStates_0(2, 29, 39);
  831. else if ((active1 & 0x80000000L) != 0L)
  832. {
  833. jjmatchedKind = 95;
  834. jjmatchedPos = 2;
  835. }
  836. return jjMoveStringLiteralDfa3_0(active0, 0x31000000000000L, active1, 0x800000000000000L, active2, 0L);
  837. case 115:
  838. return jjMoveStringLiteralDfa3_0(active0, 0x400404200L, active1, 0L, active2, 0L);
  839. case 116:
  840. if ((active0 & 0x800000000L) != 0L)
  841. {
  842. jjmatchedKind = 35;
  843. jjmatchedPos = 2;
  844. }
  845. else if ((active1 & 0x20000L) != 0L)
  846. {
  847. jjmatchedKind = 81;
  848. jjmatchedPos = 2;
  849. }
  850. else if ((active1 & 0x80000L) != 0L)
  851. {
  852. jjmatchedKind = 83;
  853. jjmatchedPos = 2;
  854. }
  855. return jjMoveStringLiteralDfa3_0(active0, 0x20504100a000L, active1, 0x14000000L, active2, 0L);
  856. case 117:
  857. return jjMoveStringLiteralDfa3_0(active0, 0x40000000a00000L, active1, 0L, active2, 0L);
  858. case 119:
  859. if ((active0 & 0x8000000000L) != 0L)
  860. return jjStartNfaWithStates_0(2, 39, 39);
  861. break;
  862. case 121:
  863. if ((active0 & 0x80000000000000L) != 0L)
  864. return jjStartNfaWithStates_0(2, 55, 39);
  865. break;
  866. default :
  867. break;
  868. }
  869. return jjStartNfa_0(1, active0, active1, active2);
  870. }
  871. private int jjMoveStringLiteralDfa3_0(long old0, long active0, long old1, long active1, long old2, long active2)
  872. {
  873. if (((active0 &= old0) | (active1 &= old1) | (active2 &= old2)) == 0L)
  874. return jjStartNfa_0(1, old0, old1, old2);
  875. try { curChar = input_stream.readChar(); }
  876. catch(java.io.IOException e) {
  877. jjStopStringLiteralDfa_0(2, active0, active1, active2);
  878. return 3;
  879. }
  880. switch(curChar)
  881. {
  882. case 61:
  883. if ((active2 & 0x4L) != 0L)
  884. return jjStopAtPos(3, 130);
  885. break;
  886. case 95:
  887. return jjMoveStringLiteralDfa4_0(active0, 0L, active1, 0x800000000000000L, active2, 0L);
  888. case 97:
  889. return jjMoveStringLiteralDfa4_0(active0, 0x20000001c080800L, active1, 0L, active2, 0L);
  890. case 98:
  891. return jjMoveStringLiteralDfa4_0(active0, 0x200000L, active1, 0L, active2, 0L);
  892. case 99:
  893. return jjMoveStringLiteralDfa4_0(active0, 0x4000000008000L, active1, 0L, active2, 0L);
  894. case 100:
  895. if ((active0 & 0x100000000000000L) != 0L)
  896. return jjStartNfaWithStates_0(3, 56, 39);
  897. else if ((active1 & 0x200000000L) != 0L)
  898. {
  899. jjmatchedKind = 97;
  900. jjmatchedPos = 3;
  901. }
  902. return jjMoveStringLiteralDfa4_0(active0, 0L, active1, 0x200000000000000L, active2, 0L);
  903. case 101:
  904. if ((active0 & 0x2000L) != 0L)
  905. return jjStartNfaWithStates_0(3, 13, 39);
  906. else if ((active0 & 0x4000L) != 0L)
  907. return jjStartNfaWithStates_0(3, 14, 39);
  908. else if ((active0 & 0x400000L) != 0L)
  909. return jjStartNfaWithStates_0(3, 22, 39);
  910. else if ((active0 & 0x40000000000000L) != 0L)
  911. return jjStartNfaWithStates_0(3, 54, 39);
  912. return jjMoveStringLiteralDfa4_0(active0, 0x1001000000L, active1, 0x14000000L, active2, 0L);
  913. case 102:
  914. return jjMoveStringLiteralDfa4_0(active0, 0L, active1, 0x8000800000000000L, active2, 0L);
  915. case 103:
  916. if ((active0 & 0x2000000000L) != 0L)
  917. return jjStartNfaWithStates_0(3, 37, 39);
  918. return jjMoveStringLiteralDfa4_0(active0, 0L, active1, 0xa000000000000L, active2, 0xaL);
  919. case 105:
  920. return jjMoveStringLiteralDfa4_0(active0, 0x1004000000000L, active1, 0L, active2, 0L);
  921. case 107:
  922. return jjMoveStringLiteralDfa4_0(active0, 0x20000000000L, active1, 0L, active2, 0L);
  923. case 108:
  924. if ((active0 & 0x10000000000L) != 0L)
  925. return jjStartNfaWithStates_0(3, 40, 39);
  926. return jjMoveStringLiteralDfa4_0(active0, 0x400100100000400L, active1, 0L, active2, 0L);
  927. case 109:
  928. if ((active0 & 0x800000L) != 0L)
  929. return jjStartNfaWithStates_0(3, 23, 39);
  930. break;
  931. case 110:
  932. return jjMoveStringLiteralDfa4_0(active0, 0x8000000000000L, active1, 0L, active2, 0L);
  933. case 111:
  934. if ((active0 & 0x40000000L) != 0L)
  935. return jjStartNfaWithStates_0(3, 30, 39);
  936. return jjMoveStringLiteralDfa4_0(active0, 0x30000200000000L, active1, 0L, active2, 0L);
  937. case 114:
  938. if ((active0 & 0x10000L) != 0L)
  939. return jjStartNfaWithStates_0(3, 16, 39);
  940. return jjMoveStringLiteralDfa4_0(active0, 0x400000000000L, active1, 0L, active2, 0L);
  941. case 115:
  942. return jjMoveStringLiteralDfa4_0(active0, 0x2021000L, active1, 0L, active2, 0L);
  943. case 116:
  944. return jjMoveStringLiteralDfa4_0(active0, 0x2880400040200L, active1, 0xa0000000000L, active2, 0L);
  945. case 117:
  946. return jjMoveStringLiteralDfa4_0(active0, 0x200000000000L, active1, 0L, active2, 0L);
  947. case 118:
  948. return jjMoveStringLiteralDfa4_0(active0, 0x40000000000L, active1, 0L, active2, 0L);
  949. default :
  950. break;
  951. }
  952. return jjStartNfa_0(2, active0, active1, active2);
  953. }
  954. private int jjMoveStringLiteralDfa4_0(long old0, long active0, long old1, long active1, long old2, long active2)
  955. {
  956. if (((active0 &= old0) | (active1 &= old1) | (active2 &= old2)) == 0L)
  957. return jjStartNfa_0(2, old0, old1, old2);
  958. try { curChar = input_stream.readChar(); }
  959. catch(java.io.IOException e) {
  960. jjStopStringLiteralDfa_0(3, active0, active1, active2);
  961. return 4;
  962. }
  963. switch(curChar)
  964. {
  965. case 95:
  966. return jjMoveStringLiteralDfa5_0(active0, 0L, active1, 0x200000000000000L, active2, 0L);
  967. case 97:
  968. return jjMoveStringLiteralDfa5_0(active0, 0x60400000000L, active1, 0x800000000000000L, active2, 0L);
  969. case 99:
  970. return jjMoveStringLiteralDfa5_0(active0, 0x3000000000000L, active1, 0L, active2, 0L);
  971. case 101:
  972. if ((active0 & 0x2000000L) != 0L)
  973. return jjStartNfaWithStates_0(4, 25, 39);
  974. else if ((active0 & 0x400000000000000L) != 0L)
  975. return jjStartNfaWithStates_0(4, 58, 39);
  976. return jjMoveStringLiteralDfa5_0(active0, 0x80100000400L, active1, 0L, active2, 0L);
  977. case 104:
  978. if ((active0 & 0x8000L) != 0L)
  979. return jjStartNfaWithStates_0(4, 15, 39);
  980. return jjMoveStringLiteralDfa5_0(active0, 0x4000000000000L, active1, 0xa000000000000L, active2, 0xaL);
  981. case 105:
  982. return jjMoveStringLiteralDfa5_0(active0, 0x900000040000L, active1, 0L, active2, 0L);
  983. case 107:
  984. if ((active0 & 0x800L) != 0L)
  985. return jjStartNfaWithStates_0(4, 11, 39);
  986. break;
  987. case 108:
  988. if ((active0 & 0x4000000L) != 0L)
  989. {
  990. jjmatchedKind = 26;
  991. jjmatchedPos = 4;
  992. }
  993. return jjMoveStringLiteralDfa5_0(active0, 0x8200000L, active1, 0L, active2, 0L);
  994. case 110:
  995. return jjMoveStringLiteralDfa5_0(active0, 0x1000000L, active1, 0L, active2, 0L);
  996. case 113:
  997. if ((active1 & 0x4000000L) != 0L)
  998. return jjStopAtPos(4, 90);
  999. else if ((active1 & 0x10000000L) != 0L)
  1000. return jjStopAtPos(4, 92);
  1001. break;
  1002. case 114:
  1003. return jjMoveStringLiteralDfa5_0(active0, 0x201200000200L, active1, 0L, active2, 0L);
  1004. case 115:
  1005. if ((active0 & 0x1000L) != 0L)
  1006. return jjStartNfaWithStates_0(4, 12, 39);
  1007. return jjMoveStringLiteralDfa5_0(active0, 0x8000000000000L, active1, 0L, active2, 0L);
  1008. case 116:
  1009. if ((active0 & 0x20000L) != 0L)
  1010. return jjStartNfaWithStates_0(4, 17, 39);
  1011. else if ((active0 & 0x10000000L) != 0L)
  1012. return jjStartNfaWithStates_0(4, 28, 39);
  1013. else if ((active0 & 0x400000000000L) != 0L)
  1014. return jjStartNfaWithStates_0(4, 46, 39);
  1015. return jjMoveStringLiteralDfa5_0(active0, 0x200000000000000L, active1, 0x8000800000000000L, active2, 0L);
  1016. case 117:
  1017. return jjMoveStringLiteralDfa5_0(active0, 0x80000L, active1, 0L, active2, 0L);
  1018. case 118:
  1019. return jjMoveStringLiteralDfa5_0(active0, 0x4000000000L, active1, 0L, active2, 0L);
  1020. case 119:
  1021. if ((active0 & 0x10000000000000L) != 0L)
  1022. {
  1023. jjmatchedKind = 52;
  1024. jjmatchedPos = 4;
  1025. }
  1026. return jjMoveStringLiteralDfa5_0(active0, 0x20000000000000L, active1, 0xa0000000000L, active2, 0L);
  1027. default :
  1028. break;
  1029. }
  1030. return jjStartNfa_0(3, active0, active1, active2);
  1031. }
  1032. private int jjMoveStringLiteralDfa5_0(long old0, long active0, long old1, long active1, long old2, long active2)
  1033. {
  1034. if (((active0 &= old0) | (active1 &= old1) | (active2 &= old2)) == 0L)
  1035. return jjStartNfa_0(3, old0, old1, old2);
  1036. try { curChar = input_stream.readChar(); }
  1037. catch(java.io.IOException e) {
  1038. jjStopStringLiteralDfa_0(4, active0, active1, active2);
  1039. return 5;
  1040. }
  1041. switch(curChar)
  1042. {
  1043. case 95:
  1044. return jjMoveStringLiteralDfa6_0(active0, 0L, active1, 0x8000800000000000L, active2, 0L);
  1045. case 97:
  1046. return jjMoveStringLiteralDfa6_0(active0, 0x600L, active1, 0x200000000000000L, active2, 0L);
  1047. case 99:
  1048. if ((active0 & 0x100000000000L) != 0L)
  1049. return jjStartNfaWithStates_0(5, 44, 39);
  1050. else if ((active0 & 0x800000000000L) != 0L)
  1051. return jjStartNfaWithStates_0(5, 47, 39);
  1052. return jjMoveStringLiteralDfa6_0(active0, 0x80000000000L, active1, 0L, active2, 0L);
  1053. case 100:
  1054. return jjMoveStringLiteralDfa6_0(active0, 0x1000000L, active1, 0L, active2, 0L);
  1055. case 101:
  1056. if ((active0 & 0x200000L) != 0L)
  1057. return jjStartNfaWithStates_0(5, 21, 39);
  1058. else if ((active0 & 0x4000000000L) != 0L)
  1059. return jjStartNfaWithStates_0(5, 38, 39);
  1060. break;
  1061. case 102:
  1062. return jjMoveStringLiteralDfa6_0(active0, 0x1000000000L, active1, 0L, active2, 0L);
  1063. case 103:
  1064. return jjMoveStringLiteralDfa6_0(active0, 0x20000000000L, active1, 0L, active2, 0L);
  1065. case 104:
  1066. if ((active0 & 0x2000000000000L) != 0L)
  1067. return jjStartNfaWithStates_0(5, 49, 39);
  1068. break;
  1069. case 105:
  1070. return jjMoveStringLiteralDfa6_0(active0, 0x208000000000000L, active1, 0xa0000000000L, active2, 0L);
  1071. case 108:
  1072. return jjMoveStringLiteralDfa6_0(active0, 0x8080000L, active1, 0L, active2, 0L);
  1073. case 109:
  1074. return jjMoveStringLiteralDfa6_0(active0, 0x100000000L, active1, 0L, active2, 0L);
  1075. case 110:
  1076. if ((active0 & 0x200000000000L) != 0L)
  1077. return jjStartNfaWithStates_0(5, 45, 39);
  1078. return jjMoveStringLiteralDfa6_0(active0, 0x400040000L, active1, 0L, active2, 0L);
  1079. case 114:
  1080. return jjMoveStringLiteralDfa6_0(active0, 0x4000000000000L, active1, 0L, active2, 0L);
  1081. case 115:
  1082. if ((active0 & 0x20000000000000L) != 0L)
  1083. return jjStartNfaWithStates_0(5, 53, 39);
  1084. return jjMoveStringLiteralDfa6_0(active0, 0L, active1, 0x800000000000000L, active2, 0L);
  1085. case 116:
  1086. if ((active0 & 0x200000000L) != 0L)
  1087. return jjStartNfaWithStates_0(5, 33, 39);
  1088. return jjMoveStringLiteralDfa6_0(active0, 0x1040000000000L, active1, 0xa000000000000L, active2, 0xaL);
  1089. default :
  1090. break;
  1091. }
  1092. return jjStartNfa_0(4, active0, active1, active2);
  1093. }
  1094. private int jjMoveStringLiteralDfa6_0(long old0, long active0, long old1, long active1, long old2, long active2)
  1095. {
  1096. if (((active0 &= old0) | (active1 &= old1) | (active2 &= old2)) == 0L)
  1097. return jjStartNfa_0(4, old0, old1, old2);
  1098. try { curChar = input_stream.readChar(); }
  1099. catch(java.io.IOException e) {
  1100. jjStopStringLiteralDfa_0(5, active0, active1, active2);
  1101. return 6;
  1102. }
  1103. switch(curChar)
  1104. {
  1105. case 95:
  1106. return jjMoveStringLiteralDfa7_0(active0, 0L, active1, 0xa000000000000L, active2, 0xaL);
  1107. case 97:
  1108. return jjMoveStringLiteralDfa7_0(active0, 0x1000000000L, active1, 0L, active2, 0L);
  1109. case 99:
  1110. return jjMoveStringLiteralDfa7_0(active0, 0x400000200L, active1, 0L, active2, 0L);
  1111. case 101:
  1112. if ((active0 & 0x20000000000L) != 0L)
  1113. return jjStartNfaWithStates_0(6, 41, 39);
  1114. else if ((active0 & 0x40000000000L) != 0L)
  1115. return jjStartNfaWithStates_0(6, 42, 39);
  1116. return jjMoveStringLiteralDfa7_0(active0, 0x8000100000000L, active1, 0L, active2, 0L);
  1117. case 102:
  1118. return jjMoveStringLiteralDfa7_0(active0, 0x1000000000000L, active1, 0L, active2, 0L);
  1119. case 108:
  1120. return jjMoveStringLiteralDfa7_0(active0, 0x200000000000000L, active1, 0L, active2, 0L);
  1121. case 110:
  1122. if ((active0 & 0x400L) != 0L)
  1123. return jjStartNfaWithStates_0(6, 10, 39);
  1124. break;
  1125. case 111:
  1126. return jjMoveStringLiteralDfa7_0(active0, 0x4000000000000L, active1, 0L, active2, 0L);
  1127. case 115:
  1128. if ((active0 & 0x1000000L) != 0L)
  1129. return jjStartNfaWithStates_0(6, 24, 39);
  1130. return jjMoveStringLiteralDfa7_0(active0, 0L, active1, 0x8a008a0000000000L, active2, 0L);
  1131. case 116:
  1132. if ((active0 & 0x80000L) != 0L)
  1133. return jjStartNfaWithStates_0(6, 19, 39);
  1134. return jjMoveStringLiteralDfa7_0(active0, 0x80000000000L, active1, 0L, active2, 0L);
  1135. case 117:
  1136. return jjMoveStringLiteralDfa7_0(active0, 0x40000L, active1, 0L, active2, 0L);
  1137. case 121:
  1138. if ((active0 & 0x8000000L) != 0L)
  1139. return jjStartNfaWithStates_0(6, 27, 39);
  1140. break;
  1141. default :
  1142. break;
  1143. }
  1144. return jjStartNfa_0(5, active0, active1, active2);
  1145. }
  1146. private int jjMoveStringLiteralDfa7_0(long old0, long active0, long old1, long active1, long old2, long active2)
  1147. {
  1148. if (((active0 &= old0) | (active1 &= old1) | (active2 &= old2)) == 0L)
  1149. return jjStartNfa_0(5, old0, old1, old2);
  1150. try { curChar = input_stream.readChar(); }
  1151. catch(java.io.IOException e) {
  1152. jjStopStringLiteralDfa_0(6, active0, active1, active2);
  1153. return 7;
  1154. }
  1155. switch(curChar)
  1156. {
  1157. case 99:
  1158. return jjMoveStringLiteralDfa8_0(active0, 0x1000000000L, active1, 0L, active2, 0L);
  1159. case 101:
  1160. if ((active0 & 0x40000L) != 0L)
  1161. return jjStartNfaWithStates_0(7, 18, 39);
  1162. else if ((active0 & 0x200000000000000L) != 0L)
  1163. return jjStartNfaWithStates_0(7, 57, 39);
  1164. return jjMoveStringLiteralDfa8_0(active0, 0x80400000000L, active1, 0xa0000000000L, active2, 0L);
  1165. case 104:
  1166. return jjMoveStringLiteralDfa8_0(active0, 0L, active1, 0x8000800000000000L, active2, 0L);
  1167. case 105:
  1168. return jjMoveStringLiteralDfa8_0(active0, 0L, active1, 0x800000000000000L, active2, 0L);
  1169. case 110:
  1170. return jjMoveStringLiteralDfa8_0(active0, 0xc000100000000L, active1, 0L, active2, 0L);
  1171. case 112:
  1172. if ((active0 & 0x1000000000000L) != 0L)
  1173. return jjStartNfaWithStates_0(7, 48, 39);
  1174. break;
  1175. case 115:
  1176. return jjMoveStringLiteralDfa8_0(active0, 0L, active1, 0x202000000000000L, active2, 0x2L);
  1177. case 116:
  1178. if ((active0 & 0x200L) != 0L)
  1179. return jjStartNfaWithStates_0(7, 9, 39);
  1180. break;
  1181. case 117:
  1182. return jjMoveStringLiteralDfa8_0(active0, 0L, active1, 0x8000000000000L, active2, 0x8L);
  1183. default :
  1184. break;
  1185. }
  1186. return jjStartNfa_0(6, active0, active1, active2);
  1187. }
  1188. private int jjMoveStringLiteralDfa8_0(long old0, long active0, long old1, long active1, long old2, long active2)
  1189. {
  1190. if (((active0 &= old0) | (active1 &= old1) | (active2 &= old2)) == 0L)
  1191. return jjStartNfa_0(6, old0, old1, old2);
  1192. try { curChar = input_stream.readChar(); }
  1193. catch(java.io.IOException e) {
  1194. jjStopStringLiteralDfa_0(7, active0, active1, active2);
  1195. return 8;
  1196. }
  1197. switch(curChar)
  1198. {
  1199. case 95:
  1200. return jjMoveStringLiteralDfa9_0(active0, 0L, active1, 0xa0000000000L, active2, 0L);
  1201. case 100:
  1202. if ((active0 & 0x80000000000L) != 0L)
  1203. return jjStartNfaWithStates_0(8, 43, 39);
  1204. break;
  1205. case 101:
  1206. if ((active0 & 0x1000000000L) != 0L)
  1207. return jjStartNfaWithStates_0(8, 36, 39);
  1208. break;
  1209. case 103:
  1210. return jjMoveStringLiteralDfa9_0(active0, 0L, active1, 0x800000000000000L, active2, 0L);
  1211. case 104:
  1212. return jjMoveStringLiteralDfa9_0(active0, 0L, active1, 0x2000000000000L, active2, 0x2L);
  1213. case 105:
  1214. return jjMoveStringLiteralDfa9_0(active0, 0x4000000000000L, active1, 0x8200800000000000L, active2, 0L);
  1215. case 110:
  1216. return jjMoveStringLiteralDfa9_0(active0, 0L, active1, 0x8000000000000L, active2, 0x8L);
  1217. case 111:
  1218. return jjMoveStringLiteralDfa9_0(active0, 0x400000000L, active1, 0L, active2, 0L);
  1219. case 116:
  1220. if ((active0 & 0x8000000000000L) != 0L)
  1221. return jjStartNfaWithStates_0(8, 51, 39);
  1222. return jjMoveStringLiteralDfa9_0(active0, 0x100000000L, active1, 0L, active2, 0L);
  1223. default :
  1224. break;
  1225. }
  1226. return jjStartNfa_0(7, active0, active1, active2);
  1227. }
  1228. private int jjMoveStringLiteralDfa9_0(long old0, long active0, long old1, long active1, long old2, long active2)
  1229. {
  1230. if (((active0 &= old0) | (active1 &= old1) | (active2 &= old2)) == 0L)
  1231. return jjStartNfa_0(7, old0, old1, old2);
  1232. try { curChar = input_stream.readChar(); }
  1233. catch(java.io.IOException e) {
  1234. jjStopStringLiteralDfa_0(8, active0, active1, active2);
  1235. return 9;
  1236. }
  1237. switch(curChar)
  1238. {
  1239. case 97:
  1240. return jjMoveStringLiteralDfa10_0(active0, 0L, active1, 0x20000000000L, active2, 0L);
  1241. case 102:
  1242. if ((active0 & 0x400000000L) != 0L)
  1243. return jjStartNfaWithStates_0(9, 34, 39);
  1244. return jjMoveStringLiteralDfa10_0(active0, 0L, active1, 0x8000800000000000L, active2, 0L);
  1245. case 103:
  1246. return jjMoveStringLiteralDfa10_0(active0, 0L, active1, 0x200000000000000L, active2, 0L);
  1247. case 105:
  1248. return jjMoveStringLiteralDfa10_0(active0, 0L, active1, 0x2000000000000L, active2, 0x2L);
  1249. case 110:
  1250. if ((active1 & 0x800000000000000L) != 0L)
  1251. return jjStopAtPos(9, 123);
  1252. break;
  1253. case 111:
  1254. return jjMoveStringLiteralDfa10_0(active0, 0L, active1, 0x80000000000L, active2, 0L);
  1255. case 115:
  1256. if ((active0 & 0x100000000L) != 0L)
  1257. return jjStartNfaWithStates_0(9, 32, 39);
  1258. return jjMoveStringLiteralDfa10_0(active0, 0L, active1, 0x8000000000000L, active2, 0x8L);
  1259. case 122:
  1260. return jjMoveStringLiteralDfa10_0(active0, 0x4000000000000L, active1, 0L, active2, 0L);
  1261. default :
  1262. break;