当Vczh Free Script还处于1.0版本的时候,我用C#写了一个IDE出来。因为脚本本身是不能产生exe的,所以这个IDE只有执行而没有编译的功能。不过有两个个困难的地方。
RichTextBox里面的修改会让颜色变化。我找不到C#中的有效做法,所以只好把自己的正则表达式引擎包一层插入C#,每次修改的时候都重新生成整个RTF文档插入RichTextBox。后来测试的时候,发现只要脚本在1000行左右的时候速度仍然是可以接受的。没有进行更多的测试。
脚本自己也是可以调用编译器的。脚本代码可以用字符串产生一段新的代码然后执行。因此IDE也要动态的【发现】并【调试】这些动态产生的代码。下面贴了4幅图。
上图那个“不能执行加法操作”的原因是“+”只能用来做数值运算,字符串之间或者数组之间的连接用的操作符是“++”。
现在这个IDE已经没用了,因为在Vczh Free Script升级到2.0的时候,脚本开放给.NET的接口跟1.0的完全不兼容。不过用来做自动变色的方法我觉得也相当的烂。就这么扔掉吧。C#控制RichTextBox是相当的吃力啊,不过如果可以写一个调试的界面让未来使用Vczh Free Script的程序可以直接调用的话那就爽了。以后再想办法,不过估计会选择C++来实现这个东西。现在还是做个图形库出来换换口味好。
等期末考结束后我就把Vczh Free Script 2.0发布出来,连同源代码。源代码里面包含的内容如下:
·自己用的C++模板库以及一些基础工具。个人不喜欢STL。
·这篇文章里面说的正则表达式引擎。
·自己做的YACC,区别是我这个东西不产生代码,是运行时产生分析器的。名字叫Syngram。
·使用Syngram做的Vczh Free Script 2.0编译器,以及虚拟机。
·C++和.NET两个版本的DLL接口的源代码,以及分别使用这两个接口开发的字符界面虚拟机的源代码。
·我为Vczh Free Script 2.0写的库,包含了容器、正则表达式、语法分析、反射等,使用脚本编写。
非源代码部分将有编译好的Vczh Free Script 2.0(.NET版至少需要.NET 2.0 + SP1才能执行)和一些文档和资料等。
在发布之前我估计要找SourceForge或者CodeProject放一放,然后加个协议上去。至于是哪种,这个慢慢考虑一下。嘿嘿。
posted on 2008-06-14 00:20
陈梓瀚(vczh) 阅读(4202)
评论(14) 编辑 收藏 引用 所属分类:
Vczh Free Script