Commit Graph

2 Commits (a543981b67d59f7e34d4f3e4adaf288da40d14b3)

Author SHA1 Message Date
James T. Martin a543981b67
Combine expression representations using the 'trees that grow' design pattern.
Trees that grow introduces a lot of boilerplate but is bound to be essentially necessary
when I add in the type checker and all sorts of builtin data types.
(I know this because I already *implemented* those things;
it's mostly a matter of trying to merge it all into this codebase).

Accomplishing this also involved restructuring the project
and rewriting a few algorithms in the process,
but those changes are fundamentally intwined with this one.
2021-03-16 18:25:42 -07:00
James T. Martin 4541f30f46
Lots of refactors using recursion-schemes, plus hacky code cleanup.
A side-effect of this refactoring was that I got `traceEval` for free!
2021-03-15 23:56:52 -07:00