PageRenderTime 64ms CodeModel.GetById 25ms RepoModel.GetById 0ms app.codeStats 0ms

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

https://gitlab.com/essere.lab.public/qualitas.class-corpus
Objective C | 1279 lines | 861 code | 248 blank | 170 comment | 103 complexity | 0eee984b89dff8e88d34a0dc5535db05 MD5 | raw file
  1. /** \file
  2. * This OBJC source file was generated by $ANTLR version 3.2 Aug 23, 2010 07:48:06
  3. *
  4. * - From the grammar source file : /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/simplecTreeParser/SimpleC.g
  5. * - On : 2010-08-23 07:54:46
  6. * - for the parser : SimpleCParserParser *
  7. * Editing it, at least manually, is not wise.
  8. *
  9. * ObjC language generator and runtime by Alan Condit, acondit|hereisanat|ipns|dotgoeshere|com.
  10. *
  11. *
  12. */
  13. // [The "BSD licence"]
  14. // Copyright (c) 2010 Alan Condit
  15. //
  16. // All rights reserved.
  17. //
  18. // Redistribution and use in source and binary forms, with or without
  19. // modification, are permitted provided that the following conditions
  20. // are met:
  21. // 1. Redistributions of source code must retain the above copyright
  22. // notice, this list of conditions and the following disclaimer.
  23. // 2. Redistributions in binary form must reproduce the above copyright
  24. // notice, this list of conditions and the following disclaimer in the
  25. // documentation and/or other materials provided with the distribution.
  26. // 3. The name of the author may not be used to endorse or promote products
  27. // derived from this software without specific prior written permission.
  28. //
  29. // THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
  30. // IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
  31. // OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
  32. // IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
  33. // INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
  34. // NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
  35. // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
  36. // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
  37. // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
  38. // THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  39. // $ANTLR 3.2 Aug 23, 2010 07:48:06 /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/simplecTreeParser/SimpleC.g 2010-08-23 07:54:46
  40. /* -----------------------------------------
  41. * Include the ANTLR3 generated header file.
  42. */
  43. #import "SimpleCParser.h"
  44. /* ----------------------------------------- */
  45. /* ============================================================================= */
  46. /* =============================================================================
  47. * Start of recognizer
  48. */
  49. #pragma mark Cyclic DFA implementation start DFA2
  50. @implementation DFA2
  51. const static NSInteger dfa2_eot[13] =
  52. {-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1};
  53. const static NSInteger dfa2_eof[13] =
  54. {-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1};
  55. const static unichar dfa2_min[13] =
  56. {10,10,21,10,0,10,21,23,0,0,10,10,23};
  57. const static unichar dfa2_max[13] =
  58. {13,10,22,24,0,10,25,24,0,0,13,10,24};
  59. const static NSInteger dfa2_accept[13] =
  60. {-1,-1,-1,-1,1,-1,-1,-1,3,2,-1,-1,-1};
  61. const static NSInteger dfa2_special[13] =
  62. {-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1};
  63. const static NSInteger dfa2_transition[] = {};
  64. const static NSInteger dfa2_transition0[] = {9, -1, -1, -1, 8};
  65. const static NSInteger dfa2_transition1[] = {10, 6};
  66. const static NSInteger dfa2_transition2[] = {5, 5, 5, 5, -1, -1, -1, -1,
  67. -1, -1, -1, -1, -1, -1, 6};
  68. const static NSInteger dfa2_transition3[] = {11, 11, 11, 11};
  69. const static NSInteger dfa2_transition4[] = {4, 3};
  70. const static NSInteger dfa2_transition5[] = {1, 1, 1, 1};
  71. const static NSInteger dfa2_transition6[] = {7};
  72. const static NSInteger dfa2_transition7[] = {12};
  73. const static NSInteger dfa2_transition8[] = {2};
  74. + () newDFA2WithRecognizer:(ANTLRBaseRecognizer *)aRecognizer
  75. {
  76. return [[[DFA2 alloc] initWithRecognizer:aRecognizer] retain];
  77. }
  78. - (id) initWithRecognizer:(ANTLRBaseRecognizer *) theRecognizer
  79. {
  80. if ((self = [super initWithRecognizer:theRecognizer]) != nil) {
  81. decisionNumber = 2;
  82. eot = dfa2_eot;
  83. eof = dfa2_eof;
  84. min = dfa2_min;
  85. max = dfa2_max;
  86. accept = dfa2_accept;
  87. special = dfa2_special;
  88. if (!(transition = calloc(13, sizeof(void*)))) {
  89. [self release];
  90. return nil;
  91. }
  92. len = 13;
  93. transition[0] = dfa2_transition5;
  94. transition[1] = dfa2_transition8;
  95. transition[2] = dfa2_transition4;
  96. transition[3] = dfa2_transition2;
  97. transition[4] = dfa2_transition;
  98. transition[5] = dfa2_transition6;
  99. transition[6] = dfa2_transition0;
  100. transition[7] = dfa2_transition1;
  101. transition[8] = dfa2_transition;
  102. transition[9] = dfa2_transition;
  103. transition[10] = dfa2_transition3;
  104. transition[11] = dfa2_transition7;
  105. transition[12] = dfa2_transition1;
  106. }
  107. return self;
  108. }
  109. - (void) dealloc
  110. {
  111. free(transition);
  112. [super dealloc];
  113. }
  114. - (NSString *) description
  115. {
  116. return @"20:1: declaration : ( variable | functionHeader ';' -> ^( FUNC_DECL functionHeader ) | functionHeader block -> ^( FUNC_DEF functionHeader block ) );";
  117. }
  118. @end /* end DFA2 implementation */
  119. #pragma mark Cyclic DFA implementation end DFA2
  120. #pragma mark Bitsets
  121. static ANTLRBitSet *FOLLOW_declaration_in_program85;
  122. static const unsigned long long FOLLOW_declaration_in_program85_data[] = { 0x0000000000003C02LL};
  123. static ANTLRBitSet *FOLLOW_variable_in_declaration105;
  124. static const unsigned long long FOLLOW_variable_in_declaration105_data[] = { 0x0000000000000002LL};
  125. static ANTLRBitSet *FOLLOW_functionHeader_in_declaration115;
  126. static const unsigned long long FOLLOW_functionHeader_in_declaration115_data[] = { 0x0000000000200000LL};
  127. static ANTLRBitSet *FOLLOW_21_in_declaration117;
  128. static const unsigned long long FOLLOW_21_in_declaration117_data[] = { 0x0000000000000002LL};
  129. static ANTLRBitSet *FOLLOW_functionHeader_in_declaration135;
  130. static const unsigned long long FOLLOW_functionHeader_in_declaration135_data[] = { 0x0000000002000000LL};
  131. static ANTLRBitSet *FOLLOW_block_in_declaration137;
  132. static const unsigned long long FOLLOW_block_in_declaration137_data[] = { 0x0000000000000002LL};
  133. static ANTLRBitSet *FOLLOW_type_in_variable166;
  134. static const unsigned long long FOLLOW_type_in_variable166_data[] = { 0x0000000000000400LL};
  135. static ANTLRBitSet *FOLLOW_declarator_in_variable168;
  136. static const unsigned long long FOLLOW_declarator_in_variable168_data[] = { 0x0000000000200000LL};
  137. static ANTLRBitSet *FOLLOW_21_in_variable170;
  138. static const unsigned long long FOLLOW_21_in_variable170_data[] = { 0x0000000000000002LL};
  139. static ANTLRBitSet *FOLLOW_K_ID_in_declarator199;
  140. static const unsigned long long FOLLOW_K_ID_in_declarator199_data[] = { 0x0000000000000002LL};
  141. static ANTLRBitSet *FOLLOW_type_in_functionHeader219;
  142. static const unsigned long long FOLLOW_type_in_functionHeader219_data[] = { 0x0000000000000400LL};
  143. static ANTLRBitSet *FOLLOW_K_ID_in_functionHeader221;
  144. static const unsigned long long FOLLOW_K_ID_in_functionHeader221_data[] = { 0x0000000000400000LL};
  145. static ANTLRBitSet *FOLLOW_22_in_functionHeader223;
  146. static const unsigned long long FOLLOW_22_in_functionHeader223_data[] = { 0x0000000001003C00LL};
  147. static ANTLRBitSet *FOLLOW_formalParameter_in_functionHeader227;
  148. static const unsigned long long FOLLOW_formalParameter_in_functionHeader227_data[] = { 0x0000000001800000LL};
  149. static ANTLRBitSet *FOLLOW_23_in_functionHeader231;
  150. static const unsigned long long FOLLOW_23_in_functionHeader231_data[] = { 0x0000000000003C00LL};
  151. static ANTLRBitSet *FOLLOW_formalParameter_in_functionHeader233;
  152. static const unsigned long long FOLLOW_formalParameter_in_functionHeader233_data[] = { 0x0000000001800000LL};
  153. static ANTLRBitSet *FOLLOW_24_in_functionHeader241;
  154. static const unsigned long long FOLLOW_24_in_functionHeader241_data[] = { 0x0000000000000002LL};
  155. static ANTLRBitSet *FOLLOW_type_in_formalParameter281;
  156. static const unsigned long long FOLLOW_type_in_formalParameter281_data[] = { 0x0000000000000400LL};
  157. static ANTLRBitSet *FOLLOW_declarator_in_formalParameter283;
  158. static const unsigned long long FOLLOW_declarator_in_formalParameter283_data[] = { 0x0000000000000002LL};
  159. static ANTLRBitSet *FOLLOW_set_in_type0;
  160. static const unsigned long long FOLLOW_set_in_type0_data[] = { 0x0000000000000002LL};
  161. static ANTLRBitSet *FOLLOW_25_in_block376;
  162. static const unsigned long long FOLLOW_25_in_block376_data[] = { 0x0000000006607C00LL};
  163. static ANTLRBitSet *FOLLOW_variable_in_block390;
  164. static const unsigned long long FOLLOW_variable_in_block390_data[] = { 0x0000000006607C00LL};
  165. static ANTLRBitSet *FOLLOW_stat_in_block405;
  166. static const unsigned long long FOLLOW_stat_in_block405_data[] = { 0x0000000006604C00LL};
  167. static ANTLRBitSet *FOLLOW_26_in_block416;
  168. static const unsigned long long FOLLOW_26_in_block416_data[] = { 0x0000000000000002LL};
  169. static ANTLRBitSet *FOLLOW_forStat_in_stat449;
  170. static const unsigned long long FOLLOW_forStat_in_stat449_data[] = { 0x0000000000000002LL};
  171. static ANTLRBitSet *FOLLOW_expr_in_stat457;
  172. static const unsigned long long FOLLOW_expr_in_stat457_data[] = { 0x0000000000200000LL};
  173. static ANTLRBitSet *FOLLOW_21_in_stat459;
  174. static const unsigned long long FOLLOW_21_in_stat459_data[] = { 0x0000000000000002LL};
  175. static ANTLRBitSet *FOLLOW_block_in_stat468;
  176. static const unsigned long long FOLLOW_block_in_stat468_data[] = { 0x0000000000000002LL};
  177. static ANTLRBitSet *FOLLOW_assignStat_in_stat476;
  178. static const unsigned long long FOLLOW_assignStat_in_stat476_data[] = { 0x0000000000200000LL};
  179. static ANTLRBitSet *FOLLOW_21_in_stat478;
  180. static const unsigned long long FOLLOW_21_in_stat478_data[] = { 0x0000000000000002LL};
  181. static ANTLRBitSet *FOLLOW_21_in_stat487;
  182. static const unsigned long long FOLLOW_21_in_stat487_data[] = { 0x0000000000000002LL};
  183. static ANTLRBitSet *FOLLOW_K_FOR_in_forStat507;
  184. static const unsigned long long FOLLOW_K_FOR_in_forStat507_data[] = { 0x0000000000400000LL};
  185. static ANTLRBitSet *FOLLOW_22_in_forStat509;
  186. static const unsigned long long FOLLOW_22_in_forStat509_data[] = { 0x0000000000000400LL};
  187. static ANTLRBitSet *FOLLOW_assignStat_in_forStat513;
  188. static const unsigned long long FOLLOW_assignStat_in_forStat513_data[] = { 0x0000000000200000LL};
  189. static ANTLRBitSet *FOLLOW_21_in_forStat515;
  190. static const unsigned long long FOLLOW_21_in_forStat515_data[] = { 0x0000000000400C00LL};
  191. static ANTLRBitSet *FOLLOW_expr_in_forStat517;
  192. static const unsigned long long FOLLOW_expr_in_forStat517_data[] = { 0x0000000000200000LL};
  193. static ANTLRBitSet *FOLLOW_21_in_forStat519;
  194. static const unsigned long long FOLLOW_21_in_forStat519_data[] = { 0x0000000000000400LL};
  195. static ANTLRBitSet *FOLLOW_assignStat_in_forStat523;
  196. static const unsigned long long FOLLOW_assignStat_in_forStat523_data[] = { 0x0000000001000000LL};
  197. static ANTLRBitSet *FOLLOW_24_in_forStat525;
  198. static const unsigned long long FOLLOW_24_in_forStat525_data[] = { 0x0000000002000000LL};
  199. static ANTLRBitSet *FOLLOW_block_in_forStat527;
  200. static const unsigned long long FOLLOW_block_in_forStat527_data[] = { 0x0000000000000002LL};
  201. static ANTLRBitSet *FOLLOW_K_ID_in_assignStat570;
  202. static const unsigned long long FOLLOW_K_ID_in_assignStat570_data[] = { 0x0000000000008000LL};
  203. static ANTLRBitSet *FOLLOW_K_EQ_in_assignStat572;
  204. static const unsigned long long FOLLOW_K_EQ_in_assignStat572_data[] = { 0x0000000000400C00LL};
  205. static ANTLRBitSet *FOLLOW_expr_in_assignStat574;
  206. static const unsigned long long FOLLOW_expr_in_assignStat574_data[] = { 0x0000000000000002LL};
  207. static ANTLRBitSet *FOLLOW_condExpr_in_expr598;
  208. static const unsigned long long FOLLOW_condExpr_in_expr598_data[] = { 0x0000000000000002LL};
  209. static ANTLRBitSet *FOLLOW_aexpr_in_condExpr617;
  210. static const unsigned long long FOLLOW_aexpr_in_condExpr617_data[] = { 0x0000000000030002LL};
  211. static ANTLRBitSet *FOLLOW_K_EQEQ_in_condExpr622;
  212. static const unsigned long long FOLLOW_K_EQEQ_in_condExpr622_data[] = { 0x0000000000400C00LL};
  213. static ANTLRBitSet *FOLLOW_K_LT_in_condExpr627;
  214. static const unsigned long long FOLLOW_K_LT_in_condExpr627_data[] = { 0x0000000000400C00LL};
  215. static ANTLRBitSet *FOLLOW_aexpr_in_condExpr631;
  216. static const unsigned long long FOLLOW_aexpr_in_condExpr631_data[] = { 0x0000000000000002LL};
  217. static ANTLRBitSet *FOLLOW_atom_in_aexpr653;
  218. static const unsigned long long FOLLOW_atom_in_aexpr653_data[] = { 0x0000000000040002LL};
  219. static ANTLRBitSet *FOLLOW_K_PLUS_in_aexpr657;
  220. static const unsigned long long FOLLOW_K_PLUS_in_aexpr657_data[] = { 0x0000000000400C00LL};
  221. static ANTLRBitSet *FOLLOW_atom_in_aexpr660;
  222. static const unsigned long long FOLLOW_atom_in_aexpr660_data[] = { 0x0000000000040002LL};
  223. static ANTLRBitSet *FOLLOW_K_ID_in_atom680;
  224. static const unsigned long long FOLLOW_K_ID_in_atom680_data[] = { 0x0000000000000002LL};
  225. static ANTLRBitSet *FOLLOW_K_INT_in_atom694;
  226. static const unsigned long long FOLLOW_K_INT_in_atom694_data[] = { 0x0000000000000002LL};
  227. static ANTLRBitSet *FOLLOW_22_in_atom708;
  228. static const unsigned long long FOLLOW_22_in_atom708_data[] = { 0x0000000000400C00LL};
  229. static ANTLRBitSet *FOLLOW_expr_in_atom710;
  230. static const unsigned long long FOLLOW_expr_in_atom710_data[] = { 0x0000000001000000LL};
  231. static ANTLRBitSet *FOLLOW_24_in_atom712;
  232. static const unsigned long long FOLLOW_24_in_atom712_data[] = { 0x0000000000000002LL};
  233. #pragma mark Dynamic Global Scopes
  234. #pragma mark Dynamic Rule Scopes
  235. #pragma mark Rule return scopes start
  236. @implementation SimpleCParser_program_return
  237. + (SimpleCParser_program_return *)newSimpleCParser_program_return
  238. {
  239. return [[[SimpleCParser_program_return alloc] init] retain];
  240. }
  241. /* AST returnScope.methods */
  242. - (ANTLRCommonTree *)getTree
  243. {
  244. return tree;
  245. }
  246. - (void) setTree:(ANTLRCommonTree *)aTree
  247. {
  248. if (tree != aTree) {
  249. if (tree != nil) [tree release];
  250. if (aTree != nil) [aTree retain];
  251. tree = aTree;
  252. }
  253. }
  254. - (void) dealloc
  255. {
  256. [self setTree:nil];
  257. [super dealloc];
  258. }
  259. @end /* end of returnScope implementation */
  260. @implementation SimpleCParser_declaration_return
  261. + (SimpleCParser_declaration_return *)newSimpleCParser_declaration_return
  262. {
  263. return [[[SimpleCParser_declaration_return alloc] init] retain];
  264. }
  265. /* AST returnScope.methods */
  266. - (ANTLRCommonTree *)getTree
  267. {
  268. return tree;
  269. }
  270. - (void) setTree:(ANTLRCommonTree *)aTree
  271. {
  272. if (tree != aTree) {
  273. if (tree != nil) [tree release];
  274. if (aTree != nil) [aTree retain];
  275. tree = aTree;
  276. }
  277. }
  278. - (void) dealloc
  279. {
  280. [self setTree:nil];
  281. [super dealloc];
  282. }
  283. @end /* end of returnScope implementation */
  284. @implementation SimpleCParser_variable_return
  285. + (SimpleCParser_variable_return *)newSimpleCParser_variable_return
  286. {
  287. return [[[SimpleCParser_variable_return alloc] init] retain];
  288. }
  289. /* AST returnScope.methods */
  290. - (ANTLRCommonTree *)getTree
  291. {
  292. return tree;
  293. }
  294. - (void) setTree:(ANTLRCommonTree *)aTree
  295. {
  296. if (tree != aTree) {
  297. if (tree != nil) [tree release];
  298. if (aTree != nil) [aTree retain];
  299. tree = aTree;
  300. }
  301. }
  302. - (void) dealloc
  303. {
  304. [self setTree:nil];
  305. [super dealloc];
  306. }
  307. @end /* end of returnScope implementation */
  308. @implementation SimpleCParser_declarator_return
  309. + (SimpleCParser_declarator_return *)newSimpleCParser_declarator_return
  310. {
  311. return [[[SimpleCParser_declarator_return alloc] init] retain];
  312. }
  313. /* AST returnScope.methods */
  314. - (ANTLRCommonTree *)getTree
  315. {
  316. return tree;
  317. }
  318. - (void) setTree:(ANTLRCommonTree *)aTree
  319. {
  320. if (tree != aTree) {
  321. if (tree != nil) [tree release];
  322. if (aTree != nil) [aTree retain];
  323. tree = aTree;
  324. }
  325. }
  326. - (void) dealloc
  327. {
  328. [self setTree:nil];
  329. [super dealloc];
  330. }
  331. @end /* end of returnScope implementation */
  332. @implementation SimpleCParser_functionHeader_return
  333. + (SimpleCParser_functionHeader_return *)newSimpleCParser_functionHeader_return
  334. {
  335. return [[[SimpleCParser_functionHeader_return alloc] init] retain];
  336. }
  337. /* AST returnScope.methods */
  338. - (ANTLRCommonTree *)getTree
  339. {
  340. return tree;
  341. }
  342. - (void) setTree:(ANTLRCommonTree *)aTree
  343. {
  344. if (tree != aTree) {
  345. if (tree != nil) [tree release];
  346. if (aTree != nil) [aTree retain];
  347. tree = aTree;
  348. }
  349. }
  350. - (void) dealloc
  351. {
  352. [self setTree:nil];
  353. [super dealloc];
  354. }
  355. @end /* end of returnScope implementation */
  356. @implementation SimpleCParser_formalParameter_return
  357. + (SimpleCParser_formalParameter_return *)newSimpleCParser_formalParameter_return
  358. {
  359. return [[[SimpleCParser_formalParameter_return alloc] init] retain];
  360. }
  361. /* AST returnScope.methods */
  362. - (ANTLRCommonTree *)getTree
  363. {
  364. return tree;
  365. }
  366. - (void) setTree:(ANTLRCommonTree *)aTree
  367. {
  368. if (tree != aTree) {
  369. if (tree != nil) [tree release];
  370. if (aTree != nil) [aTree retain];
  371. tree = aTree;
  372. }
  373. }
  374. - (void) dealloc
  375. {
  376. [self setTree:nil];
  377. [super dealloc];
  378. }
  379. @end /* end of returnScope implementation */
  380. @implementation SimpleCParser_type_return
  381. + (SimpleCParser_type_return *)newSimpleCParser_type_return
  382. {
  383. return [[[SimpleCParser_type_return alloc] init] retain];
  384. }
  385. /* AST returnScope.methods */
  386. - (ANTLRCommonTree *)getTree
  387. {
  388. return tree;
  389. }
  390. - (void) setTree:(ANTLRCommonTree *)aTree
  391. {
  392. if (tree != aTree) {
  393. if (tree != nil) [tree release];
  394. if (aTree != nil) [aTree retain];
  395. tree = aTree;
  396. }
  397. }
  398. - (void) dealloc
  399. {
  400. [self setTree:nil];
  401. [super dealloc];
  402. }
  403. @end /* end of returnScope implementation */
  404. @implementation SimpleCParser_block_return
  405. + (SimpleCParser_block_return *)newSimpleCParser_block_return
  406. {
  407. return [[[SimpleCParser_block_return alloc] init] retain];
  408. }
  409. /* AST returnScope.methods */
  410. - (ANTLRCommonTree *)getTree
  411. {
  412. return tree;
  413. }
  414. - (void) setTree:(ANTLRCommonTree *)aTree
  415. {
  416. if (tree != aTree) {
  417. if (tree != nil) [tree release];
  418. if (aTree != nil) [aTree retain];
  419. tree = aTree;
  420. }
  421. }
  422. - (void) dealloc
  423. {
  424. [self setTree:nil];
  425. [super dealloc];
  426. }
  427. @end /* end of returnScope implementation */
  428. @implementation SimpleCParser_stat_return
  429. + (SimpleCParser_stat_return *)newSimpleCParser_stat_return
  430. {
  431. return [[[SimpleCParser_stat_return alloc] init] retain];
  432. }
  433. /* AST returnScope.methods */
  434. - (ANTLRCommonTree *)getTree
  435. {
  436. return tree;
  437. }
  438. - (void) setTree:(ANTLRCommonTree *)aTree
  439. {
  440. if (tree != aTree) {
  441. if (tree != nil) [tree release];
  442. if (aTree != nil) [aTree retain];
  443. tree = aTree;
  444. }
  445. }
  446. - (void) dealloc
  447. {
  448. [self setTree:nil];
  449. [super dealloc];
  450. }
  451. @end /* end of returnScope implementation */
  452. @implementation SimpleCParser_forStat_return
  453. + (SimpleCParser_forStat_return *)newSimpleCParser_forStat_return
  454. {
  455. return [[[SimpleCParser_forStat_return alloc] init] retain];
  456. }
  457. /* AST returnScope.methods */
  458. - (ANTLRCommonTree *)getTree
  459. {
  460. return tree;
  461. }
  462. - (void) setTree:(ANTLRCommonTree *)aTree
  463. {
  464. if (tree != aTree) {
  465. if (tree != nil) [tree release];
  466. if (aTree != nil) [aTree retain];
  467. tree = aTree;
  468. }
  469. }
  470. - (void) dealloc
  471. {
  472. [self setTree:nil];
  473. [super dealloc];
  474. }
  475. @end /* end of returnScope implementation */
  476. @implementation SimpleCParser_assignStat_return
  477. + (SimpleCParser_assignStat_return *)newSimpleCParser_assignStat_return
  478. {
  479. return [[[SimpleCParser_assignStat_return alloc] init] retain];
  480. }
  481. /* AST returnScope.methods */
  482. - (ANTLRCommonTree *)getTree
  483. {
  484. return tree;
  485. }
  486. - (void) setTree:(ANTLRCommonTree *)aTree
  487. {
  488. if (tree != aTree) {
  489. if (tree != nil) [tree release];
  490. if (aTree != nil) [aTree retain];
  491. tree = aTree;
  492. }
  493. }
  494. - (void) dealloc
  495. {
  496. [self setTree:nil];
  497. [super dealloc];
  498. }
  499. @end /* end of returnScope implementation */
  500. @implementation SimpleCParser_expr_return
  501. + (SimpleCParser_expr_return *)newSimpleCParser_expr_return
  502. {
  503. return [[[SimpleCParser_expr_return alloc] init] retain];
  504. }
  505. /* AST returnScope.methods */
  506. - (ANTLRCommonTree *)getTree
  507. {
  508. return tree;
  509. }
  510. - (void) setTree:(ANTLRCommonTree *)aTree
  511. {
  512. if (tree != aTree) {
  513. if (tree != nil) [tree release];
  514. if (aTree != nil) [aTree retain];
  515. tree = aTree;
  516. }
  517. }
  518. - (void) dealloc
  519. {
  520. [self setTree:nil];
  521. [super dealloc];
  522. }
  523. @end /* end of returnScope implementation */
  524. @implementation SimpleCParser_condExpr_return
  525. + (SimpleCParser_condExpr_return *)newSimpleCParser_condExpr_return
  526. {
  527. return [[[SimpleCParser_condExpr_return alloc] init] retain];
  528. }
  529. /* AST returnScope.methods */
  530. - (ANTLRCommonTree *)getTree
  531. {
  532. return tree;
  533. }
  534. - (void) setTree:(ANTLRCommonTree *)aTree
  535. {
  536. if (tree != aTree) {
  537. if (tree != nil) [tree release];
  538. if (aTree != nil) [aTree retain];
  539. tree = aTree;
  540. }
  541. }
  542. - (void) dealloc
  543. {
  544. [self setTree:nil];
  545. [super dealloc];
  546. }
  547. @end /* end of returnScope implementation */
  548. @implementation SimpleCParser_aexpr_return
  549. + (SimpleCParser_aexpr_return *)newSimpleCParser_aexpr_return
  550. {
  551. return [[[SimpleCParser_aexpr_return alloc] init] retain];
  552. }
  553. /* AST returnScope.methods */
  554. - (ANTLRCommonTree *)getTree
  555. {
  556. return tree;
  557. }
  558. - (void) setTree:(ANTLRCommonTree *)aTree
  559. {
  560. if (tree != aTree) {
  561. if (tree != nil) [tree release];
  562. if (aTree != nil) [aTree retain];
  563. tree = aTree;
  564. }
  565. }
  566. - (void) dealloc
  567. {
  568. [self setTree:nil];
  569. [super dealloc];
  570. }
  571. @end /* end of returnScope implementation */
  572. @implementation SimpleCParser_atom_return
  573. + (SimpleCParser_atom_return *)newSimpleCParser_atom_return
  574. {
  575. return [[[SimpleCParser_atom_return alloc] init] retain];
  576. }
  577. /* AST returnScope.methods */
  578. - (ANTLRCommonTree *)getTree
  579. {
  580. return tree;
  581. }
  582. - (void) setTree:(ANTLRCommonTree *)aTree
  583. {
  584. if (tree != aTree) {
  585. if (tree != nil) [tree release];
  586. if (aTree != nil) [aTree retain];
  587. tree = aTree;
  588. }
  589. }
  590. - (void) dealloc
  591. {
  592. [self setTree:nil];
  593. [super dealloc];
  594. }
  595. @end /* end of returnScope implementation */
  596. @implementation SimpleCParser // line 610
  597. + (void) initialize
  598. {
  599. #pragma mark Bitsets
  600. FOLLOW_declaration_in_program85 = [[ANTLRBitSet newANTLRBitSetWithBits:(const unsigned long long *)FOLLOW_declaration_in_program85_data Count:(NSUInteger)1] retain];
  601. FOLLOW_variable_in_declaration105 = [[ANTLRBitSet newANTLRBitSetWithBits:(const unsigned long long *)FOLLOW_variable_in_declaration105_data Count:(NSUInteger)1] retain];
  602. FOLLOW_functionHeader_in_declaration115 = [[ANTLRBitSet newANTLRBitSetWithBits:(const unsigned long long *)FOLLOW_functionHeader_in_declaration115_data Count:(NSUInteger)1] retain];
  603. FOLLOW_21_in_declaration117 = [[ANTLRBitSet newANTLRBitSetWithBits:(const unsigned long long *)FOLLOW_21_in_declaration117_data Count:(NSUInteger)1] retain];
  604. FOLLOW_functionHeader_in_declaration135 = [[ANTLRBitSet newANTLRBitSetWithBits:(const unsigned long long *)FOLLOW_functionHeader_in_declaration135_data Count:(NSUInteger)1] retain];
  605. FOLLOW_block_in_declaration137 = [[ANTLRBitSet newANTLRBitSetWithBits:(const unsigned long long *)FOLLOW_block_in_declaration137_data Count:(NSUInteger)1] retain];
  606. FOLLOW_type_in_variable166 = [[ANTLRBitSet newANTLRBitSetWithBits:(const unsigned long long *)FOLLOW_type_in_variable166_data Count:(NSUInteger)1] retain];
  607. FOLLOW_declarator_in_variable168 = [[ANTLRBitSet newANTLRBitSetWithBits:(const unsigned long long *)FOLLOW_declarator_in_variable168_data Count:(NSUInteger)1] retain];
  608. FOLLOW_21_in_variable170 = [[ANTLRBitSet newANTLRBitSetWithBits:(const unsigned long long *)FOLLOW_21_in_variable170_data Count:(NSUInteger)1] retain];
  609. FOLLOW_K_ID_in_declarator199 = [[ANTLRBitSet newANTLRBitSetWithBits:(const unsigned long long *)FOLLOW_K_ID_in_declarator199_data Count:(NSUInteger)1] retain];
  610. FOLLOW_type_in_functionHeader219 = [[ANTLRBitSet newANTLRBitSetWithBits:(const unsigned long long *)FOLLOW_type_in_functionHeader219_data Count:(NSUInteger)1] retain];
  611. FOLLOW_K_ID_in_functionHeader221 = [[ANTLRBitSet newANTLRBitSetWithBits:(const unsigned long long *)FOLLOW_K_ID_in_functionHeader221_data Count:(NSUInteger)1] retain];
  612. FOLLOW_22_in_functionHeader223 = [[ANTLRBitSet newANTLRBitSetWithBits:(const unsigned long long *)FOLLOW_22_in_functionHeader223_data Count:(NSUInteger)1] retain];
  613. FOLLOW_formalParameter_in_functionHeader227 = [[ANTLRBitSet newANTLRBitSetWithBits:(const unsigned long long *)FOLLOW_formalParameter_in_functionHeader227_data Count:(NSUInteger)1] retain];
  614. FOLLOW_23_in_functionHeader231 = [[ANTLRBitSet newANTLRBitSetWithBits:(const unsigned long long *)FOLLOW_23_in_functionHeader231_data Count:(NSUInteger)1] retain];
  615. FOLLOW_formalParameter_in_functionHeader233 = [[ANTLRBitSet newANTLRBitSetWithBits:(const unsigned long long *)FOLLOW_formalParameter_in_functionHeader233_data Count:(NSUInteger)1] retain];
  616. FOLLOW_24_in_functionHeader241 = [[ANTLRBitSet newANTLRBitSetWithBits:(const unsigned long long *)FOLLOW_24_in_functionHeader241_data Count:(NSUInteger)1] retain];
  617. FOLLOW_type_in_formalParameter281 = [[ANTLRBitSet newANTLRBitSetWithBits:(const unsigned long long *)FOLLOW_type_in_formalParameter281_data Count:(NSUInteger)1] retain];
  618. FOLLOW_declarator_in_formalParameter283 = [[ANTLRBitSet newANTLRBitSetWithBits:(const unsigned long long *)FOLLOW_declarator_in_formalParameter283_data Count:(NSUInteger)1] retain];
  619. FOLLOW_set_in_type0 = [[ANTLRBitSet newANTLRBitSetWithBits:(const unsigned long long *)FOLLOW_set_in_type0_data Count:(NSUInteger)1] retain];
  620. FOLLOW_25_in_block376 = [[ANTLRBitSet newANTLRBitSetWithBits:(const unsigned long long *)FOLLOW_25_in_block376_data Count:(NSUInteger)1] retain];
  621. FOLLOW_variable_in_block390 = [[ANTLRBitSet newANTLRBitSetWithBits:(const unsigned long long *)FOLLOW_variable_in_block390_data Count:(NSUInteger)1] retain];
  622. FOLLOW_stat_in_block405 = [[ANTLRBitSet newANTLRBitSetWithBits:(const unsigned long long *)FOLLOW_stat_in_block405_data Count:(NSUInteger)1] retain];
  623. FOLLOW_26_in_block416 = [[ANTLRBitSet newANTLRBitSetWithBits:(const unsigned long long *)FOLLOW_26_in_block416_data Count:(NSUInteger)1] retain];
  624. FOLLOW_forStat_in_stat449 = [[ANTLRBitSet newANTLRBitSetWithBits:(const unsigned long long *)FOLLOW_forStat_in_stat449_data Count:(NSUInteger)1] retain];
  625. FOLLOW_expr_in_stat457 = [[ANTLRBitSet newANTLRBitSetWithBits:(const unsigned long long *)FOLLOW_expr_in_stat457_data Count:(NSUInteger)1] retain];
  626. FOLLOW_21_in_stat459 = [[ANTLRBitSet newANTLRBitSetWithBits:(const unsigned long long *)FOLLOW_21_in_stat459_data Count:(NSUInteger)1] retain];
  627. FOLLOW_block_in_stat468 = [[ANTLRBitSet newANTLRBitSetWithBits:(const unsigned long long *)FOLLOW_block_in_stat468_data Count:(NSUInteger)1] retain];
  628. FOLLOW_assignStat_in_stat476 = [[ANTLRBitSet newANTLRBitSetWithBits:(const unsigned long long *)FOLLOW_assignStat_in_stat476_data Count:(NSUInteger)1] retain];
  629. FOLLOW_21_in_stat478 = [[ANTLRBitSet newANTLRBitSetWithBits:(const unsigned long long *)FOLLOW_21_in_stat478_data Count:(NSUInteger)1] retain];
  630. FOLLOW_21_in_stat487 = [[ANTLRBitSet newANTLRBitSetWithBits:(const unsigned long long *)FOLLOW_21_in_stat487_data Count:(NSUInteger)1] retain];
  631. FOLLOW_K_FOR_in_forStat507 = [[ANTLRBitSet newANTLRBitSetWithBits:(const unsigned long long *)FOLLOW_K_FOR_in_forStat507_data Count:(NSUInteger)1] retain];
  632. FOLLOW_22_in_forStat509 = [[ANTLRBitSet newANTLRBitSetWithBits:(const unsigned long long *)FOLLOW_22_in_forStat509_data Count:(NSUInteger)1] retain];
  633. FOLLOW_assignStat_in_forStat513 = [[ANTLRBitSet newANTLRBitSetWithBits:(const unsigned long long *)FOLLOW_assignStat_in_forStat513_data Count:(NSUInteger)1] retain];
  634. FOLLOW_21_in_forStat515 = [[ANTLRBitSet newANTLRBitSetWithBits:(const unsigned long long *)FOLLOW_21_in_forStat515_data Count:(NSUInteger)1] retain];
  635. FOLLOW_expr_in_forStat517 = [[ANTLRBitSet newANTLRBitSetWithBits:(const unsigned long long *)FOLLOW_expr_in_forStat517_data Count:(NSUInteger)1] retain];
  636. FOLLOW_21_in_forStat519 = [[ANTLRBitSet newANTLRBitSetWithBits:(const unsigned long long *)FOLLOW_21_in_forStat519_data Count:(NSUInteger)1] retain];
  637. FOLLOW_assignStat_in_forStat523 = [[ANTLRBitSet newANTLRBitSetWithBits:(const unsigned long long *)FOLLOW_assignStat_in_forStat523_data Count:(NSUInteger)1] retain];
  638. FOLLOW_24_in_forStat525 = [[ANTLRBitSet newANTLRBitSetWithBits:(const unsigned long long *)FOLLOW_24_in_forStat525_data Count:(NSUInteger)1] retain];
  639. FOLLOW_block_in_forStat527 = [[ANTLRBitSet newANTLRBitSetWithBits:(const unsigned long long *)FOLLOW_block_in_forStat527_data Count:(NSUInteger)1] retain];
  640. FOLLOW_K_ID_in_assignStat570 = [[ANTLRBitSet newANTLRBitSetWithBits:(const unsigned long long *)FOLLOW_K_ID_in_assignStat570_data Count:(NSUInteger)1] retain];
  641. FOLLOW_K_EQ_in_assignStat572 = [[ANTLRBitSet newANTLRBitSetWithBits:(const unsigned long long *)FOLLOW_K_EQ_in_assignStat572_data Count:(NSUInteger)1] retain];
  642. FOLLOW_expr_in_assignStat574 = [[ANTLRBitSet newANTLRBitSetWithBits:(const unsigned long long *)FOLLOW_expr_in_assignStat574_data Count:(NSUInteger)1] retain];
  643. FOLLOW_condExpr_in_expr598 = [[ANTLRBitSet newANTLRBitSetWithBits:(const unsigned long long *)FOLLOW_condExpr_in_expr598_data Count:(NSUInteger)1] retain];
  644. FOLLOW_aexpr_in_condExpr617 = [[ANTLRBitSet newANTLRBitSetWithBits:(const unsigned long long *)FOLLOW_aexpr_in_condExpr617_data Count:(NSUInteger)1] retain];
  645. FOLLOW_K_EQEQ_in_condExpr622 = [[ANTLRBitSet newANTLRBitSetWithBits:(const unsigned long long *)FOLLOW_K_EQEQ_in_condExpr622_data Count:(NSUInteger)1] retain];
  646. FOLLOW_K_LT_in_condExpr627 = [[ANTLRBitSet newANTLRBitSetWithBits:(const unsigned long long *)FOLLOW_K_LT_in_condExpr627_data Count:(NSUInteger)1] retain];
  647. FOLLOW_aexpr_in_condExpr631 = [[ANTLRBitSet newANTLRBitSetWithBits:(const unsigned long long *)FOLLOW_aexpr_in_condExpr631_data Count:(NSUInteger)1] retain];
  648. FOLLOW_atom_in_aexpr653 = [[ANTLRBitSet newANTLRBitSetWithBits:(const unsigned long long *)FOLLOW_atom_in_aexpr653_data Count:(NSUInteger)1] retain];
  649. FOLLOW_K_PLUS_in_aexpr657 = [[ANTLRBitSet newANTLRBitSetWithBits:(const unsigned long long *)FOLLOW_K_PLUS_in_aexpr657_data Count:(NSUInteger)1] retain];
  650. FOLLOW_atom_in_aexpr660 = [[ANTLRBitSet newANTLRBitSetWithBits:(const unsigned long long *)FOLLOW_atom_in_aexpr660_data Count:(NSUInteger)1] retain];
  651. FOLLOW_K_ID_in_atom680 = [[ANTLRBitSet newANTLRBitSetWithBits:(const unsigned long long *)FOLLOW_K_ID_in_atom680_data Count:(NSUInteger)1] retain];
  652. FOLLOW_K_INT_in_atom694 = [[ANTLRBitSet newANTLRBitSetWithBits:(const unsigned long long *)FOLLOW_K_INT_in_atom694_data Count:(NSUInteger)1] retain];
  653. FOLLOW_22_in_atom708 = [[ANTLRBitSet newANTLRBitSetWithBits:(const unsigned long long *)FOLLOW_22_in_atom708_data Count:(NSUInteger)1] retain];
  654. FOLLOW_expr_in_atom710 = [[ANTLRBitSet newANTLRBitSetWithBits:(const unsigned long long *)FOLLOW_expr_in_atom710_data Count:(NSUInteger)1] retain];
  655. FOLLOW_24_in_atom712 = [[ANTLRBitSet newANTLRBitSetWithBits:(const unsigned long long *)FOLLOW_24_in_atom712_data Count:(NSUInteger)1] retain];
  656. [ANTLRBaseRecognizer setTokenNames:[[[NSArray alloc] initWithObjects:@"<invalid>", @"<EOR>", @"<DOWN>", @"<UP>",
  657. @"VAR_DEF", @"ARG_DEF", @"FUNC_HDR", @"FUNC_DECL", @"FUNC_DEF", @"BLOCK",
  658. @"K_ID", @"K_INT", @"K_CHAR", @"K_VOID", @"K_FOR", @"K_EQ", @"K_EQEQ",
  659. @"K_LT", @"K_PLUS", @"K_INT_TYPE", @"WS", @"';'", @"'('", @"','", @"')'",
  660. @"'{'", @"'}'", nil] retain]];
  661. }
  662. + (SimpleCParser *)newSimpleCParser:(id<ANTLRTokenStream>)aStream
  663. {
  664. return [[SimpleCParser alloc] initWithTokenStream:aStream];
  665. }
  666. - (id) initWithTokenStream:(id<ANTLRTokenStream>)aStream
  667. {
  668. if ((self = [super initWithTokenStream:aStream State:[[ANTLRRecognizerSharedState newANTLRRecognizerSharedStateWithRuleLen:15+1] retain]]) != nil) {
  669. dfa2 = [DFA2 newDFA2WithRecognizer:self];
  670. /* start of actions-actionScope-init */
  671. /* start of init */
  672. /* AST genericParser.init */
  673. [self setTreeAdaptor:[[ANTLRCommonTreeAdaptor newANTLRCommonTreeAdaptor] retain]];
  674. }
  675. return self;
  676. }
  677. - (void) dealloc
  678. {
  679. [dfa2 release];
  680. /* AST genericParser.dealloc */
  681. [self setTreeAdaptor:nil];
  682. [super dealloc];
  683. }
  684. // start actions.actionScope.methods
  685. // start methods()
  686. /* AST genericParser.methods */
  687. /* AST parserMethods */
  688. - (id<ANTLRTreeAdaptor>) getTreeAdaptor
  689. {
  690. return treeAdaptor;
  691. }
  692. - (void) setTreeAdaptor:(id<ANTLRTreeAdaptor>)aTreeAdaptor
  693. {
  694. if (aTreeAdaptor != treeAdaptor) {
  695. treeAdaptor = aTreeAdaptor;
  696. }
  697. }
  698. // start rules
  699. /*
  700. * $ANTLR start program
  701. * /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/simplecTreeParser/SimpleC.g:16:1: program : ( declaration )+ ;
  702. */
  703. - (SimpleCParser_program_return *) program
  704. {
  705. /* ruleScopeSetUp */
  706. /* AST ruleDeclarations */
  707. SimpleCParser_program_return * retval = [SimpleCParser_program_return newSimpleCParser_program_return];
  708. [retval setStart:[input LT:1]];
  709. ANTLRCommonTree *root_0 = nil;
  710. @try {
  711. /* AST ruleLabelDefs */
  712. SimpleCParser_declaration_return * declaration1 = nil;
  713. // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/simplecTreeParser/SimpleC.g:17:5: ( ( declaration )+ ) // ruleBlockSingleAlt
  714. // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/simplecTreeParser/SimpleC.g:17:9: ( declaration )+ // alt
  715. {
  716. root_0 = (ANTLRCommonTree *)[[[treeAdaptor class] newEmptyTree] retain];
  717. // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/simplecTreeParser/SimpleC.g:17:9: ( declaration )+ // positiveClosureBlock
  718. NSInteger cnt1=0;
  719. do {
  720. NSInteger alt1=2;
  721. NSInteger LA1_0 = [input LA:1];
  722. if ( ((LA1_0>=K_ID && LA1_0<=K_VOID)) ) {
  723. alt1=1;
  724. }
  725. switch (alt1) {
  726. case 1 : ;
  727. // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/simplecTreeParser/SimpleC.g:17:9: declaration // alt
  728. {
  729. /* ASTParser ruleRef */
  730. [self pushFollow:FOLLOW_declaration_in_program85];
  731. declaration1 = [self declaration];
  732. [self popFollow];
  733. [treeAdaptor addChild:[declaration1 getTree] toTree:root_0]; /* element() */
  734. /* elements */
  735. }
  736. break;
  737. default :
  738. if ( cnt1 >= 1 )
  739. goto loop1;
  740. ANTLREarlyExitException *eee = [ANTLREarlyExitException exceptionWithStream:input decisionNumber:1];
  741. @throw eee;
  742. }
  743. cnt1++;
  744. } while (YES);
  745. loop1: ;
  746. /* element() */
  747. /* elements */
  748. }
  749. /* ASTParser ruleCleanUp */
  750. /* AST ruleCleanUp */
  751. // token+rule list labels
  752. [retval setStop:[input LT:-1]];
  753. retval.tree = (ANTLRCommonTree *)[treeAdaptor rulePostProcessing:root_0];
  754. [treeAdaptor setTokenBoundaries:retval.tree From:retval.startToken To:retval.stopToken];
  755. }
  756. @catch (ANTLRRecognitionException *re) {
  757. [self reportError:re];
  758. [self recover:input Exception:re];
  759. /* ASTParser rule.setErrorReturnValue */
  760. retval.tree = (ANTLRCommonTree *)[treeAdaptor errorNode:input From:retval.startToken To:[input LT:-1] Exception:re];
  761. } @finally {
  762. }
  763. return retval;
  764. }
  765. /* $ANTLR end program */
  766. /*
  767. * $ANTLR start declaration
  768. * /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 ) );
  769. */
  770. - (SimpleCParser_declaration_return *) declaration
  771. {
  772. /* ruleScopeSetUp */
  773. /* AST ruleDeclarations */
  774. SimpleCParser_declaration_return * retval = [SimpleCParser_declaration_return newSimpleCParser_declaration_return];
  775. [retval setStart:[input LT:1]];
  776. ANTLRCommonTree *root_0 = nil;
  777. @try {
  778. /* AST ruleLabelDefs */
  779. ANTLRCommonToken *char_literal4 = nil;
  780. SimpleCParser_variable_return * variable2 = nil;
  781. SimpleCParser_functionHeader_return * functionHeader3 = nil;
  782. SimpleCParser_functionHeader_return * functionHeader5 = nil;
  783. SimpleCParser_block_return * block6 = nil;
  784. ANTLRCommonTree *char_literal4_tree=nil;
  785. ANTLRRewriteRuleTokenStream *stream_21 =
  786. [[ANTLRRewriteRuleTokenStream newANTLRRewriteRuleTokenStream:treeAdaptor
  787. description:@"token 21"] retain];
  788. ANTLRRewriteRuleSubtreeStream *stream_functionHeader =
  789. [[ANTLRRewriteRuleSubtreeStream newANTLRRewriteRuleSubtreeStream:treeAdaptor
  790. description:@"rule functionHeader"] retain];
  791. ANTLRRewriteRuleSubtreeStream *stream_block =
  792. [[ANTLRRewriteRuleSubtreeStream newANTLRRewriteRuleSubtreeStream:treeAdaptor
  793. description:@"rule block"] retain];
  794. // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/simplecTreeParser/SimpleC.g:21:5: ( variable | functionHeader ';' -> ^( FUNC_DECL functionHeader ) | functionHeader block -> ^( FUNC_DEF functionHeader block ) ) //ruleblock
  795. NSInteger alt2=3;
  796. alt2 = [dfa2 predict:input];
  797. switch (alt2) {
  798. case 1 : ;
  799. // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/simplecTreeParser/SimpleC.g:21:9: variable // alt
  800. {
  801. root_0 = (ANTLRCommonTree *)[[[treeAdaptor class] newEmptyTree] retain];
  802. /* ASTParser ruleRef */
  803. [self pushFollow:FOLLOW_variable_in_declaration105];
  804. variable2 = [self variable];
  805. [self popFollow];
  806. [treeAdaptor addChild:[variable2 getTree] toTree:root_0]; /* element() */
  807. /* elements */
  808. }
  809. break;
  810. case 2 : ;
  811. // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/simplecTreeParser/SimpleC.g:22:9: functionHeader ';' // alt
  812. {
  813. [self pushFollow:FOLLOW_functionHeader_in_declaration115];
  814. functionHeader3 = [self functionHeader];
  815. [self popFollow];
  816. [stream_functionHeader addElement:[functionHeader3 getTree]]; /* element() */
  817. char_literal4=(ANTLRCommonToken *)[self match:input TokenType:21 Follow:FOLLOW_21_in_declaration117];
  818. [stream_21 addElement:char_literal4];
  819. /* element() */
  820. /* elements */
  821. // AST REWRITE
  822. // elements: functionHeader
  823. // token labels:
  824. // rule labels: retval
  825. // token list labels:
  826. // rule list labels:
  827. // wildcard labels:
  828. [retval setTree:root_0];
  829. retval.tree = root_0;
  830. ANTLRRewriteRuleSubtreeStream *stream_retval =
  831. [[ANTLRRewriteRuleSubtreeStream newANTLRRewriteRuleSubtreeStream:treeAdaptor
  832. description:@"token retval"
  833. element:retval!=nil?[retval getTree]:nil] retain];
  834. root_0 = (ANTLRCommonTree *)[[[treeAdaptor class] newEmptyTree] retain];
  835. // 22:28: -> ^( FUNC_DECL functionHeader )
  836. {
  837. // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/simplecTreeParser/SimpleC.g:22:31: ^( FUNC_DECL functionHeader )
  838. {
  839. ANTLRCommonTree *root_1 = (ANTLRCommonTree *)[[[treeAdaptor class] newEmptyTree] retain];
  840. root_1 = (ANTLRCommonTree *)[treeAdaptor becomeRoot:[[treeAdaptor createTree:(NSInteger)FUNC_DECL Text:[[ANTLRBaseRecognizer getTokenNames] objectAtIndex:(NSUInteger)FUNC_DECL]] retain]
  841. old:root_1];
  842. [treeAdaptor addChild:[stream_functionHeader nextTree] toTree:root_1];
  843. [treeAdaptor addChild:root_1 toTree:root_0];
  844. }
  845. }
  846. retval.tree = root_0;
  847. }
  848. break;
  849. case 3 : ;
  850. // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/simplecTreeParser/SimpleC.g:23:9: functionHeader block // alt
  851. {
  852. [self pushFollow:FOLLOW_functionHeader_in_declaration135];
  853. functionHeader5 = [self functionHeader];
  854. [self popFollow];
  855. [stream_functionHeader addElement:[functionHeader5 getTree]]; /* element() */
  856. [self pushFollow:FOLLOW_block_in_declaration137];
  857. block6 = [self block];
  858. [self popFollow];
  859. [stream_block addElement:[block6 getTree]]; /* element() */
  860. /* elements */
  861. // AST REWRITE
  862. // elements: functionHeader, block
  863. // token labels:
  864. // rule labels: retval
  865. // token list labels:
  866. // rule list labels:
  867. // wildcard labels:
  868. [retval setTree:root_0];
  869. retval.tree = root_0;
  870. ANTLRRewriteRuleSubtreeStream *stream_retval =
  871. [[ANTLRRewriteRuleSubtreeStream newANTLRRewriteRuleSubtreeStream:treeAdaptor
  872. description:@"token retval"
  873. element:retval!=nil?[retval getTree]:nil] retain];
  874. root_0 = (ANTLRCommonTree *)[[[treeAdaptor class] newEmptyTree] retain];
  875. // 23:30: -> ^( FUNC_DEF functionHeader block )
  876. {
  877. // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/simplecTreeParser/SimpleC.g:23:33: ^( FUNC_DEF functionHeader block )
  878. {
  879. ANTLRCommonTree *root_1 = (ANTLRCommonTree *)[[[treeAdaptor class] newEmptyTree] retain];
  880. root_1 = (ANTLRCommonTree *)[treeAdaptor becomeRoot:[[treeAdaptor createTree:(NSInteger)FUNC_DEF Text:[[ANTLRBaseRecognizer getTokenNames] objectAtIndex:(NSUInteger)FUNC_DEF]] retain]
  881. old:root_1];
  882. [treeAdaptor addChild:[stream_functionHeader nextTree] toTree:root_1];
  883. [treeAdaptor addChild:[stream_block nextTree] toTree:root_1];
  884. [treeAdaptor addChild:root_1 toTree:root_0];
  885. }
  886. }
  887. retval.tree = root_0;
  888. }
  889. break;
  890. }
  891. /* ASTParser ruleCleanUp */
  892. /* AST ruleCleanUp */
  893. // token+rule list labels
  894. [retval setStop:[input LT:-1]];
  895. [stream_21 release];
  896. [stream_functionHeader release];
  897. [stream_block release];
  898. retval.tree = (ANTLRCommonTree *)[treeAdaptor rulePostProcessing:root_0];
  899. [treeAdaptor setTokenBoundaries:retval.tree From:retval.startToken To:retval.stopToken];
  900. }
  901. @catch (ANTLRRecognitionException *re) {
  902. [self reportError:re];
  903. [self recover:input Exception:re];
  904. /* ASTParser rule.setErrorReturnValue */
  905. retval.tree = (ANTLRCommonTree *)[treeAdaptor errorNode:input From:retval.startToken To:[input LT:-1] Exception:re];
  906. } @finally {
  907. }
  908. return retval;
  909. }
  910. /* $ANTLR end declaration */
  911. /*
  912. * $ANTLR start variable
  913. * /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/simplecTreeParser/SimpleC.g:26:1: variable : type declarator ';' -> ^( VAR_DEF type declarator ) ;
  914. */
  915. - (SimpleCParser_variable_return *) variable
  916. {
  917. /* ruleScopeSetUp */
  918. /* AST ruleDeclarations */
  919. SimpleCParser_variable_return * retval = [SimpleCParser_variable_return newSimpleCParser_variable_return];
  920. [retval setStart:[input LT:1]];
  921. ANTLRCommonTree *root_0 = nil;
  922. @try {
  923. /* AST ruleLabelDefs */
  924. ANTLRCommonToken *char_literal9 = nil;
  925. SimpleCParser_type_return * type7 = nil;
  926. SimpleCParser_declarator_return * declarator8 = nil;
  927. ANTLRCommonTree *char_literal9_tree=nil;
  928. ANTLRRewriteRuleTokenStream *stream_21 =
  929. [[ANTLRRewriteRuleTokenStream newANTLRRewriteRuleTokenStream:treeAdaptor
  930. description:@"token 21"] retain];
  931. ANTLRRewriteRuleSubtreeStream *stream_declarator =
  932. [[ANTLRRewriteRuleSubtreeStream newANTLRRewriteRuleSubtreeStream:treeAdaptor
  933. description:@"rule declarator"] retain];
  934. ANTLRRewriteRuleSubtreeStream *stream_type =
  935. [[ANTLRRewriteRuleSubtreeStream newANTLRRewriteRuleSubtreeStream:treeAdaptor
  936. description:@"rule type"] retain];
  937. // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/simplecTreeParser/SimpleC.g:27:5: ( type declarator ';' -> ^( VAR_DEF type declarator ) ) // ruleBlockSingleAlt
  938. // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/simplecTreeParser/SimpleC.g:27:9: type declarator ';' // alt
  939. {
  940. [self pushFollow:FOLLOW_type_in_variable166];
  941. type7 = [self type];
  942. [self popFollow];
  943. [stream_type addElement:[type7 getTree]]; /* element() */
  944. [self pushFollow:FOLLOW_declarator_in_variable168];
  945. declarator8 = [self declarator];
  946. [self popFollow];
  947. [stream_declarator addElement:[declarator8 getTree]]; /* element() */
  948. char_literal9=(ANTLRCommonToken *)[self match:input TokenType:21 Follow:FOLLOW_21_in_variable170];
  949. [stream_21 addElement:char_literal9];
  950. /* element() */
  951. /* elements */
  952. // AST REWRITE
  953. // elements: type, declarator
  954. // token labels:
  955. // rule labels: retval
  956. // token list labels:
  957. // rule list labels:
  958. // wildcard labels:
  959. [retval setTree:root_0];
  960. retval.tree = root_0;
  961. ANTLRRewriteRuleSubtreeStream *stream_retval =
  962. [[ANTLRRewriteRuleSubtreeStream newANTLRRewriteRuleSubtreeStream:treeAdaptor
  963. description:@"token retval"
  964. element:retval!=nil?[retval getTree]:nil] retain];
  965. root_0 = (ANTLRCommonTree *)[[[treeAdaptor class] newEmptyTree] retain];
  966. // 27:29: -> ^( VAR_DEF type declarator )
  967. {
  968. // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/simplecTreeParser/SimpleC.g:27:32: ^( VAR_DEF type declarator )
  969. {
  970. ANTLRCommonTree *root_1 = (ANTLRCommonTree *)[[[treeAdaptor class] newEmptyTree] retain];
  971. root_1 = (ANTLRCommonTree *)[treeAdaptor becomeRoot:[[treeAdaptor createTree:(NSInteger)VAR_DEF Text:[[ANTLRBaseRecognizer getTokenNames] objectAtIndex:(NSUInteger)VAR_DEF]] retain]
  972. old:root_1];
  973. [treeAdaptor addChild:[stream_type nextTree] toTree:root_1];
  974. [treeAdaptor addChild:[stream_declarator nextTree] toTree:root_1];
  975. [treeAdaptor addChild:root_1 toTree:root_0];
  976. }
  977. }
  978. retval.tree = root_0;
  979. }
  980. /* ASTParser ruleCleanUp */
  981. /* AST ruleCleanUp */
  982. // token+rule list labels
  983. [retval setStop:[input LT:-1]];
  984. [stream_21 release];
  985. [stream_declarator release];
  986. [stream_type release];
  987. retval.tree = (ANTLRCommonTree *)[treeAdaptor rulePostProcessing:root_0];
  988. [treeAdaptor setTokenBoundaries:retval.tree From:retval.startToken To:retval.stopToken];
  989. }
  990. @catch (ANTLRRecognitionException *re) {
  991. [self reportError:re];
  992. [self recover:input Exception:re];
  993. /* ASTParser rule.setErrorReturnValue */
  994. retval.tree = (ANTLRCommonTree *)[treeAdaptor errorNode:input From:retval.startToken To:[input LT:-1] Exception:re];
  995. } @finally {
  996. }
  997. return retval;
  998. }
  999. /* $ANTLR end variable */
  1000. /*
  1001. * $ANTLR start declarator
  1002. * /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/simplecTreeParser/SimpleC.g:30:1: declarator : K_ID ;
  1003. */
  1004. - (SimpleCParser_declarator_return *) declarator
  1005. {
  1006. /* ruleScopeSetUp */
  1007. /* AST ruleDeclarations */
  1008. SimpleCParser_declarator_return * retval = [SimpleCParser_declarator_return newSimpleCParser_declarator_return];
  1009. [retval setStart:[input LT:1]];
  1010. ANTLRCommonTree *root_0 = nil;
  1011. @try {
  1012. /* AST ruleLabelDefs */
  1013. ANTLRCommonToken *K_ID10 = nil;
  1014. ANTLRCommonTree *K_ID10_tree=nil;
  1015. // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/simplecTreeParser/SimpleC.g:31:5: ( K_ID ) // ruleBlockSingleAlt
  1016. // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/simplecTreeParser/SimpleC.g:31:9: K_ID // alt
  1017. {
  1018. root_0 = (ANTLRCommonTree *)[[[treeAdaptor class] newEmptyTree] retain];
  1019. /* ASTParser tokenRef */
  1020. K_ID10=(ANTLRCommonToken *)[self match:input TokenType:K_ID Follow:FOLLOW_K_ID_in_declarator199];
  1021. K_ID10_tree = /* ASTParser createNodeFromToken */
  1022. (ANTLRCommonTree *)[[treeAdaptor createTree:K_ID10] retain];
  1023. [treeAdaptor addChild:K_ID10_tree toTree:root_0];
  1024. /* element() */
  1025. /* elements */
  1026. }
  1027. /* ASTParser ruleCleanUp */
  1028. /* AST ruleCleanUp */
  1029. // token+rule list labels
  1030. [retval setStop:[input LT:-1]];
  1031. retval.tree