PageRenderTime 57ms CodeModel.GetById 15ms RepoModel.GetById 0ms app.codeStats 0ms

/antlr-3.4/runtime/ObjC/Framework/examples/simplecTreeParser/output1/SimpleCParser.java

https://bitbucket.org/cyanogenmod/android_external_antlr
Java | 1814 lines | 1208 code | 420 blank | 186 comment | 52 complexity | a4375ff49c6bcecfe09304d39c20e783 MD5 | raw file
  1. // $ANTLR 3.2 Aug 13, 2010 19:41:25 /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/simplecTreeParser/SimpleC.g 2010-08-13 19:42:18
  2. import org.antlr.runtime.*;
  3. import java.util.Stack;
  4. import java.util.List;
  5. import java.util.ArrayList;
  6. import org.antlr.runtime.tree.*;
  7. public class SimpleCParser extends Parser {
  8. public static final String[] tokenNames = new String[] {
  9. "<invalid>", "<EOR>", "<DOWN>", "<UP>", "VAR_DEF", "ARG_DEF", "FUNC_HDR", "FUNC_DECL", "FUNC_DEF", "BLOCK", "ID", "EQ", "INT", "FOR", "INT_TYPE", "CHAR", "VOID", "EQEQ", "LT", "PLUS", "WS", "';'", "'('", "','", "')'", "'{'", "'}'"
  10. };
  11. public static final int LT=18;
  12. public static final int T__26=26;
  13. public static final int T__25=25;
  14. public static final int T__24=24;
  15. public static final int T__23=23;
  16. public static final int T__22=22;
  17. public static final int T__21=21;
  18. public static final int CHAR=15;
  19. public static final int FOR=13;
  20. public static final int FUNC_HDR=6;
  21. public static final int INT=12;
  22. public static final int FUNC_DEF=8;
  23. public static final int INT_TYPE=14;
  24. public static final int ID=10;
  25. public static final int EOF=-1;
  26. public static final int FUNC_DECL=7;
  27. public static final int ARG_DEF=5;
  28. public static final int WS=20;
  29. public static final int BLOCK=9;
  30. public static final int PLUS=19;
  31. public static final int VOID=16;
  32. public static final int EQ=11;
  33. public static final int VAR_DEF=4;
  34. public static final int EQEQ=17;
  35. // delegates
  36. // delegators
  37. public SimpleCParser(TokenStream input) {
  38. this(input, new RecognizerSharedState());
  39. }
  40. public SimpleCParser(TokenStream input, RecognizerSharedState state) {
  41. super(input, state);
  42. }
  43. protected TreeAdaptor adaptor = new CommonTreeAdaptor();
  44. public void setTreeAdaptor(TreeAdaptor adaptor) {
  45. this.adaptor = adaptor;
  46. }
  47. public TreeAdaptor getTreeAdaptor() {
  48. return adaptor;
  49. }
  50. public String[] getTokenNames() { return SimpleCParser.tokenNames; }
  51. public String getGrammarFileName() { return "/usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/simplecTreeParser/SimpleC.g"; }
  52. public static class program_return extends ParserRuleReturnScope {
  53. Object tree;
  54. public Object getTree() { return tree; }
  55. };
  56. // $ANTLR start "program"
  57. // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/simplecTreeParser/SimpleC.g:16:1: program : ( declaration )+ ;
  58. public final SimpleCParser.program_return program() throws RecognitionException {
  59. SimpleCParser.program_return retval = new SimpleCParser.program_return();
  60. retval.start = input.LT(1);
  61. Object root_0 = null;
  62. SimpleCParser.declaration_return declaration1 = null;
  63. try {
  64. // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/simplecTreeParser/SimpleC.g:17:5: ( ( declaration )+ )
  65. // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/simplecTreeParser/SimpleC.g:17:9: ( declaration )+
  66. {
  67. root_0 = (Object)adaptor.nil();
  68. // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/simplecTreeParser/SimpleC.g:17:9: ( declaration )+
  69. int cnt1=0;
  70. loop1:
  71. do {
  72. int alt1=2;
  73. int LA1_0 = input.LA(1);
  74. if ( (LA1_0==ID||(LA1_0>=INT_TYPE && LA1_0<=VOID)) ) {
  75. alt1=1;
  76. }
  77. switch (alt1) {
  78. case 1 :
  79. // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/simplecTreeParser/SimpleC.g:17:9: declaration
  80. {
  81. pushFollow(FOLLOW_declaration_in_program85);
  82. declaration1=declaration();
  83. state._fsp--;
  84. adaptor.addChild(root_0, declaration1.getTree());
  85. }
  86. break;
  87. default :
  88. if ( cnt1 >= 1 ) break loop1;
  89. EarlyExitException eee =
  90. new EarlyExitException(1, input);
  91. throw eee;
  92. }
  93. cnt1++;
  94. } while (true);
  95. }
  96. retval.stop = input.LT(-1);
  97. retval.tree = (Object)adaptor.rulePostProcessing(root_0);
  98. adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
  99. }
  100. catch (RecognitionException re) {
  101. reportError(re);
  102. recover(input,re);
  103. retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
  104. }
  105. finally {
  106. }
  107. return retval;
  108. }
  109. // $ANTLR end "program"
  110. public static class declaration_return extends ParserRuleReturnScope {
  111. Object tree;
  112. public Object getTree() { return tree; }
  113. };
  114. // $ANTLR start "declaration"
  115. // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/simplecTreeParser/SimpleC.g:20:1: declaration : ( variable | functionHeader ';' -> ^( FUNC_DECL functionHeader ) | functionHeader block -> ^( FUNC_DEF functionHeader block ) );
  116. public final SimpleCParser.declaration_return declaration() throws RecognitionException {
  117. SimpleCParser.declaration_return retval = new SimpleCParser.declaration_return();
  118. retval.start = input.LT(1);
  119. Object root_0 = null;
  120. Token char_literal4=null;
  121. SimpleCParser.variable_return variable2 = null;
  122. SimpleCParser.functionHeader_return functionHeader3 = null;
  123. SimpleCParser.functionHeader_return functionHeader5 = null;
  124. SimpleCParser.block_return block6 = null;
  125. Object char_literal4_tree=null;
  126. RewriteRuleTokenStream stream_21=new RewriteRuleTokenStream(adaptor,"token 21");
  127. RewriteRuleSubtreeStream stream_functionHeader=new RewriteRuleSubtreeStream(adaptor,"rule functionHeader");
  128. RewriteRuleSubtreeStream stream_block=new RewriteRuleSubtreeStream(adaptor,"rule block");
  129. try {
  130. // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/simplecTreeParser/SimpleC.g:21:5: ( variable | functionHeader ';' -> ^( FUNC_DECL functionHeader ) | functionHeader block -> ^( FUNC_DEF functionHeader block ) )
  131. int alt2=3;
  132. alt2 = dfa2.predict(input);
  133. switch (alt2) {
  134. case 1 :
  135. // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/simplecTreeParser/SimpleC.g:21:9: variable
  136. {
  137. root_0 = (Object)adaptor.nil();
  138. pushFollow(FOLLOW_variable_in_declaration105);
  139. variable2=variable();
  140. state._fsp--;
  141. adaptor.addChild(root_0, variable2.getTree());
  142. }
  143. break;
  144. case 2 :
  145. // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/simplecTreeParser/SimpleC.g:22:9: functionHeader ';'
  146. {
  147. pushFollow(FOLLOW_functionHeader_in_declaration115);
  148. functionHeader3=functionHeader();
  149. state._fsp--;
  150. stream_functionHeader.add(functionHeader3.getTree());
  151. char_literal4=(Token)match(input,21,FOLLOW_21_in_declaration117);
  152. stream_21.add(char_literal4);
  153. // AST REWRITE
  154. // elements: functionHeader
  155. // token labels:
  156. // rule labels: retval
  157. // token list labels:
  158. // rule list labels:
  159. // wildcard labels:
  160. retval.tree = root_0;
  161. RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
  162. root_0 = (Object)adaptor.nil();
  163. // 22:28: -> ^( FUNC_DECL functionHeader )
  164. {
  165. // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/simplecTreeParser/SimpleC.g:22:31: ^( FUNC_DECL functionHeader )
  166. {
  167. Object root_1 = (Object)adaptor.nil();
  168. root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(FUNC_DECL, "FUNC_DECL"), root_1);
  169. adaptor.addChild(root_1, stream_functionHeader.nextTree());
  170. adaptor.addChild(root_0, root_1);
  171. }
  172. }
  173. retval.tree = root_0;
  174. }
  175. break;
  176. case 3 :
  177. // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/simplecTreeParser/SimpleC.g:23:9: functionHeader block
  178. {
  179. pushFollow(FOLLOW_functionHeader_in_declaration135);
  180. functionHeader5=functionHeader();
  181. state._fsp--;
  182. stream_functionHeader.add(functionHeader5.getTree());
  183. pushFollow(FOLLOW_block_in_declaration137);
  184. block6=block();
  185. state._fsp--;
  186. stream_block.add(block6.getTree());
  187. // AST REWRITE
  188. // elements: functionHeader, block
  189. // token labels:
  190. // rule labels: retval
  191. // token list labels:
  192. // rule list labels:
  193. // wildcard labels:
  194. retval.tree = root_0;
  195. RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
  196. root_0 = (Object)adaptor.nil();
  197. // 23:30: -> ^( FUNC_DEF functionHeader block )
  198. {
  199. // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/simplecTreeParser/SimpleC.g:23:33: ^( FUNC_DEF functionHeader block )
  200. {
  201. Object root_1 = (Object)adaptor.nil();
  202. root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(FUNC_DEF, "FUNC_DEF"), root_1);
  203. adaptor.addChild(root_1, stream_functionHeader.nextTree());
  204. adaptor.addChild(root_1, stream_block.nextTree());
  205. adaptor.addChild(root_0, root_1);
  206. }
  207. }
  208. retval.tree = root_0;
  209. }
  210. break;
  211. }
  212. retval.stop = input.LT(-1);
  213. retval.tree = (Object)adaptor.rulePostProcessing(root_0);
  214. adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
  215. }
  216. catch (RecognitionException re) {
  217. reportError(re);
  218. recover(input,re);
  219. retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
  220. }
  221. finally {
  222. }
  223. return retval;
  224. }
  225. // $ANTLR end "declaration"
  226. public static class variable_return extends ParserRuleReturnScope {
  227. Object tree;
  228. public Object getTree() { return tree; }
  229. };
  230. // $ANTLR start "variable"
  231. // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/simplecTreeParser/SimpleC.g:26:1: variable : type declarator ';' -> ^( VAR_DEF type declarator ) ;
  232. public final SimpleCParser.variable_return variable() throws RecognitionException {
  233. SimpleCParser.variable_return retval = new SimpleCParser.variable_return();
  234. retval.start = input.LT(1);
  235. Object root_0 = null;
  236. Token char_literal9=null;
  237. SimpleCParser.type_return type7 = null;
  238. SimpleCParser.declarator_return declarator8 = null;
  239. Object char_literal9_tree=null;
  240. RewriteRuleTokenStream stream_21=new RewriteRuleTokenStream(adaptor,"token 21");
  241. RewriteRuleSubtreeStream stream_declarator=new RewriteRuleSubtreeStream(adaptor,"rule declarator");
  242. RewriteRuleSubtreeStream stream_type=new RewriteRuleSubtreeStream(adaptor,"rule type");
  243. try {
  244. // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/simplecTreeParser/SimpleC.g:27:5: ( type declarator ';' -> ^( VAR_DEF type declarator ) )
  245. // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/simplecTreeParser/SimpleC.g:27:9: type declarator ';'
  246. {
  247. pushFollow(FOLLOW_type_in_variable166);
  248. type7=type();
  249. state._fsp--;
  250. stream_type.add(type7.getTree());
  251. pushFollow(FOLLOW_declarator_in_variable168);
  252. declarator8=declarator();
  253. state._fsp--;
  254. stream_declarator.add(declarator8.getTree());
  255. char_literal9=(Token)match(input,21,FOLLOW_21_in_variable170);
  256. stream_21.add(char_literal9);
  257. // AST REWRITE
  258. // elements: type, declarator
  259. // token labels:
  260. // rule labels: retval
  261. // token list labels:
  262. // rule list labels:
  263. // wildcard labels:
  264. retval.tree = root_0;
  265. RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
  266. root_0 = (Object)adaptor.nil();
  267. // 27:29: -> ^( VAR_DEF type declarator )
  268. {
  269. // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/simplecTreeParser/SimpleC.g:27:32: ^( VAR_DEF type declarator )
  270. {
  271. Object root_1 = (Object)adaptor.nil();
  272. root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(VAR_DEF, "VAR_DEF"), root_1);
  273. adaptor.addChild(root_1, stream_type.nextTree());
  274. adaptor.addChild(root_1, stream_declarator.nextTree());
  275. adaptor.addChild(root_0, root_1);
  276. }
  277. }
  278. retval.tree = root_0;
  279. }
  280. retval.stop = input.LT(-1);
  281. retval.tree = (Object)adaptor.rulePostProcessing(root_0);
  282. adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
  283. }
  284. catch (RecognitionException re) {
  285. reportError(re);
  286. recover(input,re);
  287. retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
  288. }
  289. finally {
  290. }
  291. return retval;
  292. }
  293. // $ANTLR end "variable"
  294. public static class declarator_return extends ParserRuleReturnScope {
  295. Object tree;
  296. public Object getTree() { return tree; }
  297. };
  298. // $ANTLR start "declarator"
  299. // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/simplecTreeParser/SimpleC.g:30:1: declarator : ID ;
  300. public final SimpleCParser.declarator_return declarator() throws RecognitionException {
  301. SimpleCParser.declarator_return retval = new SimpleCParser.declarator_return();
  302. retval.start = input.LT(1);
  303. Object root_0 = null;
  304. Token ID10=null;
  305. Object ID10_tree=null;
  306. try {
  307. // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/simplecTreeParser/SimpleC.g:31:5: ( ID )
  308. // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/simplecTreeParser/SimpleC.g:31:9: ID
  309. {
  310. root_0 = (Object)adaptor.nil();
  311. ID10=(Token)match(input,ID,FOLLOW_ID_in_declarator199);
  312. ID10_tree = (Object)adaptor.create(ID10);
  313. adaptor.addChild(root_0, ID10_tree);
  314. }
  315. retval.stop = input.LT(-1);
  316. retval.tree = (Object)adaptor.rulePostProcessing(root_0);
  317. adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
  318. }
  319. catch (RecognitionException re) {
  320. reportError(re);
  321. recover(input,re);
  322. retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
  323. }
  324. finally {
  325. }
  326. return retval;
  327. }
  328. // $ANTLR end "declarator"
  329. public static class functionHeader_return extends ParserRuleReturnScope {
  330. Object tree;
  331. public Object getTree() { return tree; }
  332. };
  333. // $ANTLR start "functionHeader"
  334. // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/simplecTreeParser/SimpleC.g:34:1: functionHeader : type ID '(' ( formalParameter ( ',' formalParameter )* )? ')' -> ^( FUNC_HDR type ID ( formalParameter )+ ) ;
  335. public final SimpleCParser.functionHeader_return functionHeader() throws RecognitionException {
  336. SimpleCParser.functionHeader_return retval = new SimpleCParser.functionHeader_return();
  337. retval.start = input.LT(1);
  338. Object root_0 = null;
  339. Token ID12=null;
  340. Token char_literal13=null;
  341. Token char_literal15=null;
  342. Token char_literal17=null;
  343. SimpleCParser.type_return type11 = null;
  344. SimpleCParser.formalParameter_return formalParameter14 = null;
  345. SimpleCParser.formalParameter_return formalParameter16 = null;
  346. Object ID12_tree=null;
  347. Object char_literal13_tree=null;
  348. Object char_literal15_tree=null;
  349. Object char_literal17_tree=null;
  350. RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID");
  351. RewriteRuleTokenStream stream_22=new RewriteRuleTokenStream(adaptor,"token 22");
  352. RewriteRuleTokenStream stream_23=new RewriteRuleTokenStream(adaptor,"token 23");
  353. RewriteRuleTokenStream stream_24=new RewriteRuleTokenStream(adaptor,"token 24");
  354. RewriteRuleSubtreeStream stream_formalParameter=new RewriteRuleSubtreeStream(adaptor,"rule formalParameter");
  355. RewriteRuleSubtreeStream stream_type=new RewriteRuleSubtreeStream(adaptor,"rule type");
  356. try {
  357. // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/simplecTreeParser/SimpleC.g:35:5: ( type ID '(' ( formalParameter ( ',' formalParameter )* )? ')' -> ^( FUNC_HDR type ID ( formalParameter )+ ) )
  358. // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/simplecTreeParser/SimpleC.g:35:9: type ID '(' ( formalParameter ( ',' formalParameter )* )? ')'
  359. {
  360. pushFollow(FOLLOW_type_in_functionHeader219);
  361. type11=type();
  362. state._fsp--;
  363. stream_type.add(type11.getTree());
  364. ID12=(Token)match(input,ID,FOLLOW_ID_in_functionHeader221);
  365. stream_ID.add(ID12);
  366. char_literal13=(Token)match(input,22,FOLLOW_22_in_functionHeader223);
  367. stream_22.add(char_literal13);
  368. // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/simplecTreeParser/SimpleC.g:35:21: ( formalParameter ( ',' formalParameter )* )?
  369. int alt4=2;
  370. int LA4_0 = input.LA(1);
  371. if ( (LA4_0==ID||(LA4_0>=INT_TYPE && LA4_0<=VOID)) ) {
  372. alt4=1;
  373. }
  374. switch (alt4) {
  375. case 1 :
  376. // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/simplecTreeParser/SimpleC.g:35:23: formalParameter ( ',' formalParameter )*
  377. {
  378. pushFollow(FOLLOW_formalParameter_in_functionHeader227);
  379. formalParameter14=formalParameter();
  380. state._fsp--;
  381. stream_formalParameter.add(formalParameter14.getTree());
  382. // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/simplecTreeParser/SimpleC.g:35:39: ( ',' formalParameter )*
  383. loop3:
  384. do {
  385. int alt3=2;
  386. int LA3_0 = input.LA(1);
  387. if ( (LA3_0==23) ) {
  388. alt3=1;
  389. }
  390. switch (alt3) {
  391. case 1 :
  392. // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/simplecTreeParser/SimpleC.g:35:41: ',' formalParameter
  393. {
  394. char_literal15=(Token)match(input,23,FOLLOW_23_in_functionHeader231);
  395. stream_23.add(char_literal15);
  396. pushFollow(FOLLOW_formalParameter_in_functionHeader233);
  397. formalParameter16=formalParameter();
  398. state._fsp--;
  399. stream_formalParameter.add(formalParameter16.getTree());
  400. }
  401. break;
  402. default :
  403. break loop3;
  404. }
  405. } while (true);
  406. }
  407. break;
  408. }
  409. char_literal17=(Token)match(input,24,FOLLOW_24_in_functionHeader241);
  410. stream_24.add(char_literal17);
  411. // AST REWRITE
  412. // elements: formalParameter, ID, type
  413. // token labels:
  414. // rule labels: retval
  415. // token list labels:
  416. // rule list labels:
  417. // wildcard labels:
  418. retval.tree = root_0;
  419. RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
  420. root_0 = (Object)adaptor.nil();
  421. // 36:9: -> ^( FUNC_HDR type ID ( formalParameter )+ )
  422. {
  423. // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/simplecTreeParser/SimpleC.g:36:12: ^( FUNC_HDR type ID ( formalParameter )+ )
  424. {
  425. Object root_1 = (Object)adaptor.nil();
  426. root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(FUNC_HDR, "FUNC_HDR"), root_1);
  427. adaptor.addChild(root_1, stream_type.nextTree());
  428. adaptor.addChild(root_1, stream_ID.nextNode());
  429. if ( !(stream_formalParameter.hasNext()) ) {
  430. throw new RewriteEarlyExitException();
  431. }
  432. while ( stream_formalParameter.hasNext() ) {
  433. adaptor.addChild(root_1, stream_formalParameter.nextTree());
  434. }
  435. stream_formalParameter.reset();
  436. adaptor.addChild(root_0, root_1);
  437. }
  438. }
  439. retval.tree = root_0;
  440. }
  441. retval.stop = input.LT(-1);
  442. retval.tree = (Object)adaptor.rulePostProcessing(root_0);
  443. adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
  444. }
  445. catch (RecognitionException re) {
  446. reportError(re);
  447. recover(input,re);
  448. retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
  449. }
  450. finally {
  451. }
  452. return retval;
  453. }
  454. // $ANTLR end "functionHeader"
  455. public static class formalParameter_return extends ParserRuleReturnScope {
  456. Object tree;
  457. public Object getTree() { return tree; }
  458. };
  459. // $ANTLR start "formalParameter"
  460. // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/simplecTreeParser/SimpleC.g:39:1: formalParameter : type declarator -> ^( ARG_DEF type declarator ) ;
  461. public final SimpleCParser.formalParameter_return formalParameter() throws RecognitionException {
  462. SimpleCParser.formalParameter_return retval = new SimpleCParser.formalParameter_return();
  463. retval.start = input.LT(1);
  464. Object root_0 = null;
  465. SimpleCParser.type_return type18 = null;
  466. SimpleCParser.declarator_return declarator19 = null;
  467. RewriteRuleSubtreeStream stream_declarator=new RewriteRuleSubtreeStream(adaptor,"rule declarator");
  468. RewriteRuleSubtreeStream stream_type=new RewriteRuleSubtreeStream(adaptor,"rule type");
  469. try {
  470. // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/simplecTreeParser/SimpleC.g:40:5: ( type declarator -> ^( ARG_DEF type declarator ) )
  471. // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/simplecTreeParser/SimpleC.g:40:9: type declarator
  472. {
  473. pushFollow(FOLLOW_type_in_formalParameter281);
  474. type18=type();
  475. state._fsp--;
  476. stream_type.add(type18.getTree());
  477. pushFollow(FOLLOW_declarator_in_formalParameter283);
  478. declarator19=declarator();
  479. state._fsp--;
  480. stream_declarator.add(declarator19.getTree());
  481. // AST REWRITE
  482. // elements: declarator, type
  483. // token labels:
  484. // rule labels: retval
  485. // token list labels:
  486. // rule list labels:
  487. // wildcard labels:
  488. retval.tree = root_0;
  489. RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
  490. root_0 = (Object)adaptor.nil();
  491. // 40:25: -> ^( ARG_DEF type declarator )
  492. {
  493. // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/simplecTreeParser/SimpleC.g:40:28: ^( ARG_DEF type declarator )
  494. {
  495. Object root_1 = (Object)adaptor.nil();
  496. root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(ARG_DEF, "ARG_DEF"), root_1);
  497. adaptor.addChild(root_1, stream_type.nextTree());
  498. adaptor.addChild(root_1, stream_declarator.nextTree());
  499. adaptor.addChild(root_0, root_1);
  500. }
  501. }
  502. retval.tree = root_0;
  503. }
  504. retval.stop = input.LT(-1);
  505. retval.tree = (Object)adaptor.rulePostProcessing(root_0);
  506. adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
  507. }
  508. catch (RecognitionException re) {
  509. reportError(re);
  510. recover(input,re);
  511. retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
  512. }
  513. finally {
  514. }
  515. return retval;
  516. }
  517. // $ANTLR end "formalParameter"
  518. public static class type_return extends ParserRuleReturnScope {
  519. Object tree;
  520. public Object getTree() { return tree; }
  521. };
  522. // $ANTLR start "type"
  523. // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/simplecTreeParser/SimpleC.g:43:1: type : ( 'int' | 'char' | 'void' | ID );
  524. public final SimpleCParser.type_return type() throws RecognitionException {
  525. SimpleCParser.type_return retval = new SimpleCParser.type_return();
  526. retval.start = input.LT(1);
  527. Object root_0 = null;
  528. Token set20=null;
  529. Object set20_tree=null;
  530. try {
  531. // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/simplecTreeParser/SimpleC.g:44:5: ( 'int' | 'char' | 'void' | ID )
  532. // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/simplecTreeParser/SimpleC.g:
  533. {
  534. root_0 = (Object)adaptor.nil();
  535. set20=(Token)input.LT(1);
  536. if ( input.LA(1)==ID||(input.LA(1)>=INT_TYPE && input.LA(1)<=VOID) ) {
  537. input.consume();
  538. adaptor.addChild(root_0, (Object)adaptor.create(set20));
  539. state.errorRecovery=false;
  540. }
  541. else {
  542. MismatchedSetException mse = new MismatchedSetException(null,input);
  543. throw mse;
  544. }
  545. }
  546. retval.stop = input.LT(-1);
  547. retval.tree = (Object)adaptor.rulePostProcessing(root_0);
  548. adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
  549. }
  550. catch (RecognitionException re) {
  551. reportError(re);
  552. recover(input,re);
  553. retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
  554. }
  555. finally {
  556. }
  557. return retval;
  558. }
  559. // $ANTLR end "type"
  560. public static class block_return extends ParserRuleReturnScope {
  561. Object tree;
  562. public Object getTree() { return tree; }
  563. };
  564. // $ANTLR start "block"
  565. // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/simplecTreeParser/SimpleC.g:50:1: block : lc= '{' ( variable )* ( stat )* '}' -> ^( BLOCK[$lc,@\"BLOCK\"] ( variable )* ( stat )* ) ;
  566. public final SimpleCParser.block_return block() throws RecognitionException {
  567. SimpleCParser.block_return retval = new SimpleCParser.block_return();
  568. retval.start = input.LT(1);
  569. Object root_0 = null;
  570. Token lc=null;
  571. Token char_literal23=null;
  572. SimpleCParser.variable_return variable21 = null;
  573. SimpleCParser.stat_return stat22 = null;
  574. Object lc_tree=null;
  575. Object char_literal23_tree=null;
  576. RewriteRuleTokenStream stream_25=new RewriteRuleTokenStream(adaptor,"token 25");
  577. RewriteRuleTokenStream stream_26=new RewriteRuleTokenStream(adaptor,"token 26");
  578. RewriteRuleSubtreeStream stream_variable=new RewriteRuleSubtreeStream(adaptor,"rule variable");
  579. RewriteRuleSubtreeStream stream_stat=new RewriteRuleSubtreeStream(adaptor,"rule stat");
  580. try {
  581. // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/simplecTreeParser/SimpleC.g:51:5: (lc= '{' ( variable )* ( stat )* '}' -> ^( BLOCK[$lc,@\"BLOCK\"] ( variable )* ( stat )* ) )
  582. // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/simplecTreeParser/SimpleC.g:51:9: lc= '{' ( variable )* ( stat )* '}'
  583. {
  584. lc=(Token)match(input,25,FOLLOW_25_in_block376);
  585. stream_25.add(lc);
  586. // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/simplecTreeParser/SimpleC.g:52:13: ( variable )*
  587. loop5:
  588. do {
  589. int alt5=2;
  590. int LA5_0 = input.LA(1);
  591. if ( (LA5_0==ID) ) {
  592. int LA5_2 = input.LA(2);
  593. if ( (LA5_2==ID) ) {
  594. alt5=1;
  595. }
  596. }
  597. else if ( ((LA5_0>=INT_TYPE && LA5_0<=VOID)) ) {
  598. alt5=1;
  599. }
  600. switch (alt5) {
  601. case 1 :
  602. // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/simplecTreeParser/SimpleC.g:52:13: variable
  603. {
  604. pushFollow(FOLLOW_variable_in_block390);
  605. variable21=variable();
  606. state._fsp--;
  607. stream_variable.add(variable21.getTree());
  608. }
  609. break;
  610. default :
  611. break loop5;
  612. }
  613. } while (true);
  614. // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/simplecTreeParser/SimpleC.g:53:13: ( stat )*
  615. loop6:
  616. do {
  617. int alt6=2;
  618. int LA6_0 = input.LA(1);
  619. if ( (LA6_0==ID||(LA6_0>=INT && LA6_0<=FOR)||(LA6_0>=21 && LA6_0<=22)||LA6_0==25) ) {
  620. alt6=1;
  621. }
  622. switch (alt6) {
  623. case 1 :
  624. // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/simplecTreeParser/SimpleC.g:53:13: stat
  625. {
  626. pushFollow(FOLLOW_stat_in_block405);
  627. stat22=stat();
  628. state._fsp--;
  629. stream_stat.add(stat22.getTree());
  630. }
  631. break;
  632. default :
  633. break loop6;
  634. }
  635. } while (true);
  636. char_literal23=(Token)match(input,26,FOLLOW_26_in_block416);
  637. stream_26.add(char_literal23);
  638. // AST REWRITE
  639. // elements: variable, stat
  640. // token labels:
  641. // rule labels: retval
  642. // token list labels:
  643. // rule list labels:
  644. // wildcard labels:
  645. retval.tree = root_0;
  646. RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
  647. root_0 = (Object)adaptor.nil();
  648. // 55:9: -> ^( BLOCK[$lc,@\"BLOCK\"] ( variable )* ( stat )* )
  649. {
  650. // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/simplecTreeParser/SimpleC.g:55:12: ^( BLOCK[$lc,@\"BLOCK\"] ( variable )* ( stat )* )
  651. {
  652. Object root_1 = (Object)adaptor.nil();
  653. root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(BLOCK, lc, @"BLOCK"), root_1);
  654. // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/simplecTreeParser/SimpleC.g:55:34: ( variable )*
  655. while ( stream_variable.hasNext() ) {
  656. adaptor.addChild(root_1, stream_variable.nextTree());
  657. }
  658. stream_variable.reset();
  659. // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/simplecTreeParser/SimpleC.g:55:44: ( stat )*
  660. while ( stream_stat.hasNext() ) {
  661. adaptor.addChild(root_1, stream_stat.nextTree());
  662. }
  663. stream_stat.reset();
  664. adaptor.addChild(root_0, root_1);
  665. }
  666. }
  667. retval.tree = root_0;
  668. }
  669. retval.stop = input.LT(-1);
  670. retval.tree = (Object)adaptor.rulePostProcessing(root_0);
  671. adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
  672. }
  673. catch (RecognitionException re) {
  674. reportError(re);
  675. recover(input,re);
  676. retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
  677. }
  678. finally {
  679. }
  680. return retval;
  681. }
  682. // $ANTLR end "block"
  683. public static class stat_return extends ParserRuleReturnScope {
  684. Object tree;
  685. public Object getTree() { return tree; }
  686. };
  687. // $ANTLR start "stat"
  688. // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/simplecTreeParser/SimpleC.g:58:1: stat : ( forStat | expr ';' | block | assignStat ';' | ';' );
  689. public final SimpleCParser.stat_return stat() throws RecognitionException {
  690. SimpleCParser.stat_return retval = new SimpleCParser.stat_return();
  691. retval.start = input.LT(1);
  692. Object root_0 = null;
  693. Token char_literal26=null;
  694. Token char_literal29=null;
  695. Token char_literal30=null;
  696. SimpleCParser.forStat_return forStat24 = null;
  697. SimpleCParser.expr_return expr25 = null;
  698. SimpleCParser.block_return block27 = null;
  699. SimpleCParser.assignStat_return assignStat28 = null;
  700. Object char_literal26_tree=null;
  701. Object char_literal29_tree=null;
  702. Object char_literal30_tree=null;
  703. try {
  704. // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/simplecTreeParser/SimpleC.g:58:5: ( forStat | expr ';' | block | assignStat ';' | ';' )
  705. int alt7=5;
  706. switch ( input.LA(1) ) {
  707. case FOR:
  708. {
  709. alt7=1;
  710. }
  711. break;
  712. case ID:
  713. {
  714. int LA7_2 = input.LA(2);
  715. if ( (LA7_2==EQ) ) {
  716. alt7=4;
  717. }
  718. else if ( ((LA7_2>=EQEQ && LA7_2<=PLUS)||LA7_2==21) ) {
  719. alt7=2;
  720. }
  721. else {
  722. NoViableAltException nvae =
  723. new NoViableAltException("", 7, 2, input);
  724. throw nvae;
  725. }
  726. }
  727. break;
  728. case INT:
  729. case 22:
  730. {
  731. alt7=2;
  732. }
  733. break;
  734. case 25:
  735. {
  736. alt7=3;
  737. }
  738. break;
  739. case 21:
  740. {
  741. alt7=5;
  742. }
  743. break;
  744. default:
  745. NoViableAltException nvae =
  746. new NoViableAltException("", 7, 0, input);
  747. throw nvae;
  748. }
  749. switch (alt7) {
  750. case 1 :
  751. // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/simplecTreeParser/SimpleC.g:58:7: forStat
  752. {
  753. root_0 = (Object)adaptor.nil();
  754. pushFollow(FOLLOW_forStat_in_stat449);
  755. forStat24=forStat();
  756. state._fsp--;
  757. adaptor.addChild(root_0, forStat24.getTree());
  758. }
  759. break;
  760. case 2 :
  761. // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/simplecTreeParser/SimpleC.g:59:7: expr ';'
  762. {
  763. root_0 = (Object)adaptor.nil();
  764. pushFollow(FOLLOW_expr_in_stat457);
  765. expr25=expr();
  766. state._fsp--;
  767. adaptor.addChild(root_0, expr25.getTree());
  768. char_literal26=(Token)match(input,21,FOLLOW_21_in_stat459);
  769. }
  770. break;
  771. case 3 :
  772. // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/simplecTreeParser/SimpleC.g:60:7: block
  773. {
  774. root_0 = (Object)adaptor.nil();
  775. pushFollow(FOLLOW_block_in_stat468);
  776. block27=block();
  777. state._fsp--;
  778. adaptor.addChild(root_0, block27.getTree());
  779. }
  780. break;
  781. case 4 :
  782. // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/simplecTreeParser/SimpleC.g:61:7: assignStat ';'
  783. {
  784. root_0 = (Object)adaptor.nil();
  785. pushFollow(FOLLOW_assignStat_in_stat476);
  786. assignStat28=assignStat();
  787. state._fsp--;
  788. adaptor.addChild(root_0, assignStat28.getTree());
  789. char_literal29=(Token)match(input,21,FOLLOW_21_in_stat478);
  790. }
  791. break;
  792. case 5 :
  793. // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/simplecTreeParser/SimpleC.g:62:7: ';'
  794. {
  795. root_0 = (Object)adaptor.nil();
  796. char_literal30=(Token)match(input,21,FOLLOW_21_in_stat487);
  797. }
  798. break;
  799. }
  800. retval.stop = input.LT(-1);
  801. retval.tree = (Object)adaptor.rulePostProcessing(root_0);
  802. adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
  803. }
  804. catch (RecognitionException re) {
  805. reportError(re);
  806. recover(input,re);
  807. retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
  808. }
  809. finally {
  810. }
  811. return retval;
  812. }
  813. // $ANTLR end "stat"
  814. public static class forStat_return extends ParserRuleReturnScope {
  815. Object tree;
  816. public Object getTree() { return tree; }
  817. };
  818. // $ANTLR start "forStat"
  819. // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/simplecTreeParser/SimpleC.g:65:1: forStat : 'for' '(' start= assignStat ';' expr ';' next= assignStat ')' block -> ^( 'for' $start expr $next block ) ;
  820. public final SimpleCParser.forStat_return forStat() throws RecognitionException {
  821. SimpleCParser.forStat_return retval = new SimpleCParser.forStat_return();
  822. retval.start = input.LT(1);
  823. Object root_0 = null;
  824. Token string_literal31=null;
  825. Token char_literal32=null;
  826. Token char_literal33=null;
  827. Token char_literal35=null;
  828. Token char_literal36=null;
  829. SimpleCParser.assignStat_return start = null;
  830. SimpleCParser.assignStat_return next = null;
  831. SimpleCParser.expr_return expr34 = null;
  832. SimpleCParser.block_return block37 = null;
  833. Object string_literal31_tree=null;
  834. Object char_literal32_tree=null;
  835. Object char_literal33_tree=null;
  836. Object char_literal35_tree=null;
  837. Object char_literal36_tree=null;
  838. RewriteRuleTokenStream stream_21=new RewriteRuleTokenStream(adaptor,"token 21");
  839. RewriteRuleTokenStream stream_FOR=new RewriteRuleTokenStream(adaptor,"token FOR");
  840. RewriteRuleTokenStream stream_22=new RewriteRuleTokenStream(adaptor,"token 22");
  841. RewriteRuleTokenStream stream_24=new RewriteRuleTokenStream(adaptor,"token 24");
  842. RewriteRuleSubtreeStream stream_assignStat=new RewriteRuleSubtreeStream(adaptor,"rule assignStat");
  843. RewriteRuleSubtreeStream stream_block=new RewriteRuleSubtreeStream(adaptor,"rule block");
  844. RewriteRuleSubtreeStream stream_expr=new RewriteRuleSubtreeStream(adaptor,"rule expr");
  845. try {
  846. // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/simplecTreeParser/SimpleC.g:66:5: ( 'for' '(' start= assignStat ';' expr ';' next= assignStat ')' block -> ^( 'for' $start expr $next block ) )
  847. // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/simplecTreeParser/SimpleC.g:66:9: 'for' '(' start= assignStat ';' expr ';' next= assignStat ')' block
  848. {
  849. string_literal31=(Token)match(input,FOR,FOLLOW_FOR_in_forStat507);
  850. stream_FOR.add(string_literal31);
  851. char_literal32=(Token)match(input,22,FOLLOW_22_in_forStat509);
  852. stream_22.add(char_literal32);
  853. pushFollow(FOLLOW_assignStat_in_forStat513);
  854. start=assignStat();
  855. state._fsp--;
  856. stream_assignStat.add(start.getTree());
  857. char_literal33=(Token)match(input,21,FOLLOW_21_in_forStat515);
  858. stream_21.add(char_literal33);
  859. pushFollow(FOLLOW_expr_in_forStat517);
  860. expr34=expr();
  861. state._fsp--;
  862. stream_expr.add(expr34.getTree());
  863. char_literal35=(Token)match(input,21,FOLLOW_21_in_forStat519);
  864. stream_21.add(char_literal35);
  865. pushFollow(FOLLOW_assignStat_in_forStat523);
  866. next=assignStat();
  867. state._fsp--;
  868. stream_assignStat.add(next.getTree());
  869. char_literal36=(Token)match(input,24,FOLLOW_24_in_forStat525);
  870. stream_24.add(char_literal36);
  871. pushFollow(FOLLOW_block_in_forStat527);
  872. block37=block();
  873. state._fsp--;
  874. stream_block.add(block37.getTree());
  875. // AST REWRITE
  876. // elements: block, expr, FOR, start, next
  877. // token labels:
  878. // rule labels: retval, start, next
  879. // token list labels:
  880. // rule list labels:
  881. // wildcard labels:
  882. retval.tree = root_0;
  883. RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
  884. RewriteRuleSubtreeStream stream_start=new RewriteRuleSubtreeStream(adaptor,"rule start",start!=null?start.tree:null);
  885. RewriteRuleSubtreeStream stream_next=new RewriteRuleSubtreeStream(adaptor,"rule next",next!=null?next.tree:null);
  886. root_0 = (Object)adaptor.nil();
  887. // 67:9: -> ^( 'for' $start expr $next block )
  888. {
  889. // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/simplecTreeParser/SimpleC.g:67:12: ^( 'for' $start expr $next block )
  890. {
  891. Object root_1 = (Object)adaptor.nil();
  892. root_1 = (Object)adaptor.becomeRoot(stream_FOR.nextNode(), root_1);
  893. adaptor.addChild(root_1, stream_start.nextTree());
  894. adaptor.addChild(root_1, stream_expr.nextTree());
  895. adaptor.addChild(root_1, stream_next.nextTree());
  896. adaptor.addChild(root_1, stream_block.nextTree());
  897. adaptor.addChild(root_0, root_1);
  898. }
  899. }
  900. retval.tree = root_0;
  901. }
  902. retval.stop = input.LT(-1);
  903. retval.tree = (Object)adaptor.rulePostProcessing(root_0);
  904. adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
  905. }
  906. catch (RecognitionException re) {
  907. reportError(re);
  908. recover(input,re);
  909. retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
  910. }
  911. finally {
  912. }
  913. return retval;
  914. }
  915. // $ANTLR end "forStat"
  916. public static class assignStat_return extends ParserRuleReturnScope {
  917. Object tree;
  918. public Object getTree() { return tree; }
  919. };
  920. // $ANTLR start "assignStat"
  921. // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/simplecTreeParser/SimpleC.g:70:1: assignStat : ID EQ expr -> ^( EQ ID expr ) ;
  922. public final SimpleCParser.assignStat_return assignStat() throws RecognitionException {
  923. SimpleCParser.assignStat_return retval = new SimpleCParser.assignStat_return();
  924. retval.start = input.LT(1);
  925. Object root_0 = null;
  926. Token ID38=null;
  927. Token EQ39=null;
  928. SimpleCParser.expr_return expr40 = null;
  929. Object ID38_tree=null;
  930. Object EQ39_tree=null;
  931. RewriteRuleTokenStream stream_EQ=new RewriteRuleTokenStream(adaptor,"token EQ");
  932. RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID");
  933. RewriteRuleSubtreeStream stream_expr=new RewriteRuleSubtreeStream(adaptor,"rule expr");
  934. try {
  935. // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/simplecTreeParser/SimpleC.g:71:5: ( ID EQ expr -> ^( EQ ID expr ) )
  936. // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/simplecTreeParser/SimpleC.g:71:9: ID EQ expr
  937. {
  938. ID38=(Token)match(input,ID,FOLLOW_ID_in_assignStat570);
  939. stream_ID.add(ID38);
  940. EQ39=(Token)match(input,EQ,FOLLOW_EQ_in_assignStat572);
  941. stream_EQ.add(EQ39);
  942. pushFollow(FOLLOW_expr_in_assignStat574);
  943. expr40=expr();
  944. state._fsp--;
  945. stream_expr.add(expr40.getTree());
  946. // AST REWRITE
  947. // elements: EQ, expr, ID
  948. // token labels:
  949. // rule labels: retval
  950. // token list labels:
  951. // rule list labels:
  952. // wildcard labels:
  953. retval.tree = root_0;
  954. RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
  955. root_0 = (Object)adaptor.nil();
  956. // 71:20: -> ^( EQ ID expr )
  957. {
  958. // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/simplecTreeParser/SimpleC.g:71:23: ^( EQ ID expr )
  959. {
  960. Object root_1 = (Object)adaptor.nil();
  961. root_1 = (Object)adaptor.becomeRoot(stream_EQ.nextNode(), root_1);
  962. adaptor.addChild(root_1, stream_ID.nextNode());
  963. adaptor.addChild(root_1, stream_expr.nextTree());
  964. adaptor.addChild(root_0, root_1);
  965. }
  966. }
  967. retval.tree = root_0;
  968. }
  969. retval.stop = input.LT(-1);
  970. retval.tree = (Object)adaptor.rulePostProcessing(root_0);
  971. adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
  972. }
  973. catch (RecognitionException re) {
  974. reportError(re);
  975. recover(input,re);
  976. retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
  977. }
  978. finally {
  979. }
  980. return retval;
  981. }
  982. // $ANTLR end "assignStat"
  983. public static class expr_return extends ParserRuleReturnScope {
  984. Object tree;
  985. public Object getTree() { return tree; }
  986. };
  987. // $ANTLR start "expr"
  988. // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/simplecTreeParser/SimpleC.g:74:1: expr : condExpr ;
  989. public final SimpleCParser.expr_return expr() throws RecognitionException {
  990. SimpleCParser.expr_return retval = new SimpleCParser.expr_return();
  991. retval.start = input.LT(1);
  992. Object root_0 = null;
  993. SimpleCParser.condExpr_return condExpr41 = null;
  994. try {
  995. // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/simplecTreeParser/SimpleC.g:74:5: ( condExpr )
  996. // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/simplecTreeParser/SimpleC.g:74:9: condExpr
  997. {
  998. root_0 = (Object)adaptor.nil();
  999. pushFollow(FOLLOW_condExpr_in_expr598);
  1000. condExpr41=condExpr();
  1001. state._fsp--;
  1002. adaptor.addChild(root_0, condExpr41.getTree());
  1003. }
  1004. retval.stop = input.LT(-1);
  1005. retval.tree = (Object)adaptor.rulePostProcessing(root_0);
  1006. adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
  1007. }
  1008. catch (RecognitionException re) {
  1009. reportError(re);
  1010. recover(input,re);
  1011. retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
  1012. }
  1013. finally {
  1014. }
  1015. return retval;
  1016. }
  1017. // $ANTLR end "expr"
  1018. public static class condExpr_return extends ParserRuleReturnScope {
  1019. Object tree;
  1020. public Object getTree() { return tree; }
  1021. };
  1022. // $ANTLR start "condExpr"
  1023. // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/simplecTreeParser/SimpleC.g:77:1: condExpr : aexpr ( ( '==' | '<' ) aexpr )? ;
  1024. public final SimpleCParser.condExpr_return condExpr() throws RecognitionException {
  1025. SimpleCParser.condExpr_return retval = new SimpleCParser.condExpr_return();
  1026. retval.start = input.LT(1);
  1027. Object root_0 = null;
  1028. Token string_literal43=null;
  1029. Token char_literal44=null;
  1030. SimpleCParser.aexpr_return aexpr42 = null;
  1031. SimpleCParser.aexpr_return aexpr45 = null;
  1032. Object string_literal43_tree=null;
  1033. Object char_literal44_tree=null;
  1034. try {
  1035. // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/simplecTreeParser/SimpleC.g:78:5: ( aexpr ( ( '==' | '<' ) aexpr )? )
  1036. // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/simplecTreeParser/SimpleC.g:78:9: aexpr ( ( '==' | '<' ) aexpr )?
  1037. {
  1038. root_0 = (Object)adaptor.nil();
  1039. pushFollow(FOLLOW_aexpr_in_condExpr617);
  1040. aexpr42=aexpr();
  1041. state._fsp--;
  1042. adaptor.addChild(root_0, aexpr42.getTree());
  1043. // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/simplecTreeParser/SimpleC.g:78:15: ( ( '==' | '<' ) aexpr )?
  1044. int alt9=2;
  1045. int LA9_0 = input.LA(1);
  1046. if ( ((LA9_0>=EQEQ && LA9_0<=LT)) ) {
  1047. alt9=1;
  1048. }
  1049. switch (alt9) {
  1050. case 1 :
  1051. // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/simplecTreeParser/SimpleC.g:78:17: ( '==' | '<' ) aexpr
  1052. {
  1053. // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/simplecTreeParser/SimpleC.g:78:17: ( '==' | '<' )
  1054. int alt8=2;
  1055. int LA8_0 = input.LA(1);
  1056. if ( (LA8_0==EQEQ) ) {
  1057. alt8=1;
  1058. }
  1059. else if ( (LA8_0==LT) ) {
  1060. alt8=2;
  1061. }
  1062. else {
  1063. NoViableAltException nvae =
  1064. new NoViableAltException("", 8, 0, input);
  1065. throw nvae;
  1066. }
  1067. switch (alt8) {
  1068. case 1 :
  1069. // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/simplecTreeParser/SimpleC.g:78:18: '=='
  1070. {
  1071. string_literal43=(Token)match(input,EQEQ,FOLLOW_EQEQ_in_condExpr622);
  1072. string_literal43_tree = (Object)adaptor.create(string_literal43);
  1073. root_0 = (Object)adaptor.becomeRoot(string_literal43_tree, root_0);
  1074. }
  1075. break;
  1076. case 2 :
  1077. // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/simplecTreeParser/SimpleC.g:78:26: '<'
  1078. {
  1079. char_literal44=(Token)match(input,LT,FOLLOW_LT_in_condExpr627);
  1080. char_literal44_tree = (Object)adaptor.create(char_literal44);
  1081. root_0 = (Object)adaptor.becomeRoot(char_literal44_tree, root_0);
  1082. }
  1083. break;
  1084. }
  1085. pushFollow(FOLLOW_aexpr_in_condExpr631);
  1086. aexpr45=aexpr();
  1087. state._fsp--;
  1088. adaptor.addChild(root_0, aexpr45.getTree());
  1089. }
  1090. break;
  1091. }
  1092. }
  1093. retval.stop = input.LT(-1);
  1094. retval.tree = (Object)adaptor.rulePostProcessing(root_0);
  1095. adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
  1096. }
  1097. catch (RecognitionException re) {
  1098. reportError(re);
  1099. recover(input,re);
  1100. retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
  1101. }
  1102. finally {
  1103. }
  1104. return retval;
  1105. }
  1106. // $ANTLR end "condExpr"
  1107. public static class aexpr_return extends ParserRuleReturnScope {
  1108. Object tree;
  1109. public Object getTree() { return tree; }
  1110. };
  1111. // $ANTLR start "aexpr"
  1112. // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/simplecTreeParser/SimpleC.g:81:1: aexpr : atom ( '+' atom )* ;
  1113. public final SimpleCParser.aexpr_return aexpr() throws RecognitionException {
  1114. SimpleCParser.aexpr_return retval = new SimpleCParser.aexpr_return();
  1115. retval.start = input.LT(1);
  1116. Object root_0 = null;
  1117. Token char_literal47=null;
  1118. SimpleCParser.atom_return atom46 = null;
  1119. SimpleCParser.atom_return atom48 = null;
  1120. Object char_literal47_tree=null;
  1121. try {
  1122. // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/simplecTreeParser/SimpleC.g:82:5: ( atom ( '+' atom )* )
  1123. // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/simplecTreeParser/SimpleC.g:82:9: atom ( '+' atom )*
  1124. {
  1125. root_0 = (Object)adaptor.nil();
  1126. pushFollow(FOLLOW_atom_in_aexpr653);
  1127. atom46=atom();
  1128. state._fsp--;
  1129. adaptor.addChild(root_0, atom46.getTree());
  1130. // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/simplecTreeParser/SimpleC.g:82:14: ( '+' atom )*
  1131. loop10:
  1132. do {
  1133. int alt10=2;
  1134. int LA10_0 = input.LA(1);
  1135. if ( (LA10_0==PLUS) ) {
  1136. alt10=1;
  1137. }
  1138. switch (alt10) {
  1139. case 1 :
  1140. // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/simplecTreeParser/SimpleC.g:82:16: '+' atom
  1141. {
  1142. char_literal47=(Token)match(input,PLUS,FOLLOW_PLUS_in_aexpr657);
  1143. char_literal47_tree = (Object)adaptor.create(char_literal47);
  1144. root_0 = (Object)adaptor.becomeRoot(char_literal47_tree, root_0);
  1145. pushFollow(FOLLOW_atom_in_aexpr660);
  1146. atom48=atom();
  1147. state._fsp--;
  1148. adaptor.addChild(root_0, atom48.getTree());
  1149. }
  1150. break;
  1151. default :
  1152. break loop10;
  1153. }
  1154. } while (true);
  1155. }
  1156. retval.stop = input.LT(-1);
  1157. retval.tree = (Object)adaptor.rulePostProcessing(root_0);
  1158. adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
  1159. }
  1160. catch (RecognitionException re) {
  1161. reportError(re);
  1162. recover(input,re);
  1163. retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
  1164. }
  1165. finally {
  1166. }
  1167. return retval;
  1168. }
  1169. // $ANTLR end "aexpr"
  1170. public static class atom_return extends ParserRuleReturnScope {
  1171. Object tree;
  1172. public Object getTree() { return tree; }
  1173. };
  1174. // $ANTLR start "atom"
  1175. // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/simplecTreeParser/SimpleC.g:85:1: atom : ( ID | INT | '(' expr ')' -> expr );
  1176. public final SimpleCParser.atom_return atom() throws RecognitionException {
  1177. SimpleCParser.atom_return retval = new SimpleCParser.atom_return();
  1178. retval.start = input.LT(1);
  1179. Object root_0 = null;
  1180. Token ID49=null;
  1181. Token INT50=null;
  1182. Token char_literal51=null;
  1183. Token char_literal53=null;
  1184. SimpleCParser.expr_return expr52 = null;
  1185. Object ID49_tree=null;
  1186. Object INT50_tree=null;
  1187. Object char_literal51_tree=null;
  1188. Object char_literal53_tree=null;
  1189. RewriteRuleTokenStream stream_22=new RewriteRuleTokenStream(adaptor,"token 22");
  1190. RewriteRuleTokenStream stream_24=new RewriteRuleTokenStream(adaptor,"token 24");
  1191. RewriteRuleSubtreeStream stream_expr=new RewriteRuleSubtreeStream(adaptor,"rule expr");
  1192. try {
  1193. // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/simplecTreeParser/SimpleC.g:86:5: ( ID | INT | '(' expr ')' -> expr )
  1194. int alt11=3;
  1195. switch ( input.LA(1) ) {
  1196. case ID:
  1197. {
  1198. alt11=1;
  1199. }
  1200. break;
  1201. case INT:
  1202. {
  1203. alt11=2;
  1204. }
  1205. break;
  1206. case 22:
  1207. {
  1208. alt11=3;
  1209. }
  1210. break;
  1211. default:
  1212. NoViableAltException nvae =
  1213. new NoViableAltException("", 11, 0, input);
  1214. throw nvae;
  1215. }
  1216. switch (alt11) {
  1217. case 1 :
  1218. // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/simplecTreeParser/SimpleC.g:86:7: ID
  1219. {
  1220. root_0 = (Object)adaptor.nil();
  1221. ID49=(Token)match(input,ID,FOLLOW_ID_in_atom680);
  1222. ID49_tree = (Object)adaptor.create(ID49);
  1223. adaptor.addChild(root_0, ID49_tree);
  1224. }
  1225. break;
  1226. case 2 :
  1227. // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/simplecTreeParser/SimpleC.g:87:7: INT
  1228. {
  1229. root_0 = (Object)adaptor.nil();
  1230. INT50=(Token)match(input,INT,FOLLOW_INT_in_atom694);
  1231. INT50_tree = (Object)adaptor.create(INT50);
  1232. adaptor.addChild(root_0, INT50_tree);
  1233. }
  1234. break;
  1235. case 3 :
  1236. // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/simplecTreeParser/SimpleC.g:88:7: '(' expr ')'
  1237. {
  1238. char_literal51=(Token)match(input,22,FOLLOW_22_in_atom708);
  1239. stream_22.add(char_literal51);
  1240. pushFollow(FOLLOW_expr_in_atom710);
  1241. expr52=expr();
  1242. state._fsp--;
  1243. stream_expr.add(expr52.getTree());
  1244. char_literal53=(Token)match(input,24,FOLLOW_24_in_atom712);
  1245. stream_24.add(char_literal53);
  1246. // AST REWRITE
  1247. // elements: expr
  1248. // token labels:
  1249. // rule labels: retval
  1250. // token list labels:
  1251. // rule list labels:
  1252. // wildcard labels:
  1253. retval.tree = root_0;
  1254. RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
  1255. root_0 = (Object)adaptor.nil();
  1256. // 88:20: -> expr
  1257. {
  1258. adaptor.addChild(root_0, stream_expr.nextTree());
  1259. }
  1260. retval.tree = root_0;
  1261. }
  1262. break;
  1263. }
  1264. retval.stop = input.LT(-1);
  1265. retval.tree = (Object)adaptor.rulePostProcessing(root_0);
  1266. adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
  1267. }
  1268. catch (RecognitionException re) {
  1269. reportError(re);
  1270. recover(input,re);
  1271. retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
  1272. }
  1273. finally {
  1274. }
  1275. return retval;
  1276. }
  1277. // $ANTLR end "atom"
  1278. // Delegated rules
  1279. protected DFA2 dfa2 = new DFA2(this);
  1280. static final String DFA2_eotS =
  1281. "\15\uffff";
  1282. static final String DFA2_eofS =
  1283. "\15\uffff";
  1284. static final String DFA2_minS =
  1285. "\2\12\1\25\1\12\1\uffff\1\12\1\25\1\27\2\uffff\2\12\1\27";
  1286. static final String DFA2_maxS =
  1287. "\1\20\1\12\1\26\1\30\1\uffff\1\12\1\31\1\30\2\uffff\1\20\1\12\1"+
  1288. "\30";
  1289. static final String DFA2_acceptS =
  1290. "\4\uffff\1\1\3\uffff\1\3\1\2\3\uffff";
  1291. static final String DFA2_specialS =
  1292. "\15\uffff}>";
  1293. static final String[] DFA2_transitionS = {
  1294. "\1\1\3\uffff\3\1",
  1295. "\1\2",
  1296. "\1\4\1\3",
  1297. "\1\5\3\uffff\3\5\7\uffff\1\6",
  1298. "",
  1299. "\1\7",
  1300. "\1\11\3\uffff\1\10",
  1301. "\1\12\1\6",
  1302. "",
  1303. "",
  1304. "\1\13\3\uffff\3\13",
  1305. "\1\14",
  1306. "\1\12\1\6"
  1307. };
  1308. static final short[] DFA2_eot = DFA.unpackEncodedString(DFA2_eotS);
  1309. static final short[] DFA2_eof = DFA.unpackEncodedString(DFA2_eofS);
  1310. static final char[] DFA2_min = DFA.unpackEncodedStringToUnsignedChars(DFA2_minS);
  1311. static final char[] DFA2_max = DFA.unpackEncodedStringToUnsignedChars(DFA2_maxS);
  1312. static final short[] DFA2_accept = DFA.unpackEncodedString(DFA2_acceptS);
  1313. static final short[] DFA2_special = DFA.unpackEncodedString(DFA2_specialS);
  1314. static final short[][] DFA2_transition;
  1315. static {
  1316. int numStates = DFA2_transitionS.length;
  1317. DFA2_transition = new short[numStates][];
  1318. for (int i=0; i<numStates; i++) {
  1319. DFA2_transition[i] = DFA.unpackEncodedString(DFA2_transitionS[i]);
  1320. }
  1321. }
  1322. class DFA2 extends DFA {
  1323. public DFA2(BaseRecognizer recognizer) {
  1324. this.recognizer = recognizer;
  1325. this.decisionNumber = 2;
  1326. this.eot = DFA2_eot;
  1327. this.eof = DFA2_eof;
  1328. this.min = DFA2_min;
  1329. this.max = DFA2_max;
  1330. this.accept = DFA2_accept;
  1331. this.special = DFA2_special;
  1332. this.transition = DFA2_transition;
  1333. }
  1334. public String getDescription() {
  1335. return "20:1: declaration : ( variable | functionHeader ';' -> ^( FUNC_DECL functionHeader ) | functionHeader block -> ^( FUNC_DEF functionHeader block ) );";
  1336. }
  1337. }
  1338. public static final BitSet FOLLOW_declaration_in_program85 = new BitSet(new long[]{0x000000000001C402L});
  1339. public static final BitSet FOLLOW_variable_in_declaration105 = new BitSet(new long[]{0x0000000000000002L});
  1340. public static final BitSet FOLLOW_functionHeader_in_declaration115 = new BitSet(new long[]{0x0000000000200000L});
  1341. public static final BitSet FOLLOW_21_in_declaration117 = new BitSet(new long[]{0x0000000000000002L});
  1342. public static final BitSet FOLLOW_functionHeader_in_declaration135 = new BitSet(new long[]{0x0000000002000000L});
  1343. public static final BitSet FOLLOW_block_in_declaration137 = new BitSet(new long[]{0x0000000000000002L});
  1344. public static final BitSet FOLLOW_type_in_variable166 = new BitSet(new long[]{0x0000000000000400L});
  1345. public static final BitSet FOLLOW_declarator_in_variable168 = new BitSet(new long[]{0x0000000000200000L});
  1346. public static final BitSet FOLLOW_21_in_variable170 = new BitSet(new long[]{0x0000000000000002L});
  1347. public static final BitSet FOLLOW_ID_in_declarator199 = new BitSet(new long[]{0x0000000000000002L});
  1348. public static final BitSet FOLLOW_type_in_functionHeader219 = new BitSet(new long[]{0x0000000000000400L});
  1349. public static final BitSet FOLLOW_ID_in_functionHeader221 = new BitSet(new long[]{0x0000000000400000L});
  1350. public static final BitSet FOLLOW_22_in_functionHeader223 = new BitSet(new long[]{0x000000000101C400L});
  1351. public static final BitSet FOLLOW_formalParameter_in_functionHeader227 = new BitSet(new long[]{0x0000000001800000L});
  1352. public static final BitSet FOLLOW_23_in_functionHeader231 = new BitSet(new long[]{0x000000000001C400L});
  1353. public static final BitSet FOLLOW_formalParameter_in_functionHeader233 = new BitSet(new long[]{0x0000000001800000L});
  1354. public static final BitSet FOLLOW_24_in_functionHeader241 = new BitSet(new long[]{0x0000000000000002L});
  1355. public static final BitSet FOLLOW_type_in_formalParameter281 = new BitSet(new long[]{0x0000000000000400L});
  1356. public static final BitSet FOLLOW_declarator_in_formalParameter283 = new BitSet(new long[]{0x0000000000000002L});
  1357. public static final BitSet FOLLOW_set_in_type0 = new BitSet(new long[]{0x0000000000000002L});
  1358. public static final BitSet FOLLOW_25_in_block376 = new BitSet(new long[]{0x000000000661F400L});
  1359. public static final BitSet FOLLOW_variable_in_block390 = new BitSet(new long[]{0x000000000661F400L});
  1360. public static final BitSet FOLLOW_stat_in_block405 = new BitSet(new long[]{0x0000000006603400L});
  1361. public static final BitSet FOLLOW_26_in_block416 = new BitSet(new long[]{0x0000000000000002L});
  1362. public static final BitSet FOLLOW_forStat_in_stat449 = new BitSet(new long[]{0x0000000000000002L});
  1363. public static final BitSet FOLLOW_expr_in_stat457 = new BitSet(new long[]{0x0000000000200000L});
  1364. public static final BitSet FOLLOW_21_in_stat459 = new BitSet(new long[]{0x0000000000000002L});
  1365. public static final BitSet FOLLOW_block_in_stat468 = new BitSet(new long[]{0x0000000000000002L});
  1366. public static final BitSet FOLLOW_assignStat_in_stat476 = new BitSet(new long[]{0x0000000000200000L});
  1367. public static final BitSet FOLLOW_21_in_stat478 = new BitSet(new long[]{0x0000000000000002L});
  1368. public static final BitSet FOLLOW_21_in_stat487 = new BitSet(new long[]{0x0000000000000002L});
  1369. public static final BitSet FOLLOW_FOR_in_forStat507 = new BitSet(new long[]{0x0000000000400000L});
  1370. public static final BitSet FOLLOW_22_in_forStat509 = new BitSet(new long[]{0x0000000000000400L});
  1371. public static final BitSet FOLLOW_assignStat_in_forStat513 = new BitSet(new long[]{0x0000000000200000L});
  1372. public static final BitSet FOLLOW_21_in_forStat515 = new BitSet(new long[]{0x0000000000401400L});
  1373. public static final BitSet FOLLOW_expr_in_forStat517 = new BitSet(new long[]{0x0000000000200000L});
  1374. public static final BitSet FOLLOW_21_in_forStat519 = new BitSet(new long[]{0x0000000000000400L});
  1375. public static final BitSet FOLLOW_assignStat_in_forStat523 = new BitSet(new long[]{0x0000000001000000L});
  1376. public static final BitSet FOLLOW_24_in_forStat525 = new BitSet(new long[]{0x0000000002000000L});
  1377. public static final BitSet FOLLOW_block_in_forStat527 = new BitSet(new long[]{0x0000000000000002L});
  1378. public static final BitSet FOLLOW_ID_in_assignStat570 = new BitSet(new long[]{0x0000000000000800L});
  1379. public static final BitSet FOLLOW_EQ_in_assignStat572 = new BitSet(new long[]{0x0000000000401400L});
  1380. public static final BitSet FOLLOW_expr_in_assignStat574 = new BitSet(new long[]{0x0000000000000002L});
  1381. public static final BitSet FOLLOW_condExpr_in_expr598 = new BitSet(new long[]{0x0000000000000002L});
  1382. public static final BitSet FOLLOW_aexpr_in_condExpr617 = new BitSet(new long[]{0x0000000000060002L});
  1383. public static final BitSet FOLLOW_EQEQ_in_condExpr622 = new BitSet(new long[]{0x0000000000401400L});
  1384. public static final BitSet FOLLOW_LT_in_condExpr627 = new BitSet(new long[]{0x0000000000401400L});
  1385. public static final BitSet FOLLOW_aexpr_in_condExpr631 = new BitSet(new long[]{0x0000000000000002L});
  1386. public static final BitSet FOLLOW_atom_in_aexpr653 = new BitSet(new long[]{0x0000000000080002L});
  1387. public static final BitSet FOLLOW_PLUS_in_aexpr657 = new BitSet(new long[]{0x0000000000401400L});
  1388. public static final BitSet FOLLOW_atom_in_aexpr660 = new BitSet(new long[]{0x0000000000080002L});
  1389. public static final BitSet FOLLOW_ID_in_atom680 = new BitSet(new long[]{0x0000000000000002L});
  1390. public static final BitSet FOLLOW_INT_in_atom694 = new BitSet(new long[]{0x0000000000000002L});
  1391. public static final BitSet FOLLOW_22_in_atom708 = new BitSet(new long[]{0x0000000000401400L});
  1392. public static final BitSet FOLLOW_expr_in_atom710 = new BitSet(new long[]{0x0000000001000000L});
  1393. public static final BitSet FOLLOW_24_in_atom712 = new BitSet(new long[]{0x0000000000000002L});
  1394. }