/** \brief Parse an expression. */ expr parser_imp::parse_expr_main() { try { auto p = m_elaborator(parse_expr()); check_no_metavar(p, "invalid expression, it still contains metavariables after elaboration"); return p.first; } catch (parser_error & ex) { throw parser_exception(ex.what(), m_strm_name.c_str(), ex.m_pos.first, ex.m_pos.second); } catch (exception & ex) { throw parser_nested_exception(std::shared_ptr<exception>(ex.clone()), std::shared_ptr<pos_info_provider>(new lean_pos_info_provider(m_this.lock(), m_last_cmd_pos))); } }
std::tuple<expr, expr, metavar_env> parser_imp::elaborate(name const & n, expr const & t, expr const & e) { return m_elaborator(n, t, e, m_io_state.get_options()); }
std::pair<expr, metavar_env> parser_imp::elaborate(expr const & e) { return m_elaborator(e, m_io_state.get_options()); }