]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/ocaml/cic_disambiguation/disambiguatePp.ml
ocaml 3.09 transition
[helm.git] / helm / ocaml / cic_disambiguation / disambiguatePp.ml
index d0b6447c5a5a66db35d8df5248f9538925a23020..c3a48e409e885a767b4b6441d942ebff86baeab5 100644 (file)
@@ -26,8 +26,9 @@
 open DisambiguateTypes
 
 let parse_environment str =
- let stream = Stream.of_string str in
+ let stream = Ulexing.from_utf8_string str in
  let environment = ref Environment.empty in
+ let multiple_environment = ref Environment.empty in
   try
     while true do
      let alias =
@@ -49,31 +50,30 @@ let parse_environment str =
           Num instance,
           DisambiguateChoices.lookup_num_by_dsc desc
      in
-      environment := Environment.cons key value !environment;
+      environment := Environment.add key value !environment;
+      multiple_environment := Environment.cons key value !multiple_environment;
     done;
     assert false
   with End_of_file ->
-   !environment
+   !environment, !multiple_environment
+
+let alias_of_domain_and_codomain_items domain_item (dsc,_) =
+ match domain_item with
+    Id id -> GrafiteAst.Ident_alias (id, dsc)
+  | Symbol (symb, i) -> GrafiteAst.Symbol_alias (symb, i, dsc)
+  | Num i -> GrafiteAst.Number_alias (i, dsc)
 
 let aliases_of_environment env =
   Environment.fold
-    (fun domain_item codomain_items acc ->
-      List.fold_left
-        (fun strings (dsc, _) ->
-          let s =
-            match domain_item with
-            | Id id -> GrafiteAst.Ident_alias (id, dsc)
-            | Symbol (symb, i) -> GrafiteAst.Symbol_alias (symb, i, dsc)
-            | Num i -> GrafiteAst.Number_alias (i, dsc)
-          in
-          s :: strings)
-        acc codomain_items)
-    env []
+    (fun domain_item codomain_item acc ->
+      alias_of_domain_and_codomain_items domain_item codomain_item::acc
+    ) env []
 
-let commands_of_environment env =
-  List.map
-    (fun alias -> GrafiteAst.Alias (dummy_floc, alias))
-    (aliases_of_environment env)
+let aliases_of_domain_and_codomain_items_list l =
+  List.fold_left
+    (fun acc (domain_item,codomain_item) ->
+      alias_of_domain_and_codomain_items domain_item codomain_item::acc
+    ) [] l
 
 let pp_environment env =
   let aliases = aliases_of_environment env in
@@ -81,4 +81,3 @@ let pp_environment env =
     List.map (fun alias -> GrafiteAstPp.pp_alias alias ^ ".") aliases
   in
   String.concat "\n" (List.sort compare strings)
-