36 lines
1.6 KiB
Markdown
36 lines
1.6 KiB
Markdown
# PR-011 - PBS Gate U Conformance Fixtures
|
|
|
|
## Briefing
|
|
A spec exige evidencia de conformidade (Gate U), mas o frontend ainda tem poucos testes unitarios sem fixture matrix.
|
|
Este PR cria a infraestrutura e a bateria minima de fixtures para validar lexer, parser, semantica, diagnosticos e lowering.
|
|
|
|
## Target
|
|
- Specs:
|
|
- `docs/pbs/specs/11. AST Specification.md` (secao 12)
|
|
- `docs/pbs/specs/13. Lowering IRBackend Specification.md` (secao 8)
|
|
- `docs/general/specs/13. Conformance Test Specification.md`
|
|
- Codigo:
|
|
- novo pacote de teste/fixtures em `prometeu-compiler/frontends/prometeu-frontend-pbs/src/test/`.
|
|
|
|
## Method
|
|
1. Introduzir harness de fixture com entrada `.pbs/.barrel` + expectativa estruturada.
|
|
2. Cobrir casos validos das familias obrigatorias de AST e fluxo de parse.
|
|
3. Cobrir casos invalidos obrigatorios (missing closer, non-assoc chains, formas fora de slice).
|
|
4. Adicionar asserts de spans e identidade de diagnostico (code/phase/template).
|
|
5. Integrar suite no gradle test da frontend PBS.
|
|
|
|
## Acceptance Criteria
|
|
- Existe fixture matrix positiva e negativa para lexer/parser/semantica/lowering.
|
|
- Gate U cobre familias obrigatorias de declaracao, statement e expressao.
|
|
- Casos de recovery garantem AST coerente mesmo com erro.
|
|
- Conformidade e verificavel de forma reproduzivel em CI.
|
|
- Falhas mostram diff util entre esperado e obtido.
|
|
|
|
## Tests
|
|
- `PbsConformanceFixtureTest` novo com subconjuntos:
|
|
- `valid/` para parse e lowering;
|
|
- `invalid/syntax/`;
|
|
- `invalid/static-semantics/`;
|
|
- `invalid/lowering/`.
|
|
- Execucao via `./gradlew :prometeu-compiler:frontends:prometeu-frontend-pbs:test`.
|