我的目标是对 C 语言进行非常简单的词法分析,例如当您读取表达式 ab = 3 时,它将被分析为:
ID<ab> OP<=> LIT<8> (op will be "operator",LIT will be "literal").
还有一种情况,当你读到表达 a? b:c 。通常会将其分析为
ID<a> SEP<?> ID<b> SEP<:> ID<c>".
但我们知道它实际上是三元运算符。所以上面列出的分析是不正确的。
现在我只想引用一个编译器,如gcc,g ++,并检查这些编译器如何实现词法分析?谁可以给我一个建议?
答案 0 :(得分:0)
什么使得词法分析器输出不正确?你正在考虑太远,试图解决词法分析器中的解析问题。如果你真的喜欢,你可以改变吗?成为一个操作员(在这种情况下应该是这样),但最终无关紧要,只需使用你定义为令牌的终端进行解析。