Perl 6 / Parrot Parrot Compiler Toolkit #18

calc example -- src/parser/actions.pm

class Calc::Grammar::Actions;

method TOP($/) {
    make PAST::Op.new( $($<statement>), :name('say') );
}

method statement($/) {
    make PAST::Op.new( $($<term>[0]),
                       $($<term>[1]),
                       :pirop('add')
                     );
}

method term($/) {
    make PAST::Val.new( :value(+$/) );
}
Copyright © 2009
http://www.pmichaud.com/2009/pres/