【发布时间】:2018-01-01 22:33:07
【问题描述】:
我们如何在 yacc 中实现 if else ?
我试过了
|IF log THEN AffectationI ELSE AffectationI {if ($2) $$=$4; else $$=$6;}
但是 $4 和 $6 是同时执行的
知道
AffectationI等于 Var=3
【问题讨论】:
-
栈上对应于
$4(例如)的值是在减少第一个AffectationI时创建的(这早于第二个减少)。如果您不希望这种情况发生,您需要重新考虑您的语义操作。可能您想构建一个解析树,而不是随时评估。 -
知道怎么做吗?因为我们落后了,我们没有研究语义分析
标签: compilation bison yacc compiler-construction