prometeu-studio/docs/pbs/pull-requests/PR-11.4-pbs-expr-parser-literals-patterns-and-shared-token-utilities.md

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

  1. Parsing de literal aparece em mais de um lugar (primary e switch pattern).
  2. error path, consumeMemberName, parseLong/Int/DoubleOrDefault e unescapeString sao infra compartilhada e hoje permanecem acoplados ao parser principal.
  3. Sem consolidar essa base, o parser termina menor, mas ainda com detalhes mecanicos espalhados.

Target

Extrair infra compartilhada de expressao:

  1. parsing de literais,
  2. parsing de error path,
  3. parsing de patterns simples,
  4. token utilities e decode helpers.

Dependencies

Prerequisitos diretos:

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

Scope

  1. Extrair parseLiteralPatternExpression, parseErrorPath, parseHandlePattern e helpers correlatos.
  2. Consolidar consume, consumeMemberName, span, report.
  3. Consolidar parseLongOrDefault, parseIntOrDefault, parseDoubleOrDefault, unescapeString.

Non-Goals

  1. Nao alterar as regras de literal recovery.
  2. Nao alterar o decode de strings.
  3. Nao alterar a estrutura de PbsAst.ErrorPath.

Method

O que deve ser feito explicitamente

  1. Reunir parsing de literal/pattern em componente reutilizavel.
  2. Mover utilitarios mecanicos para helpers claros e pequenos.
  3. Garantir que toda chamada mantenha a mesma atribuicao de spans e diagnosticos.
  4. Evitar criar uma util-class genérica demais; manter helpers focados no dominio de expression parsing.

Acceptance Criteria

  1. PbsExprParser deixa de concentrar parsing repetido de literais/padroes e utilitarios basicos.
  2. Parsing de strings, numeros e error path permanece equivalente.
  3. A suite de parser continua verde sem atualizar comportamento esperado.

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 *PbsSemanticsDeclarationsTest*

Affected Documents

  1. Nenhum documento normativo.

Open Questions

  1. Nenhuma de arquitetura. Esta PR e de consolidacao local.