src/Pure/General/name_space.ML
changeset 22057 d7c91b2f5a9e
parent 21962 279b129498b6
child 23086 12320f6e2523
equal deleted inserted replaced
22056:858016d00449 22057:d7c91b2f5a9e
    26   val explode: string -> string list
    26   val explode: string -> string list
    27   val append: string -> string -> string
    27   val append: string -> string -> string
    28   val qualified: string -> string -> string
    28   val qualified: string -> string -> string
    29   val base: string -> string
    29   val base: string -> string
    30   val qualifier: string -> string
    30   val qualifier: string -> string
    31   val split: string -> string * string
       
    32   val map_base: (string -> string) -> string -> string
    31   val map_base: (string -> string) -> string -> string
    33   val suffixes_prefixes: 'a list -> 'a list list
    32   val suffixes_prefixes: 'a list -> 'a list list
    34   val suffixes_prefixes_split: int -> int -> 'a list -> 'a list list
    33   val suffixes_prefixes_split: int -> int -> 'a list -> 'a list list
    35   val accesses: string -> string list
    34   val accesses: string -> string list
    36   val accesses': string -> string list
    35   val accesses': string -> string list
    86   | base name = List.last (explode_name name);
    85   | base name = List.last (explode_name name);
    87 
    86 
    88 fun qualifier "" = ""
    87 fun qualifier "" = ""
    89   | qualifier name = implode_name (#1 (split_last (explode_name name)));
    88   | qualifier name = implode_name (#1 (split_last (explode_name name)));
    90 
    89 
    91 fun split "" = ("", "")
       
    92   | split name = (apfst implode_name o split_last o explode_name) name;
       
    93 
       
    94 fun map_base _ "" = ""
    90 fun map_base _ "" = ""
    95   | map_base f name =
    91   | map_base f name =
    96       let val names = explode_name name
    92       let val names = explode_name name
    97       in implode_name (nth_map (length names - 1) f names) end;
    93       in implode_name (nth_map (length names - 1) f names) end;
    98 
    94