コード例 #1
0
ファイル: parser_imp.cpp プロジェクト: steveluc/lean
/** \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)));
    }
}
コード例 #2
0
ファイル: parser_imp.cpp プロジェクト: Paradoxika/lean
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());
}
コード例 #3
0
ファイル: parser_imp.cpp プロジェクト: Paradoxika/lean
std::pair<expr, metavar_env> parser_imp::elaborate(expr const & e) {
    return m_elaborator(e, m_io_state.get_options());
}