lua.bmx 36 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929
  1. SuperStrict
  2. Rem
  3. bbdoc: Lua Core
  4. end rem
  5. Module Pub.Lua
  6. ModuleInfo "Version: 1.27"
  7. ModuleInfo "Author: Tecgraf,PUC-Rio"
  8. ModuleInfo "License: MIT License"
  9. ModuleInfo "Modserver: BRL"
  10. ModuleInfo "Credit: Adapted for BlitzMax by Thomas Mayer, Noel Cower, Andreas Rozek and Simon Armstrong"
  11. ModuleInfo "History: 1.27"
  12. ModuleInfo "History: Modified luaconf.h (line 14) to autodetect LUA_USE_LINUX and LUA_USE_MACOSX"
  13. ModuleInfo "History: 1.26"
  14. ModuleInfo "History: Removed BRL.Retro dependancy & replaced Left() with [..1]"
  15. ModuleInfo "History: 1.25"
  16. ModuleInfo "History: Updated to Lua 5.1.4 - Htbaa"
  17. ModuleInfo "History: 1.24"
  18. ModuleInfo "History: fixed int<->long discrepancies between Lua and BlitzMAX"
  19. ModuleInfo "History: 1.23"
  20. ModuleInfo "History: several bugfixes and extensions"
  21. ModuleInfo "History: support for strings with embedded ~0 (and byte arrays)"
  22. ModuleInfo "History: modifications for Lua 5.1.2"
  23. ModuleInfo "History: source code is now 'superstrict'-compliant"
  24. ModuleInfo "History: added some documentation"
  25. ModuleInfo "History: 1.22"
  26. ModuleInfo "History: added lots of definitions to support most of the official Lua 5.1.1 API"
  27. ModuleInfo "History: 1.21"
  28. ModuleInfo "History: removed luac.c from build list"
  29. ModuleInfo "History: 1.20"
  30. ModuleInfo "History: fixed missing paramters in lua_createtable definition"
  31. ModuleInfo "History: 1.19"
  32. ModuleInfo "History: updated with lua5.1.1 source"
  33. ModuleInfo "History: 1.18"
  34. ModuleInfo "History: added extra Imports and luaL_openlibs decl"
  35. ModuleInfo "History: 1.17"
  36. ModuleInfo "History: added luaL_loadstring fixed missing lua_dostring"
  37. ModuleInfo "History: 1.16"
  38. ModuleInfo "History: Added lua_newtable as a BMax function"
  39. ModuleInfo "History: Changed extern'd lua_newtable to lua_createtable"
  40. ModuleInfo "History: Added lua_load, lua_dostring and lua_dobuffer."
  41. ModuleInfo "History: 1.15 Release"
  42. ModuleInfo "History: New LUA 5.1 based build"
  43. ModuleInfo "History: Modified constants and added new wrappers for 5.1 compatability"
  44. ModuleInfo "History: 1.14 Release"
  45. ModuleInfo "History: Added luaopen_debug and ldblib.c"
  46. ModuleInfo "History: Replaced byte ptr with $z (CString) where a C string is expected"
  47. ModuleInfo "History: 1.12 Release"
  48. ModuleInfo "History: Removed lua.h import"
  49. Import "lua-5.1.4/src/lstate.c"
  50. Import "lua-5.1.4/src/llex.c"
  51. Import "lua-5.1.4/src/ltm.c"
  52. Import "lua-5.1.4/src/lstring.c"
  53. Import "lua-5.1.4/src/ltable.c"
  54. Import "lua-5.1.4/src/lfunc.c"
  55. Import "lua-5.1.4/src/ldo.c"
  56. Import "lua-5.1.4/src/lgc.c"
  57. Import "lua-5.1.4/src/lzio.c"
  58. Import "lua-5.1.4/src/lobject.c"
  59. Import "lua-5.1.4/src/lparser.c"
  60. Import "lua-5.1.4/src/lvm.c"
  61. Import "lua-5.1.4/src/lundump.c"
  62. Import "lua-5.1.4/src/lmem.c"
  63. Import "lua-5.1.4/src/lcode.c"
  64. Import "lua-5.1.4/src/ldebug.c"
  65. Import "lua-5.1.4/src/lopcodes.c"
  66. Import "lua-5.1.4/src/lapi.c"
  67. Import "lua-5.1.4/src/ldump.c"
  68. Import "lua-5.1.4/src/lbaselib.c"
  69. Import "lua-5.1.4/src/lauxlib.c"
  70. Import "lua-5.1.4/src/liolib.c"
  71. Import "lua-5.1.4/src/lmathlib.c"
  72. Import "lua-5.1.4/src/lstrlib.c"
  73. Import "lua-5.1.4/src/ltablib.c"
  74. Import "lua-5.1.4/src/ldblib.c"
  75. Import "lua-5.1.4/src/linit.c"
  76. Import "lua-5.1.4/src/loadlib.c"
  77. Import "lua-5.1.4/src/loslib.c"
  78. 'import "lua-5.1.4/src/lua.c"
  79. 'Import "lua-5.1.4/src/luac.c"
  80. Import "lua-5.1.4/src/print.c"
  81. ' ******************************************************************************
  82. ' * *
  83. ' * Constant Definitions *
  84. ' * *
  85. ' ******************************************************************************
  86. Const LUA_IDSIZE:Int = 60
  87. ' **** (lua.h) some basic definitions - just to be complete ****
  88. Const LUA_VERSION:String = "Lua 5.1"
  89. Const LUA_RELEASE:String = "Lua 5.1.4"
  90. Const LUA_VERSION_NUM:Int = 501
  91. Const LUA_COPYRIGHT:String = "Copyright (C) 1994-2008 Lua.org, PUC-Rio"
  92. Const LUA_AUTHORS:String = "R. Ierusalimschy, L. H. de Figueiredo & W. Celes"
  93. ' **** (lua.h) option for multiple returns in `lua_pcall' and `lua_call' ****
  94. Const LUA_MULTRET:Int = -1
  95. ' **** (lua.h) pseudo-indices ****
  96. Const LUA_REGISTRYINDEX:Int = -10000
  97. Const LUA_ENVIRONINDEX:Int = -10001
  98. Const LUA_GLOBALSINDEX:Int = -10002
  99. ' **** (lua.h) thread status (0 is OK) ****
  100. Const LUA_YIELD_:Int = 1 ' added _ after LUA_YIELD because of lua_yield function
  101. Const LUA_ERRRUN:Int = 2
  102. Const LUA_ERRSYNTAX:Int = 3
  103. Const LUA_ERRMEM:Int = 4
  104. Const LUA_ERRERR:Int = 5
  105. ' **** (lua.h) basic types ****
  106. Const LUA_TNONE:Int = -1
  107. Const LUA_TNIL:Int = 0
  108. Const LUA_TBOOLEAN:Int = 1
  109. Const LUA_TLIGHTUSERDATA:Int = 2
  110. Const LUA_TNUMBER:Int = 3
  111. Const LUA_TSTRING:Int = 4
  112. Const LUA_TTABLE:Int = 5
  113. Const LUA_TFUNCTION:Int = 6
  114. Const LUA_TUSERDATA:Int = 7
  115. Const LUA_TTHREAD:Int = 8
  116. ' **** (lua.h) garbage-collection options ****
  117. Const LUA_GCSTOP:Int = 0
  118. Const LUA_GCRESTART:Int = 1
  119. Const LUA_GCCOLLECT:Int = 2
  120. Const LUA_GCCOUNT:Int = 3
  121. Const LUA_GCCOUNTB:Int = 4
  122. Const LUA_GCSTEP:Int = 5
  123. Const LUA_GCSETPAUSE:Int = 6
  124. Const LUA_GCSETSTEPMUL:Int = 7
  125. ' **** (lua.h) event codes ****
  126. Const LUA_HOOKCALL:Int = 0
  127. Const LUA_HOOKRET:Int = 1
  128. Const LUA_HOOKLINE:Int = 2
  129. Const LUA_HOOKCOUNT:Int = 3
  130. Const LUA_HOOKTAILRET:Int = 4
  131. ' **** (lua.h) event masks ****
  132. Const LUA_MASKCALL:Int = (1 Shl LUA_HOOKCALL)
  133. Const LUA_MASKRET:Int = (1 Shl LUA_HOOKRET)
  134. Const LUA_MASKLINE:Int = (1 Shl LUA_HOOKLINE)
  135. Const LUA_MASKCOUNT:Int = (1 Shl LUA_HOOKCOUNT)
  136. ' ******************************************************************************
  137. ' * *
  138. ' * The Lua API (Functions) *
  139. ' * *
  140. ' ******************************************************************************
  141. Extern
  142. Type lua_Debug
  143. Field event:Int
  144. Field name:Byte Ptr ' no ~0 expected
  145. Field namewhat:Byte Ptr ' dto.
  146. Field what:Byte Ptr ' dto.
  147. Field source:Byte Ptr ' dto.
  148. Field currentline:Int
  149. Field nups:Int
  150. Field linedefined:Int
  151. Field lastlinedefined:Int
  152. ' field short_src:byte[LUA_IDSIZE] ' we use padding to occupy 60 bytes
  153. Field short_src:Byte, short_src_01:Byte, short_src_02:Byte, short_src_03:Byte
  154. Field short_src_04:Long, short_src_12:Long, short_src_20:Long
  155. Field short_src_28:Long, short_src_36:Long, short_src_44:Long
  156. Field short_src_52:Long
  157. Field i_ci:Int ' "private" field - mentioned here to get the right size
  158. End Type
  159. End Extern
  160. Extern
  161. Rem
  162. bbdoc: see <a href="../lua-5.1.4/doc/manual.html#lua_atpanic">Lua Reference Manual</a>
  163. end rem
  164. Function lua_atpanic:Byte Ptr (lua_state:Byte Ptr, panicf:Int(ls:Byte Ptr))
  165. Rem
  166. bbdoc: see <a href="../lua-5.1.4/doc/manual.html#lua_call">Lua Reference Manual</a>
  167. end rem
  168. Function lua_call (lua_state:Byte Ptr, nargs:Int, nresults:Int)
  169. Rem
  170. bbdoc: see <a href="../lua-5.1.4/doc/manual.html#lua_checkstack">Lua Reference Manual</a>
  171. end rem
  172. Function lua_checkstack:Int (lua_state:Byte Ptr, extra:Int)
  173. Rem
  174. bbdoc: see <a href="../lua-5.1.4/doc/manual.html#lua_close">Lua Reference Manual</a>
  175. end rem
  176. Function lua_close (lua_state:Byte Ptr)
  177. Rem
  178. bbdoc: see <a href="../lua-5.1.4/doc/manual.html#lua_concat">Lua Reference Manual</a>
  179. end rem
  180. Function lua_concat (lua_state:Byte Ptr, n:Int)
  181. Rem
  182. bbdoc: see <a href="../lua-5.1.4/doc/manual.html#lua_cpcall">Lua Reference Manual</a>
  183. end rem
  184. Function lua_cpcall:Int (lua_state:Byte Ptr, func:Int(ls:Byte Ptr), ud:Byte Ptr)
  185. Rem
  186. bbdoc: see <a href="../lua-5.1.4/doc/manual.html#lua_createtable">Lua Reference Manual</a>
  187. end rem
  188. Function lua_createtable (lua_state:Byte Ptr, narr:Int, nrec:Int)
  189. Rem
  190. bbdoc: see <a href="../lua-5.1.4/doc/manual.html#lua_dump">Lua Reference Manual</a>
  191. end rem
  192. Function lua_dump:Int (lua_state:Byte Ptr, writer:Int(ls:Byte Ptr,p:Byte Ptr,sz:Int,ud:Byte Ptr), data:Byte Ptr)
  193. Rem
  194. bbdoc: see <a href="../lua-5.1.4/doc/manual.html#lua_equal">Lua Reference Manual</a>
  195. end rem
  196. Function lua_equal:Int (lua_state:Byte Ptr, index1:Int, index2:Int)
  197. Rem
  198. bbdoc: see <a href="../lua-5.1.4/doc/manual.html#lua_error">Lua Reference Manual</a>
  199. end rem
  200. Function lua_error:Int (lua_state:Byte Ptr)
  201. Rem
  202. bbdoc: see <a href="../lua-5.1.4/doc/manual.html#lua_gc">Lua Reference Manual</a>
  203. end rem
  204. Function lua_gc:Int (lua_state:Byte Ptr, what:Int, data:Int)
  205. Rem
  206. bbdoc: see <a href="../lua-5.1.4/doc/manual.html#lua_getallocf">Lua Reference Manual</a>
  207. end rem
  208. Function lua_getallocf:Byte Ptr (lua_state:Byte Ptr, ud:Byte Ptr Ptr)
  209. Rem
  210. bbdoc: see <a href="../lua-5.1.4/doc/manual.html#lua_getfenv">Lua Reference Manual</a>
  211. end rem
  212. Function lua_getfenv (lua_state:Byte Ptr, index:Int)
  213. Rem
  214. bbdoc: see <a href="../lua-5.1.4/doc/manual.html#lua_getfield">Lua Reference Manual</a>
  215. end rem
  216. Function lua_getfield (lua_state:Byte Ptr, index:Int, k$z) ' no ~0 expected
  217. Rem
  218. bbdoc: see <a href="../lua-5.1.4/doc/manual.html#lua_gethook">Lua Reference Manual</a>
  219. end rem
  220. Function lua_gethook:Byte Ptr (lua_state:Byte Ptr)
  221. Rem
  222. bbdoc: see <a href="../lua-5.1.4/doc/manual.html#lua_gethookcount">Lua Reference Manual</a>
  223. end rem
  224. Function lua_gethookcount:Int (lua_state:Byte Ptr)
  225. Rem
  226. bbdoc: see <a href="../lua-5.1.4/doc/manual.html#lua_gethookmask">Lua Reference Manual</a>
  227. end rem
  228. Function lua_gethookmask:Int (lua_state:Byte Ptr)
  229. Rem
  230. bbdoc: see <a href="../lua-5.1.4/doc/manual.html#lua_getinfo">Lua Reference Manual</a>
  231. end rem
  232. Function lua_getinfo:Int (lua_state:Byte Ptr, what$z, ar:lua_Debug Ptr) ' no ~0 expected
  233. Rem
  234. bbdoc: see <a href="../lua-5.1.4/doc/manual.html#lua_getlocal">Lua Reference Manual</a>
  235. end rem
  236. Function lua_getlocal$z (lua_state:Byte Ptr, ar:lua_Debug Ptr, n:Int) ' no ~0 expected
  237. Rem
  238. bbdoc: see <a href="../lua-5.1.4/doc/manual.html#lua_getmetatable">Lua Reference Manual</a>
  239. end rem
  240. Function lua_getmetatable:Int (lua_state:Byte Ptr, index:Int)
  241. Rem
  242. bbdoc: see <a href="../lua-5.1.4/doc/manual.html#lua_getstack">Lua Reference Manual</a>
  243. end rem
  244. Function lua_getstack:Int (lua_state:Byte Ptr, level:Int, ar:lua_Debug Ptr) ' no ~0 expected
  245. Rem
  246. bbdoc: see <a href="../lua-5.1.4/doc/manual.html#lua_gettable">Lua Reference Manual</a>
  247. end rem
  248. Function lua_gettable (lua_state:Byte Ptr, index:Int)
  249. Rem
  250. bbdoc: see <a href="../lua-5.1.4/doc/manual.html#lua_gettop">Lua Reference Manual</a>
  251. end rem
  252. Function lua_gettop:Int (lua_state:Byte Ptr)
  253. Rem
  254. bbdoc: see <a href="../lua-5.1.4/doc/manual.html#lua_getupvalue">Lua Reference Manual</a>
  255. end rem
  256. Function lua_getupvalue$z (lua_state:Byte Ptr, funcindex:Int, n:Int) ' no ~0 expected
  257. Rem
  258. bbdoc: see <a href="../lua-5.1.4/doc/manual.html#lua_insert">Lua Reference Manual</a>
  259. end rem
  260. Function lua_insert (lua_state:Byte Ptr, index:Int)
  261. Rem
  262. bbdoc: see <a href="../lua-5.1.4/doc/manual.html#lua_iscfunction">Lua Reference Manual</a>
  263. end rem
  264. Function lua_iscfunction:Int (lua_state:Byte Ptr, index:Int)
  265. Rem
  266. bbdoc: see <a href="../lua-5.1.4/doc/manual.html#lua_isnumber">Lua Reference Manual</a>
  267. end rem
  268. Function lua_isnumber:Int (lua_state:Byte Ptr, index:Int)
  269. Rem
  270. bbdoc: see <a href="../lua-5.1.4/doc/manual.html#lua_isstring">Lua Reference Manual</a>
  271. end rem
  272. Function lua_isstring:Int (lua_state:Byte Ptr, index:Int)
  273. Rem
  274. bbdoc: see <a href="../lua-5.1.4/doc/manual.html#lua_isuserdata">Lua Reference Manual</a>
  275. end rem
  276. Function lua_isuserdata:Int (lua_state:Byte Ptr, index:Int)
  277. Rem
  278. bbdoc: see <a href="../lua-5.1.4/doc/manual.html#lua_lessthan">Lua Reference Manual</a>
  279. end rem
  280. Function lua_lessthan:Int (lua_state:Byte Ptr, index1:Int, index2:Int)
  281. Rem
  282. bbdoc: see <a href="../lua-5.1.4/doc/manual.html#lua_load">Lua Reference Manual</a>
  283. end rem
  284. Function lua_load:Int (lua_state:Byte Ptr, reader:Byte Ptr(ls:Byte Ptr,data:Byte Ptr,sz:Int Ptr), data:Byte Ptr, chunkname$z) ' no ~0 expected
  285. Rem
  286. bbdoc: see <a href="../lua-5.1.4/doc/manual.html#lua_newstate">Lua Reference Manual</a>
  287. end rem
  288. Function lua_newstate:Byte Ptr (f:Byte Ptr(ud:Byte Ptr, p:Byte Ptr, osize:Int, nsize:Int), ud:Byte Ptr)
  289. Rem
  290. bbdoc: see <a href="../lua-5.1.4/doc/manual.html#lua_newthread">Lua Reference Manual</a>
  291. end rem
  292. Function lua_newthread:Byte Ptr (lua_state:Byte Ptr)
  293. Rem
  294. bbdoc: see <a href="../lua-5.1.4/doc/manual.html#lua_newuserdata">Lua Reference Manual</a>
  295. end rem
  296. Function lua_newuserdata:Byte Ptr (lua_state:Byte Ptr, size:Int)
  297. Rem
  298. bbdoc: see <a href="../lua-5.1.4/doc/manual.html#lua_next">Lua Reference Manual</a>
  299. end rem
  300. Function lua_next:Int (lua_state:Byte Ptr, index:Int)
  301. Rem
  302. bbdoc: see <a href="../lua-5.1.4/doc/manual.html#lua_objlen">Lua Reference Manual</a>
  303. end rem
  304. Function lua_objlen:Int (lua_state:Byte Ptr, index:Int)
  305. Rem
  306. bbdoc: see <a href="../lua-5.1.4/doc/manual.html#lua_pcall">Lua Reference Manual</a>
  307. end rem
  308. Function lua_pcall:Int (lua_state:Byte Ptr, nargs:Int, nresults:Int, errfunc:Int)
  309. Rem
  310. bbdoc: see <a href="../lua-5.1.4/doc/manual.html#lua_pushboolean">Lua Reference Manual</a>
  311. end rem
  312. Function lua_pushboolean (lua_state:Byte Ptr, b:Int)
  313. Rem
  314. bbdoc: see <a href="../lua-5.1.4/doc/manual.html#lua_pushcclosure">Lua Reference Manual</a>
  315. end rem
  316. Function lua_pushcclosure (lua_state:Byte Ptr, fn:Int(ls:Byte Ptr), n:Int)
  317. ' function lua_pushfstring$z (lua_state:byte ptr, fmt$z, ...)
  318. Rem
  319. bbdoc: see <a href="../lua-5.1.4/doc/manual.html#lua_pushinteger">Lua Reference Manual</a>
  320. end rem
  321. Function lua_pushinteger (lua_state:Byte Ptr, n:Int)
  322. Rem
  323. bbdoc: see <a href="../lua-5.1.4/doc/manual.html#lua_pushlightuserdata">Lua Reference Manual</a>
  324. end rem
  325. Function lua_pushlightuserdata (lua_state:Byte Ptr, p:Byte Ptr)
  326. Rem
  327. bbdoc: see <a href="../lua-5.1.4/doc/manual.html#lua_pushlstring">Lua Reference Manual</a>
  328. end rem
  329. Function lua_pushlstring (lua_state:Byte Ptr, s:Byte Ptr, size:Int) ' without any conversion!
  330. Rem
  331. bbdoc: see <a href="../lua-5.1.4/doc/manual.html#lua_pushnil">Lua Reference Manual</a>
  332. end rem
  333. Function lua_pushnil (lua_state:Byte Ptr)
  334. Rem
  335. bbdoc: see <a href="../lua-5.1.4/doc/manual.html#lua_pushnumber">Lua Reference Manual</a>
  336. end rem
  337. Function lua_pushnumber (lua_state:Byte Ptr, n:Double)
  338. Rem
  339. bbdoc: see <a href="../lua-5.1.4/doc/manual.html#lua_pushstring">Lua Reference Manual</a>
  340. end rem
  341. Function lua_pushstring (lua_state:Byte Ptr, s$z) ' no ~0 expected
  342. Rem
  343. bbdoc: see <a href="../lua-5.1.4/doc/manual.html#lua_pushthread">Lua Reference Manual</a>
  344. end rem
  345. Function lua_pushthread:Int (lua_state:Byte Ptr)
  346. Rem
  347. bbdoc: see <a href="../lua-5.1.4/doc/manual.html#lua_pushvalue">Lua Reference Manual</a>
  348. end rem
  349. Function lua_pushvalue (lua_state:Byte Ptr, index:Int)
  350. ' function lua_pushvfstring$z (lua_state:byte ptr, fmt$z, argp:???)
  351. Rem
  352. bbdoc: see <a href="../lua-5.1.4/doc/manual.html#lua_rawequal">Lua Reference Manual</a>
  353. end rem
  354. Function lua_rawequal:Int (lua_state:Byte Ptr, index1:Int, index2:Int)
  355. Rem
  356. bbdoc: see <a href="../lua-5.1.4/doc/manual.html#lua_rawget">Lua Reference Manual</a>
  357. end rem
  358. Function lua_rawget (lua_state:Byte Ptr, index:Int)
  359. Rem
  360. bbdoc: see <a href="../lua-5.1.4/doc/manual.html#lua_rawgeti">Lua Reference Manual</a>
  361. end rem
  362. Function lua_rawgeti (lua_state:Byte Ptr, index:Int, n:Int)
  363. Rem
  364. bbdoc: see <a href="../lua-5.1.4/doc/manual.html#lua_rawset">Lua Reference Manual</a>
  365. end rem
  366. Function lua_rawset (lua_state:Byte Ptr, index:Int)
  367. Rem
  368. bbdoc: see <a href="../lua-5.1.4/doc/manual.html#lua_rawseti">Lua Reference Manual</a>
  369. end rem
  370. Function lua_rawseti (lua_state:Byte Ptr, index:Int, n:Int)
  371. Rem
  372. bbdoc: see <a href="../lua-5.1.4/doc/manual.html#lua_remove">Lua Reference Manual</a>
  373. end rem
  374. Function lua_remove (lua_state:Byte Ptr, index:Int)
  375. Rem
  376. bbdoc: see <a href="../lua-5.1.4/doc/manual.html#lua_replace">Lua Reference Manual</a>
  377. end rem
  378. Function lua_replace (lua_state:Byte Ptr, index:Int)
  379. Rem
  380. bbdoc: see <a href="../lua-5.1.4/doc/manual.html#lua_resume">Lua Reference Manual</a>
  381. end rem
  382. Function lua_resume:Int (lua_state:Byte Ptr, narg:Int)
  383. Rem
  384. bbdoc: see <a href="../lua-5.1.4/doc/manual.html#lua_setallocf">Lua Reference Manual</a>
  385. end rem
  386. Function lua_setallocf (lua_state:Byte Ptr, f:Byte Ptr(ud:Byte Ptr, p:Byte Ptr, osize:Int, nsize:Int), ud:Byte Ptr)
  387. Rem
  388. bbdoc: see <a href="../lua-5.1.4/doc/manual.html#lua_setfenv">Lua Reference Manual</a>
  389. end rem
  390. Function lua_setfenv:Int (lua_state:Byte Ptr, index:Int)
  391. Rem
  392. bbdoc: see <a href="../lua-5.1.4/doc/manual.html#lua_setfield">Lua Reference Manual</a>
  393. end rem
  394. Function lua_setfield (lua_state:Byte Ptr, index:Int, k$z) ' no ~0 expected
  395. Rem
  396. bbdoc: see <a href="../lua-5.1.4/doc/manual.html#lua_sethook">Lua Reference Manual</a>
  397. end rem
  398. Function lua_sethook:Int (lua_state:Byte Ptr, f(ls:Byte Ptr,ar:lua_Debug Ptr), mask:Int, count:Int)
  399. Rem
  400. bbdoc: see <a href="../lua-5.1.4/doc/manual.html#lua_setlocal">Lua Reference Manual</a>
  401. end rem
  402. Function lua_setlocal$z (lua_state:Byte Ptr, ar:lua_Debug Ptr, n:Int) ' no ~0 expected
  403. Rem
  404. bbdoc: see <a href="../lua-5.1.4/doc/manual.html#lua_setmetatable">Lua Reference Manual</a>
  405. end rem
  406. Function lua_setmetatable:Int (lua_state:Byte Ptr, index:Int)
  407. Rem
  408. bbdoc: see <a href="../lua-5.1.4/doc/manual.html#lua_settable">Lua Reference Manual</a>
  409. end rem
  410. Function lua_settable (lua_state:Byte Ptr, index:Int)
  411. Rem
  412. bbdoc: see <a href="../lua-5.1.4/doc/manual.html#lua_settop">Lua Reference Manual</a>
  413. end rem
  414. Function lua_settop (lua_state:Byte Ptr, index:Int)
  415. Rem
  416. bbdoc: see <a href="../lua-5.1.4/doc/manual.html#lua_setupvalue">Lua Reference Manual</a>
  417. end rem
  418. Function lua_setupvalue$z (lua_state:Byte Ptr, funcindex:Int, n:Int) ' no ~0 expected
  419. Rem
  420. bbdoc: see <a href="../lua-5.1.4/doc/manual.html#lua_status">Lua Reference Manual</a>
  421. end rem
  422. Function lua_status:Int (lua_state:Byte Ptr)
  423. Rem
  424. bbdoc: see <a href="../lua-5.1.4/doc/manual.html#lua_toboolean">Lua Reference Manual</a>
  425. end rem
  426. Function lua_toboolean:Int (lua_state:Byte Ptr, index:Int)
  427. Rem
  428. bbdoc: see <a href="../lua-5.1.4/doc/manual.html#lua_tocfunction">Lua Reference Manual</a>
  429. end rem
  430. Function lua_tocfunction:Byte Ptr (lua_state:Byte Ptr, index:Int)
  431. Rem
  432. bbdoc: see <a href="../lua-5.1.4/doc/manual.html#lua_tointeger">Lua Reference Manual</a>
  433. end rem
  434. Function lua_tointeger:Int (lua_state:Byte Ptr, index:Int)
  435. Rem
  436. bbdoc: see <a href="../lua-5.1.4/doc/manual.html#lua_tolstring">Lua Reference Manual</a>
  437. end rem
  438. Function lua_tolstring:Byte Ptr (lua_state:Byte Ptr, index:Int, size:Int Ptr) ' without any conversion!
  439. Rem
  440. bbdoc: see <a href="../lua-5.1.4/doc/manual.html#lua_tonumber">Lua Reference Manual</a>
  441. end rem
  442. Function lua_tonumber:Double (lua_state:Byte Ptr, index:Int)
  443. Rem
  444. bbdoc: see <a href="../lua-5.1.4/doc/manual.html#lua_topointer">Lua Reference Manual</a>
  445. end rem
  446. Function lua_topointer:Byte Ptr (lua_state:Byte Ptr, index:Int)
  447. Rem
  448. bbdoc: see <a href="../lua-5.1.4/doc/manual.html#lua_tothread">Lua Reference Manual</a>
  449. end rem
  450. Function lua_tothread:Byte Ptr (lua_state:Byte Ptr, index:Int)
  451. Rem
  452. bbdoc: see <a href="../lua-5.1.4/doc/manual.html#lua_touserdata">Lua Reference Manual</a>
  453. end rem
  454. Function lua_touserdata:Byte Ptr (lua_state:Byte Ptr, index:Int)
  455. Rem
  456. bbdoc: see <a href="../lua-5.1.4/doc/manual.html#lua_type">Lua Reference Manual</a>
  457. end rem
  458. Function lua_type:Int (lua_state:Byte Ptr, index:Int)
  459. Rem
  460. bbdoc: see <a href="../lua-5.1.4/doc/manual.html#lua_typename">Lua Reference Manual</a>
  461. end rem
  462. Function lua_typename$z (lua_state:Byte Ptr, tp:Int) ' no ~0 expected
  463. Rem
  464. bbdoc: see <a href="../lua-5.1.4/doc/manual.html#lua_xmove">Lua Reference Manual</a>
  465. end rem
  466. Function lua_xmove (fromState:Byte Ptr, toState:Byte Ptr, n:Int)
  467. Rem
  468. bbdoc: see <a href="../lua-5.1.4/doc/manual.html#lua_yield">Lua Reference Manual</a>
  469. end rem
  470. Function lua_yield:Int (lua_state:Byte Ptr, nresults:Int)
  471. End Extern
  472. ' ******************************************************************************
  473. ' * *
  474. ' * The Lua API (Macros) *
  475. ' * *
  476. ' ******************************************************************************
  477. Rem
  478. bbdoc: see <a href="../lua-5.1.4/doc/manual.html#lua_getglobal">Lua Reference Manual</a>
  479. end rem
  480. Function lua_getglobal (lua_state:Byte Ptr, name:String)
  481. lua_getfield(lua_state, LUA_GLOBALSINDEX, name)
  482. End Function
  483. Rem
  484. bbdoc: see <a href="../lua-5.1.4/doc/manual.html#lua_isboolean">Lua Reference Manual</a>
  485. end rem
  486. Function lua_isboolean:Int (lua_state:Byte Ptr, index:Int)
  487. Return (lua_type(lua_state,index) = LUA_TBOOLEAN)
  488. End Function
  489. Rem
  490. bbdoc: see <a href="../lua-5.1.4/doc/manual.html#lua_isfunction">Lua Reference Manual</a>
  491. end rem
  492. Function lua_isfunction:Int (lua_state:Byte Ptr, index:Int)
  493. Return (lua_type(lua_state,index) = LUA_TFUNCTION)
  494. End Function
  495. Rem
  496. bbdoc: see <a href="../lua-5.1.4/doc/manual.html#lua_islightuserdata">Lua Reference Manual</a>
  497. end rem
  498. Function lua_islightuserdata:Int (lua_state:Byte Ptr, index:Int)
  499. Return (lua_type(lua_state,index) = LUA_TLIGHTUSERDATA)
  500. End Function
  501. Rem
  502. bbdoc: see <a href="../lua-5.1.4/doc/manual.html#lua_isnil">Lua Reference Manual</a>
  503. end rem
  504. Function lua_isnil:Int (lua_state:Byte Ptr, index:Int)
  505. Return (lua_type(lua_state,index) = LUA_TNIL)
  506. End Function
  507. Rem
  508. bbdoc: see <a href="../lua-5.1.4/doc/manual.html#lua_isnone">Lua Reference Manual</a>
  509. end rem
  510. Function lua_isnone:Int (lua_state:Byte Ptr, index:Int)
  511. Return (lua_type(lua_state,index) = LUA_TNONE)
  512. End Function
  513. Rem
  514. bbdoc: see <a href="../lua-5.1.4/doc/manual.html#lua_isnoneornil">Lua Reference Manual</a>
  515. end rem
  516. Function lua_isnoneornil:Int (lua_state:Byte Ptr, index:Int)
  517. Return (lua_type(lua_state,index) <= 0)
  518. End Function
  519. Rem
  520. bbdoc: see <a href="../lua-5.1.4/doc/manual.html#lua_istable">Lua Reference Manual</a>
  521. end rem
  522. Function lua_istable:Int (lua_state:Byte Ptr, index:Int)
  523. Return (lua_type(lua_state,index) = LUA_TTABLE)
  524. End Function
  525. Rem
  526. bbdoc: see <a href="../lua-5.1.4/doc/manual.html#lua_isthread">Lua Reference Manual</a>
  527. end rem
  528. Function lua_isthread:Int (lua_state:Byte Ptr, index:Int)
  529. Return (lua_type(lua_state,index) = LUA_TTHREAD)
  530. End Function
  531. Rem
  532. bbdoc: see <a href="../lua-5.1.4/doc/manual.html#lua_newtable">Lua Reference Manual</a>
  533. end rem
  534. Function lua_newtable (lua_state:Byte Ptr)
  535. lua_createtable(lua_state,0,0)
  536. End Function
  537. Rem
  538. bbdoc: see <a href="../lua-5.1.4/doc/manual.html#lua_pop">Lua Reference Manual</a>
  539. end rem
  540. Function lua_pop (lua_state:Byte Ptr, n:Int)
  541. lua_settop(lua_state,-(n)-1)
  542. End Function
  543. Function lua_pushbytearray (lua_state:Byte Ptr, Buffer:Byte[])
  544. lua_pushlstring(lua_state, Varptr Buffer[0], Buffer.length)
  545. End Function
  546. Rem
  547. bbdoc: see <a href="../lua-5.1.4/doc/manual.html#lua_pushcfunction">Lua Reference Manual</a>
  548. end rem
  549. Function lua_pushcfunction (lua_state:Byte Ptr, fn:Int(ls:Byte Ptr))
  550. lua_pushcclosure(lua_state, fn, 0)
  551. End Function
  552. Rem
  553. bbdoc: see <a href="../lua-5.1.4/doc/manual.html#lua_register">Lua Reference Manual</a>
  554. end rem
  555. Function lua_register (lua_state:Byte Ptr, name:String, f:Int(ls:Byte Ptr))
  556. lua_pushcfunction(lua_state, f)
  557. lua_setglobal (lua_state, name)
  558. End Function
  559. Rem
  560. bbdoc: see <a href="../lua-5.1.4/doc/manual.html#lua_setglobal">Lua Reference Manual</a>
  561. end rem
  562. Function lua_setglobal (lua_state:Byte Ptr, name:String)
  563. lua_setfield(lua_state, LUA_GLOBALSINDEX, name)
  564. End Function
  565. Function lua_tobytearray:Byte[] (lua_state:Byte Ptr, index:Int)
  566. Local Length:Int
  567. Local DataPtr:Byte Ptr = lua_tolstring(lua_state, index, Varptr Length)
  568. If (DataPtr = Null) Then
  569. Return Null
  570. Else
  571. Local Result:Byte[] = New Byte[Length]
  572. MemCopy(Varptr Result[0], DataPtr, Length);
  573. Return Result
  574. End If
  575. End Function
  576. Rem
  577. bbdoc: see <a href="../lua-5.1.4/doc/manual.html#lua_tostring">Lua Reference Manual</a>
  578. end rem
  579. Function lua_tostring:String (lua_state:Byte Ptr, index:Int)
  580. Local Length:Int
  581. Local StringPtr:Byte Ptr = lua_tolstring(lua_state, index, Varptr Length)
  582. If (StringPtr = Null) Then
  583. Return Null
  584. Else
  585. Return String.fromBytes(StringPtr,Length)
  586. End If
  587. End Function
  588. ' ******************************************************************************
  589. ' * *
  590. ' * The Auxiliary Library (Functions) *
  591. ' * *
  592. ' ******************************************************************************
  593. Extern
  594. Type lua_Reg
  595. Field name:Byte Ptr ' no ~0 expected
  596. Field func:Int(ls:Byte Ptr)
  597. End Type
  598. End Extern
  599. Extern
  600. Rem
  601. bbdoc: see <a href="../lua-5.1.4/doc/manual.html#luaL_addlstring">Lua Reference Manual</a>
  602. end rem
  603. Function luaL_addlstring (B:Byte Ptr, s:Byte Ptr, l:Int)
  604. Rem
  605. bbdoc: see <a href="../lua-5.1.4/doc/manual.html#luaL_addsize">Lua Reference Manual</a>
  606. end rem
  607. Function luaL_addsize (B:Byte Ptr, size:Int)
  608. Rem
  609. bbdoc: see <a href="../lua-5.1.4/doc/manual.html#luaL_addstring">Lua Reference Manual</a>
  610. end rem
  611. Function luaL_addstring (B:Byte Ptr, s$z) ' no ~0 allowed!
  612. Rem
  613. bbdoc: see <a href="../lua-5.1.4/doc/manual.html#luaL_addvalue">Lua Reference Manual</a>
  614. end rem
  615. Function luaL_addvalue (B:Byte Ptr)
  616. Rem
  617. bbdoc: see <a href="../lua-5.1.4/doc/manual.html#luaL_argerror">Lua Reference Manual</a>
  618. end rem
  619. Function luaL_argerror:Int (lua_state:Byte Ptr, narg:Int, extramsg$z) ' no ~0 expected
  620. Rem
  621. bbdoc: see <a href="../lua-5.1.4/doc/manual.html#luaL_buffinit">Lua Reference Manual</a>
  622. end rem
  623. Function luaL_buffinit (lua_state:Byte Ptr, B:Byte Ptr)
  624. Rem
  625. bbdoc: see <a href="../lua-5.1.4/doc/manual.html#luaL_callmeta">Lua Reference Manual</a>
  626. end rem
  627. Function luaL_callmeta:Int (lua_state:Byte Ptr, obj:Int, e$z) ' no ~0 expected
  628. Rem
  629. bbdoc: see <a href="../lua-5.1.4/doc/manual.html#luaL_checkany">Lua Reference Manual</a>
  630. end rem
  631. Function luaL_checkany (lua_state:Byte Ptr, narg:Int)
  632. Rem
  633. bbdoc: see <a href="../lua-5.1.4/doc/manual.html#luaL_checkinteger">Lua Reference Manual</a>
  634. end rem
  635. Function luaL_checkinteger:Int (lua_state:Byte Ptr, narg:Int)
  636. Rem
  637. bbdoc: see <a href="../lua-5.1.4/doc/manual.html#luaL_checklstring">Lua Reference Manual</a>
  638. end rem
  639. Function luaL_checklstring:Byte Ptr (lua_state:Byte Ptr, narg:Int, size:Int Ptr)
  640. Rem
  641. bbdoc: see <a href="../lua-5.1.4/doc/manual.html#luaL_checknumber">Lua Reference Manual</a>
  642. end rem
  643. Function luaL_checknumber:Double (lua_state:Byte Ptr, narg:Int)
  644. ' function luaL_checkoption:int (lua_state:byte ptr, narg:int, def$z, lst$z[])
  645. Rem
  646. bbdoc: see <a href="../lua-5.1.4/doc/manual.html#luaL_checkstack">Lua Reference Manual</a>
  647. end rem
  648. Function luaL_checkstack (lua_state:Byte Ptr, sz:Int, msg$z) ' no ~0 expected
  649. Rem
  650. bbdoc: see <a href="../lua-5.1.4/doc/manual.html#luaL_checktype">Lua Reference Manual</a>
  651. end rem
  652. Function luaL_checktype (lua_state:Byte Ptr, narg:Int, t:Int)
  653. Rem
  654. bbdoc: see <a href="../lua-5.1.4/doc/manual.html#luaL_checkudata">Lua Reference Manual</a>
  655. end rem
  656. Function luaL_checkudata:Byte Ptr (lua_state:Byte Ptr, narg:Int, tname$z) ' no ~0 expected
  657. ' function luaL_error:int (lua_state:byte ptr, fmt$z, ...)
  658. Rem
  659. bbdoc: see <a href="../lua-5.1.4/doc/manual.html#luaL_getmetafield">Lua Reference Manual</a>
  660. end rem
  661. Function luaL_getmetafield:Int (lua_state:Byte Ptr, obj:Int, e$z) ' no ~0 expected
  662. Rem
  663. bbdoc: see <a href="../lua-5.1.4/doc/manual.html#luaL_gsub">Lua Reference Manual</a>
  664. end rem
  665. Function luaL_gsub$z (lua_state:Byte Ptr, s$z, p$z, r$z) ' no ~0 expected
  666. Rem
  667. bbdoc: see <a href="../lua-5.1.4/doc/manual.html#luaL_loadbuffer">Lua Reference Manual</a>
  668. end rem
  669. Function luaL_loadbuffer:Int (lua_state:Byte Ptr, buff:Byte Ptr, sz:Int, name$z) ' no ~0 expected
  670. Rem
  671. bbdoc: see <a href="../lua-5.1.4/doc/manual.html#luaL_loadfile">Lua Reference Manual</a>
  672. end rem
  673. Function luaL_loadfile:Int (lua_state:Byte Ptr, filename$z) ' no ~0 expected
  674. Rem
  675. bbdoc: see <a href="../lua-5.1.4/doc/manual.html#luaL_loadstring">Lua Reference Manual</a>
  676. end rem
  677. Function luaL_loadstring:Int (lua_state:Byte Ptr, s$z) ' no ~0 allowed!
  678. Rem
  679. bbdoc: see <a href="../lua-5.1.4/doc/manual.html#luaL_newmetatable">Lua Reference Manual</a>
  680. end rem
  681. Function luaL_newmetatable:Int (lua_state:Byte Ptr, tname$z) ' no ~0 expected
  682. Rem
  683. bbdoc: see <a href="../lua-5.1.4/doc/manual.html#luaL_newstate">Lua Reference Manual</a>
  684. end rem
  685. Function luaL_newstate:Byte Ptr ()
  686. Rem
  687. bbdoc: see <a href="../lua-5.1.4/doc/manual.html#luaL_openlibs">Lua Reference Manual</a>
  688. end rem
  689. Function luaL_openlibs (lua_state:Byte Ptr)
  690. Rem
  691. bbdoc: see <a href="../lua-5.1.4/doc/manual.html#luaL_optinteger">Lua Reference Manual</a>
  692. end rem
  693. Function luaL_optinteger:Int (lua_state:Byte Ptr, narg:Int, d:Int)
  694. Rem
  695. bbdoc: see <a href="../lua-5.1.4/doc/manual.html#luaL_optlstring">Lua Reference Manual</a>
  696. end rem
  697. Function luaL_optlstring:Byte Ptr (lua_state:Byte Ptr, narg:Int, d$z, size:Int Ptr) ' no ~0 expected in "d"
  698. Rem
  699. bbdoc: see <a href="../lua-5.1.4/doc/manual.html#luaL_optnumber">Lua Reference Manual</a>
  700. end rem
  701. Function luaL_optnumber:Double (lua_state:Byte Ptr, narg:Int, d:Double)
  702. Rem
  703. bbdoc: see <a href="../lua-5.1.4/doc/manual.html#luaL_prepbuffer">Lua Reference Manual</a>
  704. end rem
  705. Function luaL_prepbuffer:Byte Ptr (B:Byte Ptr)
  706. Rem
  707. bbdoc: see <a href="../lua-5.1.4/doc/manual.html#luaL_pushresult">Lua Reference Manual</a>
  708. end rem
  709. Function luaL_pushresult (B:Byte Ptr)
  710. Rem
  711. bbdoc: see <a href="../lua-5.1.4/doc/manual.html#luaL_ref">Lua Reference Manual</a>
  712. end rem
  713. Function luaL_ref:Int (lua_state:Byte Ptr, t:Int)
  714. Rem
  715. bbdoc: see <a href="../lua-5.1.4/doc/manual.html#luaL_register">Lua Reference Manual</a>
  716. end rem
  717. Function luaL_register (lua_state:Byte Ptr, libname$z, l:lua_Reg Ptr) ' no ~0 expected
  718. Rem
  719. bbdoc: see <a href="../lua-5.1.4/doc/manual.html#luaL_typerror">Lua Reference Manual</a>
  720. end rem
  721. Function luaL_typerror:Int (lua_state:Byte Ptr, narg:Int, tname$z) ' no ~0 expected
  722. Rem
  723. bbdoc: see <a href="../lua-5.1.4/doc/manual.html#luaL_unref">Lua Reference Manual</a>
  724. end rem
  725. Function luaL_unref (lua_state:Byte Ptr, t:Int, ref:Int)
  726. Rem
  727. bbdoc: see <a href="../lua-5.1.4/doc/manual.html#luaL_where">Lua Reference Manual</a>
  728. end rem
  729. Function luaL_where (lua_state:Byte Ptr, lvl:Int)
  730. End Extern
  731. ' ******************************************************************************
  732. ' * *
  733. ' * The Auxiliary Library (Macros) *
  734. ' * *
  735. ' ******************************************************************************
  736. Rem
  737. bbdoc: see <a href="../lua-5.1.4/doc/manual.html#luaL_addchar">Lua Reference Manual</a>
  738. end rem
  739. Function luaL_addchar (B:Byte Ptr, c:String)
  740. ' luaL_addstring(B,Left$(c,1)) ' not really efficient, just to be complete
  741. luaL_addstring( B,c[..Min(c.Length,1)] ) 'functionally equivalent?
  742. End Function
  743. Rem
  744. bbdoc: see <a href="../lua-5.1.4/doc/manual.html#luaL_argcheck">Lua Reference Manual</a>
  745. end rem
  746. Function luaL_argcheck (lua_state:Byte Ptr, cond:Int, narg:Int, extramsg:String)
  747. If (Not cond) Then luaL_argerror(lua_state, narg, extramsg)
  748. End Function
  749. Rem
  750. bbdoc: see <a href="../lua-5.1.4/doc/manual.html#luaL_checkint">Lua Reference Manual</a>
  751. end rem
  752. Function luaL_checkint:Int (lua_state:Byte Ptr, narg:Int)
  753. Return Int(luaL_checkinteger(lua_state, narg)) ' Lua itself does the same!
  754. End Function
  755. Rem
  756. bbdoc: see <a href="../lua-5.1.4/doc/manual.html#luaL_checklong">Lua Reference Manual</a>
  757. end rem
  758. Function luaL_checklong:Long (lua_state:Byte Ptr, narg:Int)
  759. Return luaL_checkinteger(lua_state, narg)
  760. End Function
  761. Rem
  762. bbdoc: see <a href="../lua-5.1.4/doc/manual.html#luaL_checkstring">Lua Reference Manual</a>
  763. end rem
  764. Function luaL_checkstring:String (lua_state:Byte Ptr, narg:Int)
  765. Local Size:Int
  766. Local StringPtr:Byte Ptr = luaL_checklstring(lua_state, narg, Varptr Size)
  767. If (StringPtr = Null) Then
  768. Return Null
  769. Else
  770. Return String.fromBytes(StringPtr,Size)
  771. End If
  772. End Function
  773. Rem
  774. bbdoc: see <a href="../lua-5.1.4/doc/manual.html#luaL_dofile">Lua Reference Manual</a>
  775. end rem
  776. Function luaL_dofile:Int (lua_state:Byte Ptr, filename:String)
  777. If (luaL_loadfile(lua_state,filename) <> 0) Then
  778. Return 1
  779. Else
  780. Return lua_pcall(lua_state, 0, LUA_MULTRET, 0)
  781. End If
  782. End Function
  783. Rem
  784. bbdoc: see <a href="../lua-5.1.4/doc/manual.html#luaL_dostring">Lua Reference Manual</a>
  785. end rem
  786. Function luaL_dostring:Int (lua_state:Byte Ptr, str:String)
  787. If (luaL_loadstring(lua_state,str) <> 0) Then
  788. Return 1
  789. Else
  790. Return lua_pcall(lua_state, 0, LUA_MULTRET, 0)
  791. End If
  792. End Function
  793. Rem
  794. bbdoc: see <a href="../lua-5.1.4/doc/manual.html#luaL_getmetatable">Lua Reference Manual</a>
  795. end rem
  796. Function luaL_getmetatable (lua_state:Byte Ptr, tname:String)
  797. lua_getfield(lua_state, LUA_REGISTRYINDEX, tname)
  798. End Function
  799. Rem
  800. bbdoc: see <a href="../lua-5.1.4/doc/manual.html#luaL_optint">Lua Reference Manual</a>
  801. end rem
  802. Function luaL_optint:Int (lua_state:Byte Ptr, narg:Int, d:Int)
  803. Return luaL_optinteger(lua_state, narg, d)
  804. End Function
  805. Rem
  806. bbdoc: see <a href="../lua-5.1.4/doc/manual.html#luaL_optlong">Lua Reference Manual</a>
  807. end rem
  808. Function luaL_optlong:Long (lua_state:Byte Ptr, narg:Int, d:Long)
  809. If ((Abs(narg) > lua_gettop(lua_state)) Or lua_isnil(lua_state,narg)) Then
  810. Return d
  811. Else
  812. Return luaL_checklong(lua_state,narg)
  813. End If
  814. End Function
  815. Rem
  816. bbdoc: see <a href="../lua-5.1.4/doc/manual.html#luaL_optstring">Lua Reference Manual</a>
  817. end rem
  818. Function luaL_optstring:String (lua_state:Byte Ptr, narg:Int, d:String)
  819. Local Size:Int
  820. Local StringPtr:Byte Ptr = luaL_optlstring(lua_state, narg, d, Varptr Size)
  821. If (StringPtr = Null) Then
  822. Return Null
  823. Else
  824. Return String.fromBytes(StringPtr,Size)
  825. End If
  826. End Function
  827. Rem
  828. bbdoc: see <a href="../lua-5.1.4/doc/manual.html#luaL_typename">Lua Reference Manual</a>
  829. end rem
  830. Function luaL_typename:String (lua_state:Byte Ptr, idx:Int)
  831. Return lua_typename(lua_state, lua_type (lua_state,idx))
  832. End Function
  833. ' ******************************************************************************
  834. ' * *
  835. ' * compatibility extensions (not to break existing axe.lua programs) *
  836. ' * *
  837. ' ******************************************************************************
  838. Extern
  839. Function luaopen_base:Int (lua_state:Byte Ptr)
  840. Function luaopen_debug:Int (lua_state:Byte Ptr)
  841. Function luaopen_io:Int (lua_state:Byte Ptr)
  842. Function luaopen_math:Int (lua_state:Byte Ptr)
  843. Function luaopen_os:Int (lua_state:Byte Ptr)
  844. Function luaopen_package:Int (lua_state:Byte Ptr)
  845. Function luaopen_string:Int (lua_state:Byte Ptr)
  846. Function luaopen_table:Int (lua_state:Byte Ptr)
  847. End Extern
  848. Function lua_dobuffer:Int (lua_state:Byte Ptr, buff:String, sz:Int, name:String)
  849. If (luaL_loadbuffer(lua_state,buff,sz,name) <> 0) Then
  850. Return 1
  851. Else
  852. Return lua_pcall(lua_state, 0, LUA_MULTRET, 0)
  853. End If
  854. End Function
  855. Function lua_dofile:Int (lua_state:Byte Ptr, filename:String)
  856. Return luaL_dofile(lua_state,filename)
  857. End Function
  858. Function lua_dostring:Int (lua_state:Byte Ptr, str:String)
  859. Return luaL_dostring(lua_state,str)
  860. End Function
  861. Function lua_strlen:Int (lua_state:Byte Ptr, index:Int)
  862. Return lua_objlen(lua_state,index)
  863. End Function