1/** \file
2 *  This OBJC source file was generated by $ANTLR version ${project.version} ${buildNumber}
3 *
4 *     -  From the grammar source file : LangDumpDecl.g
5 *     -                            On : 2011-05-06 17:39:09
6 *     -           for the tree parser : LangDumpDeclTreeParser
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} LangDumpDecl.g 2011-05-06 17:39:09
15
16
17/* -----------------------------------------
18 * Include the ANTLR3 generated header file.
19 */
20#import "LangDumpDecl.h"
21/* ----------------------------------------- */
22
23
24/* ============================================================================= */
25/* =============================================================================
26 * Start of recognizer
27 */
28
29#pragma mark Bitsets
30static ANTLRBitSet *FOLLOW_DECL_in_decl45;
31static const unsigned long long FOLLOW_DECL_in_decl45_data[] = { 0x0000000000000004LL};
32static ANTLRBitSet *FOLLOW_type_in_decl47;
33static const unsigned long long FOLLOW_type_in_decl47_data[] = { 0x0000000000000040LL};
34static ANTLRBitSet *FOLLOW_declarator_in_decl49;
35static const unsigned long long FOLLOW_declarator_in_decl49_data[] = { 0x0000000000000008LL};
36static ANTLRBitSet *FOLLOW_INTTYPE_in_type81;
37static const unsigned long long FOLLOW_INTTYPE_in_type81_data[] = { 0x0000000000000002LL};
38static ANTLRBitSet *FOLLOW_ID_in_declarator95;
39static const unsigned long long FOLLOW_ID_in_declarator95_data[] = { 0x0000000000000002LL};
40
41
42#pragma mark Dynamic Global Scopes
43
44#pragma mark Dynamic Rule Scopes
45
46#pragma mark Rule Return Scopes start
47@implementation LangDumpDecl_declarator_return /* returnScope */
48 /* start of synthesize -- OBJC-Line 1837 */
49+ (LangDumpDecl_declarator_return *)newLangDumpDecl_declarator_return
50{
51    return [[[LangDumpDecl_declarator_return alloc] init] retain];
52}
53
54- (id) init
55{
56    self = [super init];
57    return self;
58}
59
60
61
62@end /* end of returnScope implementation */
63
64
65//#pragma mark Rule return scopes start
66//
67
68#pragma mark Rule return scopes start
69
70@implementation LangDumpDecl  // line 637
71
72/* ObjC start of ruleAttributeScope */
73#pragma mark Dynamic Rule Scopes
74/* ObjC end of ruleAttributeScope */
75#pragma mark global Attribute Scopes
76/* ObjC start globalAttributeScope */
77/* ObjC end globalAttributeScope */
78/* ObjC start actions.(actionScope).synthesize */
79/* ObjC end actions.(actionScope).synthesize */
80/* ObjC start synthesize() */
81/* ObjC end synthesize() */
82
83+ (void) initialize
84{
85    #pragma mark Bitsets
86    FOLLOW_DECL_in_decl45 = [[ANTLRBitSet newANTLRBitSetWithBits:(const unsigned long long *)FOLLOW_DECL_in_decl45_data Count:(NSUInteger)1] retain];
87    FOLLOW_type_in_decl47 = [[ANTLRBitSet newANTLRBitSetWithBits:(const unsigned long long *)FOLLOW_type_in_decl47_data Count:(NSUInteger)1] retain];
88    FOLLOW_declarator_in_decl49 = [[ANTLRBitSet newANTLRBitSetWithBits:(const unsigned long long *)FOLLOW_declarator_in_decl49_data Count:(NSUInteger)1] retain];
89    FOLLOW_INTTYPE_in_type81 = [[ANTLRBitSet newANTLRBitSetWithBits:(const unsigned long long *)FOLLOW_INTTYPE_in_type81_data Count:(NSUInteger)1] retain];
90    FOLLOW_ID_in_declarator95 = [[ANTLRBitSet newANTLRBitSetWithBits:(const unsigned long long *)FOLLOW_ID_in_declarator95_data Count:(NSUInteger)1] retain];
91
92    [ANTLRBaseRecognizer setTokenNames:[[AMutableArray arrayWithObjects:@"<invalid>", @"<EOR>", @"<DOWN>", @"<UP>",
93 @"DECL", @"FLOATTYPE", @"ID", @"INT", @"INTTYPE", @"WS", @"';'", nil] retain]];
94    [ANTLRBaseRecognizer setGrammarFileName:@"LangDumpDecl.g"];
95}
96
97+ (LangDumpDecl *)newLangDumpDecl:(id<ANTLRTreeNodeStream>)aStream
98{
99    return [[LangDumpDecl alloc] initWithStream:aStream];
100
101
102}
103
104- (id) initWithStream:(id<ANTLRTreeNodeStream>)aStream
105{
106    self = [super initWithStream:aStream State:[[ANTLRRecognizerSharedState newANTLRRecognizerSharedStateWithRuleLen:3+1] retain]];
107    if ( self != nil ) {
108
109
110        /* start of actions-actionScope-init */
111        /* start of init */
112    }
113    return self;
114}
115
116- (void) dealloc
117{
118    [super dealloc];
119}
120
121/* ObjC start members */
122/* ObjC end members */
123/* ObjC start actions.(actionScope).methods */
124/* ObjC end actions.(actionScope).methods */
125/* ObjC start methods() */
126/* ObjC end methods() */
127/* ObjC start rules */
128/*
129 * $ANTLR start decl
130 * LangDumpDecl.g:8:1: decl : ^( DECL type declarator ) ;
131 */
132- (void) decl
133{
134    /* my ruleScopeSetUp */
135    /* Terence's stuff */
136
137    @try {
138         LangDumpDecl_declarator_return * declarator1 = nil ;
139
140
141        // LangDumpDecl.g:8:6: ( ^( DECL type declarator ) ) // ruleBlockSingleAlt
142        // LangDumpDecl.g:8:8: ^( DECL type declarator ) // alt
143        {
144        [self match:input TokenType:DECL Follow:FOLLOW_DECL_in_decl45];
145
146            [self match:input TokenType:DOWN Follow:nil];
147            /* ruleRef */
148            [self pushFollow:FOLLOW_type_in_decl47];
149            [self type];
150
151            [self popFollow];
152
153
154
155            /* ruleRef */
156            [self pushFollow:FOLLOW_declarator_in_decl49];
157            declarator1 = [self declarator];
158
159            [self popFollow];
160
161
162
163            [self match:input TokenType:UP Follow:nil];
164
165
166         NSLog(@"int %@", (declarator1!=nil?[[input getTokenStream] toStringFromStart:[[input getTreeAdaptor] getTokenStartIndex:[declarator1 getStart]]ToEnd:[[input getTreeAdaptor] getTokenStopIndex:[declarator1 getStart]]]:0));
167
168
169        }
170
171        // token+rule list labels
172
173    }
174    @catch (ANTLRRecognitionException *re) {
175        [self reportError:re];
176        [self recover:input Exception:re];
177    }
178
179    @finally {
180        /* Terence's stuff */
181
182    }
183    return ;
184}
185/* $ANTLR end decl */
186
187/*
188 * $ANTLR start type
189 * LangDumpDecl.g:13:1: type : INTTYPE ;
190 */
191- (void) type
192{
193    /* my ruleScopeSetUp */
194    /* Terence's stuff */
195
196    @try {
197        // LangDumpDecl.g:13:6: ( INTTYPE ) // ruleBlockSingleAlt
198        // LangDumpDecl.g:13:8: INTTYPE // alt
199        {
200        [self match:input TokenType:INTTYPE Follow:FOLLOW_INTTYPE_in_type81];
201
202        }
203
204        // token+rule list labels
205
206    }
207    @catch (ANTLRRecognitionException *re) {
208        [self reportError:re];
209        [self recover:input Exception:re];
210    }
211
212    @finally {
213        /* Terence's stuff */
214
215    }
216    return ;
217}
218/* $ANTLR end type */
219
220/*
221 * $ANTLR start declarator
222 * LangDumpDecl.g:15:1: declarator : ID ;
223 */
224- (LangDumpDecl_declarator_return *) declarator
225{
226    /* my ruleScopeSetUp */
227    /* Terence's stuff */
228
229    LangDumpDecl_declarator_return * retval = [LangDumpDecl_declarator_return newLangDumpDecl_declarator_return];
230    [retval setStart:[input LT:1]];
231
232
233    @try {
234        // LangDumpDecl.g:16:6: ( ID ) // ruleBlockSingleAlt
235        // LangDumpDecl.g:16:8: ID // alt
236        {
237        [self match:input TokenType:ID Follow:FOLLOW_ID_in_declarator95];
238
239        }
240
241        // token+rule list labels
242
243    }
244    @catch (ANTLRRecognitionException *re) {
245        [self reportError:re];
246        [self recover:input Exception:re];
247    }
248
249    @finally {
250        /* Terence's stuff */
251
252    }
253    return retval;
254}
255/* $ANTLR end declarator */
256/* ObjC end rules */
257
258@end /* end of LangDumpDecl implementation line 692 */
259