自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(5)
  • 收藏
  • 关注

D 语言的子集的 Z 编译器

  把 D 语言的语法规则改写成 ANTLR 的语法脚本后,大概有30多K,编译的时候,出了很多的错误,最后内存溢出了。想一想,也是,一来我对 ANTLR 还不熟,二来,Digit Mars 上的 D 语言语法介绍,很多左递归,有几个没有定义的过程,两个拼写错误,一个同名不同义的过程等等。在这种情况下,30多K的语法脚本想要很快的就编译通过,是很困难的。   所以,还是决定用 ANTLR 实...

2008-01-18 20:59:17 161

用 ANTLR 做一个四则运算器

  开始把 D 的语法转换为 EBNF,发现 D 还支持中文变量名,也就是所谓的 UniversalAlpha,查看了一下 dmd front end 的源代码,检查字符是否 UniversalAlpha 的函数是这样的: int isUniAlpha(unsigned u) { static unsigned short table[][2] = { { 0x00AA, 0x0...

2008-01-15 17:48:08 269

D Parser 之前(三):Z 语言编译器

  终于把 Z 语言的编译器做完了。意外的在四则运算上耽误了很多时间,发现 Grammatica 的四则运算的例子其实是右结合的,费了很大劲才解决了。现在觉得 Grammatica 的完整度好像不是很高,比如没有帮助建立抽象语法树的工具之类。也许 ANTLR 会好一点儿吧。   重新整理了目录,把生成的程序放到了 bin 目录下,建立了一个 build.bat 的批处理,用来把 z 编译成机器码,...

2008-01-11 18:32:39 193

D Parser 之前(二):汇编编译器

  在《D Parser 之前:写一个简单的虚拟机》里,其中计算 1 到 100 之和的程序 add.bin,是使用十六进制编辑器直接编辑出来的。虚拟机制作完后,考虑了一下,如果直接写 Z 的编译器,难度还是不小,所以决定,先写一个汇编语言的编译器,实现从汇编代码到机器代码的编译工作。   大体来说,汇编编译基本上是一条一条对照生成,不过,行号的需求使得其中多了一些复杂性,另外,我还决定加入注释的...

2008-01-08 00:25:21 172 1

D Parser 之前:写一个简单的虚拟机

  最近写了一点儿 D 程序,除了感觉标准库太差之外,没有一个好的 IDE 也是一个很头疼的事,特别是没有智能提示,每次调用一个函数什么的,都要查文档或者直接看源代码,实在是太费劲了。   所以决定自己尝试写一个支持智能提示的 D 的 IDE。因为 SharpDelelop 比较小,而且它对 C# 的支持也做到了智能提示、窗体编辑器等等,所以决定用它作为主框架,除了智能提示,也许还能加入 DFL ...

2008-01-06 17:49:12 127

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除