0

我要求gplex,但是可能是这种情况,该问题的解决方案适用于其他 lex 派生工具。

我写了所有规则,一切都很好,只有一个例外。scan生成的扫描仪的方法类型是int,我希望是MySymbol(这将包括令牌的 id -- INT、STR、PLUS 等、它的值以及文件中的可能位置)。

我检查了样本(不是很多),但它们非常简单,只是写出了匹配的事实规则,我已经阅读了手册,但它是从解析器的角度开始的,现在我有点迷失了。

lex我在文件中的规则之一:

while { return new MySymbol(MyTokens.WHILE); }

我现在只有扫描阶段,我必须完成它,然后我会考虑解析器。

4

1 回答 1

0

Yacc 和类似 Yacc 的工具(此处为 GPEx)依赖于副作用。通常您可以考虑返回数据,但在这里您返回的是令牌 ID,并且任何额外的数据都必须通过特殊变量(如yyval.

于 2012-12-13T14:00:33.437 回答