src/Tools/Code/code_namespace.ML
changeset 40629 f276d46d4ec0
parent 39208 fc1e02735438
child 40630 3b5c31e55540
equal deleted inserted replaced
40628:1b1484c3b163 40629:f276d46d4ec0
   118             Long_Name.append (the (AList.lookup (op =) import_tab name))
   118             Long_Name.append (the (AList.lookup (op =) import_tab name))
   119               (base_deresolver name))) imported_names
   119               (base_deresolver name))) imported_names
   120       end;
   120       end;
   121     val name_tabs = AList.make (uncurry classify_names o Graph.get_node flat_program)
   121     val name_tabs = AList.make (uncurry classify_names o Graph.get_node flat_program)
   122       (Graph.keys flat_program);
   122       (Graph.keys flat_program);
   123     val deresolver_tab = Symtab.empty
   123     val deresolver_tab = fold Symtab.update name_tabs Symtab.empty;
   124       |> fold (fn (module_name, name_tab) => Symtab.update (module_name, name_tab)) name_tabs;
       
   125     fun deresolver module_name name =
   124     fun deresolver module_name name =
   126       the (Symtab.lookup (the (Symtab.lookup deresolver_tab module_name)) name)
   125       the (Symtab.lookup (the (Symtab.lookup deresolver_tab module_name)) name)
   127       handle Option => error ("Unknown statement name: " ^ labelled_name name);
   126       handle Option => error ("Unknown statement name: " ^ labelled_name name);
   128 
   127 
   129   in { deresolver = deresolver, flat_program = flat_program } end;
   128   in { deresolver = deresolver, flat_program = flat_program } end;