Sunday, July 23, 2006

 

Progress report -- Pugs bootstrap -- ~ 7/23

(copied from my blog)

I finally escaped from the final exams and projects, and the unexpected busy early July. The first checkin of the Pugs::Emitter::Rule::Parsec module is on July 20th. It accepted and emitted correct Haskell code on the yada example given in the README of MiniPerl6 module. (By the way, the Pugs::Grammar::MiniPerl6 and Pugs::Compiler::Rule modules have been moved from pX/ to perl5/)

After three days' hacking, it now accepts a lot of rule constructions. Also, a test file was added. In Parser.Literal there are 10 parser routines, two of them take arguments (namedLiteral and possiblyTypeLiteral) which I currently don't know how to present in Perl 6 rule, one uses previous parsing state to decide next action (ruleWordboundary), all other seven can be easily generated. In fact, all seven of them are already in the test file, the result is tested by replacing existing code by the generated one proven that it gears Pugs' parser, too.

P.S. As the matter of fact, two of the ten parsers (ruleDot and ruleLongDot) use non-LL grammar so that a little modification by hand on generated code is needed.

Comments: Post a Comment



<< Home

This page is powered by Blogger. Isn't yours?