Home | History | Annotate | Download | only in scopes
      1 /** \file
      2  *  This OBJC source file was generated by $ANTLR version ${project.version} ${buildNumber}
      3  *
      4  *     -  From the grammar source file : SymbolTable.g
      5  *     -                            On : 2011-05-06 15:04:43
      6  *     -                 for the lexer : SymbolTableLexerLexer
      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} SymbolTable.g 2011-05-06 15:04:43
     15 
     16 
     17 /* -----------------------------------------
     18  * Include the ANTLR3 generated header file.
     19  */
     20 #import "SymbolTableLexer.h"
     21 /* ----------------------------------------- */
     22 
     23 
     24 /* ============================================================================= */
     25 /* =============================================================================
     26  * Start of recognizer
     27  */
     28 
     29 /** As per Terence: No returns for lexer rules! */
     30 @implementation SymbolTableLexer // line 330
     31 
     32 + (void) initialize
     33 {
     34     [ANTLRBaseRecognizer setGrammarFileName:@"SymbolTable.g"];
     35 }
     36 
     37 + (NSString *) tokenNameForType:(NSInteger)aTokenType
     38 {
     39     return [[self getTokenNames] objectAtIndex:aTokenType];
     40 }
     41 
     42 + (SymbolTableLexer *)newSymbolTableLexerWithCharStream:(id<ANTLRCharStream>)anInput
     43 {
     44     return [[SymbolTableLexer alloc] initWithCharStream:anInput];
     45 }
     46 
     47 - (id) initWithCharStream:(id<ANTLRCharStream>)anInput
     48 {
     49     self = [super initWithCharStream:anInput State:[[ANTLRRecognizerSharedState newANTLRRecognizerSharedStateWithRuleLen:12+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 "T__7"
     67 - (void) mT__7
     68 {
     69     //
     70     /* my ruleScopeSetUp */
     71     /* Terence's stuff */
     72 
     73     @try {
     74         NSInteger _type = T__7;
     75         NSInteger _channel = ANTLRTokenChannelDefault;
     76         // SymbolTable.g:7:6: ( '(' ) // ruleBlockSingleAlt
     77         // SymbolTable.g:7:8: '(' // alt
     78         {
     79         [self matchChar:'('];
     80 
     81 
     82         }
     83 
     84         // token+rule list labels
     85 
     86         state.type = _type;
     87         state.channel = _channel;
     88     }
     89     @finally {
     90         //
     91         /* Terence's stuff */
     92 
     93     }
     94     return;
     95 }
     96 /* $ANTLR end "T__7" */
     97 
     98 // $ANTLR start "T__8"
     99 - (void) mT__8
    100 {
    101     //
    102     /* my ruleScopeSetUp */
    103     /* Terence's stuff */
    104 
    105     @try {
    106         NSInteger _type = T__8;
    107         NSInteger _channel = ANTLRTokenChannelDefault;
    108         // SymbolTable.g:8:6: ( ')' ) // ruleBlockSingleAlt
    109         // SymbolTable.g:8:8: ')' // alt
    110         {
    111         [self matchChar:')'];
    112 
    113 
    114         }
    115 
    116         // token+rule list labels
    117 
    118         state.type = _type;
    119         state.channel = _channel;
    120     }
    121     @finally {
    122         //
    123         /* Terence's stuff */
    124 
    125     }
    126     return;
    127 }
    128 /* $ANTLR end "T__8" */
    129 
    130 // $ANTLR start "T__9"
    131 - (void) mT__9
    132 {
    133     //
    134     /* my ruleScopeSetUp */
    135     /* Terence's stuff */
    136 
    137     @try {
    138         NSInteger _type = T__9;
    139         NSInteger _channel = ANTLRTokenChannelDefault;
    140         // SymbolTable.g:9:6: ( ';' ) // ruleBlockSingleAlt
    141         // SymbolTable.g:9:8: ';' // alt
    142         {
    143         [self matchChar:';'];
    144 
    145 
    146         }
    147 
    148         // token+rule list labels
    149 
    150         state.type = _type;
    151         state.channel = _channel;
    152     }
    153     @finally {
    154         //
    155         /* Terence's stuff */
    156 
    157     }
    158     return;
    159 }
    160 /* $ANTLR end "T__9" */
    161 
    162 // $ANTLR start "T__10"
    163 - (void) mT__10
    164 {
    165     //
    166     /* my ruleScopeSetUp */
    167     /* Terence's stuff */
    168 
    169     @try {
    170         NSInteger _type = T__10;
    171         NSInteger _channel = ANTLRTokenChannelDefault;
    172         // SymbolTable.g:10:7: ( '=' ) // ruleBlockSingleAlt
    173         // SymbolTable.g:10:9: '=' // alt
    174         {
    175         [self matchChar:'='];
    176 
    177 
    178         }
    179 
    180         // token+rule list labels
    181 
    182         state.type = _type;
    183         state.channel = _channel;
    184     }
    185     @finally {
    186         //
    187         /* Terence's stuff */
    188 
    189     }
    190     return;
    191 }
    192 /* $ANTLR end "T__10" */
    193 
    194 // $ANTLR start "T__11"
    195 - (void) mT__11
    196 {
    197     //
    198     /* my ruleScopeSetUp */
    199     /* Terence's stuff */
    200 
    201     @try {
    202         NSInteger _type = T__11;
    203         NSInteger _channel = ANTLRTokenChannelDefault;
    204         // SymbolTable.g:11:7: ( 'int' ) // ruleBlockSingleAlt
    205         // SymbolTable.g:11:9: 'int' // alt
    206         {
    207         [self matchString:@"int"];
    208 
    209 
    210 
    211         }
    212 
    213         // token+rule list labels
    214 
    215         state.type = _type;
    216         state.channel = _channel;
    217     }
    218     @finally {
    219         //
    220         /* Terence's stuff */
    221 
    222     }
    223     return;
    224 }
    225 /* $ANTLR end "T__11" */
    226 
    227 // $ANTLR start "T__12"
    228 - (void) mT__12
    229 {
    230     //
    231     /* my ruleScopeSetUp */
    232     /* Terence's stuff */
    233 
    234     @try {
    235         NSInteger _type = T__12;
    236         NSInteger _channel = ANTLRTokenChannelDefault;
    237         // SymbolTable.g:12:7: ( 'method' ) // ruleBlockSingleAlt
    238         // SymbolTable.g:12:9: 'method' // alt
    239         {
    240         [self matchString:@"method"];
    241 
    242 
    243 
    244         }
    245 
    246         // token+rule list labels
    247 
    248         state.type = _type;
    249         state.channel = _channel;
    250     }
    251     @finally {
    252         //
    253         /* Terence's stuff */
    254 
    255     }
    256     return;
    257 }
    258 /* $ANTLR end "T__12" */
    259 
    260 // $ANTLR start "T__13"
    261 - (void) mT__13
    262 {
    263     //
    264     /* my ruleScopeSetUp */
    265     /* Terence's stuff */
    266 
    267     @try {
    268         NSInteger _type = T__13;
    269         NSInteger _channel = ANTLRTokenChannelDefault;
    270         // SymbolTable.g:13:7: ( '{' ) // ruleBlockSingleAlt
    271         // SymbolTable.g:13:9: '{' // alt
    272         {
    273         [self matchChar:'{'];
    274 
    275 
    276         }
    277 
    278         // token+rule list labels
    279 
    280         state.type = _type;
    281         state.channel = _channel;
    282     }
    283     @finally {
    284         //
    285         /* Terence's stuff */
    286 
    287     }
    288     return;
    289 }
    290 /* $ANTLR end "T__13" */
    291 
    292 // $ANTLR start "T__14"
    293 - (void) mT__14
    294 {
    295     //
    296     /* my ruleScopeSetUp */
    297     /* Terence's stuff */
    298 
    299     @try {
    300         NSInteger _type = T__14;
    301         NSInteger _channel = ANTLRTokenChannelDefault;
    302         // SymbolTable.g:14:7: ( '}' ) // ruleBlockSingleAlt
    303         // SymbolTable.g:14:9: '}' // alt
    304         {
    305         [self matchChar:'}'];
    306 
    307 
    308         }
    309 
    310         // token+rule list labels
    311 
    312         state.type = _type;
    313         state.channel = _channel;
    314     }
    315     @finally {
    316         //
    317         /* Terence's stuff */
    318 
    319     }
    320     return;
    321 }
    322 /* $ANTLR end "T__14" */
    323 
    324 // $ANTLR start "ID"
    325 - (void) mID
    326 {
    327     //
    328     /* my ruleScopeSetUp */
    329     /* Terence's stuff */
    330 
    331     @try {
    332         NSInteger _type = ID;
    333         NSInteger _channel = ANTLRTokenChannelDefault;
    334         // SymbolTable.g:68:5: ( ( 'a' .. 'z' )+ ) // ruleBlockSingleAlt
    335         // SymbolTable.g:68:9: ( 'a' .. 'z' )+ // alt
    336         {
    337         // SymbolTable.g:68:9: ( 'a' .. 'z' )+ // positiveClosureBlock
    338         NSInteger cnt1 = 0;
    339         do {
    340             NSInteger alt1 = 2;
    341             NSInteger LA1_0 = [input LA:1];
    342             if ( ((LA1_0 >= 'a' && LA1_0 <= 'z')) ) {
    343                 alt1=1;
    344             }
    345 
    346 
    347             switch (alt1) {
    348                 case 1 : ;
    349                     // SymbolTable.g: // alt
    350                     {
    351                     if ((([input LA:1] >= 'a') && ([input LA:1] <= 'z'))) {
    352                         [input consume];
    353                     } else {
    354                         ANTLRMismatchedSetException *mse = [ANTLRMismatchedSetException newException:nil stream:input];
    355                         [self recover:mse];
    356                         @throw mse;
    357                     }
    358 
    359 
    360                     }
    361                     break;
    362 
    363                 default :
    364                     if ( cnt1 >= 1 )
    365                         goto loop1;
    366                     ANTLREarlyExitException *eee =
    367                         [ANTLREarlyExitException newException:input decisionNumber:1];
    368                     @throw eee;
    369             }
    370             cnt1++;
    371         } while (YES);
    372         loop1: ;
    373 
    374 
    375         }
    376 
    377         // token+rule list labels
    378 
    379         state.type = _type;
    380         state.channel = _channel;
    381     }
    382     @finally {
    383         //
    384         /* Terence's stuff */
    385 
    386     }
    387     return;
    388 }
    389 /* $ANTLR end "ID" */
    390 
    391 // $ANTLR start "INT"
    392 - (void) mINT
    393 {
    394     //
    395     /* my ruleScopeSetUp */
    396     /* Terence's stuff */
    397 
    398     @try {
    399         NSInteger _type = INT;
    400         NSInteger _channel = ANTLRTokenChannelDefault;
    401         // SymbolTable.g:71:5: ( ( '0' .. '9' )+ ) // ruleBlockSingleAlt
    402         // SymbolTable.g:71:9: ( '0' .. '9' )+ // alt
    403         {
    404         // SymbolTable.g:71:9: ( '0' .. '9' )+ // positiveClosureBlock
    405         NSInteger cnt2 = 0;
    406         do {
    407             NSInteger alt2 = 2;
    408             NSInteger LA2_0 = [input LA:1];
    409             if ( ((LA2_0 >= '0' && LA2_0 <= '9')) ) {
    410                 alt2=1;
    411             }
    412 
    413 
    414             switch (alt2) {
    415                 case 1 : ;
    416                     // SymbolTable.g: // alt
    417                     {
    418                     if ((([input LA:1] >= '0') && ([input LA:1] <= '9'))) {
    419                         [input consume];
    420                     } else {
    421                         ANTLRMismatchedSetException *mse = [ANTLRMismatchedSetException newException:nil stream:input];
    422                         [self recover:mse];
    423                         @throw mse;
    424                     }
    425 
    426 
    427                     }
    428                     break;
    429 
    430                 default :
    431                     if ( cnt2 >= 1 )
    432                         goto loop2;
    433                     ANTLREarlyExitException *eee =
    434                         [ANTLREarlyExitException newException:input decisionNumber:2];
    435                     @throw eee;
    436             }
    437             cnt2++;
    438         } while (YES);
    439         loop2: ;
    440 
    441 
    442         }
    443 
    444         // token+rule list labels
    445 
    446         state.type = _type;
    447         state.channel = _channel;
    448     }
    449     @finally {
    450         //
    451         /* Terence's stuff */
    452 
    453     }
    454     return;
    455 }
    456 /* $ANTLR end "INT" */
    457 
    458 // $ANTLR start "WS"
    459 - (void) mWS
    460 {
    461     //
    462     /* my ruleScopeSetUp */
    463     /* Terence's stuff */
    464 
    465     @try {
    466         NSInteger _type = WS;
    467         NSInteger _channel = ANTLRTokenChannelDefault;
    468         // SymbolTable.g:74:5: ( ( ' ' | '\\n' | '\\r' )+ ) // ruleBlockSingleAlt
    469         // SymbolTable.g:74:9: ( ' ' | '\\n' | '\\r' )+ // alt
    470         {
    471         // SymbolTable.g:74:9: ( ' ' | '\\n' | '\\r' )+ // positiveClosureBlock
    472         NSInteger cnt3 = 0;
    473         do {
    474             NSInteger alt3 = 2;
    475             NSInteger LA3_0 = [input LA:1];
    476             if ( (LA3_0=='\n'||LA3_0=='\r'||LA3_0==' ') ) {
    477                 alt3=1;
    478             }
    479 
    480 
    481             switch (alt3) {
    482                 case 1 : ;
    483                     // SymbolTable.g: // alt
    484                     {
    485                     if ([input LA:1] == '\n'||[input LA:1] == '\r'||[input LA:1] == ' ') {
    486                         [input consume];
    487                     } else {
    488                         ANTLRMismatchedSetException *mse = [ANTLRMismatchedSetException newException:nil stream:input];
    489                         [self recover:mse];
    490                         @throw mse;
    491                     }
    492 
    493 
    494                     }
    495                     break;
    496 
    497                 default :
    498                     if ( cnt3 >= 1 )
    499                         goto loop3;
    500                     ANTLREarlyExitException *eee =
    501                         [ANTLREarlyExitException newException:input decisionNumber:3];
    502                     @throw eee;
    503             }
    504             cnt3++;
    505         } while (YES);
    506         loop3: ;
    507 
    508 
    509         _channel=HIDDEN;
    510 
    511 
    512         }
    513 
    514         // token+rule list labels
    515 
    516         state.type = _type;
    517         state.channel = _channel;
    518     }
    519     @finally {
    520         //
    521         /* Terence's stuff */
    522 
    523     }
    524     return;
    525 }
    526 /* $ANTLR end "WS" */
    527 
    528 - (void) mTokens
    529 {
    530     // SymbolTable.g:1:8: ( T__7 | T__8 | T__9 | T__10 | T__11 | T__12 | T__13 | T__14 | ID | INT | WS ) //ruleblock
    531     NSInteger alt4=11;
    532     unichar charLA4 = [input LA:1];
    533     switch (charLA4) {
    534         case '(': ;
    535             {
    536             alt4=1;
    537             }
    538             break;
    539         case ')': ;
    540             {
    541             alt4=2;
    542             }
    543             break;
    544         case ';': ;
    545             {
    546             alt4=3;
    547             }
    548             break;
    549         case '=': ;
    550             {
    551             alt4=4;
    552             }
    553             break;
    554         case 'i': ;
    555             {
    556             NSInteger LA4_5 = [input LA:2];
    557 
    558             if ( (LA4_5=='n') ) {
    559                 NSInteger LA4_12 = [input LA:3];
    560 
    561                 if ( (LA4_12=='t') ) {
    562                     NSInteger LA4_14 = [input LA:4];
    563 
    564                     if ( ((LA4_14 >= 'a' && LA4_14 <= 'z')) ) {
    565                         alt4=9;
    566                     }
    567                     else {
    568                         alt4 = 5;
    569                     }
    570                 }
    571                 else {
    572                     alt4 = 9;
    573                 }
    574             }
    575             else {
    576                 alt4 = 9;
    577             }
    578             }
    579             break;
    580         case 'm': ;
    581             {
    582             NSInteger LA4_6 = [input LA:2];
    583 
    584             if ( (LA4_6=='e') ) {
    585                 NSInteger LA4_13 = [input LA:3];
    586 
    587                 if ( (LA4_13=='t') ) {
    588                     NSInteger LA4_15 = [input LA:4];
    589 
    590                     if ( (LA4_15=='h') ) {
    591                         NSInteger LA4_17 = [input LA:5];
    592 
    593                         if ( (LA4_17=='o') ) {
    594                             NSInteger LA4_18 = [input LA:6];
    595 
    596                             if ( (LA4_18=='d') ) {
    597                                 NSInteger LA4_19 = [input LA:7];
    598 
    599                                 if ( ((LA4_19 >= 'a' && LA4_19 <= 'z')) ) {
    600                                     alt4=9;
    601                                 }
    602                                 else {
    603                                     alt4 = 6;
    604                                 }
    605                             }
    606                             else {
    607                                 alt4 = 9;
    608                             }
    609                         }
    610                         else {
    611                             alt4 = 9;
    612                         }
    613                     }
    614                     else {
    615                         alt4 = 9;
    616                     }
    617                 }
    618                 else {
    619                     alt4 = 9;
    620                 }
    621             }
    622             else {
    623                 alt4 = 9;
    624             }
    625             }
    626             break;
    627         case '{': ;
    628             {
    629             alt4=7;
    630             }
    631             break;
    632         case '}': ;
    633             {
    634             alt4=8;
    635             }
    636             break;
    637         case 'a': ;
    638         case 'b': ;
    639         case 'c': ;
    640         case 'd': ;
    641         case 'e': ;
    642         case 'f': ;
    643         case 'g': ;
    644         case 'h': ;
    645         case 'j': ;
    646         case 'k': ;
    647         case 'l': ;
    648         case 'n': ;
    649         case 'o': ;
    650         case 'p': ;
    651         case 'q': ;
    652         case 'r': ;
    653         case 's': ;
    654         case 't': ;
    655         case 'u': ;
    656         case 'v': ;
    657         case 'w': ;
    658         case 'x': ;
    659         case 'y': ;
    660         case 'z': ;
    661             {
    662             alt4=9;
    663             }
    664             break;
    665         case '0': ;
    666         case '1': ;
    667         case '2': ;
    668         case '3': ;
    669         case '4': ;
    670         case '5': ;
    671         case '6': ;
    672         case '7': ;
    673         case '8': ;
    674         case '9': ;
    675             {
    676             alt4=10;
    677             }
    678             break;
    679         case '\n': ;
    680         case '\r': ;
    681         case ' ': ;
    682             {
    683             alt4=11;
    684             }
    685             break;
    686 
    687     default: ;
    688         ANTLRNoViableAltException *nvae = [ANTLRNoViableAltException newException:4 state:0 stream:input];
    689         nvae.c = charLA4;
    690         @throw nvae;
    691 
    692     }
    693 
    694     switch (alt4) {
    695         case 1 : ;
    696             // SymbolTable.g:1:10: T__7 // alt
    697             {
    698             [self mT__7];
    699 
    700 
    701 
    702             }
    703             break;
    704         case 2 : ;
    705             // SymbolTable.g:1:15: T__8 // alt
    706             {
    707             [self mT__8];
    708 
    709 
    710 
    711             }
    712             break;
    713         case 3 : ;
    714             // SymbolTable.g:1:20: T__9 // alt
    715             {
    716             [self mT__9];
    717 
    718 
    719 
    720             }
    721             break;
    722         case 4 : ;
    723             // SymbolTable.g:1:25: T__10 // alt
    724             {
    725             [self mT__10];
    726 
    727 
    728 
    729             }
    730             break;
    731         case 5 : ;
    732             // SymbolTable.g:1:31: T__11 // alt
    733             {
    734             [self mT__11];
    735 
    736 
    737 
    738             }
    739             break;
    740         case 6 : ;
    741             // SymbolTable.g:1:37: T__12 // alt
    742             {
    743             [self mT__12];
    744 
    745 
    746 
    747             }
    748             break;
    749         case 7 : ;
    750             // SymbolTable.g:1:43: T__13 // alt
    751             {
    752             [self mT__13];
    753 
    754 
    755 
    756             }
    757             break;
    758         case 8 : ;
    759             // SymbolTable.g:1:49: T__14 // alt
    760             {
    761             [self mT__14];
    762 
    763 
    764 
    765             }
    766             break;
    767         case 9 : ;
    768             // SymbolTable.g:1:55: ID // alt
    769             {
    770             [self mID];
    771 
    772 
    773 
    774             }
    775             break;
    776         case 10 : ;
    777             // SymbolTable.g:1:58: INT // alt
    778             {
    779             [self mINT];
    780 
    781 
    782 
    783             }
    784             break;
    785         case 11 : ;
    786             // SymbolTable.g:1:62: WS // alt
    787             {
    788             [self mWS];
    789 
    790 
    791 
    792             }
    793             break;
    794 
    795     }
    796 
    797 }
    798 
    799 @end /* end of SymbolTableLexer implementation line 397 */