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