equal
deleted
inserted
replaced
435 val Syntax (ggr0, tabs0 as Tabs {roots = roots0, ...}) = syn; |
435 val Syntax (ggr0, tabs0 as Tabs {roots = roots0, ...}) = syn; |
436 |
436 |
437 val ext1 = ext_of_sext ((distinct roots) \\ roots0) xconsts read_ty sext; |
437 val ext1 = ext_of_sext ((distinct roots) \\ roots0) xconsts read_ty sext; |
438 |
438 |
439 val (syn1 as Syntax (ggr1, tabs1)) = |
439 val (syn1 as Syntax (ggr1, tabs1)) = |
440 (case mk_xgram ext1 of |
440 (case ext1 of |
441 xg1 as XGram {prods = [], ...} => |
441 Ext {roots = [], mfix = [], ...} => |
442 Syntax (ref (ExtGG (ggr0, ext1)), extend_tables tabs0 xg1) |
442 Syntax (ref (ExtGG (ggr0, ext1)), extend_tables tabs0 (mk_xgram ext1)) |
443 | _ => mk_syntax (ref (ExtGG (ggr0, ext1)))); |
443 | _ => mk_syntax (ref (ExtGG (ggr0, ext1)))); |
444 |
444 |
445 val (parse_rules, print_rules) = read_xrules syn1 (xrules_of sext); |
445 val (parse_rules, print_rules) = read_xrules syn1 (xrules_of sext); |
446 val ext2 = ExtRules {parse_rules = parse_rules, print_rules = print_rules}; |
446 val ext2 = ExtRules {parse_rules = parse_rules, print_rules = print_rules}; |
447 in |
447 in |