Mercurial > vba-clojure
comparison src/lua/llex.h @ 11:27763b933818
raise lua sources up one level
author | Robert McIntyre <rlm@mit.edu> |
---|---|
date | Sat, 03 Mar 2012 11:07:39 -0600 |
parents | src/lua/src/llex.h@f9f4f1b99eed |
children |
comparison
equal
deleted
inserted
replaced
10:48b74a4e4692 | 11:27763b933818 |
---|---|
1 /* | |
2 ** $Id: llex.h,v 1.58.1.1 2007/12/27 13:02:25 roberto Exp $ | |
3 ** Lexical Analyzer | |
4 ** See Copyright Notice in lua.h | |
5 */ | |
6 | |
7 #ifndef llex_h | |
8 #define llex_h | |
9 | |
10 #include "lobject.h" | |
11 #include "lzio.h" | |
12 | |
13 | |
14 #define FIRST_RESERVED 257 | |
15 | |
16 /* maximum length of a reserved word */ | |
17 #define TOKEN_LEN (sizeof("function")/sizeof(char)) | |
18 | |
19 | |
20 /* | |
21 * WARNING: if you change the order of this enumeration, | |
22 * grep "ORDER RESERVED" | |
23 */ | |
24 enum RESERVED { | |
25 /* terminal symbols denoted by reserved words */ | |
26 TK_AND = FIRST_RESERVED, TK_BREAK, | |
27 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, | |
29 TK_RETURN, TK_THEN, TK_TRUE, TK_UNTIL, TK_WHILE, | |
30 /* other terminal symbols */ | |
31 TK_CONCAT, TK_DOTS, TK_EQ, TK_GE, TK_LE, TK_NE, TK_NUMBER, | |
32 TK_NAME, TK_STRING, TK_EOS | |
33 }; | |
34 | |
35 /* number of reserved words */ | |
36 #define NUM_RESERVED (cast(int, TK_WHILE-FIRST_RESERVED+1)) | |
37 | |
38 | |
39 /* array with token `names' */ | |
40 LUAI_DATA const char *const luaX_tokens []; | |
41 | |
42 | |
43 typedef union { | |
44 lua_Number r; | |
45 TString *ts; | |
46 } SemInfo; /* semantics information */ | |
47 | |
48 | |
49 typedef struct Token { | |
50 int token; | |
51 SemInfo seminfo; | |
52 } Token; | |
53 | |
54 | |
55 typedef struct LexState { | |
56 int current; /* current character (charint) */ | |
57 int linenumber; /* input line counter */ | |
58 int lastline; /* line of last token `consumed' */ | |
59 Token t; /* current token */ | |
60 Token lookahead; /* look ahead token */ | |
61 struct FuncState *fs; /* `FuncState' is private to the parser */ | |
62 struct lua_State *L; | |
63 ZIO *z; /* input stream */ | |
64 Mbuffer *buff; /* buffer for tokens */ | |
65 TString *source; /* current source name */ | |
66 char decpoint; /* locale decimal point */ | |
67 } LexState; | |
68 | |
69 | |
70 LUAI_FUNC void luaX_init (lua_State *L); | |
71 LUAI_FUNC void luaX_setinput (lua_State *L, LexState *ls, ZIO *z, | |
72 TString *source); | |
73 LUAI_FUNC TString *luaX_newstring (LexState *ls, const char *str, size_t l); | |
74 LUAI_FUNC void luaX_next (LexState *ls); | |
75 LUAI_FUNC void luaX_lookahead (LexState *ls); | |
76 LUAI_FUNC void luaX_lexerror (LexState *ls, const char *msg, int token); | |
77 LUAI_FUNC void luaX_syntaxerror (LexState *ls, const char *s); | |
78 LUAI_FUNC const char *luaX_token2str (LexState *ls, int token); | |
79 | |
80 | |
81 #endif |