On Wed, Jun 28, 2006 at 08:12:42AM -0500, Jonathan Scott Duff wrote:
> On Wed, Jun 28, 2006 at 04:26:45AM -0500, João Cruz Morais wrote:
> > - 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.

It's also worth remembering that one can call executable code
directly from a rule.

    token print :lang('PIR') { 
       <expression> 
       {{  $P0 = match['expression']
           say $P0
       }}
    }
     
> > - PAST seems just fine as a concept but isn't it useless if I can target
> > directly to POST with minor fuss?

If one can target POST (or even PIR) directly with minor fuss, then 
a separate PAST step might not make much sense.  But even with
a relatively simple language (like APL), it's useful to have the
tree-based representation of the program's semantics to be able to
manipulate (e.g., optimizations) rather than trying to work directly
from the parse tree.

> > Good luck for today's presentation :)
> 
> Yeah, good luck Pm  :)

Thanks!  For those who are interested, the slides from the later
talks are now online.  

  Perl 6 Compiler Status and the Parrot Compiler Toolkit 
    http://www.pmichaud.com/2006/pres/yapc-perl6/start.html

  Parsers, Perl 6 Rules, and the Parrot Grammar Engine 
    http://www.pmichaud.com/2006/pres/yapc-parsers/start.html

  "Parrot Target Practice", Will Coleda
    http://www.pmichaud.com/2006/pres/yapc-apl/start.html

Pm

Reply via email to