多个规则在yacc中执行相同的操作

1 yacc

如何在yacc中指定具有相同操作的多个规则示例:

variable : string { cout<<$1<<endl; } | int { cout<<$1<<endl; }

Tho*_*key 5

这通常通过定义中间规则在yacc中完成.例如

any_value : string
      | int
      ;
variable  : any_value { 
        cout<<$1<<endl; 
      }
      ;
Run Code Online (Sandbox Code Playgroud)

如果值与字符串int隐含的值更密切相关,则可以使用词法分析器,例如,通过将不同类型的数字(整数,浮点)组合为单个标记类型编号.