Skip to content
EN

Cópia estática

Copiado de docs/decisions/adp-005.md em https://github.com/poppy-team/aipo-lang (MIT). Fixado na revisão ce47c4e070404fc41722ccd8e2b7b808b99062a8, blob 91bb55b8908ac16c3d561430a041f108c4f9239f. O repositório de origem permanece canônico; esta cópia é atualizada por um pull request de sincronização, não em tempo real.

ADP-005 — Limites de Recursão do Parser ​

  • Status: Aprovado & Implementado
  • Decisores: Poppy Team
  • Fase: Wave 1

Contexto ​

Parsers descendentes recursivos podem sofrer estouro de pilha (stack overflow) ao processar expressões artificialmente aninhadas em excesso (ex: ((((...10.000 parênteses...))))), resultando em pânico incontrolável do processo.


Decisões Tomadas ​

  1. O parser do Aipo implementa um contador explícito de profundidade de recursão.
  2. O limite padrão é fixado em 256 níveis de aninhamento.
  3. Se a profundidade for excedida, o compilador aborta com um diagnóstico gracioso AIPO_SYN_RECURSION_LIMIT_EXCEEDED sem pânico em Rust.