【发布时间】:2011-12-08 12:44:07
【问题描述】:
我正在使用 bison 来实现一个简单的解析器。一行语法如下:
prefix_definition : PREFIX IDENTIFIER IDENTIFIER ABBR IDENTIFIER ';'
我不确定如何分别访问第一个、第二个和第三个IDENTIFIER。我的 flex 文件读取 IDENTIFIER 是这样的:
IDENTIFIER_REGEX (_|[A_Za-z])(_|[0-9A-Za-z])*
{IDENTIFIER_REGEX} { yylval.identifier=strdup(yytext); return IDENTIFIER; }
我不能简单地使用yylval.identifier。我尝试了$2.identifier 左右,但它根本不起作用(而且它也不应该起作用)。有没有办法解决这个问题?
如果 bison/flex 不支持这种访问,我正在考虑使用 FIFO 队列。这是一个好的解决方案吗?
【问题讨论】:
-
我删除了“Adobe Flex”标签并添加了“gnu-flex”标签;因为我认为这篇文章涉及词法分析器;不是 Flash 平台 SDK。
标签: parsing token bison yacc flex-lexer