61 val is_logtype = Sign.is_logtype thy; |
61 val is_logtype = Sign.is_logtype thy; |
62 fun const_gram ((true, m), decls) = Syntax.update_const_gram is_logtype m decls |
62 fun const_gram ((true, m), decls) = Syntax.update_const_gram is_logtype m decls |
63 | const_gram ((false, m), decls) = Syntax.remove_const_gram is_logtype m decls; |
63 | const_gram ((false, m), decls) = Syntax.remove_const_gram is_logtype m decls; |
64 val (atrs, trs, trs', atrs') = Syntax.struct_trfuns structs; |
64 val (atrs, trs, trs', atrs') = Syntax.struct_trfuns structs; |
65 val local_syntax = thy_syntax |
65 val local_syntax = thy_syntax |
66 |> Syntax.extend_trfuns |
66 |> Syntax.update_trfuns |
67 (map Syntax.mk_trfun atrs, map Syntax.mk_trfun trs, |
67 (map Syntax.mk_trfun atrs, map Syntax.mk_trfun trs, |
68 map Syntax.mk_trfun trs', map Syntax.mk_trfun atrs') |
68 map Syntax.mk_trfun trs', map Syntax.mk_trfun atrs') |
69 |> fold const_gram (AList.coalesce (op =) (rev (map snd mixfixes))); |
69 |> fold const_gram (AList.coalesce (op =) (rev (map snd mixfixes))); |
70 in make_syntax (thy_syntax, local_syntax, mode, mixfixes, idents) end; |
70 in make_syntax (thy_syntax, local_syntax, mode, mixfixes, idents) end; |
71 |
71 |