28 lines
1.6 KiB
Markdown
28 lines
1.6 KiB
Markdown
## MODIFIED Requirements
|
|
|
|
### Requirement: Jedes dokumentierte Element besitzt eine Signatur
|
|
Die Semantik SHALL für jedes im Sprachinventar geführte Element eine
|
|
Signatur besitzen (Argumentanzahl und -typen) — auch für Elemente, deren
|
|
Laufzeitverhalten noch aussteht. Ein im Inventar geführtes Element MUST
|
|
NOT als unbekannter Bezeichner oder mit einem generischen Syntaxfehler
|
|
abgewiesen werden; die Diagnose bzw. der Laufzeitfehler MUST es
|
|
namentlich nennen (Guiding Principle). Das gilt insbesondere für die
|
|
Gruppen, die bisher gar keine Signatur haben: die finanzmathematischen
|
|
Funktionen, die Record-Konvertierungsfunktionen (`MK…$`/`CV…`), die
|
|
Dateisystem-Funktionen `CURDIR$`, `DIR$`, `CHDRIVE`, sowie `LPOS`,
|
|
`STACK`, `SYSTEM`, `ERDEV`/`ERDEV$` und `SetFormatCC`.
|
|
|
|
Die TerminalBasic-Erweiterung TIMEZONEKNOWN SHALL als parameterlose INTEGER-Funktion eine Signatur besitzen und im Inventar mit ihrer tatsächlichen Umsetzung geführt sein.
|
|
|
|
#### Scenario: Element ohne Laufzeitverhalten wird namentlich abgewiesen
|
|
- **WHEN** ein Modul eine im Inventar als `offen` geführte Funktion verwendet
|
|
- **THEN** nennt die Ablehnung deren Namen und nicht „unbekannter Bezeichner"
|
|
|
|
#### Scenario: Argumentprüfung ohne Laufzeitverhalten
|
|
- **WHEN** ein Modul `MKL$()` ohne Argument enthält
|
|
- **THEN** meldet die Semantik eine Argumentanzahl-Diagnose, die `MKL$` nennt
|
|
|
|
#### Scenario: Signatur der Zonenzustandsabfrage
|
|
- **WHEN** PRINT TIMEZONEKNOWN übersetzt wird
|
|
- **THEN** entsteht eine INTEGER-Funktionsabfrage; TIMEZONEKNOWN(1) wird mit benannter Argumentanzahl-Diagnose abgewiesen
|