On Wednesday 04 October 2006 07:13, Aaron Sherman wrote:

> chromatic wrote:

> > That's part of it, but mostly it's for transforming one tree-based
> > representation of a program into another.  See for example Pheme's
> > lib/*.tg files.

> I'm confused. I thought that this is what TGE did. Is TGE going away, or
> are we talking about something that extends TGE in some way?

TGE needs an embedded language to say "You gave me a PGE tree.  I want to turn 
that into a PAST tree, by turning this node into that node, copying that 
information, and adding this other information."  Note that this language has 
nothing to do with *finding* nodes (as in XPath).  That's what TGE does.  
This mini language is just the stuff in curly braces in the TGE Grammar 
files:

  transform result (empty_list) :language('PIR') {
      .local pmc result
      result = new 'PAST::Exp'
    
      .local pmc cons
      cons = new 'PAST::Op'
      cons.'op'( '__make_empty_cons' )
    
      result.'add_child'( cons )
      .return( result )
  }  

It turns out that assembly language makes things like looping and declaring 
complex data structures rather tedious.

-- c

Reply via email to