PageRenderTime 81ms CodeModel.GetById 15ms RepoModel.GetById 0ms app.codeStats 2ms

/src/ca/usask/cs/giraffe/compiler/parser/CParser.java

https://bitbucket.org/holycause/k5
Java | 8719 lines | 7345 code | 414 blank | 960 comment | 1334 complexity | f899d290bfbbc62a00ba072a61ed263c MD5 | raw file
Possible License(s): GPL-2.0
  1. /* Generated by: FreeCC 0.9.3. CParser.java */
  2. package ca.usask.cs.giraffe.compiler.parser;
  3. import ca.usask.cs.giraffe.core.GiraffeLogger;
  4. import java.util.*;
  5. @SuppressWarnings("unused")
  6. public class CParser implements CConstants {
  7. // Hastable for storing typedef types
  8. private static Set types=new HashSet();
  9. // Stack for determining when the parser
  10. // is parsing a typdef definition.
  11. private static Stack typedefParsingStack=new Stack();
  12. // Returns true if the given string is
  13. // a typedef type.
  14. private static boolean isType(String type) {
  15. return types.contains(type);
  16. }
  17. // Add a typedef type to those already defined
  18. private static void addType(String type) {
  19. types.add(type);
  20. }
  21. // Prints out all the types used in parsing the c source
  22. private static void printTypes() {
  23. for(Iterator i=types.iterator();
  24. i.hasNext();
  25. ) {
  26. GiraffeLogger.debug(""+i.next());
  27. }
  28. }
  29. private boolean buildTree=true;
  30. private boolean tokensAreNodes=true;
  31. private boolean specialTokensAreNodes=true;
  32. private java.util.ArrayList<Node>nodes=new java.util.ArrayList<Node>();
  33. private java.util.ArrayList<java.lang.Integer>marks=new java.util.ArrayList<java.lang.Integer>();
  34. private int mark;
  35. // current mark
  36. private boolean node_created;
  37. /**
  38. * Determines whether the current node was actually closed and
  39. * pushed. This should only be called in the final user action of a
  40. * node scope.
  41. */
  42. public boolean nodeCreated() {
  43. return node_created;
  44. }
  45. /**
  46. * Returns the root node of the AST. It only makes sense to call
  47. * this after a successful parse.
  48. */
  49. public Node rootNode() {
  50. return nodes.get(0);
  51. }
  52. /**
  53. * push a node onto the top of the node stack
  54. */
  55. public void pushNode(Node n) {
  56. nodes.add(n);
  57. }
  58. /**
  59. * Returns the node on the top of the stack, and remove it from the
  60. * stack.
  61. */
  62. public Node popNode() {
  63. return nodes.remove(nodes.size()-1);
  64. }
  65. /**
  66. * Returns the node currently on the top of the stack.
  67. */
  68. public Node peekNode() {
  69. return nodes.get(nodes.size()-1);
  70. }
  71. /**
  72. * Puts the node on the top of the stack. However, unlike pushNode()
  73. * it replaces the node that is currently on the top of the stack.
  74. * This is effectively equivalent to popNode() followed by pushNode(n)
  75. */
  76. public void pokeNode(Node n) {
  77. pokeNode(n,false);
  78. }
  79. /**
  80. * Puts the node on the top of the stack. If clearNodeScope is true,
  81. * it removes all the nodes in the current node scope and pushes
  82. * n onto the top. Otherwise, it simply replaces the node at the
  83. * top of the stack with n.
  84. */
  85. public void pokeNode(Node n,boolean clearNodeScope) {
  86. if (clearNodeScope) {
  87. clearNodeScope();
  88. nodes.add(n);
  89. }
  90. else {
  91. nodes.set(nodes.size()-1,n);
  92. }
  93. }
  94. /** Returns the number of children on the stack in the current node
  95. * scope.
  96. */
  97. public int nodeArity() {
  98. return nodes.size()-mark;
  99. }
  100. public void clearNodeScope() {
  101. while (nodes.size()>mark) {
  102. popNode();
  103. }
  104. }
  105. public void openNodeScope(Node n) {
  106. marks.add(mark);
  107. mark=nodes.size();
  108. n.open();
  109. }
  110. /* A definite node is constructed from a specified number of
  111. * children. That number of nodes are popped from the stack and
  112. * made the children of the definite node. Then the definite node
  113. * is pushed on to the stack. */
  114. public void closeNodeScope(Node n,int num) {
  115. mark=marks.remove(marks.size()-1);
  116. java.util.ArrayList<Node>nodes=new java.util.ArrayList<Node>();
  117. for(int i=0;
  118. i<num;
  119. i++) {
  120. nodes.add(popNode());
  121. }
  122. java.util.Collections.reverse(nodes);
  123. for(Node child : nodes) {
  124. if (specialTokensAreNodes&&(child instanceof Token)) {
  125. Token token=(Token) child;
  126. Token specialToken=token;
  127. while (specialToken!=null) {
  128. specialToken=specialToken.specialToken;
  129. }
  130. while (specialToken!=null&&specialToken!=token) {
  131. n.addChild(specialToken);
  132. specialToken=specialToken.next;
  133. }
  134. }
  135. n.addChild(child);
  136. }
  137. n.close();
  138. pushNode(n);
  139. node_created=true;
  140. }
  141. /**
  142. * A conditional node is constructed if its condition is true. All
  143. * the nodes that have been pushed since the node was opened are
  144. * made children of the conditional node, which is then pushed
  145. * on to the stack. If the condition is false the node is not
  146. * constructed and they are left on the stack.
  147. */
  148. public void closeNodeScope(Node n,boolean condition) {
  149. if (condition) {
  150. int a=nodeArity();
  151. mark=marks.remove(marks.size()-1);
  152. java.util.ArrayList<Node>nodes=new java.util.ArrayList<Node>();
  153. while (a-->0) {
  154. nodes.add(popNode());
  155. }
  156. java.util.Collections.reverse(nodes);
  157. for(Node child : nodes) {
  158. if (specialTokensAreNodes&&(child instanceof Token)) {
  159. Token token=(Token) child;
  160. Token specialToken=token;
  161. while (specialToken.specialToken!=null) {
  162. specialToken=specialToken.specialToken;
  163. }
  164. while (specialToken!=null&&specialToken!=token) {
  165. n.addChild(specialToken);
  166. specialToken=specialToken.next;
  167. }
  168. }
  169. n.addChild(child);
  170. }
  171. n.close();
  172. pushNode(n);
  173. node_created=true;
  174. }
  175. else {
  176. mark=marks.remove(marks.size()-1);
  177. node_created=false;
  178. }
  179. }
  180. public boolean getBuildTree() {
  181. return buildTree;
  182. }
  183. public void setBuildTree(boolean buildTree) {
  184. this.buildTree=buildTree;
  185. }
  186. private boolean isSpecialToken(Node n) {
  187. if (n instanceof Token) {
  188. Token t=(Token) n;
  189. return t.next!=null&&t.next.specialToken==t;
  190. }
  191. return false;
  192. }
  193. /**
  194. * @deprecated
  195. * Kludge so that existing jjtree-based code that uses
  196. * parser.jjtree.foo can work without change.
  197. */
  198. CParser jjtree=this;
  199. /** Generated Lexer. */
  200. public CLexer token_source;
  201. SimpleCharStream jj_input_stream;
  202. public void setInputSource(String inputSource) {
  203. token_source.setInputSource(inputSource);
  204. }
  205. String getInputSource() {
  206. return token_source.getInputSource();
  207. }
  208. Token current_token;
  209. /** Next token. */
  210. private Token jj_nt;
  211. private int jj_ntk;
  212. private Token jj_scanpos,jj_lastpos;
  213. private int jj_la;
  214. /** Whether we are looking ahead. */
  215. private boolean jj_lookingAhead=false;
  216. private boolean jj_semLA;
  217. private int jj_gen;
  218. final private int[] jj_la1=new int[79];
  219. static private int[] jj_la1_0;
  220. static private int[] jj_la1_1;
  221. static private int[] jj_la1_2;
  222. static private int[] jj_la1_3;
  223. static {
  224. jj_la1_init_0();
  225. jj_la1_init_1();
  226. jj_la1_init_2();
  227. jj_la1_init_3();
  228. }
  229. private static void jj_la1_init_0() {
  230. jj_la1_0=new int[]{0x0,0xa0a00000,0x100000,0xa0a00000,0x42400000,0x100000,0x0,0x0,0x40000000,0x0,0x0,0x100000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x4068c00,0x0,0x0,0x0,0x100000,0x0,0x100000,0x0,0x0,0x0,0x0,0x4068c00,0x0,0x0,0x0,0x4068c00,0x0,0x0,0x4068c00,0x0,0x8000000,0x10080000,0x1000000,0x4068c00,0x8000000,0x0,0x0,0x4068c00,0x4068c00,0x10080000,0x4068c00,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x4068c00,0x4000000,0x0,0x0,0x0,0x0,0x68c00,0x68c00,0x0,0x68c00};
  231. }
  232. private static void jj_la1_init_1() {
  233. jj_la1_1=new int[]{0x80400000,0x800,0x10,0x800,0x93669,0x10,0x400000,0x400000,0x8,0x10000000,0x20000000,0x10,0x10000000,0x80400000,0xc0400000,0x400000,0x400000,0x10000000,0x20000000,0x0,0x80400000,0x80000000,0x80400000,0x400000,0x0,0x80000000,0x10,0x0,0x10,0x10000000,0x80000000,0x10000000,0x10000000,0x84400000,0x80000000,0x0,0x80000000,0x80400000,0x80000000,0x80000000,0x80400000,0x80000000,0x4068002,0x4004,0x4100,0x80400000,0x20000,0x48002,0x2000000,0x80400000,0x80400000,0x4004,0x80400000,0x10000000,0x20000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x400000,0x0,0x0,0x80000000,0x80000000,0x80000000,0x80400000,0x400000,0x10000000,0x0};
  234. }
  235. private static void jj_la1_init_2() {
  236. jj_la1_2=new int[]{0x8,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x8,0x8,0x0,0x0,0x0,0x0,0x8,0x0,0x2,0x60400008,0x0,0x2,0x0,0x0,0x8,0x0,0x0,0xa,0x0,0x0,0x60400008,0xa,0x8,0xa,0x60400008,0x2,0x2,0x60400008,0x2,0x0,0x0,0x0,0x60400008,0x0,0x0,0x0,0x60400008,0x60400008,0x0,0x60400008,0x0,0x1ff80,0x20000,0x40000,0x80000,0x100000,0x200000,0x400000,0x1800000,0x1800000,0x1e000000,0x1e000000,0x60000000,0x60000000,0x80000008,0x80000008,0x60400008,0x60400008,0x60400008,0x0,0x2,0x2,0x0,0x0,0x0,0x0};
  237. }
  238. private static void jj_la1_init_3() {
  239. jj_la1_3=new int[]{0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1e,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1e,0x0,0x0,0x0,0x1e,0x0,0x0,0x1e,0x0,0x0,0x0,0x0,0x1e,0x0,0x0,0x0,0x1e,0x1e,0x0,0x1e,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x1,0x1e,0x1e,0x18,0x0,0x66,0x66,0x0,0x0,0x0,0x0};
  240. }
  241. final private JJCalls[] jj_2_rtns=new JJCalls[43];
  242. private boolean jj_rescan=false;
  243. private int jj_gc=0;
  244. public CParser(java.io.Reader stream) {
  245. jj_input_stream=new SimpleCharStream(stream,1,1);
  246. token_source=new CLexer(this,jj_input_stream);
  247. current_token=new Token();
  248. jj_ntk=-1;
  249. for(int i=0;
  250. i<79;
  251. i++) jj_la1[i]=-1;
  252. for(int i=0;
  253. i<jj_2_rtns.length;
  254. i++) jj_2_rtns[i]=new JJCalls();
  255. }
  256. /** Constructor with generated Token Manager. */
  257. public CParser(CLexer tm) {
  258. token_source=tm;
  259. current_token=new Token();
  260. jj_ntk=-1;
  261. for(int i=0;
  262. i<79;
  263. i++) jj_la1[i]=-1;
  264. for(int i=0;
  265. i<jj_2_rtns.length;
  266. i++) jj_2_rtns[i]=new JJCalls();
  267. }
  268. private Token jj_consume_token(int kind) throws ParseException {
  269. Token oldToken=current_token;
  270. if (current_token.next!=null) current_token=current_token.next;
  271. else current_token=current_token.next=token_source.getNextToken();
  272. jj_ntk=-1;
  273. if (current_token.kind==kind) {
  274. jj_gen++;
  275. if (++jj_gc>100) {
  276. jj_gc=0;
  277. for(int i=0;
  278. i<jj_2_rtns.length;
  279. i++) {
  280. JJCalls c=jj_2_rtns[i];
  281. while (c!=null) {
  282. if (c.gen<jj_gen) c.first=null;
  283. c=c.next;
  284. }
  285. }
  286. }
  287. if (buildTree&&tokensAreNodes) {
  288. pushNode(current_token);
  289. }
  290. return current_token;
  291. }
  292. current_token=oldToken;
  293. jj_kind=kind;
  294. throw generateParseException();
  295. }
  296. @SuppressWarnings("serial")
  297. static private final class LookaheadSuccess extends java.lang.Error {
  298. }
  299. final private LookaheadSuccess jj_ls=new LookaheadSuccess();
  300. private boolean jj_scan_token(int kind) {
  301. if (jj_scanpos==jj_lastpos) {
  302. jj_la--;
  303. if (jj_scanpos.next==null) {
  304. jj_lastpos=jj_scanpos=jj_scanpos.next=token_source.getNextToken();
  305. }
  306. else {
  307. jj_lastpos=jj_scanpos=jj_scanpos.next;
  308. }
  309. }
  310. else {
  311. jj_scanpos=jj_scanpos.next;
  312. }
  313. if (jj_rescan) {
  314. int i=0;
  315. Token tok=current_token;
  316. while (tok!=null&&tok!=jj_scanpos) {
  317. i++;
  318. tok=tok.next;
  319. }
  320. if (tok!=null) jj_add_error_token(kind,i);
  321. }
  322. if (jj_scanpos.kind!=kind) return true;
  323. if (jj_la==0&&jj_scanpos==jj_lastpos) throw jj_ls;
  324. return false;
  325. }
  326. /** Get the next Token. */
  327. final public Token getNextToken() {
  328. if (current_token.next!=null) current_token=current_token.next;
  329. else current_token=current_token.next=token_source.getNextToken();
  330. jj_ntk=-1;
  331. jj_gen++;
  332. return current_token;
  333. }
  334. /** Get the specific Token. */
  335. final public Token getToken(int index) {
  336. Token t=current_token;
  337. for(int i=0;
  338. i<index;
  339. i++) {
  340. if (t.next!=null) t=t.next;
  341. else t=t.next=token_source.getNextToken();
  342. }
  343. return t;
  344. }
  345. private int jj_ntk() {
  346. if ((jj_nt=current_token.next)==null) return(jj_ntk=(current_token.next=token_source.getNextToken()).kind);
  347. else return(jj_ntk=jj_nt.kind);
  348. }
  349. private java.util.ArrayList<int[]>jj_expentries=new java.util.ArrayList<int[]>();
  350. private int[] jj_expentry;
  351. private int jj_kind=-1;
  352. private int[] jj_lasttokens=new int[100];
  353. private int jj_endpos;
  354. private void jj_add_error_token(int kind,int pos) {
  355. if (pos>=100) return;
  356. if (pos==jj_endpos+1) {
  357. jj_lasttokens[jj_endpos++]=kind;
  358. }
  359. else if (jj_endpos!=0) {
  360. jj_expentry=new int[jj_endpos];
  361. for(int i=0;
  362. i<jj_endpos;
  363. i++) {
  364. jj_expentry[i]=jj_lasttokens[i];
  365. }
  366. jj_entries_loop:
  367. for(java.util.Iterator<int[]>it=jj_expentries.iterator();
  368. it.hasNext();
  369. ) {
  370. int[] oldentry=(int[])(it.next());
  371. if (oldentry.length==jj_expentry.length) {
  372. for(int i=0;
  373. i<jj_expentry.length;
  374. i++) {
  375. if (oldentry[i]!=jj_expentry[i]) {
  376. continue jj_entries_loop;
  377. }
  378. }
  379. jj_expentries.add(jj_expentry);
  380. break jj_entries_loop;
  381. }
  382. }
  383. if (pos!=0) jj_lasttokens[(jj_endpos=pos)-1]=kind;
  384. }
  385. }
  386. public ParseException generateParseException() {
  387. jj_expentries.clear();
  388. boolean[] la1tokens=new boolean[103];
  389. if (jj_kind>=0) {
  390. la1tokens[jj_kind]=true;
  391. jj_kind=-1;
  392. }
  393. for(int i=0;
  394. i<79;
  395. i++) {
  396. if (jj_la1[i]==jj_gen) {
  397. for(int j=0;
  398. j<32;
  399. j++) {
  400. if ((jj_la1_0[i]&(1<<j))!=0) {
  401. la1tokens[0+j]=true;
  402. }
  403. if ((jj_la1_1[i]&(1<<j))!=0) {
  404. la1tokens[32+j]=true;
  405. }
  406. if ((jj_la1_2[i]&(1<<j))!=0) {
  407. la1tokens[64+j]=true;
  408. }
  409. if ((jj_la1_3[i]&(1<<j))!=0) {
  410. la1tokens[96+j]=true;
  411. }
  412. }
  413. }
  414. }
  415. for(int i=0;
  416. i<103;
  417. i++) {
  418. if (la1tokens[i]) {
  419. jj_expentry=new int[1];
  420. jj_expentry[0]=i;
  421. jj_expentries.add(jj_expentry);
  422. }
  423. }
  424. jj_endpos=0;
  425. jj_rescan_token();
  426. jj_add_error_token(0,0);
  427. int[][] exptokseq=new int[jj_expentries.size()][];
  428. for(int i=0;
  429. i<jj_expentries.size();
  430. i++) {
  431. exptokseq[i]=(int[]) jj_expentries.get(i);
  432. }
  433. return new ParseException(current_token,exptokseq,tokenImage);
  434. }
  435. /** Enable tracing. */
  436. final public void enable_tracing() {
  437. }
  438. /** Disable tracing. */
  439. final public void disable_tracing() {
  440. }
  441. private void jj_rescan_token() {
  442. jj_rescan=true;
  443. for(int i=0;
  444. i<43;
  445. i++) {
  446. try {
  447. JJCalls p=jj_2_rtns[i];
  448. do {
  449. if (p.gen>jj_gen) {
  450. jj_la=p.arg;
  451. jj_lastpos=jj_scanpos=p.first;
  452. switch(i) {
  453. case 0:
  454. jj_3_1();
  455. break;
  456. case 1:
  457. jj_3_2();
  458. break;
  459. case 2:
  460. jj_3_3();
  461. break;
  462. case 3:
  463. jj_3_4();
  464. break;
  465. case 4:
  466. jj_3_5();
  467. break;
  468. case 5:
  469. jj_3_6();
  470. break;
  471. case 6:
  472. jj_3_7();
  473. break;
  474. case 7:
  475. jj_3_8();
  476. break;
  477. case 8:
  478. jj_3_9();
  479. break;
  480. case 9:
  481. jj_3_10();
  482. break;
  483. case 10:
  484. jj_3_11();
  485. break;
  486. case 11:
  487. jj_3_12();
  488. break;
  489. case 12:
  490. jj_3_13();
  491. break;
  492. case 13:
  493. jj_3_14();
  494. break;
  495. case 14:
  496. jj_3_15();
  497. break;
  498. case 15:
  499. jj_3_16();
  500. break;
  501. case 16:
  502. jj_3_17();
  503. break;
  504. case 17:
  505. jj_3_18();
  506. break;
  507. case 18:
  508. jj_3_19();
  509. break;
  510. case 19:
  511. jj_3_20();
  512. break;
  513. case 20:
  514. jj_3_21();
  515. break;
  516. case 21:
  517. jj_3_22();
  518. break;
  519. case 22:
  520. jj_3_23();
  521. break;
  522. case 23:
  523. jj_3_24();
  524. break;
  525. case 24:
  526. jj_3_25();
  527. break;
  528. case 25:
  529. jj_3_26();
  530. break;
  531. case 26:
  532. jj_3_27();
  533. break;
  534. case 27:
  535. jj_3_28();
  536. break;
  537. case 28:
  538. jj_3_29();
  539. break;
  540. case 29:
  541. jj_3_30();
  542. break;
  543. case 30:
  544. jj_3_31();
  545. break;
  546. case 31:
  547. jj_3_32();
  548. break;
  549. case 32:
  550. jj_3_33();
  551. break;
  552. case 33:
  553. jj_3_34();
  554. break;
  555. case 34:
  556. jj_3_35();
  557. break;
  558. case 35:
  559. jj_3_36();
  560. break;
  561. case 36:
  562. jj_3_37();
  563. break;
  564. case 37:
  565. jj_3_38();
  566. break;
  567. case 38:
  568. jj_3_39();
  569. break;
  570. case 39:
  571. jj_3_40();
  572. break;
  573. case 40:
  574. jj_3_41();
  575. break;
  576. case 41:
  577. jj_3_42();
  578. break;
  579. case 42:
  580. jj_3_43();
  581. break;
  582. }
  583. }
  584. p=p.next;
  585. }
  586. while (p!=null);
  587. }
  588. catch(LookaheadSuccess ls) {
  589. }
  590. }
  591. jj_rescan=false;
  592. }
  593. private void jj_save(int index,int xla) {
  594. JJCalls p=jj_2_rtns[index];
  595. while (p.gen>jj_gen) {
  596. if (p.next==null) {
  597. p=p.next=new JJCalls();
  598. break;
  599. }
  600. p=p.next;
  601. }
  602. p.gen=jj_gen+xla-jj_la;
  603. p.first=current_token;
  604. p.arg=xla;
  605. }
  606. static final class JJCalls {
  607. int gen;
  608. Token first;
  609. int arg;
  610. JJCalls next;
  611. }
  612. // C.jj, line 235
  613. final public void TranslationUnit() throws ParseException {
  614. // C.jj, line 237
  615. TranslationUnit node1=null;
  616. if (buildTree) {
  617. node1=new TranslationUnit();
  618. Token jjtStartToken=getToken(1);
  619. node1.setBeginLine(jjtStartToken.beginLine);
  620. node1.setBeginColumn(jjtStartToken.beginColumn);
  621. node1.setInputSource(this.getInputSource());
  622. openNodeScope(node1);
  623. }
  624. boolean hitException1=false;
  625. try {
  626. // C.jj, line 237
  627. label_1:
  628. while (true) {
  629. // C.jj, line 237
  630. // C.jj, line 237
  631. ExternalDeclaration();
  632. if (!(jj_2_1(1))) {
  633. break label_1;
  634. }
  635. }
  636. // C.jj, line 238
  637. printTypes();
  638. }
  639. catch(Exception e1) {
  640. hitException1=false;
  641. if (e1 instanceof ParseException) throw(ParseException) e1;
  642. if (e1 instanceof RuntimeException) throw(RuntimeException) e1;
  643. throw new RuntimeException(e1);
  644. }
  645. finally {
  646. if (buildTree) {
  647. if (!hitException1) {
  648. closeNodeScope(node1,nodeArity()>1);
  649. Token jjtEndToken=getToken(0);
  650. node1.setEndLine(jjtEndToken.endLine);
  651. node1.setEndColumn(jjtEndToken.endColumn);
  652. }
  653. else {
  654. clearNodeScope();
  655. mark=marks.remove(marks.size()-1);
  656. }
  657. }
  658. }
  659. }
  660. // C.jj, line 241
  661. final public void ExternalDeclaration() throws ParseException {
  662. // C.jj, line 243
  663. ExternalDeclaration node2=null;
  664. if (buildTree) {
  665. node2=new ExternalDeclaration();
  666. Token jjtStartToken=getToken(1);
  667. node2.setBeginLine(jjtStartToken.beginLine);
  668. node2.setBeginColumn(jjtStartToken.beginColumn);
  669. node2.setInputSource(this.getInputSource());
  670. openNodeScope(node2);
  671. }
  672. boolean hitException2=false;
  673. try {
  674. // C.jj, line 243
  675. if (jj_2_2(2147483647)) {
  676. // C.jj, line 243
  677. // C.jj, line 243
  678. FunctionDefinition();
  679. }
  680. else if (jj_2_3(1)) {
  681. // C.jj, line 243
  682. // C.jj, line 243
  683. Declaration();
  684. }
  685. else {
  686. jj_consume_token(-1);
  687. throw new ParseException();
  688. }
  689. }
  690. catch(Exception e2) {
  691. hitException2=false;
  692. if (e2 instanceof ParseException) throw(ParseException) e2;
  693. if (e2 instanceof RuntimeException) throw(RuntimeException) e2;
  694. throw new RuntimeException(e2);
  695. }
  696. finally {
  697. if (buildTree) {
  698. if (!hitException2) {
  699. closeNodeScope(node2,nodeArity()>1);
  700. Token jjtEndToken=getToken(0);
  701. node2.setEndLine(jjtEndToken.endLine);
  702. node2.setEndColumn(jjtEndToken.endColumn);
  703. }
  704. else {
  705. clearNodeScope();
  706. mark=marks.remove(marks.size()-1);
  707. }
  708. }
  709. }
  710. }
  711. //Removed Declaration list
  712. //Since declarations are statements now
  713. // C.jj, line 248
  714. final public void FunctionDefinition() throws ParseException {
  715. // C.jj, line 250
  716. FunctionDefinition node3=null;
  717. if (buildTree) {
  718. node3=new FunctionDefinition();
  719. Token jjtStartToken=getToken(1);
  720. node3.setBeginLine(jjtStartToken.beginLine);
  721. node3.setBeginColumn(jjtStartToken.beginColumn);
  722. node3.setInputSource(this.getInputSource());
  723. openNodeScope(node3);
  724. }
  725. boolean hitException3=false;
  726. try {
  727. // C.jj, line 250
  728. if (jj_2_4(2147483647)) {
  729. // C.jj, line 250
  730. // C.jj, line 250
  731. DeclarationSpecifiers();
  732. }
  733. // C.jj, line 250
  734. Declarator();
  735. // C.jj, line 252
  736. CompoundStatement();
  737. }
  738. catch(Exception e3) {
  739. hitException3=false;
  740. if (e3 instanceof ParseException) throw(ParseException) e3;
  741. if (e3 instanceof RuntimeException) throw(RuntimeException) e3;
  742. throw new RuntimeException(e3);
  743. }
  744. finally {
  745. if (buildTree) {
  746. if (!hitException3) {
  747. closeNodeScope(node3,nodeArity()>1);
  748. Token jjtEndToken=getToken(0);
  749. node3.setEndLine(jjtEndToken.endLine);
  750. node3.setEndColumn(jjtEndToken.endColumn);
  751. }
  752. else {
  753. clearNodeScope();
  754. mark=marks.remove(marks.size()-1);
  755. }
  756. }
  757. }
  758. }
  759. // C.jj, line 255
  760. final public void Declaration() throws ParseException {
  761. // C.jj, line 257
  762. Declaration node4=null;
  763. if (buildTree) {
  764. node4=new Declaration();
  765. Token jjtStartToken=getToken(1);
  766. node4.setBeginLine(jjtStartToken.beginLine);
  767. node4.setBeginColumn(jjtStartToken.beginColumn);
  768. node4.setInputSource(this.getInputSource());
  769. openNodeScope(node4);
  770. }
  771. boolean hitException4=false;
  772. try {
  773. // C.jj, line 257
  774. DeclarationSpecifiers();
  775. // C.jj, line 257
  776. int int1=(jj_ntk==-1)?jj_ntk():
  777. jj_ntk;
  778. if (int1==IDENTIFIER||int1==63||int1==67) {
  779. // C.jj, line 257
  780. // C.jj, line 257
  781. InitDeclaratorList();
  782. }
  783. else {
  784. jj_la1[0]=jj_gen;
  785. }
  786. // C.jj, line 257
  787. jj_consume_token(57);
  788. }
  789. catch(Exception e4) {
  790. hitException4=false;
  791. if (e4 instanceof ParseException) throw(ParseException) e4;
  792. if (e4 instanceof RuntimeException) throw(RuntimeException) e4;
  793. throw new RuntimeException(e4);
  794. }
  795. finally {
  796. if (buildTree) {
  797. if (!hitException4) {
  798. closeNodeScope(node4,nodeArity()>1);
  799. Token jjtEndToken=getToken(0);
  800. node4.setEndLine(jjtEndToken.endLine);
  801. node4.setEndColumn(jjtEndToken.endColumn);
  802. }
  803. else {
  804. clearNodeScope();
  805. mark=marks.remove(marks.size()-1);
  806. }
  807. }
  808. }
  809. }
  810. //Changed to allow mid-function declarations
  811. //Removed, but added declaration as type of Statement
  812. // C.jj, line 263
  813. final public void DeclarationList() throws ParseException {
  814. // C.jj, line 265
  815. DeclarationList node5=null;
  816. if (buildTree) {
  817. node5=new DeclarationList();
  818. Token jjtStartToken=getToken(1);
  819. node5.setBeginLine(jjtStartToken.beginLine);
  820. node5.setBeginColumn(jjtStartToken.beginColumn);
  821. node5.setInputSource(this.getInputSource());
  822. openNodeScope(node5);
  823. }
  824. boolean hitException5=false;
  825. try {
  826. // C.jj, line 265
  827. label_2:
  828. while (true) {
  829. // C.jj, line 265
  830. // C.jj, line 265
  831. Declaration();
  832. if (!(jj_2_5(2147483647))) {
  833. break label_2;
  834. }
  835. }
  836. }
  837. catch(Exception e5) {
  838. hitException5=false;
  839. if (e5 instanceof ParseException) throw(ParseException) e5;
  840. if (e5 instanceof RuntimeException) throw(RuntimeException) e5;
  841. throw new RuntimeException(e5);
  842. }
  843. finally {
  844. if (buildTree) {
  845. if (!hitException5) {
  846. closeNodeScope(node5,nodeArity()>1);
  847. Token jjtEndToken=getToken(0);
  848. node5.setEndLine(jjtEndToken.endLine);
  849. node5.setEndColumn(jjtEndToken.endColumn);
  850. }
  851. else {
  852. clearNodeScope();
  853. mark=marks.remove(marks.size()-1);
  854. }
  855. }
  856. }
  857. }
  858. // C.jj, line 268
  859. final public void DeclarationSpecifiers() throws ParseException {
  860. // C.jj, line 270
  861. DeclarationSpecifiers node6=null;
  862. if (buildTree) {
  863. node6=new DeclarationSpecifiers();
  864. Token jjtStartToken=getToken(1);
  865. node6.setBeginLine(jjtStartToken.beginLine);
  866. node6.setBeginColumn(jjtStartToken.beginColumn);
  867. node6.setInputSource(this.getInputSource());
  868. openNodeScope(node6);
  869. }
  870. boolean hitException6=false;
  871. try {
  872. switch((jj_ntk==-1)?jj_ntk():
  873. jj_ntk) {
  874. case REGISTER:
  875. case TYPEDEF:
  876. case EXTERN:
  877. case STATIC:
  878. case AUTO:
  879. // C.jj, line 270
  880. // C.jj, line 270
  881. StorageClassSpecifier();
  882. // C.jj, line 270
  883. if (jj_2_6(2147483647)) {
  884. // C.jj, line 270
  885. // C.jj, line 271
  886. DeclarationSpecifiers();
  887. }
  888. break;
  889. default:
  890. jj_la1[1]=jj_gen;
  891. if (jj_2_9(1)) {
  892. // C.jj, line 272
  893. // C.jj, line 272
  894. TypeSpecifier();
  895. // C.jj, line 272
  896. if (jj_2_7(2147483647)) {
  897. // C.jj, line 272
  898. // C.jj, line 273
  899. DeclarationSpecifiers();
  900. }
  901. }
  902. else {
  903. switch((jj_ntk==-1)?jj_ntk():
  904. jj_ntk) {
  905. case VOLATILE:
  906. case CONST:
  907. // C.jj, line 274
  908. // C.jj, line 274
  909. TypeQualifier();
  910. // C.jj, line 274
  911. if (jj_2_8(2147483647)) {
  912. // C.jj, line 274
  913. // C.jj, line 275
  914. DeclarationSpecifiers();
  915. }
  916. break;
  917. default:
  918. jj_la1[2]=jj_gen;
  919. jj_consume_token(-1);
  920. throw new ParseException();
  921. }
  922. }
  923. }
  924. }
  925. catch(Exception e6) {
  926. hitException6=false;
  927. if (e6 instanceof ParseException) throw(ParseException) e6;
  928. if (e6 instanceof RuntimeException) throw(RuntimeException) e6;
  929. throw new RuntimeException(e6);
  930. }
  931. finally {
  932. if (buildTree) {
  933. if (!hitException6) {
  934. closeNodeScope(node6,nodeArity()>1);
  935. Token jjtEndToken=getToken(0);
  936. node6.setEndLine(jjtEndToken.endLine);
  937. node6.setEndColumn(jjtEndToken.endColumn);
  938. }
  939. else {
  940. clearNodeScope();
  941. mark=marks.remove(marks.size()-1);
  942. }
  943. }
  944. }
  945. }
  946. // C.jj, line 278
  947. final public void StorageClassSpecifier() throws ParseException {
  948. // C.jj, line 280
  949. StorageClassSpecifier node7=null;
  950. if (buildTree) {
  951. node7=new StorageClassSpecifier();
  952. Token jjtStartToken=getToken(1);
  953. node7.setBeginLine(jjtStartToken.beginLine);
  954. node7.setBeginColumn(jjtStartToken.beginColumn);
  955. node7.setInputSource(this.getInputSource());
  956. openNodeScope(node7);
  957. }
  958. boolean hitException7=false;
  959. try {
  960. // C.jj, line 280
  961. switch((jj_ntk==-1)?jj_ntk():
  962. jj_ntk) {
  963. case AUTO:
  964. // C.jj, line 280
  965. // C.jj, line 280
  966. jj_consume_token(AUTO);
  967. break;
  968. case REGISTER:
  969. // C.jj, line 280
  970. // C.jj, line 280
  971. jj_consume_token(REGISTER);
  972. break;
  973. case STATIC:
  974. // C.jj, line 280
  975. // C.jj, line 280
  976. jj_consume_token(STATIC);
  977. break;
  978. case EXTERN:
  979. // C.jj, line 280
  980. // C.jj, line 280
  981. jj_consume_token(EXTERN);
  982. break;
  983. case TYPEDEF:
  984. // C.jj, line 280
  985. // C.jj, line 280
  986. jj_consume_token(TYPEDEF);
  987. // C.jj, line 281
  988. typedefParsingStack.push(Boolean.TRUE);
  989. break;
  990. default:
  991. jj_la1[3]=jj_gen;
  992. jj_consume_token(-1);
  993. throw new ParseException();
  994. }
  995. }
  996. catch(Exception e7) {
  997. hitException7=false;
  998. if (e7 instanceof ParseException) throw(ParseException) e7;
  999. if (e7 instanceof RuntimeException) throw(RuntimeException) e7;
  1000. throw new RuntimeException(e7);
  1001. }
  1002. finally {
  1003. if (buildTree) {
  1004. if (!hitException7) {
  1005. closeNodeScope(node7,nodeArity()>1);
  1006. Token jjtEndToken=getToken(0);
  1007. node7.setEndLine(jjtEndToken.endLine);
  1008. node7.setEndColumn(jjtEndToken.endColumn);
  1009. }
  1010. else {
  1011. clearNodeScope();
  1012. mark=marks.remove(marks.size()-1);
  1013. }
  1014. }
  1015. }
  1016. }
  1017. // C.jj, line 286
  1018. final public void TypeSpecifier() throws ParseException {
  1019. // C.jj, line 288
  1020. TypeSpecifier node8=null;
  1021. if (buildTree) {
  1022. node8=new TypeSpecifier();
  1023. Token jjtStartToken=getToken(1);
  1024. node8.setBeginLine(jjtStartToken.beginLine);
  1025. node8.setBeginColumn(jjtStartToken.beginColumn);
  1026. node8.setInputSource(this.getInputSource());
  1027. openNodeScope(node8);
  1028. }
  1029. boolean hitException8=false;
  1030. try {
  1031. // C.jj, line 288
  1032. switch((jj_ntk==-1)?jj_ntk():
  1033. jj_ntk) {
  1034. case VOID:
  1035. // C.jj, line 288
  1036. // C.jj, line 288
  1037. jj_consume_token(VOID);
  1038. break;
  1039. case CHAR:
  1040. // C.jj, line 288
  1041. // C.jj, line 288
  1042. jj_consume_token(CHAR);
  1043. break;
  1044. case SHORT:
  1045. // C.jj, line 288
  1046. // C.jj, line 288
  1047. jj_consume_token(SHORT);
  1048. break;
  1049. case INT:
  1050. // C.jj, line 288
  1051. // C.jj, line 288
  1052. jj_consume_token(INT);
  1053. break;
  1054. case LONG:
  1055. // C.jj, line 288
  1056. // C.jj, line 288
  1057. jj_consume_token(LONG);
  1058. break;
  1059. case FLOAT:
  1060. // C.jj, line 288
  1061. // C.jj, line 288
  1062. jj_consume_token(FLOAT);
  1063. break;
  1064. case DOUBLE:
  1065. // C.jj, line 288
  1066. // C.jj, line 288
  1067. jj_consume_token(DOUBLE);
  1068. break;
  1069. case SIGNED:
  1070. // C.jj, line 288
  1071. // C.jj, line 288
  1072. jj_consume_token(SIGNED);
  1073. break;
  1074. case BOOL:
  1075. // C.jj, line 288
  1076. // C.jj, line 288
  1077. jj_consume_token(BOOL);
  1078. break;
  1079. case UNSIGNED:
  1080. // C.jj, line 289
  1081. // C.jj, line 289
  1082. jj_consume_token(UNSIGNED);
  1083. break;
  1084. case STRUCT:
  1085. case UNION:
  1086. // C.jj, line 289
  1087. // C.jj, line 289
  1088. StructOrUnionSpecifier();
  1089. break;
  1090. case ENUM:
  1091. // C.jj, line 289
  1092. // C.jj, line 289
  1093. EnumSpecifier();
  1094. break;
  1095. default:
  1096. jj_la1[4]=jj_gen;
  1097. if (isType(getToken(1).image)) {
  1098. // C.jj, line 289
  1099. // C.jj, line 289
  1100. TypedefName();
  1101. }
  1102. else {
  1103. jj_consume_token(-1);
  1104. throw new ParseException();
  1105. }
  1106. }
  1107. }
  1108. catch(Exception e8) {
  1109. hitException8=false;
  1110. if (e8 instanceof ParseException) throw(ParseException) e8;
  1111. if (e8 instanceof RuntimeException) throw(RuntimeException) e8;
  1112. throw new RuntimeException(e8);
  1113. }
  1114. finally {
  1115. if (buildTree) {
  1116. if (!hitException8) {
  1117. closeNodeScope(node8,nodeArity()>1);
  1118. Token jjtEndToken=getToken(0);
  1119. node8.setEndLine(jjtEndToken.endLine);
  1120. node8.setEndColumn(jjtEndToken.endColumn);
  1121. }
  1122. else {
  1123. clearNodeScope();
  1124. mark=marks.remove(marks.size()-1);
  1125. }
  1126. }
  1127. }
  1128. }
  1129. // C.jj, line 292
  1130. final public void TypeQualifier() throws ParseException {
  1131. // C.jj, line 294
  1132. TypeQualifier node9=null;
  1133. if (buildTree) {
  1134. node9=new TypeQualifier();
  1135. Token jjtStartToken=getToken(1);
  1136. node9.setBeginLine(jjtStartToken.beginLine);
  1137. node9.setBeginColumn(jjtStartToken.beginColumn);
  1138. node9.setInputSource(this.getInputSource());
  1139. openNodeScope(node9);
  1140. }
  1141. boolean hitException9=false;
  1142. try {
  1143. // C.jj, line 294
  1144. switch((jj_ntk==-1)?jj_ntk():
  1145. jj_ntk) {
  1146. case CONST:
  1147. // C.jj, line 294
  1148. // C.jj, line 294
  1149. jj_consume_token(CONST);
  1150. break;
  1151. case VOLATILE:
  1152. // C.jj, line 294
  1153. // C.jj, line 294
  1154. jj_consume_token(VOLATILE);
  1155. break;
  1156. default:
  1157. jj_la1[5]=jj_gen;
  1158. jj_consume_token(-1);
  1159. throw new ParseException();
  1160. }
  1161. }
  1162. catch(Exception e9) {
  1163. hitException9=false;
  1164. if (e9 instanceof ParseException) throw(ParseException) e9;
  1165. if (e9 instanceof RuntimeException) throw(RuntimeException) e9;
  1166. throw new RuntimeException(e9);
  1167. }
  1168. finally {
  1169. if (buildTree) {
  1170. if (!hitException9) {
  1171. closeNodeScope(node9,nodeArity()>1);
  1172. Token jjtEndToken=getToken(0);
  1173. node9.setEndLine(jjtEndToken.endLine);
  1174. node9.setEndColumn(jjtEndToken.endColumn);
  1175. }
  1176. else {
  1177. clearNodeScope();
  1178. mark=marks.remove(marks.size()-1);
  1179. }
  1180. }
  1181. }
  1182. }
  1183. // C.jj, line 297
  1184. final public void StructOrUnionSpecifier() throws ParseException {
  1185. // C.jj, line 299
  1186. StructOrUnionSpecifier node10=null;
  1187. if (buildTree) {
  1188. node10=new StructOrUnionSpecifier();
  1189. Token jjtStartToken=getToken(1);
  1190. node10.setBeginLine(jjtStartToken.beginLine);
  1191. node10.setBeginColumn(jjtStartToken.beginColumn);
  1192. node10.setInputSource(this.getInputSource());
  1193. openNodeScope(node10);
  1194. }
  1195. boolean hitException10=false;
  1196. try {
  1197. // C.jj, line 299
  1198. typedefParsingStack.push(Boolean.FALSE);
  1199. // C.jj, line 303
  1200. StructOrUnion();
  1201. // C.jj, line 303
  1202. if (jj_2_10(3)) {
  1203. // C.jj, line 303
  1204. // C.jj, line 303
  1205. int int2=(jj_ntk==-1)?jj_ntk():
  1206. jj_ntk;
  1207. if (int2==IDENTIFIER) {
  1208. // C.jj, line 303
  1209. // C.jj, line 303
  1210. jj_consume_token(IDENTIFIER);
  1211. }
  1212. else {
  1213. jj_la1[6]=jj_gen;
  1214. }
  1215. // C.jj, line 303
  1216. jj_consume_token(58);
  1217. // C.jj, line 303
  1218. StructDeclarationList();
  1219. // C.jj, line 303
  1220. jj_consume_token(59);
  1221. }
  1222. else {
  1223. switch((jj_ntk==-1)?jj_ntk():
  1224. jj_ntk) {
  1225. case IDENTIFIER:
  1226. // C.jj, line 303
  1227. // C.jj, line 303
  1228. jj_consume_token(IDENTIFIER);
  1229. break;
  1230. default:
  1231. jj_la1[7]=jj_gen;
  1232. jj_consume_token(-1);
  1233. throw new ParseException();
  1234. }
  1235. }
  1236. // C.jj, line 305
  1237. typedefParsingStack.pop();
  1238. }
  1239. catch(Exception e10) {
  1240. hitException10=false;
  1241. if (e10 instanceof ParseException) throw(ParseException) e10;
  1242. if (e10 instanceof RuntimeException) throw(RuntimeException) e10;
  1243. throw new RuntimeException(e10);
  1244. }
  1245. finally {
  1246. if (buildTree) {
  1247. if (!hitException10) {
  1248. closeNodeScope(node10,nodeArity()>1);
  1249. Token jjtEndToken=getToken(0);
  1250. node10.setEndLine(jjtEndToken.endLine);
  1251. node10.setEndColumn(jjtEndToken.endColumn);
  1252. }
  1253. else {
  1254. clearNodeScope();
  1255. mark=marks.remove(marks.size()-1);
  1256. }
  1257. }
  1258. }
  1259. }
  1260. // C.jj, line 310
  1261. final public void StructOrUnion() throws ParseException {
  1262. // C.jj, line 312
  1263. StructOrUnion node11=null;
  1264. if (buildTree) {
  1265. node11=new StructOrUnion();
  1266. Token jjtStartToken=getToken(1);
  1267. node11.setBeginLine(jjtStartToken.beginLine);
  1268. node11.setBeginColumn(jjtStartToken.beginColumn);
  1269. node11.setInputSource(this.getInputSource());
  1270. openNodeScope(node11);
  1271. }
  1272. boolean hitException11=false;
  1273. try {
  1274. // C.jj, line 312
  1275. switch((jj_ntk==-1)?jj_ntk():
  1276. jj_ntk) {
  1277. case STRUCT:
  1278. // C.jj, line 312
  1279. // C.jj, line 312
  1280. jj_consume_token(STRUCT);
  1281. break;
  1282. case UNION:
  1283. // C.jj, line 312
  1284. // C.jj, line 312
  1285. jj_consume_token(UNION);
  1286. break;
  1287. default:
  1288. jj_la1[8]=jj_gen;
  1289. jj_consume_token(-1);
  1290. throw new ParseException();
  1291. }
  1292. }
  1293. catch(Exception e11) {
  1294. hitException11=false;
  1295. if (e11 instanceof ParseException) throw(ParseException) e11;
  1296. if (e11 instanceof RuntimeException) throw(RuntimeException) e11;
  1297. throw new RuntimeException(e11);
  1298. }
  1299. finally {
  1300. if (buildTree) {
  1301. if (!hitException11) {
  1302. closeNodeScope(node11,nodeArity()>1);
  1303. Token jjtEndToken=getToken(0);
  1304. node11.setEndLine(jjtEndToken.endLine);
  1305. node11.setEndColumn(jjtEndToken.endColumn);
  1306. }
  1307. else {
  1308. clearNodeScope();
  1309. mark=marks.remove(marks.size()-1);
  1310. }
  1311. }
  1312. }
  1313. }
  1314. // C.jj, line 317
  1315. final public void StructDeclarationList() throws ParseException {
  1316. // C.jj, line 319
  1317. StructDeclarationList node12=null;
  1318. if (buildTree) {
  1319. node12=new StructDeclarationList();
  1320. Token jjtStartToken=getToken(1);
  1321. node12.setBeginLine(jjtStartToken.beginLine);
  1322. node12.setBeginColumn(jjtStartToken.beginColumn);
  1323. node12.setInputSource(this.getInputSource());
  1324. openNodeScope(node12);
  1325. }
  1326. boolean hitException12=false;
  1327. try {
  1328. // C.jj, line 319
  1329. label_3:
  1330. while (true) {
  1331. // C.jj, line 319
  1332. // C.jj, line 319
  1333. StructDeclaration();
  1334. if (!(jj_2_11(1))) {
  1335. break label_3;
  1336. }
  1337. }
  1338. }
  1339. catch(Exception e12) {
  1340. hitException12=false;
  1341. if (e12 instanceof ParseException) throw(ParseException) e12;
  1342. if (e12 instanceof RuntimeException) throw(RuntimeException) e12;
  1343. throw new RuntimeException(e12);
  1344. }
  1345. finally {
  1346. if (buildTree) {
  1347. if (!hitException12) {
  1348. closeNodeScope(node12,nodeArity()>1);
  1349. Token jjtEndToken=getToken(0);
  1350. node12.setEndLine(jjtEndToken.endLine);
  1351. node12.setEndColumn(jjtEndToken.endColumn);
  1352. }
  1353. else {
  1354. clearNodeScope();
  1355. mark=marks.remove(marks.size()-1);
  1356. }
  1357. }
  1358. }
  1359. }
  1360. // C.jj, line 322
  1361. final public void InitDeclaratorList() throws ParseException {
  1362. // C.jj, line 324
  1363. InitDeclaratorList node13=null;
  1364. if (buildTree) {
  1365. node13=new InitDeclaratorList();
  1366. Token jjtStartToken=getToken(1);
  1367. node13.setBeginLine(jjtStartToken.beginLine);
  1368. node13.setBeginColumn(jjtStartToken.beginColumn);
  1369. node13.setInputSource(this.getInputSource());
  1370. openNodeScope(node13);
  1371. }
  1372. boolean hitException13=false;
  1373. try {
  1374. // C.jj, line 324
  1375. InitDeclarator();
  1376. // C.jj, line 324
  1377. label_4:
  1378. while (true) {
  1379. int int3=(jj_ntk==-1)?jj_ntk():
  1380. jj_ntk;
  1381. if (!(int3==60)) {
  1382. jj_la1[9]=jj_gen;
  1383. break label_4;
  1384. }
  1385. // C.jj, line 324
  1386. // C.jj, line 324
  1387. jj_consume_token(60);
  1388. // C.jj, line 324
  1389. InitDeclarator();
  1390. }
  1391. // C.jj, line 325
  1392. // Finished with a typedefDeclaration??
  1393. if (!(typedefParsingStack.empty())&&((Boolean) typedefParsingStack.peek()).booleanValue()) {
  1394. typedefParsingStack.pop();
  1395. }
  1396. }
  1397. catch(Exception e13) {
  1398. hitException13=false;
  1399. if (e13 instanceof ParseException) throw(ParseException) e13;
  1400. if (e13 instanceof RuntimeException) throw(RuntimeException) e13;
  1401. throw new RuntimeException(e13);
  1402. }
  1403. finally {
  1404. if (buildTree) {
  1405. if (!hitException13) {
  1406. closeNodeScope(node13,nodeArity()>1);
  1407. Token jjtEndToken=getToken(0);
  1408. node13.setEndLine(jjtEndToken.endLine);
  1409. node13.setEndColumn(jjtEndToken.endColumn);
  1410. }
  1411. else {
  1412. clearNodeScope();
  1413. mark=marks.remove(marks.size()-1);
  1414. }
  1415. }
  1416. }
  1417. }
  1418. // C.jj, line 333
  1419. final public void InitDeclarator() throws ParseException {
  1420. // C.jj, line 335
  1421. InitDeclarator node14=null;
  1422. if (buildTree) {
  1423. node14=new InitDeclarator();
  1424. Token jjtStartToken=getToken(1);
  1425. node14.setBeginLine(jjtStartToken.beginLine);
  1426. node14.setBeginColumn(jjtStartToken.beginColumn);
  1427. node14.setInputSource(this.getInputSource());
  1428. openNodeScope(node14);
  1429. }
  1430. boolean hitException14=false;
  1431. try {
  1432. // C.jj, line 335
  1433. Declarator();
  1434. // C.jj, line 335
  1435. int int4=(jj_ntk==-1)?jj_ntk():
  1436. jj_ntk;
  1437. if (int4==61) {
  1438. // C.jj, line 335
  1439. // C.jj, line 335
  1440. jj_consume_token(61);
  1441. // C.jj, line 335
  1442. Initializer();
  1443. }
  1444. else {
  1445. jj_la1[10]=jj_gen;
  1446. }
  1447. }
  1448. catch(Exception e14) {
  1449. hitException14=false;
  1450. if (e14 instanceof ParseException) throw(ParseException) e14;
  1451. if (e14 instanceof RuntimeException) throw(RuntimeException) e14;
  1452. throw new RuntimeException(e14);
  1453. }
  1454. finally {
  1455. if (buildTree) {
  1456. if (!hitException14) {
  1457. closeNodeScope(node14,nodeArity()>1);
  1458. Token jjtEndToken=getToken(0);
  1459. node14.setEndLine(jjtEndToken.endLine);
  1460. node14.setEndColumn(jjtEndToken.endColumn);
  1461. }
  1462. else {
  1463. clearNodeScope();
  1464. mark=marks.remove(marks.size()-1);
  1465. }
  1466. }
  1467. }
  1468. }
  1469. // C.jj, line 338
  1470. final public void StructDeclaration() throws ParseException {
  1471. // C.jj, line 340
  1472. StructDeclaration node15=null;
  1473. if (buildTree) {
  1474. node15=new StructDeclaration();
  1475. Token jjtStartToken=getToken(1);
  1476. node15.setBeginLine(jjtStartToken.beginLine);
  1477. node15.setBeginColumn(jjtStartToken.beginColumn);
  1478. node15.setInputSource(this.getInputSource());
  1479. openNodeScope(node15);
  1480. }
  1481. boolean hitException15=false;
  1482. try {
  1483. // C.jj, line 340
  1484. SpecifierQualifierList();
  1485. // C.jj, line 340
  1486. StructDeclaratorList();
  1487. // C.jj, line 340
  1488. jj_consume_token(57);
  1489. }
  1490. catch(Exception e15) {
  1491. hitException15=false;
  1492. if (e15 instanceof ParseException) throw(ParseException) e15;
  1493. if (e15 instanceof RuntimeException) throw(RuntimeException) e15;
  1494. throw new RuntimeException(e15);
  1495. }
  1496. finally {
  1497. if (buildTree) {
  1498. if (!hitException15) {
  1499. closeNodeScope(node15,nodeArity()>1);
  1500. Token jjtEndToken=getToken(0);
  1501. node15.setEndLine(jjtEndToken.endLine);
  1502. node15.setEndColumn(jjtEndToken.endColumn);
  1503. }
  1504. else {
  1505. clearNodeScope();
  1506. mark=marks.remove(marks.size()-1);
  1507. }
  1508. }
  1509. }
  1510. }
  1511. // C.jj, line 343
  1512. final public void SpecifierQualifierList() throws ParseException {
  1513. // C.jj, line 345
  1514. SpecifierQualifierList node16=null;
  1515. if (buildTree) {
  1516. node16=new SpecifierQualifierList();
  1517. Token jjtStartToken=getToken(1);
  1518. node16.setBeginLine(jjtStartToken.beginLine);
  1519. node16.setBeginColumn(jjtStartToken.beginColumn);
  1520. node16.setInputSource(this.getInputSource());
  1521. openNodeScope(node16);
  1522. }
  1523. boolean hitException16=false;
  1524. try {
  1525. if (jj_2_14(1)) {
  1526. // C.jj, line 345
  1527. // C.jj, line 345
  1528. TypeSpecifier();
  1529. // C.jj, line 345
  1530. if (jj_2_12(2147483647)) {
  1531. // C.jj, line 345
  1532. // C.jj, line 346
  1533. SpecifierQualifierList();
  1534. }
  1535. }
  1536. else {
  1537. switch((jj_ntk==-1)?jj_ntk():
  1538. jj_ntk) {
  1539. case VOLATILE:
  1540. case CONST:
  1541. // C.jj, line 347
  1542. // C.jj, line 347
  1543. TypeQualifier();
  1544. // C.jj, line 347
  1545. if (jj_2_13(2147483647)) {
  1546. // C.jj, line 347
  1547. // C.jj, line 348
  1548. SpecifierQualifierList();
  1549. }
  1550. break;
  1551. default:
  1552. jj_la1[11]=jj_gen;
  1553. jj_consume_token(-1);
  1554. throw new ParseException();
  1555. }
  1556. }
  1557. }
  1558. catch(Exception e16) {
  1559. hitException16=false;
  1560. if (e16 instanceof ParseException) throw(ParseException) e16;
  1561. if (e16 instanceof RuntimeException) throw(RuntimeException) e16;
  1562. throw new RuntimeException(e16);
  1563. }
  1564. finally {
  1565. if (buildTree) {
  1566. if (!hitException16) {
  1567. closeNodeScope(node16,nodeArity()>1);
  1568. Token jjtEndToken=getToken(0);
  1569. node16.setEndLine(jjtEndToken.endLine);
  1570. node16.setEndColumn(jjtEndToken.endColumn);
  1571. }
  1572. else {
  1573. clearNodeScope();
  1574. mark=marks.remove(marks.size()-1);
  1575. }
  1576. }
  1577. }
  1578. }
  1579. // C.jj, line 351
  1580. final public void StructDeclaratorList() throws ParseException {
  1581. // C.jj, line 353
  1582. StructDeclaratorList node17=null;
  1583. if (buildTree) {
  1584. node17=new StructDeclaratorList();
  1585. Token jjtStartToken=getToken(1);
  1586. node17.setBeginLine(jjtStartToken.beginLine);
  1587. node17.setBeginColumn(jjtStartToken.beginColumn);
  1588. node17.setInputSource(this.getInputSource());
  1589. openNodeScope(node17);
  1590. }
  1591. boolean hitException17=false;
  1592. try {
  1593. // C.jj, line 353
  1594. StructDeclarator();
  1595. // C.jj, line 353
  1596. label_5:
  1597. while (true) {
  1598. int int5=(jj_ntk==-1)?jj_ntk():
  1599. jj_ntk;
  1600. if (!(int5==60)) {
  1601. jj_la1[12]=jj_gen;
  1602. break label_5;
  1603. }
  1604. // C.jj, line 353
  1605. // C.jj, line 353
  1606. jj_consume_token(60);
  1607. // C.jj, line 353
  1608. StructDeclarator();
  1609. }
  1610. }
  1611. catch(Exception e17) {
  1612. hitException17=false;
  1613. if (e17 instanceof ParseException) throw(ParseException) e17;
  1614. if (e17 instanceof RuntimeException) throw(RuntimeException) e17;
  1615. throw new RuntimeException(e17);
  1616. }
  1617. finally {
  1618. if (buildTree) {
  1619. if (!hitException17) {
  1620. closeNodeScope(node17,nodeArity()>1);
  1621. Token jjtEndToken=getToken(0);
  1622. node17.setEndLine(jjtEndToken.endLine);
  1623. node17.setEndColumn(jjtEndToken.endColumn);
  1624. }
  1625. else {
  1626. clearNodeScope();
  1627. mark=marks.remove(marks.size()-1);
  1628. }
  1629. }
  1630. }
  1631. }
  1632. // C.jj, line 356
  1633. final public void StructDeclarator() throws ParseException {
  1634. // C.jj, line 358
  1635. StructDeclarator node18=null;
  1636. if (buildTree) {
  1637. node18=new StructDeclarator();
  1638. Token jjtStartToken=getToken(1);
  1639. node18.setBeginLine(jjtStartToken.beginLine);
  1640. node18.setBeginColumn(jjtStartToken.beginColumn);
  1641. node18.setInputSource(this.getInputSource());
  1642. openNodeScope(node18);
  1643. }
  1644. boolean hitException18=false;
  1645. try {
  1646. // C.jj, line 358
  1647. if (jj_2_15(3)) {
  1648. // C.jj, line 358
  1649. // C.jj, line 358
  1650. Declarator();
  1651. }
  1652. else {
  1653. switch((jj_ntk==-1)?jj_ntk():
  1654. jj_ntk) {
  1655. case IDENTIFIER:
  1656. case 62:
  1657. case 63:
  1658. case 67:
  1659. // C.jj, line 358
  1660. // C.jj, line 358
  1661. int int6=(jj_ntk==-1)?jj_ntk():
  1662. jj_ntk;
  1663. if (int6==IDENTIFIER||int6==63||int6==67) {
  1664. // C.jj, line 358
  1665. // C.jj, line 358
  1666. Declarator();
  1667. }
  1668. else {
  1669. jj_la1[13]=jj_gen;
  1670. }
  1671. // C.jj, line 358
  1672. jj_consume_token(62);
  1673. // C.jj, line 358
  1674. ConstantExpression();
  1675. break;
  1676. default:
  1677. jj_la1[14]=jj_gen;
  1678. jj_consume_token(-1);
  1679. throw new ParseException();
  1680. }
  1681. }
  1682. }
  1683. catch(Exception e18) {
  1684. hitException18=false;
  1685. if (e18 instanceof ParseException) throw(ParseException) e18;
  1686. if (e18 instanceof RuntimeException) throw(RuntimeException) e18;
  1687. throw new RuntimeException(e18);
  1688. }
  1689. finally {
  1690. if (buildTree) {
  1691. if (!hitException18) {
  1692. closeNodeScope(node18,nodeArity()>1);
  1693. Token jjtEndToken=getToken(0);
  1694. node18.setEndLine(jjtEndToken.endLine);
  1695. node18.setEndColumn(jjtEndToken.endColumn);
  1696. }
  1697. else {
  1698. clearNodeScope();
  1699. mark=marks.remove(marks.size()-1);
  1700. }
  1701. }
  1702. }
  1703. }
  1704. // C.jj, line 361
  1705. final public void EnumSpecifier() throws ParseException {
  1706. // C.jj, line 363
  1707. EnumSpecifier node19=null;
  1708. if (buildTree) {
  1709. node19=new EnumSpecifier();
  1710. Token jjtStartToken=getToken(1);
  1711. node19.setBeginLine(jjtStartToken.beginLine);
  1712. node19.setBeginColumn(jjtStartToken.beginColumn);
  1713. node19.setInputSource(this.getInputSource());
  1714. openNodeScope(node19);
  1715. }
  1716. boolean hitException19=false;
  1717. try {
  1718. // C.jj, line 363
  1719. jj_consume_token(ENUM);
  1720. // C.jj, line 363
  1721. if (jj_2_16(3)) {
  1722. // C.jj, line 363
  1723. // C.jj, line 363
  1724. int int7=(jj_ntk==-1)?jj_ntk():
  1725. jj_ntk;
  1726. if (int7==IDENTIFIER) {
  1727. // C.jj, line 363
  1728. // C.jj, line 363
  1729. jj_consume_token(IDENTIFIER);
  1730. }
  1731. else {
  1732. jj_la1[15]=jj_gen;
  1733. }
  1734. // C.jj, line 363
  1735. jj_consume_token(58);
  1736. // C.jj, line 363
  1737. EnumeratorList();
  1738. // C.jj, line 363
  1739. jj_consume_token(59);
  1740. }
  1741. else {
  1742. switch((jj_ntk==-1)?jj_ntk():
  1743. jj_ntk) {
  1744. case IDENTIFIER:
  1745. // C.jj, line 363
  1746. // C.jj, line 363
  1747. jj_consume_token(IDENTIFIER);
  1748. break;
  1749. default:
  1750. jj_la1[16]=jj_gen;
  1751. jj_consume_token(-1);
  1752. throw new ParseException();
  1753. }
  1754. }
  1755. }
  1756. catch(Exception e19) {
  1757. hitException19=false;
  1758. if (e19 instanceof ParseException) throw(ParseException) e19;
  1759. if (e19 instanceof RuntimeException) throw(RuntimeException) e19;
  1760. throw new RuntimeException(e19);
  1761. }
  1762. finally {
  1763. if (buildTree) {
  1764. if (!hitException19) {
  1765. closeNodeScope(node19,nodeArity()>1);
  1766. Token jjtEndToken=getToken(0);
  1767. node19.setEndLine(jjtEndToken.endLine);
  1768. node19.setEndColumn(jjtEndToken.endColumn);
  1769. }
  1770. else {
  1771. clearNodeScope();
  1772. mark=marks.remove(marks.size()-1);
  1773. }
  1774. }
  1775. }
  1776. }
  1777. // C.jj, line 366
  1778. final public void EnumeratorList() throws ParseException {
  1779. // C.jj, line 368
  1780. EnumeratorList node20=null;
  1781. if (buildTree) {
  1782. node20=new EnumeratorList();
  1783. Token jjtStartToken=getToken(1);
  1784. node20.setBeginLine(jjtStartToken.beginLine);
  1785. node20.setBeginColumn(jjtStartToken.beginColumn);
  1786. node20.setInputSource(this.getInputSource());
  1787. openNodeScope(node20);
  1788. }
  1789. boolean hitException20=false;
  1790. try {
  1791. // C.jj, line 368
  1792. Enumerator();
  1793. // C.jj, line 368
  1794. label_6:
  1795. while (true) {
  1796. int int8=(jj_ntk==-1)?jj_ntk():
  1797. jj_ntk;
  1798. if (!(int8==60)) {
  1799. jj_la1[17]=jj_gen;
  1800. break label_6;
  1801. }
  1802. // C.jj, line 368
  1803. // C.jj, line 368
  1804. jj_consume_token(60);
  1805. // C.jj, line 368
  1806. Enumerator();
  1807. }
  1808. }
  1809. catch(Exception e20) {
  1810. hitException20=false;
  1811. if (e20 instanceof ParseException) throw(ParseException) e20;
  1812. if (e20 instanceof RuntimeException) throw(RuntimeException) e20;
  1813. throw new RuntimeException(e20);
  1814. }
  1815. finally {
  1816. if (buildTree) {
  1817. if (!hitException20) {
  1818. closeNodeScope(node20,nodeArity()>1);
  1819. Token jjtEndToken=getToken(0);
  1820. node20.setEndLine(jjtEndToken.endLine);
  1821. node20.setEndColumn(jjtEndToken.endColumn);
  1822. }
  1823. else {
  1824. clearNodeScope();
  1825. mark=marks.remove(marks.size()-1);
  1826. }
  1827. }
  1828. }
  1829. }
  1830. // C.jj, line 371
  1831. final public void Enumerator() throws ParseException {
  1832. // C.jj, line 373
  1833. Enumerator node21=null;
  1834. if (buildTree) {
  1835. node21=new Enumerator();
  1836. Token jjtStartToken=getToken(1);
  1837. node21.setBeginLine(jjtStartToken.beginLine);
  1838. node21.setBeginColumn(jjtStartToken.beginColumn);
  1839. node21.setInputSource(this.getInputSource());
  1840. openNodeScope(node21);
  1841. }
  1842. boolean hitException21=false;
  1843. try {
  1844. // C.jj, line 373
  1845. jj_consume_token(IDENTIFIER);
  1846. // C.jj, line 373
  1847. int int9=(jj_ntk==-1)?jj_ntk():
  1848. jj_ntk;
  1849. if (int9==61) {
  1850. // C.jj, line 373
  1851. // C.jj, line 373
  1852. jj_consume_token(61);
  1853. // C.jj, line 373
  1854. ConstantExpression();
  1855. }
  1856. else {
  1857. jj_la1[18]=jj_gen;
  1858. }
  1859. }
  1860. catch(Exception e21) {
  1861. hitException21=false;
  1862. if (e21 instanceof ParseException) throw(ParseException) e21;
  1863. if (e21 instanceof RuntimeException) throw(RuntimeException) e21;
  1864. throw new RuntimeException(e21);
  1865. }
  1866. finally {
  1867. if (buildTree) {
  1868. if (!hitException21) {
  1869. closeNodeScope(node21,nodeArity()>1);
  1870. Token jjtEndToken=getToken(0);
  1871. node21.setEndLine(jjtEndToken.endLine);
  1872. node21.setEndColumn(jjtEndToken.endColumn);
  1873. }
  1874. else {
  1875. clearNodeScope();
  1876. mark=marks.remove(marks.size()-1);
  1877. }
  1878. }
  1879. }
  1880. }
  1881. // C.jj, line 376
  1882. final public void Declarator() throws ParseException {
  1883. // C.jj, line 378
  1884. Declarator node22=null;
  1885. if (buildTree) {
  1886. node22=new Declarator();
  1887. Token jjtStartToken=getToken(1);
  1888. node22.setBeginLine(jjtStartToken.beginLine);
  1889. node22.setBeginColumn(jjtStartToken.beginColumn);
  1890. node22.setInputSource(this.getInputSource());
  1891. openNodeScope(node22);
  1892. }
  1893. boolean hitException22=false;
  1894. try {
  1895. // C.jj, line 378
  1896. int int10=(jj_ntk==-1)?jj_ntk():
  1897. jj_ntk;
  1898. if (int10==67) {
  1899. // C.jj, line 378
  1900. // C.jj, line 378
  1901. Pointer();
  1902. }
  1903. else {
  1904. jj_la1[19]=jj_gen;
  1905. }
  1906. // C.jj, line 378
  1907. DirectDeclarator();
  1908. }
  1909. catch(Exception e22) {
  1910. hitException22=false;
  1911. if (e22 instanceof ParseException) throw(ParseException) e22;
  1912. if (e22 instanceof RuntimeException) throw(RuntimeException) e22;
  1913. throw new RuntimeException(e22);
  1914. }
  1915. finally {
  1916. if (buildTree) {
  1917. if (!hitException22) {
  1918. closeNodeScope(node22,nodeArity()>1);
  1919. Token jjtEndToken=getToken(0);
  1920. node22.setEndLine(jjtEndToken.endLine);
  1921. node22.setEndColumn(jjtEndToken.endColumn);
  1922. }
  1923. else {
  1924. clearNodeScope();
  1925. mark=marks.remove(marks.size()-1);
  1926. }
  1927. }
  1928. }
  1929. }
  1930. // C.jj, line 381
  1931. final public void DirectDeclarator() throws ParseException {
  1932. Token t;
  1933. // C.jj, line 383
  1934. DirectDeclarator node23=null;
  1935. if (buildTree) {
  1936. node23=new DirectDeclarator();
  1937. Token jjtStartToken=getToken(1);
  1938. node23.setBeginLine(jjtStartToken.beginLine);
  1939. node23.setBeginColumn(jjtStartToken.beginColumn);
  1940. node23.setInputSource(this.getInputSource());
  1941. openNodeScope(node23);
  1942. }
  1943. boolean hitException23=false;
  1944. try {
  1945. // C.jj, line 383
  1946. switch((jj_ntk==-1)?jj_ntk():
  1947. jj_ntk) {
  1948. case IDENTIFIER:
  1949. // C.jj, line 383
  1950. // C.jj, line 383
  1951. t=jj_consume_token(IDENTIFIER);
  1952. // C.jj, line 385
  1953. if (!(typedefParsingStack.empty())&&((Boolean) typedefParsingStack.peek()).booleanValue()) {
  1954. addType(t.image);
  1955. }
  1956. break;
  1957. case 63:
  1958. // C.jj, line 389
  1959. // C.jj, line 389
  1960. jj_consume_token(63);
  1961. // C.jj, line 389
  1962. Declarator();
  1963. // C.jj, line 389
  1964. jj_consume_token(64);
  1965. break;
  1966. default:
  1967. jj_la1[20]=jj_gen;
  1968. jj_consume_token(-1);
  1969. throw new ParseException();
  1970. }
  1971. // C.jj, line 391
  1972. typedefParsingStack.push(Boolean.FALSE);
  1973. // C.jj, line 395
  1974. label_7:
  1975. while (true) {
  1976. int int11=(jj_ntk==-1)?jj_ntk():
  1977. jj_ntk;
  1978. if (!(int11==63||int11==65)) {
  1979. jj_la1[21]=jj_gen;
  1980. break label_7;
  1981. }
  1982. // C.jj, line 393
  1983. switch((jj_ntk==-1)?jj_ntk():
  1984. jj_ntk) {
  1985. case 65:
  1986. // C.jj, line 393
  1987. // C.jj, line 393
  1988. jj_consume_token(65);
  1989. // C.jj, line 393
  1990. int int12=(jj_ntk==-1)?jj_ntk():
  1991. jj_ntk;
  1992. if (int12==INTEGER_LITERAL||int12==BOOL_LITERAL||int12==FLOATING_POINT_LITERAL||int12==CHARACTER_LITERAL||int12==STRING_LITERAL||int12==SIZEOF||int12==IDENTIFIER||int12==63||int12==67||int12==86||int12==93||int12==94||int12==97||int12==98||int12==99||int12==100) {
  1993. // C.jj, line 393
  1994. // C.jj, line 393
  1995. ConstantExpression();
  1996. }
  1997. else {
  1998. jj_la1[22]=jj_gen;
  1999. }
  2000. // C.jj, line 393
  2001. jj_consume_token(66);
  2002. break;
  2003. default:
  2004. jj_la1[24]=jj_gen;
  2005. if (jj_2_17(3)) {
  2006. // C.jj, line 394
  2007. // C.jj, line 394
  2008. jj_consume_token(63);
  2009. // C.jj, line 394
  2010. ParameterTypeList();
  2011. // C.jj, line 394
  2012. jj_consume_token(64);
  2013. }
  2014. else {
  2015. switch((jj_ntk==-1)?jj_ntk():
  2016. jj_ntk) {
  2017. case 63:
  2018. // C.jj, line 395
  2019. // C.jj, line 395
  2020. jj_consume_token(63);
  2021. // C.jj, line 395
  2022. int int13=(jj_ntk==-1)?jj_ntk():
  2023. jj_ntk;
  2024. if (int13==IDENTIFIER) {
  2025. // C.jj, line 395
  2026. // C.jj, line 395
  2027. IdentifierList();
  2028. }
  2029. else {
  2030. jj_la1[23]=jj_gen;
  2031. }
  2032. // C.jj, line 395
  2033. jj_consume_token(64);
  2034. break;
  2035. default:
  2036. jj_la1[25]=jj_gen;
  2037. jj_consume_token(-1);
  2038. throw new ParseException();
  2039. }
  2040. }
  2041. }
  2042. }
  2043. // C.jj, line 396
  2044. typedefParsingStack.pop();
  2045. }
  2046. catch(Exception e23) {
  2047. hitException23=false;
  2048. if (e23 instanceof ParseException) throw(ParseException) e23;
  2049. if (e23 instanceof RuntimeException) throw(RuntimeException) e23;
  2050. throw new RuntimeException(e23);
  2051. }
  2052. finally {
  2053. if (buildTree) {
  2054. if (!hitException23) {
  2055. closeNodeScope(node23,nodeArity()>1);
  2056. Token jjtEndToken=getToken(0);
  2057. node23.setEndLine(jjtEndToken.endLine);
  2058. node23.setEndColumn(jjtEndToken.endColumn);
  2059. }
  2060. else {
  2061. clearNodeScope();
  2062. mark=marks.remove(marks.size()-1);
  2063. }
  2064. }
  2065. }
  2066. }
  2067. // C.jj, line 399
  2068. final public void Pointer() throws ParseException {
  2069. // C.jj, line 401
  2070. Pointer node24=null;
  2071. if (buildTree) {
  2072. node24=new Pointer();
  2073. Token jjtStartToken=getToken(1);
  2074. node24.setBeginLine(jjtStartToken.beginLine);
  2075. node24.setBeginColumn(jjtStartToken.beginColumn);
  2076. node24.setInputSource(this.getInputSource());
  2077. openNodeScope(node24);
  2078. }
  2079. boolean hitException24=false;
  2080. try {
  2081. // C.jj, line 401
  2082. jj_consume_token(67);
  2083. // C.jj, line 401
  2084. int int14=(jj_ntk==-1)?jj_ntk():
  2085. jj_ntk;
  2086. if (int14==VOLATILE||int14==CONST) {
  2087. // C.jj, line 401
  2088. // C.jj, line 401
  2089. TypeQualifierList();
  2090. }
  2091. else {
  2092. jj_la1[26]=jj_gen;
  2093. }
  2094. // C.jj, line 401
  2095. int int15=(jj_ntk==-1)?jj_ntk():
  2096. jj_ntk;
  2097. if (int15==67) {
  2098. // C.jj, line 401
  2099. // C.jj, line 401
  2100. Pointer();
  2101. }
  2102. else {
  2103. jj_la1[27]=jj_gen;
  2104. }
  2105. }
  2106. catch(Exception e24) {
  2107. hitException24=false;
  2108. if (e24 instanceof ParseException) throw(ParseException) e24;
  2109. if (e24 instanceof RuntimeException) throw(RuntimeException) e24;
  2110. throw new RuntimeException(e24);
  2111. }
  2112. finally {
  2113. if (buildTree) {
  2114. if (!hitException24) {
  2115. closeNodeScope(node24,nodeArity()>1);
  2116. Token jjtEndToken=getToken(0);
  2117. node24.setEndLine(jjtEndToken.endLine);
  2118. node24.setEndColumn(jjtEndToken.endColumn);
  2119. }
  2120. else {
  2121. clearNodeScope();
  2122. mark=marks.remove(marks.size()-1);
  2123. }
  2124. }
  2125. }
  2126. }
  2127. // C.jj, line 404
  2128. final public void TypeQualifierList() throws ParseException {
  2129. // C.jj, line 406
  2130. TypeQualifierList node25=null;
  2131. if (buildTree) {
  2132. node25=new TypeQualifierList();
  2133. Token jjtStartToken=getToken(1);
  2134. node25.setBeginLine(jjtStartToken.beginLine);
  2135. node25.setBeginColumn(jjtStartToken.beginColumn);
  2136. node25.setInputSource(this.getInputSource());
  2137. openNodeScope(node25);
  2138. }
  2139. boolean hitException25=false;
  2140. try {
  2141. // C.jj, line 406
  2142. label_8:
  2143. while (true) {
  2144. // C.jj, line 406
  2145. // C.jj, line 406
  2146. TypeQualifier();
  2147. int int16=(jj_ntk==-1)?jj_ntk():
  2148. jj_ntk;
  2149. if (!(int16==VOLATILE||int16==CONST)) {
  2150. jj_la1[28]=jj_gen;
  2151. break label_8;
  2152. }
  2153. }
  2154. }
  2155. catch(Exception e25) {
  2156. hitException25=false;
  2157. if (e25 instanceof ParseException) throw(ParseException) e25;
  2158. if (e25 instanceof RuntimeException) throw(RuntimeException) e25;
  2159. throw new RuntimeException(e25);
  2160. }
  2161. finally {
  2162. if (buildTree) {
  2163. if (!hitException25) {
  2164. closeNodeScope(node25,nodeArity()>1);
  2165. Token jjtEndToken=getToken(0);
  2166. node25.setEndLine(jjtEndToken.endLine);
  2167. node25.setEndColumn(jjtEndToken.endColumn);
  2168. }
  2169. else {
  2170. clearNodeScope();
  2171. mark=marks.remove(marks.size()-1);
  2172. }
  2173. }
  2174. }
  2175. }
  2176. // C.jj, line 409
  2177. final public void ParameterTypeList() throws ParseException {
  2178. // C.jj, line 411
  2179. ParameterTypeList node26=null;
  2180. if (buildTree) {
  2181. node26=new ParameterTypeList();
  2182. Token jjtStartToken=getToken(1);
  2183. node26.setBeginLine(jjtStartToken.beginLine);
  2184. node26.setBeginColumn(jjtStartToken.beginColumn);
  2185. node26.setInputSource(this.getInputSource());
  2186. openNodeScope(node26);
  2187. }
  2188. boolean hitException26=false;
  2189. try {
  2190. // C.jj, line 411
  2191. ParameterList();
  2192. // C.jj, line 411
  2193. int int17=(jj_ntk==-1)?jj_ntk():
  2194. jj_ntk;
  2195. if (int17==60) {
  2196. // C.jj, line 411
  2197. // C.jj, line 411
  2198. jj_consume_token(60);
  2199. // C.jj, line 411
  2200. jj_consume_token(68);
  2201. }
  2202. else {
  2203. jj_la1[29]=jj_gen;
  2204. }
  2205. }
  2206. catch(Exception e26) {
  2207. hitException26=false;
  2208. if (e26 instanceof ParseException) throw(ParseException) e26;
  2209. if (e26 instanceof RuntimeException) throw(RuntimeException) e26;
  2210. throw new RuntimeException(e26);
  2211. }
  2212. finally {
  2213. if (buildTree) {
  2214. if (!hitException26) {
  2215. closeNodeScope(node26,nodeArity()>1);
  2216. Token jjtEndToken=getToken(0);
  2217. node26.setEndLine(jjtEndToken.endLine);
  2218. node26.setEndColumn(jjtEndToken.endColumn);
  2219. }
  2220. else {
  2221. clearNodeScope();
  2222. mark=marks.remove(marks.size()-1);
  2223. }
  2224. }
  2225. }
  2226. }
  2227. // C.jj, line 414
  2228. final public void ParameterList() throws ParseException {
  2229. // C.jj, line 416
  2230. ParameterList node27=null;
  2231. if (buildTree) {
  2232. node27=new ParameterList();
  2233. Token jjtStartToken=getToken(1);
  2234. node27.setBeginLine(jjtStartToken.beginLine);
  2235. node27.setBeginColumn(jjtStartToken.beginColumn);
  2236. node27.setInputSource(this.getInputSource());
  2237. openNodeScope(node27);
  2238. }
  2239. boolean hitException27=false;
  2240. try {
  2241. // C.jj, line 416
  2242. ParameterDeclaration();
  2243. // C.jj, line 416
  2244. label_9:
  2245. while (true) {
  2246. if (!(jj_2_18(2))) {
  2247. break label_9;
  2248. }
  2249. // C.jj, line 416
  2250. // C.jj, line 416
  2251. jj_consume_token(60);
  2252. // C.jj, line 416
  2253. ParameterDeclaration();
  2254. }
  2255. }
  2256. catch(Exception e27) {
  2257. hitException27=false;
  2258. if (e27 instanceof ParseException) throw(ParseException) e27;
  2259. if (e27 instanceof RuntimeException) throw(RuntimeException) e27;
  2260. throw new RuntimeException(e27);
  2261. }
  2262. finally {
  2263. if (buildTree) {
  2264. if (!hitException27) {
  2265. closeNodeScope(node27,nodeArity()>1);
  2266. Token jjtEndToken=getToken(0);
  2267. node27.setEndLine(jjtEndToken.endLine);
  2268. node27.setEndColumn(jjtEndToken.endColumn);
  2269. }
  2270. else {
  2271. clearNodeScope();
  2272. mark=marks.remove(marks.size()-1);
  2273. }
  2274. }
  2275. }
  2276. }
  2277. // C.jj, line 419
  2278. final public void ParameterDeclaration() throws ParseException {
  2279. // C.jj, line 421
  2280. ParameterDeclaration node28=null;
  2281. if (buildTree) {
  2282. node28=new ParameterDeclaration();
  2283. Token jjtStartToken=getToken(1);
  2284. node28.setBeginLine(jjtStartToken.beginLine);
  2285. node28.setBeginColumn(jjtStartToken.beginColumn);
  2286. node28.setInputSource(this.getInputSource());
  2287. openNodeScope(node28);
  2288. }
  2289. boolean hitException28=false;
  2290. try {
  2291. // C.jj, line 421
  2292. DeclarationSpecifiers();
  2293. // C.jj, line 421
  2294. if (jj_2_19(2147483647)) {
  2295. // C.jj, line 421
  2296. // C.jj, line 421
  2297. Declarator();
  2298. }
  2299. else {
  2300. // C.jj, line 421
  2301. // C.jj, line 421
  2302. int int18=(jj_ntk==-1)?jj_ntk():
  2303. jj_ntk;
  2304. if (int18==63||int18==65||int18==67) {
  2305. // C.jj, line 421
  2306. // C.jj, line 421
  2307. AbstractDeclarator();
  2308. }
  2309. else {
  2310. jj_la1[30]=jj_gen;
  2311. }
  2312. }
  2313. }
  2314. catch(Exception e28) {
  2315. hitException28=false;
  2316. if (e28 instanceof ParseException) throw(ParseException) e28;
  2317. if (e28 instanceof RuntimeException) throw(RuntimeException) e28;
  2318. throw new RuntimeException(e28);
  2319. }
  2320. finally {
  2321. if (buildTree) {
  2322. if (!hitException28) {
  2323. closeNodeScope(node28,nodeArity()>1);
  2324. Token jjtEndToken=getToken(0);
  2325. node28.setEndLine(jjtEndToken.endLine);
  2326. node28.setEndColumn(jjtEndToken.endColumn);
  2327. }
  2328. else {
  2329. clearNodeScope();
  2330. mark=marks.remove(marks.size()-1);
  2331. }
  2332. }
  2333. }
  2334. }
  2335. // C.jj, line 424
  2336. final public void IdentifierList() throws ParseException {
  2337. // C.jj, line 426
  2338. IdentifierList node29=null;
  2339. if (buildTree) {
  2340. node29=new IdentifierList();
  2341. Token jjtStartToken=getToken(1);
  2342. node29.setBeginLine(jjtStartToken.beginLine);
  2343. node29.setBeginColumn(jjtStartToken.beginColumn);
  2344. node29.setInputSource(this.getInputSource());
  2345. openNodeScope(node29);
  2346. }
  2347. boolean hitException29=false;
  2348. try {
  2349. // C.jj, line 426
  2350. jj_consume_token(IDENTIFIER);
  2351. // C.jj, line 426
  2352. label_10:
  2353. while (true) {
  2354. int int19=(jj_ntk==-1)?jj_ntk():
  2355. jj_ntk;
  2356. if (!(int19==60)) {
  2357. jj_la1[31]=jj_gen;
  2358. break label_10;
  2359. }
  2360. // C.jj, line 426
  2361. // C.jj, line 426
  2362. jj_consume_token(60);
  2363. // C.jj, line 426
  2364. jj_consume_token(IDENTIFIER);
  2365. }
  2366. }
  2367. catch(Exception e29) {
  2368. hitException29=false;
  2369. if (e29 instanceof ParseException) throw(ParseException) e29;
  2370. if (e29 instanceof RuntimeException) throw(RuntimeException) e29;
  2371. throw new RuntimeException(e29);
  2372. }
  2373. finally {
  2374. if (buildTree) {
  2375. if (!hitException29) {
  2376. closeNodeScope(node29,nodeArity()>1);
  2377. Token jjtEndToken=getToken(0);
  2378. node29.setEndLine(jjtEndToken.endLine);
  2379. node29.setEndColumn(jjtEndToken.endColumn);
  2380. }
  2381. else {
  2382. clearNodeScope();
  2383. mark=marks.remove(marks.size()-1);
  2384. }
  2385. }
  2386. }
  2387. }
  2388. // C.jj, line 429
  2389. final public void Initializer() throws ParseException {
  2390. // C.jj, line 431
  2391. Initializer node30=null;
  2392. if (buildTree) {
  2393. node30=new Initializer();
  2394. Token jjtStartToken=getToken(1);
  2395. node30.setBeginLine(jjtStartToken.beginLine);
  2396. node30.setBeginColumn(jjtStartToken.beginColumn);
  2397. node30.setInputSource(this.getInputSource());
  2398. openNodeScope(node30);
  2399. }
  2400. boolean hitException30=false;
  2401. try {
  2402. // C.jj, line 431
  2403. switch((jj_ntk==-1)?jj_ntk():
  2404. jj_ntk) {
  2405. case INTEGER_LITERAL:
  2406. case BOOL_LITERAL:
  2407. case FLOATING_POINT_LITERAL:
  2408. case CHARACTER_LITERAL:
  2409. case STRING_LITERAL:
  2410. case SIZEOF:
  2411. case IDENTIFIER:
  2412. case 63:
  2413. case 67:
  2414. case 86:
  2415. case 93:
  2416. case 94:
  2417. case 97:
  2418. case 98:
  2419. case 99:
  2420. case 100:
  2421. // C.jj, line 431
  2422. // C.jj, line 431
  2423. AssignmentExpression();
  2424. break;
  2425. case 58:
  2426. // C.jj, line 432
  2427. // C.jj, line 432
  2428. jj_consume_token(58);
  2429. // C.jj, line 432
  2430. InitializerList();
  2431. // C.jj, line 432
  2432. int int20=(jj_ntk==-1)?jj_ntk():
  2433. jj_ntk;
  2434. if (int20==60) {
  2435. // C.jj, line 432
  2436. // C.jj, line 432
  2437. jj_consume_token(60);
  2438. }
  2439. else {
  2440. jj_la1[32]=jj_gen;
  2441. }
  2442. // C.jj, line 432
  2443. jj_consume_token(59);
  2444. break;
  2445. default:
  2446. jj_la1[33]=jj_gen;
  2447. jj_consume_token(-1);
  2448. throw new ParseException();
  2449. }
  2450. }
  2451. catch(Exception e30) {
  2452. hitException30=false;
  2453. if (e30 instanceof ParseException) throw(ParseException) e30;
  2454. if (e30 instanceof RuntimeException) throw(RuntimeException) e30;
  2455. throw new RuntimeException(e30);
  2456. }
  2457. finally {
  2458. if (buildTree) {
  2459. if (!hitException30) {
  2460. closeNodeScope(node30,nodeArity()>1);
  2461. Token jjtEndToken=getToken(0);
  2462. node30.setEndLine(jjtEndToken.endLine);
  2463. node30.setEndColumn(jjtEndToken.endColumn);
  2464. }
  2465. else {
  2466. clearNodeScope();
  2467. mark=marks.remove(marks.size()-1);
  2468. }
  2469. }
  2470. }
  2471. }
  2472. // C.jj, line 435
  2473. final public void InitializerList() throws ParseException {
  2474. // C.jj, line 437
  2475. InitializerList node31=null;
  2476. if (buildTree) {
  2477. node31=new InitializerList();
  2478. Token jjtStartToken=getToken(1);
  2479. node31.setBeginLine(jjtStartToken.beginLine);
  2480. node31.setBeginColumn(jjtStartToken.beginColumn);
  2481. node31.setInputSource(this.getInputSource());
  2482. openNodeScope(node31);
  2483. }
  2484. boolean hitException31=false;
  2485. try {
  2486. // C.jj, line 437
  2487. Initializer();
  2488. // C.jj, line 437
  2489. label_11:
  2490. while (true) {
  2491. if (!(jj_2_20(2))) {
  2492. break label_11;
  2493. }
  2494. // C.jj, line 437
  2495. // C.jj, line 437
  2496. jj_consume_token(60);
  2497. // C.jj, line 437
  2498. Initializer();
  2499. }
  2500. }
  2501. catch(Exception e31) {
  2502. hitException31=false;
  2503. if (e31 instanceof ParseException) throw(ParseException) e31;
  2504. if (e31 instanceof RuntimeException) throw(RuntimeException) e31;
  2505. throw new RuntimeException(e31);
  2506. }
  2507. finally {
  2508. if (buildTree) {
  2509. if (!hitException31) {
  2510. closeNodeScope(node31,nodeArity()>1);
  2511. Token jjtEndToken=getToken(0);
  2512. node31.setEndLine(jjtEndToken.endLine);
  2513. node31.setEndColumn(jjtEndToken.endColumn);
  2514. }
  2515. else {
  2516. clearNodeScope();
  2517. mark=marks.remove(marks.size()-1);
  2518. }
  2519. }
  2520. }
  2521. }
  2522. // C.jj, line 440
  2523. final public void TypeName() throws ParseException {
  2524. // C.jj, line 442
  2525. TypeName node32=null;
  2526. if (buildTree) {
  2527. node32=new TypeName();
  2528. Token jjtStartToken=getToken(1);
  2529. node32.setBeginLine(jjtStartToken.beginLine);
  2530. node32.setBeginColumn(jjtStartToken.beginColumn);
  2531. node32.setInputSource(this.getInputSource());
  2532. openNodeScope(node32);
  2533. }
  2534. boolean hitException32=false;
  2535. try {
  2536. // C.jj, line 442
  2537. SpecifierQualifierList();
  2538. // C.jj, line 442
  2539. int int21=(jj_ntk==-1)?jj_ntk():
  2540. jj_ntk;
  2541. if (int21==63||int21==65||int21==67) {
  2542. // C.jj, line 442
  2543. // C.jj, line 442
  2544. AbstractDeclarator();
  2545. }
  2546. else {
  2547. jj_la1[34]=jj_gen;
  2548. }
  2549. }
  2550. catch(Exception e32) {
  2551. hitException32=false;
  2552. if (e32 instanceof ParseException) throw(ParseException) e32;
  2553. if (e32 instanceof RuntimeException) throw(RuntimeException) e32;
  2554. throw new RuntimeException(e32);
  2555. }
  2556. finally {
  2557. if (buildTree) {
  2558. if (!hitException32) {
  2559. closeNodeScope(node32,nodeArity()>1);
  2560. Token jjtEndToken=getToken(0);
  2561. node32.setEndLine(jjtEndToken.endLine);
  2562. node32.setEndColumn(jjtEndToken.endColumn);
  2563. }
  2564. else {
  2565. clearNodeScope();
  2566. mark=marks.remove(marks.size()-1);
  2567. }
  2568. }
  2569. }
  2570. }
  2571. // C.jj, line 446
  2572. final public void AbstractDeclarator() throws ParseException {
  2573. // C.jj, line 448
  2574. AbstractDeclarator node33=null;
  2575. if (buildTree) {
  2576. node33=new AbstractDeclarator();
  2577. Token jjtStartToken=getToken(1);
  2578. node33.setBeginLine(jjtStartToken.beginLine);
  2579. node33.setBeginColumn(jjtStartToken.beginColumn);
  2580. node33.setInputSource(this.getInputSource());
  2581. openNodeScope(node33);
  2582. }
  2583. boolean hitException33=false;
  2584. try {
  2585. // C.jj, line 448
  2586. if (jj_2_21(3)) {
  2587. // C.jj, line 448
  2588. // C.jj, line 448
  2589. Pointer();
  2590. }
  2591. else {
  2592. switch((jj_ntk==-1)?jj_ntk():
  2593. jj_ntk) {
  2594. case 63:
  2595. case 65:
  2596. case 67:
  2597. // C.jj, line 449
  2598. // C.jj, line 449
  2599. int int22=(jj_ntk==-1)?jj_ntk():
  2600. jj_ntk;
  2601. if (int22==67) {
  2602. // C.jj, line 449
  2603. // C.jj, line 449
  2604. Pointer();
  2605. }
  2606. else {
  2607. jj_la1[35]=jj_gen;
  2608. }
  2609. // C.jj, line 449
  2610. DirectAbstractDeclarator();
  2611. break;
  2612. default:
  2613. jj_la1[36]=jj_gen;
  2614. jj_consume_token(-1);
  2615. throw new ParseException();
  2616. }
  2617. }
  2618. }
  2619. catch(Exception e33) {
  2620. hitException33=false;
  2621. if (e33 instanceof ParseException) throw(ParseException) e33;
  2622. if (e33 instanceof RuntimeException) throw(RuntimeException) e33;
  2623. throw new RuntimeException(e33);
  2624. }
  2625. finally {
  2626. if (buildTree) {
  2627. if (!hitException33) {
  2628. closeNodeScope(node33,nodeArity()>1);
  2629. Token jjtEndToken=getToken(0);
  2630. node33.setEndLine(jjtEndToken.endLine);
  2631. node33.setEndColumn(jjtEndToken.endColumn);
  2632. }
  2633. else {
  2634. clearNodeScope();
  2635. mark=marks.remove(marks.size()-1);
  2636. }
  2637. }
  2638. }
  2639. }
  2640. // C.jj, line 452
  2641. final public void DirectAbstractDeclarator() throws ParseException {
  2642. // C.jj, line 454
  2643. DirectAbstractDeclarator node34=null;
  2644. if (buildTree) {
  2645. node34=new DirectAbstractDeclarator();
  2646. Token jjtStartToken=getToken(1);
  2647. node34.setBeginLine(jjtStartToken.beginLine);
  2648. node34.setBeginColumn(jjtStartToken.beginColumn);
  2649. node34.setInputSource(this.getInputSource());
  2650. openNodeScope(node34);
  2651. }
  2652. boolean hitException34=false;
  2653. try {
  2654. // C.jj, line 454
  2655. if (jj_2_23(2)) {
  2656. // C.jj, line 454
  2657. // C.jj, line 454
  2658. jj_consume_token(63);
  2659. // C.jj, line 454
  2660. AbstractDeclarator();
  2661. // C.jj, line 454
  2662. jj_consume_token(64);
  2663. }
  2664. else {
  2665. switch((jj_ntk==-1)?jj_ntk():
  2666. jj_ntk) {
  2667. case 65:
  2668. // C.jj, line 455
  2669. // C.jj, line 455
  2670. jj_consume_token(65);
  2671. // C.jj, line 455
  2672. int int23=(jj_ntk==-1)?jj_ntk():
  2673. jj_ntk;
  2674. if (int23==INTEGER_LITERAL||int23==BOOL_LITERAL||int23==FLOATING_POINT_LITERAL||int23==CHARACTER_LITERAL||int23==STRING_LITERAL||int23==SIZEOF||int23==IDENTIFIER||int23==63||int23==67||int23==86||int23==93||int23==94||int23==97||int23==98||int23==99||int23==100) {
  2675. // C.jj, line 455
  2676. // C.jj, line 455
  2677. ConstantExpression();
  2678. }
  2679. else {
  2680. jj_la1[37]=jj_gen;
  2681. }
  2682. // C.jj, line 455
  2683. jj_consume_token(66);
  2684. break;
  2685. case 63:
  2686. // C.jj, line 456
  2687. // C.jj, line 456
  2688. jj_consume_token(63);
  2689. // C.jj, line 456
  2690. if (jj_2_22(1)) {
  2691. // C.jj, line 456
  2692. // C.jj, line 456
  2693. ParameterTypeList();
  2694. }
  2695. // C.jj, line 456
  2696. jj_consume_token(64);
  2697. break;
  2698. default:
  2699. jj_la1[38]=jj_gen;
  2700. jj_consume_token(-1);
  2701. throw new ParseException();
  2702. }
  2703. }
  2704. // C.jj, line 458
  2705. label_12:
  2706. while (true) {
  2707. int int24=(jj_ntk==-1)?jj_ntk():
  2708. jj_ntk;
  2709. if (!(int24==63||int24==65)) {
  2710. jj_la1[39]=jj_gen;
  2711. break label_12;
  2712. }
  2713. // C.jj, line 458
  2714. switch((jj_ntk==-1)?jj_ntk():
  2715. jj_ntk) {
  2716. case 65:
  2717. // C.jj, line 458
  2718. // C.jj, line 458
  2719. jj_consume_token(65);
  2720. // C.jj, line 458
  2721. int int25=(jj_ntk==-1)?jj_ntk():
  2722. jj_ntk;
  2723. if (int25==INTEGER_LITERAL||int25==BOOL_LITERAL||int25==FLOATING_POINT_LITERAL||int25==CHARACTER_LITERAL||int25==STRING_LITERAL||int25==SIZEOF||int25==IDENTIFIER||int25==63||int25==67||int25==86||int25==93||int25==94||int25==97||int25==98||int25==99||int25==100) {
  2724. // C.jj, line 458
  2725. // C.jj, line 458
  2726. ConstantExpression();
  2727. }
  2728. else {
  2729. jj_la1[40]=jj_gen;
  2730. }
  2731. // C.jj, line 458
  2732. jj_consume_token(66);
  2733. break;
  2734. case 63:
  2735. // C.jj, line 458
  2736. // C.jj, line 458
  2737. jj_consume_token(63);
  2738. // C.jj, line 458
  2739. if (jj_2_24(1)) {
  2740. // C.jj, line 458
  2741. // C.jj, line 458
  2742. ParameterTypeList();
  2743. }
  2744. // C.jj, line 458
  2745. jj_consume_token(64);
  2746. break;
  2747. default:
  2748. jj_la1[41]=jj_gen;
  2749. jj_consume_token(-1);
  2750. throw new ParseException();
  2751. }
  2752. }
  2753. }
  2754. catch(Exception e34) {
  2755. hitException34=false;
  2756. if (e34 instanceof ParseException) throw(ParseException) e34;
  2757. if (e34 instanceof RuntimeException) throw(RuntimeException) e34;
  2758. throw new RuntimeException(e34);
  2759. }
  2760. finally {
  2761. if (buildTree) {
  2762. if (!hitException34) {
  2763. closeNodeScope(node34,nodeArity()>1);
  2764. Token jjtEndToken=getToken(0);
  2765. node34.setEndLine(jjtEndToken.endLine);
  2766. node34.setEndColumn(jjtEndToken.endColumn);
  2767. }
  2768. else {
  2769. clearNodeScope();
  2770. mark=marks.remove(marks.size()-1);
  2771. }
  2772. }
  2773. }
  2774. }
  2775. // C.jj, line 461
  2776. final public void TypedefName() throws ParseException {
  2777. // C.jj, line 463
  2778. TypedefName node35=null;
  2779. if (buildTree) {
  2780. node35=new TypedefName();
  2781. Token jjtStartToken=getToken(1);
  2782. node35.setBeginLine(jjtStartToken.beginLine);
  2783. node35.setBeginColumn(jjtStartToken.beginColumn);
  2784. node35.setInputSource(this.getInputSource());
  2785. openNodeScope(node35);
  2786. }
  2787. boolean hitException35=false;
  2788. try {
  2789. // C.jj, line 463
  2790. jj_consume_token(IDENTIFIER);
  2791. }
  2792. catch(Exception e35) {
  2793. hitException35=false;
  2794. if (e35 instanceof ParseException) throw(ParseException) e35;
  2795. if (e35 instanceof RuntimeException) throw(RuntimeException) e35;
  2796. throw new RuntimeException(e35);
  2797. }
  2798. finally {
  2799. if (buildTree) {
  2800. if (!hitException35) {
  2801. closeNodeScope(node35,nodeArity()>1);
  2802. Token jjtEndToken=getToken(0);
  2803. node35.setEndLine(jjtEndToken.endLine);
  2804. node35.setEndColumn(jjtEndToken.endColumn);
  2805. }
  2806. else {
  2807. clearNodeScope();
  2808. mark=marks.remove(marks.size()-1);
  2809. }
  2810. }
  2811. }
  2812. }
  2813. //Added declaration to avoid old-style C
  2814. //restriction of needing declarations at beginning
  2815. //changed lookahead to 3 cause compiler told me to
  2816. //Was 2
  2817. // C.jj, line 470
  2818. final public void Statement() throws ParseException {
  2819. // C.jj, line 472
  2820. Statement node36=null;
  2821. if (buildTree) {
  2822. node36=new Statement();
  2823. Token jjtStartToken=getToken(1);
  2824. node36.setBeginLine(jjtStartToken.beginLine);
  2825. node36.setBeginColumn(jjtStartToken.beginColumn);
  2826. node36.setInputSource(this.getInputSource());
  2827. openNodeScope(node36);
  2828. }
  2829. boolean hitException36=false;
  2830. try {
  2831. // C.jj, line 472
  2832. if (jj_2_25(3)) {
  2833. // C.jj, line 472
  2834. // C.jj, line 472
  2835. LabeledStatement();
  2836. }
  2837. else if (jj_2_26(3)) {
  2838. // C.jj, line 473
  2839. // C.jj, line 473
  2840. ExpressionStatement();
  2841. }
  2842. else {
  2843. switch((jj_ntk==-1)?jj_ntk():
  2844. jj_ntk) {
  2845. case 58:
  2846. // C.jj, line 474
  2847. // C.jj, line 474
  2848. CompoundStatement();
  2849. break;
  2850. case SWITCH:
  2851. case IF:
  2852. // C.jj, line 475
  2853. // C.jj, line 475
  2854. SelectionStatement();
  2855. break;
  2856. case WHILE:
  2857. case FOR:
  2858. case DO:
  2859. // C.jj, line 476
  2860. // C.jj, line 476
  2861. IterationStatement();
  2862. break;
  2863. default:
  2864. jj_la1[42]=jj_gen;
  2865. if (jj_2_27(3)) {
  2866. // C.jj, line 477
  2867. // C.jj, line 477
  2868. Declaration();
  2869. }
  2870. else {
  2871. switch((jj_ntk==-1)?jj_ntk():
  2872. jj_ntk) {
  2873. case CONTINUE:
  2874. case RETURN:
  2875. case BREAK:
  2876. case GOTO:
  2877. // C.jj, line 478
  2878. // C.jj, line 478
  2879. JumpStatement();
  2880. break;
  2881. default:
  2882. jj_la1[43]=jj_gen;
  2883. if (jj_2_28(2)) {
  2884. // C.jj, line 479
  2885. // C.jj, line 479
  2886. CinStatement();
  2887. }
  2888. else if (jj_2_29(2)) {
  2889. // C.jj, line 480
  2890. // C.jj, line 480
  2891. CoutStatement();
  2892. }
  2893. else if (jj_2_30(2)) {
  2894. // C.jj, line 481
  2895. // C.jj, line 481
  2896. GotoLabelStatement();
  2897. }
  2898. else {
  2899. jj_consume_token(-1);
  2900. throw new ParseException();
  2901. }
  2902. }
  2903. }
  2904. }
  2905. }
  2906. }
  2907. catch(Exception e36) {
  2908. hitException36=false;
  2909. if (e36 instanceof ParseException) throw(ParseException) e36;
  2910. if (e36 instanceof RuntimeException) throw(RuntimeException) e36;
  2911. throw new RuntimeException(e36);
  2912. }
  2913. finally {
  2914. if (buildTree) {
  2915. if (!hitException36) {
  2916. closeNodeScope(node36,nodeArity()>1);
  2917. Token jjtEndToken=getToken(0);
  2918. node36.setEndLine(jjtEndToken.endLine);
  2919. node36.setEndColumn(jjtEndToken.endColumn);
  2920. }
  2921. else {
  2922. clearNodeScope();
  2923. mark=marks.remove(marks.size()-1);
  2924. }
  2925. }
  2926. }
  2927. }
  2928. //Broken up for giraffe
  2929. // C.jj, line 486
  2930. final public void LabeledStatement() throws ParseException {
  2931. // C.jj, line 488
  2932. LabeledStatement node37=null;
  2933. if (buildTree) {
  2934. node37=new LabeledStatement();
  2935. Token jjtStartToken=getToken(1);
  2936. node37.setBeginLine(jjtStartToken.beginLine);
  2937. node37.setBeginColumn(jjtStartToken.beginColumn);
  2938. node37.setInputSource(this.getInputSource());
  2939. openNodeScope(node37);
  2940. }
  2941. boolean hitException37=false;
  2942. try {
  2943. // C.jj, line 488
  2944. switch((jj_ntk==-1)?jj_ntk():
  2945. jj_ntk) {
  2946. case GOTO:
  2947. // C.jj, line 488
  2948. // C.jj, line 488
  2949. GotoStatement();
  2950. break;
  2951. case CASE:
  2952. // C.jj, line 489
  2953. // C.jj, line 489
  2954. CaseStatement();
  2955. break;
  2956. case DFLT:
  2957. // C.jj, line 490
  2958. // C.jj, line 490
  2959. DefaultStatement();
  2960. break;
  2961. default:
  2962. jj_la1[44]=jj_gen;
  2963. jj_consume_token(-1);
  2964. throw new ParseException();
  2965. }
  2966. }
  2967. catch(Exception e37) {
  2968. hitException37=false;
  2969. if (e37 instanceof ParseException) throw(ParseException) e37;
  2970. if (e37 instanceof RuntimeException) throw(RuntimeException) e37;
  2971. throw new RuntimeException(e37);
  2972. }
  2973. finally {
  2974. if (buildTree) {
  2975. if (!hitException37) {
  2976. closeNodeScope(node37,nodeArity()>1);
  2977. Token jjtEndToken=getToken(0);
  2978. node37.setEndLine(jjtEndToken.endLine);
  2979. node37.setEndColumn(jjtEndToken.endColumn);
  2980. }
  2981. else {
  2982. clearNodeScope();
  2983. mark=marks.remove(marks.size()-1);
  2984. }
  2985. }
  2986. }
  2987. }
  2988. // C.jj, line 493
  2989. final public void GotoLabelStatement() throws ParseException {
  2990. // C.jj, line 495
  2991. GotoLabelStatement node38=null;
  2992. if (buildTree) {
  2993. node38=new GotoLabelStatement();
  2994. Token jjtStartToken=getToken(1);
  2995. node38.setBeginLine(jjtStartToken.beginLine);
  2996. node38.setBeginColumn(jjtStartToken.beginColumn);
  2997. node38.setInputSource(this.getInputSource());
  2998. openNodeScope(node38);
  2999. }
  3000. boolean hitException38=false;
  3001. try {
  3002. // C.jj, line 495
  3003. // C.jj, line 495
  3004. jj_consume_token(IDENTIFIER);
  3005. // C.jj, line 495
  3006. jj_consume_token(62);
  3007. // C.jj, line 495
  3008. Statement();
  3009. }
  3010. catch(Exception e38) {
  3011. hitException38=false;
  3012. if (e38 instanceof ParseException) throw(ParseException) e38;
  3013. if (e38 instanceof RuntimeException) throw(RuntimeException) e38;
  3014. throw new RuntimeException(e38);
  3015. }
  3016. finally {
  3017. if (buildTree) {
  3018. if (!hitException38) {
  3019. closeNodeScope(node38,nodeArity()>1);
  3020. Token jjtEndToken=getToken(0);
  3021. node38.setEndLine(jjtEndToken.endLine);
  3022. node38.setEndColumn(jjtEndToken.endColumn);
  3023. }
  3024. else {
  3025. clearNodeScope();
  3026. mark=marks.remove(marks.size()-1);
  3027. }
  3028. }
  3029. }
  3030. }
  3031. // C.jj, line 498
  3032. final public void CaseStatement() throws ParseException {
  3033. // C.jj, line 500
  3034. CaseStatement node39=null;
  3035. if (buildTree) {
  3036. node39=new CaseStatement();
  3037. Token jjtStartToken=getToken(1);
  3038. node39.setBeginLine(jjtStartToken.beginLine);
  3039. node39.setBeginColumn(jjtStartToken.beginColumn);
  3040. node39.setInputSource(this.getInputSource());
  3041. openNodeScope(node39);
  3042. }
  3043. boolean hitException39=false;
  3044. try {
  3045. // C.jj, line 500
  3046. // C.jj, line 500
  3047. jj_consume_token(CASE);
  3048. // C.jj, line 500
  3049. ConstantExpression();
  3050. // C.jj, line 500
  3051. jj_consume_token(62);
  3052. // C.jj, line 500
  3053. Statement();
  3054. }
  3055. catch(Exception e39) {
  3056. hitException39=false;
  3057. if (e39 instanceof ParseException) throw(ParseException) e39;
  3058. if (e39 instanceof RuntimeException) throw(RuntimeException) e39;
  3059. throw new RuntimeException(e39);
  3060. }
  3061. finally {
  3062. if (buildTree) {
  3063. if (!hitException39) {
  3064. closeNodeScope(node39,nodeArity()>1);
  3065. Token jjtEndToken=getToken(0);
  3066. node39.setEndLine(jjtEndToken.endLine);
  3067. node39.setEndColumn(jjtEndToken.endColumn);
  3068. }
  3069. else {
  3070. clearNodeScope();
  3071. mark=marks.remove(marks.size()-1);
  3072. }
  3073. }
  3074. }
  3075. }
  3076. // C.jj, line 503
  3077. final public void DefaultStatement() throws ParseException {
  3078. // C.jj, line 505
  3079. DefaultStatement node40=null;
  3080. if (buildTree) {
  3081. node40=new DefaultStatement();
  3082. Token jjtStartToken=getToken(1);
  3083. node40.setBeginLine(jjtStartToken.beginLine);
  3084. node40.setBeginColumn(jjtStartToken.beginColumn);
  3085. node40.setInputSource(this.getInputSource());
  3086. openNodeScope(node40);
  3087. }
  3088. boolean hitException40=false;
  3089. try {
  3090. // C.jj, line 505
  3091. // C.jj, line 505
  3092. jj_consume_token(DFLT);
  3093. // C.jj, line 505
  3094. jj_consume_token(62);
  3095. // C.jj, line 505
  3096. Statement();
  3097. }
  3098. catch(Exception e40) {
  3099. hitException40=false;
  3100. if (e40 instanceof ParseException) throw(ParseException) e40;
  3101. if (e40 instanceof RuntimeException) throw(RuntimeException) e40;
  3102. throw new RuntimeException(e40);
  3103. }
  3104. finally {
  3105. if (buildTree) {
  3106. if (!hitException40) {
  3107. closeNodeScope(node40,nodeArity()>1);
  3108. Token jjtEndToken=getToken(0);
  3109. node40.setEndLine(jjtEndToken.endLine);
  3110. node40.setEndColumn(jjtEndToken.endColumn);
  3111. }
  3112. else {
  3113. clearNodeScope();
  3114. mark=marks.remove(marks.size()-1);
  3115. }
  3116. }
  3117. }
  3118. }
  3119. // C.jj, line 508
  3120. final public void ExpressionStatement() throws ParseException {
  3121. // C.jj, line 510
  3122. ExpressionStatement node41=null;
  3123. if (buildTree) {
  3124. node41=new ExpressionStatement();
  3125. Token jjtStartToken=getToken(1);
  3126. node41.setBeginLine(jjtStartToken.beginLine);
  3127. node41.setBeginColumn(jjtStartToken.beginColumn);
  3128. node41.setInputSource(this.getInputSource());
  3129. openNodeScope(node41);
  3130. }
  3131. boolean hitException41=false;
  3132. try {
  3133. // C.jj, line 510
  3134. int int26=(jj_ntk==-1)?jj_ntk():
  3135. jj_ntk;
  3136. if (int26==INTEGER_LITERAL||int26==BOOL_LITERAL||int26==FLOATING_POINT_LITERAL||int26==CHARACTER_LITERAL||int26==STRING_LITERAL||int26==SIZEOF||int26==IDENTIFIER||int26==63||int26==67||int26==86||int26==93||int26==94||int26==97||int26==98||int26==99||int26==100) {
  3137. // C.jj, line 510
  3138. // C.jj, line 510
  3139. Expression();
  3140. }
  3141. else {
  3142. jj_la1[45]=jj_gen;
  3143. }
  3144. // C.jj, line 510
  3145. jj_consume_token(57);
  3146. }
  3147. catch(Exception e41) {
  3148. hitException41=false;
  3149. if (e41 instanceof ParseException) throw(ParseException) e41;
  3150. if (e41 instanceof RuntimeException) throw(RuntimeException) e41;
  3151. throw new RuntimeException(e41);
  3152. }
  3153. finally {
  3154. if (buildTree) {
  3155. if (!hitException41) {
  3156. closeNodeScope(node41,nodeArity()>1);
  3157. Token jjtEndToken=getToken(0);
  3158. node41.setEndLine(jjtEndToken.endLine);
  3159. node41.setEndColumn(jjtEndToken.endColumn);
  3160. }
  3161. else {
  3162. clearNodeScope();
  3163. mark=marks.remove(marks.size()-1);
  3164. }
  3165. }
  3166. }
  3167. }
  3168. //Declaration is a statement now, so we don't need
  3169. //Declaration list here
  3170. // C.jj, line 515
  3171. final public void CompoundStatement() throws ParseException {
  3172. // C.jj, line 517
  3173. CompoundStatement node42=null;
  3174. if (buildTree) {
  3175. node42=new CompoundStatement();
  3176. Token jjtStartToken=getToken(1);
  3177. node42.setBeginLine(jjtStartToken.beginLine);
  3178. node42.setBeginColumn(jjtStartToken.beginColumn);
  3179. node42.setInputSource(this.getInputSource());
  3180. openNodeScope(node42);
  3181. }
  3182. boolean hitException42=false;
  3183. try {
  3184. // C.jj, line 517
  3185. jj_consume_token(58);
  3186. // C.jj, line 519
  3187. if (jj_2_31(1)) {
  3188. // C.jj, line 519
  3189. // C.jj, line 519
  3190. StatementList();
  3191. }
  3192. // C.jj, line 520
  3193. jj_consume_token(59);
  3194. }
  3195. catch(Exception e42) {
  3196. hitException42=false;
  3197. if (e42 instanceof ParseException) throw(ParseException) e42;
  3198. if (e42 instanceof RuntimeException) throw(RuntimeException) e42;
  3199. throw new RuntimeException(e42);
  3200. }
  3201. finally {
  3202. if (buildTree) {
  3203. if (!hitException42) {
  3204. closeNodeScope(node42,nodeArity()>1);
  3205. Token jjtEndToken=getToken(0);
  3206. node42.setEndLine(jjtEndToken.endLine);
  3207. node42.setEndColumn(jjtEndToken.endColumn);
  3208. }
  3209. else {
  3210. clearNodeScope();
  3211. mark=marks.remove(marks.size()-1);
  3212. }
  3213. }
  3214. }
  3215. }
  3216. // C.jj, line 523
  3217. final public void StatementList() throws ParseException {
  3218. // C.jj, line 525
  3219. StatementList node43=null;
  3220. if (buildTree) {
  3221. node43=new StatementList();
  3222. Token jjtStartToken=getToken(1);
  3223. node43.setBeginLine(jjtStartToken.beginLine);
  3224. node43.setBeginColumn(jjtStartToken.beginColumn);
  3225. node43.setInputSource(this.getInputSource());
  3226. openNodeScope(node43);
  3227. }
  3228. boolean hitException43=false;
  3229. try {
  3230. // C.jj, line 525
  3231. label_13:
  3232. while (true) {
  3233. // C.jj, line 525
  3234. // C.jj, line 525
  3235. Statement();
  3236. if (!(jj_2_32(1))) {
  3237. break label_13;
  3238. }
  3239. }
  3240. }
  3241. catch(Exception e43) {
  3242. hitException43=false;
  3243. if (e43 instanceof ParseException) throw(ParseException) e43;
  3244. if (e43 instanceof RuntimeException) throw(RuntimeException) e43;
  3245. throw new RuntimeException(e43);
  3246. }
  3247. finally {
  3248. if (buildTree) {
  3249. if (!hitException43) {
  3250. closeNodeScope(node43,nodeArity()>1);
  3251. Token jjtEndToken=getToken(0);
  3252. node43.setEndLine(jjtEndToken.endLine);
  3253. node43.setEndColumn(jjtEndToken.endColumn);
  3254. }
  3255. else {
  3256. clearNodeScope();
  3257. mark=marks.remove(marks.size()-1);
  3258. }
  3259. }
  3260. }
  3261. }
  3262. //Broken up for Giraffe
  3263. // C.jj, line 530
  3264. final public void SelectionStatement() throws ParseException {
  3265. // C.jj, line 532
  3266. SelectionStatement node44=null;
  3267. if (buildTree) {
  3268. node44=new SelectionStatement();
  3269. Token jjtStartToken=getToken(1);
  3270. node44.setBeginLine(jjtStartToken.beginLine);
  3271. node44.setBeginColumn(jjtStartToken.beginColumn);
  3272. node44.setInputSource(this.getInputSource());
  3273. openNodeScope(node44);
  3274. }
  3275. boolean hitException44=false;
  3276. try {
  3277. // C.jj, line 532
  3278. switch((jj_ntk==-1)?jj_ntk():
  3279. jj_ntk) {
  3280. case IF:
  3281. // C.jj, line 532
  3282. // C.jj, line 532
  3283. IfStatement();
  3284. break;
  3285. case SWITCH:
  3286. // C.jj, line 533
  3287. // C.jj, line 533
  3288. SwitchStatement();
  3289. break;
  3290. default:
  3291. jj_la1[46]=jj_gen;
  3292. jj_consume_token(-1);
  3293. throw new ParseException();
  3294. }
  3295. }
  3296. catch(Exception e44) {
  3297. hitException44=false;
  3298. if (e44 instanceof ParseException) throw(ParseException) e44;
  3299. if (e44 instanceof RuntimeException) throw(RuntimeException) e44;
  3300. throw new RuntimeException(e44);
  3301. }
  3302. finally {
  3303. if (buildTree) {
  3304. if (!hitException44) {
  3305. closeNodeScope(node44,nodeArity()>1);
  3306. Token jjtEndToken=getToken(0);
  3307. node44.setEndLine(jjtEndToken.endLine);
  3308. node44.setEndColumn(jjtEndToken.endColumn);
  3309. }
  3310. else {
  3311. clearNodeScope();
  3312. mark=marks.remove(marks.size()-1);
  3313. }
  3314. }
  3315. }
  3316. }
  3317. // C.jj, line 536
  3318. final public void IfStatement() throws ParseException {
  3319. // C.jj, line 538
  3320. IfStatement node45=null;
  3321. if (buildTree) {
  3322. node45=new IfStatement();
  3323. Token jjtStartToken=getToken(1);
  3324. node45.setBeginLine(jjtStartToken.beginLine);
  3325. node45.setBeginColumn(jjtStartToken.beginColumn);
  3326. node45.setInputSource(this.getInputSource());
  3327. openNodeScope(node45);
  3328. }
  3329. boolean hitException45=false;
  3330. try {
  3331. // C.jj, line 538
  3332. // C.jj, line 538
  3333. jj_consume_token(IF);
  3334. // C.jj, line 538
  3335. jj_consume_token(63);
  3336. // C.jj, line 538
  3337. Expression();
  3338. // C.jj, line 538
  3339. jj_consume_token(64);
  3340. // C.jj, line 538
  3341. Statement();
  3342. // C.jj, line 538
  3343. if (jj_2_33(2)) {
  3344. // C.jj, line 538
  3345. // C.jj, line 538
  3346. jj_consume_token(ELSE);
  3347. // C.jj, line 538
  3348. Statement();
  3349. }
  3350. }
  3351. catch(Exception e45) {
  3352. hitException45=false;
  3353. if (e45 instanceof ParseException) throw(ParseException) e45;
  3354. if (e45 instanceof RuntimeException) throw(RuntimeException) e45;
  3355. throw new RuntimeException(e45);
  3356. }
  3357. finally {
  3358. if (buildTree) {
  3359. if (!hitException45) {
  3360. closeNodeScope(node45,nodeArity()>1);
  3361. Token jjtEndToken=getToken(0);
  3362. node45.setEndLine(jjtEndToken.endLine);
  3363. node45.setEndColumn(jjtEndToken.endColumn);
  3364. }
  3365. else {
  3366. clearNodeScope();
  3367. mark=marks.remove(marks.size()-1);
  3368. }
  3369. }
  3370. }
  3371. }
  3372. // C.jj, line 541
  3373. final public void SwitchStatement() throws ParseException {
  3374. // C.jj, line 543
  3375. SwitchStatement node46=null;
  3376. if (buildTree) {
  3377. node46=new SwitchStatement();
  3378. Token jjtStartToken=getToken(1);
  3379. node46.setBeginLine(jjtStartToken.beginLine);
  3380. node46.setBeginColumn(jjtStartToken.beginColumn);
  3381. node46.setInputSource(this.getInputSource());
  3382. openNodeScope(node46);
  3383. }
  3384. boolean hitException46=false;
  3385. try {
  3386. // C.jj, line 543
  3387. // C.jj, line 543
  3388. jj_consume_token(SWITCH);
  3389. // C.jj, line 543
  3390. jj_consume_token(63);
  3391. // C.jj, line 543
  3392. Expression();
  3393. // C.jj, line 543
  3394. jj_consume_token(64);
  3395. // C.jj, line 543
  3396. Statement();
  3397. }
  3398. catch(Exception e46) {
  3399. hitException46=false;
  3400. if (e46 instanceof ParseException) throw(ParseException) e46;
  3401. if (e46 instanceof RuntimeException) throw(RuntimeException) e46;
  3402. throw new RuntimeException(e46);
  3403. }
  3404. finally {
  3405. if (buildTree) {
  3406. if (!hitException46) {
  3407. closeNodeScope(node46,nodeArity()>1);
  3408. Token jjtEndToken=getToken(0);
  3409. node46.setEndLine(jjtEndToken.endLine);
  3410. node46.setEndColumn(jjtEndToken.endColumn);
  3411. }
  3412. else {
  3413. clearNodeScope();
  3414. mark=marks.remove(marks.size()-1);
  3415. }
  3416. }
  3417. }
  3418. }
  3419. // C.jj, line 547
  3420. final public void IterationStatement() throws ParseException {
  3421. // C.jj, line 549
  3422. IterationStatement node47=null;
  3423. if (buildTree) {
  3424. node47=new IterationStatement();
  3425. Token jjtStartToken=getToken(1);
  3426. node47.setBeginLine(jjtStartToken.beginLine);
  3427. node47.setBeginColumn(jjtStartToken.beginColumn);
  3428. node47.setInputSource(this.getInputSource());
  3429. openNodeScope(node47);
  3430. }
  3431. boolean hitException47=false;
  3432. try {
  3433. // C.jj, line 549
  3434. switch((jj_ntk==-1)?jj_ntk():
  3435. jj_ntk) {
  3436. case WHILE:
  3437. // C.jj, line 549
  3438. // C.jj, line 549
  3439. WhileStatement();
  3440. break;
  3441. case DO:
  3442. // C.jj, line 550
  3443. // C.jj, line 550
  3444. DoStatement();
  3445. break;
  3446. case FOR:
  3447. // C.jj, line 551
  3448. // C.jj, line 551
  3449. ForStatement();
  3450. break;
  3451. default:
  3452. jj_la1[47]=jj_gen;
  3453. jj_consume_token(-1);
  3454. throw new ParseException();
  3455. }
  3456. }
  3457. catch(Exception e47) {
  3458. hitException47=false;
  3459. if (e47 instanceof ParseException) throw(ParseException) e47;
  3460. if (e47 instanceof RuntimeException) throw(RuntimeException) e47;
  3461. throw new RuntimeException(e47);
  3462. }
  3463. finally {
  3464. if (buildTree) {
  3465. if (!hitException47) {
  3466. closeNodeScope(node47,nodeArity()>1);
  3467. Token jjtEndToken=getToken(0);
  3468. node47.setEndLine(jjtEndToken.endLine);
  3469. node47.setEndColumn(jjtEndToken.endColumn);
  3470. }
  3471. else {
  3472. clearNodeScope();
  3473. mark=marks.remove(marks.size()-1);
  3474. }
  3475. }
  3476. }
  3477. }
  3478. // C.jj, line 554
  3479. final public void WhileStatement() throws ParseException {
  3480. // C.jj, line 556
  3481. WhileStatement node48=null;
  3482. if (buildTree) {
  3483. node48=new WhileStatement();
  3484. Token jjtStartToken=getToken(1);
  3485. node48.setBeginLine(jjtStartToken.beginLine);
  3486. node48.setBeginColumn(jjtStartToken.beginColumn);
  3487. node48.setInputSource(this.getInputSource());
  3488. openNodeScope(node48);
  3489. }
  3490. boolean hitException48=false;
  3491. try {
  3492. // C.jj, line 556
  3493. // C.jj, line 556
  3494. jj_consume_token(WHILE);
  3495. // C.jj, line 556
  3496. jj_consume_token(63);
  3497. // C.jj, line 556
  3498. Expression();
  3499. // C.jj, line 556
  3500. jj_consume_token(64);
  3501. // C.jj, line 556
  3502. Statement();
  3503. }
  3504. catch(Exception e48) {
  3505. hitException48=false;
  3506. if (e48 instanceof ParseException) throw(ParseException) e48;
  3507. if (e48 instanceof RuntimeException) throw(RuntimeException) e48;
  3508. throw new RuntimeException(e48);
  3509. }
  3510. finally {
  3511. if (buildTree) {
  3512. if (!hitException48) {
  3513. closeNodeScope(node48,nodeArity()>1);
  3514. Token jjtEndToken=getToken(0);
  3515. node48.setEndLine(jjtEndToken.endLine);
  3516. node48.setEndColumn(jjtEndToken.endColumn);
  3517. }
  3518. else {
  3519. clearNodeScope();
  3520. mark=marks.remove(marks.size()-1);
  3521. }
  3522. }
  3523. }
  3524. }
  3525. // C.jj, line 559
  3526. final public void DoStatement() throws ParseException {
  3527. // C.jj, line 561
  3528. DoStatement node49=null;
  3529. if (buildTree) {
  3530. node49=new DoStatement();
  3531. Token jjtStartToken=getToken(1);
  3532. node49.setBeginLine(jjtStartToken.beginLine);
  3533. node49.setBeginColumn(jjtStartToken.beginColumn);
  3534. node49.setInputSource(this.getInputSource());
  3535. openNodeScope(node49);
  3536. }
  3537. boolean hitException49=false;
  3538. try {
  3539. // C.jj, line 561
  3540. // C.jj, line 561
  3541. jj_consume_token(DO);
  3542. // C.jj, line 561
  3543. Statement();
  3544. // C.jj, line 561
  3545. jj_consume_token(WHILE);
  3546. // C.jj, line 561
  3547. jj_consume_token(63);
  3548. // C.jj, line 561
  3549. Expression();
  3550. // C.jj, line 561
  3551. jj_consume_token(64);
  3552. // C.jj, line 561
  3553. jj_consume_token(57);
  3554. }
  3555. catch(Exception e49) {
  3556. hitException49=false;
  3557. if (e49 instanceof ParseException) throw(ParseException) e49;
  3558. if (e49 instanceof RuntimeException) throw(RuntimeException) e49;
  3559. throw new RuntimeException(e49);
  3560. }
  3561. finally {
  3562. if (buildTree) {
  3563. if (!hitException49) {
  3564. closeNodeScope(node49,nodeArity()>1);
  3565. Token jjtEndToken=getToken(0);
  3566. node49.setEndLine(jjtEndToken.endLine);
  3567. node49.setEndColumn(jjtEndToken.endColumn);
  3568. }
  3569. else {
  3570. clearNodeScope();
  3571. mark=marks.remove(marks.size()-1);
  3572. }
  3573. }
  3574. }
  3575. }
  3576. // C.jj, line 564
  3577. final public void ForStatement() throws ParseException {
  3578. // C.jj, line 566
  3579. ForStatement node50=null;
  3580. if (buildTree) {
  3581. node50=new ForStatement();
  3582. Token jjtStartToken=getToken(1);
  3583. node50.setBeginLine(jjtStartToken.beginLine);
  3584. node50.setBeginColumn(jjtStartToken.beginColumn);
  3585. node50.setInputSource(this.getInputSource());
  3586. openNodeScope(node50);
  3587. }
  3588. boolean hitException50=false;
  3589. try {
  3590. // C.jj, line 566
  3591. // C.jj, line 566
  3592. jj_consume_token(FOR);
  3593. // C.jj, line 566
  3594. jj_consume_token(63);
  3595. // C.jj, line 566
  3596. if (jj_2_34(3)) {
  3597. // C.jj, line 566
  3598. // C.jj, line 566
  3599. Expression();
  3600. // C.jj, line 566
  3601. jj_consume_token(57);
  3602. }
  3603. else if (jj_2_35(3)) {
  3604. // C.jj, line 566
  3605. // C.jj, line 566
  3606. Declaration();
  3607. }
  3608. else {
  3609. switch((jj_ntk==-1)?jj_ntk():
  3610. jj_ntk) {
  3611. case 57:
  3612. // C.jj, line 566
  3613. // C.jj, line 566
  3614. jj_consume_token(57);
  3615. break;
  3616. default:
  3617. jj_la1[48]=jj_gen;
  3618. jj_consume_token(-1);
  3619. throw new ParseException();
  3620. }
  3621. }
  3622. // C.jj, line 566
  3623. int int27=(jj_ntk==-1)?jj_ntk():
  3624. jj_ntk;
  3625. if (int27==INTEGER_LITERAL||int27==BOOL_LITERAL||int27==FLOATING_POINT_LITERAL||int27==CHARACTER_LITERAL||int27==STRING_LITERAL||int27==SIZEOF||int27==IDENTIFIER||int27==63||int27==67||int27==86||int27==93||int27==94||int27==97||int27==98||int27==99||int27==100) {
  3626. // C.jj, line 566
  3627. // C.jj, line 566
  3628. Expression();
  3629. }
  3630. else {
  3631. jj_la1[49]=jj_gen;
  3632. }
  3633. // C.jj, line 566
  3634. jj_consume_token(57);
  3635. // C.jj, line 566
  3636. int int28=(jj_ntk==-1)?jj_ntk():
  3637. jj_ntk;
  3638. if (int28==INTEGER_LITERAL||int28==BOOL_LITERAL||int28==FLOATING_POINT_LITERAL||int28==CHARACTER_LITERAL||int28==STRING_LITERAL||int28==SIZEOF||int28==IDENTIFIER||int28==63||int28==67||int28==86||int28==93||int28==94||int28==97||int28==98||int28==99||int28==100) {
  3639. // C.jj, line 566
  3640. // C.jj, line 566
  3641. Expression();
  3642. }
  3643. else {
  3644. jj_la1[50]=jj_gen;
  3645. }
  3646. // C.jj, line 566
  3647. jj_consume_token(64);
  3648. // C.jj, line 566
  3649. Statement();
  3650. }
  3651. catch(Exception e50) {
  3652. hitException50=false;
  3653. if (e50 instanceof ParseException) throw(ParseException) e50;
  3654. if (e50 instanceof RuntimeException) throw(RuntimeException) e50;
  3655. throw new RuntimeException(e50);
  3656. }
  3657. finally {
  3658. if (buildTree) {
  3659. if (!hitException50) {
  3660. closeNodeScope(node50,nodeArity()>1);
  3661. Token jjtEndToken=getToken(0);
  3662. node50.setEndLine(jjtEndToken.endLine);
  3663. node50.setEndColumn(jjtEndToken.endColumn);
  3664. }
  3665. else {
  3666. clearNodeScope();
  3667. mark=marks.remove(marks.size()-1);
  3668. }
  3669. }
  3670. }
  3671. }
  3672. // C.jj, line 569
  3673. final public void JumpStatement() throws ParseException {
  3674. // C.jj, line 571
  3675. JumpStatement node51=null;
  3676. if (buildTree) {
  3677. node51=new JumpStatement();
  3678. Token jjtStartToken=getToken(1);
  3679. node51.setBeginLine(jjtStartToken.beginLine);
  3680. node51.setBeginColumn(jjtStartToken.beginColumn);
  3681. node51.setInputSource(this.getInputSource());
  3682. openNodeScope(node51);
  3683. }
  3684. boolean hitException51=false;
  3685. try {
  3686. // C.jj, line 571
  3687. switch((jj_ntk==-1)?jj_ntk():
  3688. jj_ntk) {
  3689. case GOTO:
  3690. // C.jj, line 571
  3691. // C.jj, line 571
  3692. GotoStatement();
  3693. break;
  3694. case CONTINUE:
  3695. // C.jj, line 572
  3696. // C.jj, line 572
  3697. ContinueStatement();
  3698. break;
  3699. case BREAK:
  3700. // C.jj, line 573
  3701. // C.jj, line 573
  3702. BreakStatement();
  3703. break;
  3704. case RETURN:
  3705. // C.jj, line 574
  3706. // C.jj, line 574
  3707. ReturnStatement();
  3708. break;
  3709. default:
  3710. jj_la1[51]=jj_gen;
  3711. jj_consume_token(-1);
  3712. throw new ParseException();
  3713. }
  3714. }
  3715. catch(Exception e51) {
  3716. hitException51=false;
  3717. if (e51 instanceof ParseException) throw(ParseException) e51;
  3718. if (e51 instanceof RuntimeException) throw(RuntimeException) e51;
  3719. throw new RuntimeException(e51);
  3720. }
  3721. finally {
  3722. if (buildTree) {
  3723. if (!hitException51) {
  3724. closeNodeScope(node51,nodeArity()>1);
  3725. Token jjtEndToken=getToken(0);
  3726. node51.setEndLine(jjtEndToken.endLine);
  3727. node51.setEndColumn(jjtEndToken.endColumn);
  3728. }
  3729. else {
  3730. clearNodeScope();
  3731. mark=marks.remove(marks.size()-1);
  3732. }
  3733. }
  3734. }
  3735. }
  3736. //Broken up into separate statements for Giraffe
  3737. // C.jj, line 578
  3738. final public void GotoStatement() throws ParseException {
  3739. // C.jj, line 580
  3740. GotoStatement node52=null;
  3741. if (buildTree) {
  3742. node52=new GotoStatement();
  3743. Token jjtStartToken=getToken(1);
  3744. node52.setBeginLine(jjtStartToken.beginLine);
  3745. node52.setBeginColumn(jjtStartToken.beginColumn);
  3746. node52.setInputSource(this.getInputSource());
  3747. openNodeScope(node52);
  3748. }
  3749. boolean hitException52=false;
  3750. try {
  3751. // C.jj, line 580
  3752. // C.jj, line 580
  3753. jj_consume_token(GOTO);
  3754. // C.jj, line 580
  3755. jj_consume_token(IDENTIFIER);
  3756. // C.jj, line 580
  3757. jj_consume_token(57);
  3758. }
  3759. catch(Exception e52) {
  3760. hitException52=false;
  3761. if (e52 instanceof ParseException) throw(ParseException) e52;
  3762. if (e52 instanceof RuntimeException) throw(RuntimeException) e52;
  3763. throw new RuntimeException(e52);
  3764. }
  3765. finally {
  3766. if (buildTree) {
  3767. if (!hitException52) {
  3768. closeNodeScope(node52,nodeArity()>1);
  3769. Token jjtEndToken=getToken(0);
  3770. node52.setEndLine(jjtEndToken.endLine);
  3771. node52.setEndColumn(jjtEndToken.endColumn);
  3772. }
  3773. else {
  3774. clearNodeScope();
  3775. mark=marks.remove(marks.size()-1);
  3776. }
  3777. }
  3778. }
  3779. }
  3780. // C.jj, line 583
  3781. final public void ContinueStatement() throws ParseException {
  3782. // C.jj, line 585
  3783. ContinueStatement node53=null;
  3784. if (buildTree) {
  3785. node53=new ContinueStatement();
  3786. Token jjtStartToken=getToken(1);
  3787. node53.setBeginLine(jjtStartToken.beginLine);
  3788. node53.setBeginColumn(jjtStartToken.beginColumn);
  3789. node53.setInputSource(this.getInputSource());
  3790. openNodeScope(node53);
  3791. }
  3792. boolean hitException53=false;
  3793. try {
  3794. // C.jj, line 585
  3795. // C.jj, line 585
  3796. jj_consume_token(CONTINUE);
  3797. // C.jj, line 585
  3798. jj_consume_token(57);
  3799. }
  3800. catch(Exception e53) {
  3801. hitException53=false;
  3802. if (e53 instanceof ParseException) throw(ParseException) e53;
  3803. if (e53 instanceof RuntimeException) throw(RuntimeException) e53;
  3804. throw new RuntimeException(e53);
  3805. }
  3806. finally {
  3807. if (buildTree) {
  3808. if (!hitException53) {
  3809. closeNodeScope(node53,nodeArity()>1);
  3810. Token jjtEndToken=getToken(0);
  3811. node53.setEndLine(jjtEndToken.endLine);
  3812. node53.setEndColumn(jjtEndToken.endColumn);
  3813. }
  3814. else {
  3815. clearNodeScope();
  3816. mark=marks.remove(marks.size()-1);
  3817. }
  3818. }
  3819. }
  3820. }
  3821. // C.jj, line 588
  3822. final public void BreakStatement() throws ParseException {
  3823. // C.jj, line 590
  3824. BreakStatement node54=null;
  3825. if (buildTree) {
  3826. node54=new BreakStatement();
  3827. Token jjtStartToken=getToken(1);
  3828. node54.setBeginLine(jjtStartToken.beginLine);
  3829. node54.setBeginColumn(jjtStartToken.beginColumn);
  3830. node54.setInputSource(this.getInputSource());
  3831. openNodeScope(node54);
  3832. }
  3833. boolean hitException54=false;
  3834. try {
  3835. // C.jj, line 590
  3836. // C.jj, line 590
  3837. jj_consume_token(BREAK);
  3838. // C.jj, line 590
  3839. jj_consume_token(57);
  3840. }
  3841. catch(Exception e54) {
  3842. hitException54=false;
  3843. if (e54 instanceof ParseException) throw(ParseException) e54;
  3844. if (e54 instanceof RuntimeException) throw(RuntimeException) e54;
  3845. throw new RuntimeException(e54);
  3846. }
  3847. finally {
  3848. if (buildTree) {
  3849. if (!hitException54) {
  3850. closeNodeScope(node54,nodeArity()>1);
  3851. Token jjtEndToken=getToken(0);
  3852. node54.setEndLine(jjtEndToken.endLine);
  3853. node54.setEndColumn(jjtEndToken.endColumn);
  3854. }
  3855. else {
  3856. clearNodeScope();
  3857. mark=marks.remove(marks.size()-1);
  3858. }
  3859. }
  3860. }
  3861. }
  3862. // C.jj, line 593
  3863. final public void ReturnStatement() throws ParseException {
  3864. // C.jj, line 595
  3865. ReturnStatement node55=null;
  3866. if (buildTree) {
  3867. node55=new ReturnStatement();
  3868. Token jjtStartToken=getToken(1);
  3869. node55.setBeginLine(jjtStartToken.beginLine);
  3870. node55.setBeginColumn(jjtStartToken.beginColumn);
  3871. node55.setInputSource(this.getInputSource());
  3872. openNodeScope(node55);
  3873. }
  3874. boolean hitException55=false;
  3875. try {
  3876. // C.jj, line 595
  3877. // C.jj, line 595
  3878. jj_consume_token(RETURN);
  3879. // C.jj, line 595
  3880. int int29=(jj_ntk==-1)?jj_ntk():
  3881. jj_ntk;
  3882. if (int29==INTEGER_LITERAL||int29==BOOL_LITERAL||int29==FLOATING_POINT_LITERAL||int29==CHARACTER_LITERAL||int29==STRING_LITERAL||int29==SIZEOF||int29==IDENTIFIER||int29==63||int29==67||int29==86||int29==93||int29==94||int29==97||int29==98||int29==99||int29==100) {
  3883. // C.jj, line 595
  3884. // C.jj, line 595
  3885. Expression();
  3886. }
  3887. else {
  3888. jj_la1[52]=jj_gen;
  3889. }
  3890. // C.jj, line 595
  3891. jj_consume_token(57);
  3892. }
  3893. catch(Exception e55) {
  3894. hitException55=false;
  3895. if (e55 instanceof ParseException) throw(ParseException) e55;
  3896. if (e55 instanceof RuntimeException) throw(RuntimeException) e55;
  3897. throw new RuntimeException(e55);
  3898. }
  3899. finally {
  3900. if (buildTree) {
  3901. if (!hitException55) {
  3902. closeNodeScope(node55,nodeArity()>1);
  3903. Token jjtEndToken=getToken(0);
  3904. node55.setEndLine(jjtEndToken.endLine);
  3905. node55.setEndColumn(jjtEndToken.endColumn);
  3906. }
  3907. else {
  3908. clearNodeScope();
  3909. mark=marks.remove(marks.size()-1);
  3910. }
  3911. }
  3912. }
  3913. }
  3914. // C.jj, line 598
  3915. final public void CoutStatement() throws ParseException {
  3916. // C.jj, line 600
  3917. CoutStatement node56=null;
  3918. if (buildTree) {
  3919. node56=new CoutStatement();
  3920. Token jjtStartToken=getToken(1);
  3921. node56.setBeginLine(jjtStartToken.beginLine);
  3922. node56.setBeginColumn(jjtStartToken.beginColumn);
  3923. node56.setInputSource(this.getInputSource());
  3924. openNodeScope(node56);
  3925. }
  3926. boolean hitException56=false;
  3927. try {
  3928. // C.jj, line 600
  3929. // C.jj, line 600
  3930. jj_consume_token(COUT);
  3931. // C.jj, line 600
  3932. label_14:
  3933. while (true) {
  3934. if (!(jj_2_36(2))) {
  3935. break label_14;
  3936. }
  3937. // C.jj, line 600
  3938. // C.jj, line 600
  3939. jj_consume_token(69);
  3940. // C.jj, line 600
  3941. Expression();
  3942. }
  3943. // C.jj, line 600
  3944. jj_consume_token(57);
  3945. }
  3946. catch(Exception e56) {
  3947. hitException56=false;
  3948. if (e56 instanceof ParseException) throw(ParseException) e56;
  3949. if (e56 instanceof RuntimeException) throw(RuntimeException) e56;
  3950. throw new RuntimeException(e56);
  3951. }
  3952. finally {
  3953. if (buildTree) {
  3954. if (!hitException56) {
  3955. closeNodeScope(node56,nodeArity()>1);
  3956. Token jjtEndToken=getToken(0);
  3957. node56.setEndLine(jjtEndToken.endLine);
  3958. node56.setEndColumn(jjtEndToken.endColumn);
  3959. }
  3960. else {
  3961. clearNodeScope();
  3962. mark=marks.remove(marks.size()-1);
  3963. }
  3964. }
  3965. }
  3966. }
  3967. // C.jj, line 603
  3968. final public void CinStatement() throws ParseException {
  3969. // C.jj, line 605
  3970. CinStatement node57=null;
  3971. if (buildTree) {
  3972. node57=new CinStatement();
  3973. Token jjtStartToken=getToken(1);
  3974. node57.setBeginLine(jjtStartToken.beginLine);
  3975. node57.setBeginColumn(jjtStartToken.beginColumn);
  3976. node57.setInputSource(this.getInputSource());
  3977. openNodeScope(node57);
  3978. }
  3979. boolean hitException57=false;
  3980. try {
  3981. // C.jj, line 605
  3982. // C.jj, line 605
  3983. jj_consume_token(CIN);
  3984. // C.jj, line 605
  3985. label_15:
  3986. while (true) {
  3987. if (!(jj_2_37(2))) {
  3988. break label_15;
  3989. }
  3990. // C.jj, line 605
  3991. // C.jj, line 605
  3992. jj_consume_token(70);
  3993. // C.jj, line 605
  3994. jj_consume_token(IDENTIFIER);
  3995. }
  3996. // C.jj, line 605
  3997. jj_consume_token(57);
  3998. }
  3999. catch(Exception e57) {
  4000. hitException57=false;
  4001. if (e57 instanceof ParseException) throw(ParseException) e57;
  4002. if (e57 instanceof RuntimeException) throw(RuntimeException) e57;
  4003. throw new RuntimeException(e57);
  4004. }
  4005. finally {
  4006. if (buildTree) {
  4007. if (!hitException57) {
  4008. closeNodeScope(node57,nodeArity()>1);
  4009. Token jjtEndToken=getToken(0);
  4010. node57.setEndLine(jjtEndToken.endLine);
  4011. node57.setEndColumn(jjtEndToken.endColumn);
  4012. }
  4013. else {
  4014. clearNodeScope();
  4015. mark=marks.remove(marks.size()-1);
  4016. }
  4017. }
  4018. }
  4019. }
  4020. // C.jj, line 609
  4021. final public void Expression() throws ParseException {
  4022. // C.jj, line 611
  4023. Expression node58=null;
  4024. if (buildTree) {
  4025. node58=new Expression();
  4026. Token jjtStartToken=getToken(1);
  4027. node58.setBeginLine(jjtStartToken.beginLine);
  4028. node58.setBeginColumn(jjtStartToken.beginColumn);
  4029. node58.setInputSource(this.getInputSource());
  4030. openNodeScope(node58);
  4031. }
  4032. boolean hitException58=false;
  4033. try {
  4034. // C.jj, line 611
  4035. AssignmentExpression();
  4036. // C.jj, line 611
  4037. label_16:
  4038. while (true) {
  4039. int int30=(jj_ntk==-1)?jj_ntk():
  4040. jj_ntk;
  4041. if (!(int30==60)) {
  4042. jj_la1[53]=jj_gen;
  4043. break label_16;
  4044. }
  4045. // C.jj, line 611
  4046. // C.jj, line 611
  4047. jj_consume_token(60);
  4048. // C.jj, line 611
  4049. AssignmentExpression();
  4050. }
  4051. }
  4052. catch(Exception e58) {
  4053. hitException58=false;
  4054. if (e58 instanceof ParseException) throw(ParseException) e58;
  4055. if (e58 instanceof RuntimeException) throw(RuntimeException) e58;
  4056. throw new RuntimeException(e58);
  4057. }
  4058. finally {
  4059. if (buildTree) {
  4060. if (!hitException58) {
  4061. closeNodeScope(node58,nodeArity()>1);
  4062. Token jjtEndToken=getToken(0);
  4063. node58.setEndLine(jjtEndToken.endLine);
  4064. node58.setEndColumn(jjtEndToken.endColumn);
  4065. }
  4066. else {
  4067. clearNodeScope();
  4068. mark=marks.remove(marks.size()-1);
  4069. }
  4070. }
  4071. }
  4072. }
  4073. // C.jj, line 614
  4074. final public void AssignmentExpression() throws ParseException {
  4075. // C.jj, line 616
  4076. AssignmentExpression node59=null;
  4077. if (buildTree) {
  4078. node59=new AssignmentExpression();
  4079. Token jjtStartToken=getToken(1);
  4080. node59.setBeginLine(jjtStartToken.beginLine);
  4081. node59.setBeginColumn(jjtStartToken.beginColumn);
  4082. node59.setInputSource(this.getInputSource());
  4083. openNodeScope(node59);
  4084. }
  4085. boolean hitException59=false;
  4086. try {
  4087. if (jj_2_38(2147483647)) {
  4088. // C.jj, line 616
  4089. // C.jj, line 616
  4090. UnaryExpression();
  4091. // C.jj, line 616
  4092. AssignmentOperator();
  4093. // C.jj, line 616
  4094. AssignmentExpression();
  4095. }
  4096. else if (jj_2_39(3)) {
  4097. // C.jj, line 617
  4098. // C.jj, line 617
  4099. ConditionalExpression();
  4100. }
  4101. else {
  4102. jj_consume_token(-1);
  4103. throw new ParseException();
  4104. }
  4105. }
  4106. catch(Exception e59) {
  4107. hitException59=false;
  4108. if (e59 instanceof ParseException) throw(ParseException) e59;
  4109. if (e59 instanceof RuntimeException) throw(RuntimeException) e59;
  4110. throw new RuntimeException(e59);
  4111. }
  4112. finally {
  4113. if (buildTree) {
  4114. if (!hitException59) {
  4115. closeNodeScope(node59,nodeArity()>1);
  4116. Token jjtEndToken=getToken(0);
  4117. node59.setEndLine(jjtEndToken.endLine);
  4118. node59.setEndColumn(jjtEndToken.endColumn);
  4119. }
  4120. else {
  4121. clearNodeScope();
  4122. mark=marks.remove(marks.size()-1);
  4123. }
  4124. }
  4125. }
  4126. }
  4127. // C.jj, line 620
  4128. final public void AssignmentOperator() throws ParseException {
  4129. // C.jj, line 622
  4130. AssignmentOperator node60=null;
  4131. if (buildTree) {
  4132. node60=new AssignmentOperator();
  4133. Token jjtStartToken=getToken(1);
  4134. node60.setBeginLine(jjtStartToken.beginLine);
  4135. node60.setBeginColumn(jjtStartToken.beginColumn);
  4136. node60.setInputSource(this.getInputSource());
  4137. openNodeScope(node60);
  4138. }
  4139. boolean hitException60=false;
  4140. try {
  4141. // C.jj, line 622
  4142. switch((jj_ntk==-1)?jj_ntk():
  4143. jj_ntk) {
  4144. case 61:
  4145. // C.jj, line 622
  4146. // C.jj, line 622
  4147. jj_consume_token(61);
  4148. break;
  4149. case 71:
  4150. // C.jj, line 622
  4151. // C.jj, line 622
  4152. jj_consume_token(71);
  4153. break;
  4154. case 72:
  4155. // C.jj, line 622
  4156. // C.jj, line 622
  4157. jj_consume_token(72);
  4158. break;
  4159. case 73:
  4160. // C.jj, line 622
  4161. // C.jj, line 622
  4162. jj_consume_token(73);
  4163. break;
  4164. case 74:
  4165. // C.jj, line 622
  4166. // C.jj, line 622
  4167. jj_consume_token(74);
  4168. break;
  4169. case 75:
  4170. // C.jj, line 622
  4171. // C.jj, line 622
  4172. jj_consume_token(75);
  4173. break;
  4174. case 76:
  4175. // C.jj, line 622
  4176. // C.jj, line 622
  4177. jj_consume_token(76);
  4178. break;
  4179. case 77:
  4180. // C.jj, line 622
  4181. // C.jj, line 622
  4182. jj_consume_token(77);
  4183. break;
  4184. case 78:
  4185. // C.jj, line 622
  4186. // C.jj, line 622
  4187. jj_consume_token(78);
  4188. break;
  4189. case 79:
  4190. // C.jj, line 622
  4191. // C.jj, line 622
  4192. jj_consume_token(79);
  4193. break;
  4194. case 80:
  4195. // C.jj, line 622
  4196. // C.jj, line 622
  4197. jj_consume_token(80);
  4198. break;
  4199. default:
  4200. jj_la1[54]=jj_gen;
  4201. jj_consume_token(-1);
  4202. throw new ParseException();
  4203. }
  4204. }
  4205. catch(Exception e60) {
  4206. hitException60=false;
  4207. if (e60 instanceof ParseException) throw(ParseException) e60;
  4208. if (e60 instanceof RuntimeException) throw(RuntimeException) e60;
  4209. throw new RuntimeException(e60);
  4210. }
  4211. finally {
  4212. if (buildTree) {
  4213. if (!hitException60) {
  4214. closeNodeScope(node60,nodeArity()>1);
  4215. Token jjtEndToken=getToken(0);
  4216. node60.setEndLine(jjtEndToken.endLine);
  4217. node60.setEndColumn(jjtEndToken.endColumn);
  4218. }
  4219. else {
  4220. clearNodeScope();
  4221. mark=marks.remove(marks.size()-1);
  4222. }
  4223. }
  4224. }
  4225. }
  4226. // C.jj, line 625
  4227. final public void ConditionalExpression() throws ParseException {
  4228. // C.jj, line 627
  4229. ConditionalExpression node61=null;
  4230. if (buildTree) {
  4231. node61=new ConditionalExpression();
  4232. Token jjtStartToken=getToken(1);
  4233. node61.setBeginLine(jjtStartToken.beginLine);
  4234. node61.setBeginColumn(jjtStartToken.beginColumn);
  4235. node61.setInputSource(this.getInputSource());
  4236. openNodeScope(node61);
  4237. }
  4238. boolean hitException61=false;
  4239. try {
  4240. // C.jj, line 627
  4241. LogicalORExpression();
  4242. // C.jj, line 627
  4243. int int31=(jj_ntk==-1)?jj_ntk():
  4244. jj_ntk;
  4245. if (int31==81) {
  4246. // C.jj, line 627
  4247. // C.jj, line 627
  4248. jj_consume_token(81);
  4249. // C.jj, line 627
  4250. Expression();
  4251. // C.jj, line 627
  4252. jj_consume_token(62);
  4253. // C.jj, line 627
  4254. ConditionalExpression();
  4255. }
  4256. else {
  4257. jj_la1[55]=jj_gen;
  4258. }
  4259. }
  4260. catch(Exception e61) {
  4261. hitException61=false;
  4262. if (e61 instanceof ParseException) throw(ParseException) e61;
  4263. if (e61 instanceof RuntimeException) throw(RuntimeException) e61;
  4264. throw new RuntimeException(e61);
  4265. }
  4266. finally {
  4267. if (buildTree) {
  4268. if (!hitException61) {
  4269. closeNodeScope(node61,nodeArity()>1);
  4270. Token jjtEndToken=getToken(0);
  4271. node61.setEndLine(jjtEndToken.endLine);
  4272. node61.setEndColumn(jjtEndToken.endColumn);
  4273. }
  4274. else {
  4275. clearNodeScope();
  4276. mark=marks.remove(marks.size()-1);
  4277. }
  4278. }
  4279. }
  4280. }
  4281. // C.jj, line 630
  4282. final public void ConstantExpression() throws ParseException {
  4283. // C.jj, line 632
  4284. ConstantExpression node62=null;
  4285. if (buildTree) {
  4286. node62=new ConstantExpression();
  4287. Token jjtStartToken=getToken(1);
  4288. node62.setBeginLine(jjtStartToken.beginLine);
  4289. node62.setBeginColumn(jjtStartToken.beginColumn);
  4290. node62.setInputSource(this.getInputSource());
  4291. openNodeScope(node62);
  4292. }
  4293. boolean hitException62=false;
  4294. try {
  4295. // C.jj, line 632
  4296. ConditionalExpression();
  4297. }
  4298. catch(Exception e62) {
  4299. hitException62=false;
  4300. if (e62 instanceof ParseException) throw(ParseException) e62;
  4301. if (e62 instanceof RuntimeException) throw(RuntimeException) e62;
  4302. throw new RuntimeException(e62);
  4303. }
  4304. finally {
  4305. if (buildTree) {
  4306. if (!hitException62) {
  4307. closeNodeScope(node62,nodeArity()>1);
  4308. Token jjtEndToken=getToken(0);
  4309. node62.setEndLine(jjtEndToken.endLine);
  4310. node62.setEndColumn(jjtEndToken.endColumn);
  4311. }
  4312. else {
  4313. clearNodeScope();
  4314. mark=marks.remove(marks.size()-1);
  4315. }
  4316. }
  4317. }
  4318. }
  4319. // C.jj, line 635
  4320. final public void LogicalORExpression() throws ParseException {
  4321. // C.jj, line 637
  4322. LogicalORExpression node63=null;
  4323. if (buildTree) {
  4324. node63=new LogicalORExpression();
  4325. Token jjtStartToken=getToken(1);
  4326. node63.setBeginLine(jjtStartToken.beginLine);
  4327. node63.setBeginColumn(jjtStartToken.beginColumn);
  4328. node63.setInputSource(this.getInputSource());
  4329. openNodeScope(node63);
  4330. }
  4331. boolean hitException63=false;
  4332. try {
  4333. // C.jj, line 637
  4334. LogicalANDExpression();
  4335. // C.jj, line 637
  4336. int int32=(jj_ntk==-1)?jj_ntk():
  4337. jj_ntk;
  4338. if (int32==82) {
  4339. // C.jj, line 637
  4340. // C.jj, line 637
  4341. jj_consume_token(82);
  4342. // C.jj, line 637
  4343. LogicalORExpression();
  4344. }
  4345. else {
  4346. jj_la1[56]=jj_gen;
  4347. }
  4348. }
  4349. catch(Exception e63) {
  4350. hitException63=false;
  4351. if (e63 instanceof ParseException) throw(ParseException) e63;
  4352. if (e63 instanceof RuntimeException) throw(RuntimeException) e63;
  4353. throw new RuntimeException(e63);
  4354. }
  4355. finally {
  4356. if (buildTree) {
  4357. if (!hitException63) {
  4358. closeNodeScope(node63,nodeArity()>1);
  4359. Token jjtEndToken=getToken(0);
  4360. node63.setEndLine(jjtEndToken.endLine);
  4361. node63.setEndColumn(jjtEndToken.endColumn);
  4362. }
  4363. else {
  4364. clearNodeScope();
  4365. mark=marks.remove(marks.size()-1);
  4366. }
  4367. }
  4368. }
  4369. }
  4370. // C.jj, line 640
  4371. final public void LogicalANDExpression() throws ParseException {
  4372. // C.jj, line 642
  4373. LogicalANDExpression node64=null;
  4374. if (buildTree) {
  4375. node64=new LogicalANDExpression();
  4376. Token jjtStartToken=getToken(1);
  4377. node64.setBeginLine(jjtStartToken.beginLine);
  4378. node64.setBeginColumn(jjtStartToken.beginColumn);
  4379. node64.setInputSource(this.getInputSource());
  4380. openNodeScope(node64);
  4381. }
  4382. boolean hitException64=false;
  4383. try {
  4384. // C.jj, line 642
  4385. InclusiveORExpression();
  4386. // C.jj, line 642
  4387. int int33=(jj_ntk==-1)?jj_ntk():
  4388. jj_ntk;
  4389. if (int33==83) {
  4390. // C.jj, line 642
  4391. // C.jj, line 642
  4392. jj_consume_token(83);
  4393. // C.jj, line 642
  4394. LogicalANDExpression();
  4395. }
  4396. else {
  4397. jj_la1[57]=jj_gen;
  4398. }
  4399. }
  4400. catch(Exception e64) {
  4401. hitException64=false;
  4402. if (e64 instanceof ParseException) throw(ParseException) e64;
  4403. if (e64 instanceof RuntimeException) throw(RuntimeException) e64;
  4404. throw new RuntimeException(e64);
  4405. }
  4406. finally {
  4407. if (buildTree) {
  4408. if (!hitException64) {
  4409. closeNodeScope(node64,nodeArity()>1);
  4410. Token jjtEndToken=getToken(0);
  4411. node64.setEndLine(jjtEndToken.endLine);
  4412. node64.setEndColumn(jjtEndToken.endColumn);
  4413. }
  4414. else {
  4415. clearNodeScope();
  4416. mark=marks.remove(marks.size()-1);
  4417. }
  4418. }
  4419. }
  4420. }
  4421. // C.jj, line 645
  4422. final public void InclusiveORExpression() throws ParseException {
  4423. // C.jj, line 647
  4424. InclusiveORExpression node65=null;
  4425. if (buildTree) {
  4426. node65=new InclusiveORExpression();
  4427. Token jjtStartToken=getToken(1);
  4428. node65.setBeginLine(jjtStartToken.beginLine);
  4429. node65.setBeginColumn(jjtStartToken.beginColumn);
  4430. node65.setInputSource(this.getInputSource());
  4431. openNodeScope(node65);
  4432. }
  4433. boolean hitException65=false;
  4434. try {
  4435. // C.jj, line 647
  4436. ExclusiveORExpression();
  4437. // C.jj, line 647
  4438. int int34=(jj_ntk==-1)?jj_ntk():
  4439. jj_ntk;
  4440. if (int34==84) {
  4441. // C.jj, line 647
  4442. // C.jj, line 647
  4443. jj_consume_token(84);
  4444. // C.jj, line 647
  4445. InclusiveORExpression();
  4446. }
  4447. else {
  4448. jj_la1[58]=jj_gen;
  4449. }
  4450. }
  4451. catch(Exception e65) {
  4452. hitException65=false;
  4453. if (e65 instanceof ParseException) throw(ParseException) e65;
  4454. if (e65 instanceof RuntimeException) throw(RuntimeException) e65;
  4455. throw new RuntimeException(e65);
  4456. }
  4457. finally {
  4458. if (buildTree) {
  4459. if (!hitException65) {
  4460. closeNodeScope(node65,nodeArity()>1);
  4461. Token jjtEndToken=getToken(0);
  4462. node65.setEndLine(jjtEndToken.endLine);
  4463. node65.setEndColumn(jjtEndToken.endColumn);
  4464. }
  4465. else {
  4466. clearNodeScope();
  4467. mark=marks.remove(marks.size()-1);
  4468. }
  4469. }
  4470. }
  4471. }
  4472. // C.jj, line 650
  4473. final public void ExclusiveORExpression() throws ParseException {
  4474. // C.jj, line 652
  4475. ExclusiveORExpression node66=null;
  4476. if (buildTree) {
  4477. node66=new ExclusiveORExpression();
  4478. Token jjtStartToken=getToken(1);
  4479. node66.setBeginLine(jjtStartToken.beginLine);
  4480. node66.setBeginColumn(jjtStartToken.beginColumn);
  4481. node66.setInputSource(this.getInputSource());
  4482. openNodeScope(node66);
  4483. }
  4484. boolean hitException66=false;
  4485. try {
  4486. // C.jj, line 652
  4487. ANDExpression();
  4488. // C.jj, line 652
  4489. int int35=(jj_ntk==-1)?jj_ntk():
  4490. jj_ntk;
  4491. if (int35==85) {
  4492. // C.jj, line 652
  4493. // C.jj, line 652
  4494. jj_consume_token(85);
  4495. // C.jj, line 652
  4496. ExclusiveORExpression();
  4497. }
  4498. else {
  4499. jj_la1[59]=jj_gen;
  4500. }
  4501. }
  4502. catch(Exception e66) {
  4503. hitException66=false;
  4504. if (e66 instanceof ParseException) throw(ParseException) e66;
  4505. if (e66 instanceof RuntimeException) throw(RuntimeException) e66;
  4506. throw new RuntimeException(e66);
  4507. }
  4508. finally {
  4509. if (buildTree) {
  4510. if (!hitException66) {
  4511. closeNodeScope(node66,nodeArity()>1);
  4512. Token jjtEndToken=getToken(0);
  4513. node66.setEndLine(jjtEndToken.endLine);
  4514. node66.setEndColumn(jjtEndToken.endColumn);
  4515. }
  4516. else {
  4517. clearNodeScope();
  4518. mark=marks.remove(marks.size()-1);
  4519. }
  4520. }
  4521. }
  4522. }
  4523. // C.jj, line 655
  4524. final public void ANDExpression() throws ParseException {
  4525. // C.jj, line 657
  4526. ANDExpression node67=null;
  4527. if (buildTree) {
  4528. node67=new ANDExpression();
  4529. Token jjtStartToken=getToken(1);
  4530. node67.setBeginLine(jjtStartToken.beginLine);
  4531. node67.setBeginColumn(jjtStartToken.beginColumn);
  4532. node67.setInputSource(this.getInputSource());
  4533. openNodeScope(node67);
  4534. }
  4535. boolean hitException67=false;
  4536. try {
  4537. // C.jj, line 657
  4538. EqualityExpression();
  4539. // C.jj, line 657
  4540. int int36=(jj_ntk==-1)?jj_ntk():
  4541. jj_ntk;
  4542. if (int36==86) {
  4543. // C.jj, line 657
  4544. // C.jj, line 657
  4545. jj_consume_token(86);
  4546. // C.jj, line 657
  4547. ANDExpression();
  4548. }
  4549. else {
  4550. jj_la1[60]=jj_gen;
  4551. }
  4552. }
  4553. catch(Exception e67) {
  4554. hitException67=false;
  4555. if (e67 instanceof ParseException) throw(ParseException) e67;
  4556. if (e67 instanceof RuntimeException) throw(RuntimeException) e67;
  4557. throw new RuntimeException(e67);
  4558. }
  4559. finally {
  4560. if (buildTree) {
  4561. if (!hitException67) {
  4562. closeNodeScope(node67,nodeArity()>1);
  4563. Token jjtEndToken=getToken(0);
  4564. node67.setEndLine(jjtEndToken.endLine);
  4565. node67.setEndColumn(jjtEndToken.endColumn);
  4566. }
  4567. else {
  4568. clearNodeScope();
  4569. mark=marks.remove(marks.size()-1);
  4570. }
  4571. }
  4572. }
  4573. }
  4574. // C.jj, line 660
  4575. final public void EqualityExpression() throws ParseException {
  4576. // C.jj, line 662
  4577. EqualityExpression node68=null;
  4578. if (buildTree) {
  4579. node68=new EqualityExpression();
  4580. Token jjtStartToken=getToken(1);
  4581. node68.setBeginLine(jjtStartToken.beginLine);
  4582. node68.setBeginColumn(jjtStartToken.beginColumn);
  4583. node68.setInputSource(this.getInputSource());
  4584. openNodeScope(node68);
  4585. }
  4586. boolean hitException68=false;
  4587. try {
  4588. // C.jj, line 662
  4589. RelationalExpression();
  4590. // C.jj, line 662
  4591. int int37=(jj_ntk==-1)?jj_ntk():
  4592. jj_ntk;
  4593. if (int37==87||int37==88) {
  4594. // C.jj, line 662
  4595. // C.jj, line 662
  4596. switch((jj_ntk==-1)?jj_ntk():
  4597. jj_ntk) {
  4598. case 87:
  4599. // C.jj, line 662
  4600. // C.jj, line 662
  4601. jj_consume_token(87);
  4602. break;
  4603. case 88:
  4604. // C.jj, line 662
  4605. // C.jj, line 662
  4606. jj_consume_token(88);
  4607. break;
  4608. default:
  4609. jj_la1[61]=jj_gen;
  4610. jj_consume_token(-1);
  4611. throw new ParseException();
  4612. }
  4613. // C.jj, line 662
  4614. EqualityExpression();
  4615. }
  4616. else {
  4617. jj_la1[62]=jj_gen;
  4618. }
  4619. }
  4620. catch(Exception e68) {
  4621. hitException68=false;
  4622. if (e68 instanceof ParseException) throw(ParseException) e68;
  4623. if (e68 instanceof RuntimeException) throw(RuntimeException) e68;
  4624. throw new RuntimeException(e68);
  4625. }
  4626. finally {
  4627. if (buildTree) {
  4628. if (!hitException68) {
  4629. closeNodeScope(node68,nodeArity()>1);
  4630. Token jjtEndToken=getToken(0);
  4631. node68.setEndLine(jjtEndToken.endLine);
  4632. node68.setEndColumn(jjtEndToken.endColumn);
  4633. }
  4634. else {
  4635. clearNodeScope();
  4636. mark=marks.remove(marks.size()-1);
  4637. }
  4638. }
  4639. }
  4640. }
  4641. // C.jj, line 665
  4642. final public void RelationalExpression() throws ParseException {
  4643. // C.jj, line 667
  4644. RelationalExpression node69=null;
  4645. if (buildTree) {
  4646. node69=new RelationalExpression();
  4647. Token jjtStartToken=getToken(1);
  4648. node69.setBeginLine(jjtStartToken.beginLine);
  4649. node69.setBeginColumn(jjtStartToken.beginColumn);
  4650. node69.setInputSource(this.getInputSource());
  4651. openNodeScope(node69);
  4652. }
  4653. boolean hitException69=false;
  4654. try {
  4655. // C.jj, line 667
  4656. AdditiveExpression();
  4657. // C.jj, line 667
  4658. int int38=(jj_ntk==-1)?jj_ntk():
  4659. jj_ntk;
  4660. if (int38==89||int38==90||int38==91||int38==92) {
  4661. // C.jj, line 667
  4662. // C.jj, line 667
  4663. switch((jj_ntk==-1)?jj_ntk():
  4664. jj_ntk) {
  4665. case 89:
  4666. // C.jj, line 667
  4667. // C.jj, line 667
  4668. jj_consume_token(89);
  4669. break;
  4670. case 90:
  4671. // C.jj, line 667
  4672. // C.jj, line 667
  4673. jj_consume_token(90);
  4674. break;
  4675. case 91:
  4676. // C.jj, line 667
  4677. // C.jj, line 667
  4678. jj_consume_token(91);
  4679. break;
  4680. case 92:
  4681. // C.jj, line 667
  4682. // C.jj, line 667
  4683. jj_consume_token(92);
  4684. break;
  4685. default:
  4686. jj_la1[63]=jj_gen;
  4687. jj_consume_token(-1);
  4688. throw new ParseException();
  4689. }
  4690. // C.jj, line 667
  4691. RelationalExpression();
  4692. }
  4693. else {
  4694. jj_la1[64]=jj_gen;
  4695. }
  4696. }
  4697. catch(Exception e69) {
  4698. hitException69=false;
  4699. if (e69 instanceof ParseException) throw(ParseException) e69;
  4700. if (e69 instanceof RuntimeException) throw(RuntimeException) e69;
  4701. throw new RuntimeException(e69);
  4702. }
  4703. finally {
  4704. if (buildTree) {
  4705. if (!hitException69) {
  4706. closeNodeScope(node69,nodeArity()>1);
  4707. Token jjtEndToken=getToken(0);
  4708. node69.setEndLine(jjtEndToken.endLine);
  4709. node69.setEndColumn(jjtEndToken.endColumn);
  4710. }
  4711. else {
  4712. clearNodeScope();
  4713. mark=marks.remove(marks.size()-1);
  4714. }
  4715. }
  4716. }
  4717. }
  4718. /*
  4719. void ShiftExpression() : {}
  4720. {
  4721. //Bitwise shifts not allowed in our grammar
  4722. AdditiveExpression() //[ LOOKAHEAD(3) ( "<<" | ">>" ) ShiftExpression() ]
  4723. }*/
  4724. // C.jj, line 677
  4725. final public void AdditiveExpression() throws ParseException {
  4726. // C.jj, line 679
  4727. AdditiveExpression node70=null;
  4728. if (buildTree) {
  4729. node70=new AdditiveExpression();
  4730. Token jjtStartToken=getToken(1);
  4731. node70.setBeginLine(jjtStartToken.beginLine);
  4732. node70.setBeginColumn(jjtStartToken.beginColumn);
  4733. node70.setInputSource(this.getInputSource());
  4734. openNodeScope(node70);
  4735. }
  4736. boolean hitException70=false;
  4737. try {
  4738. // C.jj, line 679
  4739. MultiplicativeExpression();
  4740. // C.jj, line 679
  4741. int int39=(jj_ntk==-1)?jj_ntk():
  4742. jj_ntk;
  4743. if (int39==93||int39==94) {
  4744. // C.jj, line 679
  4745. // C.jj, line 679
  4746. switch((jj_ntk==-1)?jj_ntk():
  4747. jj_ntk) {
  4748. case 93:
  4749. // C.jj, line 679
  4750. // C.jj, line 679
  4751. jj_consume_token(93);
  4752. break;
  4753. case 94:
  4754. // C.jj, line 679
  4755. // C.jj, line 679
  4756. jj_consume_token(94);
  4757. break;
  4758. default:
  4759. jj_la1[65]=jj_gen;
  4760. jj_consume_token(-1);
  4761. throw new ParseException();
  4762. }
  4763. // C.jj, line 679
  4764. AdditiveExpression();
  4765. }
  4766. else {
  4767. jj_la1[66]=jj_gen;
  4768. }
  4769. }
  4770. catch(Exception e70) {
  4771. hitException70=false;
  4772. if (e70 instanceof ParseException) throw(ParseException) e70;
  4773. if (e70 instanceof RuntimeException) throw(RuntimeException) e70;
  4774. throw new RuntimeException(e70);
  4775. }
  4776. finally {
  4777. if (buildTree) {
  4778. if (!hitException70) {
  4779. closeNodeScope(node70,nodeArity()>1);
  4780. Token jjtEndToken=getToken(0);
  4781. node70.setEndLine(jjtEndToken.endLine);
  4782. node70.setEndColumn(jjtEndToken.endColumn);
  4783. }
  4784. else {
  4785. clearNodeScope();
  4786. mark=marks.remove(marks.size()-1);
  4787. }
  4788. }
  4789. }
  4790. }
  4791. // C.jj, line 682
  4792. final public void MultiplicativeExpression() throws ParseException {
  4793. // C.jj, line 684
  4794. MultiplicativeExpression node71=null;
  4795. if (buildTree) {
  4796. node71=new MultiplicativeExpression();
  4797. Token jjtStartToken=getToken(1);
  4798. node71.setBeginLine(jjtStartToken.beginLine);
  4799. node71.setBeginColumn(jjtStartToken.beginColumn);
  4800. node71.setInputSource(this.getInputSource());
  4801. openNodeScope(node71);
  4802. }
  4803. boolean hitException71=false;
  4804. try {
  4805. // C.jj, line 684
  4806. CastExpression();
  4807. // C.jj, line 684
  4808. int int40=(jj_ntk==-1)?jj_ntk():
  4809. jj_ntk;
  4810. if (int40==67||int40==95||int40==96) {
  4811. // C.jj, line 684
  4812. // C.jj, line 684
  4813. switch((jj_ntk==-1)?jj_ntk():
  4814. jj_ntk) {
  4815. case 67:
  4816. // C.jj, line 684
  4817. // C.jj, line 684
  4818. jj_consume_token(67);
  4819. break;
  4820. case 95:
  4821. // C.jj, line 684
  4822. // C.jj, line 684
  4823. jj_consume_token(95);
  4824. break;
  4825. case 96:
  4826. // C.jj, line 684
  4827. // C.jj, line 684
  4828. jj_consume_token(96);
  4829. break;
  4830. default:
  4831. jj_la1[67]=jj_gen;
  4832. jj_consume_token(-1);
  4833. throw new ParseException();
  4834. }
  4835. // C.jj, line 684
  4836. MultiplicativeExpression();
  4837. }
  4838. else {
  4839. jj_la1[68]=jj_gen;
  4840. }
  4841. }
  4842. catch(Exception e71) {
  4843. hitException71=false;
  4844. if (e71 instanceof ParseException) throw(ParseException) e71;
  4845. if (e71 instanceof RuntimeException) throw(RuntimeException) e71;
  4846. throw new RuntimeException(e71);
  4847. }
  4848. finally {
  4849. if (buildTree) {
  4850. if (!hitException71) {
  4851. closeNodeScope(node71,nodeArity()>1);
  4852. Token jjtEndToken=getToken(0);
  4853. node71.setEndLine(jjtEndToken.endLine);
  4854. node71.setEndColumn(jjtEndToken.endColumn);
  4855. }
  4856. else {
  4857. clearNodeScope();
  4858. mark=marks.remove(marks.size()-1);
  4859. }
  4860. }
  4861. }
  4862. }
  4863. // C.jj, line 687
  4864. final public void CastExpression() throws ParseException {
  4865. // C.jj, line 689
  4866. CastExpression node72=null;
  4867. if (buildTree) {
  4868. node72=new CastExpression();
  4869. Token jjtStartToken=getToken(1);
  4870. node72.setBeginLine(jjtStartToken.beginLine);
  4871. node72.setBeginColumn(jjtStartToken.beginColumn);
  4872. node72.setInputSource(this.getInputSource());
  4873. openNodeScope(node72);
  4874. }
  4875. boolean hitException72=false;
  4876. try {
  4877. // C.jj, line 689
  4878. if (jj_2_40(2147483647)) {
  4879. // C.jj, line 689
  4880. // C.jj, line 689
  4881. jj_consume_token(63);
  4882. // C.jj, line 689
  4883. TypeName();
  4884. // C.jj, line 689
  4885. jj_consume_token(64);
  4886. // C.jj, line 689
  4887. CastExpression();
  4888. }
  4889. else {
  4890. switch((jj_ntk==-1)?jj_ntk():
  4891. jj_ntk) {
  4892. case INTEGER_LITERAL:
  4893. case BOOL_LITERAL:
  4894. case FLOATING_POINT_LITERAL:
  4895. case CHARACTER_LITERAL:
  4896. case STRING_LITERAL:
  4897. case SIZEOF:
  4898. case IDENTIFIER:
  4899. case 67:
  4900. case 86:
  4901. case 93:
  4902. case 94:
  4903. case 97:
  4904. case 98:
  4905. case 99:
  4906. case 100:
  4907. // C.jj, line 690
  4908. // C.jj, line 690
  4909. UnaryExpression();
  4910. break;
  4911. default:
  4912. jj_la1[69]=jj_gen;
  4913. jj_consume_token(-1);
  4914. throw new ParseException();
  4915. }
  4916. }
  4917. }
  4918. catch(Exception e72) {
  4919. hitException72=false;
  4920. if (e72 instanceof ParseException) throw(ParseException) e72;
  4921. if (e72 instanceof RuntimeException) throw(RuntimeException) e72;
  4922. throw new RuntimeException(e72);
  4923. }
  4924. finally {
  4925. if (buildTree) {
  4926. if (!hitException72) {
  4927. closeNodeScope(node72,nodeArity()>1);
  4928. Token jjtEndToken=getToken(0);
  4929. node72.setEndLine(jjtEndToken.endLine);
  4930. node72.setEndColumn(jjtEndToken.endColumn);
  4931. }
  4932. else {
  4933. clearNodeScope();
  4934. mark=marks.remove(marks.size()-1);
  4935. }
  4936. }
  4937. }
  4938. }
  4939. // C.jj, line 693
  4940. final public void UnaryExpression() throws ParseException {
  4941. // C.jj, line 695
  4942. UnaryExpression node73=null;
  4943. if (buildTree) {
  4944. node73=new UnaryExpression();
  4945. Token jjtStartToken=getToken(1);
  4946. node73.setBeginLine(jjtStartToken.beginLine);
  4947. node73.setBeginColumn(jjtStartToken.beginColumn);
  4948. node73.setInputSource(this.getInputSource());
  4949. openNodeScope(node73);
  4950. }
  4951. boolean hitException73=false;
  4952. try {
  4953. // C.jj, line 695
  4954. if (jj_2_41(3)) {
  4955. // C.jj, line 695
  4956. // C.jj, line 695
  4957. PostfixExpression();
  4958. }
  4959. else {
  4960. switch((jj_ntk==-1)?jj_ntk():
  4961. jj_ntk) {
  4962. case 97:
  4963. // C.jj, line 696
  4964. // C.jj, line 696
  4965. PrePPExpression();
  4966. break;
  4967. case 98:
  4968. // C.jj, line 697
  4969. // C.jj, line 697
  4970. PreMMExpression();
  4971. break;
  4972. case 67:
  4973. case 86:
  4974. case 93:
  4975. case 94:
  4976. case 99:
  4977. case 100:
  4978. // C.jj, line 699
  4979. // C.jj, line 699
  4980. UnaryOpExpression();
  4981. break;
  4982. case SIZEOF:
  4983. // C.jj, line 700
  4984. // C.jj, line 700
  4985. SizeofExpression();
  4986. break;
  4987. default:
  4988. jj_la1[70]=jj_gen;
  4989. jj_consume_token(-1);
  4990. throw new ParseException();
  4991. }
  4992. }
  4993. }
  4994. catch(Exception e73) {
  4995. hitException73=false;
  4996. if (e73 instanceof ParseException) throw(ParseException) e73;
  4997. if (e73 instanceof RuntimeException) throw(RuntimeException) e73;
  4998. throw new RuntimeException(e73);
  4999. }
  5000. finally {
  5001. if (buildTree) {
  5002. if (!hitException73) {
  5003. closeNodeScope(node73,nodeArity()>1);
  5004. Token jjtEndToken=getToken(0);
  5005. node73.setEndLine(jjtEndToken.endLine);
  5006. node73.setEndColumn(jjtEndToken.endColumn);
  5007. }
  5008. else {
  5009. clearNodeScope();
  5010. mark=marks.remove(marks.size()-1);
  5011. }
  5012. }
  5013. }
  5014. }
  5015. // C.jj, line 713
  5016. final public void UnaryOpExpression() throws ParseException {
  5017. // C.jj, line 715
  5018. UnaryOpExpression node74=null;
  5019. if (buildTree) {
  5020. node74=new UnaryOpExpression();
  5021. Token jjtStartToken=getToken(1);
  5022. node74.setBeginLine(jjtStartToken.beginLine);
  5023. node74.setBeginColumn(jjtStartToken.beginColumn);
  5024. node74.setInputSource(this.getInputSource());
  5025. openNodeScope(node74);
  5026. }
  5027. boolean hitException74=false;
  5028. try {
  5029. // C.jj, line 715
  5030. switch((jj_ntk==-1)?jj_ntk():
  5031. jj_ntk) {
  5032. case 86:
  5033. // C.jj, line 715
  5034. // C.jj, line 715
  5035. AddrOfExpression();
  5036. break;
  5037. case 67:
  5038. // C.jj, line 716
  5039. // C.jj, line 716
  5040. DerefExpression();
  5041. break;
  5042. case 93:
  5043. // C.jj, line 717
  5044. // C.jj, line 717
  5045. PosExpression();
  5046. break;
  5047. case 94:
  5048. // C.jj, line 718
  5049. // C.jj, line 718
  5050. NegExpression();
  5051. break;
  5052. case 99:
  5053. // C.jj, line 719
  5054. // C.jj, line 719
  5055. BitwiseNotExpression();
  5056. break;
  5057. case 100:
  5058. // C.jj, line 720
  5059. // C.jj, line 720
  5060. NotExpression();
  5061. break;
  5062. default:
  5063. jj_la1[71]=jj_gen;
  5064. jj_consume_token(-1);
  5065. throw new ParseException();
  5066. }
  5067. }
  5068. catch(Exception e74) {
  5069. hitException74=false;
  5070. if (e74 instanceof ParseException) throw(ParseException) e74;
  5071. if (e74 instanceof RuntimeException) throw(RuntimeException) e74;
  5072. throw new RuntimeException(e74);
  5073. }
  5074. finally {
  5075. if (buildTree) {
  5076. if (!hitException74) {
  5077. closeNodeScope(node74,nodeArity()>1);
  5078. Token jjtEndToken=getToken(0);
  5079. node74.setEndLine(jjtEndToken.endLine);
  5080. node74.setEndColumn(jjtEndToken.endColumn);
  5081. }
  5082. else {
  5083. clearNodeScope();
  5084. mark=marks.remove(marks.size()-1);
  5085. }
  5086. }
  5087. }
  5088. }
  5089. // C.jj, line 724
  5090. final public void PrePPExpression() throws ParseException {
  5091. // C.jj, line 726
  5092. PrePPExpression node75=null;
  5093. if (buildTree) {
  5094. node75=new PrePPExpression();
  5095. Token jjtStartToken=getToken(1);
  5096. node75.setBeginLine(jjtStartToken.beginLine);
  5097. node75.setBeginColumn(jjtStartToken.beginColumn);
  5098. node75.setInputSource(this.getInputSource());
  5099. openNodeScope(node75);
  5100. }
  5101. boolean hitException75=false;
  5102. try {
  5103. // C.jj, line 726
  5104. // C.jj, line 726
  5105. jj_consume_token(97);
  5106. // C.jj, line 726
  5107. UnaryExpression();
  5108. }
  5109. catch(Exception e75) {
  5110. hitException75=false;
  5111. if (e75 instanceof ParseException) throw(ParseException) e75;
  5112. if (e75 instanceof RuntimeException) throw(RuntimeException) e75;
  5113. throw new RuntimeException(e75);
  5114. }
  5115. finally {
  5116. if (buildTree) {
  5117. if (!hitException75) {
  5118. closeNodeScope(node75,nodeArity()>1);
  5119. Token jjtEndToken=getToken(0);
  5120. node75.setEndLine(jjtEndToken.endLine);
  5121. node75.setEndColumn(jjtEndToken.endColumn);
  5122. }
  5123. else {
  5124. clearNodeScope();
  5125. mark=marks.remove(marks.size()-1);
  5126. }
  5127. }
  5128. }
  5129. }
  5130. // C.jj, line 729
  5131. final public void PreMMExpression() throws ParseException {
  5132. // C.jj, line 731
  5133. PreMMExpression node76=null;
  5134. if (buildTree) {
  5135. node76=new PreMMExpression();
  5136. Token jjtStartToken=getToken(1);
  5137. node76.setBeginLine(jjtStartToken.beginLine);
  5138. node76.setBeginColumn(jjtStartToken.beginColumn);
  5139. node76.setInputSource(this.getInputSource());
  5140. openNodeScope(node76);
  5141. }
  5142. boolean hitException76=false;
  5143. try {
  5144. // C.jj, line 731
  5145. // C.jj, line 731
  5146. jj_consume_token(98);
  5147. // C.jj, line 731
  5148. UnaryExpression();
  5149. }
  5150. catch(Exception e76) {
  5151. hitException76=false;
  5152. if (e76 instanceof ParseException) throw(ParseException) e76;
  5153. if (e76 instanceof RuntimeException) throw(RuntimeException) e76;
  5154. throw new RuntimeException(e76);
  5155. }
  5156. finally {
  5157. if (buildTree) {
  5158. if (!hitException76) {
  5159. closeNodeScope(node76,nodeArity()>1);
  5160. Token jjtEndToken=getToken(0);
  5161. node76.setEndLine(jjtEndToken.endLine);
  5162. node76.setEndColumn(jjtEndToken.endColumn);
  5163. }
  5164. else {
  5165. clearNodeScope();
  5166. mark=marks.remove(marks.size()-1);
  5167. }
  5168. }
  5169. }
  5170. }
  5171. // C.jj, line 734
  5172. final public void SizeofExpression() throws ParseException {
  5173. // C.jj, line 736
  5174. SizeofExpression node77=null;
  5175. if (buildTree) {
  5176. node77=new SizeofExpression();
  5177. Token jjtStartToken=getToken(1);
  5178. node77.setBeginLine(jjtStartToken.beginLine);
  5179. node77.setBeginColumn(jjtStartToken.beginColumn);
  5180. node77.setInputSource(this.getInputSource());
  5181. openNodeScope(node77);
  5182. }
  5183. boolean hitException77=false;
  5184. try {
  5185. // C.jj, line 736
  5186. jj_consume_token(SIZEOF);
  5187. // C.jj, line 736
  5188. if (jj_2_42(2147483647)) {
  5189. // C.jj, line 736
  5190. // C.jj, line 736
  5191. UnaryExpression();
  5192. }
  5193. else {
  5194. switch((jj_ntk==-1)?jj_ntk():
  5195. jj_ntk) {
  5196. case 63:
  5197. // C.jj, line 736
  5198. // C.jj, line 736
  5199. jj_consume_token(63);
  5200. // C.jj, line 736
  5201. TypeName();
  5202. // C.jj, line 736
  5203. jj_consume_token(64);
  5204. break;
  5205. default:
  5206. jj_la1[72]=jj_gen;
  5207. jj_consume_token(-1);
  5208. throw new ParseException();
  5209. }
  5210. }
  5211. }
  5212. catch(Exception e77) {
  5213. hitException77=false;
  5214. if (e77 instanceof ParseException) throw(ParseException) e77;
  5215. if (e77 instanceof RuntimeException) throw(RuntimeException) e77;
  5216. throw new RuntimeException(e77);
  5217. }
  5218. finally {
  5219. if (buildTree) {
  5220. if (!hitException77) {
  5221. closeNodeScope(node77,nodeArity()>1);
  5222. Token jjtEndToken=getToken(0);
  5223. node77.setEndLine(jjtEndToken.endLine);
  5224. node77.setEndColumn(jjtEndToken.endColumn);
  5225. }
  5226. else {
  5227. clearNodeScope();
  5228. mark=marks.remove(marks.size()-1);
  5229. }
  5230. }
  5231. }
  5232. }
  5233. // C.jj, line 739
  5234. final public void AddrOfExpression() throws ParseException {
  5235. // C.jj, line 741
  5236. AddrOfExpression node78=null;
  5237. if (buildTree) {
  5238. node78=new AddrOfExpression();
  5239. Token jjtStartToken=getToken(1);
  5240. node78.setBeginLine(jjtStartToken.beginLine);
  5241. node78.setBeginColumn(jjtStartToken.beginColumn);
  5242. node78.setInputSource(this.getInputSource());
  5243. openNodeScope(node78);
  5244. }
  5245. boolean hitException78=false;
  5246. try {
  5247. // C.jj, line 741
  5248. // C.jj, line 741
  5249. jj_consume_token(86);
  5250. // C.jj, line 741
  5251. CastExpression();
  5252. }
  5253. catch(Exception e78) {
  5254. hitException78=false;
  5255. if (e78 instanceof ParseException) throw(ParseException) e78;
  5256. if (e78 instanceof RuntimeException) throw(RuntimeException) e78;
  5257. throw new RuntimeException(e78);
  5258. }
  5259. finally {
  5260. if (buildTree) {
  5261. if (!hitException78) {
  5262. closeNodeScope(node78,nodeArity()>1);
  5263. Token jjtEndToken=getToken(0);
  5264. node78.setEndLine(jjtEndToken.endLine);
  5265. node78.setEndColumn(jjtEndToken.endColumn);
  5266. }
  5267. else {
  5268. clearNodeScope();
  5269. mark=marks.remove(marks.size()-1);
  5270. }
  5271. }
  5272. }
  5273. }
  5274. // C.jj, line 744
  5275. final public void DerefExpression() throws ParseException {
  5276. // C.jj, line 746
  5277. DerefExpression node79=null;
  5278. if (buildTree) {
  5279. node79=new DerefExpression();
  5280. Token jjtStartToken=getToken(1);
  5281. node79.setBeginLine(jjtStartToken.beginLine);
  5282. node79.setBeginColumn(jjtStartToken.beginColumn);
  5283. node79.setInputSource(this.getInputSource());
  5284. openNodeScope(node79);
  5285. }
  5286. boolean hitException79=false;
  5287. try {
  5288. // C.jj, line 746
  5289. // C.jj, line 746
  5290. jj_consume_token(67);
  5291. // C.jj, line 746
  5292. CastExpression();
  5293. }
  5294. catch(Exception e79) {
  5295. hitException79=false;
  5296. if (e79 instanceof ParseException) throw(ParseException) e79;
  5297. if (e79 instanceof RuntimeException) throw(RuntimeException) e79;
  5298. throw new RuntimeException(e79);
  5299. }
  5300. finally {
  5301. if (buildTree) {
  5302. if (!hitException79) {
  5303. closeNodeScope(node79,nodeArity()>1);
  5304. Token jjtEndToken=getToken(0);
  5305. node79.setEndLine(jjtEndToken.endLine);
  5306. node79.setEndColumn(jjtEndToken.endColumn);
  5307. }
  5308. else {
  5309. clearNodeScope();
  5310. mark=marks.remove(marks.size()-1);
  5311. }
  5312. }
  5313. }
  5314. }
  5315. // C.jj, line 749
  5316. final public void PosExpression() throws ParseException {
  5317. // C.jj, line 751
  5318. PosExpression node80=null;
  5319. if (buildTree) {
  5320. node80=new PosExpression();
  5321. Token jjtStartToken=getToken(1);
  5322. node80.setBeginLine(jjtStartToken.beginLine);
  5323. node80.setBeginColumn(jjtStartToken.beginColumn);
  5324. node80.setInputSource(this.getInputSource());
  5325. openNodeScope(node80);
  5326. }
  5327. boolean hitException80=false;
  5328. try {
  5329. // C.jj, line 751
  5330. // C.jj, line 751
  5331. jj_consume_token(93);
  5332. // C.jj, line 751
  5333. CastExpression();
  5334. }
  5335. catch(Exception e80) {
  5336. hitException80=false;
  5337. if (e80 instanceof ParseException) throw(ParseException) e80;
  5338. if (e80 instanceof RuntimeException) throw(RuntimeException) e80;
  5339. throw new RuntimeException(e80);
  5340. }
  5341. finally {
  5342. if (buildTree) {
  5343. if (!hitException80) {
  5344. closeNodeScope(node80,nodeArity()>1);
  5345. Token jjtEndToken=getToken(0);
  5346. node80.setEndLine(jjtEndToken.endLine);
  5347. node80.setEndColumn(jjtEndToken.endColumn);
  5348. }
  5349. else {
  5350. clearNodeScope();
  5351. mark=marks.remove(marks.size()-1);
  5352. }
  5353. }
  5354. }
  5355. }
  5356. // C.jj, line 754
  5357. final public void NegExpression() throws ParseException {
  5358. // C.jj, line 756
  5359. NegExpression node81=null;
  5360. if (buildTree) {
  5361. node81=new NegExpression();
  5362. Token jjtStartToken=getToken(1);
  5363. node81.setBeginLine(jjtStartToken.beginLine);
  5364. node81.setBeginColumn(jjtStartToken.beginColumn);
  5365. node81.setInputSource(this.getInputSource());
  5366. openNodeScope(node81);
  5367. }
  5368. boolean hitException81=false;
  5369. try {
  5370. // C.jj, line 756
  5371. // C.jj, line 756
  5372. jj_consume_token(94);
  5373. // C.jj, line 756
  5374. CastExpression();
  5375. }
  5376. catch(Exception e81) {
  5377. hitException81=false;
  5378. if (e81 instanceof ParseException) throw(ParseException) e81;
  5379. if (e81 instanceof RuntimeException) throw(RuntimeException) e81;
  5380. throw new RuntimeException(e81);
  5381. }
  5382. finally {
  5383. if (buildTree) {
  5384. if (!hitException81) {
  5385. closeNodeScope(node81,nodeArity()>1);
  5386. Token jjtEndToken=getToken(0);
  5387. node81.setEndLine(jjtEndToken.endLine);
  5388. node81.setEndColumn(jjtEndToken.endColumn);
  5389. }
  5390. else {
  5391. clearNodeScope();
  5392. mark=marks.remove(marks.size()-1);
  5393. }
  5394. }
  5395. }
  5396. }
  5397. // C.jj, line 759
  5398. final public void BitwiseNotExpression() throws ParseException {
  5399. // C.jj, line 761
  5400. BitwiseNotExpression node82=null;
  5401. if (buildTree) {
  5402. node82=new BitwiseNotExpression();
  5403. Token jjtStartToken=getToken(1);
  5404. node82.setBeginLine(jjtStartToken.beginLine);
  5405. node82.setBeginColumn(jjtStartToken.beginColumn);
  5406. node82.setInputSource(this.getInputSource());
  5407. openNodeScope(node82);
  5408. }
  5409. boolean hitException82=false;
  5410. try {
  5411. // C.jj, line 761
  5412. // C.jj, line 761
  5413. jj_consume_token(99);
  5414. // C.jj, line 761
  5415. CastExpression();
  5416. }
  5417. catch(Exception e82) {
  5418. hitException82=false;
  5419. if (e82 instanceof ParseException) throw(ParseException) e82;
  5420. if (e82 instanceof RuntimeException) throw(RuntimeException) e82;
  5421. throw new RuntimeException(e82);
  5422. }
  5423. finally {
  5424. if (buildTree) {
  5425. if (!hitException82) {
  5426. closeNodeScope(node82,nodeArity()>1);
  5427. Token jjtEndToken=getToken(0);
  5428. node82.setEndLine(jjtEndToken.endLine);
  5429. node82.setEndColumn(jjtEndToken.endColumn);
  5430. }
  5431. else {
  5432. clearNodeScope();
  5433. mark=marks.remove(marks.size()-1);
  5434. }
  5435. }
  5436. }
  5437. }
  5438. // C.jj, line 764
  5439. final public void NotExpression() throws ParseException {
  5440. // C.jj, line 766
  5441. NotExpression node83=null;
  5442. if (buildTree) {
  5443. node83=new NotExpression();
  5444. Token jjtStartToken=getToken(1);
  5445. node83.setBeginLine(jjtStartToken.beginLine);
  5446. node83.setBeginColumn(jjtStartToken.beginColumn);
  5447. node83.setInputSource(this.getInputSource());
  5448. openNodeScope(node83);
  5449. }
  5450. boolean hitException83=false;
  5451. try {
  5452. // C.jj, line 766
  5453. // C.jj, line 766
  5454. jj_consume_token(100);
  5455. // C.jj, line 766
  5456. CastExpression();
  5457. }
  5458. catch(Exception e83) {
  5459. hitException83=false;
  5460. if (e83 instanceof ParseException) throw(ParseException) e83;
  5461. if (e83 instanceof RuntimeException) throw(RuntimeException) e83;
  5462. throw new RuntimeException(e83);
  5463. }
  5464. finally {
  5465. if (buildTree) {
  5466. if (!hitException83) {
  5467. closeNodeScope(node83,nodeArity()>1);
  5468. Token jjtEndToken=getToken(0);
  5469. node83.setEndLine(jjtEndToken.endLine);
  5470. node83.setEndColumn(jjtEndToken.endColumn);
  5471. }
  5472. else {
  5473. clearNodeScope();
  5474. mark=marks.remove(marks.size()-1);
  5475. }
  5476. }
  5477. }
  5478. }
  5479. /*
  5480. void UnaryOperator() : {}
  5481. {
  5482. ( "&" | "*" | "+" | "-" | "~" | "!" )
  5483. }
  5484. */
  5485. //Split Up for Giraffe
  5486. // C.jj, line 778
  5487. final public void PostfixExpression() throws ParseException {
  5488. // C.jj, line 780
  5489. PostfixExpression node84=null;
  5490. if (buildTree) {
  5491. node84=new PostfixExpression();
  5492. Token jjtStartToken=getToken(1);
  5493. node84.setBeginLine(jjtStartToken.beginLine);
  5494. node84.setBeginColumn(jjtStartToken.beginColumn);
  5495. node84.setInputSource(this.getInputSource());
  5496. openNodeScope(node84);
  5497. }
  5498. boolean hitException84=false;
  5499. try {
  5500. // C.jj, line 780
  5501. PrimaryExpression();
  5502. // C.jj, line 780
  5503. PostfixList();
  5504. }
  5505. catch(Exception e84) {
  5506. hitException84=false;
  5507. if (e84 instanceof ParseException) throw(ParseException) e84;
  5508. if (e84 instanceof RuntimeException) throw(RuntimeException) e84;
  5509. throw new RuntimeException(e84);
  5510. }
  5511. finally {
  5512. if (buildTree) {
  5513. if (!hitException84) {
  5514. closeNodeScope(node84,nodeArity()>1);
  5515. Token jjtEndToken=getToken(0);
  5516. node84.setEndLine(jjtEndToken.endLine);
  5517. node84.setEndColumn(jjtEndToken.endColumn);
  5518. }
  5519. else {
  5520. clearNodeScope();
  5521. mark=marks.remove(marks.size()-1);
  5522. }
  5523. }
  5524. }
  5525. }
  5526. // C.jj, line 783
  5527. final public void Postfix() throws ParseException {
  5528. // C.jj, line 785
  5529. Postfix node85=null;
  5530. if (buildTree) {
  5531. node85=new Postfix();
  5532. Token jjtStartToken=getToken(1);
  5533. node85.setBeginLine(jjtStartToken.beginLine);
  5534. node85.setBeginColumn(jjtStartToken.beginColumn);
  5535. node85.setInputSource(this.getInputSource());
  5536. openNodeScope(node85);
  5537. }
  5538. boolean hitException85=false;
  5539. try {
  5540. switch((jj_ntk==-1)?jj_ntk():
  5541. jj_ntk) {
  5542. case 65:
  5543. // C.jj, line 785
  5544. // C.jj, line 785
  5545. ArrBoxPostfix();
  5546. break;
  5547. case 63:
  5548. // C.jj, line 786
  5549. // C.jj, line 786
  5550. FnCallPostfix();
  5551. break;
  5552. case 101:
  5553. // C.jj, line 787
  5554. // C.jj, line 787
  5555. DotMemberPostfix();
  5556. break;
  5557. case 102:
  5558. // C.jj, line 788
  5559. // C.jj, line 788
  5560. ArrowMemberPostfix();
  5561. break;
  5562. case 97:
  5563. // C.jj, line 789
  5564. // C.jj, line 789
  5565. PPPostfix();
  5566. break;
  5567. case 98:
  5568. // C.jj, line 790
  5569. // C.jj, line 790
  5570. MMPostfix();
  5571. break;
  5572. default:
  5573. jj_la1[73]=jj_gen;
  5574. jj_consume_token(-1);
  5575. throw new ParseException();
  5576. }
  5577. }
  5578. catch(Exception e85) {
  5579. hitException85=false;
  5580. if (e85 instanceof ParseException) throw(ParseException) e85;
  5581. if (e85 instanceof RuntimeException) throw(RuntimeException) e85;
  5582. throw new RuntimeException(e85);
  5583. }
  5584. finally {
  5585. if (buildTree) {
  5586. if (!hitException85) {
  5587. closeNodeScope(node85,nodeArity()>1);
  5588. Token jjtEndToken=getToken(0);
  5589. node85.setEndLine(jjtEndToken.endLine);
  5590. node85.setEndColumn(jjtEndToken.endColumn);
  5591. }
  5592. else {
  5593. clearNodeScope();
  5594. mark=marks.remove(marks.size()-1);
  5595. }
  5596. }
  5597. }
  5598. }
  5599. //Simulation of Kleene star to make tree eaiser to parse
  5600. // C.jj, line 794
  5601. final public void PostfixList() throws ParseException {
  5602. // C.jj, line 797
  5603. PostfixList node86=null;
  5604. if (buildTree) {
  5605. node86=new PostfixList();
  5606. Token jjtStartToken=getToken(1);
  5607. node86.setBeginLine(jjtStartToken.beginLine);
  5608. node86.setBeginColumn(jjtStartToken.beginColumn);
  5609. node86.setInputSource(this.getInputSource());
  5610. openNodeScope(node86);
  5611. }
  5612. boolean hitException86=false;
  5613. try {
  5614. // C.jj, line 797
  5615. label_17:
  5616. while (true) {
  5617. int int41=(jj_ntk==-1)?jj_ntk():
  5618. jj_ntk;
  5619. if (!(int41==63||int41==65||int41==97||int41==98||int41==101||int41==102)) {
  5620. jj_la1[74]=jj_gen;
  5621. break label_17;
  5622. }
  5623. // C.jj, line 797
  5624. // C.jj, line 797
  5625. Postfix();
  5626. }
  5627. }
  5628. catch(Exception e86) {
  5629. hitException86=false;
  5630. if (e86 instanceof ParseException) throw(ParseException) e86;
  5631. if (e86 instanceof RuntimeException) throw(RuntimeException) e86;
  5632. throw new RuntimeException(e86);
  5633. }
  5634. finally {
  5635. if (buildTree) {
  5636. if (!hitException86) {
  5637. closeNodeScope(node86,nodeArity()>1);
  5638. Token jjtEndToken=getToken(0);
  5639. node86.setEndLine(jjtEndToken.endLine);
  5640. node86.setEndColumn(jjtEndToken.endColumn);
  5641. }
  5642. else {
  5643. clearNodeScope();
  5644. mark=marks.remove(marks.size()-1);
  5645. }
  5646. }
  5647. }
  5648. }
  5649. // C.jj, line 802
  5650. final public void ArrBoxPostfix() throws ParseException {
  5651. // C.jj, line 804
  5652. ArrBoxPostfix node87=null;
  5653. if (buildTree) {
  5654. node87=new ArrBoxPostfix();
  5655. Token jjtStartToken=getToken(1);
  5656. node87.setBeginLine(jjtStartToken.beginLine);
  5657. node87.setBeginColumn(jjtStartToken.beginColumn);
  5658. node87.setInputSource(this.getInputSource());
  5659. openNodeScope(node87);
  5660. }
  5661. boolean hitException87=false;
  5662. try {
  5663. // C.jj, line 804
  5664. jj_consume_token(65);
  5665. // C.jj, line 804
  5666. Expression();
  5667. // C.jj, line 804
  5668. jj_consume_token(66);
  5669. }
  5670. catch(Exception e87) {
  5671. hitException87=false;
  5672. if (e87 instanceof ParseException) throw(ParseException) e87;
  5673. if (e87 instanceof RuntimeException) throw(RuntimeException) e87;
  5674. throw new RuntimeException(e87);
  5675. }
  5676. finally {
  5677. if (buildTree) {
  5678. if (!hitException87) {
  5679. closeNodeScope(node87,nodeArity()>1);
  5680. Token jjtEndToken=getToken(0);
  5681. node87.setEndLine(jjtEndToken.endLine);
  5682. node87.setEndColumn(jjtEndToken.endColumn);
  5683. }
  5684. else {
  5685. clearNodeScope();
  5686. mark=marks.remove(marks.size()-1);
  5687. }
  5688. }
  5689. }
  5690. }
  5691. // C.jj, line 807
  5692. final public void FnCallPostfix() throws ParseException {
  5693. // C.jj, line 809
  5694. FnCallPostfix node88=null;
  5695. if (buildTree) {
  5696. node88=new FnCallPostfix();
  5697. Token jjtStartToken=getToken(1);
  5698. node88.setBeginLine(jjtStartToken.beginLine);
  5699. node88.setBeginColumn(jjtStartToken.beginColumn);
  5700. node88.setInputSource(this.getInputSource());
  5701. openNodeScope(node88);
  5702. }
  5703. boolean hitException88=false;
  5704. try {
  5705. // C.jj, line 809
  5706. jj_consume_token(63);
  5707. // C.jj, line 809
  5708. if (jj_2_43(2147483647)) {
  5709. // C.jj, line 809
  5710. // C.jj, line 809
  5711. ArgumentExpressionList();
  5712. }
  5713. // C.jj, line 809
  5714. jj_consume_token(64);
  5715. }
  5716. catch(Exception e88) {
  5717. hitException88=false;
  5718. if (e88 instanceof ParseException) throw(ParseException) e88;
  5719. if (e88 instanceof RuntimeException) throw(RuntimeException) e88;
  5720. throw new RuntimeException(e88);
  5721. }
  5722. finally {
  5723. if (buildTree) {
  5724. if (!hitException88) {
  5725. closeNodeScope(node88,nodeArity()>1);
  5726. Token jjtEndToken=getToken(0);
  5727. node88.setEndLine(jjtEndToken.endLine);
  5728. node88.setEndColumn(jjtEndToken.endColumn);
  5729. }
  5730. else {
  5731. clearNodeScope();
  5732. mark=marks.remove(marks.size()-1);
  5733. }
  5734. }
  5735. }
  5736. }
  5737. // C.jj, line 812
  5738. final public void DotMemberPostfix() throws ParseException {
  5739. // C.jj, line 814
  5740. DotMemberPostfix node89=null;
  5741. if (buildTree) {
  5742. node89=new DotMemberPostfix();
  5743. Token jjtStartToken=getToken(1);
  5744. node89.setBeginLine(jjtStartToken.beginLine);
  5745. node89.setBeginColumn(jjtStartToken.beginColumn);
  5746. node89.setInputSource(this.getInputSource());
  5747. openNodeScope(node89);
  5748. }
  5749. boolean hitException89=false;
  5750. try {
  5751. // C.jj, line 814
  5752. jj_consume_token(101);
  5753. // C.jj, line 814
  5754. jj_consume_token(IDENTIFIER);
  5755. }
  5756. catch(Exception e89) {
  5757. hitException89=false;
  5758. if (e89 instanceof ParseException) throw(ParseException) e89;
  5759. if (e89 instanceof RuntimeException) throw(RuntimeException) e89;
  5760. throw new RuntimeException(e89);
  5761. }
  5762. finally {
  5763. if (buildTree) {
  5764. if (!hitException89) {
  5765. closeNodeScope(node89,nodeArity()>1);
  5766. Token jjtEndToken=getToken(0);
  5767. node89.setEndLine(jjtEndToken.endLine);
  5768. node89.setEndColumn(jjtEndToken.endColumn);
  5769. }
  5770. else {
  5771. clearNodeScope();
  5772. mark=marks.remove(marks.size()-1);
  5773. }
  5774. }
  5775. }
  5776. }
  5777. // C.jj, line 817
  5778. final public void ArrowMemberPostfix() throws ParseException {
  5779. // C.jj, line 819
  5780. ArrowMemberPostfix node90=null;
  5781. if (buildTree) {
  5782. node90=new ArrowMemberPostfix();
  5783. Token jjtStartToken=getToken(1);
  5784. node90.setBeginLine(jjtStartToken.beginLine);
  5785. node90.setBeginColumn(jjtStartToken.beginColumn);
  5786. node90.setInputSource(this.getInputSource());
  5787. openNodeScope(node90);
  5788. }
  5789. boolean hitException90=false;
  5790. try {
  5791. // C.jj, line 819
  5792. jj_consume_token(102);
  5793. // C.jj, line 819
  5794. jj_consume_token(IDENTIFIER);
  5795. }
  5796. catch(Exception e90) {
  5797. hitException90=false;
  5798. if (e90 instanceof ParseException) throw(ParseException) e90;
  5799. if (e90 instanceof RuntimeException) throw(RuntimeException) e90;
  5800. throw new RuntimeException(e90);
  5801. }
  5802. finally {
  5803. if (buildTree) {
  5804. if (!hitException90) {
  5805. closeNodeScope(node90,nodeArity()>1);
  5806. Token jjtEndToken=getToken(0);
  5807. node90.setEndLine(jjtEndToken.endLine);
  5808. node90.setEndColumn(jjtEndToken.endColumn);
  5809. }
  5810. else {
  5811. clearNodeScope();
  5812. mark=marks.remove(marks.size()-1);
  5813. }
  5814. }
  5815. }
  5816. }
  5817. // C.jj, line 822
  5818. final public void PPPostfix() throws ParseException {
  5819. // C.jj, line 824
  5820. PPPostfix node91=null;
  5821. if (buildTree) {
  5822. node91=new PPPostfix();
  5823. Token jjtStartToken=getToken(1);
  5824. node91.setBeginLine(jjtStartToken.beginLine);
  5825. node91.setBeginColumn(jjtStartToken.beginColumn);
  5826. node91.setInputSource(this.getInputSource());
  5827. openNodeScope(node91);
  5828. }
  5829. boolean hitException91=false;
  5830. try {
  5831. // C.jj, line 824
  5832. jj_consume_token(97);
  5833. }
  5834. catch(Exception e91) {
  5835. hitException91=false;
  5836. if (e91 instanceof ParseException) throw(ParseException) e91;
  5837. if (e91 instanceof RuntimeException) throw(RuntimeException) e91;
  5838. throw new RuntimeException(e91);
  5839. }
  5840. finally {
  5841. if (buildTree) {
  5842. if (!hitException91) {
  5843. closeNodeScope(node91,nodeArity()>1);
  5844. Token jjtEndToken=getToken(0);
  5845. node91.setEndLine(jjtEndToken.endLine);
  5846. node91.setEndColumn(jjtEndToken.endColumn);
  5847. }
  5848. else {
  5849. clearNodeScope();
  5850. mark=marks.remove(marks.size()-1);
  5851. }
  5852. }
  5853. }
  5854. }
  5855. // C.jj, line 827
  5856. final public void MMPostfix() throws ParseException {
  5857. // C.jj, line 829
  5858. MMPostfix node92=null;
  5859. if (buildTree) {
  5860. node92=new MMPostfix();
  5861. Token jjtStartToken=getToken(1);
  5862. node92.setBeginLine(jjtStartToken.beginLine);
  5863. node92.setBeginColumn(jjtStartToken.beginColumn);
  5864. node92.setInputSource(this.getInputSource());
  5865. openNodeScope(node92);
  5866. }
  5867. boolean hitException92=false;
  5868. try {
  5869. // C.jj, line 829
  5870. jj_consume_token(98);
  5871. }
  5872. catch(Exception e92) {
  5873. hitException92=false;
  5874. if (e92 instanceof ParseException) throw(ParseException) e92;
  5875. if (e92 instanceof RuntimeException) throw(RuntimeException) e92;
  5876. throw new RuntimeException(e92);
  5877. }
  5878. finally {
  5879. if (buildTree) {
  5880. if (!hitException92) {
  5881. closeNodeScope(node92,nodeArity()>1);
  5882. Token jjtEndToken=getToken(0);
  5883. node92.setEndLine(jjtEndToken.endLine);
  5884. node92.setEndColumn(jjtEndToken.endColumn);
  5885. }
  5886. else {
  5887. clearNodeScope();
  5888. mark=marks.remove(marks.size()-1);
  5889. }
  5890. }
  5891. }
  5892. }
  5893. // C.jj, line 832
  5894. final public void ParenExpression() throws ParseException {
  5895. // C.jj, line 834
  5896. ParenExpression node93=null;
  5897. if (buildTree) {
  5898. node93=new ParenExpression();
  5899. Token jjtStartToken=getToken(1);
  5900. node93.setBeginLine(jjtStartToken.beginLine);
  5901. node93.setBeginColumn(jjtStartToken.beginColumn);
  5902. node93.setInputSource(this.getInputSource());
  5903. openNodeScope(node93);
  5904. }
  5905. boolean hitException93=false;
  5906. try {
  5907. // C.jj, line 834
  5908. switch((jj_ntk==-1)?jj_ntk():
  5909. jj_ntk) {
  5910. case INTEGER_LITERAL:
  5911. case BOOL_LITERAL:
  5912. case FLOATING_POINT_LITERAL:
  5913. case CHARACTER_LITERAL:
  5914. case STRING_LITERAL:
  5915. case IDENTIFIER:
  5916. // C.jj, line 834
  5917. // C.jj, line 834
  5918. PrimaryExpression();
  5919. break;
  5920. case 63:
  5921. // C.jj, line 835
  5922. // C.jj, line 835
  5923. jj_consume_token(63);
  5924. // C.jj, line 835
  5925. Expression();
  5926. // C.jj, line 835
  5927. jj_consume_token(64);
  5928. break;
  5929. default:
  5930. jj_la1[75]=jj_gen;
  5931. jj_consume_token(-1);
  5932. throw new ParseException();
  5933. }
  5934. }
  5935. catch(Exception e93) {
  5936. hitException93=false;
  5937. if (e93 instanceof ParseException) throw(ParseException) e93;
  5938. if (e93 instanceof RuntimeException) throw(RuntimeException) e93;
  5939. throw new RuntimeException(e93);
  5940. }
  5941. finally {
  5942. if (buildTree) {
  5943. if (!hitException93) {
  5944. closeNodeScope(node93,nodeArity()>1);
  5945. Token jjtEndToken=getToken(0);
  5946. node93.setEndLine(jjtEndToken.endLine);
  5947. node93.setEndColumn(jjtEndToken.endColumn);
  5948. }
  5949. else {
  5950. clearNodeScope();
  5951. mark=marks.remove(marks.size()-1);
  5952. }
  5953. }
  5954. }
  5955. }
  5956. // C.jj, line 838
  5957. final public void PrimaryExpression() throws ParseException {
  5958. // C.jj, line 840
  5959. PrimaryExpression node94=null;
  5960. if (buildTree) {
  5961. node94=new PrimaryExpression();
  5962. Token jjtStartToken=getToken(1);
  5963. node94.setBeginLine(jjtStartToken.beginLine);
  5964. node94.setBeginColumn(jjtStartToken.beginColumn);
  5965. node94.setInputSource(this.getInputSource());
  5966. openNodeScope(node94);
  5967. }
  5968. boolean hitException94=false;
  5969. try {
  5970. // C.jj, line 840
  5971. switch((jj_ntk==-1)?jj_ntk():
  5972. jj_ntk) {
  5973. case IDENTIFIER:
  5974. // C.jj, line 840
  5975. // C.jj, line 840
  5976. VariableExpression();
  5977. break;
  5978. case INTEGER_LITERAL:
  5979. case BOOL_LITERAL:
  5980. case FLOATING_POINT_LITERAL:
  5981. case CHARACTER_LITERAL:
  5982. case STRING_LITERAL:
  5983. // C.jj, line 841
  5984. // C.jj, line 841
  5985. Constant();
  5986. break;
  5987. default:
  5988. jj_la1[76]=jj_gen;
  5989. jj_consume_token(-1);
  5990. throw new ParseException();
  5991. }
  5992. }
  5993. catch(Exception e94) {
  5994. hitException94=false;
  5995. if (e94 instanceof ParseException) throw(ParseException) e94;
  5996. if (e94 instanceof RuntimeException) throw(RuntimeException) e94;
  5997. throw new RuntimeException(e94);
  5998. }
  5999. finally {
  6000. if (buildTree) {
  6001. if (!hitException94) {
  6002. closeNodeScope(node94,nodeArity()>1);
  6003. Token jjtEndToken=getToken(0);
  6004. node94.setEndLine(jjtEndToken.endLine);
  6005. node94.setEndColumn(jjtEndToken.endColumn);
  6006. }
  6007. else {
  6008. clearNodeScope();
  6009. mark=marks.remove(marks.size()-1);
  6010. }
  6011. }
  6012. }
  6013. }
  6014. // C.jj, line 844
  6015. final public void VariableExpression() throws ParseException {
  6016. // C.jj, line 846
  6017. VariableExpression node95=null;
  6018. if (buildTree) {
  6019. node95=new VariableExpression();
  6020. Token jjtStartToken=getToken(1);
  6021. node95.setBeginLine(jjtStartToken.beginLine);
  6022. node95.setBeginColumn(jjtStartToken.beginColumn);
  6023. node95.setInputSource(this.getInputSource());
  6024. openNodeScope(node95);
  6025. }
  6026. boolean hitException95=false;
  6027. try {
  6028. // C.jj, line 846
  6029. // C.jj, line 846
  6030. jj_consume_token(IDENTIFIER);
  6031. }
  6032. catch(Exception e95) {
  6033. hitException95=false;
  6034. if (e95 instanceof ParseException) throw(ParseException) e95;
  6035. if (e95 instanceof RuntimeException) throw(RuntimeException) e95;
  6036. throw new RuntimeException(e95);
  6037. }
  6038. finally {
  6039. if (buildTree) {
  6040. if (!hitException95) {
  6041. closeNodeScope(node95,nodeArity()>1);
  6042. Token jjtEndToken=getToken(0);
  6043. node95.setEndLine(jjtEndToken.endLine);
  6044. node95.setEndColumn(jjtEndToken.endColumn);
  6045. }
  6046. else {
  6047. clearNodeScope();
  6048. mark=marks.remove(marks.size()-1);
  6049. }
  6050. }
  6051. }
  6052. }
  6053. // C.jj, line 849
  6054. final public void ArgumentExpressionList() throws ParseException {
  6055. // C.jj, line 851
  6056. ArgumentExpressionList node96=null;
  6057. if (buildTree) {
  6058. node96=new ArgumentExpressionList();
  6059. Token jjtStartToken=getToken(1);
  6060. node96.setBeginLine(jjtStartToken.beginLine);
  6061. node96.setBeginColumn(jjtStartToken.beginColumn);
  6062. node96.setInputSource(this.getInputSource());
  6063. openNodeScope(node96);
  6064. }
  6065. boolean hitException96=false;
  6066. try {
  6067. // C.jj, line 851
  6068. AssignmentExpression();
  6069. // C.jj, line 851
  6070. label_18:
  6071. while (true) {
  6072. int int42=(jj_ntk==-1)?jj_ntk():
  6073. jj_ntk;
  6074. if (!(int42==60)) {
  6075. jj_la1[77]=jj_gen;
  6076. break label_18;
  6077. }
  6078. // C.jj, line 851
  6079. // C.jj, line 851
  6080. jj_consume_token(60);
  6081. // C.jj, line 851
  6082. AssignmentExpression();
  6083. }
  6084. }
  6085. catch(Exception e96) {
  6086. hitException96=false;
  6087. if (e96 instanceof ParseException) throw(ParseException) e96;
  6088. if (e96 instanceof RuntimeException) throw(RuntimeException) e96;
  6089. throw new RuntimeException(e96);
  6090. }
  6091. finally {
  6092. if (buildTree) {
  6093. if (!hitException96) {
  6094. closeNodeScope(node96,nodeArity()>1);
  6095. Token jjtEndToken=getToken(0);
  6096. node96.setEndLine(jjtEndToken.endLine);
  6097. node96.setEndColumn(jjtEndToken.endColumn);
  6098. }
  6099. else {
  6100. clearNodeScope();
  6101. mark=marks.remove(marks.size()-1);
  6102. }
  6103. }
  6104. }
  6105. }
  6106. // C.jj, line 854
  6107. final public void Constant() throws ParseException {
  6108. // C.jj, line 856
  6109. Constant node97=null;
  6110. if (buildTree) {
  6111. node97=new Constant();
  6112. Token jjtStartToken=getToken(1);
  6113. node97.setBeginLine(jjtStartToken.beginLine);
  6114. node97.setBeginColumn(jjtStartToken.beginColumn);
  6115. node97.setInputSource(this.getInputSource());
  6116. openNodeScope(node97);
  6117. }
  6118. boolean hitException97=false;
  6119. try {
  6120. switch((jj_ntk==-1)?jj_ntk():
  6121. jj_ntk) {
  6122. case INTEGER_LITERAL:
  6123. // C.jj, line 856
  6124. // C.jj, line 856
  6125. jj_consume_token(INTEGER_LITERAL);
  6126. break;
  6127. case FLOATING_POINT_LITERAL:
  6128. // C.jj, line 856
  6129. // C.jj, line 856
  6130. jj_consume_token(FLOATING_POINT_LITERAL);
  6131. break;
  6132. case CHARACTER_LITERAL:
  6133. // C.jj, line 856
  6134. // C.jj, line 856
  6135. jj_consume_token(CHARACTER_LITERAL);
  6136. break;
  6137. case STRING_LITERAL:
  6138. // C.jj, line 856
  6139. // C.jj, line 856
  6140. jj_consume_token(STRING_LITERAL);
  6141. break;
  6142. case BOOL_LITERAL:
  6143. // C.jj, line 858
  6144. // C.jj, line 858
  6145. jj_consume_token(BOOL_LITERAL);
  6146. break;
  6147. default:
  6148. jj_la1[78]=jj_gen;
  6149. jj_consume_token(-1);
  6150. throw new ParseException();
  6151. }
  6152. }
  6153. catch(Exception e97) {
  6154. hitException97=false;
  6155. if (e97 instanceof ParseException) throw(ParseException) e97;
  6156. if (e97 instanceof RuntimeException) throw(RuntimeException) e97;
  6157. throw new RuntimeException(e97);
  6158. }
  6159. finally {
  6160. if (buildTree) {
  6161. if (!hitException97) {
  6162. closeNodeScope(node97,nodeArity()>1);
  6163. Token jjtEndToken=getToken(0);
  6164. node97.setEndLine(jjtEndToken.endLine);
  6165. node97.setEndColumn(jjtEndToken.endColumn);
  6166. }
  6167. else {
  6168. clearNodeScope();
  6169. mark=marks.remove(marks.size()-1);
  6170. }
  6171. }
  6172. }
  6173. }
  6174. private boolean jj_2_1(int xla) {
  6175. jj_la=xla;
  6176. jj_lastpos=jj_scanpos=current_token;
  6177. try {
  6178. return!jj_3_1();
  6179. }
  6180. catch(LookaheadSuccess ls) {
  6181. return true;
  6182. }
  6183. finally {
  6184. jj_save(0,xla);
  6185. }
  6186. }
  6187. private boolean jj_2_2(int xla) {
  6188. jj_la=xla;
  6189. jj_lastpos=jj_scanpos=current_token;
  6190. try {
  6191. return!jj_3_2();
  6192. }
  6193. catch(LookaheadSuccess ls) {
  6194. return true;
  6195. }
  6196. finally {
  6197. jj_save(1,xla);
  6198. }
  6199. }
  6200. private boolean jj_2_3(int xla) {
  6201. jj_la=xla;
  6202. jj_lastpos=jj_scanpos=current_token;
  6203. try {
  6204. return!jj_3_3();
  6205. }
  6206. catch(LookaheadSuccess ls) {
  6207. return true;
  6208. }
  6209. finally {
  6210. jj_save(2,xla);
  6211. }
  6212. }
  6213. private boolean jj_2_4(int xla) {
  6214. jj_la=xla;
  6215. jj_lastpos=jj_scanpos=current_token;
  6216. try {
  6217. return!jj_3_4();
  6218. }
  6219. catch(LookaheadSuccess ls) {
  6220. return true;
  6221. }
  6222. finally {
  6223. jj_save(3,xla);
  6224. }
  6225. }
  6226. private boolean jj_2_5(int xla) {
  6227. jj_la=xla;
  6228. jj_lastpos=jj_scanpos=current_token;
  6229. try {
  6230. return!jj_3_5();
  6231. }
  6232. catch(LookaheadSuccess ls) {
  6233. return true;
  6234. }
  6235. finally {
  6236. jj_save(4,xla);
  6237. }
  6238. }
  6239. private boolean jj_2_6(int xla) {
  6240. jj_la=xla;
  6241. jj_lastpos=jj_scanpos=current_token;
  6242. try {
  6243. return!jj_3_6();
  6244. }
  6245. catch(LookaheadSuccess ls) {
  6246. return true;
  6247. }
  6248. finally {
  6249. jj_save(5,xla);
  6250. }
  6251. }
  6252. private boolean jj_2_7(int xla) {
  6253. jj_la=xla;
  6254. jj_lastpos=jj_scanpos=current_token;
  6255. try {
  6256. return!jj_3_7();
  6257. }
  6258. catch(LookaheadSuccess ls) {
  6259. return true;
  6260. }
  6261. finally {
  6262. jj_save(6,xla);
  6263. }
  6264. }
  6265. private boolean jj_2_8(int xla) {
  6266. jj_la=xla;
  6267. jj_lastpos=jj_scanpos=current_token;
  6268. try {
  6269. return!jj_3_8();
  6270. }
  6271. catch(LookaheadSuccess ls) {
  6272. return true;
  6273. }
  6274. finally {
  6275. jj_save(7,xla);
  6276. }
  6277. }
  6278. private boolean jj_2_9(int xla) {
  6279. jj_la=xla;
  6280. jj_lastpos=jj_scanpos=current_token;
  6281. try {
  6282. return!jj_3_9();
  6283. }
  6284. catch(LookaheadSuccess ls) {
  6285. return true;
  6286. }
  6287. finally {
  6288. jj_save(8,xla);
  6289. }
  6290. }
  6291. private boolean jj_2_10(int xla) {
  6292. jj_la=xla;
  6293. jj_lastpos=jj_scanpos=current_token;
  6294. try {
  6295. return!jj_3_10();
  6296. }
  6297. catch(LookaheadSuccess ls) {
  6298. return true;
  6299. }
  6300. finally {
  6301. jj_save(9,xla);
  6302. }
  6303. }
  6304. private boolean jj_2_11(int xla) {
  6305. jj_la=xla;
  6306. jj_lastpos=jj_scanpos=current_token;
  6307. try {
  6308. return!jj_3_11();
  6309. }
  6310. catch(LookaheadSuccess ls) {
  6311. return true;
  6312. }
  6313. finally {
  6314. jj_save(10,xla);
  6315. }
  6316. }
  6317. private boolean jj_2_12(int xla) {
  6318. jj_la=xla;
  6319. jj_lastpos=jj_scanpos=current_token;
  6320. try {
  6321. return!jj_3_12();
  6322. }
  6323. catch(LookaheadSuccess ls) {
  6324. return true;
  6325. }
  6326. finally {
  6327. jj_save(11,xla);
  6328. }
  6329. }
  6330. private boolean jj_2_13(int xla) {
  6331. jj_la=xla;
  6332. jj_lastpos=jj_scanpos=current_token;
  6333. try {
  6334. return!jj_3_13();
  6335. }
  6336. catch(LookaheadSuccess ls) {
  6337. return true;
  6338. }
  6339. finally {
  6340. jj_save(12,xla);
  6341. }
  6342. }
  6343. private boolean jj_2_14(int xla) {
  6344. jj_la=xla;
  6345. jj_lastpos=jj_scanpos=current_token;
  6346. try {
  6347. return!jj_3_14();
  6348. }
  6349. catch(LookaheadSuccess ls) {
  6350. return true;
  6351. }
  6352. finally {
  6353. jj_save(13,xla);
  6354. }
  6355. }
  6356. private boolean jj_2_15(int xla) {
  6357. jj_la=xla;
  6358. jj_lastpos=jj_scanpos=current_token;
  6359. try {
  6360. return!jj_3_15();
  6361. }
  6362. catch(LookaheadSuccess ls) {
  6363. return true;
  6364. }
  6365. finally {
  6366. jj_save(14,xla);
  6367. }
  6368. }
  6369. private boolean jj_2_16(int xla) {
  6370. jj_la=xla;
  6371. jj_lastpos=jj_scanpos=current_token;
  6372. try {
  6373. return!jj_3_16();
  6374. }
  6375. catch(LookaheadSuccess ls) {
  6376. return true;
  6377. }
  6378. finally {
  6379. jj_save(15,xla);
  6380. }
  6381. }
  6382. private boolean jj_2_17(int xla) {
  6383. jj_la=xla;
  6384. jj_lastpos=jj_scanpos=current_token;
  6385. try {
  6386. return!jj_3_17();
  6387. }
  6388. catch(LookaheadSuccess ls) {
  6389. return true;
  6390. }
  6391. finally {
  6392. jj_save(16,xla);
  6393. }
  6394. }
  6395. private boolean jj_2_18(int xla) {
  6396. jj_la=xla;
  6397. jj_lastpos=jj_scanpos=current_token;
  6398. try {
  6399. return!jj_3_18();
  6400. }
  6401. catch(LookaheadSuccess ls) {
  6402. return true;
  6403. }
  6404. finally {
  6405. jj_save(17,xla);
  6406. }
  6407. }
  6408. private boolean jj_2_19(int xla) {
  6409. jj_la=xla;
  6410. jj_lastpos=jj_scanpos=current_token;
  6411. try {
  6412. return!jj_3_19();
  6413. }
  6414. catch(LookaheadSuccess ls) {
  6415. return true;
  6416. }
  6417. finally {
  6418. jj_save(18,xla);
  6419. }
  6420. }
  6421. private boolean jj_2_20(int xla) {
  6422. jj_la=xla;
  6423. jj_lastpos=jj_scanpos=current_token;
  6424. try {
  6425. return!jj_3_20();
  6426. }
  6427. catch(LookaheadSuccess ls) {
  6428. return true;
  6429. }
  6430. finally {
  6431. jj_save(19,xla);
  6432. }
  6433. }
  6434. private boolean jj_2_21(int xla) {
  6435. jj_la=xla;
  6436. jj_lastpos=jj_scanpos=current_token;
  6437. try {
  6438. return!jj_3_21();
  6439. }
  6440. catch(LookaheadSuccess ls) {
  6441. return true;
  6442. }
  6443. finally {
  6444. jj_save(20,xla);
  6445. }
  6446. }
  6447. private boolean jj_2_22(int xla) {
  6448. jj_la=xla;
  6449. jj_lastpos=jj_scanpos=current_token;
  6450. try {
  6451. return!jj_3_22();
  6452. }
  6453. catch(LookaheadSuccess ls) {
  6454. return true;
  6455. }
  6456. finally {
  6457. jj_save(21,xla);
  6458. }
  6459. }
  6460. private boolean jj_2_23(int xla) {
  6461. jj_la=xla;
  6462. jj_lastpos=jj_scanpos=current_token;
  6463. try {
  6464. return!jj_3_23();
  6465. }
  6466. catch(LookaheadSuccess ls) {
  6467. return true;
  6468. }
  6469. finally {
  6470. jj_save(22,xla);
  6471. }
  6472. }
  6473. private boolean jj_2_24(int xla) {
  6474. jj_la=xla;
  6475. jj_lastpos=jj_scanpos=current_token;
  6476. try {
  6477. return!jj_3_24();
  6478. }
  6479. catch(LookaheadSuccess ls) {
  6480. return true;
  6481. }
  6482. finally {
  6483. jj_save(23,xla);
  6484. }
  6485. }
  6486. private boolean jj_2_25(int xla) {
  6487. jj_la=xla;
  6488. jj_lastpos=jj_scanpos=current_token;
  6489. try {
  6490. return!jj_3_25();
  6491. }
  6492. catch(LookaheadSuccess ls) {
  6493. return true;
  6494. }
  6495. finally {
  6496. jj_save(24,xla);
  6497. }
  6498. }
  6499. private boolean jj_2_26(int xla) {
  6500. jj_la=xla;
  6501. jj_lastpos=jj_scanpos=current_token;
  6502. try {
  6503. return!jj_3_26();
  6504. }
  6505. catch(LookaheadSuccess ls) {
  6506. return true;
  6507. }
  6508. finally {
  6509. jj_save(25,xla);
  6510. }
  6511. }
  6512. private boolean jj_2_27(int xla) {
  6513. jj_la=xla;
  6514. jj_lastpos=jj_scanpos=current_token;
  6515. try {
  6516. return!jj_3_27();
  6517. }
  6518. catch(LookaheadSuccess ls) {
  6519. return true;
  6520. }
  6521. finally {
  6522. jj_save(26,xla);
  6523. }
  6524. }
  6525. private boolean jj_2_28(int xla) {
  6526. jj_la=xla;
  6527. jj_lastpos=jj_scanpos=current_token;
  6528. try {
  6529. return!jj_3_28();
  6530. }
  6531. catch(LookaheadSuccess ls) {
  6532. return true;
  6533. }
  6534. finally {
  6535. jj_save(27,xla);
  6536. }
  6537. }
  6538. private boolean jj_2_29(int xla) {
  6539. jj_la=xla;
  6540. jj_lastpos=jj_scanpos=current_token;
  6541. try {
  6542. return!jj_3_29();
  6543. }
  6544. catch(LookaheadSuccess ls) {
  6545. return true;
  6546. }
  6547. finally {
  6548. jj_save(28,xla);
  6549. }
  6550. }
  6551. private boolean jj_2_30(int xla) {
  6552. jj_la=xla;
  6553. jj_lastpos=jj_scanpos=current_token;
  6554. try {
  6555. return!jj_3_30();
  6556. }
  6557. catch(LookaheadSuccess ls) {
  6558. return true;
  6559. }
  6560. finally {
  6561. jj_save(29,xla);
  6562. }
  6563. }
  6564. private boolean jj_2_31(int xla) {
  6565. jj_la=xla;
  6566. jj_lastpos=jj_scanpos=current_token;
  6567. try {
  6568. return!jj_3_31();
  6569. }
  6570. catch(LookaheadSuccess ls) {
  6571. return true;
  6572. }
  6573. finally {
  6574. jj_save(30,xla);
  6575. }
  6576. }
  6577. private boolean jj_2_32(int xla) {
  6578. jj_la=xla;
  6579. jj_lastpos=jj_scanpos=current_token;
  6580. try {
  6581. return!jj_3_32();
  6582. }
  6583. catch(LookaheadSuccess ls) {
  6584. return true;
  6585. }
  6586. finally {
  6587. jj_save(31,xla);
  6588. }
  6589. }
  6590. private boolean jj_2_33(int xla) {
  6591. jj_la=xla;
  6592. jj_lastpos=jj_scanpos=current_token;
  6593. try {
  6594. return!jj_3_33();
  6595. }
  6596. catch(LookaheadSuccess ls) {
  6597. return true;
  6598. }
  6599. finally {
  6600. jj_save(32,xla);
  6601. }
  6602. }
  6603. private boolean jj_2_34(int xla) {
  6604. jj_la=xla;
  6605. jj_lastpos=jj_scanpos=current_token;
  6606. try {
  6607. return!jj_3_34();
  6608. }
  6609. catch(LookaheadSuccess ls) {
  6610. return true;
  6611. }
  6612. finally {
  6613. jj_save(33,xla);
  6614. }
  6615. }
  6616. private boolean jj_2_35(int xla) {
  6617. jj_la=xla;
  6618. jj_lastpos=jj_scanpos=current_token;
  6619. try {
  6620. return!jj_3_35();
  6621. }
  6622. catch(LookaheadSuccess ls) {
  6623. return true;
  6624. }
  6625. finally {
  6626. jj_save(34,xla);
  6627. }
  6628. }
  6629. private boolean jj_2_36(int xla) {
  6630. jj_la=xla;
  6631. jj_lastpos=jj_scanpos=current_token;
  6632. try {
  6633. return!jj_3_36();
  6634. }
  6635. catch(LookaheadSuccess ls) {
  6636. return true;
  6637. }
  6638. finally {
  6639. jj_save(35,xla);
  6640. }
  6641. }
  6642. private boolean jj_2_37(int xla) {
  6643. jj_la=xla;
  6644. jj_lastpos=jj_scanpos=current_token;
  6645. try {
  6646. return!jj_3_37();
  6647. }
  6648. catch(LookaheadSuccess ls) {
  6649. return true;
  6650. }
  6651. finally {
  6652. jj_save(36,xla);
  6653. }
  6654. }
  6655. private boolean jj_2_38(int xla) {
  6656. jj_la=xla;
  6657. jj_lastpos=jj_scanpos=current_token;
  6658. try {
  6659. return!jj_3_38();
  6660. }
  6661. catch(LookaheadSuccess ls) {
  6662. return true;
  6663. }
  6664. finally {
  6665. jj_save(37,xla);
  6666. }
  6667. }
  6668. private boolean jj_2_39(int xla) {
  6669. jj_la=xla;
  6670. jj_lastpos=jj_scanpos=current_token;
  6671. try {
  6672. return!jj_3_39();
  6673. }
  6674. catch(LookaheadSuccess ls) {
  6675. return true;
  6676. }
  6677. finally {
  6678. jj_save(38,xla);
  6679. }
  6680. }
  6681. private boolean jj_2_40(int xla) {
  6682. jj_la=xla;
  6683. jj_lastpos=jj_scanpos=current_token;
  6684. try {
  6685. return!jj_3_40();
  6686. }
  6687. catch(LookaheadSuccess ls) {
  6688. return true;
  6689. }
  6690. finally {
  6691. jj_save(39,xla);
  6692. }
  6693. }
  6694. private boolean jj_2_41(int xla) {
  6695. jj_la=xla;
  6696. jj_lastpos=jj_scanpos=current_token;
  6697. try {
  6698. return!jj_3_41();
  6699. }
  6700. catch(LookaheadSuccess ls) {
  6701. return true;
  6702. }
  6703. finally {
  6704. jj_save(40,xla);
  6705. }
  6706. }
  6707. private boolean jj_2_42(int xla) {
  6708. jj_la=xla;
  6709. jj_lastpos=jj_scanpos=current_token;
  6710. try {
  6711. return!jj_3_42();
  6712. }
  6713. catch(LookaheadSuccess ls) {
  6714. return true;
  6715. }
  6716. finally {
  6717. jj_save(41,xla);
  6718. }
  6719. }
  6720. private boolean jj_2_43(int xla) {
  6721. jj_la=xla;
  6722. jj_lastpos=jj_scanpos=current_token;
  6723. try {
  6724. return!jj_3_43();
  6725. }
  6726. catch(LookaheadSuccess ls) {
  6727. return true;
  6728. }
  6729. finally {
  6730. jj_save(42,xla);
  6731. }
  6732. }
  6733. private boolean jj_3_1() {
  6734. if (jj_3R_19()) return true;
  6735. return false;
  6736. }
  6737. private boolean jj_3_2() {
  6738. if (jj_3R_20()) return true;
  6739. return false;
  6740. }
  6741. private boolean jj_3_3() {
  6742. if (jj_3R_21()) return true;
  6743. return false;
  6744. }
  6745. private boolean jj_3_4() {
  6746. if (jj_3R_22()) return true;
  6747. return false;
  6748. }
  6749. private boolean jj_3_5() {
  6750. if (jj_3R_21()) return true;
  6751. return false;
  6752. }
  6753. private boolean jj_3_6() {
  6754. if (jj_3R_22()) return true;
  6755. return false;
  6756. }
  6757. private boolean jj_3_7() {
  6758. if (jj_3R_22()) return true;
  6759. return false;
  6760. }
  6761. private boolean jj_3_8() {
  6762. if (jj_3R_22()) return true;
  6763. return false;
  6764. }
  6765. private boolean jj_3_9() {
  6766. if (jj_3R_23()) return true;
  6767. Token token43=jj_scanpos;
  6768. if (jj_3R_92()) jj_scanpos=token43;
  6769. return false;
  6770. }
  6771. private boolean jj_3_10() {
  6772. Token token44=jj_scanpos;
  6773. if (jj_scan_token(54)) jj_scanpos=token44;
  6774. if (jj_scan_token(58)) return true;
  6775. if (jj_3R_24()) return true;
  6776. if (jj_scan_token(59)) return true;
  6777. return false;
  6778. }
  6779. private boolean jj_3_11() {
  6780. if (jj_3R_25()) return true;
  6781. return false;
  6782. }
  6783. private boolean jj_3_12() {
  6784. if (jj_3R_26()) return true;
  6785. return false;
  6786. }
  6787. private boolean jj_3_13() {
  6788. if (jj_3R_26()) return true;
  6789. return false;
  6790. }
  6791. private boolean jj_3_14() {
  6792. if (jj_3R_23()) return true;
  6793. Token token45=jj_scanpos;
  6794. if (jj_3R_98()) jj_scanpos=token45;
  6795. return false;
  6796. }
  6797. private boolean jj_3_15() {
  6798. if (jj_3R_27()) return true;
  6799. return false;
  6800. }
  6801. private boolean jj_3_16() {
  6802. Token token46=jj_scanpos;
  6803. if (jj_scan_token(54)) jj_scanpos=token46;
  6804. if (jj_scan_token(58)) return true;
  6805. if (jj_3R_28()) return true;
  6806. if (jj_scan_token(59)) return true;
  6807. return false;
  6808. }
  6809. private boolean jj_3_17() {
  6810. if (jj_scan_token(63)) return true;
  6811. if (jj_3R_29()) return true;
  6812. if (jj_scan_token(64)) return true;
  6813. return false;
  6814. }
  6815. private boolean jj_3_18() {
  6816. if (jj_scan_token(60)) return true;
  6817. if (jj_3R_30()) return true;
  6818. return false;
  6819. }
  6820. private boolean jj_3_19() {
  6821. if (jj_3R_27()) return true;
  6822. return false;
  6823. }
  6824. private boolean jj_3_20() {
  6825. if (jj_scan_token(60)) return true;
  6826. if (jj_3R_31()) return true;
  6827. return false;
  6828. }
  6829. private boolean jj_3_21() {
  6830. if (jj_3R_32()) return true;
  6831. return false;
  6832. }
  6833. private boolean jj_3_22() {
  6834. if (jj_3R_29()) return true;
  6835. return false;
  6836. }
  6837. private boolean jj_3_23() {
  6838. if (jj_scan_token(63)) return true;
  6839. if (jj_3R_33()) return true;
  6840. if (jj_scan_token(64)) return true;
  6841. return false;
  6842. }
  6843. private boolean jj_3_24() {
  6844. if (jj_3R_29()) return true;
  6845. return false;
  6846. }
  6847. private boolean jj_3_25() {
  6848. if (jj_3R_34()) return true;
  6849. return false;
  6850. }
  6851. private boolean jj_3_26() {
  6852. if (jj_3R_35()) return true;
  6853. return false;
  6854. }
  6855. private boolean jj_3_27() {
  6856. if (jj_3R_21()) return true;
  6857. return false;
  6858. }
  6859. private boolean jj_3_28() {
  6860. if (jj_3R_36()) return true;
  6861. return false;
  6862. }
  6863. private boolean jj_3_29() {
  6864. if (jj_3R_37()) return true;
  6865. return false;
  6866. }
  6867. private boolean jj_3_30() {
  6868. if (jj_3R_38()) return true;
  6869. return false;
  6870. }
  6871. private boolean jj_3_31() {
  6872. if (jj_3R_39()) return true;
  6873. return false;
  6874. }
  6875. private boolean jj_3_32() {
  6876. if (jj_3R_40()) return true;
  6877. return false;
  6878. }
  6879. private boolean jj_3_33() {
  6880. if (jj_scan_token(ELSE)) return true;
  6881. if (jj_3R_40()) return true;
  6882. return false;
  6883. }
  6884. private boolean jj_3_34() {
  6885. if (jj_3R_41()) return true;
  6886. if (jj_scan_token(57)) return true;
  6887. return false;
  6888. }
  6889. private boolean jj_3_35() {
  6890. if (jj_3R_21()) return true;
  6891. return false;
  6892. }
  6893. private boolean jj_3_36() {
  6894. if (jj_scan_token(69)) return true;
  6895. if (jj_3R_41()) return true;
  6896. return false;
  6897. }
  6898. private boolean jj_3_37() {
  6899. if (jj_scan_token(70)) return true;
  6900. if (jj_scan_token(IDENTIFIER)) return true;
  6901. return false;
  6902. }
  6903. private boolean jj_3_38() {
  6904. if (jj_3R_42()) return true;
  6905. if (jj_3R_43()) return true;
  6906. return false;
  6907. }
  6908. private boolean jj_3_39() {
  6909. if (jj_3R_44()) return true;
  6910. return false;
  6911. }
  6912. private boolean jj_3_40() {
  6913. if (jj_scan_token(63)) return true;
  6914. if (jj_3R_45()) return true;
  6915. if (jj_scan_token(64)) return true;
  6916. if (jj_3R_46()) return true;
  6917. return false;
  6918. }
  6919. private boolean jj_3_41() {
  6920. if (jj_3R_47()) return true;
  6921. return false;
  6922. }
  6923. private boolean jj_3_42() {
  6924. if (jj_3R_42()) return true;
  6925. return false;
  6926. }
  6927. private boolean jj_3_43() {
  6928. if (jj_3R_48()) return true;
  6929. return false;
  6930. }
  6931. private boolean jj_3R_19() {
  6932. Token token47=jj_scanpos;
  6933. if (jj_3R_49()) {
  6934. jj_scanpos=token47;
  6935. if (jj_3_3()) return true;
  6936. }
  6937. return false;
  6938. }
  6939. private boolean jj_3R_20() {
  6940. Token token48=jj_scanpos;
  6941. if (jj_3R_50()) jj_scanpos=token48;
  6942. if (jj_3R_27()) return true;
  6943. if (jj_3R_51()) return true;
  6944. return false;
  6945. }
  6946. private boolean jj_3R_21() {
  6947. if (jj_3R_22()) return true;
  6948. Token token49=jj_scanpos;
  6949. if (jj_3R_54()) jj_scanpos=token49;
  6950. if (jj_scan_token(57)) return true;
  6951. return false;
  6952. }
  6953. private boolean jj_3R_22() {
  6954. Token token50=jj_scanpos;
  6955. if (jj_3R_52()) {
  6956. jj_scanpos=token50;
  6957. if (jj_3_9()) {
  6958. jj_scanpos=token50;
  6959. if (jj_3R_53()) return true;
  6960. }
  6961. }
  6962. return false;
  6963. }
  6964. private boolean jj_3R_23() {
  6965. Token token51=jj_scanpos;
  6966. if (jj_scan_token(44)) {
  6967. jj_scanpos=token51;
  6968. if (jj_scan_token(45)) {
  6969. jj_scanpos=token51;
  6970. if (jj_scan_token(38)) {
  6971. jj_scanpos=token51;
  6972. if (jj_scan_token(48)) {
  6973. jj_scanpos=token51;
  6974. if (jj_scan_token(41)) {
  6975. jj_scanpos=token51;
  6976. if (jj_scan_token(37)) {
  6977. jj_scanpos=token51;
  6978. if (jj_scan_token(25)) {
  6979. jj_scanpos=token51;
  6980. if (jj_scan_token(32)) {
  6981. jj_scanpos=token51;
  6982. if (jj_scan_token(51)) {
  6983. jj_scanpos=token51;
  6984. if (jj_scan_token(22)) {
  6985. jj_scanpos=token51;
  6986. if (jj_3R_55()) {
  6987. jj_scanpos=token51;
  6988. if (jj_3R_56()) {
  6989. jj_scanpos=token51;
  6990. jj_lookingAhead=true;
  6991. jj_semLA=isType(getToken(1).image);
  6992. jj_lookingAhead=false;
  6993. if (!jj_semLA||jj_scan_token(54)) return true;
  6994. }
  6995. }
  6996. }
  6997. }
  6998. }
  6999. }
  7000. }
  7001. }
  7002. }
  7003. }
  7004. }
  7005. }
  7006. return false;
  7007. }
  7008. private boolean jj_3R_24() {
  7009. if (jj_3_11()) return true;
  7010. while (true) {
  7011. Token token52=jj_scanpos;
  7012. if (jj_3_11()) {
  7013. jj_scanpos=token52;
  7014. break;
  7015. }
  7016. }
  7017. return false;
  7018. }
  7019. private boolean jj_3R_25() {
  7020. if (jj_3R_26()) return true;
  7021. if (jj_3R_126()) return true;
  7022. if (jj_scan_token(57)) return true;
  7023. return false;
  7024. }
  7025. private boolean jj_3R_26() {
  7026. Token token53=jj_scanpos;
  7027. if (jj_3_14()) {
  7028. jj_scanpos=token53;
  7029. if (jj_3R_57()) return true;
  7030. }
  7031. return false;
  7032. }
  7033. private boolean jj_3R_27() {
  7034. Token token54=jj_scanpos;
  7035. if (jj_3R_58()) jj_scanpos=token54;
  7036. if (jj_3R_59()) return true;
  7037. return false;
  7038. }
  7039. private boolean jj_3R_28() {
  7040. if (jj_3R_60()) return true;
  7041. while (true) {
  7042. Token token55=jj_scanpos;
  7043. if (jj_3R_61()) {
  7044. jj_scanpos=token55;
  7045. break;
  7046. }
  7047. }
  7048. return false;
  7049. }
  7050. private boolean jj_3R_29() {
  7051. if (jj_3R_62()) return true;
  7052. Token token56=jj_scanpos;
  7053. if (jj_3R_183()) jj_scanpos=token56;
  7054. return false;
  7055. }
  7056. private boolean jj_3R_30() {
  7057. if (jj_3R_22()) return true;
  7058. Token token57=jj_scanpos;
  7059. if (jj_3R_129()) {
  7060. jj_scanpos=token57;
  7061. if (jj_3R_130()) return true;
  7062. }
  7063. return false;
  7064. }
  7065. private boolean jj_3R_31() {
  7066. Token token58=jj_scanpos;
  7067. if (jj_3R_63()) {
  7068. jj_scanpos=token58;
  7069. if (jj_3R_64()) return true;
  7070. }
  7071. return false;
  7072. }
  7073. private boolean jj_3R_32() {
  7074. if (jj_scan_token(67)) return true;
  7075. Token token59=jj_scanpos;
  7076. if (jj_3R_65()) jj_scanpos=token59;
  7077. Token token60=jj_scanpos;
  7078. if (jj_3R_66()) jj_scanpos=token60;
  7079. return false;
  7080. }
  7081. private boolean jj_3R_33() {
  7082. Token token61=jj_scanpos;
  7083. if (jj_3_21()) {
  7084. jj_scanpos=token61;
  7085. if (jj_3R_67()) return true;
  7086. }
  7087. return false;
  7088. }
  7089. private boolean jj_3R_34() {
  7090. Token token62=jj_scanpos;
  7091. if (jj_3R_68()) {
  7092. jj_scanpos=token62;
  7093. if (jj_3R_69()) {
  7094. jj_scanpos=token62;
  7095. if (jj_3R_70()) return true;
  7096. }
  7097. }
  7098. return false;
  7099. }
  7100. private boolean jj_3R_35() {
  7101. Token token63=jj_scanpos;
  7102. if (jj_3R_71()) jj_scanpos=token63;
  7103. if (jj_scan_token(57)) return true;
  7104. return false;
  7105. }
  7106. private boolean jj_3R_36() {
  7107. if (jj_scan_token(CIN)) return true;
  7108. while (true) {
  7109. Token token64=jj_scanpos;
  7110. if (jj_3_37()) {
  7111. jj_scanpos=token64;
  7112. break;
  7113. }
  7114. }
  7115. if (jj_scan_token(57)) return true;
  7116. return false;
  7117. }
  7118. private boolean jj_3R_37() {
  7119. if (jj_scan_token(COUT)) return true;
  7120. while (true) {
  7121. Token token65=jj_scanpos;
  7122. if (jj_3_36()) {
  7123. jj_scanpos=token65;
  7124. break;
  7125. }
  7126. }
  7127. if (jj_scan_token(57)) return true;
  7128. return false;
  7129. }
  7130. private boolean jj_3R_38() {
  7131. if (jj_scan_token(IDENTIFIER)) return true;
  7132. if (jj_scan_token(62)) return true;
  7133. if (jj_3R_40()) return true;
  7134. return false;
  7135. }
  7136. private boolean jj_3R_39() {
  7137. if (jj_3_32()) return true;
  7138. while (true) {
  7139. Token token66=jj_scanpos;
  7140. if (jj_3_32()) {
  7141. jj_scanpos=token66;
  7142. break;
  7143. }
  7144. }
  7145. return false;
  7146. }
  7147. private boolean jj_3R_40() {
  7148. Token token67=jj_scanpos;
  7149. if (jj_3_25()) {
  7150. jj_scanpos=token67;
  7151. if (jj_3_26()) {
  7152. jj_scanpos=token67;
  7153. if (jj_3R_72()) {
  7154. jj_scanpos=token67;
  7155. if (jj_3R_73()) {
  7156. jj_scanpos=token67;
  7157. if (jj_3R_74()) {
  7158. jj_scanpos=token67;
  7159. if (jj_3_27()) {
  7160. jj_scanpos=token67;
  7161. if (jj_3R_75()) {
  7162. jj_scanpos=token67;
  7163. if (jj_3_28()) {
  7164. jj_scanpos=token67;
  7165. if (jj_3_29()) {
  7166. jj_scanpos=token67;
  7167. if (jj_3_30()) return true;
  7168. }
  7169. }
  7170. }
  7171. }
  7172. }
  7173. }
  7174. }
  7175. }
  7176. }
  7177. return false;
  7178. }
  7179. private boolean jj_3R_41() {
  7180. if (jj_3R_76()) return true;
  7181. while (true) {
  7182. Token token68=jj_scanpos;
  7183. if (jj_3R_77()) {
  7184. jj_scanpos=token68;
  7185. break;
  7186. }
  7187. }
  7188. return false;
  7189. }
  7190. private boolean jj_3R_42() {
  7191. Token token69=jj_scanpos;
  7192. if (jj_3_41()) {
  7193. jj_scanpos=token69;
  7194. if (jj_3R_78()) {
  7195. jj_scanpos=token69;
  7196. if (jj_3R_79()) {
  7197. jj_scanpos=token69;
  7198. if (jj_3R_80()) {
  7199. jj_scanpos=token69;
  7200. if (jj_3R_81()) return true;
  7201. }
  7202. }
  7203. }
  7204. }
  7205. return false;
  7206. }
  7207. private boolean jj_3R_43() {
  7208. Token token70=jj_scanpos;
  7209. if (jj_scan_token(61)) {
  7210. jj_scanpos=token70;
  7211. if (jj_scan_token(71)) {
  7212. jj_scanpos=token70;
  7213. if (jj_scan_token(72)) {
  7214. jj_scanpos=token70;
  7215. if (jj_scan_token(73)) {
  7216. jj_scanpos=token70;
  7217. if (jj_scan_token(74)) {
  7218. jj_scanpos=token70;
  7219. if (jj_scan_token(75)) {
  7220. jj_scanpos=token70;
  7221. if (jj_scan_token(76)) {
  7222. jj_scanpos=token70;
  7223. if (jj_scan_token(77)) {
  7224. jj_scanpos=token70;
  7225. if (jj_scan_token(78)) {
  7226. jj_scanpos=token70;
  7227. if (jj_scan_token(79)) {
  7228. jj_scanpos=token70;
  7229. if (jj_scan_token(80)) return true;
  7230. }
  7231. }
  7232. }
  7233. }
  7234. }
  7235. }
  7236. }
  7237. }
  7238. }
  7239. }
  7240. return false;
  7241. }
  7242. private boolean jj_3R_44() {
  7243. if (jj_3R_82()) return true;
  7244. Token token71=jj_scanpos;
  7245. if (jj_3R_83()) jj_scanpos=token71;
  7246. return false;
  7247. }
  7248. private boolean jj_3R_45() {
  7249. if (jj_3R_26()) return true;
  7250. Token token72=jj_scanpos;
  7251. if (jj_3R_84()) jj_scanpos=token72;
  7252. return false;
  7253. }
  7254. private boolean jj_3R_46() {
  7255. Token token73=jj_scanpos;
  7256. if (jj_3R_85()) {
  7257. jj_scanpos=token73;
  7258. if (jj_3R_86()) return true;
  7259. }
  7260. return false;
  7261. }
  7262. private boolean jj_3R_47() {
  7263. if (jj_3R_87()) return true;
  7264. if (jj_3R_88()) return true;
  7265. return false;
  7266. }
  7267. private boolean jj_3R_48() {
  7268. if (jj_3R_76()) return true;
  7269. while (true) {
  7270. Token token74=jj_scanpos;
  7271. if (jj_3R_89()) {
  7272. jj_scanpos=token74;
  7273. break;
  7274. }
  7275. }
  7276. return false;
  7277. }
  7278. private boolean jj_3R_49() {
  7279. if (jj_3R_20()) return true;
  7280. return false;
  7281. }
  7282. private boolean jj_3R_50() {
  7283. if (jj_3R_22()) return true;
  7284. return false;
  7285. }
  7286. private boolean jj_3R_51() {
  7287. if (jj_scan_token(58)) return true;
  7288. Token token75=jj_scanpos;
  7289. if (jj_3_31()) jj_scanpos=token75;
  7290. if (jj_scan_token(59)) return true;
  7291. return false;
  7292. }
  7293. private boolean jj_3R_52() {
  7294. if (jj_3R_90()) return true;
  7295. Token token76=jj_scanpos;
  7296. if (jj_3R_91()) jj_scanpos=token76;
  7297. return false;
  7298. }
  7299. private boolean jj_3R_53() {
  7300. if (jj_3R_93()) return true;
  7301. Token token77=jj_scanpos;
  7302. if (jj_3R_94()) jj_scanpos=token77;
  7303. return false;
  7304. }
  7305. private boolean jj_3R_54() {
  7306. if (jj_3R_95()) return true;
  7307. return false;
  7308. }
  7309. private boolean jj_3R_55() {
  7310. if (jj_3R_96()) return true;
  7311. return false;
  7312. }
  7313. private boolean jj_3R_56() {
  7314. if (jj_3R_97()) return true;
  7315. return false;
  7316. }
  7317. private boolean jj_3R_57() {
  7318. if (jj_3R_93()) return true;
  7319. Token token78=jj_scanpos;
  7320. if (jj_3R_99()) jj_scanpos=token78;
  7321. return false;
  7322. }
  7323. private boolean jj_3R_58() {
  7324. if (jj_3R_32()) return true;
  7325. return false;
  7326. }
  7327. private boolean jj_3R_59() {
  7328. Token token79=jj_scanpos;
  7329. if (jj_3R_100()) {
  7330. jj_scanpos=token79;
  7331. if (jj_3R_101()) return true;
  7332. }
  7333. while (true) {
  7334. Token token80=jj_scanpos;
  7335. if (jj_3R_102()) {
  7336. jj_scanpos=token80;
  7337. break;
  7338. }
  7339. }
  7340. return false;
  7341. }
  7342. private boolean jj_3R_60() {
  7343. if (jj_scan_token(IDENTIFIER)) return true;
  7344. Token token81=jj_scanpos;
  7345. if (jj_3R_103()) jj_scanpos=token81;
  7346. return false;
  7347. }
  7348. private boolean jj_3R_61() {
  7349. if (jj_scan_token(60)) return true;
  7350. if (jj_3R_60()) return true;
  7351. return false;
  7352. }
  7353. private boolean jj_3R_62() {
  7354. if (jj_3R_30()) return true;
  7355. while (true) {
  7356. Token token82=jj_scanpos;
  7357. if (jj_3_18()) {
  7358. jj_scanpos=token82;
  7359. break;
  7360. }
  7361. }
  7362. return false;
  7363. }
  7364. private boolean jj_3R_63() {
  7365. if (jj_3R_76()) return true;
  7366. return false;
  7367. }
  7368. private boolean jj_3R_64() {
  7369. if (jj_scan_token(58)) return true;
  7370. if (jj_3R_199()) return true;
  7371. Token token83=jj_scanpos;
  7372. if (jj_scan_token(60)) jj_scanpos=token83;
  7373. if (jj_scan_token(59)) return true;
  7374. return false;
  7375. }
  7376. private boolean jj_3R_65() {
  7377. if (jj_3R_104()) return true;
  7378. return false;
  7379. }
  7380. private boolean jj_3R_66() {
  7381. if (jj_3R_32()) return true;
  7382. return false;
  7383. }
  7384. private boolean jj_3R_67() {
  7385. Token token84=jj_scanpos;
  7386. if (jj_3R_105()) jj_scanpos=token84;
  7387. if (jj_3R_106()) return true;
  7388. return false;
  7389. }
  7390. private boolean jj_3R_68() {
  7391. if (jj_3R_107()) return true;
  7392. return false;
  7393. }
  7394. private boolean jj_3R_69() {
  7395. if (jj_3R_108()) return true;
  7396. return false;
  7397. }
  7398. private boolean jj_3R_70() {
  7399. if (jj_3R_109()) return true;
  7400. return false;
  7401. }
  7402. private boolean jj_3R_71() {
  7403. if (jj_3R_41()) return true;
  7404. return false;
  7405. }
  7406. private boolean jj_3R_72() {
  7407. if (jj_3R_51()) return true;
  7408. return false;
  7409. }
  7410. private boolean jj_3R_73() {
  7411. if (jj_3R_110()) return true;
  7412. return false;
  7413. }
  7414. private boolean jj_3R_74() {
  7415. if (jj_3R_111()) return true;
  7416. return false;
  7417. }
  7418. private boolean jj_3R_75() {
  7419. if (jj_3R_112()) return true;
  7420. return false;
  7421. }
  7422. private boolean jj_3R_76() {
  7423. Token token85=jj_scanpos;
  7424. if (jj_3R_113()) {
  7425. jj_scanpos=token85;
  7426. if (jj_3_39()) return true;
  7427. }
  7428. return false;
  7429. }
  7430. private boolean jj_3R_77() {
  7431. if (jj_scan_token(60)) return true;
  7432. if (jj_3R_76()) return true;
  7433. return false;
  7434. }
  7435. private boolean jj_3R_78() {
  7436. if (jj_3R_114()) return true;
  7437. return false;
  7438. }
  7439. private boolean jj_3R_79() {
  7440. if (jj_3R_115()) return true;
  7441. return false;
  7442. }
  7443. private boolean jj_3R_80() {
  7444. if (jj_3R_116()) return true;
  7445. return false;
  7446. }
  7447. private boolean jj_3R_81() {
  7448. if (jj_3R_117()) return true;
  7449. return false;
  7450. }
  7451. private boolean jj_3R_82() {
  7452. if (jj_3R_118()) return true;
  7453. Token token86=jj_scanpos;
  7454. if (jj_3R_119()) jj_scanpos=token86;
  7455. return false;
  7456. }
  7457. private boolean jj_3R_83() {
  7458. if (jj_scan_token(81)) return true;
  7459. if (jj_3R_41()) return true;
  7460. if (jj_scan_token(62)) return true;
  7461. if (jj_3R_44()) return true;
  7462. return false;
  7463. }
  7464. private boolean jj_3R_84() {
  7465. if (jj_3R_33()) return true;
  7466. return false;
  7467. }
  7468. private boolean jj_3R_85() {
  7469. if (jj_scan_token(63)) return true;
  7470. if (jj_3R_45()) return true;
  7471. if (jj_scan_token(64)) return true;
  7472. if (jj_3R_46()) return true;
  7473. return false;
  7474. }
  7475. private boolean jj_3R_86() {
  7476. if (jj_3R_42()) return true;
  7477. return false;
  7478. }
  7479. private boolean jj_3R_87() {
  7480. Token token87=jj_scanpos;
  7481. if (jj_scan_token(54)) {
  7482. jj_scanpos=token87;
  7483. if (jj_3R_120()) return true;
  7484. }
  7485. return false;
  7486. }
  7487. private boolean jj_3R_88() {
  7488. while (true) {
  7489. Token token88=jj_scanpos;
  7490. if (jj_3R_121()) {
  7491. jj_scanpos=token88;
  7492. break;
  7493. }
  7494. }
  7495. return false;
  7496. }
  7497. private boolean jj_3R_89() {
  7498. if (jj_scan_token(60)) return true;
  7499. if (jj_3R_76()) return true;
  7500. return false;
  7501. }
  7502. private boolean jj_3R_90() {
  7503. Token token89=jj_scanpos;
  7504. if (jj_scan_token(43)) {
  7505. jj_scanpos=token89;
  7506. if (jj_scan_token(21)) {
  7507. jj_scanpos=token89;
  7508. if (jj_scan_token(31)) {
  7509. jj_scanpos=token89;
  7510. if (jj_scan_token(29)) {
  7511. jj_scanpos=token89;
  7512. if (jj_3R_122()) return true;
  7513. }
  7514. }
  7515. }
  7516. }
  7517. return false;
  7518. }
  7519. private boolean jj_3R_91() {
  7520. if (jj_3R_22()) return true;
  7521. return false;
  7522. }
  7523. private boolean jj_3R_92() {
  7524. if (jj_3R_22()) return true;
  7525. return false;
  7526. }
  7527. private boolean jj_3R_93() {
  7528. Token token90=jj_scanpos;
  7529. if (jj_scan_token(36)) {
  7530. jj_scanpos=token90;
  7531. if (jj_scan_token(20)) return true;
  7532. }
  7533. return false;
  7534. }
  7535. private boolean jj_3R_94() {
  7536. if (jj_3R_22()) return true;
  7537. return false;
  7538. }
  7539. private boolean jj_3R_95() {
  7540. if (jj_3R_123()) return true;
  7541. while (true) {
  7542. Token token91=jj_scanpos;
  7543. if (jj_3R_124()) {
  7544. jj_scanpos=token91;
  7545. break;
  7546. }
  7547. }
  7548. return false;
  7549. }
  7550. private boolean jj_3R_96() {
  7551. if (jj_3R_125()) return true;
  7552. Token token92=jj_scanpos;
  7553. if (jj_3_10()) {
  7554. jj_scanpos=token92;
  7555. if (jj_scan_token(54)) return true;
  7556. }
  7557. return false;
  7558. }
  7559. private boolean jj_3R_97() {
  7560. if (jj_scan_token(ENUM)) return true;
  7561. Token token93=jj_scanpos;
  7562. if (jj_3_16()) {
  7563. jj_scanpos=token93;
  7564. if (jj_scan_token(54)) return true;
  7565. }
  7566. return false;
  7567. }
  7568. private boolean jj_3R_98() {
  7569. if (jj_3R_26()) return true;
  7570. return false;
  7571. }
  7572. private boolean jj_3R_99() {
  7573. if (jj_3R_26()) return true;
  7574. return false;
  7575. }
  7576. private boolean jj_3R_100() {
  7577. if (jj_scan_token(IDENTIFIER)) return true;
  7578. return false;
  7579. }
  7580. private boolean jj_3R_101() {
  7581. if (jj_scan_token(63)) return true;
  7582. if (jj_3R_27()) return true;
  7583. if (jj_scan_token(64)) return true;
  7584. return false;
  7585. }
  7586. private boolean jj_3R_102() {
  7587. Token token94=jj_scanpos;
  7588. if (jj_3R_127()) {
  7589. jj_scanpos=token94;
  7590. if (jj_3_17()) {
  7591. jj_scanpos=token94;
  7592. if (jj_3R_128()) return true;
  7593. }
  7594. }
  7595. return false;
  7596. }
  7597. private boolean jj_3R_103() {
  7598. if (jj_scan_token(61)) return true;
  7599. if (jj_3R_134()) return true;
  7600. return false;
  7601. }
  7602. private boolean jj_3R_104() {
  7603. if (jj_3R_131()) return true;
  7604. while (true) {
  7605. Token token95=jj_scanpos;
  7606. if (jj_3R_131()) {
  7607. jj_scanpos=token95;
  7608. break;
  7609. }
  7610. }
  7611. return false;
  7612. }
  7613. private boolean jj_3R_105() {
  7614. if (jj_3R_32()) return true;
  7615. return false;
  7616. }
  7617. private boolean jj_3R_106() {
  7618. Token token96=jj_scanpos;
  7619. if (jj_3_23()) {
  7620. jj_scanpos=token96;
  7621. if (jj_3R_132()) {
  7622. jj_scanpos=token96;
  7623. if (jj_3R_133()) return true;
  7624. }
  7625. }
  7626. while (true) {
  7627. Token token97=jj_scanpos;
  7628. if (jj_3R_186()) {
  7629. jj_scanpos=token97;
  7630. break;
  7631. }
  7632. }
  7633. return false;
  7634. }
  7635. private boolean jj_3R_107() {
  7636. if (jj_scan_token(GOTO)) return true;
  7637. if (jj_scan_token(IDENTIFIER)) return true;
  7638. if (jj_scan_token(57)) return true;
  7639. return false;
  7640. }
  7641. private boolean jj_3R_108() {
  7642. if (jj_scan_token(CASE)) return true;
  7643. if (jj_3R_134()) return true;
  7644. if (jj_scan_token(62)) return true;
  7645. if (jj_3R_40()) return true;
  7646. return false;
  7647. }
  7648. private boolean jj_3R_109() {
  7649. if (jj_scan_token(DFLT)) return true;
  7650. if (jj_scan_token(62)) return true;
  7651. if (jj_3R_40()) return true;
  7652. return false;
  7653. }
  7654. private boolean jj_3R_110() {
  7655. Token token98=jj_scanpos;
  7656. if (jj_3R_135()) {
  7657. jj_scanpos=token98;
  7658. if (jj_3R_136()) return true;
  7659. }
  7660. return false;
  7661. }
  7662. private boolean jj_3R_111() {
  7663. Token token99=jj_scanpos;
  7664. if (jj_3R_137()) {
  7665. jj_scanpos=token99;
  7666. if (jj_3R_138()) {
  7667. jj_scanpos=token99;
  7668. if (jj_3R_139()) return true;
  7669. }
  7670. }
  7671. return false;
  7672. }
  7673. private boolean jj_3R_112() {
  7674. Token token100=jj_scanpos;
  7675. if (jj_3R_140()) {
  7676. jj_scanpos=token100;
  7677. if (jj_3R_141()) {
  7678. jj_scanpos=token100;
  7679. if (jj_3R_142()) {
  7680. jj_scanpos=token100;
  7681. if (jj_3R_143()) return true;
  7682. }
  7683. }
  7684. }
  7685. return false;
  7686. }
  7687. private boolean jj_3R_113() {
  7688. if (jj_3R_42()) return true;
  7689. if (jj_3R_43()) return true;
  7690. if (jj_3R_76()) return true;
  7691. return false;
  7692. }
  7693. private boolean jj_3R_114() {
  7694. if (jj_scan_token(97)) return true;
  7695. if (jj_3R_42()) return true;
  7696. return false;
  7697. }
  7698. private boolean jj_3R_115() {
  7699. if (jj_scan_token(98)) return true;
  7700. if (jj_3R_42()) return true;
  7701. return false;
  7702. }
  7703. private boolean jj_3R_116() {
  7704. Token token101=jj_scanpos;
  7705. if (jj_3R_144()) {
  7706. jj_scanpos=token101;
  7707. if (jj_3R_145()) {
  7708. jj_scanpos=token101;
  7709. if (jj_3R_146()) {
  7710. jj_scanpos=token101;
  7711. if (jj_3R_147()) {
  7712. jj_scanpos=token101;
  7713. if (jj_3R_148()) {
  7714. jj_scanpos=token101;
  7715. if (jj_3R_149()) return true;
  7716. }
  7717. }
  7718. }
  7719. }
  7720. }
  7721. return false;
  7722. }
  7723. private boolean jj_3R_117() {
  7724. if (jj_scan_token(SIZEOF)) return true;
  7725. Token token102=jj_scanpos;
  7726. if (jj_3R_150()) {
  7727. jj_scanpos=token102;
  7728. if (jj_3R_151()) return true;
  7729. }
  7730. return false;
  7731. }
  7732. private boolean jj_3R_118() {
  7733. if (jj_3R_152()) return true;
  7734. Token token103=jj_scanpos;
  7735. if (jj_3R_153()) jj_scanpos=token103;
  7736. return false;
  7737. }
  7738. private boolean jj_3R_119() {
  7739. if (jj_scan_token(82)) return true;
  7740. if (jj_3R_82()) return true;
  7741. return false;
  7742. }
  7743. private boolean jj_3R_120() {
  7744. if (jj_3R_154()) return true;
  7745. return false;
  7746. }
  7747. private boolean jj_3R_121() {
  7748. if (jj_3R_155()) return true;
  7749. return false;
  7750. }
  7751. private boolean jj_3R_122() {
  7752. if (jj_scan_token(TYPEDEF)) return true;
  7753. return false;
  7754. }
  7755. private boolean jj_3R_123() {
  7756. if (jj_3R_27()) return true;
  7757. Token token104=jj_scanpos;
  7758. if (jj_3R_156()) jj_scanpos=token104;
  7759. return false;
  7760. }
  7761. private boolean jj_3R_124() {
  7762. if (jj_scan_token(60)) return true;
  7763. if (jj_3R_123()) return true;
  7764. return false;
  7765. }
  7766. private boolean jj_3R_125() {
  7767. Token token105=jj_scanpos;
  7768. if (jj_scan_token(30)) {
  7769. jj_scanpos=token105;
  7770. if (jj_scan_token(35)) return true;
  7771. }
  7772. return false;
  7773. }
  7774. private boolean jj_3R_126() {
  7775. if (jj_3R_157()) return true;
  7776. while (true) {
  7777. Token token106=jj_scanpos;
  7778. if (jj_3R_210()) {
  7779. jj_scanpos=token106;
  7780. break;
  7781. }
  7782. }
  7783. return false;
  7784. }
  7785. private boolean jj_3R_127() {
  7786. if (jj_scan_token(65)) return true;
  7787. Token token107=jj_scanpos;
  7788. if (jj_3R_158()) jj_scanpos=token107;
  7789. if (jj_scan_token(66)) return true;
  7790. return false;
  7791. }
  7792. private boolean jj_3R_128() {
  7793. if (jj_scan_token(63)) return true;
  7794. Token token108=jj_scanpos;
  7795. if (jj_3R_159()) jj_scanpos=token108;
  7796. if (jj_scan_token(64)) return true;
  7797. return false;
  7798. }
  7799. private boolean jj_3R_129() {
  7800. if (jj_3R_27()) return true;
  7801. return false;
  7802. }
  7803. private boolean jj_3R_130() {
  7804. Token token109=jj_scanpos;
  7805. if (jj_3R_160()) jj_scanpos=token109;
  7806. return false;
  7807. }
  7808. private boolean jj_3R_131() {
  7809. if (jj_3R_93()) return true;
  7810. return false;
  7811. }
  7812. private boolean jj_3R_132() {
  7813. if (jj_scan_token(65)) return true;
  7814. Token token110=jj_scanpos;
  7815. if (jj_3R_195()) jj_scanpos=token110;
  7816. if (jj_scan_token(66)) return true;
  7817. return false;
  7818. }
  7819. private boolean jj_3R_133() {
  7820. if (jj_scan_token(63)) return true;
  7821. Token token111=jj_scanpos;
  7822. if (jj_3_22()) jj_scanpos=token111;
  7823. if (jj_scan_token(64)) return true;
  7824. return false;
  7825. }
  7826. private boolean jj_3R_134() {
  7827. if (jj_3R_44()) return true;
  7828. return false;
  7829. }
  7830. private boolean jj_3R_135() {
  7831. if (jj_3R_161()) return true;
  7832. return false;
  7833. }
  7834. private boolean jj_3R_136() {
  7835. if (jj_3R_162()) return true;
  7836. return false;
  7837. }
  7838. private boolean jj_3R_137() {
  7839. if (jj_3R_163()) return true;
  7840. return false;
  7841. }
  7842. private boolean jj_3R_138() {
  7843. if (jj_3R_164()) return true;
  7844. return false;
  7845. }
  7846. private boolean jj_3R_139() {
  7847. if (jj_3R_165()) return true;
  7848. return false;
  7849. }
  7850. private boolean jj_3R_140() {
  7851. if (jj_3R_107()) return true;
  7852. return false;
  7853. }
  7854. private boolean jj_3R_141() {
  7855. if (jj_3R_166()) return true;
  7856. return false;
  7857. }
  7858. private boolean jj_3R_142() {
  7859. if (jj_3R_167()) return true;
  7860. return false;
  7861. }
  7862. private boolean jj_3R_143() {
  7863. if (jj_3R_168()) return true;
  7864. return false;
  7865. }
  7866. private boolean jj_3R_144() {
  7867. if (jj_3R_169()) return true;
  7868. return false;
  7869. }
  7870. private boolean jj_3R_145() {
  7871. if (jj_3R_170()) return true;
  7872. return false;
  7873. }
  7874. private boolean jj_3R_146() {
  7875. if (jj_3R_171()) return true;
  7876. return false;
  7877. }
  7878. private boolean jj_3R_147() {
  7879. if (jj_3R_172()) return true;
  7880. return false;
  7881. }
  7882. private boolean jj_3R_148() {
  7883. if (jj_3R_173()) return true;
  7884. return false;
  7885. }
  7886. private boolean jj_3R_149() {
  7887. if (jj_3R_174()) return true;
  7888. return false;
  7889. }
  7890. private boolean jj_3R_150() {
  7891. if (jj_3R_42()) return true;
  7892. return false;
  7893. }
  7894. private boolean jj_3R_151() {
  7895. if (jj_scan_token(63)) return true;
  7896. if (jj_3R_45()) return true;
  7897. if (jj_scan_token(64)) return true;
  7898. return false;
  7899. }
  7900. private boolean jj_3R_152() {
  7901. if (jj_3R_175()) return true;
  7902. Token token112=jj_scanpos;
  7903. if (jj_3R_176()) jj_scanpos=token112;
  7904. return false;
  7905. }
  7906. private boolean jj_3R_153() {
  7907. if (jj_scan_token(83)) return true;
  7908. if (jj_3R_118()) return true;
  7909. return false;
  7910. }
  7911. private boolean jj_3R_154() {
  7912. Token token113=jj_scanpos;
  7913. if (jj_scan_token(10)) {
  7914. jj_scanpos=token113;
  7915. if (jj_scan_token(15)) {
  7916. jj_scanpos=token113;
  7917. if (jj_scan_token(17)) {
  7918. jj_scanpos=token113;
  7919. if (jj_scan_token(18)) {
  7920. jj_scanpos=token113;
  7921. if (jj_scan_token(11)) return true;
  7922. }
  7923. }
  7924. }
  7925. }
  7926. return false;
  7927. }
  7928. private boolean jj_3R_155() {
  7929. Token token114=jj_scanpos;
  7930. if (jj_3R_177()) {
  7931. jj_scanpos=token114;
  7932. if (jj_3R_178()) {
  7933. jj_scanpos=token114;
  7934. if (jj_3R_179()) {
  7935. jj_scanpos=token114;
  7936. if (jj_3R_180()) {
  7937. jj_scanpos=token114;
  7938. if (jj_scan_token(97)) {
  7939. jj_scanpos=token114;
  7940. if (jj_scan_token(98)) return true;
  7941. }
  7942. }
  7943. }
  7944. }
  7945. }
  7946. return false;
  7947. }
  7948. private boolean jj_3R_156() {
  7949. if (jj_scan_token(61)) return true;
  7950. if (jj_3R_31()) return true;
  7951. return false;
  7952. }
  7953. private boolean jj_3R_157() {
  7954. Token token115=jj_scanpos;
  7955. if (jj_3_15()) {
  7956. jj_scanpos=token115;
  7957. if (jj_3R_181()) return true;
  7958. }
  7959. return false;
  7960. }
  7961. private boolean jj_3R_158() {
  7962. if (jj_3R_134()) return true;
  7963. return false;
  7964. }
  7965. private boolean jj_3R_159() {
  7966. if (jj_3R_182()) return true;
  7967. return false;
  7968. }
  7969. private boolean jj_3R_160() {
  7970. if (jj_3R_33()) return true;
  7971. return false;
  7972. }
  7973. private boolean jj_3R_161() {
  7974. if (jj_scan_token(IF)) return true;
  7975. if (jj_scan_token(63)) return true;
  7976. if (jj_3R_41()) return true;
  7977. if (jj_scan_token(64)) return true;
  7978. if (jj_3R_40()) return true;
  7979. Token token116=jj_scanpos;
  7980. if (jj_3_33()) jj_scanpos=token116;
  7981. return false;
  7982. }
  7983. private boolean jj_3R_162() {
  7984. if (jj_scan_token(SWITCH)) return true;
  7985. if (jj_scan_token(63)) return true;
  7986. if (jj_3R_41()) return true;
  7987. if (jj_scan_token(64)) return true;
  7988. if (jj_3R_40()) return true;
  7989. return false;
  7990. }
  7991. private boolean jj_3R_163() {
  7992. if (jj_scan_token(WHILE)) return true;
  7993. if (jj_scan_token(63)) return true;
  7994. if (jj_3R_41()) return true;
  7995. if (jj_scan_token(64)) return true;
  7996. if (jj_3R_40()) return true;
  7997. return false;
  7998. }
  7999. private boolean jj_3R_164() {
  8000. if (jj_scan_token(DO)) return true;
  8001. if (jj_3R_40()) return true;
  8002. if (jj_scan_token(WHILE)) return true;
  8003. if (jj_scan_token(63)) return true;
  8004. if (jj_3R_41()) return true;
  8005. if (jj_scan_token(64)) return true;
  8006. if (jj_scan_token(57)) return true;
  8007. return false;
  8008. }
  8009. private boolean jj_3R_165() {
  8010. if (jj_scan_token(FOR)) return true;
  8011. if (jj_scan_token(63)) return true;
  8012. Token token117=jj_scanpos;
  8013. if (jj_3_34()) {
  8014. jj_scanpos=token117;
  8015. if (jj_3_35()) {
  8016. jj_scanpos=token117;
  8017. if (jj_scan_token(57)) return true;
  8018. }
  8019. }
  8020. Token token118=jj_scanpos;
  8021. if (jj_3R_207()) jj_scanpos=token118;
  8022. if (jj_scan_token(57)) return true;
  8023. Token token119=jj_scanpos;
  8024. if (jj_3R_208()) jj_scanpos=token119;
  8025. if (jj_scan_token(64)) return true;
  8026. if (jj_3R_40()) return true;
  8027. return false;
  8028. }
  8029. private boolean jj_3R_166() {
  8030. if (jj_scan_token(CONTINUE)) return true;
  8031. if (jj_scan_token(57)) return true;
  8032. return false;
  8033. }
  8034. private boolean jj_3R_167() {
  8035. if (jj_scan_token(BREAK)) return true;
  8036. if (jj_scan_token(57)) return true;
  8037. return false;
  8038. }
  8039. private boolean jj_3R_168() {
  8040. if (jj_scan_token(RETURN)) return true;
  8041. Token token120=jj_scanpos;
  8042. if (jj_3R_209()) jj_scanpos=token120;
  8043. if (jj_scan_token(57)) return true;
  8044. return false;
  8045. }
  8046. private boolean jj_3R_169() {
  8047. if (jj_scan_token(86)) return true;
  8048. if (jj_3R_46()) return true;
  8049. return false;
  8050. }
  8051. private boolean jj_3R_170() {
  8052. if (jj_scan_token(67)) return true;
  8053. if (jj_3R_46()) return true;
  8054. return false;
  8055. }
  8056. private boolean jj_3R_171() {
  8057. if (jj_scan_token(93)) return true;
  8058. if (jj_3R_46()) return true;
  8059. return false;
  8060. }
  8061. private boolean jj_3R_172() {
  8062. if (jj_scan_token(94)) return true;
  8063. if (jj_3R_46()) return true;
  8064. return false;
  8065. }
  8066. private boolean jj_3R_173() {
  8067. if (jj_scan_token(99)) return true;
  8068. if (jj_3R_46()) return true;
  8069. return false;
  8070. }
  8071. private boolean jj_3R_174() {
  8072. if (jj_scan_token(100)) return true;
  8073. if (jj_3R_46()) return true;
  8074. return false;
  8075. }
  8076. private boolean jj_3R_175() {
  8077. if (jj_3R_184()) return true;
  8078. Token token121=jj_scanpos;
  8079. if (jj_3R_185()) jj_scanpos=token121;
  8080. return false;
  8081. }
  8082. private boolean jj_3R_176() {
  8083. if (jj_scan_token(84)) return true;
  8084. if (jj_3R_152()) return true;
  8085. return false;
  8086. }
  8087. private boolean jj_3R_177() {
  8088. if (jj_3R_187()) return true;
  8089. return false;
  8090. }
  8091. private boolean jj_3R_178() {
  8092. if (jj_3R_188()) return true;
  8093. return false;
  8094. }
  8095. private boolean jj_3R_179() {
  8096. if (jj_3R_189()) return true;
  8097. return false;
  8098. }
  8099. private boolean jj_3R_180() {
  8100. if (jj_3R_190()) return true;
  8101. return false;
  8102. }
  8103. private boolean jj_3R_181() {
  8104. Token token122=jj_scanpos;
  8105. if (jj_3R_191()) jj_scanpos=token122;
  8106. if (jj_scan_token(62)) return true;
  8107. if (jj_3R_134()) return true;
  8108. return false;
  8109. }
  8110. private boolean jj_3R_182() {
  8111. if (jj_scan_token(IDENTIFIER)) return true;
  8112. while (true) {
  8113. Token token123=jj_scanpos;
  8114. if (jj_3R_192()) {
  8115. jj_scanpos=token123;
  8116. break;
  8117. }
  8118. }
  8119. return false;
  8120. }
  8121. private boolean jj_3R_183() {
  8122. if (jj_scan_token(60)) return true;
  8123. if (jj_scan_token(68)) return true;
  8124. return false;
  8125. }
  8126. private boolean jj_3R_184() {
  8127. if (jj_3R_193()) return true;
  8128. Token token124=jj_scanpos;
  8129. if (jj_3R_194()) jj_scanpos=token124;
  8130. return false;
  8131. }
  8132. private boolean jj_3R_185() {
  8133. if (jj_scan_token(85)) return true;
  8134. if (jj_3R_175()) return true;
  8135. return false;
  8136. }
  8137. private boolean jj_3R_186() {
  8138. Token token125=jj_scanpos;
  8139. if (jj_3R_196()) {
  8140. jj_scanpos=token125;
  8141. if (jj_3R_197()) return true;
  8142. }
  8143. return false;
  8144. }
  8145. private boolean jj_3R_187() {
  8146. if (jj_scan_token(65)) return true;
  8147. if (jj_3R_41()) return true;
  8148. if (jj_scan_token(66)) return true;
  8149. return false;
  8150. }
  8151. private boolean jj_3R_188() {
  8152. if (jj_scan_token(63)) return true;
  8153. Token token126=jj_scanpos;
  8154. if (jj_3R_198()) jj_scanpos=token126;
  8155. if (jj_scan_token(64)) return true;
  8156. return false;
  8157. }
  8158. private boolean jj_3R_189() {
  8159. if (jj_scan_token(101)) return true;
  8160. if (jj_scan_token(IDENTIFIER)) return true;
  8161. return false;
  8162. }
  8163. private boolean jj_3R_190() {
  8164. if (jj_scan_token(102)) return true;
  8165. if (jj_scan_token(IDENTIFIER)) return true;
  8166. return false;
  8167. }
  8168. private boolean jj_3R_191() {
  8169. if (jj_3R_27()) return true;
  8170. return false;
  8171. }
  8172. private boolean jj_3R_192() {
  8173. if (jj_scan_token(60)) return true;
  8174. if (jj_scan_token(IDENTIFIER)) return true;
  8175. return false;
  8176. }
  8177. private boolean jj_3R_193() {
  8178. if (jj_3R_200()) return true;
  8179. Token token127=jj_scanpos;
  8180. if (jj_3R_201()) jj_scanpos=token127;
  8181. return false;
  8182. }
  8183. private boolean jj_3R_194() {
  8184. if (jj_scan_token(86)) return true;
  8185. if (jj_3R_184()) return true;
  8186. return false;
  8187. }
  8188. private boolean jj_3R_195() {
  8189. if (jj_3R_134()) return true;
  8190. return false;
  8191. }
  8192. private boolean jj_3R_196() {
  8193. if (jj_scan_token(65)) return true;
  8194. Token token128=jj_scanpos;
  8195. if (jj_3R_202()) jj_scanpos=token128;
  8196. if (jj_scan_token(66)) return true;
  8197. return false;
  8198. }
  8199. private boolean jj_3R_197() {
  8200. if (jj_scan_token(63)) return true;
  8201. Token token129=jj_scanpos;
  8202. if (jj_3_24()) jj_scanpos=token129;
  8203. if (jj_scan_token(64)) return true;
  8204. return false;
  8205. }
  8206. private boolean jj_3R_198() {
  8207. if (jj_3R_48()) return true;
  8208. return false;
  8209. }
  8210. private boolean jj_3R_199() {
  8211. if (jj_3R_31()) return true;
  8212. while (true) {
  8213. Token token130=jj_scanpos;
  8214. if (jj_3_20()) {
  8215. jj_scanpos=token130;
  8216. break;
  8217. }
  8218. }
  8219. return false;
  8220. }
  8221. private boolean jj_3R_200() {
  8222. if (jj_3R_203()) return true;
  8223. Token token131=jj_scanpos;
  8224. if (jj_3R_204()) jj_scanpos=token131;
  8225. return false;
  8226. }
  8227. private boolean jj_3R_201() {
  8228. Token token132=jj_scanpos;
  8229. if (jj_scan_token(87)) {
  8230. jj_scanpos=token132;
  8231. if (jj_scan_token(88)) return true;
  8232. }
  8233. if (jj_3R_193()) return true;
  8234. return false;
  8235. }
  8236. private boolean jj_3R_202() {
  8237. if (jj_3R_134()) return true;
  8238. return false;
  8239. }
  8240. private boolean jj_3R_203() {
  8241. if (jj_3R_205()) return true;
  8242. Token token133=jj_scanpos;
  8243. if (jj_3R_206()) jj_scanpos=token133;
  8244. return false;
  8245. }
  8246. private boolean jj_3R_204() {
  8247. Token token134=jj_scanpos;
  8248. if (jj_scan_token(89)) {
  8249. jj_scanpos=token134;
  8250. if (jj_scan_token(90)) {
  8251. jj_scanpos=token134;
  8252. if (jj_scan_token(91)) {
  8253. jj_scanpos=token134;
  8254. if (jj_scan_token(92)) return true;
  8255. }
  8256. }
  8257. }
  8258. if (jj_3R_200()) return true;
  8259. return false;
  8260. }
  8261. private boolean jj_3R_205() {
  8262. if (jj_3R_46()) return true;
  8263. Token token135=jj_scanpos;
  8264. if (jj_3R_211()) jj_scanpos=token135;
  8265. return false;
  8266. }
  8267. private boolean jj_3R_206() {
  8268. Token token136=jj_scanpos;
  8269. if (jj_scan_token(93)) {
  8270. jj_scanpos=token136;
  8271. if (jj_scan_token(94)) return true;
  8272. }
  8273. if (jj_3R_203()) return true;
  8274. return false;
  8275. }
  8276. private boolean jj_3R_207() {
  8277. if (jj_3R_41()) return true;
  8278. return false;
  8279. }
  8280. private boolean jj_3R_208() {
  8281. if (jj_3R_41()) return true;
  8282. return false;
  8283. }
  8284. private boolean jj_3R_209() {
  8285. if (jj_3R_41()) return true;
  8286. return false;
  8287. }
  8288. private boolean jj_3R_210() {
  8289. if (jj_scan_token(60)) return true;
  8290. if (jj_3R_157()) return true;
  8291. return false;
  8292. }
  8293. private boolean jj_3R_211() {
  8294. Token token137=jj_scanpos;
  8295. if (jj_scan_token(67)) {
  8296. jj_scanpos=token137;
  8297. if (jj_scan_token(95)) {
  8298. jj_scanpos=token137;
  8299. if (jj_scan_token(96)) return true;
  8300. }
  8301. }
  8302. if (jj_3R_205()) return true;
  8303. return false;
  8304. }
  8305. }