What NQP is really good for
Parse rule:
rule statement_control:sym<if> {
'if' <EXPR> <block>
[ 'else' <else=.block> ]?
}
Transform to AST:
method statement_control:sym<if>($/) {
my $past := PAST::Op.new( :pasttype('if'),
$<EXPR>.ast, $<block>.ast );
if $<else> { $past.push( $<else>[0].ast }
make $past;
}