The Tao3D compiler used a relatively straightforward compilation strategy, which has been re-imported in the compiler-fast.cpp file:
Keeps the parse trees in their original normal representation. For example, when you compute 2+3, you generate a parse tree for the result of the addition, which is an Integer tree with value 5.
The only real type-checking occurs against built-in types, by implementing a "tag test"
The code generated for all candidates checks if the type matches, if so keeps the computation, and the whole thing otherwise falls back to a runtime error.
This implementation is not particularly useful, except maybe in re-connecting with Tao3D (issue #32)
The Tao3D compiler used a relatively straightforward compilation strategy, which has been re-imported in the compiler-fast.cpp file:
2+3
, you generate a parse tree for the result of the addition, which is anInteger
tree with value5
.This implementation is not particularly useful, except maybe in re-connecting with Tao3D (issue #32)