标签: compiler-construction abstract-syntax-tree parse-tree concrete-syntax-tree
我知道使用 CST 打印漂亮的代码相当简单,因为有关语法的信息存储在节点中。
但是,当转换为 AST 时,源代码的大部分初始结构会因脱糖和其他转换而丢失。因此,既然 AST 已经经历了这些主要的翻译,那么它如何能漂亮地打印源代码呢?它是否包含对用于生成它的 AST 的引用(以及完美再现源代码所需的语法/结构)?