在Bison中终止操作但仍继续解析的关键字是什么? 假设我有这个语法: 规则:某物{如果(某物)终止动作;代码} {} ...
它应该只是退出当前操作并继续,是否只是返回?
答案 0 :(得分:1)
没有这样的关键字,所以最好的选择就是反转条件:
nonterm: pattern { if (!condition) {
/* Do what needs to be done */
}
}
从语义动作中不 return
。在某些实现中,您可能会放弃使用break
,但我不会尝试。即使它看起来可行,它也不是可移植的,并且将来可能会在其他平台上发生故障。
如果规则具有语义值,请确保已将$$
设置为某种值,因为它可能会被使用。