this shouldn't be in svn
[supertux.git] / src / squirrel / squirrel / sqlexer.h
index 3f13c6b..be3b188 100644 (file)
@@ -2,41 +2,44 @@
 #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