-2

我的目标是实现一个非常简单的C语言词法分析,比如当你读到一个表达式ab=3,那么它会被分析为:

ID<ab> OP<=> LIT<8>   (op will be "operator",LIT will be "literal"). 

还有一种情况是你读到一个表达式a ? 乙:c。通常它会被分析为

ID<a> SEP<?> ID<b> SEP<:> ID<c>". 

但正如我们所知,它实际上是三元运算符。所以上面列出的分析是不正确的。

现在只想参考gcc、g++等编译器,看看这些编译器是如何实现词法分析的?谁能给我一个建议?

4

1 回答 1

0

是什么让词法分析器输出不正确?您想得太远了,并试图解决词法分析器中的解析问题。如果你真的喜欢,你可以改变吗?成为操作员(在这种情况下应该如此),但最终没关系,只需使用您定义为令牌的终端进行解析。

于 2013-11-02T08:06:18.853 回答