summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorkrasimir <krasimir@chalmers.se>2009-02-01 12:23:58 +0000
committerkrasimir <krasimir@chalmers.se>2009-02-01 12:23:58 +0000
commit95e8142e1a30a4836548dcffb9868848d2b71559 (patch)
tree9e6a8d85ed13e9c1fc1ac63780e7c58a2f8d5241 /src
parentdb9a1acaebb18599bb5fbd933ff4b13bccb8c4db (diff)
small fixes in GF.Grammar.Printer
Diffstat (limited to 'src')
-rw-r--r--src/GF/Grammar/Printer.hs20
1 files changed, 11 insertions, 9 deletions
diff --git a/src/GF/Grammar/Printer.hs b/src/GF/Grammar/Printer.hs
index ef4508717..44687ebeb 100644
--- a/src/GF/Grammar/Printer.hs
+++ b/src/GF/Grammar/Printer.hs
@@ -8,7 +8,8 @@
-----------------------------------------------------------------------------
module GF.Grammar.Printer
- ( ppModule
+ ( ppIdent
+ , ppModule
, ppJudgement
, ppTerm
, ppPatt
@@ -26,20 +27,21 @@ import Data.List (intersperse)
ppModule :: SourceModule -> Doc
ppModule (mn, ModInfo mtype mstat opts exts with opens _ jments _) =
- (let defs = tree2list jments
- in if null defs
- then hdr
- else hdr <+> lbrace $$ nest 2 (ppOptions opts $$ vcat (map ppJudgement defs)) $$ rbrace)
+ hdr $$ nest 2 (ppOptions opts $$ vcat (map ppJudgement defs)) $$ ftr
where
+ defs = tree2list jments
+
hdr = complModDoc <+> modTypeDoc <+> equals <+>
hsep (intersperse (text "**") $
filter (not . isEmpty) $ [ commaPunct ppExtends exts
, maybe empty ppWith with
, if null opens
- then empty
- else text "open" <+> commaPunct ppOpenSpec opens <+> text "in"
+ then lbrace
+ else text "open" <+> commaPunct ppOpenSpec opens <+> text "in" <+> lbrace
])
+ ftr = rbrace
+
complModDoc =
case mstat of
MSComplete -> empty
@@ -169,8 +171,8 @@ ppTerm d (Meta _) = char '?'
ppTerm d (Empty) = text "[]"
ppTerm d (EData) = text "data"
ppTerm d (R xs) = braces (fsep (punctuate semi [ppLabel l <+>
- case mb_t of {Just t -> colon <+> ppTerm 0 t; Nothing -> empty} <+>
- equals <+> ppTerm 0 e | (l,(mb_t,e)) <- xs]))
+ fsep [case mb_t of {Just t -> colon <+> ppTerm 0 t; Nothing -> empty},
+ equals <+> ppTerm 0 e] | (l,(mb_t,e)) <- xs]))
ppTerm d (RecType xs)= braces (fsep (punctuate semi [ppLabel l <+> colon <+> ppTerm 0 t | (l,t) <- xs]))
ppTerm d (Typed e t) = char '<' <> ppTerm 0 e <+> colon <+> ppTerm 0 t <> char '>'