prometeu-studio/docs/pbs/pull-requests/PR-024-pbs-parser-ast-interface-module-mode.md
2026-03-24 13:42:22 +00:00

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).
  • PbsParser com SourceKind/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 type e 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.md
  • docs/pbs/specs/11. AST Specification.md
  • docs/pbs/specs/12. Diagnostics Specification.md