File: expr.mly

package info (click to toggle)
pxp 1.1.96-8
  • links: PTS
  • area: main
  • in suites: etch, etch-m68k
  • size: 5,960 kB
  • ctags: 2,016
  • sloc: ml: 21,018; xml: 2,597; sh: 727; makefile: 706
file content (27 lines) | stat: -rw-r--r-- 425 bytes parent folder | download | duplicates (11)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27

%token Space Newline Stop
%token Add Sub Mult Div LParen RParen
%token<int> Number

%start topexpr
%type<int> topexpr

%left Add Sub
%left Mult Div
%nonassoc Number LParen RParen

%%

topexpr:
  expr Stop { $1 }
;

expr:
  expr Add expr        { $1 + $3 }
| expr Sub expr        { $1 - $3 }
| expr Mult expr       { $1 * $3 }
| expr Div expr        { $1 / $3 }
| LParen expr RParen   { $2 }
| Number               { $1 }
;