1
#ifndef INC_PascalParser_hpp_
2
#define INC_PascalParser_hpp_
6
#include "problemreporter.h"
7
#include "PascalAST.hpp"
12
#define SET_POSITION(ast,t)\
14
RefPascalAST(ast)->setLine( t->getLine() );\
15
RefPascalAST(ast)->setColumn( t->getColumn() ); \
18
#line 19 "PascalParser.hpp"
19
#include <antlr/config.hpp>
20
/* $ANTLR 2.7.7 (20061129): "pascal.g" -> "PascalParser.hpp"$ */
21
#include <antlr/TokenStream.hpp>
22
#include <antlr/TokenBuffer.hpp>
23
#include "PascalTokenTypes.hpp"
24
#include <antlr/LLkParser.hpp>
26
class CUSTOM_API PascalParser : public ANTLR_USE_NAMESPACE(antlr)LLkParser, public PascalTokenTypes
31
unsigned int m_numberOfErrors;
32
ProblemReporter* m_problemReporter;
35
void resetErrors() { m_numberOfErrors = 0; }
36
unsigned int numberOfErrors() const { return m_numberOfErrors; }
37
void setProblemReporter( ProblemReporter* r ) { m_problemReporter = r; }
39
void reportError( const ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex ){
40
m_problemReporter->reportError( ex.getMessage().c_str(),
41
ex.getFilename().c_str(),
47
void reportError( const ANTLR_USE_NAMESPACE(std)string& errorMessage ){
48
m_problemReporter->reportError( errorMessage.c_str(),
49
getFilename().c_str(),
55
void reportMessage( const ANTLR_USE_NAMESPACE(std)string& message ){
56
m_problemReporter->reportMessage( message.c_str(),
57
getFilename().c_str(),
61
#line 30 "PascalParser.hpp"
63
void initializeASTFactory( ANTLR_USE_NAMESPACE(antlr)ASTFactory& factory );
65
PascalParser(ANTLR_USE_NAMESPACE(antlr)TokenBuffer& tokenBuf, int k);
67
PascalParser(ANTLR_USE_NAMESPACE(antlr)TokenBuffer& tokenBuf);
69
PascalParser(ANTLR_USE_NAMESPACE(antlr)TokenStream& lexer, int k);
71
PascalParser(ANTLR_USE_NAMESPACE(antlr)TokenStream& lexer);
72
PascalParser(const ANTLR_USE_NAMESPACE(antlr)ParserSharedInputState& state);
73
int getNumTokens() const
75
return PascalParser::NUM_TOKENS;
77
const char* getTokenName( int type ) const
79
if( type > getNumTokens() ) return 0;
80
return PascalParser::tokenNames[type];
82
const char* const* getTokenNames() const
84
return PascalParser::tokenNames;
86
public: void compilationUnit();
87
public: void program();
88
public: void library();
90
public: void programHeading();
91
public: void usesClause();
93
public: void identifier();
94
public: void libraryBlock();
95
public: void exportsClause();
96
public: void declarationPart();
97
public: void statementPart();
98
public: void exportsList();
99
public: void exportsEntry();
100
public: void integerConstant();
101
public: void stringConstant();
102
public: void identifierList();
103
public: void interfacePart();
104
public: void implementationPart();
105
public: void initializationPart();
106
public: void finalizationPart();
107
public: void realizationPart();
108
public: void constantDeclarationPart();
109
public: void typeDeclarationPart();
110
public: void procedureHeadersPart();
111
public: void statement();
112
public: void labelDeclarationPart();
113
public: void resourcestringDeclarationPart();
114
public: void variableDeclarationPart();
115
public: void procedureAndFunctionDeclarationPart();
116
public: void label();
117
public: void constantDeclaration();
118
public: void typedConstantDeclaration();
119
public: void stringConstantDeclaration();
120
public: void string();
121
public: void typeDeclaration();
122
public: void variableDeclaration();
124
public: void procedureAndFunctionDeclaration();
125
public: void procedureDeclaration();
126
public: void functionDeclaration();
127
public: void constructorDeclaration();
128
public: void destructorDeclaration();
129
public: void compoundStatement();
130
public: void procedureHeader();
131
public: void subroutineBlock();
132
public: void functionHeader();
133
public: void qualifiedMethodIdentifier();
134
public: void formalParameterList();
135
public: void modifiers();
136
public: void externalDirective();
137
public: void functionHeaderEnding();
138
public: void parameterDeclaration();
139
public: void valueParameter();
140
public: void variableParameter();
141
public: void constantParameter();
142
public: void untypedParameterPart();
143
public: void callModifiers();
144
public: void expression();
145
public: void typedConstant();
146
public: void constant();
147
public: void recordConstant();
148
public: void arrayConstant();
149
public: void proceduralConstant();
150
public: void addressConstant();
151
public: void simpleType();
152
public: void subrangeTypeOrTypeIdentifier();
153
public: void enumeratedType();
154
public: void stringType();
155
public: void structuredType();
156
public: void pointerType();
157
public: void proceduralType();
158
public: void ordinalType();
159
public: void realType();
160
public: void typeIdentifier();
161
public: void subrangeType();
162
public: void assignedEnumList();
163
public: void unsignedInteger();
164
public: void arrayType();
165
public: void recordType();
166
public: void objectType();
167
public: void classType();
168
public: void setType();
169
public: void fileType();
170
public: void arrayIndexType();
171
public: void arraySubrangeType();
172
public: void fieldList();
173
public: void fixedField();
174
public: void variantPart();
175
public: void variant();
176
public: void proceduralTypePart1();
177
public: void heritage();
178
public: void componentList();
179
public: void objectVisibilitySpecifier();
180
public: void fieldDefinition();
181
public: void methodDefinition();
182
public: void constructorHeader();
183
public: void destructorHeader();
184
public: void methodDirectives();
185
public: void classComponentList();
186
public: void classVisibilitySpecifier();
187
public: void classMethodDefinition();
188
public: void propertyDefinition();
189
public: void classMethodDirectives();
190
public: void directiveVariants();
191
public: void propertyInterface();
192
public: void propertySpecifiers();
193
public: void propertyParameterList();
194
public: void readSpecifier();
195
public: void writeSpecifier();
196
public: void defaultSpecifier();
197
public: void fieldOrMethod();
198
public: void simpleExpression();
199
public: void expressionSign();
201
public: void factor();
202
public: void identifierOrValueTypecastOrFunctionCall();
203
public: void unsignedConstant();
204
public: void setConstructor();
205
public: void addressFactor();
206
public: void expressions();
207
public: void functionCall();
208
public: void actualParameterList();
209
public: void setGroup();
210
public: void valueTypecast();
211
public: void simpleStatement();
212
public: void structuredStatement();
213
public: void assignmentStatement();
214
public: void procedureStatement();
215
public: void gotoStatement();
216
public: void raiseStatement();
217
public: void identifierOrArrayIdentifier();
218
public: void assignmentOperator();
219
public: void repetitiveStatement();
220
public: void conditionalStatement();
221
public: void exceptionStatement();
222
public: void withStatement();
223
public: void ifStatement();
224
public: void caseStatement();
225
public: void forStatement();
226
public: void repeatStatement();
227
public: void whileStatement();
228
public: void caseListElement();
229
public: void constList();
230
public: void forList();
231
public: void initialValue();
232
public: void finalValue();
233
public: void recordVariableList();
234
public: void variable();
235
public: void operatorDefinition();
236
public: void assignmentOperatorDefinition();
237
public: void arithmeticOperatorDefinition();
238
public: void comparisonOperatorDefinition();
239
public: void tryStatement();
240
public: void statements();
241
public: void exceptOrFinallyPart();
242
public: void exceptionHandlers();
243
public: void exceptionHandler();
245
public: void constantChr();
246
public: void unsignedNumber();
247
public: void unsignedReal();
249
ANTLR_USE_NAMESPACE(antlr)RefAST getAST()
251
return ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST);
255
RefPascalAST returnAST;
257
static const char* tokenNames[];
258
#ifndef NO_STATIC_CONSTS
259
static const int NUM_TOKENS = 190;
266
static const unsigned long _tokenSet_0_data_[];
267
static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_0;
268
static const unsigned long _tokenSet_1_data_[];
269
static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_1;
270
static const unsigned long _tokenSet_2_data_[];
271
static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_2;
272
static const unsigned long _tokenSet_3_data_[];
273
static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_3;
274
static const unsigned long _tokenSet_4_data_[];
275
static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_4;
276
static const unsigned long _tokenSet_5_data_[];
277
static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_5;
278
static const unsigned long _tokenSet_6_data_[];
279
static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_6;
280
static const unsigned long _tokenSet_7_data_[];
281
static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_7;
282
static const unsigned long _tokenSet_8_data_[];
283
static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_8;
284
static const unsigned long _tokenSet_9_data_[];
285
static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_9;
286
static const unsigned long _tokenSet_10_data_[];
287
static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_10;
288
static const unsigned long _tokenSet_11_data_[];
289
static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_11;
290
static const unsigned long _tokenSet_12_data_[];
291
static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_12;
292
static const unsigned long _tokenSet_13_data_[];
293
static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_13;
294
static const unsigned long _tokenSet_14_data_[];
295
static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_14;
296
static const unsigned long _tokenSet_15_data_[];
297
static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_15;
298
static const unsigned long _tokenSet_16_data_[];
299
static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_16;
300
static const unsigned long _tokenSet_17_data_[];
301
static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_17;
302
static const unsigned long _tokenSet_18_data_[];
303
static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_18;
304
static const unsigned long _tokenSet_19_data_[];
305
static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_19;
306
static const unsigned long _tokenSet_20_data_[];
307
static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_20;
308
static const unsigned long _tokenSet_21_data_[];
309
static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_21;
310
static const unsigned long _tokenSet_22_data_[];
311
static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_22;
312
static const unsigned long _tokenSet_23_data_[];
313
static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_23;
314
static const unsigned long _tokenSet_24_data_[];
315
static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_24;
316
static const unsigned long _tokenSet_25_data_[];
317
static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_25;
318
static const unsigned long _tokenSet_26_data_[];
319
static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_26;
320
static const unsigned long _tokenSet_27_data_[];
321
static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_27;
322
static const unsigned long _tokenSet_28_data_[];
323
static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_28;
324
static const unsigned long _tokenSet_29_data_[];
325
static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_29;
326
static const unsigned long _tokenSet_30_data_[];
327
static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_30;
328
static const unsigned long _tokenSet_31_data_[];
329
static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_31;
330
static const unsigned long _tokenSet_32_data_[];
331
static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_32;
332
static const unsigned long _tokenSet_33_data_[];
333
static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_33;
334
static const unsigned long _tokenSet_34_data_[];
335
static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_34;
336
static const unsigned long _tokenSet_35_data_[];
337
static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_35;
338
static const unsigned long _tokenSet_36_data_[];
339
static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_36;
340
static const unsigned long _tokenSet_37_data_[];
341
static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_37;
342
static const unsigned long _tokenSet_38_data_[];
343
static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_38;
344
static const unsigned long _tokenSet_39_data_[];
345
static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_39;
346
static const unsigned long _tokenSet_40_data_[];
347
static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_40;
348
static const unsigned long _tokenSet_41_data_[];
349
static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_41;
350
static const unsigned long _tokenSet_42_data_[];
351
static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_42;
352
static const unsigned long _tokenSet_43_data_[];
353
static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_43;
354
static const unsigned long _tokenSet_44_data_[];
355
static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_44;
356
static const unsigned long _tokenSet_45_data_[];
357
static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_45;
358
static const unsigned long _tokenSet_46_data_[];
359
static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_46;
360
static const unsigned long _tokenSet_47_data_[];
361
static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_47;
362
static const unsigned long _tokenSet_48_data_[];
363
static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_48;
364
static const unsigned long _tokenSet_49_data_[];
365
static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_49;
366
static const unsigned long _tokenSet_50_data_[];
367
static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_50;
368
static const unsigned long _tokenSet_51_data_[];
369
static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_51;
370
static const unsigned long _tokenSet_52_data_[];
371
static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_52;
372
static const unsigned long _tokenSet_53_data_[];
373
static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_53;
374
static const unsigned long _tokenSet_54_data_[];
375
static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_54;
376
static const unsigned long _tokenSet_55_data_[];
377
static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_55;
378
static const unsigned long _tokenSet_56_data_[];
379
static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_56;
380
static const unsigned long _tokenSet_57_data_[];
381
static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_57;
382
static const unsigned long _tokenSet_58_data_[];
383
static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_58;
384
static const unsigned long _tokenSet_59_data_[];
385
static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_59;
386
static const unsigned long _tokenSet_60_data_[];
387
static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_60;
388
static const unsigned long _tokenSet_61_data_[];
389
static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_61;
390
static const unsigned long _tokenSet_62_data_[];
391
static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_62;
392
static const unsigned long _tokenSet_63_data_[];
393
static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_63;
394
static const unsigned long _tokenSet_64_data_[];
395
static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_64;
396
static const unsigned long _tokenSet_65_data_[];
397
static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_65;
398
static const unsigned long _tokenSet_66_data_[];
399
static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_66;
400
static const unsigned long _tokenSet_67_data_[];
401
static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_67;
402
static const unsigned long _tokenSet_68_data_[];
403
static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_68;
404
static const unsigned long _tokenSet_69_data_[];
405
static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_69;
406
static const unsigned long _tokenSet_70_data_[];
407
static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_70;
408
static const unsigned long _tokenSet_71_data_[];
409
static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_71;
410
static const unsigned long _tokenSet_72_data_[];
411
static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_72;
412
static const unsigned long _tokenSet_73_data_[];
413
static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_73;
414
static const unsigned long _tokenSet_74_data_[];
415
static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_74;
416
static const unsigned long _tokenSet_75_data_[];
417
static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_75;
418
static const unsigned long _tokenSet_76_data_[];
419
static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_76;
422
#endif /*INC_PascalParser_hpp_*/