prometeu-studio/docs/compiler/pbs/pull-requests/PR-11.5-pbs-expr-parser-regression-hardening-and-final-cleanup.md
2026-03-24 13:42:37 +00:00

2.3 KiB

PR-11.5 - PBS Expr Parser Regression Hardening and Final Cleanup

Briefing

As PRs anteriores reduzem a complexidade estrutural de PbsExprParser. Esta PR fecha a trilha com limpeza final, eliminacao de duplicacao residual e endurecimento de regressao, sem alterar funcionalidade.

Motivation

Dor atual que esta PR resolve

  1. Refactors estruturais em parser de expressao podem mudar detalhes finos sem quebrar imediatamente todos os testes.
  2. Ao final da decomposicao, costuma restar duplicacao pequena e helpers obsoletos.
  3. O fechamento da trilha precisa garantir equivalencia observavel e uma fachada final pequena.

Target

Concluir a trilha de refactor do parser de expressoes:

  1. limpeza estrutural final,
  2. consolidacao dos helpers remanescentes,
  3. cobertura de regressao para precedence, postfix, tuples e control-flow expressions.

Dependencies

Prerequisitos diretos:

  1. PR-11.1
  2. PR-11.2
  3. PR-11.3
  4. PR-11.4

Scope

  1. Remover codigo duplicado ou caminhos obsoletos apos as extracoes.
  2. Garantir que PbsExprParser fique reduzido a composicao/orquestracao.
  3. Expandir regressao quando necessario para spans, diagnosticos e precedence.

Non-Goals

  1. Nao alterar gramatica de expressoes.
  2. Nao introduzir novas formas sintaticas.
  3. Nao alterar PbsAst ou ParseErrors.

Method

O que deve ser feito explicitamente

  1. Fazer uma passada final de consolidacao.
  2. Verificar equivalencia com foco em:
    • precedence,
    • associatividade,
    • tuple/group lookahead,
    • control-flow expression recovery.
  3. Encerrar a trilha com um PbsExprParser pequeno, claro e estavel.

Acceptance Criteria

  1. PbsExprParser termina como fachada/orquestrador, nao como concentrador de todas as regras.
  2. Nao ha mudanca funcional observavel em AST, spans ou diagnosticos.
  3. Suite do frontend PBS passa integralmente.

Tests

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

Affected Documents

  1. Nenhum documento normativo.

Open Questions

  1. Nenhuma. A partir desta PR, qualquer ajuste restante deve ser tratado como mudanca funcional separada.