PascalParser.hpp
Go to the documentation of this file.00001 #ifndef INC_PascalParser_hpp_
00002 #define INC_PascalParser_hpp_
00003
00004 #line 29 "pascal.g"
00005
00006 #include "problemreporter.h"
00007 #include "PascalAST.hpp"
00008
00009 #include <qlistview.h>
00010 #include <kdebug.h>
00011
00012 #define SET_POSITION(ast,t)\
00013 { \
00014 RefPascalAST(ast)->setLine( t->getLine() );\
00015 RefPascalAST(ast)->setColumn( t->getColumn() ); \
00016 }
00017
00018 #line 19 "PascalParser.hpp"
00019 #include <antlr/config.hpp>
00020
00021 #include <antlr/TokenStream.hpp>
00022 #include <antlr/TokenBuffer.hpp>
00023 #include "PascalTokenTypes.hpp"
00024 #include <antlr/LLkParser.hpp>
00025
00026 class PascalParser : public ANTLR_USE_NAMESPACE(antlr)LLkParser, public PascalTokenTypes
00027 {
00028 #line 90 "pascal.g"
00029
00030 private:
00031 unsigned int m_numberOfErrors;
00032 ProblemReporter* m_problemReporter;
00033
00034 public:
00035 void resetErrors() { m_numberOfErrors = 0; }
00036 unsigned int numberOfErrors() const { return m_numberOfErrors; }
00037 void setProblemReporter( ProblemReporter* r ) { m_problemReporter = r; }
00038
00039 void reportError( const ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex ){
00040 m_problemReporter->reportError( ex.getMessage().c_str(),
00041 ex.getFilename().c_str(),
00042 ex.getLine(),
00043 ex.getColumn() );
00044 ++m_numberOfErrors;
00045 }
00046
00047 void reportError( const ANTLR_USE_NAMESPACE(std)string& errorMessage ){
00048 m_problemReporter->reportError( errorMessage.c_str(),
00049 getFilename().c_str(),
00050 LT(1)->getLine(),
00051 LT(1)->getColumn() );
00052 ++m_numberOfErrors;
00053 }
00054
00055 void reportMessage( const ANTLR_USE_NAMESPACE(std)string& message ){
00056 m_problemReporter->reportMessage( message.c_str(),
00057 getFilename().c_str(),
00058 LT(1)->getLine(),
00059 LT(1)->getColumn() );
00060 }
00061 #line 30 "PascalParser.hpp"
00062 public:
00063 void initializeASTFactory( ANTLR_USE_NAMESPACE(antlr)ASTFactory& factory );
00064 protected:
00065 PascalParser(ANTLR_USE_NAMESPACE(antlr)TokenBuffer& tokenBuf, int k);
00066 public:
00067 PascalParser(ANTLR_USE_NAMESPACE(antlr)TokenBuffer& tokenBuf);
00068 protected:
00069 PascalParser(ANTLR_USE_NAMESPACE(antlr)TokenStream& lexer, int k);
00070 public:
00071 PascalParser(ANTLR_USE_NAMESPACE(antlr)TokenStream& lexer);
00072 PascalParser(const ANTLR_USE_NAMESPACE(antlr)ParserSharedInputState& state);
00073 int getNumTokens() const
00074 {
00075 return PascalParser::NUM_TOKENS;
00076 }
00077 const char* getTokenName( int type ) const
00078 {
00079 if( type > getNumTokens() ) return 0;
00080 return PascalParser::tokenNames[type];
00081 }
00082 const char* const* getTokenNames() const
00083 {
00084 return PascalParser::tokenNames;
00085 }
00086 public: void compilationUnit();
00087 public: void program();
00088 public: void library();
00089 public: void unit();
00090 public: void programHeading();
00091 public: void usesClause();
00092 public: void block();
00093 public: void identifier();
00094 public: void libraryBlock();
00095 public: void exportsClause();
00096 public: void declarationPart();
00097 public: void statementPart();
00098 public: void exportsList();
00099 public: void exportsEntry();
00100 public: void integerConstant();
00101 public: void stringConstant();
00102 public: void identifierList();
00103 public: void interfacePart();
00104 public: void implementationPart();
00105 public: void initializationPart();
00106 public: void finalizationPart();
00107 public: void realizationPart();
00108 public: void constantDeclarationPart();
00109 public: void typeDeclarationPart();
00110 public: void procedureHeadersPart();
00111 public: void statement();
00112 public: void labelDeclarationPart();
00113 public: void resourcestringDeclarationPart();
00114 public: void variableDeclarationPart();
00115 public: void procedureAndFunctionDeclarationPart();
00116 public: void label();
00117 public: void constantDeclaration();
00118 public: void typedConstantDeclaration();
00119 public: void stringConstantDeclaration();
00120 public: void string();
00121 public: void typeDeclaration();
00122 public: void variableDeclaration();
00123 public: void type();
00124 public: void procedureAndFunctionDeclaration();
00125 public: void procedureDeclaration();
00126 public: void functionDeclaration();
00127 public: void constructorDeclaration();
00128 public: void destructorDeclaration();
00129 public: void compoundStatement();
00130 public: void procedureHeader();
00131 public: void subroutineBlock();
00132 public: void functionHeader();
00133 public: void qualifiedMethodIdentifier();
00134 public: void formalParameterList();
00135 public: void modifiers();
00136 public: void externalDirective();
00137 public: void functionHeaderEnding();
00138 public: void parameterDeclaration();
00139 public: void valueParameter();
00140 public: void variableParameter();
00141 public: void constantParameter();
00142 public: void untypedParameterPart();
00143 public: void callModifiers();
00144 public: void expression();
00145 public: void typedConstant();
00146 public: void constant();
00147 public: void recordConstant();
00148 public: void arrayConstant();
00149 public: void proceduralConstant();
00150 public: void addressConstant();
00151 public: void simpleType();
00152 public: void subrangeTypeOrTypeIdentifier();
00153 public: void enumeratedType();
00154 public: void stringType();
00155 public: void structuredType();
00156 public: void pointerType();
00157 public: void proceduralType();
00158 public: void ordinalType();
00159 public: void realType();
00160 public: void typeIdentifier();
00161 public: void subrangeType();
00162 public: void assignedEnumList();
00163 public: void unsignedInteger();
00164 public: void arrayType();
00165 public: void recordType();
00166 public: void objectType();
00167 public: void classType();
00168 public: void setType();
00169 public: void fileType();
00170 public: void arrayIndexType();
00171 public: void arraySubrangeType();
00172 public: void fieldList();
00173 public: void fixedField();
00174 public: void variantPart();
00175 public: void variant();
00176 public: void proceduralTypePart1();
00177 public: void heritage();
00178 public: void componentList();
00179 public: void objectVisibilitySpecifier();
00180 public: void fieldDefinition();
00181 public: void methodDefinition();
00182 public: void constructorHeader();
00183 public: void destructorHeader();
00184 public: void methodDirectives();
00185 public: void classComponentList();
00186 public: void classVisibilitySpecifier();
00187 public: void classMethodDefinition();
00188 public: void propertyDefinition();
00189 public: void classMethodDirectives();
00190 public: void directiveVariants();
00191 public: void propertyInterface();
00192 public: void propertySpecifiers();
00193 public: void propertyParameterList();
00194 public: void readSpecifier();
00195 public: void writeSpecifier();
00196 public: void defaultSpecifier();
00197 public: void fieldOrMethod();
00198 public: void simpleExpression();
00199 public: void expressionSign();
00200 public: void term();
00201 public: void factor();
00202 public: void identifierOrValueTypecastOrFunctionCall();
00203 public: void unsignedConstant();
00204 public: void setConstructor();
00205 public: void addressFactor();
00206 public: void expressions();
00207 public: void functionCall();
00208 public: void actualParameterList();
00209 public: void setGroup();
00210 public: void valueTypecast();
00211 public: void simpleStatement();
00212 public: void structuredStatement();
00213 public: void assignmentStatement();
00214 public: void procedureStatement();
00215 public: void gotoStatement();
00216 public: void raiseStatement();
00217 public: void identifierOrArrayIdentifier();
00218 public: void assignmentOperator();
00219 public: void repetitiveStatement();
00220 public: void conditionalStatement();
00221 public: void exceptionStatement();
00222 public: void withStatement();
00223 public: void ifStatement();
00224 public: void caseStatement();
00225 public: void forStatement();
00226 public: void repeatStatement();
00227 public: void whileStatement();
00228 public: void caseListElement();
00229 public: void constList();
00230 public: void forList();
00231 public: void initialValue();
00232 public: void finalValue();
00233 public: void recordVariableList();
00234 public: void variable();
00235 public: void operatorDefinition();
00236 public: void assignmentOperatorDefinition();
00237 public: void arithmeticOperatorDefinition();
00238 public: void comparisonOperatorDefinition();
00239 public: void tryStatement();
00240 public: void statements();
00241 public: void exceptOrFinallyPart();
00242 public: void exceptionHandlers();
00243 public: void exceptionHandler();
00244 public: void sign();
00245 public: void constantChr();
00246 public: void unsignedNumber();
00247 public: void unsignedReal();
00248 public:
00249 RefPascalAST getAST();
00250
00251 protected:
00252 RefPascalAST returnAST;
00253 private:
00254 static const char* tokenNames[];
00255 #ifndef NO_STATIC_CONSTS
00256 static const int NUM_TOKENS = 190;
00257 #else
00258 enum {
00259 NUM_TOKENS = 190
00260 };
00261 #endif
00262
00263 static const unsigned long _tokenSet_0_data_[];
00264 static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_0;
00265 static const unsigned long _tokenSet_1_data_[];
00266 static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_1;
00267 static const unsigned long _tokenSet_2_data_[];
00268 static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_2;
00269 static const unsigned long _tokenSet_3_data_[];
00270 static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_3;
00271 static const unsigned long _tokenSet_4_data_[];
00272 static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_4;
00273 static const unsigned long _tokenSet_5_data_[];
00274 static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_5;
00275 static const unsigned long _tokenSet_6_data_[];
00276 static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_6;
00277 static const unsigned long _tokenSet_7_data_[];
00278 static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_7;
00279 static const unsigned long _tokenSet_8_data_[];
00280 static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_8;
00281 static const unsigned long _tokenSet_9_data_[];
00282 static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_9;
00283 static const unsigned long _tokenSet_10_data_[];
00284 static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_10;
00285 static const unsigned long _tokenSet_11_data_[];
00286 static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_11;
00287 static const unsigned long _tokenSet_12_data_[];
00288 static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_12;
00289 static const unsigned long _tokenSet_13_data_[];
00290 static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_13;
00291 static const unsigned long _tokenSet_14_data_[];
00292 static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_14;
00293 static const unsigned long _tokenSet_15_data_[];
00294 static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_15;
00295 static const unsigned long _tokenSet_16_data_[];
00296 static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_16;
00297 static const unsigned long _tokenSet_17_data_[];
00298 static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_17;
00299 static const unsigned long _tokenSet_18_data_[];
00300 static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_18;
00301 static const unsigned long _tokenSet_19_data_[];
00302 static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_19;
00303 static const unsigned long _tokenSet_20_data_[];
00304 static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_20;
00305 static const unsigned long _tokenSet_21_data_[];
00306 static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_21;
00307 static const unsigned long _tokenSet_22_data_[];
00308 static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_22;
00309 static const unsigned long _tokenSet_23_data_[];
00310 static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_23;
00311 static const unsigned long _tokenSet_24_data_[];
00312 static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_24;
00313 static const unsigned long _tokenSet_25_data_[];
00314 static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_25;
00315 static const unsigned long _tokenSet_26_data_[];
00316 static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_26;
00317 static const unsigned long _tokenSet_27_data_[];
00318 static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_27;
00319 static const unsigned long _tokenSet_28_data_[];
00320 static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_28;
00321 static const unsigned long _tokenSet_29_data_[];
00322 static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_29;
00323 static const unsigned long _tokenSet_30_data_[];
00324 static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_30;
00325 static const unsigned long _tokenSet_31_data_[];
00326 static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_31;
00327 static const unsigned long _tokenSet_32_data_[];
00328 static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_32;
00329 static const unsigned long _tokenSet_33_data_[];
00330 static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_33;
00331 static const unsigned long _tokenSet_34_data_[];
00332 static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_34;
00333 static const unsigned long _tokenSet_35_data_[];
00334 static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_35;
00335 static const unsigned long _tokenSet_36_data_[];
00336 static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_36;
00337 static const unsigned long _tokenSet_37_data_[];
00338 static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_37;
00339 static const unsigned long _tokenSet_38_data_[];
00340 static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_38;
00341 static const unsigned long _tokenSet_39_data_[];
00342 static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_39;
00343 static const unsigned long _tokenSet_40_data_[];
00344 static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_40;
00345 static const unsigned long _tokenSet_41_data_[];
00346 static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_41;
00347 static const unsigned long _tokenSet_42_data_[];
00348 static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_42;
00349 static const unsigned long _tokenSet_43_data_[];
00350 static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_43;
00351 static const unsigned long _tokenSet_44_data_[];
00352 static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_44;
00353 static const unsigned long _tokenSet_45_data_[];
00354 static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_45;
00355 static const unsigned long _tokenSet_46_data_[];
00356 static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_46;
00357 static const unsigned long _tokenSet_47_data_[];
00358 static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_47;
00359 static const unsigned long _tokenSet_48_data_[];
00360 static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_48;
00361 static const unsigned long _tokenSet_49_data_[];
00362 static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_49;
00363 static const unsigned long _tokenSet_50_data_[];
00364 static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_50;
00365 static const unsigned long _tokenSet_51_data_[];
00366 static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_51;
00367 static const unsigned long _tokenSet_52_data_[];
00368 static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_52;
00369 static const unsigned long _tokenSet_53_data_[];
00370 static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_53;
00371 static const unsigned long _tokenSet_54_data_[];
00372 static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_54;
00373 static const unsigned long _tokenSet_55_data_[];
00374 static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_55;
00375 static const unsigned long _tokenSet_56_data_[];
00376 static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_56;
00377 static const unsigned long _tokenSet_57_data_[];
00378 static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_57;
00379 static const unsigned long _tokenSet_58_data_[];
00380 static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_58;
00381 static const unsigned long _tokenSet_59_data_[];
00382 static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_59;
00383 static const unsigned long _tokenSet_60_data_[];
00384 static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_60;
00385 static const unsigned long _tokenSet_61_data_[];
00386 static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_61;
00387 static const unsigned long _tokenSet_62_data_[];
00388 static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_62;
00389 static const unsigned long _tokenSet_63_data_[];
00390 static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_63;
00391 static const unsigned long _tokenSet_64_data_[];
00392 static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_64;
00393 static const unsigned long _tokenSet_65_data_[];
00394 static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_65;
00395 static const unsigned long _tokenSet_66_data_[];
00396 static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_66;
00397 static const unsigned long _tokenSet_67_data_[];
00398 static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_67;
00399 static const unsigned long _tokenSet_68_data_[];
00400 static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_68;
00401 static const unsigned long _tokenSet_69_data_[];
00402 static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_69;
00403 static const unsigned long _tokenSet_70_data_[];
00404 static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_70;
00405 static const unsigned long _tokenSet_71_data_[];
00406 static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_71;
00407 static const unsigned long _tokenSet_72_data_[];
00408 static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_72;
00409 static const unsigned long _tokenSet_73_data_[];
00410 static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_73;
00411 static const unsigned long _tokenSet_74_data_[];
00412 static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_74;
00413 static const unsigned long _tokenSet_75_data_[];
00414 static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_75;
00415 static const unsigned long _tokenSet_76_data_[];
00416 static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_76;
00417 };
00418
00419 #endif
This file is part of the documentation for KDevelop Version 3.1.2.