PageRenderTime 56ms CodeModel.GetById 17ms RepoModel.GetById 0ms app.codeStats 0ms

/projects/antlr-3.4/runtime/ObjC/Framework/examples/fuzzy/Fuzzy.m

https://gitlab.com/essere.lab.public/qualitas.class-corpus
Objective C | 2004 lines | 1367 code | 430 blank | 207 comment | 248 complexity | 71f7aaea9796050a2075489495ccbbd8 MD5 | raw file
  1. /** \file
  2. * This OBJC source file was generated by $ANTLR version ${project.version} ${buildNumber}
  3. *
  4. * - From the grammar source file : Fuzzy.g
  5. * - On : 2011-05-06 11:47:46
  6. * - for the lexer : FuzzyLexer
  7. *
  8. * Editing it, at least manually, is not wise.
  9. *
  10. * ObjC language generator and runtime by Alan Condit, acondit|hereisanat|ipns|dotgoeshere|com.
  11. *
  12. *
  13. */
  14. // $ANTLR ${project.version} ${buildNumber} Fuzzy.g 2011-05-06 11:47:46
  15. /* -----------------------------------------
  16. * Include the ANTLR3 generated header file.
  17. */
  18. #import "Fuzzy.h"
  19. /* ----------------------------------------- */
  20. /* ============================================================================= */
  21. /* =============================================================================
  22. * Start of recognizer
  23. */
  24. /** As per Terence: No returns for lexer rules! */
  25. @implementation Fuzzy // line 330
  26. + (void) initialize
  27. {
  28. [ANTLRBaseRecognizer setGrammarFileName:@"Fuzzy.g"];
  29. }
  30. + (NSString *) tokenNameForType:(NSInteger)aTokenType
  31. {
  32. return [[self getTokenNames] objectAtIndex:aTokenType];
  33. }
  34. + (Fuzzy *)newFuzzyWithCharStream:(id<ANTLRCharStream>)anInput
  35. {
  36. return [[Fuzzy alloc] initWithCharStream:anInput];
  37. }
  38. - (id) initWithCharStream:(id<ANTLRCharStream>)anInput
  39. {
  40. self = [super initWithCharStream:anInput State:[[ANTLRRecognizerSharedState newANTLRRecognizerSharedStateWithRuleLen:30+1] retain]];
  41. if ( self != nil ) {
  42. SEL synpred9_FuzzySelector = @selector(synpred9_Fuzzy_fragment);
  43. SEL synpred2_FuzzySelector = @selector(synpred2_Fuzzy_fragment);
  44. SEL synpred7_FuzzySelector = @selector(synpred7_Fuzzy_fragment);
  45. SEL synpred4_FuzzySelector = @selector(synpred4_Fuzzy_fragment);
  46. SEL synpred8_FuzzySelector = @selector(synpred8_Fuzzy_fragment);
  47. SEL synpred6_FuzzySelector = @selector(synpred6_Fuzzy_fragment);
  48. SEL synpred5_FuzzySelector = @selector(synpred5_Fuzzy_fragment);
  49. SEL synpred3_FuzzySelector = @selector(synpred3_Fuzzy_fragment);
  50. SEL synpred1_FuzzySelector = @selector(synpred1_Fuzzy_fragment);
  51. }
  52. return self;
  53. }
  54. - (void) dealloc
  55. {
  56. [super dealloc];
  57. }
  58. /* ObjC Start of actions.lexer.methods */
  59. /* ObjC end of actions.lexer.methods */
  60. /* ObjC start methods() */
  61. /* ObjC end methods() */
  62. - (id<ANTLRToken>) nextToken
  63. {
  64. while (YES) {
  65. if ( [input LA:1] == ANTLRCharStreamEOF ) {
  66. return [ANTLRCommonToken eofToken];
  67. }
  68. state.token = nil;
  69. state.channel = ANTLRTokenChannelDefault;
  70. state.tokenStartCharIndex = input.index;
  71. state.tokenStartCharPositionInLine = input.charPositionInLine;
  72. state.tokenStartLine = input.line;
  73. state.text = nil;
  74. @try {
  75. NSInteger m = [input mark];
  76. state.backtracking = 1; /* means we won't throw slow exception */
  77. state.failed = NO;
  78. [self mTokens];
  79. state.backtracking = 0;
  80. /* mTokens backtracks with synpred at backtracking==2
  81. and we set the synpredgate to allow actions at level 1. */
  82. if ( state.failed ) {
  83. [input rewind:m];
  84. [input consume]; /* advance one char and try again */
  85. } else {
  86. [self emit];
  87. return state.token;
  88. }
  89. }
  90. @catch (ANTLRRecognitionException *re) {
  91. // shouldn't happen in backtracking mode, but...
  92. [self reportError:re];
  93. [self recover:re];
  94. }
  95. }
  96. }
  97. - (void)memoize:(id<ANTLRIntStream>)anInput
  98. RuleIndex:(NSInteger)ruleIndex
  99. StartIndex:(NSInteger)ruleStartIndex
  100. {
  101. if ( state.backtracking > 1 ) [super memoize:anInput RuleIndex:ruleIndex StartIndex:ruleStartIndex];
  102. }
  103. - (BOOL)alreadyParsedRule:(id<ANTLRIntStream>)anInput RuleIndex:(NSInteger)ruleIndex
  104. {
  105. if ( state.backtracking > 1 ) return [super alreadyParsedRule:anInput RuleIndex:ruleIndex];
  106. return NO;
  107. }
  108. /* Start of Rules */
  109. // $ANTLR start "IMPORT"
  110. - (void) mIMPORT
  111. {
  112. //
  113. /* my ruleScopeSetUp */
  114. /* Terence's stuff */
  115. @try {
  116. NSInteger _type = IMPORT;
  117. NSInteger _channel = ANTLRTokenChannelDefault;
  118. ANTLRCommonToken *name=nil;
  119. // Fuzzy.g:5:2: ( 'import' WS name= QIDStar ( WS )? ';' ) // ruleBlockSingleAlt
  120. // Fuzzy.g:5:4: 'import' WS name= QIDStar ( WS )? ';' // alt
  121. {
  122. [self matchString:@"import"]; if ( state.failed ) return ;
  123. [self mWS]; if ( state.failed ) return ;
  124. NSInteger nameStart31 = input.index;
  125. [self mQIDStar]; if ( state.failed ) return ;
  126. name = [[ANTLRCommonToken newToken:input Type:ANTLRTokenTypeInvalid Channel:ANTLRTokenChannelDefault Start:nameStart31 Stop:input.index-1] retain];
  127. name.line = self.line;
  128. // Fuzzy.g:5:29: ( WS )? // block
  129. NSInteger alt1=2;
  130. NSInteger LA1_0 = [input LA:1];
  131. if ( ((LA1_0 >= '\t' && LA1_0 <= '\n')||LA1_0==' ') ) {
  132. alt1=1;
  133. }
  134. switch (alt1) {
  135. case 1 : ;
  136. // Fuzzy.g:5:29: WS // alt
  137. {
  138. [self mWS]; if ( state.failed ) return ;
  139. }
  140. break;
  141. }
  142. [self matchChar:';']; if ( state.failed ) return ;
  143. }
  144. // token+rule list labels
  145. state.type = _type;
  146. state.channel = _channel;
  147. }
  148. @finally {
  149. //
  150. /* my stuff */
  151. /* Terence's stuff */
  152. }
  153. return;
  154. }
  155. /* $ANTLR end "IMPORT" */
  156. // $ANTLR start "RETURN"
  157. - (void) mRETURN
  158. {
  159. //
  160. /* my ruleScopeSetUp */
  161. /* Terence's stuff */
  162. @try {
  163. NSInteger _type = RETURN;
  164. NSInteger _channel = ANTLRTokenChannelDefault;
  165. // Fuzzy.g:10:2: ( 'return' ( options {greedy=false; } : . )* ';' ) // ruleBlockSingleAlt
  166. // Fuzzy.g:10:4: 'return' ( options {greedy=false; } : . )* ';' // alt
  167. {
  168. [self matchString:@"return"]; if ( state.failed ) return ;
  169. do {
  170. NSInteger alt2=2;
  171. NSInteger LA2_0 = [input LA:1];
  172. if ( (LA2_0==';') ) {
  173. alt2=2;
  174. }
  175. else if ( ((LA2_0 >= 0x0000 && LA2_0 <= ':')||(LA2_0 >= '<' && LA2_0 <= 0xFFFF)) ) {
  176. alt2=1;
  177. }
  178. switch (alt2) {
  179. case 1 : ;
  180. // Fuzzy.g:10:38: . // alt
  181. {
  182. [self matchAny]; if ( state.failed ) return ;
  183. }
  184. break;
  185. default :
  186. goto loop2;
  187. }
  188. } while (YES);
  189. loop2: ;
  190. [self matchChar:';']; if ( state.failed ) return ;
  191. }
  192. // token+rule list labels
  193. state.type = _type;
  194. state.channel = _channel;
  195. }
  196. @finally {
  197. //
  198. /* my stuff */
  199. /* Terence's stuff */
  200. }
  201. return;
  202. }
  203. /* $ANTLR end "RETURN" */
  204. // $ANTLR start "CLASS"
  205. - (void) mCLASS
  206. {
  207. //
  208. /* my ruleScopeSetUp */
  209. /* Terence's stuff */
  210. @try {
  211. NSInteger _type = CLASS;
  212. NSInteger _channel = ANTLRTokenChannelDefault;
  213. ANTLRCommonToken *name=nil;
  214. // Fuzzy.g:14:2: ( 'class' WS name= ID ( WS )? ( 'extends' WS QID ( WS )? )? ( 'implements' WS QID ( WS )? ( ',' ( WS )? QID ( WS )? )* )? '{' ) // ruleBlockSingleAlt
  215. // Fuzzy.g:14:4: 'class' WS name= ID ( WS )? ( 'extends' WS QID ( WS )? )? ( 'implements' WS QID ( WS )? ( ',' ( WS )? QID ( WS )? )* )? '{' // alt
  216. {
  217. [self matchString:@"class"]; if ( state.failed ) return ;
  218. [self mWS]; if ( state.failed ) return ;
  219. NSInteger nameStart81 = input.index;
  220. [self mID]; if ( state.failed ) return ;
  221. name = [[ANTLRCommonToken newToken:input Type:ANTLRTokenTypeInvalid Channel:ANTLRTokenChannelDefault Start:nameStart81 Stop:input.index-1] retain];
  222. name.line = self.line;
  223. // Fuzzy.g:14:23: ( WS )? // block
  224. NSInteger alt3=2;
  225. NSInteger LA3_0 = [input LA:1];
  226. if ( ((LA3_0 >= '\t' && LA3_0 <= '\n')||LA3_0==' ') ) {
  227. alt3=1;
  228. }
  229. switch (alt3) {
  230. case 1 : ;
  231. // Fuzzy.g:14:23: WS // alt
  232. {
  233. [self mWS]; if ( state.failed ) return ;
  234. }
  235. break;
  236. }
  237. // Fuzzy.g:14:27: ( 'extends' WS QID ( WS )? )? // block
  238. NSInteger alt5=2;
  239. NSInteger LA5_0 = [input LA:1];
  240. if ( (LA5_0=='e') ) {
  241. alt5=1;
  242. }
  243. switch (alt5) {
  244. case 1 : ;
  245. // Fuzzy.g:14:28: 'extends' WS QID ( WS )? // alt
  246. {
  247. [self matchString:@"extends"]; if ( state.failed ) return ;
  248. [self mWS]; if ( state.failed ) return ;
  249. [self mQID]; if ( state.failed ) return ;
  250. // Fuzzy.g:14:45: ( WS )? // block
  251. NSInteger alt4=2;
  252. NSInteger LA4_0 = [input LA:1];
  253. if ( ((LA4_0 >= '\t' && LA4_0 <= '\n')||LA4_0==' ') ) {
  254. alt4=1;
  255. }
  256. switch (alt4) {
  257. case 1 : ;
  258. // Fuzzy.g:14:45: WS // alt
  259. {
  260. [self mWS]; if ( state.failed ) return ;
  261. }
  262. break;
  263. }
  264. }
  265. break;
  266. }
  267. // Fuzzy.g:15:3: ( 'implements' WS QID ( WS )? ( ',' ( WS )? QID ( WS )? )* )? // block
  268. NSInteger alt10=2;
  269. NSInteger LA10_0 = [input LA:1];
  270. if ( (LA10_0=='i') ) {
  271. alt10=1;
  272. }
  273. switch (alt10) {
  274. case 1 : ;
  275. // Fuzzy.g:15:4: 'implements' WS QID ( WS )? ( ',' ( WS )? QID ( WS )? )* // alt
  276. {
  277. [self matchString:@"implements"]; if ( state.failed ) return ;
  278. [self mWS]; if ( state.failed ) return ;
  279. [self mQID]; if ( state.failed ) return ;
  280. // Fuzzy.g:15:24: ( WS )? // block
  281. NSInteger alt6=2;
  282. NSInteger LA6_0 = [input LA:1];
  283. if ( ((LA6_0 >= '\t' && LA6_0 <= '\n')||LA6_0==' ') ) {
  284. alt6=1;
  285. }
  286. switch (alt6) {
  287. case 1 : ;
  288. // Fuzzy.g:15:24: WS // alt
  289. {
  290. [self mWS]; if ( state.failed ) return ;
  291. }
  292. break;
  293. }
  294. do {
  295. NSInteger alt9=2;
  296. NSInteger LA9_0 = [input LA:1];
  297. if ( (LA9_0==',') ) {
  298. alt9=1;
  299. }
  300. switch (alt9) {
  301. case 1 : ;
  302. // Fuzzy.g:15:29: ',' ( WS )? QID ( WS )? // alt
  303. {
  304. [self matchChar:',']; if ( state.failed ) return ;
  305. // Fuzzy.g:15:33: ( WS )? // block
  306. NSInteger alt7=2;
  307. NSInteger LA7_0 = [input LA:1];
  308. if ( ((LA7_0 >= '\t' && LA7_0 <= '\n')||LA7_0==' ') ) {
  309. alt7=1;
  310. }
  311. switch (alt7) {
  312. case 1 : ;
  313. // Fuzzy.g:15:33: WS // alt
  314. {
  315. [self mWS]; if ( state.failed ) return ;
  316. }
  317. break;
  318. }
  319. [self mQID]; if ( state.failed ) return ;
  320. // Fuzzy.g:15:41: ( WS )? // block
  321. NSInteger alt8=2;
  322. NSInteger LA8_0 = [input LA:1];
  323. if ( ((LA8_0 >= '\t' && LA8_0 <= '\n')||LA8_0==' ') ) {
  324. alt8=1;
  325. }
  326. switch (alt8) {
  327. case 1 : ;
  328. // Fuzzy.g:15:41: WS // alt
  329. {
  330. [self mWS]; if ( state.failed ) return ;
  331. }
  332. break;
  333. }
  334. }
  335. break;
  336. default :
  337. goto loop9;
  338. }
  339. } while (YES);
  340. loop9: ;
  341. }
  342. break;
  343. }
  344. [self matchChar:'{']; if ( state.failed ) return ;
  345. if ( state.backtracking == 1 ) {
  346. NSLog(@"found class %@", (name!=nil?name.text:nil));
  347. }
  348. }
  349. // token+rule list labels
  350. state.type = _type;
  351. state.channel = _channel;
  352. }
  353. @finally {
  354. //
  355. /* my stuff */
  356. /* Terence's stuff */
  357. }
  358. return;
  359. }
  360. /* $ANTLR end "CLASS" */
  361. // $ANTLR start "METHOD"
  362. - (void) mMETHOD
  363. {
  364. //
  365. /* my ruleScopeSetUp */
  366. /* Terence's stuff */
  367. @try {
  368. NSInteger _type = METHOD;
  369. NSInteger _channel = ANTLRTokenChannelDefault;
  370. ANTLRCommonToken *name=nil;
  371. // Fuzzy.g:20:5: ( TYPE WS name= ID ( WS )? '(' ( ARG ( WS )? ( ',' ( WS )? ARG ( WS )? )* )? ')' ( WS )? ( 'throws' WS QID ( WS )? ( ',' ( WS )? QID ( WS )? )* )? '{' ) // ruleBlockSingleAlt
  372. // Fuzzy.g:20:9: TYPE WS name= ID ( WS )? '(' ( ARG ( WS )? ( ',' ( WS )? ARG ( WS )? )* )? ')' ( WS )? ( 'throws' WS QID ( WS )? ( ',' ( WS )? QID ( WS )? )* )? '{' // alt
  373. {
  374. [self mTYPE]; if ( state.failed ) return ;
  375. [self mWS]; if ( state.failed ) return ;
  376. NSInteger nameStart158 = input.index;
  377. [self mID]; if ( state.failed ) return ;
  378. name = [[ANTLRCommonToken newToken:input Type:ANTLRTokenTypeInvalid Channel:ANTLRTokenChannelDefault Start:nameStart158 Stop:input.index-1] retain];
  379. name.line = self.line;
  380. // Fuzzy.g:20:25: ( WS )? // block
  381. NSInteger alt11=2;
  382. NSInteger LA11_0 = [input LA:1];
  383. if ( ((LA11_0 >= '\t' && LA11_0 <= '\n')||LA11_0==' ') ) {
  384. alt11=1;
  385. }
  386. switch (alt11) {
  387. case 1 : ;
  388. // Fuzzy.g:20:25: WS // alt
  389. {
  390. [self mWS]; if ( state.failed ) return ;
  391. }
  392. break;
  393. }
  394. [self matchChar:'(']; if ( state.failed ) return ;
  395. // Fuzzy.g:20:33: ( ARG ( WS )? ( ',' ( WS )? ARG ( WS )? )* )? // block
  396. NSInteger alt16=2;
  397. NSInteger LA16_0 = [input LA:1];
  398. if ( ((LA16_0 >= 'A' && LA16_0 <= 'Z')||LA16_0=='_'||(LA16_0 >= 'a' && LA16_0 <= 'z')) ) {
  399. alt16=1;
  400. }
  401. switch (alt16) {
  402. case 1 : ;
  403. // Fuzzy.g:20:35: ARG ( WS )? ( ',' ( WS )? ARG ( WS )? )* // alt
  404. {
  405. [self mARG]; if ( state.failed ) return ;
  406. // Fuzzy.g:20:39: ( WS )? // block
  407. NSInteger alt12=2;
  408. NSInteger LA12_0 = [input LA:1];
  409. if ( ((LA12_0 >= '\t' && LA12_0 <= '\n')||LA12_0==' ') ) {
  410. alt12=1;
  411. }
  412. switch (alt12) {
  413. case 1 : ;
  414. // Fuzzy.g:20:39: WS // alt
  415. {
  416. [self mWS]; if ( state.failed ) return ;
  417. }
  418. break;
  419. }
  420. do {
  421. NSInteger alt15=2;
  422. NSInteger LA15_0 = [input LA:1];
  423. if ( (LA15_0==',') ) {
  424. alt15=1;
  425. }
  426. switch (alt15) {
  427. case 1 : ;
  428. // Fuzzy.g:20:44: ',' ( WS )? ARG ( WS )? // alt
  429. {
  430. [self matchChar:',']; if ( state.failed ) return ;
  431. // Fuzzy.g:20:48: ( WS )? // block
  432. NSInteger alt13=2;
  433. NSInteger LA13_0 = [input LA:1];
  434. if ( ((LA13_0 >= '\t' && LA13_0 <= '\n')||LA13_0==' ') ) {
  435. alt13=1;
  436. }
  437. switch (alt13) {
  438. case 1 : ;
  439. // Fuzzy.g:20:48: WS // alt
  440. {
  441. [self mWS]; if ( state.failed ) return ;
  442. }
  443. break;
  444. }
  445. [self mARG]; if ( state.failed ) return ;
  446. // Fuzzy.g:20:56: ( WS )? // block
  447. NSInteger alt14=2;
  448. NSInteger LA14_0 = [input LA:1];
  449. if ( ((LA14_0 >= '\t' && LA14_0 <= '\n')||LA14_0==' ') ) {
  450. alt14=1;
  451. }
  452. switch (alt14) {
  453. case 1 : ;
  454. // Fuzzy.g:20:56: WS // alt
  455. {
  456. [self mWS]; if ( state.failed ) return ;
  457. }
  458. break;
  459. }
  460. }
  461. break;
  462. default :
  463. goto loop15;
  464. }
  465. } while (YES);
  466. loop15: ;
  467. }
  468. break;
  469. }
  470. [self matchChar:')']; if ( state.failed ) return ;
  471. // Fuzzy.g:20:69: ( WS )? // block
  472. NSInteger alt17=2;
  473. NSInteger LA17_0 = [input LA:1];
  474. if ( ((LA17_0 >= '\t' && LA17_0 <= '\n')||LA17_0==' ') ) {
  475. alt17=1;
  476. }
  477. switch (alt17) {
  478. case 1 : ;
  479. // Fuzzy.g:20:69: WS // alt
  480. {
  481. [self mWS]; if ( state.failed ) return ;
  482. }
  483. break;
  484. }
  485. // Fuzzy.g:21:8: ( 'throws' WS QID ( WS )? ( ',' ( WS )? QID ( WS )? )* )? // block
  486. NSInteger alt22=2;
  487. NSInteger LA22_0 = [input LA:1];
  488. if ( (LA22_0=='t') ) {
  489. alt22=1;
  490. }
  491. switch (alt22) {
  492. case 1 : ;
  493. // Fuzzy.g:21:9: 'throws' WS QID ( WS )? ( ',' ( WS )? QID ( WS )? )* // alt
  494. {
  495. [self matchString:@"throws"]; if ( state.failed ) return ;
  496. [self mWS]; if ( state.failed ) return ;
  497. [self mQID]; if ( state.failed ) return ;
  498. // Fuzzy.g:21:25: ( WS )? // block
  499. NSInteger alt18=2;
  500. NSInteger LA18_0 = [input LA:1];
  501. if ( ((LA18_0 >= '\t' && LA18_0 <= '\n')||LA18_0==' ') ) {
  502. alt18=1;
  503. }
  504. switch (alt18) {
  505. case 1 : ;
  506. // Fuzzy.g:21:25: WS // alt
  507. {
  508. [self mWS]; if ( state.failed ) return ;
  509. }
  510. break;
  511. }
  512. do {
  513. NSInteger alt21=2;
  514. NSInteger LA21_0 = [input LA:1];
  515. if ( (LA21_0==',') ) {
  516. alt21=1;
  517. }
  518. switch (alt21) {
  519. case 1 : ;
  520. // Fuzzy.g:21:30: ',' ( WS )? QID ( WS )? // alt
  521. {
  522. [self matchChar:',']; if ( state.failed ) return ;
  523. // Fuzzy.g:21:34: ( WS )? // block
  524. NSInteger alt19=2;
  525. NSInteger LA19_0 = [input LA:1];
  526. if ( ((LA19_0 >= '\t' && LA19_0 <= '\n')||LA19_0==' ') ) {
  527. alt19=1;
  528. }
  529. switch (alt19) {
  530. case 1 : ;
  531. // Fuzzy.g:21:34: WS // alt
  532. {
  533. [self mWS]; if ( state.failed ) return ;
  534. }
  535. break;
  536. }
  537. [self mQID]; if ( state.failed ) return ;
  538. // Fuzzy.g:21:42: ( WS )? // block
  539. NSInteger alt20=2;
  540. NSInteger LA20_0 = [input LA:1];
  541. if ( ((LA20_0 >= '\t' && LA20_0 <= '\n')||LA20_0==' ') ) {
  542. alt20=1;
  543. }
  544. switch (alt20) {
  545. case 1 : ;
  546. // Fuzzy.g:21:42: WS // alt
  547. {
  548. [self mWS]; if ( state.failed ) return ;
  549. }
  550. break;
  551. }
  552. }
  553. break;
  554. default :
  555. goto loop21;
  556. }
  557. } while (YES);
  558. loop21: ;
  559. }
  560. break;
  561. }
  562. [self matchChar:'{']; if ( state.failed ) return ;
  563. if ( state.backtracking == 1 ) {
  564. NSLog(@"found method %@", (name!=nil?name.text:nil));
  565. }
  566. }
  567. // token+rule list labels
  568. state.type = _type;
  569. state.channel = _channel;
  570. }
  571. @finally {
  572. //
  573. /* my stuff */
  574. /* Terence's stuff */
  575. }
  576. return;
  577. }
  578. /* $ANTLR end "METHOD" */
  579. // $ANTLR start "FIELD"
  580. - (void) mFIELD
  581. {
  582. //
  583. /* my ruleScopeSetUp */
  584. /* Terence's stuff */
  585. @try {
  586. NSInteger _type = FIELD;
  587. NSInteger _channel = ANTLRTokenChannelDefault;
  588. ANTLRCommonToken *name=nil;
  589. // Fuzzy.g:26:5: ( TYPE WS name= ID ( '[]' )? ( WS )? ( ';' | '=' ) ) // ruleBlockSingleAlt
  590. // Fuzzy.g:26:9: TYPE WS name= ID ( '[]' )? ( WS )? ( ';' | '=' ) // alt
  591. {
  592. [self mTYPE]; if ( state.failed ) return ;
  593. [self mWS]; if ( state.failed ) return ;
  594. NSInteger nameStart261 = input.index;
  595. [self mID]; if ( state.failed ) return ;
  596. name = [[ANTLRCommonToken newToken:input Type:ANTLRTokenTypeInvalid Channel:ANTLRTokenChannelDefault Start:nameStart261 Stop:input.index-1] retain];
  597. name.line = self.line;
  598. // Fuzzy.g:26:25: ( '[]' )? // block
  599. NSInteger alt23=2;
  600. NSInteger LA23_0 = [input LA:1];
  601. if ( (LA23_0=='[') ) {
  602. alt23=1;
  603. }
  604. switch (alt23) {
  605. case 1 : ;
  606. // Fuzzy.g:26:25: '[]' // alt
  607. {
  608. [self matchString:@"[]"]; if ( state.failed ) return ;
  609. }
  610. break;
  611. }
  612. // Fuzzy.g:26:31: ( WS )? // block
  613. NSInteger alt24=2;
  614. NSInteger LA24_0 = [input LA:1];
  615. if ( ((LA24_0 >= '\t' && LA24_0 <= '\n')||LA24_0==' ') ) {
  616. alt24=1;
  617. }
  618. switch (alt24) {
  619. case 1 : ;
  620. // Fuzzy.g:26:31: WS // alt
  621. {
  622. [self mWS]; if ( state.failed ) return ;
  623. }
  624. break;
  625. }
  626. if ([input LA:1] == ';'||[input LA:1] == '=') {
  627. [input consume];
  628. state.failed = NO;
  629. } else {
  630. if ( state.backtracking > 0 ) { state.failed = YES; return ; }
  631. ANTLRMismatchedSetException *mse = [ANTLRMismatchedSetException newException:nil stream:input];
  632. [self recover:mse];
  633. @throw mse;
  634. }
  635. if ( state.backtracking == 1 ) {
  636. NSLog(@"found var %@", (name!=nil?name.text:nil));
  637. }
  638. }
  639. // token+rule list labels
  640. state.type = _type;
  641. state.channel = _channel;
  642. }
  643. @finally {
  644. //
  645. /* my stuff */
  646. /* Terence's stuff */
  647. }
  648. return;
  649. }
  650. /* $ANTLR end "FIELD" */
  651. // $ANTLR start "STAT"
  652. - (void) mSTAT
  653. {
  654. //
  655. /* my ruleScopeSetUp */
  656. /* Terence's stuff */
  657. @try {
  658. NSInteger _type = STAT;
  659. NSInteger _channel = ANTLRTokenChannelDefault;
  660. // Fuzzy.g:30:5: ( ( 'if' | 'while' | 'switch' | 'for' ) ( WS )? '(' ) // ruleBlockSingleAlt
  661. // Fuzzy.g:30:7: ( 'if' | 'while' | 'switch' | 'for' ) ( WS )? '(' // alt
  662. {
  663. // Fuzzy.g:30:7: ( 'if' | 'while' | 'switch' | 'for' ) // block
  664. NSInteger alt25=4;
  665. unichar charLA25 = [input LA:1];
  666. switch (charLA25) {
  667. case 'i': ;
  668. {
  669. alt25=1;
  670. }
  671. break;
  672. case 'w': ;
  673. {
  674. alt25=2;
  675. }
  676. break;
  677. case 's': ;
  678. {
  679. alt25=3;
  680. }
  681. break;
  682. case 'f': ;
  683. {
  684. alt25=4;
  685. }
  686. break;
  687. default: ;
  688. if ( state.backtracking > 0 ) { state.failed = YES; return ; }
  689. ANTLRNoViableAltException *nvae = [ANTLRNoViableAltException newException:25 state:0 stream:input];
  690. nvae.c = charLA25;
  691. @throw nvae;
  692. }
  693. switch (alt25) {
  694. case 1 : ;
  695. // Fuzzy.g:30:8: 'if' // alt
  696. {
  697. [self matchString:@"if"]; if ( state.failed ) return ;
  698. }
  699. break;
  700. case 2 : ;
  701. // Fuzzy.g:30:13: 'while' // alt
  702. {
  703. [self matchString:@"while"]; if ( state.failed ) return ;
  704. }
  705. break;
  706. case 3 : ;
  707. // Fuzzy.g:30:21: 'switch' // alt
  708. {
  709. [self matchString:@"switch"]; if ( state.failed ) return ;
  710. }
  711. break;
  712. case 4 : ;
  713. // Fuzzy.g:30:30: 'for' // alt
  714. {
  715. [self matchString:@"for"]; if ( state.failed ) return ;
  716. }
  717. break;
  718. }
  719. // Fuzzy.g:30:37: ( WS )? // block
  720. NSInteger alt26=2;
  721. NSInteger LA26_0 = [input LA:1];
  722. if ( ((LA26_0 >= '\t' && LA26_0 <= '\n')||LA26_0==' ') ) {
  723. alt26=1;
  724. }
  725. switch (alt26) {
  726. case 1 : ;
  727. // Fuzzy.g:30:37: WS // alt
  728. {
  729. [self mWS]; if ( state.failed ) return ;
  730. }
  731. break;
  732. }
  733. [self matchChar:'(']; if ( state.failed ) return ;
  734. }
  735. // token+rule list labels
  736. state.type = _type;
  737. state.channel = _channel;
  738. }
  739. @finally {
  740. //
  741. /* my stuff */
  742. /* Terence's stuff */
  743. }
  744. return;
  745. }
  746. /* $ANTLR end "STAT" */
  747. // $ANTLR start "CALL"
  748. - (void) mCALL
  749. {
  750. //
  751. /* my ruleScopeSetUp */
  752. /* Terence's stuff */
  753. @try {
  754. NSInteger _type = CALL;
  755. NSInteger _channel = ANTLRTokenChannelDefault;
  756. ANTLRCommonToken *name=nil;
  757. // Fuzzy.g:33:5: (name= QID ( WS )? '(' ) // ruleBlockSingleAlt
  758. // Fuzzy.g:33:9: name= QID ( WS )? '(' // alt
  759. {
  760. NSInteger nameStart326 = input.index;
  761. [self mQID]; if ( state.failed ) return ;
  762. name = [[ANTLRCommonToken newToken:input Type:ANTLRTokenTypeInvalid Channel:ANTLRTokenChannelDefault Start:nameStart326 Stop:input.index-1] retain];
  763. name.line = self.line;
  764. // Fuzzy.g:33:18: ( WS )? // block
  765. NSInteger alt27=2;
  766. NSInteger LA27_0 = [input LA:1];
  767. if ( ((LA27_0 >= '\t' && LA27_0 <= '\n')||LA27_0==' ') ) {
  768. alt27=1;
  769. }
  770. switch (alt27) {
  771. case 1 : ;
  772. // Fuzzy.g:33:18: WS // alt
  773. {
  774. [self mWS]; if ( state.failed ) return ;
  775. }
  776. break;
  777. }
  778. [self matchChar:'(']; if ( state.failed ) return ;
  779. if ( state.backtracking == 1 ) {
  780. /*ignore if this/super */ NSLog(@"found call %@",(name!=nil?name.text:nil));
  781. }
  782. }
  783. // token+rule list labels
  784. state.type = _type;
  785. state.channel = _channel;
  786. }
  787. @finally {
  788. //
  789. /* my stuff */
  790. /* Terence's stuff */
  791. }
  792. return;
  793. }
  794. /* $ANTLR end "CALL" */
  795. // $ANTLR start "COMMENT"
  796. - (void) mCOMMENT
  797. {
  798. //
  799. /* my ruleScopeSetUp */
  800. /* Terence's stuff */
  801. @try {
  802. NSInteger _type = COMMENT;
  803. NSInteger _channel = ANTLRTokenChannelDefault;
  804. // Fuzzy.g:38:5: ( '/*' ( options {greedy=false; } : . )* '*/' ) // ruleBlockSingleAlt
  805. // Fuzzy.g:38:9: '/*' ( options {greedy=false; } : . )* '*/' // alt
  806. {
  807. [self matchString:@"/*"]; if ( state.failed ) return ;
  808. do {
  809. NSInteger alt28=2;
  810. NSInteger LA28_0 = [input LA:1];
  811. if ( (LA28_0=='*') ) {
  812. NSInteger LA28_1 = [input LA:2];
  813. if ( (LA28_1=='/') ) {
  814. alt28=2;
  815. }
  816. else if ( ((LA28_1 >= 0x0000 && LA28_1 <= '.')||(LA28_1 >= '0' && LA28_1 <= 0xFFFF)) ) {
  817. alt28=1;
  818. }
  819. }
  820. else if ( ((LA28_0 >= 0x0000 && LA28_0 <= ')')||(LA28_0 >= '+' && LA28_0 <= 0xFFFF)) ) {
  821. alt28=1;
  822. }
  823. switch (alt28) {
  824. case 1 : ;
  825. // Fuzzy.g:38:41: . // alt
  826. {
  827. [self matchAny]; if ( state.failed ) return ;
  828. }
  829. break;
  830. default :
  831. goto loop28;
  832. }
  833. } while (YES);
  834. loop28: ;
  835. [self matchString:@"*/"]; if ( state.failed ) return ;
  836. if ( state.backtracking == 1 ) {
  837. NSLog(@"found comment %@", [self text]);
  838. }
  839. }
  840. // token+rule list labels
  841. state.type = _type;
  842. state.channel = _channel;
  843. }
  844. @finally {
  845. //
  846. /* my stuff */
  847. /* Terence's stuff */
  848. }
  849. return;
  850. }
  851. /* $ANTLR end "COMMENT" */
  852. // $ANTLR start "SL_COMMENT"
  853. - (void) mSL_COMMENT
  854. {
  855. //
  856. /* my ruleScopeSetUp */
  857. /* Terence's stuff */
  858. @try {
  859. NSInteger _type = SL_COMMENT;
  860. NSInteger _channel = ANTLRTokenChannelDefault;
  861. // Fuzzy.g:43:5: ( '//' ( options {greedy=false; } : . )* '\\n' ) // ruleBlockSingleAlt
  862. // Fuzzy.g:43:9: '//' ( options {greedy=false; } : . )* '\\n' // alt
  863. {
  864. [self matchString:@"//"]; if ( state.failed ) return ;
  865. do {
  866. NSInteger alt29=2;
  867. NSInteger LA29_0 = [input LA:1];
  868. if ( (LA29_0=='\n') ) {
  869. alt29=2;
  870. }
  871. else if ( ((LA29_0 >= 0x0000 && LA29_0 <= '\t')||(LA29_0 >= 0x000B && LA29_0 <= 0xFFFF)) ) {
  872. alt29=1;
  873. }
  874. switch (alt29) {
  875. case 1 : ;
  876. // Fuzzy.g:43:41: . // alt
  877. {
  878. [self matchAny]; if ( state.failed ) return ;
  879. }
  880. break;
  881. default :
  882. goto loop29;
  883. }
  884. } while (YES);
  885. loop29: ;
  886. [self matchChar:'\n']; if ( state.failed ) return ;
  887. if ( state.backtracking == 1 ) {
  888. NSLog(@"found // comment %@", [self text]);
  889. }
  890. }
  891. // token+rule list labels
  892. state.type = _type;
  893. state.channel = _channel;
  894. }
  895. @finally {
  896. //
  897. /* my stuff */
  898. /* Terence's stuff */
  899. }
  900. return;
  901. }
  902. /* $ANTLR end "SL_COMMENT" */
  903. // $ANTLR start "STRING"
  904. - (void) mSTRING
  905. {
  906. //
  907. /* my ruleScopeSetUp */
  908. /* Terence's stuff */
  909. @try {
  910. NSInteger _type = STRING;
  911. NSInteger _channel = ANTLRTokenChannelDefault;
  912. // Fuzzy.g:48:2: ( '\"' ( options {greedy=false; } : ESC | . )* '\"' ) // ruleBlockSingleAlt
  913. // Fuzzy.g:48:4: '\"' ( options {greedy=false; } : ESC | . )* '\"' // alt
  914. {
  915. [self matchChar:'"']; if ( state.failed ) return ;
  916. do {
  917. NSInteger alt30=3;
  918. NSInteger LA30_0 = [input LA:1];
  919. if ( (LA30_0=='"') ) {
  920. alt30=3;
  921. }
  922. else if ( (LA30_0=='\\') ) {
  923. NSInteger LA30_2 = [input LA:2];
  924. if ( (LA30_2=='"') ) {
  925. alt30=1;
  926. }
  927. else if ( (LA30_2=='\\') ) {
  928. alt30=1;
  929. }
  930. else if ( (LA30_2=='\'') ) {
  931. alt30=1;
  932. }
  933. else if ( ((LA30_2 >= 0x0000 && LA30_2 <= '!')||(LA30_2 >= '#' && LA30_2 <= '&')||(LA30_2 >= '(' && LA30_2 <= '[')||(LA30_2 >= ']' && LA30_2 <= 0xFFFF)) ) {
  934. alt30=2;
  935. }
  936. }
  937. else if ( ((LA30_0 >= 0x0000 && LA30_0 <= '!')||(LA30_0 >= '#' && LA30_0 <= '[')||(LA30_0 >= ']' && LA30_0 <= 0xFFFF)) ) {
  938. alt30=2;
  939. }
  940. switch (alt30) {
  941. case 1 : ;
  942. // Fuzzy.g:48:34: ESC // alt
  943. {
  944. [self mESC]; if ( state.failed ) return ;
  945. }
  946. break;
  947. case 2 : ;
  948. // Fuzzy.g:48:40: . // alt
  949. {
  950. [self matchAny]; if ( state.failed ) return ;
  951. }
  952. break;
  953. default :
  954. goto loop30;
  955. }
  956. } while (YES);
  957. loop30: ;
  958. [self matchChar:'"']; if ( state.failed ) return ;
  959. }
  960. // token+rule list labels
  961. state.type = _type;
  962. state.channel = _channel;
  963. }
  964. @finally {
  965. //
  966. /* my stuff */
  967. /* Terence's stuff */
  968. }
  969. return;
  970. }
  971. /* $ANTLR end "STRING" */
  972. // $ANTLR start "CHAR"
  973. - (void) mCHAR
  974. {
  975. //
  976. /* my ruleScopeSetUp */
  977. /* Terence's stuff */
  978. @try {
  979. NSInteger _type = CHAR;
  980. NSInteger _channel = ANTLRTokenChannelDefault;
  981. // Fuzzy.g:52:2: ( '\\'' ( options {greedy=false; } : ESC | . )* '\\'' ) // ruleBlockSingleAlt
  982. // Fuzzy.g:52:4: '\\'' ( options {greedy=false; } : ESC | . )* '\\'' // alt
  983. {
  984. [self matchChar:'\'']; if ( state.failed ) return ;
  985. do {
  986. NSInteger alt31=3;
  987. NSInteger LA31_0 = [input LA:1];
  988. if ( (LA31_0=='\'') ) {
  989. alt31=3;
  990. }
  991. else if ( (LA31_0=='\\') ) {
  992. NSInteger LA31_2 = [input LA:2];
  993. if ( (LA31_2=='\'') ) {
  994. alt31=1;
  995. }
  996. else if ( (LA31_2=='\\') ) {
  997. alt31=1;
  998. }
  999. else if ( (LA31_2=='"') ) {
  1000. alt31=1;
  1001. }
  1002. else if ( ((LA31_2 >= 0x0000 && LA31_2 <= '!')||(LA31_2 >= '#' && LA31_2 <= '&')||(LA31_2 >= '(' && LA31_2 <= '[')||(LA31_2 >= ']' && LA31_2 <= 0xFFFF)) ) {
  1003. alt31=2;
  1004. }
  1005. }
  1006. else if ( ((LA31_0 >= 0x0000 && LA31_0 <= '&')||(LA31_0 >= '(' && LA31_0 <= '[')||(LA31_0 >= ']' && LA31_0 <= 0xFFFF)) ) {
  1007. alt31=2;
  1008. }
  1009. switch (alt31) {
  1010. case 1 : ;
  1011. // Fuzzy.g:52:35: ESC // alt
  1012. {
  1013. [self mESC]; if ( state.failed ) return ;
  1014. }
  1015. break;
  1016. case 2 : ;
  1017. // Fuzzy.g:52:41: . // alt
  1018. {
  1019. [self matchAny]; if ( state.failed ) return ;
  1020. }
  1021. break;
  1022. default :
  1023. goto loop31;
  1024. }
  1025. } while (YES);
  1026. loop31: ;
  1027. [self matchChar:'\'']; if ( state.failed ) return ;
  1028. }
  1029. // token+rule list labels
  1030. state.type = _type;
  1031. state.channel = _channel;
  1032. }
  1033. @finally {
  1034. //
  1035. /* my stuff */
  1036. /* Terence's stuff */
  1037. }
  1038. return;
  1039. }
  1040. /* $ANTLR end "CHAR" */
  1041. // $ANTLR start "WS"
  1042. - (void) mWS
  1043. {
  1044. //
  1045. /* my ruleScopeSetUp */
  1046. /* Terence's stuff */
  1047. @try {
  1048. NSInteger _type = WS;
  1049. NSInteger _channel = ANTLRTokenChannelDefault;
  1050. // Fuzzy.g:55:5: ( ( ' ' | '\\t' | '\\n' )+ ) // ruleBlockSingleAlt
  1051. // Fuzzy.g:55:9: ( ' ' | '\\t' | '\\n' )+ // alt
  1052. {
  1053. // Fuzzy.g:55:9: ( ' ' | '\\t' | '\\n' )+ // positiveClosureBlock
  1054. NSInteger cnt32 = 0;
  1055. do {
  1056. NSInteger alt32 = 2;
  1057. NSInteger LA32_0 = [input LA:1];
  1058. if ( ((LA32_0 >= '\t' && LA32_0 <= '\n')||LA32_0==' ') ) {
  1059. alt32=1;
  1060. }
  1061. switch (alt32) {
  1062. case 1 : ;
  1063. // Fuzzy.g: // alt
  1064. {
  1065. if ((([input LA:1] >= '\t') && ([input LA:1] <= '\n'))||[input LA:1] == ' ') {
  1066. [input consume];
  1067. state.failed = NO;
  1068. } else {
  1069. if ( state.backtracking > 0 ) { state.failed = YES; return ; }
  1070. ANTLRMismatchedSetException *mse = [ANTLRMismatchedSetException newException:nil stream:input];
  1071. [self recover:mse];
  1072. @throw mse;
  1073. }
  1074. }
  1075. break;
  1076. default :
  1077. if ( cnt32 >= 1 )
  1078. goto loop32;
  1079. if ( state.backtracking > 0 ) { state.failed = YES; return ; }
  1080. ANTLREarlyExitException *eee =
  1081. [ANTLREarlyExitException newException:input decisionNumber:32];
  1082. @throw eee;
  1083. }
  1084. cnt32++;
  1085. } while (YES);
  1086. loop32: ;
  1087. }
  1088. // token+rule list labels
  1089. state.type = _type;
  1090. state.channel = _channel;
  1091. }
  1092. @finally {
  1093. //
  1094. /* my stuff */
  1095. /* Terence's stuff */
  1096. }
  1097. return;
  1098. }
  1099. /* $ANTLR end "WS" */
  1100. // $ANTLR start "QID"
  1101. - (void) mQID
  1102. {
  1103. //
  1104. /* my ruleScopeSetUp */
  1105. /* Terence's stuff */
  1106. @try {
  1107. // Fuzzy.g:59:5: ( ID ( '.' ID )* ) // ruleBlockSingleAlt
  1108. // Fuzzy.g:59:7: ID ( '.' ID )* // alt
  1109. {
  1110. [self mID]; if ( state.failed ) return ;
  1111. do {
  1112. NSInteger alt33=2;
  1113. NSInteger LA33_0 = [input LA:1];
  1114. if ( (LA33_0=='.') ) {
  1115. alt33=1;
  1116. }
  1117. switch (alt33) {
  1118. case 1 : ;
  1119. // Fuzzy.g:59:11: '.' ID // alt
  1120. {
  1121. [self matchChar:'.']; if ( state.failed ) return ;
  1122. [self mID]; if ( state.failed ) return ;
  1123. }
  1124. break;
  1125. default :
  1126. goto loop33;
  1127. }
  1128. } while (YES);
  1129. loop33: ;
  1130. }
  1131. }
  1132. @finally {
  1133. //
  1134. /* my stuff */
  1135. /* Terence's stuff */
  1136. }
  1137. return;
  1138. }
  1139. /* $ANTLR end "QID" */
  1140. // $ANTLR start "QIDStar"
  1141. - (void) mQIDStar
  1142. {
  1143. //
  1144. /* my ruleScopeSetUp */
  1145. /* Terence's stuff */
  1146. @try {
  1147. // Fuzzy.g:68:2: ( ID ( '.' ID )* ( '.*' )? ) // ruleBlockSingleAlt
  1148. // Fuzzy.g:68:4: ID ( '.' ID )* ( '.*' )? // alt
  1149. {
  1150. [self mID]; if ( state.failed ) return ;
  1151. do {
  1152. NSInteger alt34=2;
  1153. NSInteger LA34_0 = [input LA:1];
  1154. if ( (LA34_0=='.') ) {
  1155. NSInteger LA34_1 = [input LA:2];
  1156. if ( ((LA34_1 >= 'A' && LA34_1 <= 'Z')||LA34_1=='_'||(LA34_1 >= 'a' && LA34_1 <= 'z')) ) {
  1157. alt34=1;
  1158. }
  1159. }
  1160. switch (alt34) {
  1161. case 1 : ;
  1162. // Fuzzy.g:68:8: '.' ID // alt
  1163. {
  1164. [self matchChar:'.']; if ( state.failed ) return ;
  1165. [self mID]; if ( state.failed ) return ;
  1166. }
  1167. break;
  1168. default :
  1169. goto loop34;
  1170. }
  1171. } while (YES);
  1172. loop34: ;
  1173. // Fuzzy.g:68:17: ( '.*' )? // block
  1174. NSInteger alt35=2;
  1175. NSInteger LA35_0 = [input LA:1];
  1176. if ( (LA35_0=='.') ) {
  1177. alt35=1;
  1178. }
  1179. switch (alt35) {
  1180. case 1 : ;
  1181. // Fuzzy.g:68:17: '.*' // alt
  1182. {
  1183. [self matchString:@".*"]; if ( state.failed ) return ;
  1184. }
  1185. break;
  1186. }
  1187. }
  1188. }
  1189. @finally {
  1190. //
  1191. /* my stuff */
  1192. /* Terence's stuff */
  1193. }
  1194. return;
  1195. }
  1196. /* $ANTLR end "QIDStar" */
  1197. // $ANTLR start "TYPE"
  1198. - (void) mTYPE
  1199. {
  1200. //
  1201. /* my ruleScopeSetUp */
  1202. /* Terence's stuff */
  1203. @try {
  1204. // Fuzzy.g:72:5: ( QID ( '[]' )? ) // ruleBlockSingleAlt
  1205. // Fuzzy.g:72:9: QID ( '[]' )? // alt
  1206. {
  1207. [self mQID]; if ( state.failed ) return ;
  1208. // Fuzzy.g:72:13: ( '[]' )? // block
  1209. NSInteger alt36=2;
  1210. NSInteger LA36_0 = [input LA:1];
  1211. if ( (LA36_0=='[') ) {
  1212. alt36=1;
  1213. }
  1214. switch (alt36) {
  1215. case 1 : ;
  1216. // Fuzzy.g:72:13: '[]' // alt
  1217. {
  1218. [self matchString:@"[]"]; if ( state.failed ) return ;
  1219. }
  1220. break;
  1221. }
  1222. }
  1223. }
  1224. @finally {
  1225. //
  1226. /* my stuff */
  1227. /* Terence's stuff */
  1228. }
  1229. return;
  1230. }
  1231. /* $ANTLR end "TYPE" */
  1232. // $ANTLR start "ARG"
  1233. - (void) mARG
  1234. {
  1235. //
  1236. /* my ruleScopeSetUp */
  1237. /* Terence's stuff */
  1238. @try {
  1239. // Fuzzy.g:76:5: ( TYPE WS ID ) // ruleBlockSingleAlt
  1240. // Fuzzy.g:76:9: TYPE WS ID // alt
  1241. {
  1242. [self mTYPE]; if ( state.failed ) return ;
  1243. [self mWS]; if ( state.failed ) return ;
  1244. [self mID]; if ( state.failed ) return ;
  1245. }
  1246. }
  1247. @finally {
  1248. //
  1249. /* my stuff */
  1250. /* Terence's stuff */
  1251. }
  1252. return;
  1253. }
  1254. /* $ANTLR end "ARG" */
  1255. // $ANTLR start "ID"
  1256. - (void) mID
  1257. {
  1258. //
  1259. /* my ruleScopeSetUp */
  1260. /* Terence's stuff */
  1261. @try {
  1262. // Fuzzy.g:80:5: ( ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* ) // ruleBlockSingleAlt
  1263. // Fuzzy.g:80:9: ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* // alt
  1264. {
  1265. if ((([input LA:1] >= 'A') && ([input LA:1] <= 'Z'))||[input LA:1] == '_'||(([input LA:1] >= 'a') && ([input LA:1] <= 'z'))) {
  1266. [input consume];
  1267. state.failed = NO;
  1268. } else {
  1269. if ( state.backtracking > 0 ) { state.failed = YES; return ; }
  1270. ANTLRMismatchedSetException *mse = [ANTLRMismatchedSetException newException:nil stream:input];
  1271. [self recover:mse];
  1272. @throw mse;
  1273. }
  1274. do {
  1275. NSInteger alt37=2;
  1276. NSInteger LA37_0 = [input LA:1];
  1277. if ( ((LA37_0 >= '0' && LA37_0 <= '9')||(LA37_0 >= 'A' && LA37_0 <= 'Z')||LA37_0=='_'||(LA37_0 >= 'a' && LA37_0 <= 'z')) ) {
  1278. alt37=1;
  1279. }
  1280. switch (alt37) {
  1281. case 1 : ;
  1282. // Fuzzy.g: // alt
  1283. {
  1284. if ((([input LA:1] >= '0') && ([input LA:1] <= '9'))||(([input LA:1] >= 'A') && ([input LA:1] <= 'Z'))||[input LA:1] == '_'||(([input LA:1] >= 'a') && ([input LA:1] <= 'z'))) {
  1285. [input consume];
  1286. state.failed = NO;
  1287. } else {
  1288. if ( state.backtracking > 0 ) { state.failed = YES; return ; }
  1289. ANTLRMismatchedSetException *mse = [ANTLRMismatchedSetException newException:nil stream:input];
  1290. [self recover:mse];
  1291. @throw mse;
  1292. }
  1293. }
  1294. break;
  1295. default :
  1296. goto loop37;
  1297. }
  1298. } while (YES);
  1299. loop37: ;
  1300. }
  1301. }
  1302. @finally {
  1303. //
  1304. /* my stuff */
  1305. /* Terence's stuff */
  1306. }
  1307. return;
  1308. }
  1309. /* $ANTLR end "ID" */
  1310. // $ANTLR start "ESC"
  1311. - (void) mESC
  1312. {
  1313. //
  1314. /* my ruleScopeSetUp */
  1315. /* Terence's stuff */
  1316. @try {
  1317. // Fuzzy.g:84:5: ( '\\\\' ( '\"' | '\\'' | '\\\\' ) ) // ruleBlockSingleAlt
  1318. // Fuzzy.g:84:7: '\\\\' ( '\"' | '\\'' | '\\\\' ) // alt
  1319. {
  1320. [self matchChar:'\\']; if ( state.failed ) return ;
  1321. if ([input LA:1] == '"'||[input LA:1] == '\''||[input LA:1] == '\\') {
  1322. [input consume];
  1323. state.failed = NO;
  1324. } else {
  1325. if ( state.backtracking > 0 ) { state.failed = YES; return ; }
  1326. ANTLRMismatchedSetException *mse = [ANTLRMismatchedSetException newException:nil stream:input];
  1327. [self recover:mse];
  1328. @throw mse;
  1329. }
  1330. }
  1331. }
  1332. @finally {
  1333. //
  1334. /* my stuff */
  1335. /* Terence's stuff */
  1336. }
  1337. return;
  1338. }
  1339. /* $ANTLR end "ESC" */
  1340. - (void) mTokens
  1341. {
  1342. // Fuzzy.g:1:39: ( IMPORT | RETURN | CLASS | METHOD | FIELD | STAT | CALL | COMMENT | SL_COMMENT | STRING | CHAR | WS ) //ruleblock
  1343. NSInteger alt38=12;
  1344. unichar charLA38 = [input LA:1];
  1345. switch (charLA38) {
  1346. case 'i': ;
  1347. {
  1348. NSInteger LA38_1 = [input LA:2];
  1349. if ( ([self evaluateSyntacticPredicate:@selector(synpred1_Fuzzy_fragment)]) ) {
  1350. alt38=1;
  1351. }
  1352. else if ( ([self evaluateSyntacticPredicate:@selector(synpred4_Fuzzy_fragment)]) ) {
  1353. alt38=4;
  1354. }
  1355. else if ( ([self evaluateSyntacticPredicate:@selector(synpred5_Fuzzy_fragment)]) ) {
  1356. alt38=5;
  1357. }
  1358. else if ( ([self evaluateSyntacticPredicate:@selector(synpred6_Fuzzy_fragment)]) ) {
  1359. alt38=6;
  1360. }
  1361. else if ( ([self evaluateSyntacticPredicate:@selector(synpred7_Fuzzy_fragment)]) ) {
  1362. alt38=7;
  1363. }
  1364. else {
  1365. if ( state.backtracking > 0 ) { state.failed = YES; return ; }
  1366. ANTLRNoViableAltException *nvae = [ANTLRNoViableAltException newException:38 state:1 stream:input];
  1367. nvae.c = LA38_1;
  1368. @throw nvae;
  1369. }
  1370. }
  1371. break;
  1372. case 'r': ;
  1373. {
  1374. NSInteger LA38_7 = [input LA:2];
  1375. if ( ([self evaluateSyntacticPredicate:@selector(synpred2_Fuzzy_fragment)]) ) {
  1376. alt38=2;
  1377. }
  1378. else if ( ([self evaluateSyntacticPredicate:@selector(synpred4_Fuzzy_fragment)]) ) {
  1379. alt38=4;
  1380. }
  1381. else if ( ([self evaluateSyntacticPredicate:@selector(synpred5_Fuzzy_fragment)]) ) {
  1382. alt38=5;
  1383. }
  1384. else if ( ([self evaluateSyntacticPredicate:@selector(synpred7_Fuzzy_fragment)]) ) {
  1385. alt38=7;
  1386. }
  1387. else {
  1388. if ( state.backtracking > 0 ) { state.failed = YES; return ; }
  1389. ANTLRNoViableAltException *nvae = [ANTLRNoViableAltException newException:38 state:7 stream:input];
  1390. nvae.c = LA38_7;
  1391. @throw nvae;
  1392. }
  1393. }
  1394. break;
  1395. case 'c': ;
  1396. {
  1397. NSInteger LA38_9 = [input LA:2];
  1398. if ( ([self evaluateSyntacticPredicate:@selector(synpred3_Fuzzy_fragment)]) ) {
  1399. alt38=3;
  1400. }
  1401. else if ( ([self evaluateSyntacticPredicate:@selector(synpred4_Fuzzy_fragment)]) ) {
  1402. alt38=4;
  1403. }
  1404. else if ( ([self evaluateSyntacticPredicate:@selector(synpred5_Fuzzy_fragment)]) ) {
  1405. alt38=5;
  1406. }
  1407. else if ( ([self evaluateSyntacticPredicate:@selector(synpred7_Fuzzy_fragment)]) ) {
  1408. alt38=7;
  1409. }
  1410. else {
  1411. if ( state.backtracking > 0 ) { state.failed = YES; return ; }
  1412. ANTLRNoViableAltException *nvae = [ANTLRNoViableAltException newException:38 state:9 stream:input];
  1413. nvae.c = LA38_9;
  1414. @throw nvae;
  1415. }
  1416. }
  1417. break;
  1418. case 'f': ;
  1419. case 's': ;
  1420. case 'w': ;
  1421. {
  1422. NSInteger LA38_11 = [input LA:2];
  1423. if ( ([self evaluateSyntacticPredicate:@selector(synpred4_Fuzzy_fragment)]) ) {
  1424. alt38=4;
  1425. }
  1426. else if ( ([self evaluateSyntacticPredicate:@selector(synpred5_Fuzzy_fragment)]) ) {
  1427. alt38=5;
  1428. }
  1429. else if ( ([self evaluateSyntacticPredicate:@selector(synpred6_Fuzzy_fragment)]) ) {
  1430. alt38=6;
  1431. }
  1432. else if ( ([self evaluateSyntacticPredicate:@selector(s