diff --git a/asm/preprocesser.hpp b/asm/preprocesser.hpp index 9d733dd..a1d8a31 100644 --- a/asm/preprocesser.hpp +++ b/asm/preprocesser.hpp @@ -12,11 +12,12 @@ #ifndef PREPROCESSER_HPP #define PREPROCESSER_HPP +#include #include #include "./lexer.hpp" -enum pp_err_t +enum pp_err_type_t { OK = 0, EXPECTED_NAME, @@ -27,13 +28,30 @@ enum pp_err_t UNKNOWN_NAME, }; -std::pair, pp_err_t> -preprocesser(const std::vector &); +struct pp_err_t +{ + const token_t *reference; + pp_err_type_t type; + lerr_t lerr; -std::pair, pp_err_t> -preprocess_macro_blocks(const std::vector &); + pp_err_t(pp_err_type_t); + pp_err_t(pp_err_type_t, const token_t *); + pp_err_t(pp_err_type_t, const token_t *, lerr_t); +}; -std::pair, pp_err_t> -preprocess_use_blocks(const std::vector &); +std::ostream &operator<<(std::ostream &, pp_err_t &); + +std::pair, pp_err_t> +preprocesser(std::vector &); + +std::pair, pp_err_t> +preprocess_const_blocks(std::vector &); + +std::pair, pp_err_t> +preprocess_use_blocks(std::vector &); + +// TODO: Implement this +std::pair, pp_err_t> +preprocess_macro_blocks(std::vector &); #endif