00001
#ifndef INC_PascalLexer_hpp_
00002
#define INC_PascalLexer_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 "PascalLexer.hpp"
00019
#include <antlr/config.hpp>
00020
00021
#include <antlr/CommonToken.hpp>
00022
#include <antlr/InputBuffer.hpp>
00023
#include <antlr/BitSet.hpp>
00024
#include "PascalTokenTypes.hpp"
00025
#include <antlr/CharScanner.hpp>
00026 class PascalLexer :
public ANTLR_USE_NAMESPACE(antlr)
CharScanner,
public PascalTokenTypes
00027 {
00028
#line 1067 "pascal.g"
00029
00030
private:
00031 ProblemReporter*
m_problemReporter;
00032 unsigned int m_numberOfErrors;
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 virtual 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 virtual void reportError(
const ANTLR_USE_NAMESPACE(std)string& errorMessage ){
00048
m_problemReporter->
reportError( errorMessage.c_str(),
00049 getFilename().c_str(),
00050 getLine(), getColumn() );
00051 ++
m_numberOfErrors;
00052 }
00053
00054 virtual void reportWarning(
const ANTLR_USE_NAMESPACE(std)string& warnMessage ){
00055
m_problemReporter->
reportWarning( warnMessage.c_str(),
00056 getFilename().c_str(),
00057 getLine(), getColumn() );
00058 }
00059
#line 30 "PascalLexer.hpp"
00060
private:
00061
void initLiterals();
00062
public:
00063 bool getCaseSensitiveLiterals()
const
00064
{
00065
return false;
00066 }
00067
public:
00068
PascalLexer(
ANTLR_USE_NAMESPACE(std)istream& in);
00069
PascalLexer(
ANTLR_USE_NAMESPACE(antlr)
InputBuffer& ib);
00070
PascalLexer(
const ANTLR_USE_NAMESPACE(antlr)
LexerSharedInputState& state);
00071
ANTLR_USE_NAMESPACE(antlr)
RefToken nextToken();
00072 public:
void mPLUS(
bool _createToken);
00073 public:
void mMINUS(
bool _createToken);
00074 public:
void mSTAR(
bool _createToken);
00075 public:
void mSLASH(
bool _createToken);
00076 public:
void mASSIGN(
bool _createToken);
00077 public:
void mCOMMA(
bool _createToken);
00078 public:
void mSEMI(
bool _createToken);
00079 public:
void mCOLON(
bool _createToken);
00080 public:
void mEQUAL(
bool _createToken);
00081 public:
void mNOT_EQUAL(
bool _createToken);
00082 public:
void mLTH(
bool _createToken);
00083 public:
void mLE(
bool _createToken);
00084 public:
void mGE(
bool _createToken);
00085 public:
void mGT(
bool _createToken);
00086 public:
void mLPAREN(
bool _createToken);
00087 public:
void mRPAREN(
bool _createToken);
00088 public:
void mLBRACK(
bool _createToken);
00089 public:
void mLBRACK2(
bool _createToken);
00090 public:
void mRBRACK(
bool _createToken);
00091 public:
void mRBRACK2(
bool _createToken);
00092 public:
void mPOINTER(
bool _createToken);
00093 public:
void mAT(
bool _createToken);
00094 public:
void mDOT(
bool _createToken);
00095 public:
void mLCURLY(
bool _createToken);
00096 public:
void mRCURLY(
bool _createToken);
00097 public:
void mPLUSEQ(
bool _createToken);
00098 public:
void mMINUSEQ(
bool _createToken);
00099 public:
void mSTAREQ(
bool _createToken);
00100 public:
void mSLASHQE(
bool _createToken);
00101 public:
void mWS(
bool _createToken);
00102 public:
void mCOMMENT_1(
bool _createToken);
00103 public:
void mCOMMENT_2(
bool _createToken);
00104 public:
void mCOMMENT_3(
bool _createToken);
00105 public:
void mIDENT(
bool _createToken);
00106 public:
void mSTRING_LITERAL(
bool _createToken);
00107 public:
void mNUM_INT(
bool _createToken);
00108 protected:
void mEXPONENT(
bool _createToken);
00109 private:
00110
00111 static const
unsigned long _tokenSet_0_data_[];
00112 static const ANTLR_USE_NAMESPACE(antlr)
BitSet _tokenSet_0;
00113 static const
unsigned long _tokenSet_1_data_[];
00114 static const ANTLR_USE_NAMESPACE(antlr)
BitSet _tokenSet_1;
00115 static const
unsigned long _tokenSet_2_data_[];
00116 static const ANTLR_USE_NAMESPACE(antlr)
BitSet _tokenSet_2;
00117 static const
unsigned long _tokenSet_3_data_[];
00118 static const ANTLR_USE_NAMESPACE(antlr)
BitSet _tokenSet_3;
00119 };
00120
00121 #endif