Files
TerminalBasic/openspec/changes/laufzeit-eingabe-und-systemstatus/specs/sprach-frontend/spec.md

1.6 KiB

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