Initial revision of lua 'doc' function
This commit is contained in:
@@ -1,13 +1,6 @@
|
||||
#include "table.hpp"
|
||||
#include "source.hpp"
|
||||
|
||||
LuaDefine(table_getregistry, "f") {
|
||||
LuaArg key;
|
||||
LuaRet result;
|
||||
LuaStack LS(L, key, result);
|
||||
LS.rawget(result, LuaRegistry, key);
|
||||
return LS.result();
|
||||
}
|
||||
|
||||
bool table_equal(LuaStack &LS, LuaSlot t1, LuaSlot t2) {
|
||||
lua_State *L = LS.state();
|
||||
@@ -33,7 +26,7 @@ bool table_equal(LuaStack &LS, LuaSlot t1, LuaSlot t2) {
|
||||
return total1 == total2;
|
||||
}
|
||||
|
||||
LuaDefine(table_equal, "c") {
|
||||
LuaDefine(table_equal, "table1,table2", "return true if two tables contain the same keys and values") {
|
||||
LuaArg t1, t2;
|
||||
LuaRet eql;
|
||||
LuaStack LS(L, t1, t2, eql);
|
||||
@@ -41,7 +34,7 @@ LuaDefine(table_equal, "c") {
|
||||
return LS.result();
|
||||
}
|
||||
|
||||
LuaDefine(table_findremove, "c") {
|
||||
LuaDefine(table_findremove, "vector,value", "remove all occurrences of value from vector") {
|
||||
luaL_checktype(L, -2, LUA_TTABLE);
|
||||
int src = 1;
|
||||
int dst = 1;
|
||||
@@ -78,7 +71,7 @@ LuaDefine(table_findremove, "c") {
|
||||
}
|
||||
|
||||
|
||||
LuaDefine(table_push, "c") {
|
||||
LuaDefine(table_push, "vector,value", "push a value onto the end of a vector") {
|
||||
luaL_checktype(L, -2, LUA_TTABLE);
|
||||
int len = lua_rawlen(L, -2);
|
||||
lua_pushinteger(L, len+1);
|
||||
@@ -88,7 +81,7 @@ LuaDefine(table_push, "c") {
|
||||
return 0;
|
||||
}
|
||||
|
||||
LuaDefine(table_find, "c") {
|
||||
LuaDefine(table_find, "vector,value", "find the first occurrence of value in vector") {
|
||||
luaL_checktype(L, -2, LUA_TTABLE);
|
||||
for (int i = 1; ; i++) {
|
||||
lua_pushinteger(L, i);
|
||||
@@ -107,28 +100,21 @@ LuaDefine(table_find, "c") {
|
||||
}
|
||||
}
|
||||
|
||||
LuaDefine(table_empty, "c") {
|
||||
LuaDefine(table_empty, "table", "return true if the table is empty") {
|
||||
luaL_checktype(L, -1, LUA_TTABLE);
|
||||
lua_pushnil(L);
|
||||
if (lua_next(L, -2) != 0) {
|
||||
lua_pop(L, 3);
|
||||
lua_pushboolean(L, 0);
|
||||
return 1;
|
||||
} else {
|
||||
lua_pop(L, 1);
|
||||
lua_pushboolean(L, 1);
|
||||
return 1;
|
||||
}
|
||||
int total = lua_nkeys(L, -1);
|
||||
lua_pushboolean(L, (total == 0)?1:0);
|
||||
return 1;
|
||||
}
|
||||
|
||||
LuaDefine(table_count, "c") {
|
||||
LuaDefine(table_count, "table", "return the number of keys in table") {
|
||||
luaL_checktype(L, -1, LUA_TTABLE);
|
||||
int total = lua_nkeys(L, -1);
|
||||
lua_pushinteger(L, total);
|
||||
return 1;
|
||||
}
|
||||
|
||||
LuaDefine(table_clear, "c") {
|
||||
LuaDefine(table_clear, "table,metaflag", "clear all keys, and optionally the metatable") {
|
||||
LuaArg tab, clearmeta;
|
||||
LuaVar metatable, metafield;
|
||||
LuaStack LS(L, tab, clearmeta, metatable, metafield);
|
||||
@@ -148,7 +134,7 @@ LuaDefine(table_clear, "c") {
|
||||
return LS.result();
|
||||
}
|
||||
|
||||
LuaDefine(table_getflagbits, "c") {
|
||||
LuaDefine(table_getflagbits, "table", "get the table's flag bits (debugging only)") {
|
||||
LuaArg tab;
|
||||
LuaRet bits;
|
||||
LuaStack LS(L, tab, bits);
|
||||
@@ -157,7 +143,7 @@ LuaDefine(table_getflagbits, "c") {
|
||||
return LS.result();
|
||||
}
|
||||
|
||||
LuaDefine(table_setflagbits, "c") {
|
||||
LuaDefine(table_setflagbits, "table,bits", "set the table's flag bits (debugging only)") {
|
||||
LuaArg tab, bits;
|
||||
LuaStack LS(L, tab, bits);
|
||||
uint16_t ubits = LS.ckinteger(bits);
|
||||
@@ -238,7 +224,7 @@ int deque_make_room(lua_State *L, int deque, int left, int fill, int max) {
|
||||
return max;
|
||||
}
|
||||
|
||||
LuaDefine(deque_create, "c") {
|
||||
LuaDefine(deque_create, "", "create a deque") {
|
||||
LuaRet rdeque;
|
||||
LuaVar classobj;
|
||||
LuaStack LS(L, rdeque, classobj);
|
||||
@@ -255,7 +241,7 @@ LuaDefine(deque_create, "c") {
|
||||
return LS.result();
|
||||
}
|
||||
|
||||
LuaDefine(deque_pushl, "c") {
|
||||
LuaDefine(deque_pushl, "deque,value", "push onto the left end of a deque") {
|
||||
LuaArg deque, elt;
|
||||
LuaStack LS(L, deque, elt);
|
||||
int left, fill, max;
|
||||
@@ -269,7 +255,7 @@ LuaDefine(deque_pushl, "c") {
|
||||
return LS.result();
|
||||
}
|
||||
|
||||
LuaDefine(deque_pushr, "c") {
|
||||
LuaDefine(deque_pushr, "deque,value", "push onto the right end of a deque") {
|
||||
LuaArg deque, elt;
|
||||
LuaStack LS(L, deque, elt);
|
||||
int left, fill, max;
|
||||
@@ -282,7 +268,7 @@ LuaDefine(deque_pushr, "c") {
|
||||
return LS.result();
|
||||
}
|
||||
|
||||
LuaDefine(deque_popl, "c") {
|
||||
LuaDefine(deque_popl, "deque", "pop the left end of a deque") {
|
||||
LuaArg deque;
|
||||
LuaRet result;
|
||||
LuaStack LS(L, deque, result);
|
||||
@@ -300,7 +286,7 @@ LuaDefine(deque_popl, "c") {
|
||||
return LS.result();
|
||||
}
|
||||
|
||||
LuaDefine(deque_popr, "c") {
|
||||
LuaDefine(deque_popr, "deque", "pop the right end of a deque") {
|
||||
LuaArg deque;
|
||||
LuaRet result;
|
||||
LuaStack LS(L, deque, result);
|
||||
@@ -318,7 +304,7 @@ LuaDefine(deque_popr, "c") {
|
||||
return LS.result();
|
||||
}
|
||||
|
||||
LuaDefine(deque_nthl, "c") {
|
||||
LuaDefine(deque_nthl, "deque,n", "return the nth item from the left end of a deque") {
|
||||
LuaArg deque, nn;
|
||||
LuaRet result;
|
||||
LuaStack LS(L, deque, nn, result);
|
||||
@@ -334,7 +320,7 @@ LuaDefine(deque_nthl, "c") {
|
||||
return LS.result();
|
||||
}
|
||||
|
||||
LuaDefine(deque_nthr, "c") {
|
||||
LuaDefine(deque_nthr, "deque,n", "return the nth item from the right end of a deque") {
|
||||
LuaArg deque, nn;
|
||||
LuaRet result;
|
||||
LuaStack LS(L, deque, nn, result);
|
||||
@@ -350,7 +336,7 @@ LuaDefine(deque_nthr, "c") {
|
||||
return LS.result();
|
||||
}
|
||||
|
||||
LuaDefine(deque_setl, "c") {
|
||||
LuaDefine(deque_setl, "deque,n,value", "set the nth item from the left end of a deque") {
|
||||
LuaArg deque, nn, val;
|
||||
LuaStack LS(L, deque, nn, val);
|
||||
int left, fill, max;
|
||||
@@ -365,7 +351,7 @@ LuaDefine(deque_setl, "c") {
|
||||
return LS.result();
|
||||
}
|
||||
|
||||
LuaDefine(deque_setr, "c") {
|
||||
LuaDefine(deque_setr, "deque,n,value", "set the nth item from the right end of a deque") {
|
||||
LuaArg deque, nn, val;
|
||||
LuaStack LS(L, deque, nn, val);
|
||||
int left, fill, max;
|
||||
@@ -380,7 +366,7 @@ LuaDefine(deque_setr, "c") {
|
||||
return LS.result();
|
||||
}
|
||||
|
||||
LuaDefine(deque_findl, "c") {
|
||||
LuaDefine(deque_findl, "deque,value", "find the first occurence of value in deque, starting from left") {
|
||||
LuaArg deque, val;
|
||||
LuaRet pos;
|
||||
LuaVar check;
|
||||
@@ -399,7 +385,7 @@ LuaDefine(deque_findl, "c") {
|
||||
return LS.result();
|
||||
}
|
||||
|
||||
LuaDefine(deque_findr, "c") {
|
||||
LuaDefine(deque_findr, "deque,value", "find the first occurrence of value in deque, starting from right") {
|
||||
LuaArg deque, val;
|
||||
LuaRet pos;
|
||||
LuaVar check;
|
||||
@@ -419,7 +405,7 @@ LuaDefine(deque_findr, "c") {
|
||||
return LS.result();
|
||||
}
|
||||
|
||||
LuaDefine(deque_size, "c") {
|
||||
LuaDefine(deque_size, "deque", "return the number of items in the deque") {
|
||||
LuaArg deque;
|
||||
LuaRet size;
|
||||
LuaStack LS(L, deque, size);
|
||||
@@ -576,7 +562,7 @@ bool table_getpairs(LuaStack &LS0, LuaSlot tab, LuaSlot pairs, bool sort) {
|
||||
//
|
||||
/////////////////////////////////////////////////////////////
|
||||
|
||||
LuaDefine(table_nextsortedpair, "c") {
|
||||
LuaDefine(table_nextsortedpair, "sortedpairs,dummy", "next function used by sortedpairs") {
|
||||
if (lua_gettop(L) < 2) {
|
||||
luaL_error(L, "Not enough arguments to nextpair");
|
||||
}
|
||||
@@ -595,20 +581,20 @@ LuaDefine(table_nextsortedpair, "c") {
|
||||
}
|
||||
}
|
||||
|
||||
LuaDefine(table_sortedpairs, "c") {
|
||||
LuaDefine(table_sortedpairs, "table", "iterate over table, sorting all keys") {
|
||||
LuaArg tab;
|
||||
LuaRet closure, rtab, key;
|
||||
LuaStack LS(L, tab, closure, rtab, key);
|
||||
bool sorted = table_getpairs(LS, tab, rtab, true);
|
||||
if (!sorted) {
|
||||
luaL_error(L, "Cannot iterate over a table with unsortable keys");
|
||||
luaL_error(L, "Cannot sort the table keys");
|
||||
}
|
||||
LS.set(closure, lfn_table_nextsortedpair);
|
||||
LS.set(key, LuaNil);
|
||||
return LS.result();
|
||||
}
|
||||
|
||||
LuaDefine(table_semisortedpairs, "c") {
|
||||
LuaDefine(table_semisortedpairs, "table", "iterate over table, sorting those keys that can be sorted") {
|
||||
LuaArg tab;
|
||||
LuaRet closure, rtab, key;
|
||||
LuaStack LS(L, tab, closure, rtab, key);
|
||||
@@ -618,7 +604,7 @@ LuaDefine(table_semisortedpairs, "c") {
|
||||
return LS.result();
|
||||
}
|
||||
|
||||
LuaDefine(table_genlt, "f") {
|
||||
LuaDefine(genlt, "obj1,obj2", "return true if obj1 is less than obj2 in general ordering") {
|
||||
LuaArg o1,o2;
|
||||
LuaRet lt;
|
||||
LuaStack LS(L, o1, o2, lt);
|
||||
|
||||
Reference in New Issue
Block a user