I'm no expert, but I'll hazard some answers:

On Wed, Jun 28, 2006 at 04:26:45AM -0500, João Cruz Morais wrote:
> I'm new to Parrot but reading from your slides if I understood correctly:
> - PGE parses input according to a grammar and produces a derivation tree.
> - TGE transforms the parse tree into an abstract syntax tree.
> 
> With that said I have some questions (i'm sorry if they were answered
> already somewhere):
> - Whats the point of using PGE+TGE over the good old LEX+YACC besides the
> better regexps?

I think lex+yacc is approximately equivalent to PGE alone. TGE is
something different. 

You can't really say "besides the better regexps" because that's part of
the point--having better tools with which to transform one language into
another. PGE lets you annotate how the source language fits together
(what's a token and what order the tokens may come in, etc.) while TGE
let's you take those annotations and turn them into alternate
(presumably more useful) representations.

> - Can I use PGE skipping TGE?

I don't see why not. If you look at the bottom of grammar_rules.pg,
you'll see this:

token syntax_error { <?PGE::Util::die: Syntax error> }

where PGE::Util::die is a PIR subroutine.  IIUC, everywhere you want
some action to be performed (like code generation for instance) you
could put a PIR subroutine in the grammar just as above and, of
course, write the subroutine to do the action.

> - PAST seems just fine as a concept but isn't it useless if I can target
> directly to POST with minor fuss?

It may be "uesless" in that specific case, but I think it's highly
useful in the general case where the impedence mismatch between the
language you are parsing and the language you are generating may be
large (like say, between a very complex and rich language like Perl6 and
a much simpler language like PIR ;). TGE lets you factor out the
complexity of your source language in incremental steps (as small or as
large steps as you want).

> Good luck for today's presentation :)

Yeah, good luck Pm  :)

-Scott
-- 
Jonathan Scott Duff
[EMAIL PROTECTED]

Reply via email to