2.0 KiB
2.0 KiB
PR-006.3 - PBS Syntax Completeness and Module Hygiene
Briefing
Depois do hardening sintatico principal, ainda restam lacunas de completude do contrato de sintaxe/modulo que afetam determinismo diagnostico e aderencia fina ao spec. Este PR fecha essas lacunas com foco em regras formais e higiene de modulo.
Target
- Specs:
docs/pbs/specs/3. Core Syntax Specification.md(secoes 5.1, 6.1.1, 8, 12)docs/pbs/specs/12. Diagnostics Specification.md(phase = syntax/linking)
- Codigo:
prometeu-compiler/frontends/prometeu-frontend-pbs/src/main/java/p/studio/compiler/pbs/parser/PbsParser.java.../pbs/parser/PbsExprParser.java.../pbs/lexer/PbsLexer.java.../pbs/linking/PbsModuleVisibilityValidator.java
Method
- Atributos (
AttrList) em.pbs:- introduzir parse minimo de atributo no frontend;
- em modulo ordinario, rejeitar com diagnostico especifico e recuperacao estavel.
- Regras de modulo:
- validar erro quando modulo possui
mod.barrelmas zero arquivos.pbs.
- validar erro quando modulo possui
- Ajustes de forma sintatica:
- aceitar trailing comma em
StructFieldList; - aplicar limites de aridade: tupla tipo (1..6) e tupla literal (2..6).
- aceitar trailing comma em
- Lexer/string:
- diagnosticar escape de string invalido de forma deterministica (sem aceitar silenciosamente).
Acceptance Criteria
- Uso de atributos em modulo ordinario gera erro deterministico com span primario no atributo.
- Modulo sem
.pbse commod.barrelnao passa silenciosamente. declare struct S(a: int,);passa no parser.- Tupla tipo com mais de 6 campos falha deterministicamente.
- Tupla literal com mais de 6 itens falha deterministicamente.
- Escape invalido em string gera erro lexico dedicado.
Tests
- Novo teste de parser para atributos em
.pbscom recuperacao e codigo estavel. - Novo teste de linking para modulo sem
.pbs. - Testes de parser para trailing comma em struct fields.
- Testes de parser para limites de aridade de tupla tipo/tupla literal.
- Teste de lexer para escape invalido em string.