35 lines
1.3 KiB
C++
35 lines
1.3 KiB
C++
/*
|
|
Copyright (c) 2014 Microsoft Corporation. All rights reserved.
|
|
Released under Apache 2.0 license as described in the file LICENSE.
|
|
|
|
Author: Leonardo de Moura
|
|
*/
|
|
#pragma once
|
|
#include "kernel/environment.h"
|
|
#include "library/io_state.h"
|
|
#include "frontends/lean/local_decls.h"
|
|
#include "frontends/lean/info_manager.h"
|
|
|
|
namespace lean {
|
|
name const & get_elaborator_ignore_instances_name();
|
|
/** \brief Environment for elaboration, it contains all the information that is "scope-indenpendent" */
|
|
class elaborator_context {
|
|
environment m_env;
|
|
io_state m_ios;
|
|
local_decls<level> m_lls; // local universe levels
|
|
pos_info_provider const * m_pos_provider;
|
|
info_manager * m_info_manager;
|
|
// configuration
|
|
bool m_check_unassigned;
|
|
bool m_use_local_instances;
|
|
bool m_ignore_instances;
|
|
bool m_flycheck_goals;
|
|
bool m_fail_missing_field;
|
|
friend class elaborator;
|
|
public:
|
|
elaborator_context(environment const & env, io_state const & ios, local_decls<level> const & lls,
|
|
pos_info_provider const * pp = nullptr, info_manager * info = nullptr, bool check_unassigned = true);
|
|
};
|
|
void initialize_elaborator_context();
|
|
void finalize_elaborator_context();
|
|
}
|