词法分析中的 贪心算法

来源:互联网 发布:数据中心网络的设计 编辑:程序博客网 时间:2024/05/18 18:43

我们经常遇到一些令人烦心的C语句,比如a---b;我们应该理解为(a--)-b呢?还是

a-(--b)呢?

下面介绍一个简单的方法,就是传说中的贪心算法(人有贪欲,编译器又何尝不是呢)。

对于上一个问题,解决方案可以归纳为一个很简单的规则:每一个符号应该包含尽可能多的字符也就是说编译器将程序分解成符号的方法是,从左到右一个一个字符读入,如果该字符可能组成一个符号,那么再读入下一个字符,然后判断这两个字符字符串是否可能是另外一个字符的组成部分,如果还可以的话继续读入下一个字符,接着重复上述判断。直到其组成的字符不能再组成一个有意义的字符为止。(注意空格之类的也算字符)

那么答案来了,上面的就是(a--)-b;

当然不确定就拼命加括号就行了,那样可就稳多了,也不用瞎操心了。。。

原创粉丝点击