Вобсчем задача была такая : создать функцию-конструктор BlitzMAX-обьектов для скриптового языка LUA.
Решение напрашивается само - реализовать используя описатель :
Function Create:Int(lua:Byte ptr)
Local tid:TTypeId = TTypeId.ForName(lua_tostring(lua, 1))
lua_pushobject(lua, tid.NewObject())
Return True
End Function
Далее регистрируем функцию в LUA :
lua_pushcclosure(lua, Create, 0)
lua_setfield(lua, LUA_GLOBALSINDEX, "create")
Ну и пример использования :
--LUA
function test()
local list = create('TList')
list.AddLast('one')
list.AddLast('two')
list.AddLast('three')
return list
end
'BMX
Local script:TScript = LoadScript("Test.lua")
Local list:TList = TList(script.Execute("test"))
For Local s:String = EachIn list
DebugLog(s)
Next
Задача решена. =)