Commit Graph

3 Commits

Author SHA1 Message Date
Aryadev Chavali
0e5c934072 preprocess_* now uses const references to tokens
They copy and construct new token vectors and just read the token
inputs.
2024-04-15 05:08:07 +06:30
Aryadev Chavali
062ed12278 Rewrote preprocesser API
This C++ rewrite allows me to rewrite the actual API of the system.
In particular, I'm no longer restricting myself to just using enums
then figuring out a way to get proper error logging later down the
line (through tracking tokens in the buffer internally, for example).

Instead I can now design error structures which hold references to the
token they occurred on as well as possible lexical errors (if they're
a FILE_LEXICAL_ERROR which occurs due to the ~%USE~ macro).  This
means it's a lot easier to write error logging now at the top level.
2024-04-15 04:37:43 +06:30
Aryadev Chavali
72ef40e671 parser -> preprocesser + parser
I've decided to split the module parsing into two modules, one for the
preprocessing stage which only deals with tokens and the parsing stage
which generates bytecode.
2024-04-14 17:25:28 +06:30