1.8 KiB
1.8 KiB
PR-024 - PBS Parser and AST Support for Interface-Module Mode
Briefing
Hoje o parser rejeita atributos no topo e declare host/declare builtin type sempre.
Em interface-module mode, essas forms reservadas devem ser parseadas e representadas no AST.
Motivation
Sem AST/parser para forms reservadas:
- nao ha como validar semantica de SDK/stdlib,
- nao ha como extrair metadata (
Host,BuiltinType,Slot,IntrinsicCall), - e nao ha base para linking/lowering dessas surfaces.
Target
PbsAst(novos nodes de declaracao e metadata de atributo).PbsParsercomSourceKind/mode-aware parsing.
Scope
- Adicionar no AST:
HostDecl,BuiltinTypeDecl, shapes de atributo e anexacao por posicao valida. - Em modo
PROJECT: manter rejeicao de forms reservadas e atributos fora de regras. - Em modo
SDK_INTERFACE: parsear forms reservadas e attributes permitidas.
Method
- Tornar parser mode-aware (
ORDINARY,INTERFACE_MODULE). - Substituir rejeicao hardcoded por gating por mode.
- Preservar spans, recovery e diagnosticos deterministicos.
Acceptance Criteria
- Modulo ordinario continua rejeitando
declare host/declare builtin typee usos invalidos de atributos. - Interface module aceita as forms reservadas sintaticamente previstas.
- AST exposto inclui metadata necessaria para fases seguintes.
Tests
- Parser tests para ordinario vs interface-module com mesmos tokens.
- Tests de recovery e spans nas novas declaracoes.
- Tests negativos para formas reservadas malformadas.
Non-Goals
- Julgamento semantico completo das attributes reservadas.
- Resolucao de imports reservados (ja coberta em PR anterior).
Affected Documents
docs/pbs/specs/3. Core Syntax Specification.mddocs/pbs/specs/11. AST Specification.mddocs/pbs/specs/12. Diagnostics Specification.md