David,

> On 7 Jan 2016, at 19:19, David Matthews <[email protected]> 
> wrote:
> 
> Rob,
> 
> On 07/01/2016 17:50, Rob Arthan wrote:
>> ... I can  roll my own implementation of it using
>> PolyML.addPrettyPrinter. Is that going to be an easy exercise?
> 
> The compatibility code for install_pp was removed with a commit on 19th 
> October.  See
> https://github.com/polyml/polyml/commit/075bda98965195f522cf1de02aaf9a6f23d0b050
> 
> It should give you an idea of what to do but it's very simple because there's 
> a close approximation between the old addString/beginBlock/break/endBlock and 
> PrettyString, PrettyBlock and PrettyBreak.  Essentially what it does is 
> create a stack of pending beginBlocks and then adds the breaks and strings to 
> the top of the stack, popping the stack when it finds an endBlock.
> 
> You'll have to convert each occurrence of install_pp individually because 
> addPrettyPrinter and the old install_pp are type-dependent functions rather 
> than polymorphic (like PolyML.print).

That's great, thanks. I am in business with Poly/ML 5.6 now.

You can actually package the conversion (of the argument you pass to install_pp 
into the argument you pass to addPrettyPrinter) as a polymorphic function, say 
called make_pp. So the conversion simply involves replacing calls of install_pp 
with calls of (addPrettyPrinter o make_pp).

Regards,

Rob.

_______________________________________________
polyml mailing list
[email protected]
http://lists.inf.ed.ac.uk/mailman/listinfo/polyml

Reply via email to