【发布时间】:2020-08-27 06:47:25
【问题描述】:
例如,我通过以下方式在 flex 规则中返回 yy::parser::symbol_type:
[a-zA-Z][a-zA-Z0-9_]* return yy::parser::make_ID(yytext);
其中ID是我在bison中定义的一个token,它会生成yy::parser::token结构。
现在我想为 flex 的 token.l 做一些单元测试,当我调用 yy::parser::symbol_type yylex() 函数时,我没有看到任何 API 从 yy::parser::symbol_type 中的 yy::parser::symbol_type 获取 yy::parser::token Bison c++ variant manual。
顺便说一句,在野牛手册中,建议使用 flex 规则中的 yy::parser::make_XXX APIs 返回 yy::parser::symbol_type。
或者没有这样的 API 来完成这项工作?我需要使用symbol_type.kind() API 来获得类似yy::parser::symbol_type_kind::S_T_ID 的东西?
【问题讨论】:
标签: c++ bison flex-lexer bisonc++