【发布时间】:2016-03-16 00:04:01
【问题描述】:
我试图通过定义非关联优先级来强制执行一些解析错误。 这是我的语法文件的一部分:
Comparison :
Value ComparisonOp Value
{
$2->Left($1);
$2->Right($3);
$$ = $2;
}
;
应该解析像 1 = 2 这样的表达式,但是语法中不允许像 1 = 2 = 3 这样的表达式。为了适应这一点,我尝试使我的运算符非关联,如下所示:
%nonassoc NONASSOCIATIVE
.
.(rest of the grammar)
.
Comparison :
Value ComparisonOp Value %prec NONASSOCIATIVE
{
$2->Left($1);
$2->Right($3);
$$ = $2;
}
;
1 = 2 = 3 仍然通过,谁能告诉我我做错了什么?
【问题讨论】: