pharaun / alldice

Restful interface to a dice expression eval and generator.
Apache License 2.0
0 stars 1 forks source link

Rebuild the AST, the current one is suboptimal. #10

Open pharaun opened 10 years ago

pharaun commented 10 years ago

Right now the parsing stage has to be ran inside the ST monad because of the fact that it parses into a stateful AST.

The parsing step and various steps does not need to be LispEnv stateful.

Look into breaking up the AST into a few phases or looking into some form of tagging or alternative AST so that we can tag various pieces of useful information to the AST.

I can envision wanting to tag the following items:

  1. Line/source code (for traceback)
  2. LispEnv state for closures
  3. Annotation for various interpreter stages.