Johan Wikman / SQUIRREL3

Dependents:   Squirrel

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers sqlexer.h Source File

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(SQInteger ndelim,bool verbatim);
00022     SQInteger ReadNumber();
00023     void LexBlockComment();
00024     void LexLineComment();
00025     SQInteger ReadID();
00026     void Next();
00027     SQInteger _curtoken;
00028     SQTable *_keywords;
00029     SQBool _reached_eof;
00030 public:
00031     SQInteger _prevtoken;
00032     SQInteger _currentline;
00033     SQInteger _lasttokenline;
00034     SQInteger _currentcolumn;
00035     const SQChar *_svalue;
00036     SQInteger _nvalue;
00037     SQFloat _fvalue;
00038     SQLEXREADFUNC _readf;
00039     SQUserPointer _up;
00040     LexChar _currdata;
00041     SQSharedState *_sharedstate;
00042     sqvector<SQChar> _longstr;
00043     CompilerErrorFunc _errfunc;
00044     void *_errtarget;
00045 };
00046 
00047 #endif