Files
TerminalBasic/openspec/changes/archive/2026-09-04-phase-4-objektmodell/tasks.md

4.2 KiB
Raw Blame History

1. Belege

  • 1.1 Eigenschaften, Methoden und Ereignisse je Klasse aus Original-Hilfe, CONSTANT.BI und den Beispielprojekten in klassen-und-eigenschaften.md dieses Changes zusammenstellen (Typ, Wertebereich, Vorgabewert, Schreibbarkeit zur Laufzeit); verifiziert durch die Datei mit Quellenangabe je Zeile
  • 1.2 Signaturen der Ereignisprozeduren und die Regeln für Steuerelement-Arrays belegen; verifiziert durch einen Abschnitt in derselben Datei, der jede Signatur der Forms-Referenz gegenüberstellt

2. Frontend: Objektsprache

  • 2.1 ! am folgenden Token entscheiden (D3); verifiziert durch Lexer-Tests für beide Bedeutungen im selben Modul
  • 2.2 Punktpfade in der Semantik nach D2 auflösen, mit Diagnose statt impliziter Variablen; verifiziert durch Sema-Tests für unbekanntes Objekt, unbekannte Eigenschaft und unveränderten UDT-Feldzugriff
  • 2.3 Eigenschaftstabelle je Klasse aus 1.1 im Frontend führen und Typ/Schreibbarkeit prüfen; verifiziert durch Sema-Tests für Typkonflikt und schreibgeschützte Eigenschaft
  • 2.4 IF TYPEOF … IS klasse, Datentypen FORM/CONTROL als Parametertypen, Metabefehl $FORM; verifiziert durch Parser- und Sema-Tests je Konstrukt
  • 2.5 Ereignisprozeduren erkennen und ihre Parameterlisten prüfen; verifiziert durch Sema-Tests für richtige Signatur, falsche Signatur und gewöhnliche SUB mit Unterstrich
  • 2.6 Absenkung ins HIR: Objektzugriff als Objekt-/Eigenschaftsindex, Ereignisprozeduren mit ihrer Zuordnung; verifiziert durch cargo test -p tb-frontend

3. Laufzeit: Formularmodell

  • 3.1 Formular- und Steuerelementobjekte mit Eigenschaftsspeicher und Vorgabewerten aus 1.1; verifiziert durch Unit-Tests für Vorgabewerte und Wertebereichsprüfung (Fehler 5)
  • 3.2 Lade-/Entladezyklus mit Form_Load und Form_Unload (Cancel); verifiziert durch Unit-Tests, darunter das verhinderte Entladen
  • 3.3 SHOW/HIDE, Sichtbarkeit, implizites Laden beim Zugriff; verifiziert durch Unit-Tests für „HIDE entlädt nicht" und implizites Laden
  • 3.4 Steuerelement-Arrays: LOAD ctl(i), UNLOAD ctl(i), Fehler 362 für Entwurfszeit-Elemente; verifiziert durch Unit-Tests je Fall
  • 3.5 SCREEN-Objekt mit ActiveForm, ActiveControl, Height/Width aus der aktuellen Terminalgröße; verifiziert durch Unit-Tests, darunter einer nach Größenänderung

4. Modalität und Dispatch

  • 4.1 Modales SHOW als Frame-Marke (D4) mit Fortsetzung nach dem Entladen; verifiziert durch einen VM-Test, der die Anweisung nach SHOW 1 erst nach dem Entladen ausführt
  • 4.2 Stapelregeln der Modalität mit den Fehlern 400403; verifiziert durch Unit-Tests je Fehlercode
  • 4.3 Ereignisdispatch: Ereignis der Warteschlange auf Name_Ereignis abbilden und mit Argumenten aufrufen (D5); verifiziert durch VM-Tests für vorhandene und fehlende Prozedur
  • 4.4 Mausereignisse aus phase-4-ereignisschleife an die Formularereignisse übergeben (Taste, Umschaltzustand, Position in Zellen); verifiziert durch einen Test, der Form_MouseDown mit den erwarteten Argumenten sieht
  • 4.5 Nachweis, dass keine neuen Zustellpunkte entstehen; verifiziert durch einen Test, der die Zustellpunkte der Ereignissteuerung gegenprüft

5. Inventar und Dokumentation

  • 5.1 docs/inventar.md um Art Eigenschaft/Methode/Ereignis und die Spalte Quelle erweitern, Einträge aus 1.1 eintragen (Status zunächst offen); verifiziert durch inventar_stimmt_mit_code_ueberein
  • 5.2 Abgleichstest auf die neuen Arten ausdehnen; verifiziert durch einen Testfall, der eine falsch gesetzte Eigenschaft im Inventar erkennt
  • 5.3 Einträge dieses Changes auf implementiert setzen; verifiziert durch denselben Test
  • 5.4 docs/sprachreferenz.md §12 ausformulieren und docs/forms-referenz.md um die Belege aus 1.1 ergänzen; verifiziert durch die Abschnitte
  • 5.5 PLAN.md: Punkte „Formular-Modell" und „Ereignisdispatch" abhaken; verifiziert durch die aktualisierte Liste

6. Abnahme

  • 6.1 Der Dreizeiler aus proposal.md wird namentlich abgewiesen statt falsch übersetzt; verifiziert durch einen Test, der die drei Diagnosen prüft
  • 6.2 cargo test grün und openspec validate phase-4-objektmodell --strict ohne Befund; verifiziert durch beide Kommandos