be3b188b368e2a59017fad560f2b332599af84ab
[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 #ifdef _UNICODE\r
6 typedef SQChar LexChar;\r
7 #else\r
8 typedef unsigned char LexChar;\r
9 #endif\r
10 \r
11 struct SQLexer\r
12 {\r
13         SQLexer();\r
14         ~SQLexer();\r
15         void Init(SQSharedState *ss,SQLEXREADFUNC rg,SQUserPointer up,CompilerErrorFunc efunc,void *ed);\r
16         void Error(const SQChar *err);\r
17         SQInteger Lex();\r
18         const SQChar *Tok2Str(SQInteger tok);\r
19 private:\r
20         SQInteger GetIDType(SQChar *s);\r
21         SQInteger ReadString(SQInteger ndelim,bool verbatim);\r
22         SQInteger ReadNumber();\r
23         void LexBlockComment();\r
24         SQInteger ReadID();\r
25         void Next();\r
26         SQInteger _curtoken;\r
27         SQTable *_keywords;\r
28 public:\r
29         SQInteger _prevtoken;\r
30         SQInteger _currentline;\r
31         SQInteger _lasttokenline;\r
32         SQInteger _currentcolumn;\r
33         const SQChar *_svalue;\r
34         SQInteger _nvalue;\r
35         SQFloat _fvalue;\r
36         SQLEXREADFUNC _readf;\r
37         SQUserPointer _up;\r
38         LexChar _currdata;\r
39         SQSharedState *_sharedstate;\r
40         sqvector<SQChar> _longstr;\r
41         CompilerErrorFunc _errfunc;\r
42         void *_errtarget;\r
43 };\r
44 \r
45 #endif\r