我正在尝试使用 Bison/Yacc 构建一个解析器,以便能够解析另一个模块完成的令牌流。令牌已在枚举类型中列出,如下所示:
// C++ header file
enum token_id {
TokenType1 = 0x10000000,
TokenType2 = 0x11000000,
TokenType3 = 0x11100000,
//... and the list go on with about 200/300 line
};
我已经多次阅读了 bison 的文档,但我找不到比复制 Bison 文件中的每个令牌更好的解决方案,如下所示:
/* Bison/Yacc file */
%token TokenType1 0x10000000
%token TokenType2 0x11000000
%token TokenType3 0x11100000
//...
如果我必须这样做,如果其他模块规范发生变化(这种情况经常发生),维护文件将变得非常困难。
你能告诉我怎么做吗,或者给我指出好的方向(欢迎任何想法/评论)。这对我有很大帮助!提前致谢。