From 967be9e750221ab2ab783f95df79bb26d290a45e Mon Sep 17 00:00:00 2001 From: Martial Simon Date: Mon, 15 Sep 2025 01:07:58 +0200 Subject: add: added projects --- tiger-compiler/src/overload/liboverload.hh | 36 ++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 tiger-compiler/src/overload/liboverload.hh (limited to 'tiger-compiler/src/overload/liboverload.hh') diff --git a/tiger-compiler/src/overload/liboverload.hh b/tiger-compiler/src/overload/liboverload.hh new file mode 100644 index 0000000..6c89862 --- /dev/null +++ b/tiger-compiler/src/overload/liboverload.hh @@ -0,0 +1,36 @@ +/** + ** \file overload/liboverload.hh + ** \brief Declare functions and variables exported by overload module. + */ + +#pragma once + +#include +#include +#include + +/** + ** \brief Perform type checking, allowing function overloading. + */ +namespace overload +{ + /** \brief Bind identifier uses to their definition, allowing + function overloading, and return a list of potential definition + sites for each function call. + + \param tree AST to bind. + + \return a pair whose first element is the potential function + bindings, and the second element the error status. */ + std::pair bind(ast::Ast& tree); + + /** \brief Check types allowing function overloading. + + \param tree abstract syntax tree's root. + \param overfun_bindings potential function bindings. + + \return success of the type-checking. */ + misc::error types_check(ast::Ast& tree, + const overfun_bindings_type& overfun_bindings); + +} // namespace overload -- cgit v1.2.3