equal
deleted
inserted
replaced
44 |
44 |
45 fun build_module_namespace { module_alias, module_prefix, reserved } program = |
45 fun build_module_namespace { module_alias, module_prefix, reserved } program = |
46 let |
46 let |
47 fun alias_fragments name = case module_alias name |
47 fun alias_fragments name = case module_alias name |
48 of SOME name' => Long_Name.explode name' |
48 of SOME name' => Long_Name.explode name' |
49 | NONE => map (fn name => fst (yield_singleton Name.variants name reserved)) |
49 | NONE => map (fn name => fst (Name.variant name reserved)) (Long_Name.explode name); |
50 (Long_Name.explode name); |
|
51 val module_names = Graph.fold (insert (op =) o fst o dest_name o fst) program []; |
50 val module_names = Graph.fold (insert (op =) o fst o dest_name o fst) program []; |
52 in |
51 in |
53 fold (fn name => Symtab.update (name, Long_Name.explode module_prefix @ alias_fragments name)) |
52 fold (fn name => Symtab.update (name, Long_Name.explode module_prefix @ alias_fragments name)) |
54 module_names Symtab.empty |
53 module_names Symtab.empty |
55 end; |
54 end; |