"Fossies" - the Fresh Open Source Software Archive

Member "darktable-2.6.3/src/external/lua/src/llex.h" (20 Oct 2019, 2271 Bytes) of package /linux/misc/darktable-2.6.3.tar.xz:


As a special service "Fossies" has tried to format the requested source page into HTML format using (guessed) C and C++ source code syntax highlighting (style: standard) with prefixed line numbers and code folding option. Alternatively you can here view or download the uninterpreted source code file. For more information about "llex.h" see the Fossies "Dox" file reference documentation.

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