Parrot Parrot Compiler Toolkit #37

Example: if_stmt

rule if_stmt { 'if' <expression> 'then' <statement> }

Add an action token to the rule:

rule if_stmt { 'if' <expression> 'then' <statement> {*} }

Add method to src/pct/actions.pm to generate PAST:

method if_stmt($/) {
    my $past := PAST::Op.new( $<expression>.ast,
                              $<statement>.ast,
                              :pasttype('if') );
    make $past;
}
Copyright © 2009
http://www.pmichaud.com/2009/pres/