词法分析,让状态机旋转地更猛烈些吧----小话c语言(21)
作者:陈曦
日期:2012-6-16 10:21:31
环境:[Mac 10.7.1 Lion Intel-based x64 gcc4.2.1 xcode4.2]
转载请注明出处
Q: 对于编译过程的词法分析,到底应该使用什么方式?
A: 可以肯定的是,必然要对需要处理的数据挨个字符判断,然后在恰当的位置截断,得到一个个的token.
Q: 为什么得挨个字符都判断?
A: 因为编码采用源代码的方式,你无法判断程序员下一个字符是什么。比如int i;和int1i; 这两种语句显然含有不同的符号。
Q: 如何进行词法分析?
A: 一种很简单的思路就是,用一个状态保存在处理到各个字符时的状态,比如是标识符或者数字或者空格等等,直到状态改变到可以认定是不同token的时候结束。
Q: 给个设计图吧。
A: 现在不用看设计图,它来源于如下的实践。
作者:陈曦
日期:2012-6-16 10:21:31
环境:[Mac 10.7.1 Lion Intel-based x64 gcc4.2.1 xcode4.2]
转载请注明出处