Day 12: Refactoring.

autrijus on 2005-02-12T17:45:59

Lots of extremely heavy refactoring today, in order to merge up with Perl6.grammar:

  • Parsec now tracks a state pad of symbols, so user-defined infix / unary operators can be correctly parsed.
  • Two new primitives: rand() and eval().
  • Refactored junctive operations into Junc.hs.
  • Consistent try/commit/lexeme handling; detection of statement and block boundaries.
  • Env now contains a list of list of Symbol as the current pad.
  • Split the symbol data type into SGlobal, SMy, SOur, SLet, STemp and SState.
  • A skeleton implementation of gather/take.

However I did not finish the largest refactoring (turning the whole evaluator into a StateT monad on top of a ContT monad on top of an IO monad) tonight, so I'll resume it tomorrow morning. G'night!


Wow!

yudel on 2005-02-13T02:54:22

I'm not a compiler geek. I'm not really following Parrot. And I only know Haskell as the name of my sister's ex-father-in-law. I have no technical credentials.

That said: Wow! Kazaa! YooHoo!

I looked at the samples on the Wiki, of multiplying junctions.... amazing! Perl 6 breathes!

Congratulations, and THANK YOU!