sqlexer.h

00001 /*  see copyright notice in squirrel.h */
00002 #ifndef _SQLEXER_H_
00003 #define _SQLEXER_H_
00004 
00005 #ifdef SQUNICODE
00006 typedef SQChar LexChar;
00007 #else
00008 typedef unsigned char LexChar;
00009 #endif
00010 
00011 struct SQLexer
00012 {
00013   SQLexer();
00014   ~SQLexer();
00015   void Init(SQSharedState *ss,SQLEXREADFUNC rg,SQUserPointer up,CompilerErrorFunc efunc,void *ed);
00016   void Error(const SQChar *err);
00017   SQInteger Lex();
00018   const SQChar *Tok2Str(SQInteger tok);
00019 private:
00020   SQInteger GetIDType(SQChar *s);
00021   SQInteger ReadString(SQChar ndelim,bool verbatim);
00022   SQInteger ReadNumber();
00023   void LexBlockComment();
00024   SQInteger ReadID();
00025   void Next();
00026   SQInteger _curtoken;
00027   SQTable *_keywords;
00028 public:
00029   SQInteger _prevtoken;
00030   SQInteger _currentline;
00031   SQInteger _lasttokenline;
00032   SQInteger _currentcolumn;
00033   const SQChar *_svalue;
00034   SQInteger _nvalue;
00035   SQFloat _fvalue;
00036   SQLEXREADFUNC _readf;
00037   SQUserPointer _up;
00038   LexChar _currdata;
00039   SQSharedState *_sharedstate;
00040   sqvector<SQChar> _longstr;
00041   CompilerErrorFunc _errfunc;
00042   void *_errtarget;
00043 };
00044 
00045 #endif

Generated on Mon Dec 14 20:59:56 2009 for OpenTTD by  doxygen 1.5.6