blob: 2fb95940fd9184306d1dfbc7f02889b19434daba (
plain)
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
-- lambda calculus
%decl lambda.h
%token LPAREN
%token RPAREN
%token ID
%token FUN
%token DOT
%nonassoc SHIFT_THERE
%nonassoc LPAREN RPAREN ID FUN DOT
%nonassoc REDUCE_HERE
%start Expr
/:
enum {
:/
Expr ::= ID %prec SHIFT_THERE ;
/: Symbol = $rule_number,
:/
Expr ::= LPAREN Expr RPAREN %prec SHIFT_THERE ;
/: SubExpression = $rule_number,
:/
Expr ::= Expr Expr %prec REDUCE_HERE ;
/: Appl = $rule_number,
:/
Expr ::= FUN ID DOT Expr %prec SHIFT_THERE ;
/: Abstr = $rule_number,
:/
/:};
:/
|