用于匹配一组标记的 Bison 语法规则

Bison grammar rule to match a group of tokens

有没有办法一次匹配多个令牌?现在我的规则之一如下所示:

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 调用已经处理了当前令牌,因此无需像第一个示例那样为每个令牌重复代码。我只需要一个更好的方法来声明它而无需所有重复。

您不能将 T_* 组合成一个表达式,然后在您的 rule 中使用该表达式吗?

rule:
   Ts { $$ = some_common_behaviour(); }
;

Ts:
  T_A
  | T_B
  | T_C
  | ...;