【发布时间】:2010-12-10 14:48:39
【问题描述】:
我想问你一个关于解析代码的程序 Flex 的问题。 假设我在规则部分有这样的指令:
"=" BEGIN(attribution);
<attribution>{var_name} { fprintf(yyout, "="); ECHO; }
<attribution>";" BEGIN(INITIAL);
{var_name} 是一个匹配变量名称的正则表达式,我要做的就是在输出处复制所有归属说明,例如 a = 3; 或者 b = a;
我的规则虽然不能用 fprintf 写属性的左成员,但只能 = 3; 或者 =一个;
对此的一种解决方案可能是,在我匹配“=”并且我处于归因状态之后,返回 2 个位置以获取左操作数。 如何在 Flex 中做到这一点?
【问题讨论】:
-
Flex 不是解析器。这是一个词法分析器生成器。
标签: flex-lexer