|
369 | 369 | ]
|
370 | 370 | end
|
371 | 371 |
|
372 |
| - fun clear_overloads slist f = let |
373 |
| - val tyg = type_grammar() |
374 |
| - val oldg = term_grammar() |
375 |
| - val _ = List.app temp_clear_overloads_on slist |
376 |
| - val _ = List.map hide slist |
377 |
| - val newg = term_grammar() |
| 372 | + fun modify_grammar unoverloads unabbrevs overloads abbrevs f = let |
| 373 | + val oldtyg = type_grammar() |
| 374 | + val oldtmg = term_grammar() |
| 375 | + val _ = List.app temp_clear_overloads_on unoverloads |
| 376 | + val _ = List.map hide unoverloads |
| 377 | + val _ = List.app temp_disable_tyabbrev_printing unabbrevs |
| 378 | + val _ = List.app temp_type_abbrev_pp abbrevs |
| 379 | + val _ = List.app temp_overload_on overloads |
| 380 | + val newtmg = term_grammar() |
| 381 | + val newtyg = type_grammar() |
378 | 382 | in
|
379 |
| - (fn x => (temp_set_grammars(tyg,newg); |
380 |
| - f x before temp_set_grammars(tyg,oldg))) |
381 |
| - end |
382 |
| - fun clear_abbrevs slist f = let |
383 |
| - val oldg = type_grammar() |
384 |
| - val tmg = term_grammar() |
385 |
| - val _ = List.app temp_disable_tyabbrev_printing slist |
386 |
| - val newg = type_grammar() |
387 |
| - in |
388 |
| - (fn x => (temp_set_grammars(newg,tmg); |
389 |
| - f x before temp_set_grammars(oldg,tmg))) |
390 |
| - end |
391 |
| - |
392 |
| - fun add_overloads slist f = let |
393 |
| - val tyg = type_grammar() |
394 |
| - val oldg = term_grammar() |
395 |
| - val _ = List.app temp_overload_on slist |
396 |
| - val newg = term_grammar() |
397 |
| - in |
398 |
| - (fn x => (temp_set_grammars(tyg,newg); |
399 |
| - f x before temp_set_grammars(tyg,oldg))) |
400 |
| - end |
401 |
| - fun add_abbrevs slist f = let |
402 |
| - val oldg = type_grammar() |
403 |
| - val tmg = term_grammar() |
404 |
| - val _ = List.app temp_type_abbrev_pp slist |
405 |
| - val newg = type_grammar() |
406 |
| - in |
407 |
| - (fn x => (temp_set_grammars(newg,tmg); |
408 |
| - f x before temp_set_grammars(oldg,tmg))) |
| 383 | + (fn x => (temp_set_grammars(newtyg,newtmg); |
| 384 | + f x before temp_set_grammars(oldtyg,oldtmg))) |
409 | 385 | end
|
410 | 386 |
|
411 | 387 | fun optprintermod f =
|
|
425 | 401 | |> (if OptSet.has Merge opts then
|
426 | 402 | trace ("pp_avoids_symbol_merges", 1)
|
427 | 403 | else (fn f => f))
|
428 |
| - |> (case optset_unoverloads opts of |
429 |
| - [] => (fn f => f) |
430 |
| - | slist => clear_overloads slist) |
431 |
| - |> (case optset_overloads opts of |
432 |
| - [] => (fn f => f) |
433 |
| - | olist => add_overloads olist) |
434 |
| - |> (case optset_unabbrevs opts of |
435 |
| - [] => (fn f => f) |
436 |
| - | slist => clear_abbrevs slist) |
437 |
| - |> (case optset_abbrevs opts of |
438 |
| - [] => (fn f => f) |
439 |
| - | alist => add_abbrevs alist) |
| 404 | + |> (modify_grammar (optset_unoverloads opts) (optset_unabbrevs opts) |
| 405 | + (optset_overloads opts) (optset_abbrevs opts)) |
440 | 406 | |> optset_traces opts
|
441 | 407 |
|
442 | 408 | val overrides = let
|
|
450 | 416 | fun stdtermprint t = optprintermod (raw_pp_term_as_tex overrides) t
|
451 | 417 |
|
452 | 418 | fun opttyprintermod f =
|
453 |
| - f |> (case optset_unabbrevs opts of |
454 |
| - [] => (fn f => f) |
455 |
| - | slist => clear_abbrevs slist) |
456 |
| - |> (case optset_abbrevs opts of |
457 |
| - [] => (fn f => f) |
458 |
| - | alist => add_abbrevs alist) |
| 419 | + f |> (modify_grammar (optset_unoverloads opts) (optset_unabbrevs opts) |
| 420 | + (optset_overloads opts) (optset_abbrevs opts)) |
459 | 421 |
|
460 | 422 | fun stdtypeprint t = opttyprintermod (raw_pp_type_as_tex overrides) t
|
461 | 423 |
|
|
0 commit comments