1/** \file 2 * This OBJC source file was generated by $ANTLR version 3.2 Aug 24, 2010 10:45:57 3 * 4 * - From the grammar source file : Combined.g 5 * - On : 2010-08-24 13:53:42 6 * - for the parser : CombinedParserParser * 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 24, 2010 10:45:57 Combined.g 2010-08-24 13:53:42 41 42/* ----------------------------------------- 43 * Include the ANTLR3 generated header file. 44 */ 45#import "CombinedParser.h" 46/* ----------------------------------------- */ 47 48 49/* ============================================================================= */ 50 51/* ============================================================================= 52 * Start of recognizer 53 */ 54 55 56 57#pragma mark Bitsets 58static ANTLRBitSet *FOLLOW_identifier_in_stat20; 59static const unsigned long long FOLLOW_identifier_in_stat20_data[] = { 0x0000000000000012LL}; 60static ANTLRBitSet *FOLLOW_ID_in_identifier35; 61static const unsigned long long FOLLOW_ID_in_identifier35_data[] = { 0x0000000000000002LL}; 62 63 64#pragma mark Dynamic Global Scopes 65 66#pragma mark Dynamic Rule Scopes 67 68#pragma mark Rule return scopes start 69/* returnScope */ 70 71/* returnScope */ 72 73 74 75@implementation CombinedParser // line 637 76 77+ (void) initialize 78{ 79 #pragma mark Bitsets 80 FOLLOW_identifier_in_stat20 = [[ANTLRBitSet newANTLRBitSetWithBits:(const unsigned long long *)FOLLOW_identifier_in_stat20_data Count:(NSUInteger)1] retain]; 81 FOLLOW_ID_in_identifier35 = [[ANTLRBitSet newANTLRBitSetWithBits:(const unsigned long long *)FOLLOW_ID_in_identifier35_data Count:(NSUInteger)1] retain]; 82 83 [ANTLRBaseRecognizer setTokenNames:[[[NSArray alloc] initWithObjects:@"<invalid>", @"<EOR>", @"<DOWN>", @"<UP>", 84 @"ID", @"INT", @"WS", nil] retain]]; 85} 86 87+ (CombinedParser *)newCombinedParser:(id<ANTLRTokenStream>)aStream 88{ 89 return [[CombinedParser alloc] initWithTokenStream:aStream]; 90 91} 92 93- (id) initWithTokenStream:(id<ANTLRTokenStream>)aStream 94{ 95 if ((self = [super initWithTokenStream:aStream State:[[ANTLRRecognizerSharedState newANTLRRecognizerSharedStateWithRuleLen:2+1] retain]]) != nil) { 96 97 98 99 /* start of actions-actionScope-init */ 100 /* start of init */ 101 } 102 return self; 103} 104 105- (void) dealloc 106{ 107 [super dealloc]; 108} 109// start actions.actionScope.methods 110// start methods() 111// start rules 112/* 113 * $ANTLR start stat 114 * Combined.g:7:1: stat : ( identifier )+ ; 115 */ 116- (void) stat 117{ 118 /* ruleScopeSetUp */ 119 120 @try { 121 // Combined.g:7:5: ( ( identifier )+ ) // ruleBlockSingleAlt 122 // Combined.g:7:7: ( identifier )+ // alt 123 { 124 // Combined.g:7:7: ( identifier )+ // positiveClosureBlock 125 NSInteger cnt1=0; 126 do { 127 NSInteger alt1=2; 128 NSInteger LA1_0 = [input LA:1]; 129 if ( (LA1_0==ID) ) { 130 alt1=1; 131 } 132 133 134 switch (alt1) { 135 case 1 : ; 136 // Combined.g:7:7: identifier // alt 137 { 138 [self pushFollow:FOLLOW_identifier_in_stat20]; 139 [self identifier]; 140 [self popFollow]; 141 142 /* element() */ 143 /* elements */ 144 } 145 break; 146 147 default : 148 if ( cnt1 >= 1 ) 149 goto loop1; 150 ANTLREarlyExitException *eee = [ANTLREarlyExitException exceptionWithStream:input decisionNumber:1]; 151 @throw eee; 152 } 153 cnt1++; 154 } while (YES); 155 loop1: ; 156 /* element() */ 157 /* elements */ 158 } 159 160 // token+rule list labels 161 162 } 163 @catch (ANTLRRecognitionException *re) { 164 [self reportError:re]; 165 [self recover:input Exception:re]; 166 } @finally { 167 } 168 return ; 169} 170/* $ANTLR end stat */ 171/* 172 * $ANTLR start identifier 173 * Combined.g:9:1: identifier : ID ; 174 */ 175- (void) identifier 176{ 177 /* ruleScopeSetUp */ 178 179 @try { 180 // Combined.g:10:5: ( ID ) // ruleBlockSingleAlt 181 // Combined.g:10:7: ID // alt 182 { 183 [self match:input TokenType:ID Follow:FOLLOW_ID_in_identifier35]; /* element() */ 184 /* elements */ 185 } 186 187 // token+rule list labels 188 189 } 190 @catch (ANTLRRecognitionException *re) { 191 [self reportError:re]; 192 [self recover:input Exception:re]; 193 } @finally { 194 } 195 return ; 196} 197/* $ANTLR end identifier */ 198 199@end /* end of CombinedParser implementation line 692 */ 200 201 202/* End of code 203 * ============================================================================= 204 */ 205