added unlocalize_mfix;
authorwenzelm
Wed Jan 04 00:52:49 2006 +0100 (2006-01-04)
changeset 1856620dd2f7dca4b
parent 18565 818a24371de9
child 18567 ecdd71518f33
added unlocalize_mfix;
src/Pure/Syntax/syn_ext.ML
     1.1 --- a/src/Pure/Syntax/syn_ext.ML	Wed Jan 04 00:52:48 2006 +0100
     1.2 +++ b/src/Pure/Syntax/syn_ext.ML	Wed Jan 04 00:52:49 2006 +0100
     1.3 @@ -51,6 +51,7 @@
     1.4        token_translation: (string * string * (string -> string * real)) list}
     1.5    val mfix_args: string -> int
     1.6    val escape_mfix: string -> string
     1.7 +  val unlocalize_mfix: string -> string
     1.8    val syn_ext': bool -> (string -> bool) -> mfix list ->
     1.9      string list -> (string * ((theory -> Ast.ast list -> Ast.ast) * stamp)) list *
    1.10      (string * ((theory -> term list -> term) * stamp)) list *
    1.11 @@ -232,6 +233,14 @@
    1.12    val escape_mfix = implode o map (fn s => if is_meta s then "'" ^ s else s) o Symbol.explode;
    1.13  end;
    1.14  
    1.15 +val unlocalize_mfix =
    1.16 +  let
    1.17 +    fun unloc ("'" :: "\\<^loc>" :: ss) = unloc ss
    1.18 +      | unloc ("\\<^loc>" :: ss) = unloc ss
    1.19 +      | unloc (s :: ss) = s :: unloc ss
    1.20 +      | unloc [] = [];
    1.21 +  in Symbol.explode #> unloc #> implode end;  
    1.22 +
    1.23  
    1.24  (* mfix_to_xprod *)
    1.25