| 93 |
| (p,e1) = let_binding; "in"; e2 = expr LEVEL "top"-> |
| (p,e1) = let_binding; "in"; e2 = expr LEVEL "top"-> |
| 94 |
[ mk loc (EvalStatement (exp loc (Match (e1,[p,e2])))) ] |
[ mk loc (EvalStatement (exp loc (Match (e1,[p,e2])))) ] |
| 95 |
| LIDENT "type"; x = UIDENT; "="; t = pat -> [ mk loc (TypeDecl (x,t)) ] |
| LIDENT "type"; x = UIDENT; "="; t = pat -> [ mk loc (TypeDecl (x,t)) ] |
| 96 |
|
| LIDENT "type"; x = LIDENT -> [ error loc "Type identifiers must be capitalized" ] |
| 97 |
| LIDENT "debug"; d = debug_directive -> [ mk loc (Debug d) ] |
| LIDENT "debug"; d = debug_directive -> [ mk loc (Debug d) ] |
| 98 |
| LIDENT "include"; s = STRING2 -> |
| LIDENT "include"; s = STRING2 -> |
| 99 |
let s = get_string s in |
let s = get_string s in |
| 338 |
|
|
| 339 |
pat: [ |
pat: [ |
| 340 |
[ x = pat; LIDENT "where"; |
[ x = pat; LIDENT "where"; |
| 341 |
b = LIST1 [ a = UIDENT; "="; y = pat -> (a,y)] SEP "and" |
b = LIST1 [ a = UIDENT; "="; y = pat -> (a,y) |
| 342 |
|
| LIDENT -> error loc "Type/pattern identifiers must be capitalized" |
| 343 |
|
] SEP "and" |
| 344 |
-> mk loc (Recurs (x,b)) ] |
-> mk loc (Recurs (x,b)) ] |
| 345 |
| RIGHTA [ x = pat; "->"; y = pat -> mk loc (Arrow (x,y)) ] |
| RIGHTA [ x = pat; "->"; y = pat -> mk loc (Arrow (x,y)) ] |
| 346 |
| "no_arrow" [ x = pat; "|"; y = pat -> mk loc (Or (x,y)) ] |
| "no_arrow" [ x = pat; "|"; y = pat -> mk loc (Or (x,y)) ] |