[prev in list] [next in list] [prev in thread] [next in thread] 

List:       mason-devel
Subject:    [Mason-devel] Parser rewrite, again, again
From:       Dave Rolsky <autarch () urth ! org>
Date:       2000-10-11 6:12:21
[Download RAW message or body]

I really want to get started on this.  I figure it'd be easier to get this
accomplished before prototyping my components as classes idea because with
a different parser I'd have an easier time whipping together a prototype.

So let's please start the discussion again.

Last we left it I had sent a message detailing what I thought were the
three possibilities.  Quick summary:

1. 'Pure' RecDescent (or maybe YAPP?) grammar.  A large grammar that
doesn't take advantage of things like the ability to use Text::Balanced
and such within RecDescent.  I started something along these lines.

2.  Hybrid RecDescent grammar.  A grammar that takes advantage of things
like Text::Balanced to create a very small grammar.  Ken began something
along these lines.

3   Build our own with RecDescent or YAPP or anything.  This would still
be separated into a lexer and compiler piece.  Gordon made a prototype of
this.

At this point in time, my inclination is #3.  It'd be cleaner than the
existing one, easy to plug in new outputs (components compiled to classes,
for example) or inputs (XML).  It'd be faster and smaller than 1 or 2
(RecDescent is a beast) and its not too hard to do.

Note that this doesn't bar creating a formal grammar (in BNF, perhaps).  
We could even create the grammar first and then implement it by hand.  
Having a grammar gives us an external spec to compare our code to, which
is good.


Thoughts please?


-dave

/*==================
www.urth.org
We await the New Sun
==================*/

_______________________________________________
Mason-devel mailing list
Mason-devel@lists.sourceforge.net
http://lists.sourceforge.net/mailman/listinfo/mason-devel

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic