7 votes

Analyse lexicale du langage de programmation Python

Quelqu'un sait-il où existe un fichier de spécification FLEX ou LEX pour Python ? Par exemple, il s'agit d'une spécification LEX pour le langage de programmation ANSI C : http://www.quut.com/c/ANSI-C-grammar-l-1998.html

Pour info, j'essaie d'intégrer la mise en évidence du code dans une application Cocoa. Regex ne fera pas l'affaire car je veux aussi une analyse grammaticale pour plier le code et reconnaître les blocs.

6voto

Laurence Gonsalves Points 50783

Lex est généralement utilisé pour la tokénisation, et non pour l'analyse complète. Les projets qui utilisent flex/lex pour le tokenizing utilisent typiquement yacc/bison pour le parsing réel.

Vous voudrez peut-être jeter un coup d'œil à ANTLR une alternative plus "moderne" à lexx & yacc.

Le projet ANTLR a un repo Github contenant de nombreuses grammaires ANTLR 4 dont au moins un pour Python 3 .

3voto

ephemient Points 87003

grammaire.txt est la grammaire officielle et complète de Python -- pas directement lex compatible, mais vous devriez être capable de le transformer en une forme appropriée.

0voto

Ned Deily Points 40248

Avez-vous envisagé d'utiliser l'un des surligneurs de code existants, tels que Pygments ?

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X