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>
1.5 KiB
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 #1ohne Schlüsselwert enthält - THEN nennt die Diagnose
SEEKGTund 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