【发布时间】:2021-02-15 00:57:44
【问题描述】:
我正在尝试在我的解析器中实现增量运算符。 但是,我对是否应将增量运算符视为语句或表达式感到困惑。将其实现为语句是有意义的,因为可以将其用作独立语句,例如:
i++;
不过它也可以用在如下表达式中:
int 2 = i++;
这对我的 AST 有影响,因为我目前有两种类型的节点,一个表达式节点和一个语句节点,其他节点可以接受它们作为它们的子节点。表达式节点在通过解释器的代码生成部分运行时将始终具有返回值。
关于 AST,增量运算符在其他语言中是如何分类的?它们是否最好地表示为表达式或语句?
【问题讨论】:
标签: compiler-construction abstract-syntax-tree