Home | History | Annotate | Download | only in treerewrite
      1 /** \file
      2  *  This OBJC source file was generated by $ANTLR version ${project.version} ${buildNumber}
      3  *
      4  *     -  From the grammar source file : TreeRewrite.g
      5  *     -                            On : 2011-05-06 18:56:28
      6  *     -                 for the lexer : TreeRewriteLexerLexer
      7  *
      8  * Editing it, at least manually, is not wise.
      9  *
     10  * ObjC language generator and runtime by Alan Condit, acondit|hereisanat|ipns|dotgoeshere|com.
     11  *
     12  *
     13 */
     14 // $ANTLR ${project.version} ${buildNumber} TreeRewrite.g 2011-05-06 18:56:28
     15 
     16 
     17 /* -----------------------------------------
     18  * Include the ANTLR3 generated header file.
     19  */
     20 #import "TreeRewriteLexer.h"
     21 /* ----------------------------------------- */
     22 
     23 
     24 /* ============================================================================= */
     25 /* =============================================================================
     26  * Start of recognizer
     27  */
     28 
     29 /** As per Terence: No returns for lexer rules! */
     30 @implementation TreeRewriteLexer // line 330
     31 
     32 + (void) initialize
     33 {
     34     [ANTLRBaseRecognizer setGrammarFileName:@"TreeRewrite.g"];
     35 }
     36 
     37 + (NSString *) tokenNameForType:(NSInteger)aTokenType
     38 {
     39     return [[self getTokenNames] objectAtIndex:aTokenType];
     40 }
     41 
     42 + (TreeRewriteLexer *)newTreeRewriteLexerWithCharStream:(id<ANTLRCharStream>)anInput
     43 {
     44     return [[TreeRewriteLexer alloc] initWithCharStream:anInput];
     45 }
     46 
     47 - (id) initWithCharStream:(id<ANTLRCharStream>)anInput
     48 {
     49     self = [super initWithCharStream:anInput State:[[ANTLRRecognizerSharedState newANTLRRecognizerSharedStateWithRuleLen:3+1] retain]];
     50     if ( self != nil ) {
     51     }
     52     return self;
     53 }
     54 
     55 - (void) dealloc
     56 {
     57     [super dealloc];
     58 }
     59 
     60 /* ObjC Start of actions.lexer.methods */
     61 /* ObjC end of actions.lexer.methods */
     62 /* ObjC start methods() */
     63 /* ObjC end methods() */
     64 
     65 /* Start of Rules */
     66 // $ANTLR start "INT"
     67 - (void) mINT
     68 {
     69     //
     70     /* my ruleScopeSetUp */
     71     /* Terence's stuff */
     72 
     73     @try {
     74         NSInteger _type = INT;
     75         NSInteger _channel = ANTLRTokenChannelDefault;
     76         // TreeRewrite.g:15:5: ( ( '0' .. '9' )+ ) // ruleBlockSingleAlt
     77         // TreeRewrite.g:15:7: ( '0' .. '9' )+ // alt
     78         {
     79         // TreeRewrite.g:15:7: ( '0' .. '9' )+ // positiveClosureBlock
     80         NSInteger cnt1 = 0;
     81         do {
     82             NSInteger alt1 = 2;
     83             NSInteger LA1_0 = [input LA:1];
     84             if ( ((LA1_0 >= '0' && LA1_0 <= '9')) ) {
     85                 alt1=1;
     86             }
     87 
     88 
     89             switch (alt1) {
     90                 case 1 : ;
     91                     // TreeRewrite.g: // alt
     92                     {
     93                     if ((([input LA:1] >= '0') && ([input LA:1] <= '9'))) {
     94                         [input consume];
     95                     } else {
     96                         ANTLRMismatchedSetException *mse = [ANTLRMismatchedSetException newException:nil stream:input];
     97                         [self recover:mse];
     98                         @throw mse;
     99                     }
    100 
    101 
    102                     }
    103                     break;
    104 
    105                 default :
    106                     if ( cnt1 >= 1 )
    107                         goto loop1;
    108                     ANTLREarlyExitException *eee =
    109                         [ANTLREarlyExitException newException:input decisionNumber:1];
    110                     @throw eee;
    111             }
    112             cnt1++;
    113         } while (YES);
    114         loop1: ;
    115 
    116 
    117         }
    118 
    119         // token+rule list labels
    120 
    121         state.type = _type;
    122         state.channel = _channel;
    123     }
    124     @finally {
    125         //
    126         /* Terence's stuff */
    127 
    128     }
    129     return;
    130 }
    131 /* $ANTLR end "INT" */
    132 
    133 // $ANTLR start "WS"
    134 - (void) mWS
    135 {
    136     //
    137     /* my ruleScopeSetUp */
    138     /* Terence's stuff */
    139 
    140     @try {
    141         NSInteger _type = WS;
    142         NSInteger _channel = ANTLRTokenChannelDefault;
    143         // TreeRewrite.g:18:5: ( ' ' ) // ruleBlockSingleAlt
    144         // TreeRewrite.g:18:9: ' ' // alt
    145         {
    146         [self matchChar:' '];
    147 
    148 
    149         _channel=HIDDEN;
    150 
    151 
    152         }
    153 
    154         // token+rule list labels
    155 
    156         state.type = _type;
    157         state.channel = _channel;
    158     }
    159     @finally {
    160         //
    161         /* Terence's stuff */
    162 
    163     }
    164     return;
    165 }
    166 /* $ANTLR end "WS" */
    167 
    168 - (void) mTokens
    169 {
    170     // TreeRewrite.g:1:8: ( INT | WS ) //ruleblock
    171     NSInteger alt2=2;
    172     NSInteger LA2_0 = [input LA:1];
    173 
    174     if ( ((LA2_0 >= '0' && LA2_0 <= '9')) ) {
    175         alt2=1;
    176     }
    177     else if ( (LA2_0==' ') ) {
    178         alt2=2;
    179     }
    180     else {
    181         ANTLRNoViableAltException *nvae = [ANTLRNoViableAltException newException:2 state:0 stream:input];
    182         nvae.c = LA2_0;
    183         @throw nvae;
    184 
    185     }
    186     switch (alt2) {
    187         case 1 : ;
    188             // TreeRewrite.g:1:10: INT // alt
    189             {
    190             [self mINT];
    191 
    192 
    193 
    194             }
    195             break;
    196         case 2 : ;
    197             // TreeRewrite.g:1:14: WS // alt
    198             {
    199             [self mWS];
    200 
    201 
    202 
    203             }
    204             break;
    205 
    206     }
    207 
    208 }
    209 
    210 @end /* end of TreeRewriteLexer implementation line 397 */