1/** \file
2 *  This OBJC source file was generated by $ANTLR version 3.2 Aug 23, 2010 07:48:06
3 *
4 *     -  From the grammar source file : /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/simplecTreeParser/SimpleC.g
5 *     -                            On : 2010-08-23 07:54:47
6 *     -                 for the lexer : SimpleCLexerLexer *
7 * Editing it, at least manually, is not wise.
8 *
9 * ObjC language generator and runtime by Alan Condit, acondit|hereisanat|ipns|dotgoeshere|com.
10 *
11 *
12*/
13// [The "BSD licence"]
14// Copyright (c) 2010 Alan Condit
15//
16// All rights reserved.
17//
18// Redistribution and use in source and binary forms, with or without
19// modification, are permitted provided that the following conditions
20// are met:
21// 1. Redistributions of source code must retain the above copyright
22//    notice, this list of conditions and the following disclaimer.
23// 2. Redistributions in binary form must reproduce the above copyright
24//    notice, this list of conditions and the following disclaimer in the
25//    documentation and/or other materials provided with the distribution.
26// 3. The name of the author may not be used to endorse or promote products
27//    derived from this software without specific prior written permission.
28//
29// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
30// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
31// OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
32// IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
33// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
34// NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
35// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
36// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
37// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
38// THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
39
40// $ANTLR 3.2 Aug 23, 2010 07:48:06 /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/simplecTreeParser/SimpleC.g 2010-08-23 07:54:47
41
42/* -----------------------------------------
43 * Include the ANTLR3 generated header file.
44 */
45#import "SimpleCLexer.h"
46/* ----------------------------------------- */
47
48
49/* ============================================================================= */
50
51/* =============================================================================
52 * Start of recognizer
53 */
54
55#pragma mark Cyclic DFA implementation start DFA4
56@implementation DFA4
57const static NSInteger dfa4_eot[33] =
58    {-1,-1,-1,-1,-1,-1,-1,11,11,11,11,-1,-1,22,-1,-1,-1,11,11,11,11,-1,-1,
59     27,28,11,11,-1,-1,31,32,-1,-1};
60const static NSInteger dfa4_eof[33] =
61    {-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
62     -1,-1,-1,-1,-1,-1,-1,-1,-1,-1};
63const static unichar dfa4_min[33] =
64    {9,0,0,0,0,0,0,111,110,104,111,0,0,61,0,0,0,114,116,97,105,0,0,48,48,
65     114,100,0,0,48,48,0,0};
66const static unichar dfa4_max[33] =
67    {125,0,0,0,0,0,0,111,110,104,111,0,0,61,0,0,0,114,116,97,105,0,0,122,
68     122,114,100,0,0,122,122,0,0};
69const static NSInteger dfa4_accept[33] =
70    {-1,1,2,3,4,5,6,-1,-1,-1,-1,11,12,-1,15,16,17,-1,-1,-1,-1,14,13,-1,-1,
71     -1,-1,7,8,-1,-1,9,10};
72const static NSInteger dfa4_special[33] =
73    {-1,-1,-1,-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};
75const static NSInteger dfa4_transition[] = {};
76const static NSInteger dfa4_transition0[] = {24};
77const static NSInteger dfa4_transition1[] = {26};
78const static NSInteger dfa4_transition2[] = {29};
79const static NSInteger dfa4_transition3[] = {20};
80const static NSInteger dfa4_transition4[] = {25};
81const static NSInteger dfa4_transition5[] = {16, 16, -1, -1, 16, -1, -1,
82 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 16, -1,
83 -1, -1, -1, -1, -1, -1, 2, 4, -1, 15, 3, -1, -1, -1, 12, 12, 12, 12, 12,
84 12, 12, 12, 12, 12, -1, 1, 14, 13, -1, -1, -1, 11, 11, 11, 11, 11, 11,
85 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
86 11, 11, -1, -1, -1, -1, 11, -1, 11, 11, 9, 11, 11, 7, 11, 11, 8, 11, 11,
87 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 10, 11, 11, 11, 11, 5, -1, 6};
88const static NSInteger dfa4_transition6[] = {21};
89const static NSInteger dfa4_transition7[] = {11, 11, 11, 11, 11, 11, 11,
90 11, 11, 11, -1, -1, -1, -1, -1, -1, -1, 11, 11, 11, 11, 11, 11, 11, 11,
91 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
92 -1, -1, -1, -1, 11, -1, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
93 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11};
94const static NSInteger dfa4_transition8[] = {18};
95const static NSInteger dfa4_transition9[] = {19};
96const static NSInteger dfa4_transition10[] = {23};
97const static NSInteger dfa4_transition11[] = {17};
98const static NSInteger dfa4_transition12[] = {30};
99
100
101+ () newDFA4WithRecognizer:(ANTLRBaseRecognizer *)aRecognizer
102{
103    return [[[DFA4 alloc] initWithRecognizer:aRecognizer] retain];
104}
105
106- (id) initWithRecognizer:(ANTLRBaseRecognizer *) theRecognizer
107{
108    if ((self = [super initWithRecognizer:theRecognizer]) != nil) {
109        decisionNumber = 4;
110        eot = dfa4_eot;
111        eof = dfa4_eof;
112        min = dfa4_min;
113        max = dfa4_max;
114        accept = dfa4_accept;
115        special = dfa4_special;
116        if (!(transition = calloc(33, sizeof(void*)))) {
117            [self release];
118            return nil;
119        }
120        len = 33;
121        transition[0] = dfa4_transition5;
122        transition[1] = dfa4_transition;
123        transition[2] = dfa4_transition;
124        transition[3] = dfa4_transition;
125        transition[4] = dfa4_transition;
126        transition[5] = dfa4_transition;
127        transition[6] = dfa4_transition;
128        transition[7] = dfa4_transition11;
129        transition[8] = dfa4_transition8;
130        transition[9] = dfa4_transition9;
131        transition[10] = dfa4_transition3;
132        transition[11] = dfa4_transition;
133        transition[12] = dfa4_transition;
134        transition[13] = dfa4_transition6;
135        transition[14] = dfa4_transition;
136        transition[15] = dfa4_transition;
137        transition[16] = dfa4_transition;
138        transition[17] = dfa4_transition10;
139        transition[18] = dfa4_transition0;
140        transition[19] = dfa4_transition4;
141        transition[20] = dfa4_transition1;
142        transition[21] = dfa4_transition;
143        transition[22] = dfa4_transition;
144        transition[23] = dfa4_transition7;
145        transition[24] = dfa4_transition7;
146        transition[25] = dfa4_transition2;
147        transition[26] = dfa4_transition12;
148        transition[27] = dfa4_transition;
149        transition[28] = dfa4_transition;
150        transition[29] = dfa4_transition7;
151        transition[30] = dfa4_transition7;
152        transition[31] = dfa4_transition;
153        transition[32] = dfa4_transition;
154    }
155    return self;
156}
157
158- (void) dealloc
159{
160    free(transition);
161    [super dealloc];
162}
163
164- (NSString *) description
165{
166    return @"1:1: Tokens : ( T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | K_FOR | K_INT_TYPE | K_CHAR | K_VOID | K_ID | K_INT | K_EQ | K_EQEQ | K_LT | K_PLUS | WS );";
167}
168
169
170@end /* end DFA4 implementation */
171
172#pragma mark Cyclic DFA implementation end DFA4
173
174
175
176/** As per Terence: No returns for lexer rules!
177#pragma mark Rule return scopes start
178#pragma mark Rule return scopes end
179*/
180@implementation SimpleCLexer // line 330
181
182+ (void) initialize
183{
184    [ANTLRBaseRecognizer setGrammarFileName:@"/usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/simplecTreeParser/SimpleC.g"];
185}
186
187+ (NSString *) tokenNameForType:(NSInteger)aTokenType
188{
189    return [[self getTokenNames] objectAtIndex:aTokenType];
190}
191
192+ (SimpleCLexer *)newSimpleCLexer:(id<ANTLRCharStream>)anInput
193{
194    return [[SimpleCLexer alloc] initWithCharStream:anInput];
195}
196
197- (id) initWithCharStream:(id<ANTLRCharStream>)anInput
198{
199    if ((self = [super initWithCharStream:anInput State:[ANTLRRecognizerSharedState newANTLRRecognizerSharedStateWithRuleLen:18+1]]) != nil) {
200
201        dfa4 = [DFA4 newDFA4WithRecognizer:self];
202    }
203    return self;
204}
205
206- (void) dealloc
207{
208    [dfa4 release];
209    [super dealloc];
210}
211
212/* Start of actions.lexer.methods */
213/* start methods() */
214
215/* Start of Rules */
216// $ANTLR start "T__21"
217- (void) mT__21
218{
219    //
220    /* ruleScopeSetUp */
221
222    @try {
223        NSInteger _type = T__21;
224        NSInteger _channel = ANTLRTokenChannelDefault;
225        // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/simplecTreeParser/SimpleC.g:7:7: ( ';' ) // ruleBlockSingleAlt
226        // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/simplecTreeParser/SimpleC.g:7:9: ';' // alt
227        {
228        [self matchChar:';'];
229          /* element() */
230         /* elements */
231        }
232
233        // token+rule list labels
234
235        [state setType:_type];
236
237        state.channel = _channel;
238    }
239    @finally {
240        //
241    }
242    return;
243}
244// $ANTLR end "T__21"
245
246// $ANTLR start "T__22"
247- (void) mT__22
248{
249    //
250    /* ruleScopeSetUp */
251
252    @try {
253        NSInteger _type = T__22;
254        NSInteger _channel = ANTLRTokenChannelDefault;
255        // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/simplecTreeParser/SimpleC.g:8:7: ( '(' ) // ruleBlockSingleAlt
256        // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/simplecTreeParser/SimpleC.g:8:9: '(' // alt
257        {
258        [self matchChar:'('];
259          /* element() */
260         /* elements */
261        }
262
263        // token+rule list labels
264
265        [state setType:_type];
266
267        state.channel = _channel;
268    }
269    @finally {
270        //
271    }
272    return;
273}
274// $ANTLR end "T__22"
275
276// $ANTLR start "T__23"
277- (void) mT__23
278{
279    //
280    /* ruleScopeSetUp */
281
282    @try {
283        NSInteger _type = T__23;
284        NSInteger _channel = ANTLRTokenChannelDefault;
285        // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/simplecTreeParser/SimpleC.g:9:7: ( ',' ) // ruleBlockSingleAlt
286        // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/simplecTreeParser/SimpleC.g:9:9: ',' // alt
287        {
288        [self matchChar:','];
289          /* element() */
290         /* elements */
291        }
292
293        // token+rule list labels
294
295        [state setType:_type];
296
297        state.channel = _channel;
298    }
299    @finally {
300        //
301    }
302    return;
303}
304// $ANTLR end "T__23"
305
306// $ANTLR start "T__24"
307- (void) mT__24
308{
309    //
310    /* ruleScopeSetUp */
311
312    @try {
313        NSInteger _type = T__24;
314        NSInteger _channel = ANTLRTokenChannelDefault;
315        // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/simplecTreeParser/SimpleC.g:10:7: ( ')' ) // ruleBlockSingleAlt
316        // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/simplecTreeParser/SimpleC.g:10:9: ')' // alt
317        {
318        [self matchChar:')'];
319          /* element() */
320         /* elements */
321        }
322
323        // token+rule list labels
324
325        [state setType:_type];
326
327        state.channel = _channel;
328    }
329    @finally {
330        //
331    }
332    return;
333}
334// $ANTLR end "T__24"
335
336// $ANTLR start "T__25"
337- (void) mT__25
338{
339    //
340    /* ruleScopeSetUp */
341
342    @try {
343        NSInteger _type = T__25;
344        NSInteger _channel = ANTLRTokenChannelDefault;
345        // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/simplecTreeParser/SimpleC.g:11:7: ( '{' ) // ruleBlockSingleAlt
346        // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/simplecTreeParser/SimpleC.g:11:9: '{' // alt
347        {
348        [self matchChar:'{'];
349          /* element() */
350         /* elements */
351        }
352
353        // token+rule list labels
354
355        [state setType:_type];
356
357        state.channel = _channel;
358    }
359    @finally {
360        //
361    }
362    return;
363}
364// $ANTLR end "T__25"
365
366// $ANTLR start "T__26"
367- (void) mT__26
368{
369    //
370    /* ruleScopeSetUp */
371
372    @try {
373        NSInteger _type = T__26;
374        NSInteger _channel = ANTLRTokenChannelDefault;
375        // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/simplecTreeParser/SimpleC.g:12:7: ( '}' ) // ruleBlockSingleAlt
376        // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/simplecTreeParser/SimpleC.g:12:9: '}' // alt
377        {
378        [self matchChar:'}'];
379          /* element() */
380         /* elements */
381        }
382
383        // token+rule list labels
384
385        [state setType:_type];
386
387        state.channel = _channel;
388    }
389    @finally {
390        //
391    }
392    return;
393}
394// $ANTLR end "T__26"
395
396// $ANTLR start "K_FOR"
397- (void) mK_FOR
398{
399    //
400    /* ruleScopeSetUp */
401
402    @try {
403        NSInteger _type = K_FOR;
404        NSInteger _channel = ANTLRTokenChannelDefault;
405        // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/simplecTreeParser/SimpleC.g:91:7: ( 'for' ) // ruleBlockSingleAlt
406        // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/simplecTreeParser/SimpleC.g:91:9: 'for' // alt
407        {
408        [self matchString:@"for"];
409          /* element() */
410         /* elements */
411        }
412
413        // token+rule list labels
414
415        [state setType:_type];
416
417        state.channel = _channel;
418    }
419    @finally {
420        //
421    }
422    return;
423}
424// $ANTLR end "K_FOR"
425
426// $ANTLR start "K_INT_TYPE"
427- (void) mK_INT_TYPE
428{
429    //
430    /* ruleScopeSetUp */
431
432    @try {
433        NSInteger _type = K_INT_TYPE;
434        NSInteger _channel = ANTLRTokenChannelDefault;
435        // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/simplecTreeParser/SimpleC.g:92:12: ( 'int' ) // ruleBlockSingleAlt
436        // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/simplecTreeParser/SimpleC.g:92:14: 'int' // alt
437        {
438        [self matchString:@"int"];
439          /* element() */
440         /* elements */
441        }
442
443        // token+rule list labels
444
445        [state setType:_type];
446
447        state.channel = _channel;
448    }
449    @finally {
450        //
451    }
452    return;
453}
454// $ANTLR end "K_INT_TYPE"
455
456// $ANTLR start "K_CHAR"
457- (void) mK_CHAR
458{
459    //
460    /* ruleScopeSetUp */
461
462    @try {
463        NSInteger _type = K_CHAR;
464        NSInteger _channel = ANTLRTokenChannelDefault;
465        // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/simplecTreeParser/SimpleC.g:93:7: ( 'char' ) // ruleBlockSingleAlt
466        // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/simplecTreeParser/SimpleC.g:93:9: 'char' // alt
467        {
468        [self matchString:@"char"];
469          /* element() */
470         /* elements */
471        }
472
473        // token+rule list labels
474
475        [state setType:_type];
476
477        state.channel = _channel;
478    }
479    @finally {
480        //
481    }
482    return;
483}
484// $ANTLR end "K_CHAR"
485
486// $ANTLR start "K_VOID"
487- (void) mK_VOID
488{
489    //
490    /* ruleScopeSetUp */
491
492    @try {
493        NSInteger _type = K_VOID;
494        NSInteger _channel = ANTLRTokenChannelDefault;
495        // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/simplecTreeParser/SimpleC.g:94:7: ( 'void' ) // ruleBlockSingleAlt
496        // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/simplecTreeParser/SimpleC.g:94:9: 'void' // alt
497        {
498        [self matchString:@"void"];
499          /* element() */
500         /* elements */
501        }
502
503        // token+rule list labels
504
505        [state setType:_type];
506
507        state.channel = _channel;
508    }
509    @finally {
510        //
511    }
512    return;
513}
514// $ANTLR end "K_VOID"
515
516// $ANTLR start "K_ID"
517- (void) mK_ID
518{
519    //
520    /* ruleScopeSetUp */
521
522    @try {
523        NSInteger _type = K_ID;
524        NSInteger _channel = ANTLRTokenChannelDefault;
525        // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/simplecTreeParser/SimpleC.g:96:7: ( ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '_' )* ) // ruleBlockSingleAlt
526        // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/simplecTreeParser/SimpleC.g:96:11: ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '_' )* // alt
527        {
528        if ((([input LA:1] >= 'A') && ([input LA:1] <= 'Z'))||[input LA:1] == '_'||(([input LA:1] >= 'a') && ([input LA:1] <= 'z'))) {
529            [input consume];
530
531        } else {
532            ANTLRMismatchedSetException *mse = [ANTLRMismatchedSetException exceptionWithSet:nil stream:input];
533            [self recover:mse];
534            @throw mse;}
535          /* element() */
536        do {
537            NSInteger alt1=2;
538            NSInteger LA1_0 = [input LA:1];
539            if ( ((LA1_0>='0' && LA1_0<='9')||(LA1_0>='A' && LA1_0<='Z')||LA1_0=='_'||(LA1_0>='a' && LA1_0<='z')) ) {
540                alt1=1;
541            }
542
543
544            switch (alt1) {
545                case 1 : ;
546                    // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/simplecTreeParser/SimpleC.g: // alt
547                    {
548                    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'))) {
549                        [input consume];
550
551                    } else {
552                        ANTLRMismatchedSetException *mse = [ANTLRMismatchedSetException exceptionWithSet:nil stream:input];
553                        [self recover:mse];
554                        @throw mse;}
555                      /* element() */
556                     /* elements */
557                    }
558                    break;
559
560                default :
561                    goto loop1;
562            }
563        } while (YES);
564        loop1: ;
565          /* element() */
566         /* elements */
567        }
568
569        // token+rule list labels
570
571        [state setType:_type];
572
573        state.channel = _channel;
574    }
575    @finally {
576        //
577    }
578    return;
579}
580// $ANTLR end "K_ID"
581
582// $ANTLR start "K_INT"
583- (void) mK_INT
584{
585    //
586    /* ruleScopeSetUp */
587
588    @try {
589        NSInteger _type = K_INT;
590        NSInteger _channel = ANTLRTokenChannelDefault;
591        id<ANTLRToken> *int=nil;
592        NSMutableArray *list_int=nil;
593        // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/simplecTreeParser/SimpleC.g:99:7: ( (int+= ( '0' .. '9' ) )+ ) // ruleBlockSingleAlt
594        // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/simplecTreeParser/SimpleC.g:99:9: (int+= ( '0' .. '9' ) )+ // alt
595        {
596        // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/simplecTreeParser/SimpleC.g:99:12: (int+= ( '0' .. '9' ) )+ // positiveClosureBlock
597        NSInteger cnt2=0;
598        do {
599            NSInteger alt2=2;
600            NSInteger LA2_0 = [input LA:1];
601            if ( ((LA2_0>='0' && LA2_0<='9')) ) {
602                alt2=1;
603            }
604
605
606            switch (alt2) {
607                case 1 : ;
608                    // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/simplecTreeParser/SimpleC.g:99:12: int+= ( '0' .. '9' ) // alt
609                    {
610                    // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/simplecTreeParser/SimpleC.g:99:14: ( '0' .. '9' ) // blockSingleAlt
611                    // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/simplecTreeParser/SimpleC.g:99:15: '0' .. '9' // alt
612                    {
613                    [self matchRangeFromChar:'0' to:'9'];   /* element() */
614                     /* elements */
615                    }
616                      /* element() */
617                     /* elements */
618                    }
619                    break;
620
621                default :
622                    if ( cnt2 >= 1 )
623                        goto loop2;
624                    ANTLREarlyExitException *eee = [ANTLREarlyExitException exceptionWithStream:input decisionNumber:2];
625                    @throw eee;
626            }
627            cnt2++;
628        } while (YES);
629        loop2: ;
630          /* element() */
631        NSLog(@"%@", list_int);  /* element() */
632         /* elements */
633        }
634
635        // token+rule list labels
636        [list_int release];
637
638        [state setType:_type];
639
640        state.channel = _channel;
641    }
642    @finally {
643        //
644    }
645    return;
646}
647// $ANTLR end "K_INT"
648
649// $ANTLR start "K_EQ"
650- (void) mK_EQ
651{
652    //
653    /* ruleScopeSetUp */
654
655    @try {
656        NSInteger _type = K_EQ;
657        NSInteger _channel = ANTLRTokenChannelDefault;
658        // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/simplecTreeParser/SimpleC.g:102:8: ( '=' ) // ruleBlockSingleAlt
659        // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/simplecTreeParser/SimpleC.g:102:10: '=' // alt
660        {
661        [self matchChar:'='];
662          /* element() */
663         /* elements */
664        }
665
666        // token+rule list labels
667
668        [state setType:_type];
669
670        state.channel = _channel;
671    }
672    @finally {
673        //
674    }
675    return;
676}
677// $ANTLR end "K_EQ"
678
679// $ANTLR start "K_EQEQ"
680- (void) mK_EQEQ
681{
682    //
683    /* ruleScopeSetUp */
684
685    @try {
686        NSInteger _type = K_EQEQ;
687        NSInteger _channel = ANTLRTokenChannelDefault;
688        // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/simplecTreeParser/SimpleC.g:103:8: ( '==' ) // ruleBlockSingleAlt
689        // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/simplecTreeParser/SimpleC.g:103:10: '==' // alt
690        {
691        [self matchString:@"=="];
692          /* element() */
693         /* elements */
694        }
695
696        // token+rule list labels
697
698        [state setType:_type];
699
700        state.channel = _channel;
701    }
702    @finally {
703        //
704    }
705    return;
706}
707// $ANTLR end "K_EQEQ"
708
709// $ANTLR start "K_LT"
710- (void) mK_LT
711{
712    //
713    /* ruleScopeSetUp */
714
715    @try {
716        NSInteger _type = K_LT;
717        NSInteger _channel = ANTLRTokenChannelDefault;
718        // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/simplecTreeParser/SimpleC.g:104:8: ( '<' ) // ruleBlockSingleAlt
719        // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/simplecTreeParser/SimpleC.g:104:10: '<' // alt
720        {
721        [self matchChar:'<'];
722          /* element() */
723         /* elements */
724        }
725
726        // token+rule list labels
727
728        [state setType:_type];
729
730        state.channel = _channel;
731    }
732    @finally {
733        //
734    }
735    return;
736}
737// $ANTLR end "K_LT"
738
739// $ANTLR start "K_PLUS"
740- (void) mK_PLUS
741{
742    //
743    /* ruleScopeSetUp */
744
745    @try {
746        NSInteger _type = K_PLUS;
747        NSInteger _channel = ANTLRTokenChannelDefault;
748        // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/simplecTreeParser/SimpleC.g:105:8: ( '+' ) // ruleBlockSingleAlt
749        // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/simplecTreeParser/SimpleC.g:105:10: '+' // alt
750        {
751        [self matchChar:'+'];
752          /* element() */
753         /* elements */
754        }
755
756        // token+rule list labels
757
758        [state setType:_type];
759
760        state.channel = _channel;
761    }
762    @finally {
763        //
764    }
765    return;
766}
767// $ANTLR end "K_PLUS"
768
769// $ANTLR start "WS"
770- (void) mWS
771{
772    //
773    /* ruleScopeSetUp */
774
775    @try {
776        NSInteger _type = WS;
777        NSInteger _channel = ANTLRTokenChannelDefault;
778        // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/simplecTreeParser/SimpleC.g:107:5: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ ) // ruleBlockSingleAlt
779        // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/simplecTreeParser/SimpleC.g:107:9: ( ' ' | '\\t' | '\\r' | '\\n' )+ // alt
780        {
781        // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/simplecTreeParser/SimpleC.g:107:9: ( ' ' | '\\t' | '\\r' | '\\n' )+ // positiveClosureBlock
782        NSInteger cnt3=0;
783        do {
784            NSInteger alt3=2;
785            NSInteger LA3_0 = [input LA:1];
786            if ( ((LA3_0>='\t' && LA3_0<='\n')||LA3_0=='\r'||LA3_0==' ') ) {
787                alt3=1;
788            }
789
790
791            switch (alt3) {
792                case 1 : ;
793                    // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/simplecTreeParser/SimpleC.g: // alt
794                    {
795                    if ((([input LA:1] >= '\t') && ([input LA:1] <= '\n'))||[input LA:1] == '\r'||[input LA:1] == ' ') {
796                        [input consume];
797
798                    } else {
799                        ANTLRMismatchedSetException *mse = [ANTLRMismatchedSetException exceptionWithSet:nil stream:input];
800                        [self recover:mse];
801                        @throw mse;}
802                      /* element() */
803                     /* elements */
804                    }
805                    break;
806
807                default :
808                    if ( cnt3 >= 1 )
809                        goto loop3;
810                    ANTLREarlyExitException *eee = [ANTLREarlyExitException exceptionWithStream:input decisionNumber:3];
811                    @throw eee;
812            }
813            cnt3++;
814        } while (YES);
815        loop3: ;
816          /* element() */
817         state.channel=99;   /* element() */
818         /* elements */
819        }
820
821        // token+rule list labels
822
823        [state setType:_type];
824
825        state.channel = _channel;
826    }
827    @finally {
828        //
829    }
830    return;
831}
832// $ANTLR end "WS"
833
834- (void) mTokens
835{
836    // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/simplecTreeParser/SimpleC.g:1:8: ( T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | K_FOR | K_INT_TYPE | K_CHAR | K_VOID | K_ID | K_INT | K_EQ | K_EQEQ | K_LT | K_PLUS | WS ) //ruleblock
837    NSInteger alt4=17;
838    alt4 = [dfa4 predict:input];
839    switch (alt4) {
840        case 1 : ;
841            // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/simplecTreeParser/SimpleC.g:1:10: T__21 // alt
842            {
843                [self mT__21];
844              /* element() */
845             /* elements */
846            }
847            break;
848        case 2 : ;
849            // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/simplecTreeParser/SimpleC.g:1:16: T__22 // alt
850            {
851                [self mT__22];
852              /* element() */
853             /* elements */
854            }
855            break;
856        case 3 : ;
857            // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/simplecTreeParser/SimpleC.g:1:22: T__23 // alt
858            {
859                [self mT__23];
860              /* element() */
861             /* elements */
862            }
863            break;
864        case 4 : ;
865            // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/simplecTreeParser/SimpleC.g:1:28: T__24 // alt
866            {
867                [self mT__24];
868              /* element() */
869             /* elements */
870            }
871            break;
872        case 5 : ;
873            // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/simplecTreeParser/SimpleC.g:1:34: T__25 // alt
874            {
875                [self mT__25];
876              /* element() */
877             /* elements */
878            }
879            break;
880        case 6 : ;
881            // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/simplecTreeParser/SimpleC.g:1:40: T__26 // alt
882            {
883                [self mT__26];
884              /* element() */
885             /* elements */
886            }
887            break;
888        case 7 : ;
889            // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/simplecTreeParser/SimpleC.g:1:46: K_FOR // alt
890            {
891                [self mK_FOR];
892              /* element() */
893             /* elements */
894            }
895            break;
896        case 8 : ;
897            // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/simplecTreeParser/SimpleC.g:1:52: K_INT_TYPE // alt
898            {
899                [self mK_INT_TYPE];
900              /* element() */
901             /* elements */
902            }
903            break;
904        case 9 : ;
905            // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/simplecTreeParser/SimpleC.g:1:63: K_CHAR // alt
906            {
907                [self mK_CHAR];
908              /* element() */
909             /* elements */
910            }
911            break;
912        case 10 : ;
913            // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/simplecTreeParser/SimpleC.g:1:70: K_VOID // alt
914            {
915                [self mK_VOID];
916              /* element() */
917             /* elements */
918            }
919            break;
920        case 11 : ;
921            // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/simplecTreeParser/SimpleC.g:1:77: K_ID // alt
922            {
923                [self mK_ID];
924              /* element() */
925             /* elements */
926            }
927            break;
928        case 12 : ;
929            // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/simplecTreeParser/SimpleC.g:1:82: K_INT // alt
930            {
931                [self mK_INT];
932              /* element() */
933             /* elements */
934            }
935            break;
936        case 13 : ;
937            // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/simplecTreeParser/SimpleC.g:1:88: K_EQ // alt
938            {
939                [self mK_EQ];
940              /* element() */
941             /* elements */
942            }
943            break;
944        case 14 : ;
945            // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/simplecTreeParser/SimpleC.g:1:93: K_EQEQ // alt
946            {
947                [self mK_EQEQ];
948              /* element() */
949             /* elements */
950            }
951            break;
952        case 15 : ;
953            // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/simplecTreeParser/SimpleC.g:1:100: K_LT // alt
954            {
955                [self mK_LT];
956              /* element() */
957             /* elements */
958            }
959            break;
960        case 16 : ;
961            // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/simplecTreeParser/SimpleC.g:1:105: K_PLUS // alt
962            {
963                [self mK_PLUS];
964              /* element() */
965             /* elements */
966            }
967            break;
968        case 17 : ;
969            // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/simplecTreeParser/SimpleC.g:1:112: WS // alt
970            {
971                [self mWS];
972              /* element() */
973             /* elements */
974            }
975            break;
976
977    }
978
979}
980
981@end /* end of SimpleCLexer implementation line 397 */
982
983/* End of code
984 * =============================================================================
985 */
986