Home | History | Annotate | Download | only in output1
      1 /** \file
      2  *  This OBJC source file was generated by $ANTLR version 3.2 Aug 07, 2010 22:08:38
      3  *
      4  *     -  From the grammar source file : /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/lexertest-simple/TestLexer.g
      5  *     -                            On : 2010-08-11 13:41:44
      6  *     -                 for the lexer : TestLexerLexer *
      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 07, 2010 22:08:38 /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/lexertest-simple/TestLexer.g 2010-08-11 13:41:44
     41 
     42 /* -----------------------------------------
     43  * Include the ANTLR3 generated header file.
     44  */
     45 #import "TestLexer.h"
     46 /* ----------------------------------------- */
     47 
     48 
     49 /* ============================================================================= */
     50 
     51 /* =============================================================================
     52  * Start of recognizer
     53  */
     54 
     55 
     56 /** As per Terence: No returns for lexer rules!
     57 #pragma mark Rule return scopes start
     58 #pragma mark Rule return scopes end
     59 */
     60 @implementation TestLexer
     61 
     62 
     63 + (void) initialize
     64 {
     65     [ANTLRBaseRecognizer setGrammarFileName:@"/usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/lexertest-simple/TestLexer.g"];
     66 }
     67 
     68 - (id) initWithCharStream:(id<ANTLRCharStream>)anInput
     69 {
     70     if ((self = [super initWithCharStream:anInput State:[ANTLRRecognizerSharedState newANTLRRecognizerSharedStateWithRuleLen:4+1]]) != nil) {
     71     }
     72     return self;
     73 }
     74 
     75 - (void) dealloc
     76 {
     77     [super dealloc];
     78 }
     79 
     80 + (NSString *) tokenNameForType:(NSInteger)aTokenType
     81 {
     82     return [[self getTokenNames] objectAtIndex:aTokenType];
     83 }
     84 
     85 // $ANTLR start "ID"
     86 - (void) mID
     87 {
     88     //
     89     // This is not in the Java.stg
     90 
     91     @try {
     92         NSInteger _type = ID;
     93         NSInteger _channel = ANTLRTokenChannelDefault;
     94         // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/lexertest-simple/TestLexer.g:8:4: ( LETTER ( LETTER | DIGIT )* ) // ruleBlockSingleAlt
     95         // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/lexertest-simple/TestLexer.g:8:6: LETTER ( LETTER | DIGIT )* // alt
     96         {
     97             [self mLETTER];
     98 
     99           /* element() */
    100         do {
    101             NSInteger alt1=2;
    102             {
    103                 NSInteger LA1_0 = [input LA:1];
    104                 if ( (LA1_0>='0' && LA1_0<='9')||(LA1_0>='A' && LA1_0<='Z')||(LA1_0>='a' && LA1_0<='z') ) {
    105                     alt1=1;
    106                 }
    107 
    108             }
    109             switch (alt1) {
    110                 case 1 :
    111                     // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/lexertest-simple/TestLexer.g: // alt
    112                     {
    113                     if (([input LA:1]>='0' && [input LA:1]<='9')||([input LA:1]>='A' && [input LA:1]<='Z')||([input LA:1]>='a' && [input LA:1]<='z')) {
    114                         [input consume];
    115 
    116                     } else {
    117                         ANTLRMismatchedSetException *mse = [ANTLRMismatchedSetException exceptionWithSet:nil stream:input];
    118                         [self recover:mse];
    119                         @throw mse;}
    120                       /* element() */
    121                      /* elements */
    122                     }
    123                     break;
    124 
    125                 default :
    126                     goto loop1;
    127             }
    128         } while (YES);
    129         loop1: ;
    130           /* element() */
    131          /* elements */
    132         }
    133 
    134         // token+rule list labels
    135 
    136         [state setType:_type];
    137 
    138         state.channel = _channel;
    139     }
    140     @finally {
    141         //
    142     }
    143     return;
    144 }
    145 // $ANTLR end ID
    146 
    147 // $ANTLR start "DIGIT"
    148 - (void) mDIGIT
    149 {
    150     //
    151     // This is not in the Java.stg
    152 
    153     @try {
    154         // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/lexertest-simple/TestLexer.g:11:16: ( '0' .. '9' ) // ruleBlockSingleAlt
    155         // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/lexertest-simple/TestLexer.g:11:18: '0' .. '9' // alt
    156         {
    157         [self matchRangeFromChar:'0' to:'9'];   /* element() */
    158          /* elements */
    159         }
    160 
    161     }
    162     @finally {
    163         //
    164     }
    165     return;
    166 }
    167 // $ANTLR end DIGIT
    168 
    169 // $ANTLR start "LETTER"
    170 - (void) mLETTER
    171 {
    172     //
    173     // This is not in the Java.stg
    174 
    175     @try {
    176         // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/lexertest-simple/TestLexer.g:15:2: ( 'a' .. 'z' | 'A' .. 'Z' ) // ruleBlockSingleAlt
    177         // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/lexertest-simple/TestLexer.g: // alt
    178         {
    179         if (([input LA:1]>='A' && [input LA:1]<='Z')||([input LA:1]>='a' && [input LA:1]<='z')) {
    180             [input consume];
    181 
    182         } else {
    183             ANTLRMismatchedSetException *mse = [ANTLRMismatchedSetException exceptionWithSet:nil stream:input];
    184             [self recover:mse];
    185             @throw mse;}
    186           /* element() */
    187          /* elements */
    188         }
    189 
    190     }
    191     @finally {
    192         //
    193     }
    194     return;
    195 }
    196 // $ANTLR end LETTER
    197 
    198 - (void) mTokens
    199 {
    200     // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/lexertest-simple/TestLexer.g:1:8: ( ID ) // ruleBlockSingleAlt
    201     // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/lexertest-simple/TestLexer.g:1:10: ID // alt
    202     {
    203         [self mID];
    204 
    205       /* element() */
    206      /* elements */
    207     }
    208 
    209 
    210 }
    211 
    212 @end // end of TestLexer implementation
    213 
    214 /* End of code
    215  * =============================================================================
    216  */
    217