Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: code/branches/ceguilua/src/lua/llex.h @ 1967

Last change on this file since 1967 was 1806, checked in by rgrieder, 16 years ago

added single 5.1.3 directory for lua since CEGUILua 0.5 can also build against lua 5.1

  • Property svn:eol-style set to native
File size: 2.1 KB
Line 
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*/
24enum 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' */
40LUAI_DATA const char *const luaX_tokens [];
41
42
43typedef union {
44  lua_Number r;
45  TString *ts;
46} SemInfo;  /* semantics information */
47
48
49typedef struct Token {
50  int token;
51  SemInfo seminfo;
52} Token;
53
54
55typedef 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
70LUAI_FUNC void luaX_init (lua_State *L);
71LUAI_FUNC void luaX_setinput (lua_State *L, LexState *ls, ZIO *z,
72                              TString *source);
73LUAI_FUNC TString *luaX_newstring (LexState *ls, const char *str, size_t l);
74LUAI_FUNC void luaX_next (LexState *ls);
75LUAI_FUNC void luaX_lookahead (LexState *ls);
76LUAI_FUNC void luaX_lexerror (LexState *ls, const char *msg, int token);
77LUAI_FUNC void luaX_syntaxerror (LexState *ls, const char *s);
78LUAI_FUNC const char *luaX_token2str (LexState *ls, int token);
79
80
81#endif
Note: See TracBrowser for help on using the repository browser.