tuned dest_lexicon;
authorwenzelm
Fri, 16 Jul 1999 22:25:07 +0200
changeset 7025 afbd8241797b
parent 7024 44bd3c094fd6
child 7026 69724548fad1
tuned dest_lexicon;
src/Pure/General/scan.ML
src/Pure/Syntax/syntax.ML
--- a/src/Pure/General/scan.ML	Fri Jul 16 22:24:42 1999 +0200
+++ b/src/Pure/General/scan.ML	Fri Jul 16 22:25:07 1999 +0200
@@ -60,7 +60,7 @@
   val single: ('a -> 'b * 'a) -> 'a -> 'b list * 'a
   val bulk: ('a -> 'b * 'a) -> 'a -> 'b list * 'a
   type lexicon
-  val dest_lexicon: lexicon -> string list list
+  val dest_lexicon: lexicon -> string list
   val make_lexicon: string list list -> lexicon
   val empty_lexicon: lexicon
   val extend_lexicon: lexicon -> string list list -> lexicon
@@ -240,11 +240,13 @@
 
 (* dest_lexicon *)
 
-fun dest_lexicon Empty = []
-  | dest_lexicon (Branch (_, [], lt, eq, gt)) =
-      dest_lexicon lt @ dest_lexicon eq @ dest_lexicon gt
-  | dest_lexicon (Branch (_, cs, lt, eq, gt)) =
-      dest_lexicon lt @ [cs] @ dest_lexicon eq @ dest_lexicon gt;
+fun dest_lex Empty = []
+  | dest_lex (Branch (_, [], lt, eq, gt)) =
+      dest_lex lt @ dest_lex eq @ dest_lex gt
+  | dest_lex (Branch (_, cs, lt, eq, gt)) =
+      dest_lex lt @ [cs] @ dest_lex eq @ dest_lex gt;
+
+val dest_lexicon = map implode o dest_lex;
 
 
 (* empty, extend, make, merge lexicons *)
@@ -265,14 +267,14 @@
 	      Branch (c, no_literal, Empty, add Empty cs, Empty)
 	  | add lex [] = lex;
       in add lex chrs end;
-  in foldl ext (lexicon, chrss \\ dest_lexicon lexicon) end;
+  in foldl ext (lexicon, chrss \\ dest_lex lexicon) end;
 
 val make_lexicon = extend_lexicon empty_lexicon;
 
 fun merge_lexicons lex1 lex2 =
   let
-    val chss1 = dest_lexicon lex1;
-    val chss2 = dest_lexicon lex2;
+    val chss1 = dest_lex lex1;
+    val chss2 = dest_lex lex2;
   in
     if chss2 subset chss1 then lex1
     else if chss1 subset chss2 then lex2
--- a/src/Pure/Syntax/syntax.ML	Fri Jul 16 22:24:42 1999 +0200
+++ b/src/Pure/Syntax/syntax.ML	Fri Jul 16 22:25:07 1999 +0200
@@ -281,7 +281,7 @@
     val {lexicon, logtypes, prmodes, gram, prtabs, ...} = tabs;
     val prmodes' = sort_strings (filter_out (equal "") prmodes);
   in
-    Pretty.writeln (pretty_strs_qs "lexicon:" (map implode (Scan.dest_lexicon lexicon)));
+    Pretty.writeln (pretty_strs_qs "lexicon:" (Scan.dest_lexicon lexicon));
     Pretty.writeln (Pretty.strs ("logtypes:" :: logtypes));
     Pretty.writeln (Pretty.big_list "prods:" (Parser.pretty_gram gram));
     Pretty.writeln (pretty_strs_qs "print modes:" prmodes')