The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
%right '=' 
%left '-' '+' 
%left '*' '/' 
%left NEG 
%right '^' 

%%

start:
      input 
;
input:
      line * 
;
line:
      '\n'
    | exp '\n' 
;
exp:
      NUM
    | VAR
    | VAR '=' exp
    | exp '+' exp
    | exp '-' exp
    | exp '*' exp
    | exp '/' exp
    | '-' exp %prec NEG
    | exp '^' exp
    | '(' exp ')' 
;

%%