VB6 Parser / Lexer / Scripter

问题描述 投票:2回答:5

我在VB6中有一款游戏,它的功能非常好,但是我一直在想着创建一个脚本引擎。我想我想要VB6为我读平面文本脚本文件然后lex / parse /执行它们。

我有很好的编程经验,之前我已经构建了一个简单的C编译器,以及一个LOGO模拟器。

我的问题是:我可以使用任何工具,比如Lexx / Yakk / Bison来帮助我吗?关于lexing,解析以及将命令反馈给VB6,我应该如何处理这个问题,以便我可以处理它们?从某种意义上来说,这个想法是一个不好的想法(例如,在装配中建造扫雷,虽然不是不可能的,但是非常困难,也是一个坏主意。)?

scripting vb6 scripting-language
5个回答
2
投票

如果您愿意使用VBScript而不是VB6,您可能只需使用MSScriptControl来运行命令而不是创建自己的命令。 Here是一篇讨论在.Net应用程序中使用它的文章,尽管它是一个ActiveX控件,所以应该给你很大的灵活性。

该控件可以从here下载。


4
投票

使用Microsoft®Windows®脚本控件,因为它易于集成到现有的VB6应用程序中。该控件支持VBScript,JScript或任何其他“活动脚本”实现。

我在四个项目中使用了Windows脚本控件,效果非常好。很容易集成。我希望微软能给我们一个.NET的替代品,并使其易于使用。 (我知道在.NET中不需要控件,但是能够简单地创建一个处理所有内容的对象很好。)

Windows脚本控件

Microsoft®Windows®脚本控件是一种ActiveX®控件,可为开发人员提供一种简便的方法,使其应用​​程序可编写脚本。反过来,这使用户能够通过脚本扩展应用程序功能,就像今天的宏一样。


3
投票

除非你是为了自己的指示而做,否则你可能想尝试使用Lua:VB6 - Lua Integration


2
投票

我实际上已经在VB6中看到了一些非常合理的编译器/解释器实现[1] - 它不是我选择的语言(很少有功能特性,不够静态的类型系统),但是凭借经验,你可以超过这些缺点并且效率很高 - 那么为什么不呢。

您可以使用支持VB6的GOLD parser generator作为开始。

[1]:在PSC的某个地方或在这个download repository我认为......

请注意,还有MSScriptControl


0
投票

VB6似乎还有一个替代方案:

SadScript是VB6的变种,最突出地用于VB6作为MMORPGS中的脚本引擎。

请参阅此处了解更多信息:What is sadscript? Can I use it in vb.net? Why hasn't anyone I have asked heard of it?

© www.soinside.com 2019 - 2024. All rights reserved.