summaryrefslogtreecommitdiff
path: root/parsing
diff options
context:
space:
mode:
Diffstat (limited to 'parsing')
-rw-r--r--parsing/parser.mly8
-rw-r--r--parsing/parsetree.mli4
2 files changed, 8 insertions, 4 deletions
diff --git a/parsing/parser.mly b/parsing/parser.mly
index 87a5659611..d3eb5f5b73 100644
--- a/parsing/parser.mly
+++ b/parsing/parser.mly
@@ -40,6 +40,8 @@ let mkclass d =
{ pcl_desc = d; pcl_loc = symbol_rloc() }
let mkcty d =
{ pcty_desc = d; pcty_loc = symbol_rloc() }
+let mkval ty p =
+ {pval_type = ty; pval_prim = p; pval_loc = symbol_rloc()}
let reloc_pat x = { x with ppat_loc = symbol_rloc () };;
let reloc_exp x = { x with pexp_loc = symbol_rloc () };;
@@ -470,7 +472,7 @@ structure_item:
[{ppat_desc = Ppat_any}, exp] -> mkstr(Pstr_eval exp)
| _ -> mkstr(Pstr_value($2, List.rev $3)) }
| EXTERNAL val_ident COLON core_type EQUAL primitive_declaration
- { mkstr(Pstr_primitive($2, {pval_type = $4; pval_prim = $6})) }
+ { mkstr(Pstr_primitive($2, mkval $4 $6)) }
| TYPE type_declarations
{ mkstr(Pstr_type(List.rev $2)) }
| EXCEPTION UIDENT constructor_arguments
@@ -536,9 +538,9 @@ signature:
;
signature_item:
VAL val_ident COLON core_type
- { mksig(Psig_value($2, {pval_type = $4; pval_prim = []})) }
+ { mksig(Psig_value($2, mkval $4 [])) }
| EXTERNAL val_ident COLON core_type EQUAL primitive_declaration
- { mksig(Psig_value($2, {pval_type = $4; pval_prim = $6})) }
+ { mksig(Psig_value($2, mkval $4 $6)) }
| TYPE type_declarations
{ mksig(Psig_type(List.rev $2)) }
| EXCEPTION UIDENT constructor_arguments
diff --git a/parsing/parsetree.mli b/parsing/parsetree.mli
index 05f92bd037..a458b66a65 100644
--- a/parsing/parsetree.mli
+++ b/parsing/parsetree.mli
@@ -123,7 +123,9 @@ and expression_desc =
and value_description =
{ pval_type: core_type;
- pval_prim: string list }
+ pval_prim: string list;
+ pval_loc: Location.t;
+ }
(* Type declarations *)