Учебник по модулю парсера Python - PullRequest
2 голосов
/ 19 марта 2011

Я пишу приложение, которое читает входной файл, который в настоящее время имеет свою собственную грамматику, которая обрабатывается lex / yacc.

Я хочу изменить это, чтобы сделать этот входной файл Pythonвместо сценария, и мне было интересно, если кто-то может указать мне руководство для начинающих по использованию модуля анализатора в Python.Я довольно новичок в самом Python, но прошел через большую часть онлайн-учебника.

Из того, что я исследовал, я знаю, что есть варианты (такие как pyparsing), которые могут позволить мне сохранить существующую грамматику и использовать Pyparsing в качестве замены для lex / yacc.Однако мне любопытно изучить модуль синтаксического анализатора Python более подробно и изучить его возможности.

Спасибо.

Ответы [ 3 ]

3 голосов
/ 19 марта 2011

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

2 голосов
/ 16 марта 2017

Я рекомендую вам проверить https://github.com/erezsh/lark

Это очень удобно для новичков при разборе: он может анализировать ВСЕ контекстно-свободные грамматики, автоматически строит AST (с номерами строк и столбцов) и принимаетграмматика в формате EBNF, которая считается стандартной и которую очень легко написать.

2 голосов
/ 19 марта 2011

Как сказал Йохен, модуль perser предназначен для анализа кода Python. Я думаю, вам лучше всего проверить список парсов Неда Батчелдера . PyParsing делает вещи совсем не так, как Lex и Yacc, поэтому я не уверен, почему вы думаете, что можете сохранить существующую грамматику и лексер. Лучшей ставкой может быть набор инструментов PLY Дэвида Бизли. Он прочный и имеет отличную документацию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...