Fix enum and struct field printing
This commit is contained in:
parent
c1fd18d525
commit
c47f713a0d
@ -192,10 +192,10 @@ instance Pretty Bind where
|
||||
pretty (Bind n t) = pretty n <+> ":" <+> pretty t
|
||||
|
||||
instance Pretty TLStruct where
|
||||
pretty (Struct n fields) = "struct" <+> pretty n <+> prettyBlock fields
|
||||
pretty (Struct n fields) = "struct" <+> pretty n <+> prettyFields fields
|
||||
|
||||
instance Pretty TLEnum where
|
||||
pretty (Enum n fields) = "enum" <+> pretty n <+> prettyBlock fields
|
||||
pretty (Enum n fields) = "enum" <+> pretty n <+> prettyFields fields
|
||||
|
||||
instance Pretty TLFunc where
|
||||
pretty (Func n args ret body) =
|
||||
@ -209,5 +209,8 @@ instance Pretty TL where
|
||||
instance Pretty Program where
|
||||
pretty (Program structs enums funcs) = vsep (map pretty structs) <> line <> vsep (map pretty enums) <> line <> vsep (map pretty funcs)
|
||||
|
||||
prettyFields :: (Pretty a) => [a] -> Doc ann
|
||||
prettyFields fields = lbrace <> line <> indent 4 (vsep (punctuate comma (map pretty fields))) <> line <> rbrace
|
||||
|
||||
prettyBlock :: (Pretty a) => [a] -> Doc ann
|
||||
prettyBlock stmts = lbrace <> line <> indent 4 (vsep (map pretty stmts)) <> line <> rbrace
|
||||
|
Loading…
x
Reference in New Issue
Block a user