我一直在读关于解释器/编译器是如何工作的,而且我感到困惑的一个领域是AST和CST之间的区别。 我的理解是,parsing器创build一个CST,把它交给语义分析器,把它变成一个AST。 不过,我的理解是,语义分析器只是确保遵循规则。 我真的不明白为什么它会做任何改变,使其抽象而不是具体。 有什么我错过了关于语义分析器的东西,还是AST和CST之间的区别有些人造?