词法分析部分:分析?:作为操作符而不是分隔符

时间:2013-10-19 09:54:29

标签: compilation compiler-construction lexical-analysis

我的目标是对 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 ++,并检查这些编译器如何实现词法分析?谁可以给我一个建议?

1 个答案:

答案 0 :(得分:0)

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