Fix enum and struct field printing

This commit is contained in:
Ethan Girouard 2024-12-11 17:34:15 -05:00
parent c1fd18d525
commit c47f713a0d
Signed by: eta357
GPG Key ID: 7BCDC36DFD11C146

View File

@ -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