#ifndef _SQLEXER_H_\r
#define _SQLEXER_H_\r
\r
-#define MAX_STRING 2024\r
+#ifdef _UNICODE\r
+typedef SQChar LexChar;\r
+#else\r
+typedef unsigned char LexChar;\r
+#endif\r
\r
struct SQLexer\r
{\r
SQLexer();\r
~SQLexer();\r
- void Init(SQSharedState *ss,SQLEXREADFUNC rg,SQUserPointer up);\r
- int Lex();\r
- SQObjectPtr Tok2Str(int tok);\r
+ void Init(SQSharedState *ss,SQLEXREADFUNC rg,SQUserPointer up,CompilerErrorFunc efunc,void *ed);\r
+ void Error(const SQChar *err);\r
+ SQInteger Lex();\r
+ const SQChar *Tok2Str(SQInteger tok);\r
private:\r
- int GetIDType(SQChar *s);\r
- int ReadString(int ndelim,bool verbatim);\r
- int ReadNumber();\r
+ SQInteger GetIDType(SQChar *s);\r
+ SQInteger ReadString(SQInteger ndelim,bool verbatim);\r
+ SQInteger ReadNumber();\r
void LexBlockComment();\r
- int ReadID();\r
+ SQInteger ReadID();\r
void Next();\r
- int _curtoken;\r
+ SQInteger _curtoken;\r
SQTable *_keywords;\r
public:\r
- int _prevtoken;\r
- int _currentline;\r
- int _lasttokenline;\r
- int _currentcolumn;\r
+ SQInteger _prevtoken;\r
+ SQInteger _currentline;\r
+ SQInteger _lasttokenline;\r
+ SQInteger _currentcolumn;\r
const SQChar *_svalue;\r
SQInteger _nvalue;\r
SQFloat _fvalue;\r
SQLEXREADFUNC _readf;\r
SQUserPointer _up;\r
-#ifdef _UNICODE\r
- SQChar _currdata;\r
-#else\r
- unsigned char _currdata;\r
-#endif\r
+ LexChar _currdata;\r
SQSharedState *_sharedstate;\r
sqvector<SQChar> _longstr;\r
+ CompilerErrorFunc _errfunc;\r
+ void *_errtarget;\r
};\r
\r
#endif\r