~ubuntu-branches/ubuntu/saucy/emscripten/saucy-proposed

« back to all changes in this revision

Viewing changes to tests/lua/src/llex.h

  • Committer: Package Import Robot
  • Author(s): Sylvestre Ledru
  • Date: 2013-05-02 13:11:51 UTC
  • Revision ID: package-import@ubuntu.com-20130502131151-q8dvteqr1ef2x7xz
Tags: upstream-1.4.1~20130504~adb56cb
ImportĀ upstreamĀ versionĀ 1.4.1~20130504~adb56cb

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
** $Id: llex.h,v 1.72 2011/11/30 12:43:51 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
 
 
17
 
 
18
/*
 
19
* WARNING: if you change the order of this enumeration,
 
20
* grep "ORDER RESERVED"
 
21
*/
 
22
enum RESERVED {
 
23
  /* terminal symbols denoted by reserved words */
 
24
  TK_AND = FIRST_RESERVED, TK_BREAK,
 
25
  TK_DO, TK_ELSE, TK_ELSEIF, TK_END, TK_FALSE, TK_FOR, TK_FUNCTION,
 
26
  TK_GOTO, TK_IF, TK_IN, TK_LOCAL, TK_NIL, TK_NOT, TK_OR, TK_REPEAT,
 
27
  TK_RETURN, TK_THEN, TK_TRUE, TK_UNTIL, TK_WHILE,
 
28
  /* other terminal symbols */
 
29
  TK_CONCAT, TK_DOTS, TK_EQ, TK_GE, TK_LE, TK_NE, TK_DBCOLON, TK_EOS,
 
30
  TK_NUMBER, TK_NAME, TK_STRING
 
31
};
 
32
 
 
33
/* number of reserved words */
 
34
#define NUM_RESERVED    (cast(int, TK_WHILE-FIRST_RESERVED+1))
 
35
 
 
36
 
 
37
typedef union {
 
38
  lua_Number r;
 
39
  TString *ts;
 
40
} SemInfo;  /* semantics information */
 
41
 
 
42
 
 
43
typedef struct Token {
 
44
  int token;
 
45
  SemInfo seminfo;
 
46
} Token;
 
47
 
 
48
 
 
49
/* state of the lexer plus state of the parser when shared by all
 
50
   functions */
 
51
typedef struct LexState {
 
52
  int current;  /* current character (charint) */
 
53
  int linenumber;  /* input line counter */
 
54
  int lastline;  /* line of last token `consumed' */
 
55
  Token t;  /* current token */
 
56
  Token lookahead;  /* look ahead token */
 
57
  struct FuncState *fs;  /* current function (parser) */
 
58
  struct lua_State *L;
 
59
  ZIO *z;  /* input stream */
 
60
  Mbuffer *buff;  /* buffer for tokens */
 
61
  struct Dyndata *dyd;  /* dynamic structures used by the parser */
 
62
  TString *source;  /* current source name */
 
63
  TString *envn;  /* environment variable name */
 
64
  char decpoint;  /* locale decimal point */
 
65
} LexState;
 
66
 
 
67
 
 
68
LUAI_FUNC void luaX_init (lua_State *L);
 
69
LUAI_FUNC void luaX_setinput (lua_State *L, LexState *ls, ZIO *z,
 
70
                              TString *source, int firstchar);
 
71
LUAI_FUNC TString *luaX_newstring (LexState *ls, const char *str, size_t l);
 
72
LUAI_FUNC void luaX_next (LexState *ls);
 
73
LUAI_FUNC int luaX_lookahead (LexState *ls);
 
74
LUAI_FUNC l_noret luaX_syntaxerror (LexState *ls, const char *s);
 
75
LUAI_FUNC const char *luaX_token2str (LexState *ls, int token);
 
76
 
 
77
 
 
78
#endif