11d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III/* 21d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III** $Id: lua.h,v 1.285 2013/03/15 13:04:22 roberto Exp $ 31d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III** Lua - A Scripting Language 41d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III** Lua.org, PUC-Rio, Brazil (http://www.lua.org) 51d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III** See Copyright Notice at the end of this file 61d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III*/ 71d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III 81d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III 91d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III#ifndef lua_h 101d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III#define lua_h 111d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III 121d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III#include <stdarg.h> 131d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III#include <stddef.h> 141d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III 151d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III 161d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III#include "luaconf.h" 171d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III 181d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III 191d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III#define LUA_VERSION_MAJOR "5" 201d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III#define LUA_VERSION_MINOR "2" 211d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III#define LUA_VERSION_NUM 502 221d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III#define LUA_VERSION_RELEASE "2" 231d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III 241d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III#define LUA_VERSION "Lua " LUA_VERSION_MAJOR "." LUA_VERSION_MINOR 251d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III#define LUA_RELEASE LUA_VERSION "." LUA_VERSION_RELEASE 261d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III#define LUA_COPYRIGHT LUA_RELEASE " Copyright (C) 1994-2013 Lua.org, PUC-Rio" 271d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III#define LUA_AUTHORS "R. Ierusalimschy, L. H. de Figueiredo, W. Celes" 281d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III 291d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III 301d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III/* mark for precompiled code ('<esc>Lua') */ 311d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III#define LUA_SIGNATURE "\033Lua" 321d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III 331d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III/* option for multiple returns in 'lua_pcall' and 'lua_call' */ 341d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III#define LUA_MULTRET (-1) 351d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III 361d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III 371d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III/* 381d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III** pseudo-indices 391d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III*/ 401d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III#define LUA_REGISTRYINDEX LUAI_FIRSTPSEUDOIDX 411d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III#define lua_upvalueindex(i) (LUA_REGISTRYINDEX - (i)) 421d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III 431d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III 441d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III/* thread status */ 451d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III#define LUA_OK 0 461d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III#define LUA_YIELD 1 471d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III#define LUA_ERRRUN 2 481d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III#define LUA_ERRSYNTAX 3 491d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III#define LUA_ERRMEM 4 501d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III#define LUA_ERRGCMM 5 511d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III#define LUA_ERRERR 6 521d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III 531d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III 541d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins IIItypedef struct lua_State lua_State; 551d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III 561d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins IIItypedef int (*lua_CFunction) (lua_State *L); 571d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III 581d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III 591d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III/* 601d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III** functions that read/write blocks when loading/dumping Lua chunks 611d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III*/ 621d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins IIItypedef const char * (*lua_Reader) (lua_State *L, void *ud, size_t *sz); 631d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III 641d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins IIItypedef int (*lua_Writer) (lua_State *L, const void* p, size_t sz, void* ud); 651d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III 661d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III 671d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III/* 681d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III** prototype for memory-allocation functions 691d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III*/ 701d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins IIItypedef void * (*lua_Alloc) (void *ud, void *ptr, size_t osize, size_t nsize); 711d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III 721d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III 731d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III/* 741d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III** basic types 751d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III*/ 761d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III#define LUA_TNONE (-1) 771d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III 781d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III#define LUA_TNIL 0 791d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III#define LUA_TBOOLEAN 1 801d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III#define LUA_TLIGHTUSERDATA 2 811d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III#define LUA_TNUMBER 3 821d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III#define LUA_TSTRING 4 831d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III#define LUA_TTABLE 5 841d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III#define LUA_TFUNCTION 6 851d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III#define LUA_TUSERDATA 7 861d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III#define LUA_TTHREAD 8 871d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III 881d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III#define LUA_NUMTAGS 9 891d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III 901d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III 911d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III 921d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III/* minimum Lua stack available to a C function */ 931d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III#define LUA_MINSTACK 20 941d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III 951d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III 961d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III/* predefined values in the registry */ 971d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III#define LUA_RIDX_MAINTHREAD 1 981d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III#define LUA_RIDX_GLOBALS 2 991d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III#define LUA_RIDX_LAST LUA_RIDX_GLOBALS 1001d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III 1011d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III 1021d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III/* type of numbers in Lua */ 1031d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins IIItypedef LUA_NUMBER lua_Number; 1041d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III 1051d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III 1061d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III/* type for integer functions */ 1071d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins IIItypedef LUA_INTEGER lua_Integer; 1081d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III 1091d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III/* unsigned integer type */ 1101d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins IIItypedef LUA_UNSIGNED lua_Unsigned; 1111d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III 1121d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III 1131d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III 1141d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III/* 1151d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III** generic extra include file 1161d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III*/ 1171d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III#if defined(LUA_USER_H) 1181d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III#include LUA_USER_H 1191d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III#endif 1201d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III 1211d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III 1221d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III/* 1231d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III** RCS ident string 1241d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III*/ 1251d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins IIIextern const char lua_ident[]; 1261d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III 1271d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III 1281d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III/* 1291d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III** state manipulation 1301d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III*/ 1311d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins IIILUA_API lua_State *(lua_newstate) (lua_Alloc f, void *ud); 1321d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins IIILUA_API void (lua_close) (lua_State *L); 1331d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins IIILUA_API lua_State *(lua_newthread) (lua_State *L); 1341d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III 1351d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins IIILUA_API lua_CFunction (lua_atpanic) (lua_State *L, lua_CFunction panicf); 1361d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III 1371d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III 1381d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins IIILUA_API const lua_Number *(lua_version) (lua_State *L); 1391d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III 1401d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III 1411d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III/* 1421d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III** basic stack manipulation 1431d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III*/ 1441d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins IIILUA_API int (lua_absindex) (lua_State *L, int idx); 1451d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins IIILUA_API int (lua_gettop) (lua_State *L); 1461d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins IIILUA_API void (lua_settop) (lua_State *L, int idx); 1471d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins IIILUA_API void (lua_pushvalue) (lua_State *L, int idx); 1481d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins IIILUA_API void (lua_remove) (lua_State *L, int idx); 1491d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins IIILUA_API void (lua_insert) (lua_State *L, int idx); 1501d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins IIILUA_API void (lua_replace) (lua_State *L, int idx); 1511d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins IIILUA_API void (lua_copy) (lua_State *L, int fromidx, int toidx); 1521d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins IIILUA_API int (lua_checkstack) (lua_State *L, int sz); 1531d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III 1541d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins IIILUA_API void (lua_xmove) (lua_State *from, lua_State *to, int n); 1551d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III 1561d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III 1571d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III/* 1581d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III** access functions (stack -> C) 1591d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III*/ 1601d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III 1611d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins IIILUA_API int (lua_isnumber) (lua_State *L, int idx); 1621d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins IIILUA_API int (lua_isstring) (lua_State *L, int idx); 1631d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins IIILUA_API int (lua_iscfunction) (lua_State *L, int idx); 1641d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins IIILUA_API int (lua_isuserdata) (lua_State *L, int idx); 1651d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins IIILUA_API int (lua_type) (lua_State *L, int idx); 1661d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins IIILUA_API const char *(lua_typename) (lua_State *L, int tp); 1671d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III 1681d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins IIILUA_API lua_Number (lua_tonumberx) (lua_State *L, int idx, int *isnum); 1691d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins IIILUA_API lua_Integer (lua_tointegerx) (lua_State *L, int idx, int *isnum); 1701d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins IIILUA_API lua_Unsigned (lua_tounsignedx) (lua_State *L, int idx, int *isnum); 1711d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins IIILUA_API int (lua_toboolean) (lua_State *L, int idx); 1721d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins IIILUA_API const char *(lua_tolstring) (lua_State *L, int idx, size_t *len); 1731d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins IIILUA_API size_t (lua_rawlen) (lua_State *L, int idx); 1741d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins IIILUA_API lua_CFunction (lua_tocfunction) (lua_State *L, int idx); 1751d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins IIILUA_API void *(lua_touserdata) (lua_State *L, int idx); 1761d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins IIILUA_API lua_State *(lua_tothread) (lua_State *L, int idx); 1771d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins IIILUA_API const void *(lua_topointer) (lua_State *L, int idx); 1781d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III 1791d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III 1801d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III/* 1811d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III** Comparison and arithmetic functions 1821d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III*/ 1831d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III 1841d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III#define LUA_OPADD 0 /* ORDER TM */ 1851d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III#define LUA_OPSUB 1 1861d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III#define LUA_OPMUL 2 1871d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III#define LUA_OPDIV 3 1881d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III#define LUA_OPMOD 4 1891d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III#define LUA_OPPOW 5 1901d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III#define LUA_OPUNM 6 1911d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III 1921d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins IIILUA_API void (lua_arith) (lua_State *L, int op); 1931d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III 1941d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III#define LUA_OPEQ 0 1951d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III#define LUA_OPLT 1 1961d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III#define LUA_OPLE 2 1971d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III 1981d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins IIILUA_API int (lua_rawequal) (lua_State *L, int idx1, int idx2); 1991d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins IIILUA_API int (lua_compare) (lua_State *L, int idx1, int idx2, int op); 2001d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III 2011d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III 2021d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III/* 2031d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III** push functions (C -> stack) 2041d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III*/ 2051d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins IIILUA_API void (lua_pushnil) (lua_State *L); 2061d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins IIILUA_API void (lua_pushnumber) (lua_State *L, lua_Number n); 2071d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins IIILUA_API void (lua_pushinteger) (lua_State *L, lua_Integer n); 2081d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins IIILUA_API void (lua_pushunsigned) (lua_State *L, lua_Unsigned n); 2091d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins IIILUA_API const char *(lua_pushlstring) (lua_State *L, const char *s, size_t l); 2101d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins IIILUA_API const char *(lua_pushstring) (lua_State *L, const char *s); 2111d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins IIILUA_API const char *(lua_pushvfstring) (lua_State *L, const char *fmt, 2121d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III va_list argp); 2131d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins IIILUA_API const char *(lua_pushfstring) (lua_State *L, const char *fmt, ...); 2141d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins IIILUA_API void (lua_pushcclosure) (lua_State *L, lua_CFunction fn, int n); 2151d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins IIILUA_API void (lua_pushboolean) (lua_State *L, int b); 2161d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins IIILUA_API void (lua_pushlightuserdata) (lua_State *L, void *p); 2171d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins IIILUA_API int (lua_pushthread) (lua_State *L); 2181d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III 2191d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III 2201d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III/* 2211d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III** get functions (Lua -> stack) 2221d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III*/ 2231d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins IIILUA_API void (lua_getglobal) (lua_State *L, const char *var); 2241d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins IIILUA_API void (lua_gettable) (lua_State *L, int idx); 2251d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins IIILUA_API void (lua_getfield) (lua_State *L, int idx, const char *k); 2261d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins IIILUA_API void (lua_rawget) (lua_State *L, int idx); 2271d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins IIILUA_API void (lua_rawgeti) (lua_State *L, int idx, int n); 2281d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins IIILUA_API void (lua_rawgetp) (lua_State *L, int idx, const void *p); 2291d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins IIILUA_API void (lua_createtable) (lua_State *L, int narr, int nrec); 2301d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins IIILUA_API void *(lua_newuserdata) (lua_State *L, size_t sz); 2311d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins IIILUA_API int (lua_getmetatable) (lua_State *L, int objindex); 2321d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins IIILUA_API void (lua_getuservalue) (lua_State *L, int idx); 2331d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III 2341d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III 2351d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III/* 2361d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III** set functions (stack -> Lua) 2371d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III*/ 2381d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins IIILUA_API void (lua_setglobal) (lua_State *L, const char *var); 2391d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins IIILUA_API void (lua_settable) (lua_State *L, int idx); 2401d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins IIILUA_API void (lua_setfield) (lua_State *L, int idx, const char *k); 2411d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins IIILUA_API void (lua_rawset) (lua_State *L, int idx); 2421d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins IIILUA_API void (lua_rawseti) (lua_State *L, int idx, int n); 2431d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins IIILUA_API void (lua_rawsetp) (lua_State *L, int idx, const void *p); 2441d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins IIILUA_API int (lua_setmetatable) (lua_State *L, int objindex); 2451d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins IIILUA_API void (lua_setuservalue) (lua_State *L, int idx); 2461d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III 2471d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III 2481d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III/* 2491d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III** 'load' and 'call' functions (load and run Lua code) 2501d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III*/ 2511d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins IIILUA_API void (lua_callk) (lua_State *L, int nargs, int nresults, int ctx, 2521d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III lua_CFunction k); 2531d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III#define lua_call(L,n,r) lua_callk(L, (n), (r), 0, NULL) 2541d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III 2551d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins IIILUA_API int (lua_getctx) (lua_State *L, int *ctx); 2561d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III 2571d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins IIILUA_API int (lua_pcallk) (lua_State *L, int nargs, int nresults, int errfunc, 2581d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III int ctx, lua_CFunction k); 2591d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III#define lua_pcall(L,n,r,f) lua_pcallk(L, (n), (r), (f), 0, NULL) 2601d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III 2611d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins IIILUA_API int (lua_load) (lua_State *L, lua_Reader reader, void *dt, 2621d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III const char *chunkname, 2631d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III const char *mode); 2641d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III 2651d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins IIILUA_API int (lua_dump) (lua_State *L, lua_Writer writer, void *data); 2661d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III 2671d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III 2681d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III/* 2691d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III** coroutine functions 2701d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III*/ 2711d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins IIILUA_API int (lua_yieldk) (lua_State *L, int nresults, int ctx, 2721d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III lua_CFunction k); 2731d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III#define lua_yield(L,n) lua_yieldk(L, (n), 0, NULL) 2741d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins IIILUA_API int (lua_resume) (lua_State *L, lua_State *from, int narg); 2751d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins IIILUA_API int (lua_status) (lua_State *L); 2761d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III 2771d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III/* 2781d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III** garbage-collection function and options 2791d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III*/ 2801d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III 2811d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III#define LUA_GCSTOP 0 2821d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III#define LUA_GCRESTART 1 2831d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III#define LUA_GCCOLLECT 2 2841d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III#define LUA_GCCOUNT 3 2851d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III#define LUA_GCCOUNTB 4 2861d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III#define LUA_GCSTEP 5 2871d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III#define LUA_GCSETPAUSE 6 2881d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III#define LUA_GCSETSTEPMUL 7 2891d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III#define LUA_GCSETMAJORINC 8 2901d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III#define LUA_GCISRUNNING 9 2911d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III#define LUA_GCGEN 10 2921d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III#define LUA_GCINC 11 2931d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III 2941d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins IIILUA_API int (lua_gc) (lua_State *L, int what, int data); 2951d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III 2961d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III 2971d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III/* 2981d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III** miscellaneous functions 2991d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III*/ 3001d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III 3011d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins IIILUA_API int (lua_error) (lua_State *L); 3021d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III 3031d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins IIILUA_API int (lua_next) (lua_State *L, int idx); 3041d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III 3051d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins IIILUA_API void (lua_concat) (lua_State *L, int n); 3061d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins IIILUA_API void (lua_len) (lua_State *L, int idx); 3071d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III 3081d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins IIILUA_API lua_Alloc (lua_getallocf) (lua_State *L, void **ud); 3091d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins IIILUA_API void (lua_setallocf) (lua_State *L, lua_Alloc f, void *ud); 3101d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III 3111d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III 3121d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III 3131d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III/* 3141d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III** =============================================================== 3151d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III** some useful macros 3161d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III** =============================================================== 3171d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III*/ 3181d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III 3191d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III#define lua_tonumber(L,i) lua_tonumberx(L,i,NULL) 3201d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III#define lua_tointeger(L,i) lua_tointegerx(L,i,NULL) 3211d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III#define lua_tounsigned(L,i) lua_tounsignedx(L,i,NULL) 3221d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III 3231d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III#define lua_pop(L,n) lua_settop(L, -(n)-1) 3241d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III 3251d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III#define lua_newtable(L) lua_createtable(L, 0, 0) 3261d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III 3271d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III#define lua_register(L,n,f) (lua_pushcfunction(L, (f)), lua_setglobal(L, (n))) 3281d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III 3291d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III#define lua_pushcfunction(L,f) lua_pushcclosure(L, (f), 0) 3301d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III 3311d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III#define lua_isfunction(L,n) (lua_type(L, (n)) == LUA_TFUNCTION) 3321d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III#define lua_istable(L,n) (lua_type(L, (n)) == LUA_TTABLE) 3331d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III#define lua_islightuserdata(L,n) (lua_type(L, (n)) == LUA_TLIGHTUSERDATA) 3341d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III#define lua_isnil(L,n) (lua_type(L, (n)) == LUA_TNIL) 3351d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III#define lua_isboolean(L,n) (lua_type(L, (n)) == LUA_TBOOLEAN) 3361d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III#define lua_isthread(L,n) (lua_type(L, (n)) == LUA_TTHREAD) 3371d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III#define lua_isnone(L,n) (lua_type(L, (n)) == LUA_TNONE) 3381d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III#define lua_isnoneornil(L, n) (lua_type(L, (n)) <= 0) 3391d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III 3401d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III#define lua_pushliteral(L, s) \ 3411d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III lua_pushlstring(L, "" s, (sizeof(s)/sizeof(char))-1) 3421d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III 3431d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III#define lua_pushglobaltable(L) \ 3441d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III lua_rawgeti(L, LUA_REGISTRYINDEX, LUA_RIDX_GLOBALS) 3451d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III 3461d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III#define lua_tostring(L,i) lua_tolstring(L, (i), NULL) 3471d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III 3481d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III 3491d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III 3501d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III/* 3511d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III** {====================================================================== 3521d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III** Debug API 3531d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III** ======================================================================= 3541d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III*/ 3551d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III 3561d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III 3571d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III/* 3581d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III** Event codes 3591d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III*/ 3601d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III#define LUA_HOOKCALL 0 3611d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III#define LUA_HOOKRET 1 3621d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III#define LUA_HOOKLINE 2 3631d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III#define LUA_HOOKCOUNT 3 3641d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III#define LUA_HOOKTAILCALL 4 3651d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III 3661d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III 3671d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III/* 3681d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III** Event masks 3691d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III*/ 3701d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III#define LUA_MASKCALL (1 << LUA_HOOKCALL) 3711d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III#define LUA_MASKRET (1 << LUA_HOOKRET) 3721d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III#define LUA_MASKLINE (1 << LUA_HOOKLINE) 3731d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III#define LUA_MASKCOUNT (1 << LUA_HOOKCOUNT) 3741d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III 3751d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins IIItypedef struct lua_Debug lua_Debug; /* activation record */ 3761d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III 3771d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III 3781d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III/* Functions to be called by the debugger in specific events */ 3791d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins IIItypedef void (*lua_Hook) (lua_State *L, lua_Debug *ar); 3801d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III 3811d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III 3821d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins IIILUA_API int (lua_getstack) (lua_State *L, int level, lua_Debug *ar); 3831d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins IIILUA_API int (lua_getinfo) (lua_State *L, const char *what, lua_Debug *ar); 3841d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins IIILUA_API const char *(lua_getlocal) (lua_State *L, const lua_Debug *ar, int n); 3851d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins IIILUA_API const char *(lua_setlocal) (lua_State *L, const lua_Debug *ar, int n); 3861d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins IIILUA_API const char *(lua_getupvalue) (lua_State *L, int funcindex, int n); 3871d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins IIILUA_API const char *(lua_setupvalue) (lua_State *L, int funcindex, int n); 3881d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III 3891d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins IIILUA_API void *(lua_upvalueid) (lua_State *L, int fidx, int n); 3901d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins IIILUA_API void (lua_upvaluejoin) (lua_State *L, int fidx1, int n1, 3911d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III int fidx2, int n2); 3921d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III 3931d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins IIILUA_API int (lua_sethook) (lua_State *L, lua_Hook func, int mask, int count); 3941d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins IIILUA_API lua_Hook (lua_gethook) (lua_State *L); 3951d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins IIILUA_API int (lua_gethookmask) (lua_State *L); 3961d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins IIILUA_API int (lua_gethookcount) (lua_State *L); 3971d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III 3981d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III 3991d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins IIIstruct lua_Debug { 4001d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III int event; 4011d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III const char *name; /* (n) */ 4021d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III const char *namewhat; /* (n) 'global', 'local', 'field', 'method' */ 4031d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III const char *what; /* (S) 'Lua', 'C', 'main', 'tail' */ 4041d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III const char *source; /* (S) */ 4051d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III int currentline; /* (l) */ 4061d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III int linedefined; /* (S) */ 4071d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III int lastlinedefined; /* (S) */ 4081d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III unsigned char nups; /* (u) number of upvalues */ 4091d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III unsigned char nparams;/* (u) number of parameters */ 4101d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III char isvararg; /* (u) */ 4111d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III char istailcall; /* (t) */ 4121d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III char short_src[LUA_IDSIZE]; /* (S) */ 4131d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III /* private part */ 4141d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III struct CallInfo *i_ci; /* active function */ 4151d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III}; 4161d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III 4171d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III/* }====================================================================== */ 4181d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III 4191d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III 4201d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III/****************************************************************************** 4211d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III* Copyright (C) 1994-2013 Lua.org, PUC-Rio. 4221d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III* 4231d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III* Permission is hereby granted, free of charge, to any person obtaining 4241d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III* a copy of this software and associated documentation files (the 4251d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III* "Software"), to deal in the Software without restriction, including 4261d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III* without limitation the rights to use, copy, modify, merge, publish, 4271d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III* distribute, sublicense, and/or sell copies of the Software, and to 4281d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III* permit persons to whom the Software is furnished to do so, subject to 4291d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III* the following conditions: 4301d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III* 4311d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III* The above copyright notice and this permission notice shall be 4321d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III* included in all copies or substantial portions of the Software. 4331d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III* 4341d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 4351d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 4361d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 4371d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY 4381d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, 4391d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 4401d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 4411d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III******************************************************************************/ 4421d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III 4431d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III 4441d9a26b35628ec99e6b03380bdedec2a0135d5f9Leon Scroggins III#endif 445