想编写一个和Visual Studio一样的开发环境
想编写一个和Visual Studio一样的开发环境,允许用户编辑我定义的脚本语言,请问需要哪些步骤?
------解决方案--------------------不需要自己开发,可以使用VS SDK或者VS Shell
VS SDK允许你将你的程序以插件的形式整合到VS中,VS Shell允许你利用VS外壳程序制作独立的IDE。
VS Shell的分发是免费的。
http://www.cnblogs.com/timy/archive/2009/12/04/1617109.html
------解决方案--------------------这里有个比较完善的例子,演示了如何用VS Shell整合IronPython脚本语言制作一个开发环境
http://code.msdn.microsoft.com/windowsdesktop/IronPython-Integrated-Shell-0b71ce53
------解决方案--------------------实现VS并不简单。但是也并非不可实现。
如果是完全的自主研发,并使用自己设计的语言:
第一,要实现对脚本的解析。
如果自己写脚本解析,则需要编写愈发分析器,将文本结构化为变量、常量、函数和类(如果你的语言有着些概念的话)。
这有两个作用,一是让你的IDE能够读懂文本状态的代码,以便进行渲染、智能感知;二是为解释执行和编译做好准备。
第二,要实现编译或解释运行。
如果希望编译为机器码,则需要熟练掌握汇编语言和CPU指令集合,将复杂的逻辑编译成制定CPU指令集的二进制代码。
如果要解释执行,则可以按照你自己设计的语法规范设计核心逻辑,按照语法分析器得到的结构进行解释。
第三,要实现所见即所得,你需要设计一套用于解释界面的语言,XML是不错的选择。你负责把用户拖拽控件的结果翻译为XML存储,然后读取XML进行呈现。最终,你要把XML编译成用脚本创建界面的一大段代码。
可视化设计器要管理好控件的层次和嵌套关系。通常使用容器来组织。
---------------------------------------------
不过,如果你仅仅想实现VBA或VSA的IDE,还是相对容易的。(脚本引擎用现成的)
你仍然需要一个语法分析器,但作用仅仅是渲染和智能感知,它的严谨性和正确性已经不重要。
你将VBA或VSA脚本直接输出到相应的脚本控件或类,由它们负责解释。
你需要监听和捕获错误。
解释VBScript和JScript可以用微软官方的控件。
解释如果你打算使用VB.net或C#,可以参阅《VB-Helper:坚守脚本》(http://www.microsoft.com/china/msdn/library/langtool/vbnet/dnhcvb04vb04j10.mspx)