prometeu-studio/docs/compiler/pbs/pull-requests/PR-10.5-pbs-parser-recovery-utilities-and-regression-hardening.md
2026-03-24 13:42:37 +00:00

2.7 KiB

PR-10.5 - PBS Parser Recovery Utilities and Regression Hardening

Briefing

As PRs anteriores reduzem a complexidade estrutural de PbsParser. Esta PR fecha a trilha com consolidacao de recovery/utilitarios e endurecimento de regressao, ainda sem alterar funcionalidade.

O objetivo e evitar que a decomposicao introduza pequenas divergencias em diagnosticos, spans ou pontos de reinicio.

Motivation

Dor atual que esta PR resolve

  1. Recovery e helpers de consumo sao sensiveis e podem ficar duplicados apos a extracao.
  2. Sem cobertura adicional, uma refatoracao estrutural grande pode preservar testes principais e ainda mudar detalhes de parser.
  3. O parser precisa terminar menor, mas tambem com fronteiras de manutencao claras.

Target

Consolidar a etapa final do refactor:

  1. recovery de topo e de atributos,
  2. helpers de consumo/report,
  3. regressao de spans/diagnosticos,
  4. limpeza final de PbsParser.

Dependencies

Prerequisitos diretos:

  1. PR-10.1
  2. PR-10.2
  3. PR-10.3
  4. PR-10.4

Scope

  1. Consolidar consume, consumeForToken, consumeDeclarationTerminator, consumeBalancedBraces, synchronizeTopLevel e recovery de atributo em utilitarios coesos.
  2. Remover duplicacao residual entre subparsers.
  3. Adicionar ou endurecer testes de regressao para:
    • spans,
    • erros esperados,
    • recovery em topo e em bloco,
    • modos ORDINARY e INTERFACE_MODULE.

Non-Goals

  1. Nao alterar taxonomia de ParseErrors.
  2. Nao introduzir novas construcoes sintaticas.
  3. Nao reescrever o lexer ou PbsExprParser.

Method

O que deve ser feito explicitamente

  1. Fazer uma passada final de consolidacao estrutural.
  2. Eliminar helpers obsoletos ou duplicados apos as extracoes.
  3. Verificar equivalencia observavel com foco em spans e recovery.
  4. Encerrar a trilha com PbsParser como fachada pequena e clara.

Acceptance Criteria

  1. PbsParser fica restrito a composicao/orquestracao e nao volta a concentrar logica de parse pesado.
  2. Recovery e consumo de token ficam centralizados e sem duplicacao relevante.
  3. Suite do frontend PBS passa integralmente.
  4. Nao ha mudanca funcional observavel em parse, AST ou diagnosticos.

Tests

  1. :prometeu-compiler:frontends:prometeu-frontend-pbs:test --tests *PbsParserTest*
  2. :prometeu-compiler:frontends:prometeu-frontend-pbs:test --tests *PbsParserStatementsTest*
  3. :prometeu-compiler:frontends:prometeu-frontend-pbs:test --tests *PbsExprParserTest*
  4. :prometeu-compiler:frontends:prometeu-frontend-pbs:test

Affected Documents

  1. Nenhum documento normativo.

Open Questions

  1. Nenhuma de arquitetura. A partir desta PR, qualquer mudanca adicional deve ser tratada como evolucao funcional separada, nao como parte do refactor estrutural.