这是我自学编译原理时为练手所做的一个解释器.所以完全没做任何优化,执行大的循环时会非常慢.支持pascal大部分语法 包括 变量,常量,数组,函数,过程,递归,重载以及基本数据类型integer, real, char, string, boolean 和 基本运算不支持的 多维数组,构造类型,类,变参已知问题(留至下个版本修改):
运态执行的,一些语法问题会在执行到时才识别(例如类型是否匹配)
语法错误能正错检查出来,但有时候编译报的错误不能做到准确
无限递归调用一个函数时会堆栈溢出
下载地址
http://www.akunspy.com/pascal/pkpascal.rar
运态执行的,一些语法问题会在执行到时才识别(例如类型是否匹配)
语法错误能正错检查出来,但有时候编译报的错误不能做到准确
无限递归调用一个函数时会堆栈溢出
下载地址
http://www.akunspy.com/pascal/pkpascal.rar
解决方案 »
- 窑洞也塌方了?
- 请教大家ADOQuery1.Open语句,提示from子句语法错误
- 再次高分调查,开发信息系统是使用ADO、BDE还是dbExpress呢?
- Access 2000支持事务吗?我试试,好像可以的。
- 高手不要生气!!!我只有这么多分了,如何做判断,动态生成treeview,请看原程序!!
- 怎么把stringgrid某一行的数据删除?或者几行?
- 请问 DBCHART 的用法(如何编程来控制它)!!!20分
- 请问怎么让我的程序在Tray弹起的菜单消失?
- 连接Oracle什么组件最好,ODAC总出问题,大家帮忙出出主意
- fastreport MasterData 能否合计
- 请教对一个图象差分算法怎么做啊!
- 有没有人写过网状的数据结构?
数组定义和DELPHI一样的,例如
var
a: array [0..10] of Integer;
做完了构建语法树的,解释执行时就是执行的语法树
代码优化是下个版本要考虑的问题了,目前这个只是为了实现而实现
你要是早出生几十年,比Bill Gates都牛了,Bill顶多编一个 BASIC