【发布时间】:2013-10-19 09:54:28
【问题描述】:
我的目标是实现一个非常简单的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++等编译器,看看这些编译器是如何实现词法分析的?谁能给我一个建议?
【问题讨论】:
-
那么,如果您希望它作为操作员,为什么要将其扫描为分隔符?这里有什么问题?
-
因为我从别人那里得到了这个资源。两个都 ”?”和 ":" 默认作为分隔符处理。
标签: compilation compiler-construction lexical-analysis