########################################### # RPN.yp ########################################### %left OPADD %left OPMULT %% expr: add | mult | NUM { return [ $_[1] ]; }; add: expr OPADD expr { return [ @{$_[1]}, @{$_[3]}, $_[2] ]; }; mult: expr OPMULT expr { return [ @{$_[1]}, @{$_[3]}, $_[2] ]; }; %%