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>
28 lines
1.5 KiB
Markdown
28 lines
1.5 KiB
Markdown
## 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
|