New grow and skid sounds from remaxim
[supertux.git] / src / squirrel / squirrel / sqlexer.h
index fdc92d4..eb3bc87 100644 (file)
@@ -2,41 +2,44 @@
 #ifndef _SQLEXER_H_
 #define _SQLEXER_H_
 
-#define MAX_STRING 2024
+#ifdef SQUNICODE
+typedef SQChar LexChar;
+#else
+typedef        unsigned char LexChar;
+#endif
 
 struct SQLexer
 {
        SQLexer();
        ~SQLexer();
-       void Init(SQSharedState *ss,SQLEXREADFUNC rg,SQUserPointer up);
-       int Lex();
-       SQObjectPtr Tok2Str(int tok);
+       void Init(SQSharedState *ss,SQLEXREADFUNC rg,SQUserPointer up,CompilerErrorFunc efunc,void *ed);
+       void Error(const SQChar *err);
+       SQInteger Lex();
+       const SQChar *Tok2Str(SQInteger tok);
 private:
-       int GetIDType(SQChar *s);
-       int ReadString(int ndelim,bool verbatim);
-       int ReadNumber();
+       SQInteger GetIDType(SQChar *s);
+       SQInteger ReadString(SQInteger ndelim,bool verbatim);
+       SQInteger ReadNumber();
        void LexBlockComment();
-       int ReadID();
+       SQInteger ReadID();
        void Next();
-       int _curtoken;
+       SQInteger _curtoken;
        SQTable *_keywords;
 public:
-       int _prevtoken;
-       int _currentline;
-       int _lasttokenline;
-       int _currentcolumn;
+       SQInteger _prevtoken;
+       SQInteger _currentline;
+       SQInteger _lasttokenline;
+       SQInteger _currentcolumn;
        const SQChar *_svalue;
        SQInteger _nvalue;
        SQFloat _fvalue;
        SQLEXREADFUNC _readf;
        SQUserPointer _up;
-#ifdef _UNICODE
-       SQChar _currdata;
-#else
-       unsigned char _currdata;
-#endif
+       LexChar _currdata;
        SQSharedState *_sharedstate;
        sqvector<SQChar> _longstr;
+       CompilerErrorFunc _errfunc;
+       void *_errtarget;
 };
 
 #endif