有没有办法一次匹配多个令牌?现在我的一条规则是这样的:
rule:
T_A { $$ = some_common_behavior(); }
| T_B { $$ = some_common_behavior(); }
| T_C { $$ = some_common_behavior(); }
... // many more tokens
但是,如果一组令牌可以立即匹配,那将会更加可维护:
rule:
T_A | T_B | T_C | ... { $$ = some_common_behavior(); }
PS:some_common_behavior
调用已处理当前令牌,因此不需要像第一个示例那样为每个令牌重复代码。我只需要一种更好的方式来宣告这一点而不需要重复。
答案 0 :(得分:6)
您不能只将T_*
分组到表达式中,然后在rule
中使用该表达式吗?
rule:
Ts { $$ = some_common_behaviour(); }
;
Ts:
T_A
| T_B
| T_C
| ...;