| 175 |
| |
| |
| 176 |
[ e1 = expr; op = ["+" | "-" | "@" ]; e2 = expr -> |
[ e1 = expr; op = ["+" | "-" | "@" ]; e2 = expr -> |
| 177 |
exp loc (Op (op,[e1;e2])) |
exp loc (Op (op,[e1;e2])) |
| 178 |
| e = expr; "\\"; l = [LIDENT | UIDENT] -> |
| e = expr; "\\"; l = [LIDENT | UIDENT | keyword ] -> |
| 179 |
exp loc (RemoveField (e,LabelPool.mk l)) |
exp loc (RemoveField (e,LabelPool.mk l)) |
| 180 |
] |
] |
| 181 |
| |
| |
| 192 |
exp loc (Op ("flatten", [Map (e,[b])])) |
exp loc (Op ("flatten", [Map (e,[b])])) |
| 193 |
] |
] |
| 194 |
| |
| |
| 195 |
[ e = expr; "."; l = [LIDENT | UIDENT] -> |
[ e = expr; "."; l = [LIDENT | UIDENT | keyword ] -> |
| 196 |
exp loc (Dot (e,LabelPool.mk l)) |
exp loc (Dot (e,LabelPool.mk l)) |
| 197 |
] |
] |
| 198 |
|
|
| 399 |
]; |
]; |
| 400 |
|
|
| 401 |
record_spec: |
record_spec: |
| 402 |
[ [ r = LIST0 [ l = [LIDENT | UIDENT]; "="; |
[ [ r = LIST0 [ l = [LIDENT | UIDENT | keyword ]; "="; |
| 403 |
o = [ "?" -> true | -> false]; |
o = [ "?" -> true | -> false]; |
| 404 |
x = pat -> |
x = pat -> |
| 405 |
let x = if o then mk loc (Optional x) else x in |
let x = if o then mk loc (Optional x) else x in |
| 417 |
const: |
const: |
| 418 |
[ |
[ |
| 419 |
[ i = INT -> Types.Integer (Intervals.mk i) |
[ i = INT -> Types.Integer (Intervals.mk i) |
| 420 |
| "`"; a = [LIDENT | UIDENT] -> Types.Atom (Atoms.mk a) |
| "`"; a = [LIDENT | UIDENT | keyword ] -> Types.Atom (Atoms.mk a) |
| 421 |
| c = char -> Types.Char c ] |
| c = char -> Types.Char c ] |
| 422 |
]; |
]; |
| 423 |
|
|
| 431 |
|
|
| 432 |
expr_record_spec: |
expr_record_spec: |
| 433 |
[ [ r = LIST1 |
[ [ r = LIST1 |
| 434 |
[ l = [LIDENT | UIDENT]; "="; x = expr -> |
[ l = [LIDENT | UIDENT | keyword ]; "="; x = expr -> |
| 435 |
(LabelPool.mk l,x) ] |
(LabelPool.mk l,x) ] |
| 436 |
SEP ";" -> |
SEP ";" -> |
| 437 |
exp loc (RecordLitt (make_record loc r)) |
exp loc (RecordLitt (make_record loc r)) |