diff options
author | Aryadev Chavali <aryadev@aryadevchavali.com> | 2024-04-16 15:42:59 +0630 |
---|---|---|
committer | Aryadev Chavali <aryadev@aryadevchavali.com> | 2024-04-16 15:42:59 +0630 |
commit | 8f75241bcbe6c0497f2e09c4c6f081839250e22b (patch) | |
tree | 76d8b9f2542004c0b6559f06f864a64b49ad59b4 /asm/preprocesser.hpp | |
parent | d5c43b1c3f77e40201731ff298ce73416951ce72 (diff) | |
download | ovm-asm-rewrite-cpp.tar.gz ovm-asm-rewrite-cpp.tar.bz2 ovm-asm-rewrite-cpp.zip |
Halting work on preprocesser units and rewrite as a wholeasm-rewrite-cpp
I've decided to split the project into 2 repositories: the assembler
and the runtime. The runtime will contain both the executable and
lib/ while the assembler will have the runtime as a git submodule and
use it to build. I think this is a clean solution, a lot cleaner than
having them all in one project where the Makefile has to massively
expand.
Diffstat (limited to 'asm/preprocesser.hpp')
-rw-r--r-- | asm/preprocesser.hpp | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/asm/preprocesser.hpp b/asm/preprocesser.hpp index aac3041..4938d4e 100644 --- a/asm/preprocesser.hpp +++ b/asm/preprocesser.hpp @@ -42,6 +42,21 @@ struct pp_err_t std::ostream &operator<<(std::ostream &, pp_err_t &); +struct pp_unit_t +{ + const token_t *const token; + struct + { + std::string_view name; + std::vector<pp_unit_t> elements; + } container; + + pp_unit_t(const token_t *const); + pp_unit_t(std::string_view, std::vector<pp_unit_t>); +}; + +std::vector<pp_unit_t> tokens_to_units(const std::vector<token_t *> &); +pp_err_t preprocess_use(std::vector<pp_unit_t> &); pp_err_t preprocesser(const std::vector<token_t *> &, std::vector<token_t *> &); #endif |