Обеспечивает ли ANTLR семантику - PullRequest
0 голосов
/ 31 марта 2012

В настоящее время я использую образец Python 2.5 с веб-сайта ANTLR. Мне действительно интересно, если грамматика уже производит семантику. Если ее нет, что я могу сделать или что я могу использовать (инструменты) для генерации семантики для python после анализа ее с помощью ANTLR?

Ответы [ 3 ]

2 голосов
/ 31 марта 2012

Нет инструмента для генерации семантики языка, это то, что вы должны реализовать самостоятельно.

Теперь, когда вы проанализировали код Python, вы можете сначала выполнить необходимую обработку, снова вывести его как код Python и использоватьсуществующая реализация языка Python для исполнения.

1 голос
/ 31 марта 2012

ANTLR позволяет вам определять семантику в терминах действий, связанных с правилами грамматики.Для простых задач это может быть удобно, но для больших грамматик все, что вы обычно делаете, это генерирует AST (абстрактное синтаксическое дерево), то есть представление того, что вы проанализировали, и которое удобнее обрабатывать изнутри программы, чем очень длинная строка.

Содержится ли это в примере, который вы используете, или его объем довольно сложно сказать, не видя код; -)

1 голос
/ 31 марта 2012

ANTLR обрабатывает разбор, но не семантику;В конце концов, это инструмент генерации парсера.Если бы вы добавили семантику, у вас была бы полная реализация Python (по модулю расширения библиотек).

...