先学习一个最简单的  编译如下代码    " a + 10 + b + c ; ";

关键字为{ "int", "+", "=", ";", "i" };   "i"表示变量或数字
 

Code

 

下面的代码一个是产生临时变量,一个是产生四元表达式

Code

 

 

读入下一个单词

Code

 

采用产生式  E->T{+T};  T->i

则T的函数如下

 

Code

 

 

 E的函数如下

 Code

 

经一个Start函数调用


        public void Start()
        {
            Scaner();
            E();

        }

 

即可产生编译 出的代码 "T0=a+10; T1=T0+b; T2=T1+c; "   其中E 返回的值为T2

 

如此我们加入一个新的产生式 S->T=E;

Code

 string code = "a = a + 10 + b + c ; ";


        public void Start()
        {
            Scaner();
            S();

        }

 

产生代码为"T0=a+10; T1=T0+b; T2=T1+c; a=T2; "

 

 

 

 

 


posted on 2008-12-13 21:17  feathersky  阅读(201)  评论(0编辑  收藏  举报