71 lines
1.9 KiB
Markdown
71 lines
1.9 KiB
Markdown
# 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.
|