终止野牛行动

时间:2019-07-01 16:30:04

标签: bison

在Bison中终止操作但仍继续解析的关键字是什么? 假设我有这个语法: 规则:某物{如果(某物)终止动作;代码} {} ...

它应该只是退出当前操作并继续,是否只是返回?

1 个答案:

答案 0 :(得分:1)

没有这样的关键字,所以最好的选择就是反转条件:

nonterm: pattern { if (!condition) {
                       /* Do what needs to be done */
                   }
                 }

从语义动作中 return。在某些实现中,您可能会放弃使用break,但我不会尝试。即使它看起来可行,它也不是可移植的,并且将来可能会在其他平台上发生故障。

如果规则具有语义值,请确保已将$$设置为某种值,因为它可能会被使用。