2013-03-11 4 views
1

Я строю проект, и я столкнулся с проблемой. В основном я должен разбирать комментарии в стиле JavaDoc (например). Я знаю, что уже есть инструменты для разбора JavaDoc, но это был всего лишь пример. Формат моих данных будет что-то вроде:Простая грамматика в Python?

// Function: Divide 
// 
// Divides two integers. 
// 
// Parameters: 
// 
// x - The first integer. 
// y - The second integer. 
// 
// Returns: 
// 
// The two integers divided. 
// 
// See Also: 
// 
// <Multiply> 

я должен быть в состоянии установить ключевые слова (Funciton, параметры, Возвраты и т.д.). Кроме того, символы комментариев могут не всегда быть // (** или ; также возможны). Я знаю, что я не должен пытаться анализировать это, используя регулярное выражение, но с каким-то грамматическим синтаксическим анализатором. Мой вопрос основан на вашем опыте, который наиболее подходит для моего дела?

+0

[Grako] (https://pypi.python.org/pypi/grako/1.1.0) очень прост в использовании и очень гибкий, поскольку использует [PEG] (http://en.wikipedia.org)./wiki/Parsing_expression_grammar) (** Примечание ** Я автор Грако). – Apalala

ответ

0

Если вам нужно сделать парсер с манжетой, я рекомендую проверить antlr. Он очень прост в использовании (вам просто нужно написать правила), и он выведет весь код, необходимый для анализа в соответствии с вашими правилами.

http://www.antlr.org/wiki/display/ANTLR3/Python+runtime

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

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