1.9 KiB
1.9 KiB
PR-005 - PBS Parser Expressions, Optional/Result, and Apply
Briefing
A gramatica de expressoes da spec inclui formas que ainda nao existem no frontend (apply, else, switch, handle, new, bind, some/none/ok/err, member/postfix avancado).
Este PR fecha a cobertura sintatica dessas expressoes e preserva as regras de precedencia/rejeicao.
Target
- Specs:
docs/pbs/specs/3. Core Syntax Specification.md(secao 10, 13, 14)docs/pbs/specs/11. AST Specification.md(secoes 9, 10)
- Codigo:
prometeu-compiler/frontends/prometeu-frontend-pbs/src/main/java/p/studio/compiler/pbs/parser/PbsExprParser.javaprometeu-compiler/frontends/prometeu-frontend-pbs/src/main/java/p/studio/compiler/pbs/ast/PbsAst.javaprometeu-compiler/frontends/prometeu-frontend-pbs/src/main/java/p/studio/compiler/pbs/parser/ParseErrors.java
Method
- Implementar cadeia de precedencia completa incluindo
applyright-associative. - Implementar
elseextraction,ifexpression,switch,handleeas. - Implementar postfixes: member access, call sugar, propagate
!. - Suportar primarias:
this,new,bind,some,none,ok,err, unit e tuple expr. - Rejeitar cadeias nao associativas e formas proibidas (
?propagation, single-slot tuple literal).
Acceptance Criteria
- Parser respeita precedencia/associatividade normativa (incluindo
applyeelse). a < b < cea == b == ccontinuam rejeitados deterministicamente.ifexpression exigeelsee bloco nos ramos.switchehandleparseiam mapa de arms e wildcard conforme a gramatica.- Superficies
optional/resultsao parseadas sem inferir semantica indevida.
Tests
PbsExprParserTestampliado com:- precedencia completa e associatividade;
- expressoes
applyencadeadas; switch/handlevalidos e invalidos;some/none/ok/err/bind/new;- cenarios negativos obrigatorios da secao 12 de syntax.