## 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