refactor(library): add module namespace
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
This commit is contained in:
parent
fc7d5461b1
commit
13f9db26b7
4 changed files with 10 additions and 6 deletions
|
@ -286,7 +286,7 @@ struct add_coercion_fn {
|
||||||
add_coercion(C, f, f_type, ls, num_args, cls);
|
add_coercion(C, f, f_type, ls, num_args, cls);
|
||||||
m_ext.update_from_to(C, cls, m_ios);
|
m_ext.update_from_to(C, cls, m_ios);
|
||||||
name const & f_name = const_name(f);
|
name const & f_name = const_name(f);
|
||||||
m_env = add(m_env, g_coercion_key, [=](serializer & s) {
|
m_env = module::add(m_env, g_coercion_key, [=](serializer & s) {
|
||||||
s << f_name << C;
|
s << f_name << C;
|
||||||
});
|
});
|
||||||
return update(m_env, m_ext);
|
return update(m_env, m_ext);
|
||||||
|
|
|
@ -1859,7 +1859,7 @@ static int add_declaration(lua_State * L) {
|
||||||
d = check(to_environment(L, 1), to_declaration(L, 2), to_name_generator(L, 3), to_name_set(L, 4));
|
d = check(to_environment(L, 1), to_declaration(L, 2), to_name_generator(L, 3), to_name_set(L, 4));
|
||||||
else
|
else
|
||||||
d = check(to_environment(L, 1), to_declaration(L, 2), to_name_generator(L, 3), to_name_set(L, 4), lua_toboolean(L, 5));
|
d = check(to_environment(L, 1), to_declaration(L, 2), to_name_generator(L, 3), to_name_set(L, 4), lua_toboolean(L, 5));
|
||||||
return push_environment(L, add(to_environment(L, 1), *d));
|
return push_environment(L, module::add(to_environment(L, 1), *d));
|
||||||
}
|
}
|
||||||
|
|
||||||
static void open_type_checker(lua_State * L) {
|
static void open_type_checker(lua_State * L) {
|
||||||
|
@ -1903,7 +1903,7 @@ static int add_inductive1(lua_State * L) {
|
||||||
buffer<intro_rule> irules;
|
buffer<intro_rule> irules;
|
||||||
for (int i = idx+1; i <= nargs; i+=2)
|
for (int i = idx+1; i <= nargs; i+=2)
|
||||||
irules.push_back(intro_rule(to_name_ext(L, i), to_expr(L, i+1)));
|
irules.push_back(intro_rule(to_name_ext(L, i), to_expr(L, i+1)));
|
||||||
return push_environment(L, add_inductive(env, Iname, ls, num_params, Itype, to_list(irules.begin(), irules.end())));
|
return push_environment(L, module::add_inductive(env, Iname, ls, num_params, Itype, to_list(irules.begin(), irules.end())));
|
||||||
}
|
}
|
||||||
static int add_inductivek(lua_State * L) {
|
static int add_inductivek(lua_State * L) {
|
||||||
environment env = to_environment(L, 1);
|
environment env = to_environment(L, 1);
|
||||||
|
@ -1935,7 +1935,7 @@ static int add_inductivek(lua_State * L) {
|
||||||
}
|
}
|
||||||
if (decls.empty())
|
if (decls.empty())
|
||||||
throw exception("invalid add_inductive, at least one inductive type must be defined");
|
throw exception("invalid add_inductive, at least one inductive type must be defined");
|
||||||
return push_environment(L, ::lean::add_inductive(env, ls, num_params, to_list(decls.begin(), decls.end())));
|
return push_environment(L, module::add_inductive(env, ls, num_params, to_list(decls.begin(), decls.end())));
|
||||||
}
|
}
|
||||||
static int add_inductive(lua_State * L) {
|
static int add_inductive(lua_State * L) {
|
||||||
if (is_name(L, 2) || lua_isstring(L, 2))
|
if (is_name(L, 2) || lua_isstring(L, 2))
|
||||||
|
|
|
@ -99,14 +99,15 @@ void register_module_object_reader(std::string const & k, module_object_reader r
|
||||||
readers[k] = r;
|
readers[k] = r;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static std::string g_decl("decl");
|
||||||
|
|
||||||
|
namespace module {
|
||||||
environment add(environment const & env, std::string const & k, std::function<void(serializer &)> const & wr) {
|
environment add(environment const & env, std::string const & k, std::function<void(serializer &)> const & wr) {
|
||||||
module_ext ext = get_extension(env);
|
module_ext ext = get_extension(env);
|
||||||
ext.m_writers = list<writer>(writer(k, wr), ext.m_writers);
|
ext.m_writers = list<writer>(writer(k, wr), ext.m_writers);
|
||||||
return update(env, ext);
|
return update(env, ext);
|
||||||
}
|
}
|
||||||
|
|
||||||
static std::string g_decl("decl");
|
|
||||||
|
|
||||||
environment add(environment const & env, certified_declaration const & d) {
|
environment add(environment const & env, certified_declaration const & d) {
|
||||||
environment new_env = env.add(d);
|
environment new_env = env.add(d);
|
||||||
declaration _d = d.get_declaration();
|
declaration _d = d.get_declaration();
|
||||||
|
@ -145,6 +146,7 @@ static void inductive_reader(deserializer & d, module_idx, shared_environment &
|
||||||
}
|
}
|
||||||
|
|
||||||
static register_module_object_reader_fn g_reg_ind_reader(g_inductive, inductive_reader);
|
static register_module_object_reader_fn g_reg_ind_reader(g_inductive, inductive_reader);
|
||||||
|
} // end of namespace module
|
||||||
|
|
||||||
struct import_modules_fn {
|
struct import_modules_fn {
|
||||||
typedef std::tuple<module_idx, unsigned, delayed_update_fn> delayed_update;
|
typedef std::tuple<module_idx, unsigned, delayed_update_fn> delayed_update;
|
||||||
|
|
|
@ -65,6 +65,7 @@ struct register_module_object_reader_fn {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
namespace module {
|
||||||
/**
|
/**
|
||||||
\brief Add a function that should be invoked when the environment is exported.
|
\brief Add a function that should be invoked when the environment is exported.
|
||||||
The key \c k identifies which module_object_reader should be used to deserialize the object
|
The key \c k identifies which module_object_reader should be used to deserialize the object
|
||||||
|
@ -96,3 +97,4 @@ environment add_inductive(environment const & env,
|
||||||
expr const & type, // type of the form: params -> indices -> Type
|
expr const & type, // type of the form: params -> indices -> Type
|
||||||
list<inductive::intro_rule> const & intro_rules); // introduction rules
|
list<inductive::intro_rule> const & intro_rules); // introduction rules
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in a new issue