//////////////////////////////////////////////////////////// // // This module contains a library of lua functions // for manipulating tables. It also provides a library // of useful classes based on tables. // //////////////////////////////////////////////////////////// #ifndef TABLE_HPP #define TABLE_HPP #include "luastack.hpp" // table_equal // // True if two tables contain the same key/value pairs. // int table_equal(lua_State *L); // table_findremove // // Given a vector and a value, remove the specified value from // the vector, and shift elements downward to fill the gaps. // int table_findremove(lua_State *L); // table_push // // Given a vector and a value, push the value onto the end. // int table_push(lua_State *L); // table_find // // Given a vector and a value, search for the first occurrence // of that value. Return the index. // int table_find(lua_State *L); // table_empty // // Return true if the table has no key/value pairs. // int table_empty(lua_State *L); // table_count // // Return the number of key/value pairs in the table. // int table_count(lua_State *L); // table_clear // // Remove all key/value pairs from the table. Does not // remove the metatable. // int table_clear(lua_State *L); // // Create and return an empty deque. Queues are implemented // as tables which are used as dynamically-expandable circular // buffers. // int deque_create(lua_State *L); // // Given a deque and a value, pushes the value onto the // left or right end. // int deque_pushl(lua_State *L); int deque_pushr(lua_State *L); // // Given a deque, pop from the left or right end. Returns the // value and removes it from the deque. If the deque is // empty, returns nil. // int deque_popl(lua_State *L); int deque_popr(lua_State *L); // // Return the nth element from the left or right end of a deque. // int deque_nthl(lua_State *L); int deque_nthr(lua_State *L); // Set (overwrite) the nth element in a deque. // int deque_setl(lua_State *L); int deque_setr(lua_State *L); // // Search a deque for a value. // // Search starts on the specified end and indices are relative // to specified end. // int deque_findl(lua_State *L); int deque_findr(lua_State *L); // // Return the number of values in the deque. // int deque_size(lua_State *L); #endif // TABLE_HPP