equal
deleted
inserted
replaced
533 fun the_decl (_, types) = fst o the o Symtab.lookup types; |
533 fun the_decl (_, types) = fst o the o Symtab.lookup types; |
534 |
534 |
535 fun map_types f = map_tsig (fn (classes, default, types) => |
535 fun map_types f = map_tsig (fn (classes, default, types) => |
536 let |
536 let |
537 val (space', tab') = f types; |
537 val (space', tab') = f types; |
538 val _ = assert (NameSpace.intern space' "dummy" = "dummy") "Illegal declaration of dummy type"; |
538 val _ = NameSpace.intern space' "dummy" = "dummy" orelse |
|
539 error "Illegal declaration of dummy type"; |
539 in (classes, default, (space', tab')) end); |
540 in (classes, default, (space', tab')) end); |
540 |
541 |
541 fun syntactic types (Type (c, Ts)) = |
542 fun syntactic types (Type (c, Ts)) = |
542 (case Symtab.lookup types c of SOME (Nonterminal, _) => true | _ => false) |
543 (case Symtab.lookup types c of SOME (Nonterminal, _) => true | _ => false) |
543 orelse exists (syntactic types) Ts |
544 orelse exists (syntactic types) Ts |