diff options
Diffstat (limited to 'apps/plugins/lua/llex.h')
-rw-r--r-- | apps/plugins/lua/llex.h | 27 |
1 files changed, 12 insertions, 15 deletions
diff --git a/apps/plugins/lua/llex.h b/apps/plugins/lua/llex.h index fa8b7a2a28..a4acdd3021 100644 --- a/apps/plugins/lua/llex.h +++ b/apps/plugins/lua/llex.h | |||
@@ -1,5 +1,5 @@ | |||
1 | /* | 1 | /* |
2 | ** $Id$ | 2 | ** $Id: llex.h,v 1.72.1.1 2013/04/12 18:48:47 roberto Exp $ |
3 | ** Lexical Analyzer | 3 | ** Lexical Analyzer |
4 | ** See Copyright Notice in lua.h | 4 | ** See Copyright Notice in lua.h |
5 | */ | 5 | */ |
@@ -13,8 +13,6 @@ | |||
13 | 13 | ||
14 | #define FIRST_RESERVED 257 | 14 | #define FIRST_RESERVED 257 |
15 | 15 | ||
16 | /* maximum length of a reserved word */ | ||
17 | #define TOKEN_LEN (sizeof("function")/sizeof(char)) | ||
18 | 16 | ||
19 | 17 | ||
20 | /* | 18 | /* |
@@ -25,21 +23,17 @@ enum RESERVED { | |||
25 | /* terminal symbols denoted by reserved words */ | 23 | /* terminal symbols denoted by reserved words */ |
26 | TK_AND = FIRST_RESERVED, TK_BREAK, | 24 | TK_AND = FIRST_RESERVED, TK_BREAK, |
27 | TK_DO, TK_ELSE, TK_ELSEIF, TK_END, TK_FALSE, TK_FOR, TK_FUNCTION, | 25 | TK_DO, TK_ELSE, TK_ELSEIF, TK_END, TK_FALSE, TK_FOR, TK_FUNCTION, |
28 | TK_IF, TK_IN, TK_LOCAL, TK_NIL, TK_NOT, TK_OR, TK_REPEAT, | 26 | TK_GOTO, TK_IF, TK_IN, TK_LOCAL, TK_NIL, TK_NOT, TK_OR, TK_REPEAT, |
29 | TK_RETURN, TK_THEN, TK_TRUE, TK_UNTIL, TK_WHILE, | 27 | TK_RETURN, TK_THEN, TK_TRUE, TK_UNTIL, TK_WHILE, |
30 | /* other terminal symbols */ | 28 | /* other terminal symbols */ |
31 | TK_CONCAT, TK_DOTS, TK_EQ, TK_GE, TK_LE, TK_NE, TK_NUMBER, | 29 | TK_CONCAT, TK_DOTS, TK_EQ, TK_GE, TK_LE, TK_NE, TK_DBCOLON, TK_EOS, |
32 | TK_NAME, TK_STRING, TK_EOS | 30 | TK_NUMBER, TK_NAME, TK_STRING |
33 | }; | 31 | }; |
34 | 32 | ||
35 | /* number of reserved words */ | 33 | /* number of reserved words */ |
36 | #define NUM_RESERVED (cast(int, TK_WHILE-FIRST_RESERVED+1)) | 34 | #define NUM_RESERVED (cast(int, TK_WHILE-FIRST_RESERVED+1)) |
37 | 35 | ||
38 | 36 | ||
39 | /* array with token `names' */ | ||
40 | LUAI_DATA const char *const luaX_tokens []; | ||
41 | |||
42 | |||
43 | typedef union { | 37 | typedef union { |
44 | lua_Number r; | 38 | lua_Number r; |
45 | TString *ts; | 39 | TString *ts; |
@@ -52,29 +46,32 @@ typedef struct Token { | |||
52 | } Token; | 46 | } Token; |
53 | 47 | ||
54 | 48 | ||
49 | /* state of the lexer plus state of the parser when shared by all | ||
50 | functions */ | ||
55 | typedef struct LexState { | 51 | typedef struct LexState { |
56 | int current; /* current character (charint) */ | 52 | int current; /* current character (charint) */ |
57 | int linenumber; /* input line counter */ | 53 | int linenumber; /* input line counter */ |
58 | int lastline; /* line of last token `consumed' */ | 54 | int lastline; /* line of last token `consumed' */ |
59 | Token t; /* current token */ | 55 | Token t; /* current token */ |
60 | Token lookahead; /* look ahead token */ | 56 | Token lookahead; /* look ahead token */ |
61 | struct FuncState *fs; /* `FuncState' is private to the parser */ | 57 | struct FuncState *fs; /* current function (parser) */ |
62 | struct lua_State *L; | 58 | struct lua_State *L; |
63 | ZIO *z; /* input stream */ | 59 | ZIO *z; /* input stream */ |
64 | Mbuffer *buff; /* buffer for tokens */ | 60 | Mbuffer *buff; /* buffer for tokens */ |
61 | struct Dyndata *dyd; /* dynamic structures used by the parser */ | ||
65 | TString *source; /* current source name */ | 62 | TString *source; /* current source name */ |
63 | TString *envn; /* environment variable name */ | ||
66 | char decpoint; /* locale decimal point */ | 64 | char decpoint; /* locale decimal point */ |
67 | } LexState; | 65 | } LexState; |
68 | 66 | ||
69 | 67 | ||
70 | LUAI_FUNC void luaX_init (lua_State *L); | 68 | LUAI_FUNC void luaX_init (lua_State *L); |
71 | LUAI_FUNC void luaX_setinput (lua_State *L, LexState *ls, ZIO *z, | 69 | LUAI_FUNC void luaX_setinput (lua_State *L, LexState *ls, ZIO *z, |
72 | TString *source); | 70 | TString *source, int firstchar); |
73 | LUAI_FUNC TString *luaX_newstring (LexState *ls, const char *str, size_t l); | 71 | LUAI_FUNC TString *luaX_newstring (LexState *ls, const char *str, size_t l); |
74 | LUAI_FUNC void luaX_next (LexState *ls); | 72 | LUAI_FUNC void luaX_next (LexState *ls); |
75 | LUAI_FUNC void luaX_lookahead (LexState *ls); | 73 | LUAI_FUNC int luaX_lookahead (LexState *ls); |
76 | LUAI_FUNC void luaX_lexerror (LexState *ls, const char *msg, int token); | 74 | LUAI_FUNC l_noret luaX_syntaxerror (LexState *ls, const char *s); |
77 | LUAI_FUNC void luaX_syntaxerror (LexState *ls, const char *s); | ||
78 | LUAI_FUNC const char *luaX_token2str (LexState *ls, int token); | 75 | LUAI_FUNC const char *luaX_token2str (LexState *ls, int token); |
79 | 76 | ||
80 | 77 | ||