| 91 |
[ e1 = expr; op = ["*" | "/"]; e2 = expr -> mk loc (Op (op,[e1;e2])) |
[ e1 = expr; op = ["*" | "/"]; e2 = expr -> mk loc (Op (op,[e1;e2])) |
| 92 |
] |
] |
| 93 |
| |
| |
| 94 |
[ e = expr; "."; l = [LIDENT | UIDENT] -> mk loc (Dot (e,Types.label l)) |
[ e = expr; "."; l = [LIDENT | UIDENT] -> |
| 95 |
|
mk loc (Dot (e,Types.LabelPool.mk l)) |
| 96 |
] |
] |
| 97 |
|
|
| 98 |
| |
| |
| 255 |
[ [ r = LIST0 [ l = [LIDENT | UIDENT]; |
[ [ r = LIST0 [ l = [LIDENT | UIDENT]; |
| 256 |
o = ["=?" -> true | "=" -> false]; |
o = ["=?" -> true | "=" -> false]; |
| 257 |
x = pat -> |
x = pat -> |
| 258 |
mk loc (Record (Types.label l,o,x)) |
mk loc (Record (Types.LabelPool.mk l,o,x)) |
| 259 |
] SEP ";" -> |
] SEP ";" -> |
| 260 |
match r with |
match r with |
| 261 |
| [] -> mk loc (Internal Types.Record.any) |
| [] -> mk loc (Internal Types.Record.any) |
| 272 |
const: |
const: |
| 273 |
[ |
[ |
| 274 |
[ i = INT -> Types.Integer (Big_int.big_int_of_string i) |
[ i = INT -> Types.Integer (Big_int.big_int_of_string i) |
| 275 |
| "`"; a = [LIDENT | UIDENT] -> Types.Atom (Types.mk_atom a) |
| "`"; a = [LIDENT | UIDENT] -> Types.Atom (Types.AtomPool.mk a) |
| 276 |
| c = char -> Types.Char c ] |
| c = char -> Types.Char c ] |
| 277 |
]; |
]; |
| 278 |
|
|
| 280 |
[ |
[ |
| 281 |
[ LIDENT "_" -> mk loc (Internal (Types.atom (Atoms.any))) ] |
[ LIDENT "_" -> mk loc (Internal (Types.atom (Atoms.any))) ] |
| 282 |
| [ a = [LIDENT | UIDENT] -> |
| [ a = [LIDENT | UIDENT] -> |
| 283 |
mk loc (Internal (Types.atom (Atoms.atom (Types.mk_atom a)))) ] |
mk loc (Internal (Types.atom (Atoms.atom (Types.AtomPool.mk a)))) ] |
| 284 |
| [ t = pat -> t ] |
| [ t = pat -> t ] |
| 285 |
]; |
]; |
| 286 |
|
|
| 289 |
|
|
| 290 |
expr_record_spec: |
expr_record_spec: |
| 291 |
[ [ r = LIST1 |
[ [ r = LIST1 |
| 292 |
[ l = [LIDENT | UIDENT]; "="; x = expr -> (Types.label l,x) ] |
[ l = [LIDENT | UIDENT]; "="; x = expr -> |
| 293 |
|
(Types.LabelPool.mk l,x) ] |
| 294 |
SEP ";" -> |
SEP ";" -> |
| 295 |
mk loc (RecordLitt r) |
mk loc (RecordLitt r) |
| 296 |
] ]; |
] ]; |
| 298 |
expr_tag_spec: |
expr_tag_spec: |
| 299 |
[ |
[ |
| 300 |
[ a = [LIDENT | UIDENT] -> |
[ a = [LIDENT | UIDENT] -> |
| 301 |
mk loc (Cst (Types.Atom (Types.mk_atom a))) ] |
mk loc (Cst (Types.Atom (Types.AtomPool.mk a))) ] |
| 302 |
| [ e = expr LEVEL "no_appl" -> e ] |
| [ e = expr LEVEL "no_appl" -> e ] |
| 303 |
]; |
]; |
| 304 |
|
|