随笔-91  评论-137  文章-0  trackbacks-0
For语句的翻译比较复杂,有3个前置条件和运行代码,1个语句块,也就有4*3*2*1=24种情况.应此在生成抽象语法树的时候我采用的是2进制位来表示当前块是否存在,其中最底位表示stmt_list语句块,倒数第2位表示by之后的语句是否存在,倒数第3位表示to之后的表达式是否存在,倒数第4位表示for之后的语句是否存在.
代码:
 1 integer aaa,bbb
 2 
 3 function ccc()
 4     do
 5         for aaa = 456 to by do
 6             if aaa == 456 then
 7                 aaa = 789
 8             end if
 9         next
10         aaa = 123
11     while aaa == 123 end
12 end function
翻译结果:
posted on 2010-09-22 12:20 lwch 阅读(1567) 评论(0)  编辑 收藏 引用 所属分类: QLanguage

只有注册用户登录后才能发表评论。
【推荐】超50万行VC++源码: 大型组态工控、电力仿真CAD与GIS源码库
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理