原文:C语言解释器的实现--语法解析(五)

.代码块 代码块是由多个表达式组成的一组代码。它可以看成是以下的形式: exp exp ... 它由 开始,由 结束,中间包含多条表达式,或者是控制语句。如果不是以 开始,那么,一个代码块就是一条表达式。在上面的章节,我们已经介绍过了,每个表达式会产生一个中间代码。它是一个链表 struct code ,而一个代码块,是由多个表达式组成的,所以我们将每个表达式的中间代码链表连到一起就成了代码块的 ...

2012-01-04 10:01 2 6254 推荐指数:

查看详情

C语言解释器实现--类型解析(三)

上一篇:C语言解释器实现--词法分析(二) 1.类型的表示 C语言的类型是相当灵活的,除了标准的类型(int char float double long 等等)外,自己根据需求,能定义出无穷的类型。一个具体的例子: int * a[10]; 它表示的意思 ...

Wed Dec 28 04:44:00 CST 2011 3 4279
C语言解释器实现--表达式解析(四)

1. BNF定义 2.表达式解析 3. 后缀表达式 4.后缀表达式到中间代码 5.中间代码的表示 1. BNF定义 虽然不想多提理论知识,但是有些东西还是避免不了。在解析表达式的时候,我们必须知道它的BNF定义,这样解析起来就非常方便了。所谓的BNF定义,相信大家看一眼就知道了 ...

Wed Dec 28 22:17:00 CST 2011 10 9392
编译原理解释器(二)C语言语法分析器实现

在词法分析scanner.h和scanner.c都正确且存在的情况下,加入parser.h和parser.c就可以完成语法分析器! “parser”是语法分析器。输入流是“字典”,输出流是语法树。 step2 编写parser.h 代码如下: step1 插入 ...

Tue Jan 17 20:56:00 CST 2017 0 2571
C语言解释器实现--让脚本跑起来(六)

目录: 1.脚本的执行要素 2.栈的模拟. 3.变量在栈中的地址计算 4.函数的调用过程 5.命令的解析 6.C的库函数调用 在前面的文章中,我主要讲解了语言解析部分,最终我们生产了脚本的中间代码。接下来,将是一个最困难的时刻,怎么解析执行中间代码! 执行代码其实是经过一定 ...

Fri Mar 16 04:26:00 CST 2012 12 15043
C语言解释器实现--词法分析(二)

上一篇:C语言解释器实现--存储结构(一) 词法分析是编译原理中最容易理解的,就算没有了解过编译原理,也能写出一个词法分析。我们不用理解正则表达式,不用理解状态机原理,就可以轻松的完成词法的分析。 这里首先介绍下自顶向下的解析过程,所谓的自顶向下,按我的理解,就是从一个大的集合解析 ...

Tue Dec 27 21:20:00 CST 2011 0 5632
编译原理解释器(一)C语言词法分析器实现

辣鸡的我终于在一个已经保研的小哥哥(萌似泰迪)的帮助下完成了解释器!!(VS2013) 分为3步:词法分析语法分析器、语义分析 代码大部分出自《编译原理基础-习题与上机解答》(西安电子科技大学出版社)中的附录 下面会上所有代码附带(超级)大量详细注释和理解,以及很多处理细节。因为在这 ...

Sat Dec 17 23:24:00 CST 2016 0 1365
设计模式--解释器模式C++实现

1定义 给定一门语言,定义他的文法的一种表示,并定义一个解释器,该解释器使用该表示来解释语言中的句子 2类图 角色分析 AbstractExpression抽象解释器,具体的解释任务由各个实现类完成,具体的解释器分别由TerminalExpression ...

Sat Apr 09 09:32:00 CST 2016 0 2082
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM