src/Pure/Syntax/parser.ML
changeset 78006 2587b492664a
parent 78005 006cb47a2700
child 78007 91fc15d9dbdf
equal deleted inserted replaced
78005:006cb47a2700 78006:2587b492664a
    34 type tags = nt Symtab.table;
    34 type tags = nt Symtab.table;
    35 val tags_empty: tags = Symtab.empty;
    35 val tags_empty: tags = Symtab.empty;
    36 fun tags_content (tags: tags) = sort_by #1 (Symtab.dest tags);
    36 fun tags_content (tags: tags) = sort_by #1 (Symtab.dest tags);
    37 fun tags_lookup (tags: tags) = Symtab.lookup tags;
    37 fun tags_lookup (tags: tags) = Symtab.lookup tags;
    38 fun tags_insert tag (tags: tags) = Symtab.update_new tag tags;
    38 fun tags_insert tag (tags: tags) = Symtab.update_new tag tags;
    39 fun tags_name (tags: tags) = the o Inttab.lookup (Inttab.make (map swap (Symtab.dest tags)));
    39 fun tags_name (tags: tags) =
       
    40   the o Inttab.lookup (Inttab.build (Symtab.fold (Inttab.update_new o swap) tags));
    40 
    41 
    41 type nts = Intset.T;
    42 type nts = Intset.T;
    42 val nts_empty: nts = Intset.empty;
    43 val nts_empty: nts = Intset.empty;
    43 val nts_merge: nts * nts -> nts = Intset.merge;
    44 val nts_merge: nts * nts -> nts = Intset.merge;
    44 fun nts_insert nt : nts -> nts = Intset.insert nt;
    45 fun nts_insert nt : nts -> nts = Intset.insert nt;