Sophie

Sophie

distrib > Mageia > 4 > x86_64 > by-pkgid > ddfdf0b0f2e10c06cbb5bbb1f4ee8dd8 > files > 257

perl-Parse-Eyapp-1.182.0-3.mga4.x86_64.rpm

# File examples/eyapplanguageref/Postfix.eyp
# Compile it with:  eyapp -C Postfix.eyp
# Execution:        ./Postfix.pm -c 'a = 2*3 +b'
%token NUM = /([0-9]+(?:\.[0-9]+)?)/
%token VAR = /([A-Za-z][A-Za-z0-9_]*)/

%right  '='
%left   '-' '+'
%left   '*' '/'
%left   NEG

%defaultaction { "$left $right $op"; }

%%
line: $exp  { print "$exp\n" }
;

exp:        $NUM  { $NUM }            
        |   $VAR  { $VAR }            
        |   VAR.left '='.op exp.right         
        |   exp.left '+'.op exp.right         
        |   exp.left '-'.op exp.right        
        |   exp.left '*'.op exp.right       
        |   exp.left '/'.op exp.right      
        |   '-' $exp %prec NEG { "$exp NEG" }
        |   '(' $exp ')' { $exp }      
;

%%