Bison语法规则匹配一组令牌

mar*_*cio 2 c bison

有没有办法一次匹配多个令牌?现在我的一条规则看起来像这样:

rule:
    T_A { $$ = some_common_behavior(); }
  | T_B { $$ = some_common_behavior(); }
  | T_C { $$ = some_common_behavior(); }
  ... // many more tokens
Run Code Online (Sandbox Code Playgroud)

但如果一组令牌可以立即匹配,那将更加可维护:

rule:
  T_A | T_B | T_C | ... { $$ = some_common_behavior(); }
Run Code Online (Sandbox Code Playgroud)

PS:some_common_behavior调用已处理当前令牌,因此不需要像第一个示例那样为每个令牌重复代码.我只需要一种更好的方式来宣告这一点而不需要重复.

m01*_*m01 6

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

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

Ts:
  T_A
  | T_B
  | T_C
  | ...;
Run Code Online (Sandbox Code Playgroud)