浏览该文件的文档.
22 #define LUA_TUPVAL LUA_NUMTYPES
23 #define LUA_TPROTO (LUA_NUMTYPES+1)
24 #define LUA_TDEADKEY (LUA_NUMTYPES+2)
31 #define LUA_TOTALTYPES (LUA_TPROTO + 2)
42 #define makevariant(t,v) ((t) | ((v) << 4))
63 #define TValuefields Value value_; lu_byte tt_
70 #define val_(o) ((o)->value_)
71 #define valraw(o) (&val_(o))
75 #define rawtt(o) ((o)->tt_)
78 #define novariant(t) ((t) & 0x0F)
81 #define withvariant(t) ((t) & 0x3F)
82 #define ttypetag(o) withvariant(rawtt(o))
85 #define ttype(o) (novariant(rawtt(o)))
89 #define checktag(o,t) (rawtt(o) == (t))
90 #define checktype(o,t) (ttype(o) == (t))
96 #define righttt(obj) (ttypetag(obj) == gcvalue(obj)->tt)
104 #define checkliveness(L,obj) \
105 ((void)L, lua_longassert(!iscollectable(obj) || \
106 (righttt(obj) && (L == NULL || !isdead(G(L),gcvalue(obj))))))
112 #define settt_(o,t) ((o)->tt_=(t))
116 #define setobj(L,obj1,obj2) \
117 { TValue *io1=(obj1); const TValue *io2=(obj2); \
118 io1->value_ = io2->value_; settt_(io1, io2->tt_); \
119 checkliveness(L,io1); lua_assert(!isnonstrictnil(io1)); }
127 #define setobjs2s(L,o1,o2) setobj(L,s2v(o1),s2v(o2))
129 #define setobj2s(L,o1,o2) setobj(L,s2v(o1),o2)
131 #define setobjt2t setobj
133 #define setobj2n setobj
135 #define setobj2t setobj
150 #define s2v(o) (&(o)->val)
161 #define LUA_VNIL makevariant(LUA_TNIL, 0)
164 #define LUA_VEMPTY makevariant(LUA_TNIL, 1)
167 #define LUA_VABSTKEY makevariant(LUA_TNIL, 2)
171 #define ttisnil(v) checktype((v), LUA_TNIL)
175 #define ttisstrictnil(o) checktag((o), LUA_VNIL)
178 #define setnilvalue(obj) settt_(obj, LUA_VNIL)
181 #define isabstkey(v) checktag((v), LUA_VABSTKEY)
187 #define isnonstrictnil(v) (ttisnil(v) && !ttisstrictnil(v))
195 #define isempty(v) ttisnil(v)
199 #define ABSTKEYCONSTANT {NULL}, LUA_VABSTKEY
203 #define setempty(v) settt_(v, LUA_VEMPTY)
217 #define LUA_VFALSE makevariant(LUA_TBOOLEAN, 0)
218 #define LUA_VTRUE makevariant(LUA_TBOOLEAN, 1)
220 #define ttisboolean(o) checktype((o), LUA_TBOOLEAN)
221 #define ttisfalse(o) checktag((o), LUA_VFALSE)
222 #define ttistrue(o) checktag((o), LUA_VTRUE)
225 #define l_isfalse(o) (ttisfalse(o) || ttisnil(o))
228 #define setbfvalue(obj) settt_(obj, LUA_VFALSE)
229 #define setbtvalue(obj) settt_(obj, LUA_VTRUE)
240 #define LUA_VTHREAD makevariant(LUA_TTHREAD, 0)
242 #define ttisthread(o) checktag((o), ctb(LUA_VTHREAD))
244 #define thvalue(o) check_exp(ttisthread(o), gco2th(val_(o).gc))
246 #define setthvalue(L,obj,x) \
247 { TValue *io = (obj); lua_State *x_ = (x); \
248 val_(io).gc = obj2gco(x_); settt_(io, ctb(LUA_VTHREAD)); \
249 checkliveness(L,io); }
251 #define setthvalue2s(L,o,t) setthvalue(L,s2v(o),t)
266 #define CommonHeader struct GCObject *next; lu_byte tt; lu_byte marked
276 #define BIT_ISCOLLECTABLE (1 << 6)
278 #define iscollectable(o) (rawtt(o) & BIT_ISCOLLECTABLE)
281 #define ctb(t) ((t) | BIT_ISCOLLECTABLE)
283 #define gcvalue(o) check_exp(iscollectable(o), val_(o).gc)
285 #define gcvalueraw(v) ((v).gc)
287 #define setgcovalue(L,obj,x) \
288 { TValue *io = (obj); GCObject *i_g=(x); \
289 val_(io).gc = i_g; settt_(io, ctb(i_g->tt)); }
301 #define LUA_VNUMINT makevariant(LUA_TNUMBER, 0)
302 #define LUA_VNUMFLT makevariant(LUA_TNUMBER, 1)
304 #define ttisnumber(o) checktype((o), LUA_TNUMBER)
305 #define ttisfloat(o) checktag((o), LUA_VNUMFLT)
306 #define ttisinteger(o) checktag((o), LUA_VNUMINT)
308 #define nvalue(o) check_exp(ttisnumber(o), \
309 (ttisinteger(o) ? cast_num(ivalue(o)) : fltvalue(o)))
310 #define fltvalue(o) check_exp(ttisfloat(o), val_(o).n)
311 #define ivalue(o) check_exp(ttisinteger(o), val_(o).i)
313 #define fltvalueraw(v) ((v).n)
314 #define ivalueraw(v) ((v).i)
316 #define setfltvalue(obj,x) \
317 { TValue *io=(obj); val_(io).n=(x); settt_(io, LUA_VNUMFLT); }
319 #define chgfltvalue(obj,x) \
320 { TValue *io=(obj); lua_assert(ttisfloat(io)); val_(io).n=(x); }
322 #define setivalue(obj,x) \
323 { TValue *io=(obj); val_(io).i=(x); settt_(io, LUA_VNUMINT); }
325 #define chgivalue(obj,x) \
326 { TValue *io=(obj); lua_assert(ttisinteger(io)); val_(io).i=(x); }
338 #define LUA_VSHRSTR makevariant(LUA_TSTRING, 0)
339 #define LUA_VLNGSTR makevariant(LUA_TSTRING, 1)
341 #define ttisstring(o) checktype((o), LUA_TSTRING)
342 #define ttisshrstring(o) checktag((o), ctb(LUA_VSHRSTR))
343 #define ttislngstring(o) checktag((o), ctb(LUA_VLNGSTR))
345 #define tsvalueraw(v) (gco2ts((v).gc))
347 #define tsvalue(o) check_exp(ttisstring(o), gco2ts(val_(o).gc))
349 #define setsvalue(L,obj,x) \
350 { TValue *io = (obj); TString *x_ = (x); \
351 val_(io).gc = obj2gco(x_); settt_(io, ctb(x_->tt)); \
352 checkliveness(L,io); }
355 #define setsvalue2s(L,o,s) setsvalue(L,s2v(o),s)
358 #define setsvalue2n setsvalue
381 #define getstr(ts) ((ts)->contents)
385 #define svalue(o) getstr(tsvalue(o))
388 #define tsslen(s) ((s)->tt == LUA_VSHRSTR ? (s)->shrlen : (s)->u.lnglen)
391 #define vslen(o) tsslen(tsvalue(o))
407 #define LUA_VLIGHTUSERDATA makevariant(LUA_TLIGHTUSERDATA, 0)
409 #define LUA_VUSERDATA makevariant(LUA_TUSERDATA, 0)
411 #define ttislightuserdata(o) checktag((o), LUA_VLIGHTUSERDATA)
412 #define ttisfulluserdata(o) checktag((o), ctb(LUA_VUSERDATA))
414 #define pvalue(o) check_exp(ttislightuserdata(o), val_(o).p)
415 #define uvalue(o) check_exp(ttisfulluserdata(o), gco2u(val_(o).gc))
417 #define pvalueraw(v) ((v).p)
419 #define setpvalue(obj,x) \
420 { TValue *io=(obj); val_(io).p=(x); settt_(io, LUA_VLIGHTUSERDATA); }
422 #define setuvalue(L,obj,x) \
423 { TValue *io = (obj); Udata *x_ = (x); \
424 val_(io).gc = obj2gco(x_); settt_(io, ctb(LUA_VUSERDATA)); \
425 checkliveness(L,io); }
468 #define udatamemoffset(nuv) \
469 ((nuv) == 0 ? offsetof(Udata0, bindata) \
470 : offsetof(Udata, uv) + (sizeof(UValue) * (nuv)))
473 #define getudatamem(u) (cast_charp(u) + udatamemoffset((u)->nuvalue))
476 #define sizeudata(nuv,nb) (udatamemoffset(nuv) + (nb))
487 #define LUA_VPROTO makevariant(LUA_TPROTO, 0)
564 #define LUA_VUPVAL makevariant(LUA_TUPVAL, 0)
568 #define LUA_VLCL makevariant(LUA_TFUNCTION, 0)
569 #define LUA_VLCF makevariant(LUA_TFUNCTION, 1)
570 #define LUA_VCCL makevariant(LUA_TFUNCTION, 2)
572 #define ttisfunction(o) checktype(o, LUA_TFUNCTION)
573 #define ttisclosure(o) ((rawtt(o) & 0x1F) == LUA_VLCL)
574 #define ttisLclosure(o) checktag((o), ctb(LUA_VLCL))
575 #define ttislcf(o) checktag((o), LUA_VLCF)
576 #define ttisCclosure(o) checktag((o), ctb(LUA_VCCL))
578 #define isLfunction(o) ttisLclosure(o)
580 #define clvalue(o) check_exp(ttisclosure(o), gco2cl(val_(o).gc))
581 #define clLvalue(o) check_exp(ttisLclosure(o), gco2lcl(val_(o).gc))
582 #define fvalue(o) check_exp(ttislcf(o), val_(o).f)
583 #define clCvalue(o) check_exp(ttisCclosure(o), gco2ccl(val_(o).gc))
585 #define fvalueraw(v) ((v).f)
587 #define setclLvalue(L,obj,x) \
588 { TValue *io = (obj); LClosure *x_ = (x); \
589 val_(io).gc = obj2gco(x_); settt_(io, ctb(LUA_VLCL)); \
590 checkliveness(L,io); }
592 #define setclLvalue2s(L,o,cl) setclLvalue(L,s2v(o),cl)
594 #define setfvalue(obj,x) \
595 { TValue *io=(obj); val_(io).f=(x); settt_(io, LUA_VLCF); }
597 #define setclCvalue(L,obj,x) \
598 { TValue *io = (obj); CClosure *x_ = (x); \
599 val_(io).gc = obj2gco(x_); settt_(io, ctb(LUA_VCCL)); \
600 checkliveness(L,io); }
621 #define ClosureHeader \
622 CommonHeader; lu_byte nupvalues; GCObject *gclist
644 #define getproto(o) (clLvalue(o)->p)
655 #define LUA_VTABLE makevariant(LUA_TTABLE, 0)
657 #define ttistable(o) checktag((o), ctb(LUA_VTABLE))
659 #define hvalue(o) check_exp(ttistable(o), gco2t(val_(o).gc))
661 #define sethvalue(L,obj,x) \
662 { TValue *io = (obj); Table *x_ = (x); \
663 val_(io).gc = obj2gco(x_); settt_(io, ctb(LUA_VTABLE)); \
664 checkliveness(L,io); }
666 #define sethvalue2s(L,o,h) sethvalue(L,s2v(o),h)
688 #define setnodekey(L,node,obj) \
689 { Node *n_=(node); const TValue *io_=(obj); \
690 n_->u.key_val = io_->value_; n_->u.key_tt = io_->tt_; \
691 checkliveness(L,io_); }
695 #define getnodekey(L,obj,node) \
696 { TValue *io_=(obj); const Node *n_=(node); \
697 io_->value_ = n_->u.key_val; io_->tt_ = n_->u.key_tt; \
698 checkliveness(L,io_); }
708 #define BITRAS (1 << 7)
709 #define isrealasize(t) (!((t)->flags & BITRAS))
710 #define setrealasize(t) ((t)->flags &= cast_byte(~BITRAS))
711 #define setnorealasize(t) ((t)->flags |= BITRAS)
730 #define keytt(node) ((node)->u.key_tt)
731 #define keyval(node) ((node)->u.key_val)
733 #define keyisnil(node) (keytt(node) == LUA_TNIL)
734 #define keyisinteger(node) (keytt(node) == LUA_VNUMINT)
735 #define keyival(node) (keyval(node).i)
736 #define keyisshrstr(node) (keytt(node) == ctb(LUA_VSHRSTR))
737 #define keystrval(node) (gco2ts(keyval(node).gc))
739 #define setnilkey(node) (keytt(node) = LUA_TNIL)
741 #define keyiscollectable(n) (keytt(n) & BIT_ISCOLLECTABLE)
743 #define gckey(n) (keyval(n).gc)
744 #define gckeyN(n) (keyiscollectable(n) ? gckey(n) : NULL)
753 #define setdeadkey(node) (keytt(node) = LUA_TDEADKEY)
754 #define keyisdead(node) (keytt(node) == LUA_TDEADKEY)
763 #define lmod(s,size) \
764 (check_exp((size&(size-1))==0, (cast_int((s) & ((size)-1)))))
767 #define twoto(x) (1<<(x))
768 #define sizenode(t) (twoto((t)->lsizenode))
static int searcher_Lua(lua_State *L)
Definition: loadlib.c:543
lua_Integer luaV_mod(lua_State *L, lua_Integer m, lua_Integer n)
Definition: lvm.c:733
#define LUA_IDSIZE
Definition: luaconf.h:728
#define luaL_optstring(L, n, d)
Definition: lauxlib.h:139
#define LUA_CSUBSEP
Definition: loadlib.c:43
CommonHeader
Definition: lobject.h:607
#define s2v(o)
Definition: lobject.h:150
#define luai_numsub(L, a, b)
Definition: llimits.h:336
#define lua_pushliteral(L, s)
Definition: lua.h:381
int luaO_rawarith(lua_State *L, int op, const TValue *p1, const TValue *p2, TValue *res)
Definition: lobject.c:89
Upvaldesc * upvalues
Definition: lobject.h:547
LUA_API void lua_rotate(lua_State *L, int idx, int n)
Definition: lapi.c:217
#define luai_numunm(L, a)
Definition: llimits.h:338
lu_byte kind
Definition: lobject.h:497
lu_byte flags
Definition: lobject.h:716
#define LUA_OPUNM
Definition: lua.h:217
#define lua_assert(c)
Definition: lauxlib.h:169
#define lua_number2str(s, sz, n)
Definition: luaconf.h:401
CommonHeader
Definition: lobject.h:271
static lua_Integer intarith(lua_State *L, int op, lua_Integer v1, lua_Integer v2)
Definition: lobject.c:53
static void pushstr(BuffFS *buff, const char *str, size_t l)
Definition: lobject.c:405
#define LUA_PRELOAD_TABLE
Definition: lauxlib.h:34
signed char ls_byte
Definition: llimits.h:37
Definition: lobject.h:458
LUA_UNSIGNED lua_Unsigned
Definition: lua.h:97
#define LUAI_FUNC
Definition: luaconf.h:307
static void findloader(lua_State *L, const char *name)
Definition: loadlib.c:622
static const char * l_str2dloc(const char *s, lua_Number *result, int mode)
Definition: lobject.c:228
LUALIB_API void luaL_addstring(luaL_Buffer *B, const char *s)
Definition: lauxlib.c:579
#define cast(t, exp)
Definition: llimits.h:123
#define lua_pushglobaltable(L)
Definition: lua.h:383
Instruction * code
Definition: lobject.h:545
#define L_MAXLENNUM
Definition: lobject.c:220
#define LUA_CPATH_DEFAULT
Definition: luaconf.h:227
void * p
Definition: lobject.h:51
#define LUA_LOADED_TABLE
Definition: lauxlib.h:30
int pc
Definition: lobject.h:523
static const luaL_Reg pk_funcs[]
Definition: loadlib.c:688
static int isneg(const char **s)
Definition: lobject.c:141
static int ll_require(lua_State *L)
Definition: loadlib.c:654
#define lua_tostring(L, i)
Definition: lua.h:386
lu_byte key_tt
Definition: lobject.h:679
#define addstr(a, b, l)
Definition: lobject.c:555
int sizeabslineinfo
Definition: lobject.h:541
#define LUA_OK
Definition: lua.h:49
#define LUA_OPDIV
Definition: lua.h:210
ClosureHeader
Definition: lobject.h:632
#define POS
Definition: lobject.c:553
TString * luaS_newlstr(lua_State *L, const char *str, size_t l)
Definition: lstring.c:221
LUA_API const char * lua_pushstring(lua_State *L, const char *s)
Definition: lapi.c:514
#define luaL_checkstring(L, n)
Definition: lauxlib.h:138
static int tostringbuff(TValue *obj, char *buff)
Definition: lobject.c:355
lua_Integer i
Definition: lobject.h:53
CommonHeader
Definition: lobject.h:365
struct UpVal * next
Definition: lobject.h:612
#define lisdigit(c)
Definition: lctype.h:59
LUA_API int lua_getfield(lua_State *L, int idx, const char *k)
Definition: lapi.c:665
static void exp1(LexState *ls)
Definition: lparser.c:1505
LUALIB_API const char * luaL_gsub(lua_State *L, const char *s, const char *p, const char *r)
Definition: lauxlib.c:990
#define setsvalue(L, obj, x)
Definition: lobject.h:349
TValue val
Definition: lobject.h:142
Definition: lobject.c:393
LUALIB_API void luaL_buffinit(lua_State *L, luaL_Buffer *B)
Definition: lauxlib.c:620
#define LUA_TTABLE
Definition: lua.h:70
static void pusherrornotfound(lua_State *L, const char *path)
Definition: loadlib.c:469
CommonHeader
Definition: lobject.h:715
LUAI_FUNC int luaO_hexavalue(int c)
Definition: lobject.c:135
TString * varname
Definition: lobject.h:506
#define lisspace(c)
Definition: lctype.h:60
int lastlinedefined
Definition: lobject.h:543
#define LUA_OPBAND
Definition: lua.h:212
lua_CFunction f
Definition: lobject.h:52
#define LUA_OPSUB
Definition: lua.h:206
static int gctm(lua_State *L)
Definition: loadlib.c:361
#define lua_strx2number(s, p)
Definition: luaconf.h:598
#define LUA_OPMUL
Definition: lua.h:207
static const luaL_Reg ll_funcs[]
Definition: loadlib.c:701
#define lua_remove(L, idx)
Definition: lua.h:391
l_noret luaG_runerror(lua_State *L, const char *fmt,...)
Definition: ldebug.c:767
#define lua_pop(L, n)
Definition: lua.h:364
struct Proto ** p
Definition: lobject.h:546
lua_Integer luaV_shiftl(lua_Integer x, lua_Integer y)
Definition: lvm.c:766
LUAI_MAXALIGN
Definition: lobject.h:463
unsigned short nuvalue
Definition: lobject.h:460
#define LUA_OPADD
Definition: lua.h:205
#define BUFVFS
Definition: lobject.c:390
static void clearbuff(BuffFS *buff)
Definition: lobject.c:418
LUA_API const char * lua_pushlstring(lua_State *L, const char *s, size_t len)
Definition: lapi.c:502
#define ttisinteger(o)
Definition: lobject.h:306
lu_byte is_vararg
Definition: lobject.h:533
UValue uv[1]
Definition: lobject.h:445
unsigned short nuvalue
Definition: lobject.h:441
LUALIB_API void luaL_addlstring(luaL_Buffer *B, const char *s, size_t l)
Definition: lauxlib.c:570
int next
Definition: lobject.h:680
LUA_NUMBER lua_Number
Definition: lua.h:90
#define LUA_OPBXOR
Definition: lua.h:214
LUA_API int lua_isstring(lua_State *L, int idx)
Definition: lapi.c:292
TString * name
Definition: lobject.h:494
static void addtoclib(lua_State *L, const char *path, void *plib)
Definition: loadlib.c:347
#define luaL_loadfile(L, f)
Definition: lauxlib.h:94
LUAMOD_API int luaopen_package(lua_State *L)
Definition: loadlib.c:736
#define LUA_VERSUFFIX
Definition: lualib.h:15
#define luaL_buffsub(B, s)
Definition: lauxlib.h:204
int sizecode
Definition: lobject.h:537
#define cast_char(i)
Definition: llimits.h:132
static void * checkclib(lua_State *L, const char *path)
Definition: loadlib.c:333
lu_byte extra
Definition: lobject.h:366
LUA_API int lua_setmetatable(lua_State *L, int objindex)
Definition: lapi.c:909
ClosureHeader
Definition: lobject.h:625
static l_noret error(LoadState *S, const char *why)
Definition: lundump.c:40
Definition: lobject.h:141
TValue i_val
Definition: lobject.h:683
static const char * l_str2d(const char *s, lua_Number *result)
Definition: lobject.c:251
int sizep
Definition: lobject.h:539
union StackValue StackValue
LUALIB_API void luaL_pushresult(luaL_Buffer *B)
Definition: lauxlib.c:584
TValue uv
Definition: lobject.h:430
lua_State * L
Definition: lobject.c:394
#define ltolower(c)
Definition: lctype.h:71
TString * source
Definition: lobject.h:551
CommonHeader
Definition: lobject.h:459
#define UTF8BUFFSZ
Definition: lobject.h:772
#define MAXLASTD
Definition: lobject.c:274
#define tointegerns(o, i)
Definition: lvm.h:67
#define lua_isfunction(L, n)
Definition: lua.h:372
Node * lastfree
Definition: lobject.h:721
static lua_Number numarith(lua_State *L, int op, lua_Number v1, lua_Number v2)
Definition: lobject.c:73
LUAI_MAXALIGN
Definition: lobject.h:431
int startpc
Definition: lobject.h:507
lu_byte numparams
Definition: lobject.h:532
#define luai_numidiv(L, a, b)
Definition: llimits.h:302
int linedefined
Definition: lobject.h:542
char space[BUFVFS]
Definition: lobject.c:397
#define LL(x)
Definition: llimits.h:70
lu_byte tbc
Definition: lobject.h:608
Definition: lobject.h:606
#define fltvalue(o)
Definition: lobject.h:310
static int noenv(lua_State *L)
Definition: loadlib.c:283
size_t len
Definition: lobject.h:442
#define ivalue(o)
Definition: lobject.h:311
#define lisxdigit(c)
Definition: lctype.h:62
#define lua_insert(L, idx)
Definition: lua.h:389
unsigned int hash
Definition: lobject.h:368
#define LUA_OPIDIV
Definition: lua.h:211
AbsLineInfo * abslineinfo
Definition: lobject.h:549
#define PRE
Definition: lobject.c:552
struct GCObject * gc
Definition: lobject.h:50
#define ERRLIB
Definition: loadlib.c:374
GCObject * gclist
Definition: lobject.h:444
struct TString * hnext
Definition: lobject.h:371
#define luai_numpow(L, a, b)
Definition: llimits.h:329
lua_Number n
Definition: lobject.h:54
LUA_API void lua_setfield(lua_State *L, int idx, const char *k)
Definition: lapi.c:847
static const char * l_str2int(const char *s, lua_Integer *result)
Definition: lobject.c:276
LUA_API void lua_pushcclosure(lua_State *L, lua_CFunction fn, int n)
Definition: lapi.c:555
Definition: lobject.h:624
LUAI_UACINT l_uacInt
Definition: llimits.h:84
int line
Definition: lobject.h:524
int luaO_ceillog2(unsigned int x)
Definition: lobject.c:35
LUAI_FUNC size_t luaO_str2num(const char *s, TValue *o)
Definition: lobject.c:308
lua_Number luaV_modf(lua_State *L, lua_Number m, lua_Number n)
Definition: lvm.c:751
LUAI_FUNC void luaO_chunkid(char *out, const char *source, size_t srclen)
Definition: lobject.c:557
Definition: lobject.h:677
#define LIB_FAIL
Definition: loadlib.c:232
Definition: lobject.h:364
static int ll_searchpath(lua_State *L)
Definition: loadlib.c:506
Definition: lobject.h:429
#define LUA_OPMOD
Definition: lua.h:208
LUAI_FUNC void luaO_tostring(lua_State *L, TValue *obj)
Definition: lobject.c:374
LUAI_FUNC const char * luaO_pushvfstring(lua_State *L, const char *fmt, va_list argp)
Definition: lobject.c:470
static void createclibstable(lua_State *L)
Definition: loadlib.c:727
LUA_API int lua_rawgeti(lua_State *L, int idx, lua_Integer n)
Definition: lapi.c:720
#define setsvalue2s(L, o, s)
Definition: lobject.h:355
int sizek
Definition: lobject.h:536
unsigned char lu_byte
Definition: llimits.h:36
#define MAXNUMBER2STR
Definition: lobject.c:349
size_t lnglen
Definition: lobject.h:370
void luaO_chunkid(char *out, const char *source, size_t srclen)
Definition: lobject.c:557
lua_CFunction f
Definition: lobject.h:626
static int checkload(lua_State *L, int stat, const char *filename)
Definition: loadlib.c:532
#define RETS
Definition: lobject.c:551
@ TM_ADD
Definition: ltm.h:25
LUA_API const char * lua_pushfstring(lua_State *L, const char *fmt,...)
Definition: lapi.c:542
ls_byte * lineinfo
Definition: lobject.h:548
TValue upvalue[1]
Definition: lobject.h:627
GCObject * gclist
Definition: lobject.h:552
#define LUA_DIRSEP
Definition: luaconf.h:244
static int loadfunc(lua_State *L, const char *filename, const char *modname)
Definition: loadlib.c:560
char contents[1]
Definition: lobject.h:373
int pushed
Definition: lobject.c:395
Definition: lobject.h:714
Definition: lobject.h:439
#define LUA_REGISTRYINDEX
Definition: lua.h:44
#define setprogdir(L)
Definition: loadlib.c:67
LUA_API void * lua_touserdata(lua_State *L, int idx)
Definition: lapi.c:432
#define LUA_PATH_VAR
Definition: loadlib.c:271
#define l_castU2S(i)
Definition: llimits.h:148
Definition: lauxlib.h:182
#define LUA_PATH_SEP
Definition: luaconf.h:173
int luaO_hexavalue(int c)
Definition: lobject.c:135
#define cast_charp(i)
Definition: llimits.h:133
#define luaL_addchar(B, c)
Definition: lauxlib.h:198
struct Table * metatable
Definition: lobject.h:722
#define luai_numdiv(L, a, b)
Definition: llimits.h:307
Value key_val
Definition: lobject.h:681
GCObject * gclist
Definition: lobject.h:723
LUA_INTEGER lua_Integer
Definition: lua.h:94
#define cast_uchar(i)
Definition: llimits.h:131
#define lua_isnil(L, n)
Definition: lua.h:375
LUA_API void lua_settop(lua_State *L, int idx)
Definition: lapi.c:173
struct Proto * p
Definition: lobject.h:633
static void setpath(lua_State *L, const char *fieldname, const char *envname, const char *dft)
Definition: loadlib.c:295
#define LUA_CPATH_VAR
Definition: loadlib.c:275
LUA_API void lua_pushboolean(lua_State *L, int b)
Definition: lapi.c:581
LUA_API void lua_pushvalue(lua_State *L, int idx)
Definition: lapi.c:246
struct Upvaldesc Upvaldesc
Definition: lobject.h:522
TValuefields
Definition: lobject.h:678
#define DLMSG
Definition: loadlib.c:235
LUALIB_API lua_Integer luaL_len(lua_State *L, int idx)
Definition: lauxlib.c:861
#define LUA_POF
Definition: loadlib.c:52
TValue value
Definition: lobject.h:615
#define MAXBY10
Definition: lobject.c:273
#define luai_numadd(L, a, b)
Definition: llimits.h:335
TValue * v
Definition: lobject.h:609
TValue * array
Definition: lobject.h:719
TValue * k
Definition: lobject.h:544
#define lua_pointer2str(buff, sz, p)
Definition: luaconf.h:606
unsigned int alimit
Definition: lobject.h:718
#define intop(op, v1, v2)
Definition: lvm.h:71
#define l_castS2U(i)
Definition: llimits.h:139
#define lua_pushcfunction(L, f)
Definition: lua.h:370
Definition: lobject.h:631
int sizelineinfo
Definition: lobject.h:538
lu_byte maxstacksize
Definition: lobject.h:534
lu_byte instack
Definition: lobject.h:495
#define luai_nummul(L, a, b)
Definition: llimits.h:337
#define ERRFUNC
Definition: loadlib.c:375
CClosure c
Definition: lobject.h:639
const char * luaO_pushfstring(lua_State *L, const char *fmt,...)
Definition: lobject.c:539
#define lua_call(L, n, r)
Definition: lua.h:283
int sizeupvalues
Definition: lobject.h:535
#define tonumberns(o, n)
Definition: lvm.h:56
#define lua_getlocaledecpoint()
Definition: luaconf.h:659
l_uint32 Instruction
Definition: llimits.h:194
#define LUA_TNIL
Definition: lua.h:65
const char * luaO_pushvfstring(lua_State *L, const char *fmt, va_list argp)
Definition: lobject.c:470
size_t luaO_str2num(const char *s, TValue *o)
Definition: lobject.c:308
struct Table * metatable
Definition: lobject.h:462
#define luaL_bufflen(bf)
Definition: lauxlib.h:194
#define LUAMOD_API
Definition: luaconf.h:286
StackValue * StkId
Definition: lobject.h:147
void luaV_concat(lua_State *L, int total)
Definition: lvm.c:633
LUAI_FUNC const char * luaO_pushfstring(lua_State *L, const char *fmt,...)
Definition: lobject.c:539
#define setivalue(obj, x)
Definition: lobject.h:322
#define LUA_OFSEP
Definition: loadlib.c:55
#define lua_integer2str(s, sz, n)
Definition: luaconf.h:498
void luaO_tostring(lua_State *L, TValue *obj)
Definition: lobject.c:374
#define addsize(b, sz)
Definition: lobject.c:436
LUA_API void lua_rawseti(lua_State *L, int idx, lua_Integer n)
Definition: lapi.c:897
LUALIB_API void luaL_setfuncs(lua_State *L, const luaL_Reg *l, int nup)
Definition: lauxlib.c:916
static lua_CFunction lsys_sym(lua_State *L, void *lib, const char *sym)
Definition: loadlib.c:250
LUAI_FUNC int luaO_rawarith(lua_State *L, int op, const TValue *p1, const TValue *p2, TValue *res)
Definition: lobject.c:89
static int searcher_Croot(lua_State *L)
Definition: loadlib.c:586
Definition: lobject.h:530
static void * lsys_load(lua_State *L, const char *path, int seeglb)
Definition: loadlib.c:243
static void lsys_unloadlib(void *lib)
Definition: loadlib.c:238
static int ll_loadlib(lua_State *L)
Definition: loadlib.c:409
CommonHeader
Definition: lobject.h:440
static int readable(const char *filename)
Definition: loadlib.c:432
static const char *const CLIBS
Definition: loadlib.c:62
#define l_mathop(op)
Definition: luaconf.h:463
#define luaL_newlib(L, l)
Definition: lauxlib.h:129
LUALIB_API int luaL_error(lua_State *L, const char *fmt,...)
Definition: lauxlib.c:234
LUAI_UACNUMBER l_uacNumber
Definition: llimits.h:83
int blen
Definition: lobject.c:396
static const char * findfile(lua_State *L, const char *name, const char *pname, const char *dirsep)
Definition: loadlib.c:520
struct UpVal::@3::@4 open
struct AbsLineInfo AbsLineInfo
void luaO_arith(lua_State *L, int op, const TValue *p1, const TValue *p2, StkId res)
Definition: lobject.c:126
LUAI_FUNC void luaO_arith(lua_State *L, int op, const TValue *p1, const TValue *p2, StkId res)
Definition: lobject.c:126
Definition: lobject.h:493
#define ttisnumber(o)
Definition: lobject.h:304
lu_byte idx
Definition: lobject.h:496
#define luaL_buffaddr(bf)
Definition: lauxlib.h:195
static char * getbuff(BuffFS *buff, int sz)
Definition: lobject.c:428
static void createsearcherstable(lua_State *L)
Definition: loadlib.c:707
LUALIB_API int luaL_getsubtable(lua_State *L, int idx, const char *fname)
Definition: lauxlib.c:937
int(* lua_CFunction)(lua_State *L)
Definition: lua.h:106
static int searcher_preload(lua_State *L)
Definition: loadlib.c:608
void(* voidf)(void)
Definition: loadlib.c:74
#define LUA_OPPOW
Definition: lua.h:209
Definition: lobject.h:676
static const char * getnextfilename(char **path, char *end)
Definition: loadlib.c:445
lu_byte shrlen
Definition: lobject.h:367
StkId top
Definition: lstate.h:278
struct Table * metatable
Definition: lobject.h:443
Definition: lobject.h:505
#define setfltvalue(obj, x)
Definition: lobject.h:316
static int searcher_C(lua_State *L)
Definition: loadlib.c:578
LUA_API int lua_toboolean(lua_State *L, int idx)
Definition: lapi.c:375
Definition: lobject.h:270
#define LUA_OPSHR
Definition: lua.h:216
lua_Integer luaV_idiv(lua_State *L, lua_Integer m, lua_Integer n)
Definition: lvm.c:713
int luaO_utf8esc(char *buff, unsigned long x)
Definition: lobject.c:323
#define LUA_OPBOR
Definition: lua.h:213
#define LUA_PATH_MARK
Definition: luaconf.h:174
LUAI_FUNC int luaO_ceillog2(unsigned int x)
Definition: lobject.c:35
CommonHeader
Definition: lobject.h:531
struct UpVal ** previous
Definition: lobject.h:613
lu_byte lsizenode
Definition: lobject.h:717
void luaT_trybinTM(lua_State *L, const TValue *p1, const TValue *p2, StkId res, TMS event)
Definition: ltm.c:148
#define lua_str2number(s, p)
Definition: luaconf.h:465
#define lua_upvalueindex(i)
Definition: lua.h:45
static int lookforfunc(lua_State *L, const char *path, const char *sym)
Definition: loadlib.c:388
LUALIB_API void luaL_addvalue(luaL_Buffer *B)
Definition: lauxlib.c:609
#define LUA_PATH_DEFAULT
Definition: luaconf.h:220
#define LUA_LSUBSEP
Definition: loadlib.c:47
LocVar * locvars
Definition: lobject.h:550
#define LUA_OPSHL
Definition: lua.h:215
LUALIB_API void luaL_addgsub(luaL_Buffer *b, const char *s, const char *p, const char *r)
Definition: lauxlib.c:977
TValuefields
Definition: lobject.h:66
static void addstr2buff(BuffFS *buff, const char *str, size_t slen)
Definition: lobject.c:443
#define svalue(o)
Definition: lobject.h:385
LUA_API void lua_createtable(lua_State *L, int narray, int nrec)
Definition: lapi.c:738
int endpc
Definition: lobject.h:508
LUAI_FUNC int luaO_utf8esc(char *buff, unsigned long x)
Definition: lobject.c:323
int sizelocvars
Definition: lobject.h:540
#define LUA_EXEC_DIR
Definition: luaconf.h:175
#define LUA_OPBNOT
Definition: lua.h:218
LUA_API void lua_pushlightuserdata(lua_State *L, void *p)
Definition: lapi.c:592
#define LUA_IGMARK
Definition: loadlib.c:32
#define luaL_pushfail(L)
Definition: lauxlib.h:157
Definition: lobject.h:638
LUA_API void lua_copy(lua_State *L, int fromidx, int toidx)
Definition: lapi.c:231
Node * node
Definition: lobject.h:720
UpVal * upvals[1]
Definition: lobject.h:634
size_t len
Definition: lobject.h:461
static const char * searchpath(lua_State *L, const char *name, const char *path, const char *sep, const char *dirsep)
Definition: loadlib.c:479
LClosure l
Definition: lobject.h:640
#define cast_num(i)
Definition: llimits.h:127
static void addnum2buff(BuffFS *buff, TValue *num)
Definition: lobject.c:459
#define cast_int(i)
Definition: llimits.h:128