Chaddaï Fouché a écrit :
2008/9/16 Mauricio <[EMAIL PROTECTED]>:
Hi,

I would like to write a Haskell pretty-printer,
using standard libraries for that. How can I
check if the original and the pretty-printed
versions are the same? For instance, is there
a file generated by GHC at the compilation
pipe that is always guaranteed to have the
same MD5 hash when it comes from equivalent
source?

There is not, though I have a suggestion :
Am I correct in assuming that you mean "equivalent source" in the
sense that only the formatting (and eventually {;} as a layout format
consequence) differs ?

Exactly! And with comments removed, since the last
time I checked Language.Haskell.* used not to preserve
that.


Then the sequence of tokens from the source ought to do the trick as
long as you delete location information (map unLoc) and transform
ITvocurly ("virtual" braces for layout induced blocks) into ITocurly
(real braces for no-layout blocks) (and same for ITvccurly) (it's just
another map). If only the formatting differs, those two should be
identical.

Good idea. I think that's all that I need. I can write a
hash function that filters and transforms like that.

Thanks,
Maurício

_______________________________________________
Haskell-Cafe mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to