1 /** \file 2 * This OBJC source file was generated by $ANTLR version 3.2 Aug 20, 2010 15:00:19 3 * 4 * - From the grammar source file : /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/treerewrite/TreeRewrite.g 5 * - On : 2010-08-20 15:03:14 6 * - for the lexer : TreeRewriteLexerLexer * 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 15:00:19 /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/treerewrite/TreeRewrite.g 2010-08-20 15:03:14 41 42 /* ----------------------------------------- 43 * Include the ANTLR3 generated header file. 44 */ 45 #import "TreeRewriteLexer.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 TreeRewriteLexer // line 330 61 62 + (void) initialize 63 { 64 [ANTLRBaseRecognizer setGrammarFileName:@"/usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/treerewrite/TreeRewrite.g"]; 65 } 66 67 + (NSString *) tokenNameForType:(NSInteger)aTokenType 68 { 69 return [[self getTokenNames] objectAtIndex:aTokenType]; 70 } 71 72 + (TreeRewriteLexer *)newTreeRewriteLexer:(id<ANTLRCharStream>)anInput 73 { 74 return [[TreeRewriteLexer alloc] initWithCharStream:anInput]; 75 } 76 77 - (id) initWithCharStream:(id<ANTLRCharStream>)anInput 78 { 79 if ((self = [super initWithCharStream:anInput State:[ANTLRRecognizerSharedState newANTLRRecognizerSharedStateWithRuleLen:3+1]]) != nil) { 80 81 } 82 return self; 83 } 84 85 - (void) dealloc 86 { 87 [super dealloc]; 88 } 89 90 // Start of actions.lexer.methods 91 // start methods() 92 93 // Start of Rules 94 // $ANTLR start "INT" 95 - (void) mINT 96 { 97 // 98 // ruleScopeSetUp 99 100 @try { 101 NSInteger _type = INT; 102 NSInteger _channel = ANTLRTokenChannelDefault; 103 // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/treerewrite/TreeRewrite.g:15:5: ( ( '0' .. '9' )+ ) // ruleBlockSingleAlt 104 // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/treerewrite/TreeRewrite.g:15:7: ( '0' .. '9' )+ // alt 105 { 106 // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/treerewrite/TreeRewrite.g:15:7: ( '0' .. '9' )+ // positiveClosureBlock 107 NSInteger cnt1=0; 108 do { 109 NSInteger alt1=2; 110 NSInteger LA1_0 = [input LA:1]; 111 if ( ((LA1_0>='0' && LA1_0<='9')) ) { 112 alt1=1; 113 } 114 115 116 switch (alt1) { 117 case 1 : ; 118 // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/treerewrite/TreeRewrite.g:15:8: '0' .. '9' // alt 119 { 120 [self matchRangeFromChar:'0' to:'9']; /* element() */ 121 /* elements */ 122 } 123 break; 124 125 default : 126 if ( cnt1 >= 1 ) 127 goto loop1; 128 ANTLREarlyExitException *eee = [ANTLREarlyExitException exceptionWithStream:input decisionNumber:1]; 129 @throw eee; 130 } 131 cnt1++; 132 } while (YES); 133 loop1: ; 134 /* element() */ 135 /* elements */ 136 } 137 138 // token+rule list labels 139 140 [state setType:_type]; 141 142 state.channel = _channel; 143 } 144 @finally { 145 // 146 } 147 return; 148 } 149 // $ANTLR end "INT" 150 151 // $ANTLR start "WS" 152 - (void) mWS 153 { 154 // 155 // ruleScopeSetUp 156 157 @try { 158 NSInteger _type = WS; 159 NSInteger _channel = ANTLRTokenChannelDefault; 160 // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/treerewrite/TreeRewrite.g:18:5: ( ' ' ) // ruleBlockSingleAlt 161 // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/treerewrite/TreeRewrite.g:18:9: ' ' // alt 162 { 163 [self matchChar:' ']; 164 /* element() */ 165 state.channel=99; /* element() */ 166 /* elements */ 167 } 168 169 // token+rule list labels 170 171 [state setType:_type]; 172 173 state.channel = _channel; 174 } 175 @finally { 176 // 177 } 178 return; 179 } 180 // $ANTLR end "WS" 181 182 - (void) mTokens 183 { 184 // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/treerewrite/TreeRewrite.g:1:8: ( INT | WS ) //ruleblock 185 NSInteger alt2=2; 186 NSInteger LA2_0 = [input LA:1]; 187 188 if ( ((LA2_0>='0' && LA2_0<='9')) ) { 189 alt2=1; 190 } 191 else if ( (LA2_0==' ') ) { 192 alt2=2; 193 } 194 else { 195 ANTLRNoViableAltException *nvae = [ANTLRNoViableAltException newANTLRNoViableAltException:2 state:0 stream:input]; 196 @throw nvae; 197 } 198 switch (alt2) { 199 case 1 : ; 200 // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/treerewrite/TreeRewrite.g:1:10: INT // alt 201 { 202 [self mINT]; 203 /* element() */ 204 /* elements */ 205 } 206 break; 207 case 2 : ; 208 // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/treerewrite/TreeRewrite.g:1:14: WS // alt 209 { 210 [self mWS]; 211 /* element() */ 212 /* elements */ 213 } 214 break; 215 216 } 217 218 } 219 220 @end // end of TreeRewriteLexer implementation // line 397 221 222 /* End of code 223 * ============================================================================= 224 */ 225