条件语句的翻译程序

条件语句的翻译程序,第1张

利用C的编译器常用的递归程序法进行递归下降分析。先设计好文法,最好自己先画出文法图,然后编写递归下降的程序。

比如:程序->分程序。那么,我写两个函数,pro()和subPro()因为程序只能推出分程序,那么我在pro()方法中的第一句,便直接调用subPro()函数来进行分析。这样递归下降,并留出适当的出口,如分析因子中的id和num,或者分析其他元素中的id和num等,这样就OK了。

建议你自己写,写出来了对你有好处。

编程原理这个东西不是一言两语说的清楚的,你自己去看一下《解释器构造及实践》这本书中的例子吧。

Firstvt和Lastvt是为了画算符优先关系表的(就是表里面填优先大于小于等于的那个)。

然后要注意他们可都是终结符的集合。

Firstvt

找Firstvt的三条规则:如果要找A的Firstvt,A的候选式中出现:

A->a.......,即以终结符开头,该终结符入Firstvt

A->B.......,即以非终结符开头,该非终结符的Firstvt入A的Firstvt

A->Ba.....,即先以非终结符开头,紧跟终结符,则终结符入Firstvt

Lastvt

找Lastvt的三条规则:如果要找A的Lastvt,A的候选式中出现:

A->.......a,即以终结符结尾,该终结符入Lastvt

A->.......B,即以非终结符结尾,该非终结符的Lastvt入A的Lastvt

A->.....aB,即先以非终结符结尾,前面是终结符,则终结符入Firstvt


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7896528.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-11
下一篇 2023-04-11

发表评论

登录后才能评论

评论列表(0条)

保存