2.5 KiB
2.5 KiB
PR-11.4 - PBS Expr Parser Literals, Patterns and Shared Token Utilities
Briefing
Depois de extrair control-flow e primary/postfix, restam em PbsExprParser alguns clusters menores mas sensiveis: parsing de literais/padroes, error path, consumo de tokens e utilitarios de parse numerico/string.
Esta PR consolida esses pontos em utilitarios dedicados, ainda sem mudanca funcional.
Motivation
Dor atual que esta PR resolve
- Parsing de literal aparece em mais de um lugar (
primarye switch pattern). error path,consumeMemberName,parseLong/Int/DoubleOrDefaulteunescapeStringsao infra compartilhada e hoje permanecem acoplados ao parser principal.- Sem consolidar essa base, o parser termina menor, mas ainda com detalhes mecanicos espalhados.
Target
Extrair infra compartilhada de expressao:
- parsing de literais,
- parsing de
error path, - parsing de patterns simples,
- token utilities e decode helpers.
Dependencies
Prerequisitos diretos:
PR-11.1PR-11.2PR-11.3
Scope
- Extrair
parseLiteralPatternExpression,parseErrorPath,parseHandlePatterne helpers correlatos. - Consolidar
consume,consumeMemberName,span,report. - Consolidar
parseLongOrDefault,parseIntOrDefault,parseDoubleOrDefault,unescapeString.
Non-Goals
- Nao alterar as regras de literal recovery.
- Nao alterar o decode de strings.
- Nao alterar a estrutura de
PbsAst.ErrorPath.
Method
O que deve ser feito explicitamente
- Reunir parsing de literal/pattern em componente reutilizavel.
- Mover utilitarios mecanicos para helpers claros e pequenos.
- Garantir que toda chamada mantenha a mesma atribuicao de spans e diagnosticos.
- Evitar criar uma util-class genérica demais; manter helpers focados no dominio de expression parsing.
Acceptance Criteria
PbsExprParserdeixa de concentrar parsing repetido de literais/padroes e utilitarios basicos.- Parsing de strings, numeros e
error pathpermanece equivalente. - A suite de parser continua verde sem atualizar comportamento esperado.
Tests
:prometeu-compiler:frontends:prometeu-frontend-pbs:test --tests *PbsExprParserTest*:prometeu-compiler:frontends:prometeu-frontend-pbs:test --tests *PbsParserTest*:prometeu-compiler:frontends:prometeu-frontend-pbs:test --tests *PbsSemanticsDeclarationsTest*
Affected Documents
- Nenhum documento normativo.
Open Questions
- Nenhuma de arquitetura. Esta PR e de consolidacao local.