2015-08-05 2 views
1

Так что я знаю, что это может быть глупый вопрос и, скорее всего, невозможно, но есть ли способ в pyparsing для создания ключевых слов (например, для печати на python). Я пытаюсь создать интерпретатор для другой язык на python, чтобы вы могли писать на этом языке на android (поскольку файлы python можно запускать на python, но другой язык не может). Например, на этом языке есть оператор PUT, который печатает, есть ли способ в pyparsing «определить» этот оператор put, чтобы при импорте этого интерпретатора я мог писать PUT «Hello, World!». вместо (a = 'PUT "Hello, World", Result = p.parseString (a), результат печати [1])define Ключевые слова в pyparsing для переводчика

+1

Я в замешательстве, вы спрашиваете, как запустить свой собственный язык в интерпретаторе Python? – jonrsharpe

+0

Да, это основная идея. – brendan

+0

Вы можете [редактировать синтаксис Python] (http://stackoverflow.com/q/214881/3001761), но это далеко от тривиального. Обратите внимание, однако, что внедрение интерпретатора с использованием Python - это не то же самое, что модифицировать интерпретатор Python для чтения вашего языка. – jonrsharpe

ответ

0

Вместо того, чтобы писать совершенно новый язык, вы можете добавить ключевые слова в Python, как это делается в этом примере (http://pyparsing.wikispaces.com/file/view/stateMachine2.py/110934709/stateMachine2.py) на вики-пираринге. Парсер выбирает ваши пользовательские ключевые слова и заменяет их расширенным кодом Python, который реализует эту команду, а затем компилирует этот код как обычный модуль Python.

Если вы хотите написать чистую DSL, посмотрите пример приключений на той же странице примеров вики, в которой я реализовал простую DSL для запуска приключенческой игры с использованием простых команд.

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