refactor(library/kernel_bindings): use new functions for simulating python-like named arguments
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
This commit is contained in:
parent
f568ed97b8
commit
8095783c36
1 changed files with 6 additions and 29 deletions
|
@ -635,38 +635,15 @@ static int mk_theorem(lua_State * L) {
|
||||||
else
|
else
|
||||||
return push_definition(L, mk_theorem(to_name_ext(L, 1), to_list_name_ext(L, 2), to_list_pair_level_ext(L, 3), to_expr(L, 4), to_expr(L, 5)));
|
return push_definition(L, mk_theorem(to_name_ext(L, 1), to_list_name_ext(L, 2), to_list_pair_level_ext(L, 3), to_expr(L, 4), to_expr(L, 5)));
|
||||||
}
|
}
|
||||||
static void get_definition_args(lua_State * L, int idx, bool & opaque, int & weight, module_idx & mod_idx, bool & use_conv_opt) {
|
static void get_definition_args(lua_State * L, int idx, bool & opaque, unsigned & weight, module_idx & mod_idx, bool & use_conv_opt) {
|
||||||
if (lua_istable(L, idx)) {
|
opaque = get_bool_named_param(L, idx, "opaque", opaque);
|
||||||
push_string(L, "opaque");
|
use_conv_opt = get_bool_named_param(L, idx, "use_conv_opt", use_conv_opt);
|
||||||
lua_gettable(L, idx);
|
mod_idx = get_uint_named_param(L, idx, "module_idx", mod_idx);
|
||||||
if (lua_isboolean(L, -1))
|
weight = get_uint_named_param(L, idx, "weight", weight);
|
||||||
opaque = lua_toboolean(L, -1);
|
|
||||||
lua_pop(L, 1);
|
|
||||||
|
|
||||||
push_string(L, "use_conv_opt");
|
|
||||||
lua_gettable(L, idx);
|
|
||||||
if (lua_isboolean(L, -1))
|
|
||||||
use_conv_opt = lua_toboolean(L, -1);
|
|
||||||
lua_pop(L, 1);
|
|
||||||
|
|
||||||
push_string(L, "module_idx");
|
|
||||||
lua_gettable(L, idx);
|
|
||||||
if (lua_isnumber(L, -1))
|
|
||||||
mod_idx = lua_tointeger(L, -1);
|
|
||||||
lua_pop(L, 1);
|
|
||||||
|
|
||||||
push_string(L, "weight");
|
|
||||||
lua_gettable(L, idx);
|
|
||||||
if (lua_isnumber(L, -1))
|
|
||||||
weight = lua_tointeger(L, -1);
|
|
||||||
lua_pop(L, 1);
|
|
||||||
} else if (idx <= lua_gettop(L) && !lua_isnil(L, idx)) {
|
|
||||||
throw exception(sstream() << "arg #" << idx << " must be a table");
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
static int mk_definition(lua_State * L) {
|
static int mk_definition(lua_State * L) {
|
||||||
int nargs = lua_gettop(L);
|
int nargs = lua_gettop(L);
|
||||||
bool opaque = true; int weight = 0; module_idx mod_idx = 0; bool use_conv_opt = true;
|
bool opaque = true; unsigned weight = 0; module_idx mod_idx = 0; bool use_conv_opt = true;
|
||||||
if (is_environment(L, 1)) {
|
if (is_environment(L, 1)) {
|
||||||
if (nargs <= 5) {
|
if (nargs <= 5) {
|
||||||
get_definition_args(L, 5, opaque, weight, mod_idx, use_conv_opt);
|
get_definition_args(L, 5, opaque, weight, mod_idx, use_conv_opt);
|
||||||
|
|
Loading…
Reference in a new issue