~ubuntu-branches/ubuntu/quantal/genometools/quantal-backports

« back to all changes in this revision

Viewing changes to src/external/lua-5.1.4/src/llex.h

  • Committer: Package Import Robot
  • Author(s): Sascha Steinbiss
  • Date: 2012-07-09 14:10:23 UTC
  • Revision ID: package-import@ubuntu.com-20120709141023-juuu4spm6chqsf9o
Tags: upstream-1.4.1
ImportĀ upstreamĀ versionĀ 1.4.1

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
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