prometeu-studio/docs/compiler/pbs/pull-requests/PR-19.3-pbs-parser-ast-globals-barrel-and-lifecycle-markers.md

1.9 KiB

PR-19.3 - PBS Parser and AST for Globals, Barrel, and Lifecycle Markers

Briefing

Depois do corte normativo e do refactor estrutural do dependency graph, PBS precisa aceitar a nova surface da familia 19 no frontend sintatico e no AST:

  1. declare global,
  2. entradas global em mod.barrel,
  3. atributos [Init] e [Frame].

Esta PR faz o corte parser+AST, sem ainda fechar toda a semantica.

Target

Estender parser e AST para suportar:

  1. declaracoes global,
  2. barrel declarations mod global / pub global,
  3. markers [Init] e [Frame] sobre fn name() -> void.

Dependencies

Prerequisitos diretos:

  1. PR-19.1
  2. PR-19.2

Scope

  1. Atualizar lexer/parser/top-level declaration parsing conforme necessario.
  2. Atualizar AST model para representar globals e markers de lifecycle.
  3. Atualizar barrel AST para distinguir global de const.
  4. Preservar spans e attribution adequados.

Non-Goals

  1. Nao validar ainda dependency graph de globals.
  2. Nao validar ainda [InitAllowed] em host methods.
  3. Nao implementar lowering.
  4. Nao implementar published wrapper.

Method

  1. Introduzir novos nodes/surfaces com identidade explicita no AST.
  2. Reusar padroes atuais de attributes/markers sem heuristicas textuais.
  3. Preservar recovery e diagnosticos sintaticos existentes.

Acceptance Criteria

  1. Parser aceita declare global Name: T = expr;.
  2. Parser aceita mod global Name; e pub global Name;.
  3. AST distingue global de const.
  4. AST registra [Init] e [Frame] como markers explicitos.
  5. Spans e recovery permanecem defensaveis.

Tests

  1. Fixtures positivas de parse para declare global, barrel global, [Init] e [Frame].
  2. Fixtures negativas de parse para formas claramente malformed.
  3. Regressao do conjunto atual de parser/AST.

Affected Artifacts

  1. parser PBS
  2. AST model PBS
  3. testes de parser/AST

Open Questions

  1. Nenhuma. A semantica fina fica para as PRs 19.4 a 19.6.