equal
deleted
inserted
replaced
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)]; |