Example "compiler", part 1 of 2
# parser
rule expr { <integer> <addop> <integer> };
# transform to ast
method expr($/) {
my $pirop := $<addop> eq '-' ?? 'sub' !! 'add';
make PAST::Op.new( :pirop($pirop),
+$<integer>[0], +$<integer>[1]);
}