76 lines
2.3 KiB
Markdown
76 lines
2.3 KiB
Markdown
# 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.
|