Análise lexical da linguagem de programação Python
-
20-09-2019 - |
Pergunta
Alguém sabe onde existe um arquivo de especificação Flex ou Lex para Python? Por exemplo, esta é uma especificação LEX para a linguagem de programação ANSI C: http://www.quut.com/c/ansi-cgrammar-l-1998.html
Para sua informação, estou tentando escrever o código destacando um aplicativo de cacau. Regex não fará isso porque também quero que a análise gramatical dobre o código e reconheça blocos.
Solução
O Lex é normalmente usado apenas para tokenização, não uma análise completa. Os projetos que usam Flex/Lex para tokenize normalmente usam YACC/BISON para a análise real.
Você pode querer dar uma olhada em Antlr, uma alternativa mais "moderna" a Lexx & Yacc.
O projeto ANTLR tem um repo Github contendo muitas gramas Antlr 4 incluindo pelo menos um para Python 3.
Outras dicas
Grammar.txt é a gramática oficial e completa do Python - não diretamente lex
Compatível, mas você poderá massagear -o em uma forma adequada.
Você já pensou em usar um dos marcadores de código existentes, como Pigmentos?