Files
TerminalBasic/openspec/changes/archive/2026-09-04-phase-3-isam/specs/sprach-frontend/spec.md
Chili Palmer e49a231a68 OpenSpec: phase-3-isam archiviert, Delta-Specs gesynct
Neue Capability isam-datenbank mit 9 Anforderungen und 25 Szenarien:
Tabellenbindung an eine Dateinummer, Indexverwaltung, Cursorbewegung,
Schluesselsuche, Satzoperationen, Transaktionen mit Ruecknahme,
Vergleichsreihenfolge, Pufferverwaltung und das eigene Dateiformat.

sprach-frontend um eine Anforderung erweitert: ISAM-Anweisungen und
-Funktionen in Grammatik und Signaturpruefung.

Die Delta-Spec wurde vor dem Archivieren an die Original-Hilfe
angeglichen -- Cursorlage nach SETINDEX und DELETE, Fehlercode der Suche
ueber den NULL-Index. Die Change-Notiz umfang-und-signaturen.md haelt
Umfangsabgleich, Argumentformen mit Quellenangabe je Themenseite und die
Verifikationsbefunde fest.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-04 11:38:10 +02:00

1.5 KiB

ADDED Requirements

Requirement: ISAM-Anweisungen und -Funktionen in Grammatik und Signaturprüfung

Der Parser SHALL die ISAM-Anweisungen und -Funktionen des Vorbilds als eigene Konstrukte erkennen, und die Semantik SHALL für jede eine Signatur führen (Argumentanzahl und -typen). Der maßgebliche Umfang ergibt sich aus dem Sprachinventar; er umfasst mindestens CREATEINDEX, DELETEINDEX, SETINDEX, GETINDEX$, INSERT, RETRIEVE, UPDATE, DELETE, DELETETABLE, MOVEFIRST, MOVELAST, MOVENEXT, MOVEPREVIOUS, SEEKEQ, SEEKGT, SEEKGE, BEGINTRANS, COMMITTRANS, ROLLBACK, ROLLBACK ALL, SAVEPOINT, SETMEM und BOF. Eine fehlerhafte Verwendung MUST eine Diagnose erzeugen, die das Element namentlich nennt; ein ISAM-Element MUST NOT als unbekannter Bezeichner oder mit einem generischen Syntaxfehler abgewiesen werden (Guiding Principle).

Scenario: ISAM-Anweisung wird als solche erkannt

  • WHEN ein Modul SETINDEX #1, "NachName" enthält
  • THEN entsteht keine Diagnose „unbekannter Bezeichner" und die Anweisung wird als ISAM-Anweisung erfasst

Scenario: Falsche Argumentanzahl wird namentlich gemeldet

  • WHEN ein Modul SEEKGT #1 ohne Schlüsselwert enthält
  • THEN nennt die Diagnose SEEKGT und die erwartete Argumentanzahl

Scenario: Typprüfung des Satzarguments

  • WHEN RETRIEVE #1, x$ mit einem String statt einer Variablen des Tabellentyps geprüft wird
  • THEN wird „Type mismatch" mit Quelltextposition gemeldet