Home | History | Annotate | Download | only in fuzzy
      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 
     17 /* -----------------------------------------
     18  * Include the ANTLR3 generated header file.
     19  */
     20 #import "Fuzzy.h"
     21 /* ----------------------------------------- */
     22 
     23 
     24 /* ============================================================================= */
     25 /* =============================================================================
     26  * Start of recognizer
     27  */
     28 
     29 /** As per Terence: No returns for lexer rules! */
     30 @implementation Fuzzy // line 330
     31 
     32 + (void) initialize
     33 {
     34     [ANTLRBaseRecognizer setGrammarFileName:@"Fuzzy.g"];
     35 }
     36 
     37 + (NSString *) tokenNameForType:(NSInteger)aTokenType
     38 {
     39     return [[self getTokenNames] objectAtIndex:aTokenType];
     40 }
     41 
     42 + (Fuzzy *)newFuzzyWithCharStream:(id<ANTLRCharStream>)anInput
     43 {
     44     return [[Fuzzy alloc] initWithCharStream:anInput];
     45 }
     46 
     47 - (id) initWithCharStream:(id<ANTLRCharStream>)anInput
     48 {
     49     self = [super initWithCharStream:anInput State:[[ANTLRRecognizerSharedState newANTLRRecognizerSharedStateWithRuleLen:30+1] retain]];
     50     if ( self != nil ) {
     51         SEL synpred9_FuzzySelector = @selector(synpred9_Fuzzy_fragment);
     52 
     53         SEL synpred2_FuzzySelector = @selector(synpred2_Fuzzy_fragment);
     54 
     55         SEL synpred7_FuzzySelector = @selector(synpred7_Fuzzy_fragment);
     56 
     57         SEL synpred4_FuzzySelector = @selector(synpred4_Fuzzy_fragment);
     58 
     59         SEL synpred8_FuzzySelector = @selector(synpred8_Fuzzy_fragment);
     60 
     61         SEL synpred6_FuzzySelector = @selector(synpred6_Fuzzy_fragment);
     62 
     63         SEL synpred5_FuzzySelector = @selector(synpred5_Fuzzy_fragment);
     64 
     65         SEL synpred3_FuzzySelector = @selector(synpred3_Fuzzy_fragment);
     66 
     67         SEL synpred1_FuzzySelector = @selector(synpred1_Fuzzy_fragment);
     68 
     69     }
     70     return self;
     71 }
     72 
     73 - (void) dealloc
     74 {
     75     [super dealloc];
     76 }
     77 
     78 /* ObjC Start of actions.lexer.methods */
     79 /* ObjC end of actions.lexer.methods */
     80 /* ObjC start methods() */
     81 /* ObjC end methods() */
     82 
     83 - (id<ANTLRToken>) nextToken
     84 {
     85     while (YES) {
     86         if ( [input LA:1] == ANTLRCharStreamEOF ) {
     87             return [ANTLRCommonToken eofToken];
     88         }
     89         state.token = nil;
     90         state.channel = ANTLRTokenChannelDefault;
     91         state.tokenStartCharIndex = input.index;
     92         state.tokenStartCharPositionInLine = input.charPositionInLine;
     93         state.tokenStartLine = input.line;
     94         state.text = nil;
     95         @try {
     96             NSInteger m = [input mark];
     97             state.backtracking = 1; /* means we won't throw slow exception */
     98             state.failed = NO;
     99             [self mTokens];
    100             state.backtracking = 0;
    101             /* mTokens backtracks with synpred at backtracking==2
    102                and we set the synpredgate to allow actions at level 1. */
    103             if ( state.failed ) {
    104                 [input rewind:m];
    105                 [input consume]; /* advance one char and try again */
    106             } else {
    107                 [self emit];
    108                 return state.token;
    109             }
    110         }
    111         @catch (ANTLRRecognitionException *re) {
    112             // shouldn't happen in backtracking mode, but...
    113             [self reportError:re];
    114             [self recover:re];
    115         }
    116     }
    117 }
    118 
    119 - (void)memoize:(id<ANTLRIntStream>)anInput
    120       RuleIndex:(NSInteger)ruleIndex
    121      StartIndex:(NSInteger)ruleStartIndex
    122 {
    123     if ( state.backtracking > 1 ) [super memoize:anInput RuleIndex:ruleIndex StartIndex:ruleStartIndex];
    124 }
    125 
    126 - (BOOL)alreadyParsedRule:(id<ANTLRIntStream>)anInput RuleIndex:(NSInteger)ruleIndex
    127 {
    128     if ( state.backtracking > 1 ) return [super alreadyParsedRule:anInput RuleIndex:ruleIndex];
    129     return NO;
    130 }
    131 /* Start of Rules */
    132 // $ANTLR start "IMPORT"
    133 - (void) mIMPORT
    134 {
    135     //
    136     /* my ruleScopeSetUp */
    137     /* Terence's stuff */
    138 
    139     @try {
    140         NSInteger _type = IMPORT;
    141         NSInteger _channel = ANTLRTokenChannelDefault;
    142         ANTLRCommonToken *name=nil;
    143 
    144         // Fuzzy.g:5:2: ( 'import' WS name= QIDStar ( WS )? ';' ) // ruleBlockSingleAlt
    145         // Fuzzy.g:5:4: 'import' WS name= QIDStar ( WS )? ';' // alt
    146         {
    147         [self matchString:@"import"]; if ( state.failed ) return ;
    148 
    149 
    150 
    151         [self mWS]; if ( state.failed ) return ;
    152 
    153 
    154 
    155         NSInteger nameStart31 = input.index;
    156         [self mQIDStar]; if ( state.failed ) return ;
    157 
    158         name = [[ANTLRCommonToken newToken:input Type:ANTLRTokenTypeInvalid Channel:ANTLRTokenChannelDefault Start:nameStart31 Stop:input.index-1] retain];
    159         name.line = self.line;
    160 
    161 
    162         // Fuzzy.g:5:29: ( WS )? // block
    163         NSInteger alt1=2;
    164         NSInteger LA1_0 = [input LA:1];
    165 
    166         if ( ((LA1_0 >= '\t' && LA1_0 <= '\n')||LA1_0==' ') ) {
    167             alt1=1;
    168         }
    169         switch (alt1) {
    170             case 1 : ;
    171                 // Fuzzy.g:5:29: WS // alt
    172                 {
    173                 [self mWS]; if ( state.failed ) return ;
    174 
    175 
    176 
    177                 }
    178                 break;
    179 
    180         }
    181 
    182 
    183         [self matchChar:';']; if ( state.failed ) return ;
    184 
    185 
    186         }
    187 
    188         // token+rule list labels
    189 
    190         state.type = _type;
    191         state.channel = _channel;
    192     }
    193     @finally {
    194         //
    195         /* my stuff */
    196         /* Terence's stuff */
    197 
    198     }
    199     return;
    200 }
    201 /* $ANTLR end "IMPORT" */
    202 
    203 // $ANTLR start "RETURN"
    204 - (void) mRETURN
    205 {
    206     //
    207     /* my ruleScopeSetUp */
    208     /* Terence's stuff */
    209 
    210     @try {
    211         NSInteger _type = RETURN;
    212         NSInteger _channel = ANTLRTokenChannelDefault;
    213         // Fuzzy.g:10:2: ( 'return' ( options {greedy=false; } : . )* ';' ) // ruleBlockSingleAlt
    214         // Fuzzy.g:10:4: 'return' ( options {greedy=false; } : . )* ';' // alt
    215         {
    216         [self matchString:@"return"]; if ( state.failed ) return ;
    217 
    218 
    219 
    220         do {
    221             NSInteger alt2=2;
    222             NSInteger LA2_0 = [input LA:1];
    223             if ( (LA2_0==';') ) {
    224                 alt2=2;
    225             }
    226             else if ( ((LA2_0 >= 0x0000 && LA2_0 <= ':')||(LA2_0 >= '<' && LA2_0 <= 0xFFFF)) ) {
    227                 alt2=1;
    228             }
    229 
    230 
    231             switch (alt2) {
    232                 case 1 : ;
    233                     // Fuzzy.g:10:38: . // alt
    234                     {
    235                     [self matchAny]; if ( state.failed ) return ;
    236 
    237 
    238                     }
    239                     break;
    240 
    241                 default :
    242                     goto loop2;
    243             }
    244         } while (YES);
    245         loop2: ;
    246 
    247 
    248         [self matchChar:';']; if ( state.failed ) return ;
    249 
    250 
    251         }
    252 
    253         // token+rule list labels
    254 
    255         state.type = _type;
    256         state.channel = _channel;
    257     }
    258     @finally {
    259         //
    260         /* my stuff */
    261         /* Terence's stuff */
    262 
    263     }
    264     return;
    265 }
    266 /* $ANTLR end "RETURN" */
    267 
    268 // $ANTLR start "CLASS"
    269 - (void) mCLASS
    270 {
    271     //
    272     /* my ruleScopeSetUp */
    273     /* Terence's stuff */
    274 
    275     @try {
    276         NSInteger _type = CLASS;
    277         NSInteger _channel = ANTLRTokenChannelDefault;
    278         ANTLRCommonToken *name=nil;
    279 
    280         // Fuzzy.g:14:2: ( 'class' WS name= ID ( WS )? ( 'extends' WS QID ( WS )? )? ( 'implements' WS QID ( WS )? ( ',' ( WS )? QID ( WS )? )* )? '{' ) // ruleBlockSingleAlt
    281         // Fuzzy.g:14:4: 'class' WS name= ID ( WS )? ( 'extends' WS QID ( WS )? )? ( 'implements' WS QID ( WS )? ( ',' ( WS )? QID ( WS )? )* )? '{' // alt
    282         {
    283         [self matchString:@"class"]; if ( state.failed ) return ;
    284 
    285 
    286 
    287         [self mWS]; if ( state.failed ) return ;
    288 
    289 
    290 
    291         NSInteger nameStart81 = input.index;
    292         [self mID]; if ( state.failed ) return ;
    293 
    294         name = [[ANTLRCommonToken newToken:input Type:ANTLRTokenTypeInvalid Channel:ANTLRTokenChannelDefault Start:nameStart81 Stop:input.index-1] retain];
    295         name.line = self.line;
    296 
    297 
    298         // Fuzzy.g:14:23: ( WS )? // block
    299         NSInteger alt3=2;
    300         NSInteger LA3_0 = [input LA:1];
    301 
    302         if ( ((LA3_0 >= '\t' && LA3_0 <= '\n')||LA3_0==' ') ) {
    303             alt3=1;
    304         }
    305         switch (alt3) {
    306             case 1 : ;
    307                 // Fuzzy.g:14:23: WS // alt
    308                 {
    309                 [self mWS]; if ( state.failed ) return ;
    310 
    311 
    312 
    313                 }
    314                 break;
    315 
    316         }
    317 
    318 
    319         // Fuzzy.g:14:27: ( 'extends' WS QID ( WS )? )? // block
    320         NSInteger alt5=2;
    321         NSInteger LA5_0 = [input LA:1];
    322 
    323         if ( (LA5_0=='e') ) {
    324             alt5=1;
    325         }
    326         switch (alt5) {
    327             case 1 : ;
    328                 // Fuzzy.g:14:28: 'extends' WS QID ( WS )? // alt
    329                 {
    330                 [self matchString:@"extends"]; if ( state.failed ) return ;
    331 
    332 
    333 
    334                 [self mWS]; if ( state.failed ) return ;
    335 
    336 
    337 
    338                 [self mQID]; if ( state.failed ) return ;
    339 
    340 
    341 
    342                 // Fuzzy.g:14:45: ( WS )? // block
    343                 NSInteger alt4=2;
    344                 NSInteger LA4_0 = [input LA:1];
    345 
    346                 if ( ((LA4_0 >= '\t' && LA4_0 <= '\n')||LA4_0==' ') ) {
    347                     alt4=1;
    348                 }
    349                 switch (alt4) {
    350                     case 1 : ;
    351                         // Fuzzy.g:14:45: WS // alt
    352                         {
    353                         [self mWS]; if ( state.failed ) return ;
    354 
    355 
    356 
    357                         }
    358                         break;
    359 
    360                 }
    361 
    362 
    363                 }
    364                 break;
    365 
    366         }
    367 
    368 
    369         // Fuzzy.g:15:3: ( 'implements' WS QID ( WS )? ( ',' ( WS )? QID ( WS )? )* )? // block
    370         NSInteger alt10=2;
    371         NSInteger LA10_0 = [input LA:1];
    372 
    373         if ( (LA10_0=='i') ) {
    374             alt10=1;
    375         }
    376         switch (alt10) {
    377             case 1 : ;
    378                 // Fuzzy.g:15:4: 'implements' WS QID ( WS )? ( ',' ( WS )? QID ( WS )? )* // alt
    379                 {
    380                 [self matchString:@"implements"]; if ( state.failed ) return ;
    381 
    382 
    383 
    384                 [self mWS]; if ( state.failed ) return ;
    385 
    386 
    387 
    388                 [self mQID]; if ( state.failed ) return ;
    389 
    390 
    391 
    392                 // Fuzzy.g:15:24: ( WS )? // block
    393                 NSInteger alt6=2;
    394                 NSInteger LA6_0 = [input LA:1];
    395 
    396                 if ( ((LA6_0 >= '\t' && LA6_0 <= '\n')||LA6_0==' ') ) {
    397                     alt6=1;
    398                 }
    399                 switch (alt6) {
    400                     case 1 : ;
    401                         // Fuzzy.g:15:24: WS // alt
    402                         {
    403                         [self mWS]; if ( state.failed ) return ;
    404 
    405 
    406 
    407                         }
    408                         break;
    409 
    410                 }
    411 
    412 
    413                 do {
    414                     NSInteger alt9=2;
    415                     NSInteger LA9_0 = [input LA:1];
    416                     if ( (LA9_0==',') ) {
    417                         alt9=1;
    418                     }
    419 
    420 
    421                     switch (alt9) {
    422                         case 1 : ;
    423                             // Fuzzy.g:15:29: ',' ( WS )? QID ( WS )? // alt
    424                             {
    425                             [self matchChar:',']; if ( state.failed ) return ;
    426 
    427 
    428                             // Fuzzy.g:15:33: ( WS )? // block
    429                             NSInteger alt7=2;
    430                             NSInteger LA7_0 = [input LA:1];
    431 
    432                             if ( ((LA7_0 >= '\t' && LA7_0 <= '\n')||LA7_0==' ') ) {
    433                                 alt7=1;
    434                             }
    435                             switch (alt7) {
    436                                 case 1 : ;
    437                                     // Fuzzy.g:15:33: WS // alt
    438                                     {
    439                                     [self mWS]; if ( state.failed ) return ;
    440 
    441 
    442 
    443                                     }
    444                                     break;
    445 
    446                             }
    447 
    448 
    449                             [self mQID]; if ( state.failed ) return ;
    450 
    451 
    452 
    453                             // Fuzzy.g:15:41: ( WS )? // block
    454                             NSInteger alt8=2;
    455                             NSInteger LA8_0 = [input LA:1];
    456 
    457                             if ( ((LA8_0 >= '\t' && LA8_0 <= '\n')||LA8_0==' ') ) {
    458                                 alt8=1;
    459                             }
    460                             switch (alt8) {
    461                                 case 1 : ;
    462                                     // Fuzzy.g:15:41: WS // alt
    463                                     {
    464                                     [self mWS]; if ( state.failed ) return ;
    465 
    466 
    467 
    468                                     }
    469                                     break;
    470 
    471                             }
    472 
    473 
    474                             }
    475                             break;
    476 
    477                         default :
    478                             goto loop9;
    479                     }
    480                 } while (YES);
    481                 loop9: ;
    482 
    483 
    484                 }
    485                 break;
    486 
    487         }
    488 
    489 
    490         [self matchChar:'{']; if ( state.failed ) return ;
    491 
    492 
    493         if ( state.backtracking == 1 ) {
    494             NSLog(@"found class %@", (name!=nil?name.text:nil));
    495         }
    496 
    497 
    498         }
    499 
    500         // token+rule list labels
    501 
    502         state.type = _type;
    503         state.channel = _channel;
    504     }
    505     @finally {
    506         //
    507         /* my stuff */
    508         /* Terence's stuff */
    509 
    510     }
    511     return;
    512 }
    513 /* $ANTLR end "CLASS" */
    514 
    515 // $ANTLR start "METHOD"
    516 - (void) mMETHOD
    517 {
    518     //
    519     /* my ruleScopeSetUp */
    520     /* Terence's stuff */
    521 
    522     @try {
    523         NSInteger _type = METHOD;
    524         NSInteger _channel = ANTLRTokenChannelDefault;
    525         ANTLRCommonToken *name=nil;
    526 
    527         // Fuzzy.g:20:5: ( TYPE WS name= ID ( WS )? '(' ( ARG ( WS )? ( ',' ( WS )? ARG ( WS )? )* )? ')' ( WS )? ( 'throws' WS QID ( WS )? ( ',' ( WS )? QID ( WS )? )* )? '{' ) // ruleBlockSingleAlt
    528         // Fuzzy.g:20:9: TYPE WS name= ID ( WS )? '(' ( ARG ( WS )? ( ',' ( WS )? ARG ( WS )? )* )? ')' ( WS )? ( 'throws' WS QID ( WS )? ( ',' ( WS )? QID ( WS )? )* )? '{' // alt
    529         {
    530         [self mTYPE]; if ( state.failed ) return ;
    531 
    532 
    533 
    534         [self mWS]; if ( state.failed ) return ;
    535 
    536 
    537 
    538         NSInteger nameStart158 = input.index;
    539         [self mID]; if ( state.failed ) return ;
    540 
    541         name = [[ANTLRCommonToken newToken:input Type:ANTLRTokenTypeInvalid Channel:ANTLRTokenChannelDefault Start:nameStart158 Stop:input.index-1] retain];
    542         name.line = self.line;
    543 
    544 
    545         // Fuzzy.g:20:25: ( WS )? // block
    546         NSInteger alt11=2;
    547         NSInteger LA11_0 = [input LA:1];
    548 
    549         if ( ((LA11_0 >= '\t' && LA11_0 <= '\n')||LA11_0==' ') ) {
    550             alt11=1;
    551         }
    552         switch (alt11) {
    553             case 1 : ;
    554                 // Fuzzy.g:20:25: WS // alt
    555                 {
    556                 [self mWS]; if ( state.failed ) return ;
    557 
    558 
    559 
    560                 }
    561                 break;
    562 
    563         }
    564 
    565 
    566         [self matchChar:'(']; if ( state.failed ) return ;
    567 
    568 
    569         // Fuzzy.g:20:33: ( ARG ( WS )? ( ',' ( WS )? ARG ( WS )? )* )? // block
    570         NSInteger alt16=2;
    571         NSInteger LA16_0 = [input LA:1];
    572 
    573         if ( ((LA16_0 >= 'A' && LA16_0 <= 'Z')||LA16_0=='_'||(LA16_0 >= 'a' && LA16_0 <= 'z')) ) {
    574             alt16=1;
    575         }
    576         switch (alt16) {
    577             case 1 : ;
    578                 // Fuzzy.g:20:35: ARG ( WS )? ( ',' ( WS )? ARG ( WS )? )* // alt
    579                 {
    580                 [self mARG]; if ( state.failed ) return ;
    581 
    582 
    583 
    584                 // Fuzzy.g:20:39: ( WS )? // block
    585                 NSInteger alt12=2;
    586                 NSInteger LA12_0 = [input LA:1];
    587 
    588                 if ( ((LA12_0 >= '\t' && LA12_0 <= '\n')||LA12_0==' ') ) {
    589                     alt12=1;
    590                 }
    591                 switch (alt12) {
    592                     case 1 : ;
    593                         // Fuzzy.g:20:39: WS // alt
    594                         {
    595                         [self mWS]; if ( state.failed ) return ;
    596 
    597 
    598 
    599                         }
    600                         break;
    601 
    602                 }
    603 
    604 
    605                 do {
    606                     NSInteger alt15=2;
    607                     NSInteger LA15_0 = [input LA:1];
    608                     if ( (LA15_0==',') ) {
    609                         alt15=1;
    610                     }
    611 
    612 
    613                     switch (alt15) {
    614                         case 1 : ;
    615                             // Fuzzy.g:20:44: ',' ( WS )? ARG ( WS )? // alt
    616                             {
    617                             [self matchChar:',']; if ( state.failed ) return ;
    618 
    619 
    620                             // Fuzzy.g:20:48: ( WS )? // block
    621                             NSInteger alt13=2;
    622                             NSInteger LA13_0 = [input LA:1];
    623 
    624                             if ( ((LA13_0 >= '\t' && LA13_0 <= '\n')||LA13_0==' ') ) {
    625                                 alt13=1;
    626                             }
    627                             switch (alt13) {
    628                                 case 1 : ;
    629                                     // Fuzzy.g:20:48: WS // alt
    630                                     {
    631                                     [self mWS]; if ( state.failed ) return ;
    632 
    633 
    634 
    635                                     }
    636                                     break;
    637 
    638                             }
    639 
    640 
    641                             [self mARG]; if ( state.failed ) return ;
    642 
    643 
    644 
    645                             // Fuzzy.g:20:56: ( WS )? // block
    646                             NSInteger alt14=2;
    647                             NSInteger LA14_0 = [input LA:1];
    648 
    649                             if ( ((LA14_0 >= '\t' && LA14_0 <= '\n')||LA14_0==' ') ) {
    650                                 alt14=1;
    651                             }
    652                             switch (alt14) {
    653                                 case 1 : ;
    654                                     // Fuzzy.g:20:56: WS // alt
    655                                     {
    656                                     [self mWS]; if ( state.failed ) return ;
    657 
    658 
    659 
    660                                     }
    661                                     break;
    662 
    663                             }
    664 
    665 
    666                             }
    667                             break;
    668 
    669                         default :
    670                             goto loop15;
    671                     }
    672                 } while (YES);
    673                 loop15: ;
    674 
    675 
    676                 }
    677                 break;
    678 
    679         }
    680 
    681 
    682         [self matchChar:')']; if ( state.failed ) return ;
    683 
    684 
    685         // Fuzzy.g:20:69: ( WS )? // block
    686         NSInteger alt17=2;
    687         NSInteger LA17_0 = [input LA:1];
    688 
    689         if ( ((LA17_0 >= '\t' && LA17_0 <= '\n')||LA17_0==' ') ) {
    690             alt17=1;
    691         }
    692         switch (alt17) {
    693             case 1 : ;
    694                 // Fuzzy.g:20:69: WS // alt
    695                 {
    696                 [self mWS]; if ( state.failed ) return ;
    697 
    698 
    699 
    700                 }
    701                 break;
    702 
    703         }
    704 
    705 
    706         // Fuzzy.g:21:8: ( 'throws' WS QID ( WS )? ( ',' ( WS )? QID ( WS )? )* )? // block
    707         NSInteger alt22=2;
    708         NSInteger LA22_0 = [input LA:1];
    709 
    710         if ( (LA22_0=='t') ) {
    711             alt22=1;
    712         }
    713         switch (alt22) {
    714             case 1 : ;
    715                 // Fuzzy.g:21:9: 'throws' WS QID ( WS )? ( ',' ( WS )? QID ( WS )? )* // alt
    716                 {
    717                 [self matchString:@"throws"]; if ( state.failed ) return ;
    718 
    719 
    720 
    721                 [self mWS]; if ( state.failed ) return ;
    722 
    723 
    724 
    725                 [self mQID]; if ( state.failed ) return ;
    726 
    727 
    728 
    729                 // Fuzzy.g:21:25: ( WS )? // block
    730                 NSInteger alt18=2;
    731                 NSInteger LA18_0 = [input LA:1];
    732 
    733                 if ( ((LA18_0 >= '\t' && LA18_0 <= '\n')||LA18_0==' ') ) {
    734                     alt18=1;
    735                 }
    736                 switch (alt18) {
    737                     case 1 : ;
    738                         // Fuzzy.g:21:25: WS // alt
    739                         {
    740                         [self mWS]; if ( state.failed ) return ;
    741 
    742 
    743 
    744                         }
    745                         break;
    746 
    747                 }
    748 
    749 
    750                 do {
    751                     NSInteger alt21=2;
    752                     NSInteger LA21_0 = [input LA:1];
    753                     if ( (LA21_0==',') ) {
    754                         alt21=1;
    755                     }
    756 
    757 
    758                     switch (alt21) {
    759                         case 1 : ;
    760                             // Fuzzy.g:21:30: ',' ( WS )? QID ( WS )? // alt
    761                             {
    762                             [self matchChar:',']; if ( state.failed ) return ;
    763 
    764 
    765                             // Fuzzy.g:21:34: ( WS )? // block
    766                             NSInteger alt19=2;
    767                             NSInteger LA19_0 = [input LA:1];
    768 
    769                             if ( ((LA19_0 >= '\t' && LA19_0 <= '\n')||LA19_0==' ') ) {
    770                                 alt19=1;
    771                             }
    772                             switch (alt19) {
    773                                 case 1 : ;
    774                                     // Fuzzy.g:21:34: WS // alt
    775                                     {
    776                                     [self mWS]; if ( state.failed ) return ;
    777 
    778 
    779 
    780                                     }
    781                                     break;
    782 
    783                             }
    784 
    785 
    786                             [self mQID]; if ( state.failed ) return ;
    787 
    788 
    789 
    790                             // Fuzzy.g:21:42: ( WS )? // block
    791                             NSInteger alt20=2;
    792                             NSInteger LA20_0 = [input LA:1];
    793 
    794                             if ( ((LA20_0 >= '\t' && LA20_0 <= '\n')||LA20_0==' ') ) {
    795                                 alt20=1;
    796                             }
    797                             switch (alt20) {
    798                                 case 1 : ;
    799                                     // Fuzzy.g:21:42: WS // alt
    800                                     {
    801                                     [self mWS]; if ( state.failed ) return ;
    802 
    803 
    804 
    805                                     }
    806                                     break;
    807 
    808                             }
    809 
    810 
    811                             }
    812                             break;
    813 
    814                         default :
    815                             goto loop21;
    816                     }
    817                 } while (YES);
    818                 loop21: ;
    819 
    820 
    821                 }
    822                 break;
    823 
    824         }
    825 
    826 
    827         [self matchChar:'{']; if ( state.failed ) return ;
    828 
    829 
    830         if ( state.backtracking == 1 ) {
    831             NSLog(@"found method %@", (name!=nil?name.text:nil));
    832         }
    833 
    834 
    835         }
    836 
    837         // token+rule list labels
    838 
    839         state.type = _type;
    840         state.channel = _channel;
    841     }
    842     @finally {
    843         //
    844         /* my stuff */
    845         /* Terence's stuff */
    846 
    847     }
    848     return;
    849 }
    850 /* $ANTLR end "METHOD" */
    851 
    852 // $ANTLR start "FIELD"
    853 - (void) mFIELD
    854 {
    855     //
    856     /* my ruleScopeSetUp */
    857     /* Terence's stuff */
    858 
    859     @try {
    860         NSInteger _type = FIELD;
    861         NSInteger _channel = ANTLRTokenChannelDefault;
    862         ANTLRCommonToken *name=nil;
    863 
    864         // Fuzzy.g:26:5: ( TYPE WS name= ID ( '[]' )? ( WS )? ( ';' | '=' ) ) // ruleBlockSingleAlt
    865         // Fuzzy.g:26:9: TYPE WS name= ID ( '[]' )? ( WS )? ( ';' | '=' ) // alt
    866         {
    867         [self mTYPE]; if ( state.failed ) return ;
    868 
    869 
    870 
    871         [self mWS]; if ( state.failed ) return ;
    872 
    873 
    874 
    875         NSInteger nameStart261 = input.index;
    876         [self mID]; if ( state.failed ) return ;
    877 
    878         name = [[ANTLRCommonToken newToken:input Type:ANTLRTokenTypeInvalid Channel:ANTLRTokenChannelDefault Start:nameStart261 Stop:input.index-1] retain];
    879         name.line = self.line;
    880 
    881 
    882         // Fuzzy.g:26:25: ( '[]' )? // block
    883         NSInteger alt23=2;
    884         NSInteger LA23_0 = [input LA:1];
    885 
    886         if ( (LA23_0=='[') ) {
    887             alt23=1;
    888         }
    889         switch (alt23) {
    890             case 1 : ;
    891                 // Fuzzy.g:26:25: '[]' // alt
    892                 {
    893                 [self matchString:@"[]"]; if ( state.failed ) return ;
    894 
    895 
    896 
    897                 }
    898                 break;
    899 
    900         }
    901 
    902 
    903         // Fuzzy.g:26:31: ( WS )? // block
    904         NSInteger alt24=2;
    905         NSInteger LA24_0 = [input LA:1];
    906 
    907         if ( ((LA24_0 >= '\t' && LA24_0 <= '\n')||LA24_0==' ') ) {
    908             alt24=1;
    909         }
    910         switch (alt24) {
    911             case 1 : ;
    912                 // Fuzzy.g:26:31: WS // alt
    913                 {
    914                 [self mWS]; if ( state.failed ) return ;
    915 
    916 
    917 
    918                 }
    919                 break;
    920 
    921         }
    922 
    923 
    924         if ([input LA:1] == ';'||[input LA:1] == '=') {
    925             [input consume];
    926             state.failed = NO;
    927 
    928         } else {
    929             if ( state.backtracking > 0 ) { state.failed = YES; return ; }
    930 
    931             ANTLRMismatchedSetException *mse = [ANTLRMismatchedSetException newException:nil stream:input];
    932             [self recover:mse];
    933             @throw mse;
    934         }
    935 
    936 
    937         if ( state.backtracking == 1 ) {
    938             NSLog(@"found var %@", (name!=nil?name.text:nil));
    939         }
    940 
    941 
    942         }
    943 
    944         // token+rule list labels
    945 
    946         state.type = _type;
    947         state.channel = _channel;
    948     }
    949     @finally {
    950         //
    951         /* my stuff */
    952         /* Terence's stuff */
    953 
    954     }
    955     return;
    956 }
    957 /* $ANTLR end "FIELD" */
    958 
    959 // $ANTLR start "STAT"
    960 - (void) mSTAT
    961 {
    962     //
    963     /* my ruleScopeSetUp */
    964     /* Terence's stuff */
    965 
    966     @try {
    967         NSInteger _type = STAT;
    968         NSInteger _channel = ANTLRTokenChannelDefault;
    969         // Fuzzy.g:30:5: ( ( 'if' | 'while' | 'switch' | 'for' ) ( WS )? '(' ) // ruleBlockSingleAlt
    970         // Fuzzy.g:30:7: ( 'if' | 'while' | 'switch' | 'for' ) ( WS )? '(' // alt
    971         {
    972         // Fuzzy.g:30:7: ( 'if' | 'while' | 'switch' | 'for' ) // block
    973         NSInteger alt25=4;
    974         unichar charLA25 = [input LA:1];
    975         switch (charLA25) {
    976             case 'i': ;
    977                 {
    978                 alt25=1;
    979                 }
    980                 break;
    981             case 'w': ;
    982                 {
    983                 alt25=2;
    984                 }
    985                 break;
    986             case 's': ;
    987                 {
    988                 alt25=3;
    989                 }
    990                 break;
    991             case 'f': ;
    992                 {
    993                 alt25=4;
    994                 }
    995                 break;
    996 
    997         default: ;
    998             if ( state.backtracking > 0 ) { state.failed = YES; return ; }
    999 
   1000             ANTLRNoViableAltException *nvae = [ANTLRNoViableAltException newException:25 state:0 stream:input];
   1001             nvae.c = charLA25;
   1002             @throw nvae;
   1003 
   1004         }
   1005 
   1006         switch (alt25) {
   1007             case 1 : ;
   1008                 // Fuzzy.g:30:8: 'if' // alt
   1009                 {
   1010                 [self matchString:@"if"]; if ( state.failed ) return ;
   1011 
   1012 
   1013 
   1014                 }
   1015                 break;
   1016             case 2 : ;
   1017                 // Fuzzy.g:30:13: 'while' // alt
   1018                 {
   1019                 [self matchString:@"while"]; if ( state.failed ) return ;
   1020 
   1021 
   1022 
   1023                 }
   1024                 break;
   1025             case 3 : ;
   1026                 // Fuzzy.g:30:21: 'switch' // alt
   1027                 {
   1028                 [self matchString:@"switch"]; if ( state.failed ) return ;
   1029 
   1030 
   1031 
   1032                 }
   1033                 break;
   1034             case 4 : ;
   1035                 // Fuzzy.g:30:30: 'for' // alt
   1036                 {
   1037                 [self matchString:@"for"]; if ( state.failed ) return ;
   1038 
   1039 
   1040 
   1041                 }
   1042                 break;
   1043 
   1044         }
   1045 
   1046 
   1047         // Fuzzy.g:30:37: ( WS )? // block
   1048         NSInteger alt26=2;
   1049         NSInteger LA26_0 = [input LA:1];
   1050 
   1051         if ( ((LA26_0 >= '\t' && LA26_0 <= '\n')||LA26_0==' ') ) {
   1052             alt26=1;
   1053         }
   1054         switch (alt26) {
   1055             case 1 : ;
   1056                 // Fuzzy.g:30:37: WS // alt
   1057                 {
   1058                 [self mWS]; if ( state.failed ) return ;
   1059 
   1060 
   1061 
   1062                 }
   1063                 break;
   1064 
   1065         }
   1066 
   1067 
   1068         [self matchChar:'(']; if ( state.failed ) return ;
   1069 
   1070 
   1071         }
   1072 
   1073         // token+rule list labels
   1074 
   1075         state.type = _type;
   1076         state.channel = _channel;
   1077     }
   1078     @finally {
   1079         //
   1080         /* my stuff */
   1081         /* Terence's stuff */
   1082 
   1083     }
   1084     return;
   1085 }
   1086 /* $ANTLR end "STAT" */
   1087 
   1088 // $ANTLR start "CALL"
   1089 - (void) mCALL
   1090 {
   1091     //
   1092     /* my ruleScopeSetUp */
   1093     /* Terence's stuff */
   1094 
   1095     @try {
   1096         NSInteger _type = CALL;
   1097         NSInteger _channel = ANTLRTokenChannelDefault;
   1098         ANTLRCommonToken *name=nil;
   1099 
   1100         // Fuzzy.g:33:5: (name= QID ( WS )? '(' ) // ruleBlockSingleAlt
   1101         // Fuzzy.g:33:9: name= QID ( WS )? '(' // alt
   1102         {
   1103         NSInteger nameStart326 = input.index;
   1104         [self mQID]; if ( state.failed ) return ;
   1105 
   1106         name = [[ANTLRCommonToken newToken:input Type:ANTLRTokenTypeInvalid Channel:ANTLRTokenChannelDefault Start:nameStart326 Stop:input.index-1] retain];
   1107         name.line = self.line;
   1108 
   1109 
   1110         // Fuzzy.g:33:18: ( WS )? // block
   1111         NSInteger alt27=2;
   1112         NSInteger LA27_0 = [input LA:1];
   1113 
   1114         if ( ((LA27_0 >= '\t' && LA27_0 <= '\n')||LA27_0==' ') ) {
   1115             alt27=1;
   1116         }
   1117         switch (alt27) {
   1118             case 1 : ;
   1119                 // Fuzzy.g:33:18: WS // alt
   1120                 {
   1121                 [self mWS]; if ( state.failed ) return ;
   1122 
   1123 
   1124 
   1125                 }
   1126                 break;
   1127 
   1128         }
   1129 
   1130 
   1131         [self matchChar:'(']; if ( state.failed ) return ;
   1132 
   1133 
   1134         if ( state.backtracking == 1 ) {
   1135             /*ignore if this/super */ NSLog(@"found call %@",(name!=nil?name.text:nil));
   1136         }
   1137 
   1138 
   1139         }
   1140 
   1141         // token+rule list labels
   1142 
   1143         state.type = _type;
   1144         state.channel = _channel;
   1145     }
   1146     @finally {
   1147         //
   1148         /* my stuff */
   1149         /* Terence's stuff */
   1150 
   1151     }
   1152     return;
   1153 }
   1154 /* $ANTLR end "CALL" */
   1155 
   1156 // $ANTLR start "COMMENT"
   1157 - (void) mCOMMENT
   1158 {
   1159     //
   1160     /* my ruleScopeSetUp */
   1161     /* Terence's stuff */
   1162 
   1163     @try {
   1164         NSInteger _type = COMMENT;
   1165         NSInteger _channel = ANTLRTokenChannelDefault;
   1166         // Fuzzy.g:38:5: ( '/*' ( options {greedy=false; } : . )* '*/' ) // ruleBlockSingleAlt
   1167         // Fuzzy.g:38:9: '/*' ( options {greedy=false; } : . )* '*/' // alt
   1168         {
   1169         [self matchString:@"/*"]; if ( state.failed ) return ;
   1170 
   1171 
   1172 
   1173         do {
   1174             NSInteger alt28=2;
   1175             NSInteger LA28_0 = [input LA:1];
   1176             if ( (LA28_0=='*') ) {
   1177                 NSInteger LA28_1 = [input LA:2];
   1178                 if ( (LA28_1=='/') ) {
   1179                     alt28=2;
   1180                 }
   1181                 else if ( ((LA28_1 >= 0x0000 && LA28_1 <= '.')||(LA28_1 >= '0' && LA28_1 <= 0xFFFF)) ) {
   1182                     alt28=1;
   1183                 }
   1184 
   1185 
   1186             }
   1187             else if ( ((LA28_0 >= 0x0000 && LA28_0 <= ')')||(LA28_0 >= '+' && LA28_0 <= 0xFFFF)) ) {
   1188                 alt28=1;
   1189             }
   1190 
   1191 
   1192             switch (alt28) {
   1193                 case 1 : ;
   1194                     // Fuzzy.g:38:41: . // alt
   1195                     {
   1196                     [self matchAny]; if ( state.failed ) return ;
   1197 
   1198 
   1199                     }
   1200                     break;
   1201 
   1202                 default :
   1203                     goto loop28;
   1204             }
   1205         } while (YES);
   1206         loop28: ;
   1207 
   1208 
   1209         [self matchString:@"*/"]; if ( state.failed ) return ;
   1210 
   1211 
   1212 
   1213         if ( state.backtracking == 1 ) {
   1214             NSLog(@"found comment %@", [self text]);
   1215         }
   1216 
   1217 
   1218         }
   1219 
   1220         // token+rule list labels
   1221 
   1222         state.type = _type;
   1223         state.channel = _channel;
   1224     }
   1225     @finally {
   1226         //
   1227         /* my stuff */
   1228         /* Terence's stuff */
   1229 
   1230     }
   1231     return;
   1232 }
   1233 /* $ANTLR end "COMMENT" */
   1234 
   1235 // $ANTLR start "SL_COMMENT"
   1236 - (void) mSL_COMMENT
   1237 {
   1238     //
   1239     /* my ruleScopeSetUp */
   1240     /* Terence's stuff */
   1241 
   1242     @try {
   1243         NSInteger _type = SL_COMMENT;
   1244         NSInteger _channel = ANTLRTokenChannelDefault;
   1245         // Fuzzy.g:43:5: ( '//' ( options {greedy=false; } : . )* '\\n' ) // ruleBlockSingleAlt
   1246         // Fuzzy.g:43:9: '//' ( options {greedy=false; } : . )* '\\n' // alt
   1247         {
   1248         [self matchString:@"//"]; if ( state.failed ) return ;
   1249 
   1250 
   1251 
   1252         do {
   1253             NSInteger alt29=2;
   1254             NSInteger LA29_0 = [input LA:1];
   1255             if ( (LA29_0=='\n') ) {
   1256                 alt29=2;
   1257             }
   1258             else if ( ((LA29_0 >= 0x0000 && LA29_0 <= '\t')||(LA29_0 >= 0x000B && LA29_0 <= 0xFFFF)) ) {
   1259                 alt29=1;
   1260             }
   1261 
   1262 
   1263             switch (alt29) {
   1264                 case 1 : ;
   1265                     // Fuzzy.g:43:41: . // alt
   1266                     {
   1267                     [self matchAny]; if ( state.failed ) return ;
   1268 
   1269 
   1270                     }
   1271                     break;
   1272 
   1273                 default :
   1274                     goto loop29;
   1275             }
   1276         } while (YES);
   1277         loop29: ;
   1278 
   1279 
   1280         [self matchChar:'\n']; if ( state.failed ) return ;
   1281 
   1282 
   1283         if ( state.backtracking == 1 ) {
   1284             NSLog(@"found // comment %@", [self text]);
   1285         }
   1286 
   1287 
   1288         }
   1289 
   1290         // token+rule list labels
   1291 
   1292         state.type = _type;
   1293         state.channel = _channel;
   1294     }
   1295     @finally {
   1296         //
   1297         /* my stuff */
   1298         /* Terence's stuff */
   1299 
   1300     }
   1301     return;
   1302 }
   1303 /* $ANTLR end "SL_COMMENT" */
   1304 
   1305 // $ANTLR start "STRING"
   1306 - (void) mSTRING
   1307 {
   1308     //
   1309     /* my ruleScopeSetUp */
   1310     /* Terence's stuff */
   1311 
   1312     @try {
   1313         NSInteger _type = STRING;
   1314         NSInteger _channel = ANTLRTokenChannelDefault;
   1315         // Fuzzy.g:48:2: ( '\"' ( options {greedy=false; } : ESC | . )* '\"' ) // ruleBlockSingleAlt
   1316         // Fuzzy.g:48:4: '\"' ( options {greedy=false; } : ESC | . )* '\"' // alt
   1317         {
   1318         [self matchChar:'"']; if ( state.failed ) return ;
   1319 
   1320 
   1321         do {
   1322             NSInteger alt30=3;
   1323             NSInteger LA30_0 = [input LA:1];
   1324             if ( (LA30_0=='"') ) {
   1325                 alt30=3;
   1326             }
   1327             else if ( (LA30_0=='\\') ) {
   1328                 NSInteger LA30_2 = [input LA:2];
   1329                 if ( (LA30_2=='"') ) {
   1330                     alt30=1;
   1331                 }
   1332                 else if ( (LA30_2=='\\') ) {
   1333                     alt30=1;
   1334                 }
   1335                 else if ( (LA30_2=='\'') ) {
   1336                     alt30=1;
   1337                 }
   1338                 else if ( ((LA30_2 >= 0x0000 && LA30_2 <= '!')||(LA30_2 >= '#' && LA30_2 <= '&')||(LA30_2 >= '(' && LA30_2 <= '[')||(LA30_2 >= ']' && LA30_2 <= 0xFFFF)) ) {
   1339                     alt30=2;
   1340                 }
   1341 
   1342 
   1343             }
   1344             else if ( ((LA30_0 >= 0x0000 && LA30_0 <= '!')||(LA30_0 >= '#' && LA30_0 <= '[')||(LA30_0 >= ']' && LA30_0 <= 0xFFFF)) ) {
   1345                 alt30=2;
   1346             }
   1347 
   1348 
   1349             switch (alt30) {
   1350                 case 1 : ;
   1351                     // Fuzzy.g:48:34: ESC // alt
   1352                     {
   1353                     [self mESC]; if ( state.failed ) return ;
   1354 
   1355 
   1356 
   1357                     }
   1358                     break;
   1359                 case 2 : ;
   1360                     // Fuzzy.g:48:40: . // alt
   1361                     {
   1362                     [self matchAny]; if ( state.failed ) return ;
   1363 
   1364 
   1365                     }
   1366                     break;
   1367 
   1368                 default :
   1369                     goto loop30;
   1370             }
   1371         } while (YES);
   1372         loop30: ;
   1373 
   1374 
   1375         [self matchChar:'"']; if ( state.failed ) return ;
   1376 
   1377 
   1378         }
   1379 
   1380         // token+rule list labels
   1381 
   1382         state.type = _type;
   1383         state.channel = _channel;
   1384     }
   1385     @finally {
   1386         //
   1387         /* my stuff */
   1388         /* Terence's stuff */
   1389 
   1390     }
   1391     return;
   1392 }
   1393 /* $ANTLR end "STRING" */
   1394 
   1395 // $ANTLR start "CHAR"
   1396 - (void) mCHAR
   1397 {
   1398     //
   1399     /* my ruleScopeSetUp */
   1400     /* Terence's stuff */
   1401 
   1402     @try {
   1403         NSInteger _type = CHAR;
   1404         NSInteger _channel = ANTLRTokenChannelDefault;
   1405         // Fuzzy.g:52:2: ( '\\'' ( options {greedy=false; } : ESC | . )* '\\'' ) // ruleBlockSingleAlt
   1406         // Fuzzy.g:52:4: '\\'' ( options {greedy=false; } : ESC | . )* '\\'' // alt
   1407         {
   1408         [self matchChar:'\'']; if ( state.failed ) return ;
   1409 
   1410 
   1411         do {
   1412             NSInteger alt31=3;
   1413             NSInteger LA31_0 = [input LA:1];
   1414             if ( (LA31_0=='\'') ) {
   1415                 alt31=3;
   1416             }
   1417             else if ( (LA31_0=='\\') ) {
   1418                 NSInteger LA31_2 = [input LA:2];
   1419                 if ( (LA31_2=='\'') ) {
   1420                     alt31=1;
   1421                 }
   1422                 else if ( (LA31_2=='\\') ) {
   1423                     alt31=1;
   1424                 }
   1425                 else if ( (LA31_2=='"') ) {
   1426                     alt31=1;
   1427                 }
   1428                 else if ( ((LA31_2 >= 0x0000 && LA31_2 <= '!')||(LA31_2 >= '#' && LA31_2 <= '&')||(LA31_2 >= '(' && LA31_2 <= '[')||(LA31_2 >= ']' && LA31_2 <= 0xFFFF)) ) {
   1429                     alt31=2;
   1430                 }
   1431 
   1432 
   1433             }
   1434             else if ( ((LA31_0 >= 0x0000 && LA31_0 <= '&')||(LA31_0 >= '(' && LA31_0 <= '[')||(LA31_0 >= ']' && LA31_0 <= 0xFFFF)) ) {
   1435                 alt31=2;
   1436             }
   1437 
   1438 
   1439             switch (alt31) {
   1440                 case 1 : ;
   1441                     // Fuzzy.g:52:35: ESC // alt
   1442                     {
   1443                     [self mESC]; if ( state.failed ) return ;
   1444 
   1445 
   1446 
   1447                     }
   1448                     break;
   1449                 case 2 : ;
   1450                     // Fuzzy.g:52:41: . // alt
   1451                     {
   1452                     [self matchAny]; if ( state.failed ) return ;
   1453 
   1454 
   1455                     }
   1456                     break;
   1457 
   1458                 default :
   1459                     goto loop31;
   1460             }
   1461         } while (YES);
   1462         loop31: ;
   1463 
   1464 
   1465         [self matchChar:'\'']; if ( state.failed ) return ;
   1466 
   1467 
   1468         }
   1469 
   1470         // token+rule list labels
   1471 
   1472         state.type = _type;
   1473         state.channel = _channel;
   1474     }
   1475     @finally {
   1476         //
   1477         /* my stuff */
   1478         /* Terence's stuff */
   1479 
   1480     }
   1481     return;
   1482 }
   1483 /* $ANTLR end "CHAR" */
   1484 
   1485 // $ANTLR start "WS"
   1486 - (void) mWS
   1487 {
   1488     //
   1489     /* my ruleScopeSetUp */
   1490     /* Terence's stuff */
   1491 
   1492     @try {
   1493         NSInteger _type = WS;
   1494         NSInteger _channel = ANTLRTokenChannelDefault;
   1495         // Fuzzy.g:55:5: ( ( ' ' | '\\t' | '\\n' )+ ) // ruleBlockSingleAlt
   1496         // Fuzzy.g:55:9: ( ' ' | '\\t' | '\\n' )+ // alt
   1497         {
   1498         // Fuzzy.g:55:9: ( ' ' | '\\t' | '\\n' )+ // positiveClosureBlock
   1499         NSInteger cnt32 = 0;
   1500         do {
   1501             NSInteger alt32 = 2;
   1502             NSInteger LA32_0 = [input LA:1];
   1503             if ( ((LA32_0 >= '\t' && LA32_0 <= '\n')||LA32_0==' ') ) {
   1504                 alt32=1;
   1505             }
   1506 
   1507 
   1508             switch (alt32) {
   1509                 case 1 : ;
   1510                     // Fuzzy.g: // alt
   1511                     {
   1512                     if ((([input LA:1] >= '\t') && ([input LA:1] <= '\n'))||[input LA:1] == ' ') {
   1513                         [input consume];
   1514                         state.failed = NO;
   1515 
   1516                     } else {
   1517                         if ( state.backtracking > 0 ) { state.failed = YES; return ; }
   1518 
   1519                         ANTLRMismatchedSetException *mse = [ANTLRMismatchedSetException newException:nil stream:input];
   1520                         [self recover:mse];
   1521                         @throw mse;
   1522                     }
   1523 
   1524 
   1525                     }
   1526                     break;
   1527 
   1528                 default :
   1529                     if ( cnt32 >= 1 )
   1530                         goto loop32;
   1531                     if ( state.backtracking > 0 ) { state.failed = YES; return ; }
   1532 
   1533                     ANTLREarlyExitException *eee =
   1534                         [ANTLREarlyExitException newException:input decisionNumber:32];
   1535                     @throw eee;
   1536             }
   1537             cnt32++;
   1538         } while (YES);
   1539         loop32: ;
   1540 
   1541 
   1542         }
   1543 
   1544         // token+rule list labels
   1545 
   1546         state.type = _type;
   1547         state.channel = _channel;
   1548     }
   1549     @finally {
   1550         //
   1551         /* my stuff */
   1552         /* Terence's stuff */
   1553 
   1554     }
   1555     return;
   1556 }
   1557 /* $ANTLR end "WS" */
   1558 
   1559 // $ANTLR start "QID"
   1560 - (void) mQID
   1561 {
   1562     //
   1563     /* my ruleScopeSetUp */
   1564     /* Terence's stuff */
   1565 
   1566     @try {
   1567         // Fuzzy.g:59:5: ( ID ( '.' ID )* ) // ruleBlockSingleAlt
   1568         // Fuzzy.g:59:7: ID ( '.' ID )* // alt
   1569         {
   1570         [self mID]; if ( state.failed ) return ;
   1571 
   1572 
   1573 
   1574         do {
   1575             NSInteger alt33=2;
   1576             NSInteger LA33_0 = [input LA:1];
   1577             if ( (LA33_0=='.') ) {
   1578                 alt33=1;
   1579             }
   1580 
   1581 
   1582             switch (alt33) {
   1583                 case 1 : ;
   1584                     // Fuzzy.g:59:11: '.' ID // alt
   1585                     {
   1586                     [self matchChar:'.']; if ( state.failed ) return ;
   1587 
   1588 
   1589                     [self mID]; if ( state.failed ) return ;
   1590 
   1591 
   1592 
   1593                     }
   1594                     break;
   1595 
   1596                 default :
   1597                     goto loop33;
   1598             }
   1599         } while (YES);
   1600         loop33: ;
   1601 
   1602 
   1603         }
   1604 
   1605 
   1606     }
   1607     @finally {
   1608         //
   1609         /* my stuff */
   1610         /* Terence's stuff */
   1611 
   1612     }
   1613     return;
   1614 }
   1615 /* $ANTLR end "QID" */
   1616 
   1617 // $ANTLR start "QIDStar"
   1618 - (void) mQIDStar
   1619 {
   1620     //
   1621     /* my ruleScopeSetUp */
   1622     /* Terence's stuff */
   1623 
   1624     @try {
   1625         // Fuzzy.g:68:2: ( ID ( '.' ID )* ( '.*' )? ) // ruleBlockSingleAlt
   1626         // Fuzzy.g:68:4: ID ( '.' ID )* ( '.*' )? // alt
   1627         {
   1628         [self mID]; if ( state.failed ) return ;
   1629 
   1630 
   1631 
   1632         do {
   1633             NSInteger alt34=2;
   1634             NSInteger LA34_0 = [input LA:1];
   1635             if ( (LA34_0=='.') ) {
   1636                 NSInteger LA34_1 = [input LA:2];
   1637                 if ( ((LA34_1 >= 'A' && LA34_1 <= 'Z')||LA34_1=='_'||(LA34_1 >= 'a' && LA34_1 <= 'z')) ) {
   1638                     alt34=1;
   1639                 }
   1640 
   1641 
   1642             }
   1643 
   1644 
   1645             switch (alt34) {
   1646                 case 1 : ;
   1647                     // Fuzzy.g:68:8: '.' ID // alt
   1648                     {
   1649                     [self matchChar:'.']; if ( state.failed ) return ;
   1650 
   1651 
   1652                     [self mID]; if ( state.failed ) return ;
   1653 
   1654 
   1655 
   1656                     }
   1657                     break;
   1658 
   1659                 default :
   1660                     goto loop34;
   1661             }
   1662         } while (YES);
   1663         loop34: ;
   1664 
   1665 
   1666         // Fuzzy.g:68:17: ( '.*' )? // block
   1667         NSInteger alt35=2;
   1668         NSInteger LA35_0 = [input LA:1];
   1669 
   1670         if ( (LA35_0=='.') ) {
   1671             alt35=1;
   1672         }
   1673         switch (alt35) {
   1674             case 1 : ;
   1675                 // Fuzzy.g:68:17: '.*' // alt
   1676                 {
   1677                 [self matchString:@".*"]; if ( state.failed ) return ;
   1678 
   1679 
   1680 
   1681                 }
   1682                 break;
   1683 
   1684         }
   1685 
   1686 
   1687         }
   1688 
   1689 
   1690     }
   1691     @finally {
   1692         //
   1693         /* my stuff */
   1694         /* Terence's stuff */
   1695 
   1696     }
   1697     return;
   1698 }
   1699 /* $ANTLR end "QIDStar" */
   1700 
   1701 // $ANTLR start "TYPE"
   1702 - (void) mTYPE
   1703 {
   1704     //
   1705     /* my ruleScopeSetUp */
   1706     /* Terence's stuff */
   1707 
   1708     @try {
   1709         // Fuzzy.g:72:5: ( QID ( '[]' )? ) // ruleBlockSingleAlt
   1710         // Fuzzy.g:72:9: QID ( '[]' )? // alt
   1711         {
   1712         [self mQID]; if ( state.failed ) return ;
   1713 
   1714 
   1715 
   1716         // Fuzzy.g:72:13: ( '[]' )? // block
   1717         NSInteger alt36=2;
   1718         NSInteger LA36_0 = [input LA:1];
   1719 
   1720         if ( (LA36_0=='[') ) {
   1721             alt36=1;
   1722         }
   1723         switch (alt36) {
   1724             case 1 : ;
   1725                 // Fuzzy.g:72:13: '[]' // alt
   1726                 {
   1727                 [self matchString:@"[]"]; if ( state.failed ) return ;
   1728 
   1729 
   1730 
   1731                 }
   1732                 break;
   1733 
   1734         }
   1735 
   1736 
   1737         }
   1738 
   1739 
   1740     }
   1741     @finally {
   1742         //
   1743         /* my stuff */
   1744         /* Terence's stuff */
   1745 
   1746     }
   1747     return;
   1748 }
   1749 /* $ANTLR end "TYPE" */
   1750 
   1751 // $ANTLR start "ARG"
   1752 - (void) mARG
   1753 {
   1754     //
   1755     /* my ruleScopeSetUp */
   1756     /* Terence's stuff */
   1757 
   1758     @try {
   1759         // Fuzzy.g:76:5: ( TYPE WS ID ) // ruleBlockSingleAlt
   1760         // Fuzzy.g:76:9: TYPE WS ID // alt
   1761         {
   1762         [self mTYPE]; if ( state.failed ) return ;
   1763 
   1764 
   1765 
   1766         [self mWS]; if ( state.failed ) return ;
   1767 
   1768 
   1769 
   1770         [self mID]; if ( state.failed ) return ;
   1771 
   1772 
   1773 
   1774         }
   1775 
   1776 
   1777     }
   1778     @finally {
   1779         //
   1780         /* my stuff */
   1781         /* Terence's stuff */
   1782 
   1783     }
   1784     return;
   1785 }
   1786 /* $ANTLR end "ARG" */
   1787 
   1788 // $ANTLR start "ID"
   1789 - (void) mID
   1790 {
   1791     //
   1792     /* my ruleScopeSetUp */
   1793     /* Terence's stuff */
   1794 
   1795     @try {
   1796         // Fuzzy.g:80:5: ( ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* ) // ruleBlockSingleAlt
   1797         // Fuzzy.g:80:9: ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* // alt
   1798         {
   1799         if ((([input LA:1] >= 'A') && ([input LA:1] <= 'Z'))||[input LA:1] == '_'||(([input LA:1] >= 'a') && ([input LA:1] <= 'z'))) {
   1800             [input consume];
   1801             state.failed = NO;
   1802 
   1803         } else {
   1804             if ( state.backtracking > 0 ) { state.failed = YES; return ; }
   1805 
   1806             ANTLRMismatchedSetException *mse = [ANTLRMismatchedSetException newException:nil stream:input];
   1807             [self recover:mse];
   1808             @throw mse;
   1809         }
   1810 
   1811 
   1812         do {
   1813             NSInteger alt37=2;
   1814             NSInteger LA37_0 = [input LA:1];
   1815             if ( ((LA37_0 >= '0' && LA37_0 <= '9')||(LA37_0 >= 'A' && LA37_0 <= 'Z')||LA37_0=='_'||(LA37_0 >= 'a' && LA37_0 <= 'z')) ) {
   1816                 alt37=1;
   1817             }
   1818 
   1819 
   1820             switch (alt37) {
   1821                 case 1 : ;
   1822                     // Fuzzy.g: // alt
   1823                     {
   1824                     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'))) {
   1825                         [input consume];
   1826                         state.failed = NO;
   1827 
   1828                     } else {
   1829                         if ( state.backtracking > 0 ) { state.failed = YES; return ; }
   1830 
   1831                         ANTLRMismatchedSetException *mse = [ANTLRMismatchedSetException newException:nil stream:input];
   1832                         [self recover:mse];
   1833                         @throw mse;
   1834                     }
   1835 
   1836 
   1837                     }
   1838                     break;
   1839 
   1840                 default :
   1841                     goto loop37;
   1842             }
   1843         } while (YES);
   1844         loop37: ;
   1845 
   1846 
   1847         }
   1848 
   1849 
   1850     }
   1851     @finally {
   1852         //
   1853         /* my stuff */
   1854         /* Terence's stuff */
   1855 
   1856     }
   1857     return;
   1858 }
   1859 /* $ANTLR end "ID" */
   1860 
   1861 // $ANTLR start "ESC"
   1862 - (void) mESC
   1863 {
   1864     //
   1865     /* my ruleScopeSetUp */
   1866     /* Terence's stuff */
   1867 
   1868     @try {
   1869         // Fuzzy.g:84:5: ( '\\\\' ( '\"' | '\\'' | '\\\\' ) ) // ruleBlockSingleAlt
   1870         // Fuzzy.g:84:7: '\\\\' ( '\"' | '\\'' | '\\\\' ) // alt
   1871         {
   1872         [self matchChar:'\\']; if ( state.failed ) return ;
   1873 
   1874 
   1875         if ([input LA:1] == '"'||[input LA:1] == '\''||[input LA:1] == '\\') {
   1876             [input consume];
   1877             state.failed = NO;
   1878 
   1879         } else {
   1880             if ( state.backtracking > 0 ) { state.failed = YES; return ; }
   1881 
   1882             ANTLRMismatchedSetException *mse = [ANTLRMismatchedSetException newException:nil stream:input];
   1883             [self recover:mse];
   1884             @throw mse;
   1885         }
   1886 
   1887 
   1888         }
   1889 
   1890 
   1891     }
   1892     @finally {
   1893         //
   1894         /* my stuff */
   1895         /* Terence's stuff */
   1896 
   1897     }
   1898     return;
   1899 }
   1900 /* $ANTLR end "ESC" */
   1901 
   1902 - (void) mTokens
   1903 {
   1904     // Fuzzy.g:1:39: ( IMPORT | RETURN | CLASS | METHOD | FIELD | STAT | CALL | COMMENT | SL_COMMENT | STRING | CHAR | WS ) //ruleblock
   1905     NSInteger alt38=12;
   1906     unichar charLA38 = [input LA:1];
   1907     switch (charLA38) {
   1908         case 'i': ;
   1909             {
   1910             NSInteger LA38_1 = [input LA:2];
   1911 
   1912             if ( ([self evaluateSyntacticPredicate:@selector(synpred1_Fuzzy_fragment)]) ) {
   1913                 alt38=1;
   1914             }
   1915             else if ( ([self evaluateSyntacticPredicate:@selector(synpred4_Fuzzy_fragment)]) ) {
   1916                 alt38=4;
   1917             }
   1918             else if ( ([self evaluateSyntacticPredicate:@selector(synpred5_Fuzzy_fragment)]) ) {
   1919                 alt38=5;
   1920             }
   1921             else if ( ([self evaluateSyntacticPredicate:@selector(synpred6_Fuzzy_fragment)]) ) {
   1922                 alt38=6;
   1923             }
   1924             else if ( ([self evaluateSyntacticPredicate:@selector(synpred7_Fuzzy_fragment)]) ) {
   1925                 alt38=7;
   1926             }
   1927             else {
   1928                 if ( state.backtracking > 0 ) { state.failed = YES; return ; }
   1929 
   1930                 ANTLRNoViableAltException *nvae = [ANTLRNoViableAltException newException:38 state:1 stream:input];
   1931                 nvae.c = LA38_1;
   1932                 @throw nvae;
   1933 
   1934             }
   1935             }
   1936             break;
   1937         case 'r': ;
   1938             {
   1939             NSInteger LA38_7 = [input LA:2];
   1940 
   1941             if ( ([self evaluateSyntacticPredicate:@selector(synpred2_Fuzzy_fragment)]) ) {
   1942                 alt38=2;
   1943             }
   1944             else if ( ([self evaluateSyntacticPredicate:@selector(synpred4_Fuzzy_fragment)]) ) {
   1945                 alt38=4;
   1946             }
   1947             else if ( ([self evaluateSyntacticPredicate:@selector(synpred5_Fuzzy_fragment)]) ) {
   1948                 alt38=5;
   1949             }
   1950             else if ( ([self evaluateSyntacticPredicate:@selector(synpred7_Fuzzy_fragment)]) ) {
   1951                 alt38=7;
   1952             }
   1953             else {
   1954                 if ( state.backtracking > 0 ) { state.failed = YES; return ; }
   1955 
   1956                 ANTLRNoViableAltException *nvae = [ANTLRNoViableAltException newException:38 state:7 stream:input];
   1957                 nvae.c = LA38_7;
   1958                 @throw nvae;
   1959 
   1960             }
   1961             }
   1962             break;
   1963         case 'c': ;
   1964             {
   1965             NSInteger LA38_9 = [input LA:2];
   1966 
   1967             if ( ([self evaluateSyntacticPredicate:@selector(synpred3_Fuzzy_fragment)]) ) {
   1968                 alt38=3;
   1969             }
   1970             else if ( ([self evaluateSyntacticPredicate:@selector(synpred4_Fuzzy_fragment)]) ) {
   1971                 alt38=4;
   1972             }
   1973             else if ( ([self evaluateSyntacticPredicate:@selector(synpred5_Fuzzy_fragment)]) ) {
   1974                 alt38=5;
   1975             }
   1976             else if ( ([self evaluateSyntacticPredicate:@selector(synpred7_Fuzzy_fragment)]) ) {
   1977                 alt38=7;
   1978             }
   1979             else {
   1980                 if ( state.backtracking > 0 ) { state.failed = YES; return ; }
   1981 
   1982                 ANTLRNoViableAltException *nvae = [ANTLRNoViableAltException newException:38 state:9 stream:input];
   1983                 nvae.c = LA38_9;
   1984                 @throw nvae;
   1985 
   1986             }
   1987             }
   1988             break;
   1989         case 'f': ;
   1990         case 's': ;
   1991         case 'w': ;
   1992             {
   1993             NSInteger LA38_11 = [input LA:2];
   1994 
   1995             if ( ([self evaluateSyntacticPredicate:@selector(synpred4_Fuzzy_fragment)]) ) {
   1996                 alt38=4;
   1997             }
   1998             else if ( ([self evaluateSyntacticPredicate:@selector(synpred5_Fuzzy_fragment)]) ) {
   1999                 alt38=5;
   2000             }
   2001             else if ( ([self evaluateSyntacticPredicate:@selector(synpred6_Fuzzy_fragment)]) ) {
   2002                 alt38=6;
   2003             }
   2004             else if ( ([self evaluateSyntacticPredicate:@selector(synpred7_Fuzzy_fragment)]) ) {
   2005                 alt38=7;
   2006             }
   2007             else {
   2008                 if ( state.backtracking > 0 ) { state.failed = YES; return ; }
   2009 
   2010                 ANTLRNoViableAltException *nvae = [ANTLRNoViableAltException newException:38 state:11 stream:input];
   2011                 nvae.c = LA38_11;
   2012                 @throw nvae;
   2013 
   2014             }
   2015             }
   2016             break;
   2017         case 'A': ;
   2018         case 'B': ;
   2019         case 'C': ;
   2020         case 'D': ;
   2021         case 'E': ;
   2022         case 'F': ;
   2023         case 'G': ;
   2024         case 'H': ;
   2025         case 'I': ;
   2026         case 'J': ;
   2027         case 'K': ;
   2028         case 'L': ;
   2029         case 'M': ;
   2030         case 'N': ;
   2031         case 'O': ;
   2032         case 'P': ;
   2033         case 'Q': ;
   2034         case 'R': ;
   2035         case 'S': ;
   2036         case 'T': ;
   2037         case 'U': ;
   2038         case 'V': ;
   2039         case 'W': ;
   2040         case 'X': ;
   2041         case 'Y': ;
   2042         case 'Z': ;
   2043         case '_': ;
   2044         case 'a': ;
   2045         case 'b': ;
   2046         case 'd': ;
   2047         case 'e': ;
   2048         case 'g': ;
   2049         case 'h': ;
   2050         case 'j': ;
   2051         case 'k': ;
   2052         case 'l': ;
   2053         case 'm': ;
   2054         case 'n': ;
   2055         case 'o': ;
   2056         case 'p': ;
   2057         case 'q': ;
   2058         case 't': ;
   2059         case 'u': ;
   2060         case 'v': ;
   2061         case 'x': ;
   2062         case 'y': ;
   2063         case 'z': ;
   2064             {
   2065             NSInteger LA38_12 = [input LA:2];
   2066 
   2067             if ( ([self evaluateSyntacticPredicate:@selector(synpred4_Fuzzy_fragment)]) ) {
   2068                 alt38=4;
   2069             }
   2070             else if ( ([self evaluateSyntacticPredicate:@selector(synpred5_Fuzzy_fragment)]) ) {
   2071                 alt38=5;
   2072             }
   2073             else if ( ([self evaluateSyntacticPredicate:@selector(synpred7_Fuzzy_fragment)]) ) {
   2074                 alt38=7;
   2075             }
   2076             else {
   2077                 if ( state.backtracking > 0 ) { state.failed = YES; return ; }
   2078 
   2079                 ANTLRNoViableAltException *nvae = [ANTLRNoViableAltException newException:38 state:12 stream:input];
   2080                 nvae.c = LA38_12;
   2081                 @throw nvae;
   2082 
   2083             }
   2084             }
   2085             break;
   2086         case '/': ;
   2087             {
   2088             NSInteger LA38_13 = [input LA:2];
   2089 
   2090             if ( ([self evaluateSyntacticPredicate:@selector(synpred8_Fuzzy_fragment)]) ) {
   2091                 alt38=8;
   2092             }
   2093             else if ( ([self evaluateSyntacticPredicate:@selector(synpred9_Fuzzy_fragment)]) ) {
   2094                 alt38=9;
   2095             }
   2096             else {
   2097                 if ( state.backtracking > 0 ) { state.failed = YES; return ; }
   2098 
   2099                 ANTLRNoViableAltException *nvae = [ANTLRNoViableAltException newException:38 state:13 stream:input];
   2100                 nvae.c = LA38_13;
   2101                 @throw nvae;
   2102 
   2103             }
   2104             }
   2105             break;
   2106         case '"': ;
   2107             {
   2108             alt38=10;
   2109             }
   2110             break;
   2111         case '\'': ;
   2112             {
   2113             alt38=11;
   2114             }
   2115             break;
   2116         case '\t': ;
   2117         case '\n': ;
   2118         case ' ': ;
   2119             {
   2120             alt38=12;
   2121             }
   2122             break;
   2123 
   2124     default: ;
   2125         if ( state.backtracking > 0 ) { state.failed = YES; return ; }
   2126 
   2127         ANTLRNoViableAltException *nvae = [ANTLRNoViableAltException newException:38 state:0 stream:input];
   2128         nvae.c = charLA38;
   2129         @throw nvae;
   2130 
   2131     }
   2132 
   2133     switch (alt38) {
   2134         case 1 : ;
   2135             // Fuzzy.g:1:41: IMPORT // alt
   2136             {
   2137             [self mIMPORT]; if ( state.failed ) return ;
   2138 
   2139 
   2140 
   2141             }
   2142             break;
   2143         case 2 : ;
   2144             // Fuzzy.g:1:48: RETURN // alt
   2145             {
   2146             [self mRETURN]; if ( state.failed ) return ;
   2147 
   2148 
   2149 
   2150             }
   2151             break;
   2152         case 3 : ;
   2153             // Fuzzy.g:1:55: CLASS // alt
   2154             {
   2155             [self mCLASS]; if ( state.failed ) return ;
   2156 
   2157 
   2158 
   2159             }
   2160             break;
   2161         case 4 : ;
   2162             // Fuzzy.g:1:61: METHOD // alt
   2163             {
   2164             [self mMETHOD]; if ( state.failed ) return ;
   2165 
   2166 
   2167 
   2168             }
   2169             break;
   2170         case 5 : ;
   2171             // Fuzzy.g:1:68: FIELD // alt
   2172             {
   2173             [self mFIELD]; if ( state.failed ) return ;
   2174 
   2175 
   2176 
   2177             }
   2178             break;
   2179         case 6 : ;
   2180             // Fuzzy.g:1:74: STAT // alt
   2181             {
   2182             [self mSTAT]; if ( state.failed ) return ;
   2183 
   2184 
   2185 
   2186             }
   2187             break;
   2188         case 7 : ;
   2189             // Fuzzy.g:1:79: CALL // alt
   2190             {
   2191             [self mCALL]; if ( state.failed ) return ;
   2192 
   2193 
   2194 
   2195             }
   2196             break;
   2197         case 8 : ;
   2198             // Fuzzy.g:1:84: COMMENT // alt
   2199             {
   2200             [self mCOMMENT]; if ( state.failed ) return ;
   2201 
   2202 
   2203 
   2204             }
   2205             break;
   2206         case 9 : ;
   2207             // Fuzzy.g:1:92: SL_COMMENT // alt
   2208             {
   2209             [self mSL_COMMENT]; if ( state.failed ) return ;
   2210 
   2211 
   2212 
   2213             }
   2214             break;
   2215         case 10 : ;
   2216             // Fuzzy.g:1:103: STRING // alt
   2217             {
   2218             [self mSTRING]; if ( state.failed ) return ;
   2219 
   2220 
   2221 
   2222             }
   2223             break;
   2224         case 11 : ;
   2225             // Fuzzy.g:1:110: CHAR // alt
   2226             {
   2227             [self mCHAR]; if ( state.failed ) return ;
   2228 
   2229 
   2230 
   2231             }
   2232             break;
   2233         case 12 : ;
   2234             // Fuzzy.g:1:115: WS // alt
   2235             {
   2236             [self mWS]; if ( state.failed ) return ;
   2237 
   2238 
   2239 
   2240             }
   2241             break;
   2242 
   2243     }
   2244 
   2245 }
   2246 
   2247 // $ANTLR start synpred1_Fuzzy_fragment
   2248 - (void) synpred1_Fuzzy_fragment
   2249 {
   2250     // Fuzzy.g:1:41: ( IMPORT ) // ruleBlockSingleAlt
   2251     // Fuzzy.g:1:41: IMPORT // alt
   2252     {
   2253     [self mIMPORT]; if ( state.failed ) return ;
   2254 
   2255 
   2256 
   2257     }
   2258 
   2259 } // $ANTLR end synpred1_Fuzzy_fragment
   2260 
   2261 // $ANTLR start synpred2_Fuzzy_fragment
   2262 - (void) synpred2_Fuzzy_fragment
   2263 {
   2264     // Fuzzy.g:1:48: ( RETURN ) // ruleBlockSingleAlt
   2265     // Fuzzy.g:1:48: RETURN // alt
   2266     {
   2267     [self mRETURN]; if ( state.failed ) return ;
   2268 
   2269 
   2270 
   2271     }
   2272 
   2273 } // $ANTLR end synpred2_Fuzzy_fragment
   2274 
   2275 // $ANTLR start synpred3_Fuzzy_fragment
   2276 - (void) synpred3_Fuzzy_fragment
   2277 {
   2278     // Fuzzy.g:1:55: ( CLASS ) // ruleBlockSingleAlt
   2279     // Fuzzy.g:1:55: CLASS // alt
   2280     {
   2281     [self mCLASS]; if ( state.failed ) return ;
   2282 
   2283 
   2284 
   2285     }
   2286 
   2287 } // $ANTLR end synpred3_Fuzzy_fragment
   2288 
   2289 // $ANTLR start synpred4_Fuzzy_fragment
   2290 - (void) synpred4_Fuzzy_fragment
   2291 {
   2292     // Fuzzy.g:1:61: ( METHOD ) // ruleBlockSingleAlt
   2293     // Fuzzy.g:1:61: METHOD // alt
   2294     {
   2295     [self mMETHOD]; if ( state.failed ) return ;
   2296 
   2297 
   2298 
   2299     }
   2300 
   2301 } // $ANTLR end synpred4_Fuzzy_fragment
   2302 
   2303 // $ANTLR start synpred5_Fuzzy_fragment
   2304 - (void) synpred5_Fuzzy_fragment
   2305 {
   2306     // Fuzzy.g:1:68: ( FIELD ) // ruleBlockSingleAlt
   2307     // Fuzzy.g:1:68: FIELD // alt
   2308     {
   2309     [self mFIELD]; if ( state.failed ) return ;
   2310 
   2311 
   2312 
   2313     }
   2314 
   2315 } // $ANTLR end synpred5_Fuzzy_fragment
   2316 
   2317 // $ANTLR start synpred6_Fuzzy_fragment
   2318 - (void) synpred6_Fuzzy_fragment
   2319 {
   2320     // Fuzzy.g:1:74: ( STAT ) // ruleBlockSingleAlt
   2321     // Fuzzy.g:1:74: STAT // alt
   2322     {
   2323     [self mSTAT]; if ( state.failed ) return ;
   2324 
   2325 
   2326 
   2327     }
   2328 
   2329 } // $ANTLR end synpred6_Fuzzy_fragment
   2330 
   2331 // $ANTLR start synpred7_Fuzzy_fragment
   2332 - (void) synpred7_Fuzzy_fragment
   2333 {
   2334     // Fuzzy.g:1:79: ( CALL ) // ruleBlockSingleAlt
   2335     // Fuzzy.g:1:79: CALL // alt
   2336     {
   2337     [self mCALL]; if ( state.failed ) return ;
   2338 
   2339 
   2340 
   2341     }
   2342 
   2343 } // $ANTLR end synpred7_Fuzzy_fragment
   2344 
   2345 // $ANTLR start synpred8_Fuzzy_fragment
   2346 - (void) synpred8_Fuzzy_fragment
   2347 {
   2348     // Fuzzy.g:1:84: ( COMMENT ) // ruleBlockSingleAlt
   2349     // Fuzzy.g:1:84: COMMENT // alt
   2350     {
   2351     [self mCOMMENT]; if ( state.failed ) return ;
   2352 
   2353 
   2354 
   2355     }
   2356 
   2357 } // $ANTLR end synpred8_Fuzzy_fragment
   2358 
   2359 // $ANTLR start synpred9_Fuzzy_fragment
   2360 - (void) synpred9_Fuzzy_fragment
   2361 {
   2362     // Fuzzy.g:1:92: ( SL_COMMENT ) // ruleBlockSingleAlt
   2363     // Fuzzy.g:1:92: SL_COMMENT // alt
   2364     {
   2365     [self mSL_COMMENT]; if ( state.failed ) return ;
   2366 
   2367 
   2368 
   2369     }
   2370 
   2371 } // $ANTLR end synpred9_Fuzzy_fragment
   2372 
   2373 @end /* end of Fuzzy implementation line 397 */