1 /* $NetBSD: expr.y,v 1.1.1.1 2009/10/26 00:28:33 christos Exp $ */
4 * expr.y : A simple yacc expression parser
5 * Based on the Bison manual example.
19 %token PLUS MINUS MULT DIV EXPON
27 %type
<val
> exp NUMBER
35 | exp EOL
{ printf
("%g\n",$1);}
37 exp
: NUMBER
{ $$
= $1; }
38 | exp PLUS exp
{ $$
= $1 + $3; }
39 | exp MINUS exp
{ $$
= $1 - $3; }
40 | exp MULT exp
{ $$
= $1 * $3; }
41 | exp DIV exp
{ $$
= $1 / $3; }
42 | MINUS exp %prec MINUS
{ $$
= -$2; }
43 | exp EXPON exp
{ $$
= pow
($1,$3);}
44 | LB exp RB
{ $$
= $2; }
49 yyerror(char *message
)
51 printf
("%s\n",message
);
54 int main
(int argc
, char *argv
[])