【发布时间】:2011-03-29 06:06:18
【问题描述】:
当我使用 bison parser.y -d -t 编译我的 .y 文件,然后在我的 flex 文件中包含 parser.tab.h 文件时,gcc 会显示“错误:数字常量之前的语法错误”。它引用第 32 行,这是 yytokentype 枚举中的第一行。
enum yytokentype {
BREAK = 258,
... }
错误与“BREAK = 258”行有关。老实说,我不知道为什么会这样——我真的很想使用生成的 yylval,我需要从这个头文件中获取它。即使我在我的 flex 文件中这样声明 yytokentype,我也会得到同样的错误。有什么我做错了吗?
【问题讨论】:
-
我猜在错误行的上方某处重新定义了
BREAK。 gcc 的-E标志有助于找出这些问题。
标签: gcc enums bison flex-lexer