博客首页 注册 建议与交流 排行榜 加入友情链接
推荐 投诉 搜索: 帮助

hope_process

感觉好累。。。
  heixia108.cublog.cn

关于作者
    既然目标是地平线

   留给世界的只能是背影
   
|| << >> ||
我的分类


tiger(1) 直线式程序解释器
 昨晚调了一晚的程序,没有出结果,于是今天起了个早床。。。搞定了:)

 另外觉得gcc的提错方式还可以改一下,不小心敲错一个函数后,eg:
  t1 = interStm( s->u.compound.stm1 , t);  //掉了一个p
 // t1 = interpStm( s->u.compound.stm1 , t);
  提示错误,类型转换不兼容 这样很难查错,提示没有定义该函数可能会更好。

 该程序解释一个语句:
  A_CompoundStm(A_AssignStm("a",
                 A_OpExp(A_NumExp(5), A_plus, A_NumExp(3))),
  A_CompoundStm(A_AssignStm("b",
      A_EseqExp(A_PrintStm(A_PairExpList(A_IdExp("a"),
                 A_LastExpList(A_OpExp(A_IdExp("a"), A_minus,
                                       A_NumExp(1))))),
              A_OpExp(A_NumExp(10), A_times, A_IdExp("a")))),
   A_PrintStm(A_LastExpList(A_IdExp("b")))));

 输出结果为:
 

[heixia@localhost chap1]$ ./a.out
8 7 80


 OK!

文件:直线式程序解释器.tar.gz
大小:2KB
下载:下载

发表于: 2008-03-18,修改于: 2008-03-18 07:26,已浏览202次,有评论2条 推荐 投诉


网友评论
网友: pf_miles 时间:2008-08-17 00:37:33 IP地址:122.234.7.★
倒是不错,不过,怎么才能把这个程序写成书中描述的“无副作用”?

网友: heixia108 时间:2008-08-17 23:56:08 IP地址:58.19.126.★
不好意思,这段时间不能上网了,估计十天左右,你问的问题我会尽力解答的,呵~

"无副作用" <==== 为那个变量再增加一个结点,应该可以,能上网了再看看~

 发表评论