Commit 0a9b1362 authored by chevalier@alum.wellesley.edu's avatar chevalier@alum.wellesley.edu
Browse files

Print out rational literals correctly in External Core

The External Core printer was printing out rational literals of the
form: 
2.0e-2
when the External Core grammar doesn't allow this. (This
bug has apparently been there since the beginning...)

It's now printing rationals in the same form that (show (r::Rational))
does. This requires a parser change as well (soon to come.)
parent 81e51a26
......@@ -190,7 +190,9 @@ palt (Adefault e) =
plit :: Lit -> Doc
plit (Lint i t) = parens (integer i <> text "::" <> pty t)
plit (Lrational r t) = parens (rational r <> text "::" <> pty t) -- might be better to print as two integers
-- we use (text (show r)) because "(rational r)" was printing out things
-- like "2.0e-2" (which isn't External Core)
plit (Lrational r t) = parens (text (show r) <> text "::" <> pty t)
plit (Lchar c t) = parens (text ("\'" ++ escape [c] ++ "\'") <> text "::" <> pty t)
plit (Lstring s t) = parens (pstring s <> text "::" <> pty t)
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment