Author: fperrad Date: Mon Jul 21 01:05:07 2008 New Revision: 29643 Modified: trunk/languages/lua/src/lib/luaaux.pir
Log: [Lua] - add lua_is* (needed by GL/GLUT) Modified: trunk/languages/lua/src/lib/luaaux.pir ============================================================================== --- trunk/languages/lua/src/lib/luaaux.pir (original) +++ trunk/languages/lua/src/lib/luaaux.pir Mon Jul 21 01:05:07 2008 @@ -404,6 +404,134 @@ .end +=item C<lua_isboolean (val)> + +Returns 1 if the value has type boolean, and 0 otherwise. + +=cut + +.sub 'lua_isboolean' + .param pmc val + .local int res + res = 0 + if null val goto L1 + res = isa val, 'LuaBoolean' + L1: + .return (res) +.end + + +=item C<lua_isfunction (val)> + +Returns 1 if the value is a function, and 0 otherwise. + +=cut + +.sub 'lua_isfunction' + .param pmc val + .local int res + res = 0 + if null val goto L1 + res = isa val, 'LuaClosure' + if res goto L1 + res = isa val, 'LuaFunction' +L1: + .return (res) +.end + + +=item C<lua_isnil (val)> + +Returns 1 if the value is nil, and 0 otherwise. + +=cut + +.sub 'lua_isnil' + .param pmc val + .local int res + res = 0 + if null val goto L1 + res = isa val, 'LuaNil' + L1: + .return (res) +.end + + +=item C<lua_isnumber (val)> + +Returns 1 if the value is a number or a string convertible to a number, +and 0 otherwise. + +=cut + +.sub 'lua_isnumber' + .param pmc val + .local int res + res = 0 + if null val goto L1 + res = isa val, 'LuaNumber' + if res goto L1 + $P0 = val.'tonumber'() + res = isa $P0, 'LuaNumber' +L1: + .return (res) +.end + + +=item C<lua_isstring (val)> + +Returns 1 if the value is a string or a number (which is always convertible +to a string), and 0 otherwise. + +=cut + +.sub 'lua_isstring' + .param pmc val + .local int res + res = 0 + if null val goto L1 + res = isa val, 'LuaString' + if res goto L1 + res = isa val, 'LuaNumber' +L1: + .return (res) +.end + + +=item C<lua_istable (val)> + +Returns 1 if the value is a table, and 0 otherwise. + +=cut + +.sub 'lua_istable' + .param pmc val + .local int res + res = 0 + if null val goto L1 + res = isa val, 'LuaTable' + L1: + .return (res) +.end + + +=item C<lua_isuserdata (val)> + +Returns 1 if the value is a userdata, and 0 otherwise. + +=cut + +.sub 'lua_isuserdata' + .param pmc val + .local int res + res = 0 + if null val goto L1 + res = isa val, 'LuaUserdata' + L1: + .return (res) +.end + + =item C<lua_load (data, name)> This function only loads a chunk; it does not run it.
