|
最近有点空儿,闲着没事干脆研究下程序编译器玩玩。由于本人不懂什么编译原理之类的算法
,所以基本上是以自己想像的土方法去实现,也欢迎各位交流。
工程名称:雅典娜 (包括语言和编译器在内的全部环境)
编译器名称:火鸟
编译和连接方法: 不产生win执行文件,而是生成c语言代码,然后调用c编译器编译。
准备实现的语言_远期目标:幻想中。。。
准备实现的语言_中期目标: pl/0 (一个编译器教学用的简单语言)
准备实现的语言_当前目标: 最简单的数学表达式 (如: 5+23*6)
********************************
当前工作阶段:关键字分析,只实现了对固定关键字生成状态跳转表
如:对 abc ade 这两组单词生成的状态跳转表如下
1 a跳到 2, //说明:如分析 abc 遇到a跳到第2状态
2 b跳到 3, d跳到 5, //第2状态只接受b或d两个字符,其它则为源程序出错
3 c跳到 4,
4 匹配到单词 abc
5 e跳到 6,
6 匹配到单词 ade
********************************
下一工作目标:加入简单的正则匹配支持,计划为(* ? /)三个匹配符。
athena_v5.rar
(3.06 KB, 下载次数: 89)
|
|