Perl 6 on Parrot Rakudo Perl - Perl 6 on Parrot #34

Example: if_stmt (cont'd)

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

...

method if_stmt($/) {
    my $past := PAST::Op.new( $($<expression>),
                              $($<statement>),
                              :pasttype('if') );
    make $past;
}

PAST::Op nodes represent operations

:pasttype('if') represents a conditional operation

(other :pasttype values include 'while', 'repeat_while', 'bind', 'call', 'callmethod', 'copy', 'try', etc.)

Copyright © 2008 Patrick Michaud