Tiny Basic Interpreter recompiled with MSVC 6.0 https://github.com/gazlan/Tiny-Basic-Interpreter Tiny Basic http://www.noniandjim.com/Jim/uproc/uproc.html Well, this tiny basic is not really all that tiny, in that the amount of memory it occupies is pretty large. But, this is because it is implemented in a way that it is easy to change, rather than compactness. This Tiny Basic is implemented using Anagram from Parsifal Software. Anagram is a LALR(1) parser generator. Of all the parser generators I have used (yacc, bison) or have tried to use, Anagram is the one I have had the most success with. Heck, I don't know my terminal production from a hole in the ground, and yet I have written successfully a number of parsers using this tool. Tiny Basic is the most complicated one I have ever done. I probably could not do anything more complicated. This one was hard enough.
Прежде всего, как пример работы с Anagram (http://www.parsifalsoft.com). Документации по нему нет (только on-line help), так что любой подробный пример интересен. Во-вторых, это больше C, чем Basic (см. grammar.txt). и, в-третьих, я присматриваю скриптовый движок для одного из своих проектов, так что пробую некоторые простые и расширяемые варианты.
http://www.squirrel-lang.org/ http://www.lua.org/about.html https://web.archive.org/web/20120105005420/http://hedgehog.oliotalo.fi/ возможные варианты скриптовых движков.
Спасибо, эти я знаю. Не выглядят подходящими для моих целей. До кучи - малоизвестный арабский проект: Ring Lite static library (https://github.com/ring-lang/ring)
Не совсем так. У меня есть некоторая программа с кнопочками и рюшечками, к которой хочется прикрутить пакетную обработку. Предполагается, что пользователь напишет простейший (a la Basic) скрипт, который и обработает список (скажем, все найденные в заданной директории файлы), используя для этого основной движок. При этом, хост и скрипт могут обмениваться примерно сотней параметров (простые типы, строки, массивы). Как именно все это должно выглядеть, пока не решил - присматриваюсь.