Fixed a bug: if-then-else statements were not being evaluated because Haskell was lazily avoiding evaluation of a case statement that would have evaluated to an undefined value.
The bug fixed actually didn't exist here, but it wasn't until I added a 'Debug.Trace.trace' statement to force evaluation of the undefined data structure that was not being evaluated due to Haskell's lazynes.
The pretty printer is now functioning as I expect it to, more or less. With the "tests/pprint.hs" program, I have verified that the output of the pretty printer is reliable for if-then-else statements. But there is much more work to be done for all the other data constructors of the Dao script abstract syntax tree.
The pretty printer is now functioning as I expect it to, more or less. With the "tests/pprint.hs" program, I have verified that the output of the pretty printer is reliable for if-then-else statements. But there is much more work to be done for all the other data constructors of the Dao script abstract syntax tree.
The new pretty-printer instances for all of the 'Dao.Object.Object' data constructors are far from being completed, but I have made a good start. The output of the pretty printer is for if-then-else statements is exactly as I intend it to look, but there is much more work to be done for all the other data constructors of the Dao script abstract syntax tree.
Next I will need to implement bindings for, and then test, the binary object file load/store functionality. The Dao script evaluators tested by in this module are gradually coming back to life.