# 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.