An ast grammar for our "abc example" (ROOT node)
transform past (ROOT) :language('PIR') { .local pmc stmtnode, stmtpast # get the AST for our statement stmtnode = node['statement'] stmtpast = tree.'get'('past', stmtnode, 'ABC::Grammar::statement') # print the statement's results .local pmc printpast printpast = new 'PAST::Op' printpast.'init'(stmtpast, 'node'=>node, 'pirop'=>'say') .local pmc blockpast blockpast = new 'PAST::Block' blockpast.'init'(printpast) .return (blockpast) }