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
|
pretty (Bind n t) = pretty n <+> ":" <+> pretty t
|
||||||
|
|
||||||
instance Pretty TLStruct where
|
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
|
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
|
instance Pretty TLFunc where
|
||||||
pretty (Func n args ret body) =
|
pretty (Func n args ret body) =
|
||||||
@ -209,5 +209,8 @@ instance Pretty TL where
|
|||||||
instance Pretty Program where
|
instance Pretty Program where
|
||||||
pretty (Program structs enums funcs) = vsep (map pretty structs) <> line <> vsep (map pretty enums) <> line <> vsep (map pretty funcs)
|
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 :: (Pretty a) => [a] -> Doc ann
|
||||||
prettyBlock stmts = lbrace <> line <> indent 4 (vsep (map pretty stmts)) <> line <> rbrace
|
prettyBlock stmts = lbrace <> line <> indent 4 (vsep (map pretty stmts)) <> line <> rbrace
|
||||||
|
Loading…
x
Reference in New Issue
Block a user