随笔-341  评论-2670  文章-0  trackbacks-0

    当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) 阅读(4180) 评论(14)  编辑 收藏 引用 所属分类: Vczh Free Script

评论:
# re: 今天在硬盘上发现了去年写的一个小型IDE 2008-06-14 01:19 | foxtail
其实STL很好的 呵呵  回复  更多评论
  
# re: 今天在硬盘上发现了去年写的一个小型IDE 2008-06-14 02:00 | Kven
是GNU和GPL有什么分别的?
其实,我很羡慕你能写到这样Free Script咯!
我自己的学历超级有限,只能羡慕了。  回复  更多评论
  
# re: 今天在硬盘上发现了去年写的一个小型IDE 2008-06-14 02:16 | 陈梓瀚(vczh)
用了GNU的程序也要GNU好像?我没仔细研究,只是『听说』有区别。  回复  更多评论
  
# re: 今天在硬盘上发现了去年写的一个小型IDE 2008-06-14 03:09 | 空明流转
GPL = GNU Public License。GPL V2是黏附性的,如果选择了LGPL就相对自由了,我记得BSD License更加自由一点。  回复  更多评论
  
# re: 今天在硬盘上发现了去年写的一个小型IDE 2008-06-14 04:44 | 陈梓瀚(vczh)
已改  回复  更多评论
  
# re: 今天在硬盘上发现了去年写的一个小型IDE 2008-06-14 06:10 | missdeer
语法着色的编辑器还是用Scintilla方便,加个lexer上去也不是太麻烦  回复  更多评论
  
# re: 今天在硬盘上发现了去年写的一个小型IDE 2008-06-14 06:51 | 陈梓瀚(vczh)
我找找看  回复  更多评论
  
# re: 今天在硬盘上发现了去年写的一个小型IDE 2008-06-14 07:51 | 带我去西藏
牛人哦
能写脚本语言
还能写一大堆系统级的东西,很少码字留言的哦@——@  回复  更多评论
  
# re: 今天在硬盘上发现了去年写的一个小型IDE 2008-06-14 08:02 | 陈梓瀚(vczh)
『系统级』这个词的范围很模糊。这些东西跟操作系统的关系太少了,事实上只要知道原理的话就没什么障碍了,不像那些什么驱动啊,调试都要开虚拟机……  回复  更多评论
  
# re: 今天在硬盘上发现了去年写的一个小型IDE 2008-06-14 21:47 | 空明流转
Eric Python IDE用的就是Scintilla。是个C++的东西,感觉上一般般。。。(其实Eric功能挺丰富的,就是界面比较丑,所以就不喜欢sci了,哈。)  回复  更多评论
  
# re: 今天在硬盘上发现了去年写的一个小型IDE 2008-06-15 01:07 | ddd
支持你用C++,C#我现在越越来感觉到是个玩具罢了  回复  更多评论
  
# re: 今天在硬盘上发现了去年写的一个小型IDE 2008-06-15 02:12 | 陈梓瀚(vczh)
但是不可否认在那些不是很关心运行效率的地方,C#的开发效率很高。  回复  更多评论
  
# re: 今天在硬盘上发现了去年写的一个小型IDE 2008-06-15 06:09 | 空明流转
C#算是很快了。除了启动慢点。  回复  更多评论
  
# re: 今天在硬盘上发现了去年写的一个小型IDE 2008-06-15 06:44 | missdeer
@空明流转
Scintilla可算是目前开源编辑器控件中最强大的一个了,不但支持多种操作系统,还有多种编程语言(库)移植版本,比如Scintilla.NET、wxScintilla等。它只是个控件,所以容器外壳做得怎么样,不关它的事。  回复  更多评论
  

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理