feat(lua): add mk_metavar to Lua API
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
This commit is contained in:
parent
46edc11fd8
commit
8dd62e76be
2 changed files with 14 additions and 0 deletions
|
@ -16,6 +16,7 @@ Author: Leonardo de Moura
|
||||||
#include "bindings/lua/util.h"
|
#include "bindings/lua/util.h"
|
||||||
#include "bindings/lua/name.h"
|
#include "bindings/lua/name.h"
|
||||||
#include "bindings/lua/level.h"
|
#include "bindings/lua/level.h"
|
||||||
|
#include "bindings/lua/local_context.h"
|
||||||
|
|
||||||
namespace lean {
|
namespace lean {
|
||||||
constexpr char const * expr_mt = "expr.mt";
|
constexpr char const * expr_mt = "expr.mt";
|
||||||
|
@ -171,6 +172,14 @@ static int expr_type(lua_State * L) {
|
||||||
return push_expr(L, Type(to_level(L, 1)));
|
return push_expr(L, Type(to_level(L, 1)));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int expr_mk_metavar(lua_State * L) {
|
||||||
|
int nargs = lua_gettop(L);
|
||||||
|
if (nargs == 1)
|
||||||
|
return push_expr(L, mk_metavar(to_name_ext(L, 1)));
|
||||||
|
else
|
||||||
|
return push_expr(L, mk_metavar(to_name_ext(L, 1), to_local_context(L, 2)));
|
||||||
|
}
|
||||||
|
|
||||||
static int expr_is_null(lua_State * L) {
|
static int expr_is_null(lua_State * L) {
|
||||||
lua_pushboolean(L, !to_expr(L, 1));
|
lua_pushboolean(L, !to_expr(L, 1));
|
||||||
return 1;
|
return 1;
|
||||||
|
@ -208,5 +217,6 @@ void open_expr(lua_State * L) {
|
||||||
set_global_function<expr_let>(L, "Let");
|
set_global_function<expr_let>(L, "Let");
|
||||||
set_global_function<expr_type>(L, "mk_type");
|
set_global_function<expr_type>(L, "mk_type");
|
||||||
set_global_function<expr_type>(L, "Type");
|
set_global_function<expr_type>(L, "Type");
|
||||||
|
set_global_function<expr_mk_metavar>(L, "mk_metavar");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
4
tests/lua/expr4.lua
Normal file
4
tests/lua/expr4.lua
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
m1 = mk_metavar("a")
|
||||||
|
print(m1)
|
||||||
|
m2 = mk_metavar("b", local_context(mk_inst(1, Const("a")), local_context()))
|
||||||
|
print(m2)
|
Loading…
Reference in a new issue