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.

Foi útil?

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?

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top