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!