diff options
author | Damien Doligez <damien.doligez-inria.fr> | 2009-12-03 16:05:49 +0000 |
---|---|---|
committer | Damien Doligez <damien.doligez-inria.fr> | 2009-12-03 16:05:49 +0000 |
commit | 33c9311355e9f1343fb683d535587374d35f1d52 (patch) | |
tree | a784c31909916f02ef1a6c3925b0829b3eb959fc | |
parent | f2734e23cd78d36f1bedc9bbb3791e28e6cf5805 (diff) |
update addlabels for new language constructs
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@9439 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
-rw-r--r-- | tools/Makefile.shared | 4 | ||||
-rw-r--r-- | tools/addlabels.ml | 17 |
2 files changed, 11 insertions, 10 deletions
diff --git a/tools/Makefile.shared b/tools/Makefile.shared index aa8aba5f7..96e09e1f9 100644 --- a/tools/Makefile.shared +++ b/tools/Makefile.shared @@ -166,9 +166,9 @@ ADDLABELS_IMPORTS=misc.cmo config.cmo clflags.cmo terminfo.cmo \ linenum.cmo warnings.cmo location.cmo longident.cmo \ syntaxerr.cmo parser.cmo lexer.cmo parse.cmo -addlabels: addlabels.ml +addlabels: addlabels.cmo $(CAMLC) $(LINKFLAGS) -w sl -o addlabels \ - $(ADDLABELS_IMPORTS) addlabels.ml + $(ADDLABELS_IMPORTS) addlabels.cmo install:: cp addlabels $(LIBDIR) diff --git a/tools/addlabels.ml b/tools/addlabels.ml index 4eda3b0c6..270a4d610 100644 --- a/tools/addlabels.ml +++ b/tools/addlabels.ml @@ -258,7 +258,9 @@ let rec add_labels_expr ~text ~values ~classes expr = | Pexp_letmodule (_, _, e) | Pexp_assert e | Pexp_lazy e - | Pexp_poly (e, _) -> + | Pexp_poly (e, _) + | Pexp_newtype (_, e) + | Pexp_open (_, e) -> add_labels_rec e | Pexp_record (lst, opt) -> List.iter lst ~f:(fun (_,e) -> add_labels_rec e); @@ -277,7 +279,7 @@ let rec add_labels_expr ~text ~values ~classes expr = | Pexp_override lst -> List.iter lst ~f:(fun (_,e) -> add_labels_rec e) | Pexp_ident _ | Pexp_constant _ | Pexp_construct _ | Pexp_variant _ - | Pexp_new _ | Pexp_assertfalse | Pexp_object _ -> + | Pexp_new _ | Pexp_assertfalse | Pexp_object _ | Pexp_pack _ -> () let rec add_labels_class ~text ~classes ~values ~methods cl = @@ -292,7 +294,7 @@ let rec add_labels_class ~text ~classes ~values ~methods cl = ~init:(SMap.add s ["<object>"] values) ~f:(fun m (k,l) -> SMap.add (s^"#"^k) l m) in - List.fold_left l ~init:values ~f: + ignore (List.fold_left l ~init:values ~f: begin fun values -> function | Pcf_val (s, _, e, _) -> add_labels_expr ~text ~classes ~values e; @@ -310,8 +312,7 @@ let rec add_labels_class ~text ~classes ~values ~methods cl = values | Pcf_inher _ | Pcf_valvirt _ | Pcf_virt _ | Pcf_cstr _ -> values | Pcf_let _ -> values (* not in the grammar *) - end; - () + end) | Pcl_fun (_, opt, pat, cl) -> begin match opt with None -> () | Some e -> add_labels_expr ~text ~classes ~values e @@ -319,7 +320,7 @@ let rec add_labels_class ~text ~classes ~values ~methods cl = let values = SMap.removes (pattern_vars pat) values in add_labels_class ~text ~classes ~values ~methods cl | Pcl_apply (cl, args) -> - List.map args ~f:(fun (_,e) -> add_labels_expr ~text ~classes ~values e); + List.iter args ~f:(fun (_,e) -> add_labels_expr ~text ~classes ~values e); add_labels_class ~text ~classes ~values ~methods cl | Pcl_let (recp, lst, cl) -> let vars = List.concat (List.map lst ~f:(fun (p,_) -> pattern_vars p)) in @@ -352,7 +353,7 @@ let add_labels ~intf ~impl ~file = end in let text = input_file file in - List.fold_right impl ~init:(values, classes) ~f: + ignore (List.fold_right impl ~init:(values, classes) ~f: begin fun item (values, classes as acc) -> match item.pstr_desc with Pstr_value (recp, l) -> @@ -405,7 +406,7 @@ let add_labels ~intf ~impl ~file = (values, SMap.removes names classes) | _ -> acc - end; + end); if !insertions <> [] then begin let backup = file ^ ".bak" in if Sys.file_exists backup then Sys.remove file |