Conjunto de bibliotecas Swift para analisar, inspecionar, gerar e transformar código-fonte Swift como uma árvore de sintaxe fiel ao código original.
davidhalter/parso
Um parser de Python que cria árvores sintáticas, recupera-se de erros e preserva o código-fonte original entre versões do Python.
- Estrelas
- 678
- Forks
- 131
- Issues abertas
- 11
- Último commit
- há 5 dias
O que é?
Parso analisa o código-fonte Python e o transforma em uma árvore sintática, que pode ser examinada por meio de uma API enxuta. Ao contrário do módulo ast da biblioteca padrão, ele preserva espaços em branco e comentários; assim, chamar get_code() em um nó reproduz exatamente o texto original. Além disso, ele se recupera de erros de sintaxe em vez de parar no primeiro e pode apontar vários problemas em um único arquivo.
Parso permite analisar código de diferentes versões do Python carregando a gramática da versão escolhida. O projeto foi originalmente extraído do Jedi e é usado como camada de parsing em ferramentas para editores que precisam funcionar com código incompleto ou com erros enquanto o usuário digita.
O projeto pode ser instalado com pip e oferece funções como parso.parse() e parso.load_grammar() para trabalhar com árvores e listar erros.
Recursos principais
- 01Recupera-se de erros de sintaxe e continua a análise.
- 02Preserva espaços em branco e comentários ao analisar e reconstruir o código.
- 03Lista vários erros de sintaxe em um único arquivo.
- 04Permite selecionar a gramática de uma versão específica do Python.
- 05Oferece uma API enxuta para percorrer e analisar a árvore sintática.
Casos de uso
- Criar ferramentas para editores ou IDEs que precisam lidar com código incompleto.
- Desenvolver ferramentas de refatoração ou transformação de código-fonte que precisam preservar exatamente o texto original.
- Apontar vários erros de sintaxe de um arquivo Python de uma só vez.
- Analisar código Python usando gramáticas de diferentes versões do Python.
Início rápido
- 1
Instale parso do PyPI com pip
pip install parso
Antes de usar
- Há problemas conhecidos com as palavras-chave async/await no Python 3.6 e com o tratamento de from __future__ print_function.
- É listado um validador PEP8 em desenvolvimento que ainda não está em boas condições.
- A licença não está especificada claramente nos metadados.
Tópicos
Perguntas frequentes
- O que é parso?
- Um parser de Python que cria árvores sintáticas, recupera-se de erros e preserva o código-fonte original entre versões do Python. Parso analisa o código-fonte Python e o transforma em uma árvore sintática, que pode ser examinada por meio de uma API enxuta. Ao contrário do módulo ast da biblioteca padrão, ele preserva espaços em branco e comentários; assim, chamar get_code() em um nó reproduz exatamente o texto original. Além disso, ele se recupera de erros de sintaxe em vez de parar no primeiro e pode apontar vários problemas em um único arquivo.
- parso é gratuito? Qual é a licença?
- parso é open source sob a licença Other. Confira os termos da licença antes de usá-lo em produtos comerciais.
- parso ainda é mantido?
- Manutenção ativa. O último commit de parso foi em 2 de nov. de 2026.
- Para que posso usar parso?
- Criar ferramentas para editores ou IDEs que precisam lidar com código incompleto. Desenvolver ferramentas de refatoração ou transformação de código-fonte que precisam preservar exatamente o texto original. Apontar vários erros de sintaxe de um arquivo Python de uma só vez. Analisar código Python usando gramáticas de diferentes versões do Python.
- Como instalar parso?
- Instale parso do PyPI com pip: pip install parso
- Onde consigo parso?
- O código-fonte e as instruções de instalação estão no GitHub: https://github.com/davidhalter/parso
Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.
Projetos relacionados
Utilitário unist para percorrer e visitar nós em árvores sintáticas, como ASTs de Markdown, com filtro de teste e visitantes de entrada e saída.
Um gerador de parsers incremental e uma biblioteca de parsing que cria árvores de sintaxe concreta e as atualiza conforme os arquivos-fonte são editados.
Um parser completo de C99/C11 escrito em Python puro, que gera uma AST a partir do código-fonte C sem dependências externas.
Ferramenta JavaScript para transformar CSS com plugins, usada para validar, adicionar prefixos, aninhar, minificar e estender folhas de estilo.
Um parser de PHP escrito em PHP que transforma código-fonte PHP em uma árvore sintática abstrata para análise estática e manipulação de código.