2010-06-05 4 views
6

Quels outils sont disponibles en Python pour faciliter l'analyse d'une grammaire sans contexte?Analyse d'une grammaire sans contexte en Python

Bien sûr, il est possible de lancer le mien, mais je cherche un outil générique qui peut générer un analyseur pour un CFG donné.

+1

Voulez-vous * analyser la grammaire * ou analyser l'entrée d'une manière définie par la grammaire? – Dario

+1

Entrée d'analyse définie par la grammaire, désolé, je n'ai pas précisé cela. –

Répondre

7

Je recommande chaleureusement PLY - c'est un clone Lex/Yacc en Python qui utilise les fonctions d'introspection du langage de manière sophistiquée pour permettre une spécification très naturelle de la grammaire. Yacc, si vous vous souvenez, est l'incarnation même des CFG dans un DSL compréhensible qui définit comment on les analyse.

Je l'ai utilisé pour mettre en œuvre mon parser for ANSI C et l'interaction avec PLY était presque sans effort.

+0

Merveilleux! Merci, Eli. –