prometeu-studio/docs/pbs/pull-requests/PR-004-pbs-parser-statements-and-control-flow.md
2026-03-24 13:42:19 +00:00

1.7 KiB

PR-004 - PBS Parser Statements and Control Flow

Briefing

O parser atual cobre apenas let, return e expression statement. Este PR implementa o bloco de statements exigido pela spec para viabilizar semantica de fluxo e validacoes posteriores.

Target

  • Specs:
    • docs/pbs/specs/3. Core Syntax Specification.md (secao 9)
    • docs/pbs/specs/11. AST Specification.md (secao 9)
  • Codigo:
    • prometeu-compiler/frontends/prometeu-frontend-pbs/src/main/java/p/studio/compiler/pbs/parser/PbsParser.java
    • prometeu-compiler/frontends/prometeu-frontend-pbs/src/main/java/p/studio/compiler/pbs/ast/PbsAst.java
    • prometeu-compiler/frontends/prometeu-frontend-pbs/src/main/java/p/studio/compiler/pbs/parser/ParseErrors.java

Method

  1. Adicionar parser para assign, if, for, while, break, continue.
  2. Introduzir let const e modelagem de LValue (sem call chain em alvo de atribuicao).
  3. Implementar validacao sintatica de forma de for (from/until/step).
  4. Marcar uso invalido de break/continue fora de loop como erro deterministico.
  5. Preservar recovery por fronteira de statement (; e fechamento de bloco).

Acceptance Criteria

  • AST de bloco representa todas as formas de Stmt da secao 9.
  • Atribuicao e statement, nao expressao.
  • break/continue fora de loop emite diagnostico estavel.
  • for e while parseiam com estrutura e spans corretos.
  • Targets de atribuicao invalidos sao rejeitados no parser.

Tests

  • PbsParserStatementsTest novo cobrindo:
    • let, let const, assign simples e composta;
    • if/else, for com e sem step, while;
    • break/continue valido e invalido;
    • recovery apos statements malformados.