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