3f13c6be4cecbbc0f7dbf850e1eb7fd285c3e8fe
[supertux.git] / src / squirrel / squirrel / sqlexer.h
1 /*      see copyright notice in squirrel.h */\r
2 #ifndef _SQLEXER_H_\r
3 #define _SQLEXER_H_\r
4 \r
5 #define MAX_STRING 2024\r
6 \r
7 struct SQLexer\r
8 {\r
9         SQLexer();\r
10         ~SQLexer();\r
11         void Init(SQSharedState *ss,SQLEXREADFUNC rg,SQUserPointer up);\r
12         int Lex();\r
13         SQObjectPtr Tok2Str(int tok);\r
14 private:\r
15         int GetIDType(SQChar *s);\r
16         int ReadString(int ndelim,bool verbatim);\r
17         int ReadNumber();\r
18         void LexBlockComment();\r
19         int ReadID();\r
20         void Next();\r
21         int _curtoken;\r
22         SQTable *_keywords;\r
23 public:\r
24         int _prevtoken;\r
25         int _currentline;\r
26         int _lasttokenline;\r
27         int _currentcolumn;\r
28         const SQChar *_svalue;\r
29         SQInteger _nvalue;\r
30         SQFloat _fvalue;\r
31         SQLEXREADFUNC _readf;\r
32         SQUserPointer _up;\r
33 #ifdef _UNICODE\r
34         SQChar _currdata;\r
35 #else\r
36         unsigned char _currdata;\r
37 #endif\r
38         SQSharedState *_sharedstate;\r
39         sqvector<SQChar> _longstr;\r
40 };\r
41 \r
42 #endif\r