zombiezen.com/go/lua@v0.0.0-20231013005828-290725fb9140/internal/lua54/lstring.h (about)

     1  /*
     2  ** $Id: lstring.h $
     3  ** String table (keep all strings handled by Lua)
     4  ** See Copyright Notice in lua.h
     5  */
     6  
     7  #ifndef lstring_h
     8  #define lstring_h
     9  
    10  #include "lgc.h"
    11  #include "lobject.h"
    12  #include "lstate.h"
    13  
    14  
    15  /*
    16  ** Memory-allocation error message must be preallocated (it cannot
    17  ** be created after memory is exhausted)
    18  */
    19  #define MEMERRMSG       "not enough memory"
    20  
    21  
    22  /*
    23  ** Size of a TString: Size of the header plus space for the string
    24  ** itself (including final '\0').
    25  */
    26  #define sizelstring(l)  (offsetof(TString, contents) + ((l) + 1) * sizeof(char))
    27  
    28  #define luaS_newliteral(L, s)	(luaS_newlstr(L, "" s, \
    29                                   (sizeof(s)/sizeof(char))-1))
    30  
    31  
    32  /*
    33  ** test whether a string is a reserved word
    34  */
    35  #define isreserved(s)	((s)->tt == LUA_VSHRSTR && (s)->extra > 0)
    36  
    37  
    38  /*
    39  ** equality for short strings, which are always internalized
    40  */
    41  #define eqshrstr(a,b)	check_exp((a)->tt == LUA_VSHRSTR, (a) == (b))
    42  
    43  
    44  LUAI_FUNC unsigned int luaS_hash (const char *str, size_t l, unsigned int seed);
    45  LUAI_FUNC unsigned int luaS_hashlongstr (TString *ts);
    46  LUAI_FUNC int luaS_eqlngstr (TString *a, TString *b);
    47  LUAI_FUNC void luaS_resize (lua_State *L, int newsize);
    48  LUAI_FUNC void luaS_clearcache (global_State *g);
    49  LUAI_FUNC void luaS_init (lua_State *L);
    50  LUAI_FUNC void luaS_remove (lua_State *L, TString *ts);
    51  LUAI_FUNC Udata *luaS_newudata (lua_State *L, size_t s, int nuvalue);
    52  LUAI_FUNC TString *luaS_newlstr (lua_State *L, const char *str, size_t l);
    53  LUAI_FUNC TString *luaS_new (lua_State *L, const char *str);
    54  LUAI_FUNC TString *luaS_createlngstrobj (lua_State *L, size_t l);
    55  
    56  
    57  #endif