Я хочу что-то простое, чтобы экспериментировать/взламывать. Я создал много интерпретаторов/компиляторов для c, и я просто хочу что-то простое. Базовый BASIC: D
Если вы не знаете (я сделал свой поиск google...), yacc/bison - единственный способ?
спасибо
Ни один из перечисленных в TheFreeCountry не является приемлемым? Ни один из них не находится на Python, но я должен подумать, что начиная с XBLite может быть более полезным, чем начиная с Yacc/Bison/PLY.
Кроме того, Vb2py может быть лучшей стартовой позицией, чем PLY.
Если вы должны идти по маршруту PLY, однако, рассмотрите грамматику MOLE Basic в качестве отправной точки вместо того, чтобы пытаться опрокинуть свой собственный царапина.
PLY - отличная библиотека для создания парсера для Python. Он имеет простой интерпретатор BASIC как один из его примерных сценариев. Вы можете начать там.
Вы также можете изучить виртуальную машину Parrot, которая, согласно wikipedia today, имеет некоторую поддержку BASIC.
Я также не знаю базового интерпретатора под рубином, но при достаточном времени и интересе рубин легко "поддерживает" написание интерпретатора для любого языка, который вам нравится: Разработка Agile DSL в Ruby. Должен признать, что этот подход связан с некоторыми инвестициями времени.:( В конце презентации есть некоторые ссылки на дальнейшие чтения о DSL.
miniBasic в ruby доступен здесь. Rockit кажется ПУТЕМ больше удовольствия, чем racc.
Существует pybasic (базовый python), rockit-minibasic (rubybasic).
Чтобы сделать их способными использовать gui, необходимо разработать расширения с инструментами киви и обуви gui для pybasic и rockit-minibasic соответственно и аналогично prima gui для perlbasic, если когда-либо существует.