src/Pure/Syntax/syntax.ML
changeset 15574 b1d1b5bfc464
parent 15570 8d8c70b41bab
child 15755 50ac97ebe7d8
equal deleted inserted replaced
15573:cf53c2dcf440 15574:b1d1b5bfc464
    99 
    99 
   100 
   100 
   101 (* print (ast) translations *)
   101 (* print (ast) translations *)
   102 
   102 
   103 fun lookup_tr' tab c = map fst (Symtab.lookup_multi (tab, c));
   103 fun lookup_tr' tab c = map fst (Symtab.lookup_multi (tab, c));
   104 fun extend_tr'tab tab trfuns = Library.foldr Symtab.update_multi (map mk_trfun trfuns, tab);
   104 fun extend_tr'tab tab trfuns = foldr Symtab.update_multi tab (map mk_trfun trfuns);
   105 fun merge_tr'tabs tab1 tab2 = Symtab.merge_multi' eq_trfuns (tab1, tab2);
   105 fun merge_tr'tabs tab1 tab2 = Symtab.merge_multi' eq_trfuns (tab1, tab2);
   106 
   106 
   107 
   107 
   108 
   108 
   109 (** tables of token translation functions **)
   109 (** tables of token translation functions **)
   152 
   152 
   153 
   153 
   154 (* empty, extend, merge ruletabs *)
   154 (* empty, extend, merge ruletabs *)
   155 
   155 
   156 fun extend_ruletab tab rules =
   156 fun extend_ruletab tab rules =
   157   Library.foldr Symtab.update_multi (map (fn r => (Ast.head_of_rule r, r)) rules, tab);
   157   foldr Symtab.update_multi tab (map (fn r => (Ast.head_of_rule r, r)) rules);
   158 
   158 
   159 fun merge_ruletabs tab1 tab2 = Symtab.merge_multi' (op =) (tab1, tab2);
   159 fun merge_ruletabs tab1 tab2 = Symtab.merge_multi' (op =) (tab1, tab2);
   160 
   160 
   161 
   161 
   162 
   162