2010-06-08 5 views
3

У меня есть игра в VB6, и она отлично работает и все, но я играл с идеей создания скриптового движка. Я думаю, что мне бы хотелось, чтобы VB6 читал в текстовых файлах сценариев для меня, а затем lex/parse/execute.VB6 Parser/Lexer/Scripter

У меня хороший опыт программирования, и я уже создал простой компилятор C, а также эмулятор LOGO.

Мой вопрос: Есть ли инструменты, которые я могу использовать, например, Lexx/Yakk/Bison, чтобы помочь мне? Как мне подойти к этой проблеме в отношении лексинга, разбора и подачи команд обратно на VB6, чтобы я мог справиться с ними? Является ли эта идея BAD IDEA в том смысле, что в пути слишком много препятствий (например, строительство тральщика в сборе, хотя и не невозможно, очень сложно и плохой идеей.)?

ответ

2

Если вы хотите использовать VBScript, а не VB6, вы можете просто использовать MSScriptControl для запуска команд, а не для создания собственных. Here - это статья, в которой обсуждается использование ее из приложения .Net, хотя это элемент управления ActiveX, поэтому вы должны проявить определенную гибкость.

Контроль можно загрузить с here.

+1

Я использовал ScriptControl в четырех проектах, и она работает очень хорошо. Очень легко интегрировать. Я бы хотел, чтобы Microsoft предоставила нам замену в .NET и сделала ее простой в использовании. – AMissico

+0

+1 Я тоже это использовал, он работает красиво. Я тоже хочу, чтобы в .NET был эквивалент. Помните, что это официально не поддерживается в Vista или Windows 7. Francesco Balena написал хорошую статью об использовании этого из VB6 в выпуске * Visual Basic Programmers Journal * Ноябрь 2000 года, к сожалению, эта проблема, похоже, недоступна онлайн больше. – MarkJ

+3

- * Разработка калькулятора * на http://msdn.microsoft.com/en-us/library/aa227421(VS.60).aspx (Возможно, Balena была вдохновлена ​​этой темой.) – AMissico

2

Я действительно видел некоторые довольно разумные реализации компиляторов/интерпретаторов в VB6 [1]. Это не тот язык, который я бы выбрал (несколько функциональных функций, система с недостаточным статическим типом), но с опытом вы можете перевесить эти недостатки и быть достаточно продуктивным - так почему бы и нет.

Вы можете использовать GOLD parser generator, который поддерживает VB6 как начало.

[1]: Где-то на PSC или в этом download repository я думаю ...

Обратите внимание, что есть MSScriptControl тоже.

3

Если вы делаете это для своего собственного обучения, вы можете попробовать использовать Lua: VB6 - Lua Integration

4

Используйте Windows® управления Microsoft® Script, потому что легко интегрировать в существующие приложения VB6. Элемент управления поддерживает VBScript, JScript или любую другую реализацию «Active Script».

Я использовал Windows Script Control в четырех проектах и ​​работает очень хорошо. Очень легко интегрировать. Я бы хотел, чтобы Microsoft предоставила нам замену в .NET и сделала ее простой в использовании. (Я понимаю, что контроль не требуется в .NET, но имея возможность просто создать объект, который обрабатывает все хорошо.)

управления Windows Script

Microsoft® Windows® Управление сценарием - это элемент управления ActiveX®, который предоставляет разработчикам простой способ сделать свои приложения доступными для сценариев . Это, в свою очередь, , позволяет пользователям расширять функциональность приложения с помощью скриптов , как и в случае с макросами .

+0

«Создайте свой .Net-скрипт поддержки приложений - практический подход» по адресу http: //weblogs.asp.net/rosherove/articles/dotnetscripting.aspx – AMissico

+1

+1 Фантастический список ссылок! – MarkJ

 Смежные вопросы

  • Нет связанных вопросов^_^