src/Pure/General/path.ML
changeset 6460 cb8c85435228
parent 6319 80173cb8691c
child 7714 e6aa4fca983e
equal deleted inserted replaced
6459:1d13a86bfa6c 6460:cb8c85435228
     8 signature PATH =
     8 signature PATH =
     9 sig
     9 sig
    10   datatype elem = Root | Parent | Basic of string | Variable of string
    10   datatype elem = Root | Parent | Basic of string | Variable of string
    11   eqtype T
    11   eqtype T
    12   val rep: T -> elem list
    12   val rep: T -> elem list
       
    13   val is_current: T -> bool
    13   val current: T
    14   val current: T
    14   val root: T
    15   val root: T
    15   val parent: T
    16   val parent: T
    16   val basic: string -> T
    17   val basic: string -> T
    17   val variable: string -> T
    18   val variable: string -> T
    56 (* type path *)
    57 (* type path *)
    57 
    58 
    58 datatype T = Path of elem list;
    59 datatype T = Path of elem list;
    59 
    60 
    60 fun rep (Path xs) = xs;
    61 fun rep (Path xs) = xs;
       
    62 
       
    63 fun is_current (Path []) = true
       
    64   | is_current _ = false;
    61 
    65 
    62 val current = Path [];
    66 val current = Path [];
    63 val root = Path [Root];
    67 val root = Path [Root];
    64 val parent = Path [Parent];
    68 val parent = Path [Parent];
    65 fun basic s = Path [basic_elem (explode s)];
    69 fun basic s = Path [basic_elem (explode s)];