【发布时间】:2011-04-22 04:45:26
【问题描述】:
我想使用 Haskell Pretty 包打印出一个 AST。
一切正常,但嵌套结构不能正确缩进。
我会这样做:
draw :: Pretty a => a -> String
draw = render.pretty
pretty (Letin d c ) = text "let" <+> text (draw d) $$
nest 4 (text "in" <+> text (draw c))
但是结果是这样的:
let Const x := 2
in let Var y := Int
in y = 3; let Var z := Int
in z = 0; z = z + 1
似乎嵌套级别不是继承的,因此所有嵌套级别都是绝对的 +4 边距,而不是在每个级别连续缩进,即相对于它们的父级,当前缩进级别 +4。
【问题讨论】:
标签: haskell pretty-print