| 67 |
mk loc (Match (e1,[p,e2])) |
mk loc (Match (e1,[p,e2])) |
| 68 |
] |
] |
| 69 |
|
|
|
| |
|
|
[ LIDENT "flatten"; e = expr -> mk loc (Op ("flatten",[e])) |
|
|
| e1 = expr; e2 = expr -> mk loc (Apply (e1,e2)) |
|
|
] |
|
| 70 |
|
|
| 71 |
| |
| |
| 72 |
[ e1 = expr; op = ["+" | "-" | "@"]; e2 = expr -> mk loc (Op (op,[e1;e2])) |
[ e1 = expr; op = ["+" | "-" | "@"]; e2 = expr -> mk loc (Op (op,[e1;e2])) |
| 78 |
[ e = expr; "."; l = [LIDENT | UIDENT] -> mk loc (Dot (e,Types.label l)) |
[ e = expr; "."; l = [LIDENT | UIDENT] -> mk loc (Dot (e,Types.label l)) |
| 79 |
] |
] |
| 80 |
|
|
| 81 |
|
| |
| 82 |
|
[ LIDENT "flatten"; e = expr -> mk loc (Op ("flatten",[e])) |
| 83 |
|
| e1 = expr; e2 = expr -> mk loc (Apply (e1,e2)) |
| 84 |
|
] |
| 85 |
|
|
| 86 |
| "no_appl" |
| "no_appl" |
| 87 |
[ c = const -> mk loc (Cst c) |
[ c = const -> mk loc (Cst c) |
| 88 |
| "("; l = LIST1 expr SEP ","; ")" -> tuple loc l |
| "("; l = LIST1 expr SEP ","; ")" -> tuple loc l |
| 186 |
| i = INT ; "--"; j = INT -> |
| i = INT ; "--"; j = INT -> |
| 187 |
let i = Big_int.big_int_of_string i |
let i = Big_int.big_int_of_string i |
| 188 |
and j = Big_int.big_int_of_string j in |
and j = Big_int.big_int_of_string j in |
| 189 |
mk loc (Internal (Types.interval i j)) |
mk loc (Internal (Types.interval (Intervals.bounded i j))) |
| 190 |
|
| i = INT -> |
| 191 |
|
let i = Big_int.big_int_of_string i in |
| 192 |
|
mk loc (Internal (Types.interval (Intervals.atom i))) |
| 193 |
|
| "*--"; j = INT -> |
| 194 |
|
let j = Big_int.big_int_of_string j in |
| 195 |
|
mk loc (Internal (Types.interval (Intervals.left j))) |
| 196 |
|
| i = INT; "--*" -> |
| 197 |
|
let i = Big_int.big_int_of_string i in |
| 198 |
|
mk loc (Internal (Types.interval (Intervals.right i))) |
| 199 |
| i = char -> |
| i = char -> |
| 200 |
mk loc (Internal (Types.char (Chars.char_class i i))) |
mk loc (Internal (Types.char (Chars.char_class i i))) |
| 201 |
| i = char ; "--"; j = char -> |
| i = char ; "--"; j = char -> |