HeadlinesBriefing HeadlinesBriefing.com

Yantra: Gerador de Analisador C++ com Percurso de AST

Hacker News •
×

Yantra é um gerador de analisador C++ que constrói toda a AST primeiro, depois a percorre de cima para baixo em um passo separado, chamando ações semânticas. Ao contrário da maioria dos geradores de analisador LALR (Yacc, Bison, Lemon) que executam ações semânticas durante a análise, o Yantra permite que a ação de uma regra pai seja executada antes de seus filhos serem visitados. Isso permite que uma única gramática defina múltiplos percursos, como um que emite C++ e outro que emite Java. As classes AST e de percurso são geradas automaticamente. O Yantra possui um léxico integrado com suporte a modos para comentários aninhados, saída opcional de arquivo único amalgamado com main() gerado, e requer apenas um compilador C++23. Está licenciado sob MIT e atualmente está na versão 0.5.1, pré-1.0, mantido por um único desenvolvedor.

Um pequeno exemplo de gramática demonstra o comportamento de percurso de cima para baixo: ao analisar "1 + 2 + 3", ele imprime "Adding" primeiro (a raiz), seguido pelas saídas de números. Essa ordem só é possível porque a árvore completa existe antes de qualquer ação ser executada.

As limitações conhecidas estão documentadas na página do GitHub do projeto. O repositório está disponível em https://github.com/TantrixAuto/yantra, com feedback e perguntas bem-vindos pelo mantenedor.

A ferramenta usa o CMake para construção e produz o executável ycc para gerar analisadores a partir de arquivos de gramática.

Entidades-chave: Empresas: TantrixAuto

Fonte: Hacker News · Resumido por HeadlinesBriefing