MAL-Homepage Inhaltsverzeichnis



MAL Dokumentation: Editor




Inhalt:

1. EINLEITUNG
2. DER EDITOR 'GUI_MED'
3. DER EDITOR 'MED'
3.1. Blockfunktionen
3.2. Editortasten


1. EINLEITUNG

Der ursprüngliche MAL-Editor (Wort
med) wurde unter WIN98/NT durch einen GUI-orientierten Editor (Wort GUI_med) ersetzt. In der Datei 'auto.cpu' ist unter WIN98/NT daher standardmäßig die Definition

: med GUI_med ;

zu finden.

Beide Editoren sind sprachsensitive Falteditoren, die speziell für die Bearbeitung von MAL-Code abgestimmt sind. Der Begriff 'Falteditor' bedeutet, daß innerhalb einer Doppelpunktdefinition gemachte lokale Doppelpunktdefinitionen komprimiert dargestellt werden können. Komprimiert dargestellt heißt: ihr gesamter Code wird durch ihren Namen ersetzt. Will man den Code lesen oder editieren, so kann man ein eigenes Editorfenster öffnen.

Der Editor ist überall anzutreffen, wo Textfelder zu editieren sind. Der explizite Aufruf kann mit den Worten med oder ed erfolgen, wobei ´ed´ eine Doppelpunktdefinition ist, die ´med´ verwendet.

Das Wort med kann zum Editieren von Stackeinträgen oder Dateien verwendet werden. Stackeinträge können entweder Doppelpunktdefinionen oder Verbunde von Strings sein.

Syntax:

doppelp -> neudoppelp

oder

[ zeile1 zeile2 ... ] -> [ neuzeile1 neuzeile2 .. ]

oder

dateiname ->

Das Wort ed kann zum editieren von Doppelpunktdefinitionen, die sich im Vokabular oder in einem Pool (siehe Kapitel Poolsystem) befinden verwendet werden. Die entsprechenden Datensätze, also der Vokabularseintrag oder der Pooleintrag, werden nach dem Verlassen des Editors automatisch aktualisiert.

Beispiel: ( editieren einer Doppelpunktdefinition im Vokabular)

: testwort 
17 ramp draw screen ;


cool testwort ed


Soll der Editor nur zum Betrachten von Dateien oder Datensätzen verwendet werden, so kann man eine Variable med_readonly mit dem Wert 1 einrichten. Sie verhindert einen Schreibzugriff auf die editierte Datei.

MAL-Homepage Inhaltsverzeichnis


2. DER EDITOR 'GUI_MED'

Der
GUI_med unterscheidet sich von den üblichen graphikorientierten Editoren hauptsächlich durch die Komprimierfunktion.

Durch Aufruf des Menüpunktes Edit/Compress (Ctrl-K) werden alle lokal definierten Doppelpunktdefinitionen durch ihren Namen ersetzt.

Beispiel:

: mein_programm
  : erste_funktion
  "Hier steht eine Menge Code" . cr
  .
  .
  .. ;
  : zweite_funktion
  "Nochmals viel Code" . cr
  .
  .
  .. ;
erste_funktion zweite_funktion ;


cool mein_programm ed


Das dabei geöffnete Editor-Fenster zeigt folgenden Inhalt:

Markiert man den Text '>>erste_funktion<<' mit der Maus und führt dann den Menüpunkt Edit/Call (Ctrl-Y) aus, dann wird ein Editorfenster mit dem Code der Funktion 'erste_funktion' geöffnet.

Definiert man eine Variable

1 >> editor_autocompress

dann wird die Codekomprimierung automatisch beim Aufruf von GUI_med durchgeführt. Mit dem Menüpunkt Edit/Expand (Ctrl-E) kann comprimierter Code jederzeit expandiert werden.

MAL-Homepage Inhaltsverzeichnis


3. DER EDITOR 'MED'

Der MAL-Editor (MED) existiert sowohl als selbständiges Programm, als auch als MAL-Wort. Das selbständige Programm kann auf Betriebssystemebene mit

med dateiname

aufgerufen werden.

MAL-Homepage Inhaltsverzeichnis


3.1. Blockfunktionen

Abschnitte der zu editierenden Datei können zu Blöcken zusammengefaßt und unter einer Kurzbezeichnung abgespeichert werden. In der Datei wird als Platzhalter für den komprimierten Block der Blockname, eingeklammert von zwei Sonderzeichen (die Zeichen sind betriebsystemabhängig, unter DOS sind es senkrechte Balken) angezeigt.

Das Abstecken eines zu komprimierenden Bereichs erfolgt mit der Tastenfolge ^K^B (Blockbeginn) und ^K^K (Blockende) und anschließendem Eingeben des Blocknamens. Der Inhalt des Blocks wird in der Blockliste gespeichert. Die Liste der aktuell gespeicherten Blöcke kann mit ^B^L abgefragt werden.

Mit den Tasten ^B^I (Block Insert) kann ein Block an der Cursorposition eingefügt werden. Befindet sich der Cursor gerade auf einem Platzhalter für einen Block, so wird dieser durch den Inhalt des Blocks ersetzt. Der Block wird dabei aus der Blockliste gestrichen.

Besonderheit für MAL-Code

Mit der Tastenkombination ^P^K (Programm komprimieren) wird der Dateiinhalt ab der Cursorposition bis zum Dateiende als MAL-Sourcecode betrachtet und alle darin gefundenen Doppelpunktdefinitionen werden automatisch zu Blöcken umgewandelt. Eine entsprechende Expandierung ist mit ^P^E möglich (wirkt auf die ganze Datei).

Diese Möglichkeit erhöht die Übersicht beim Arbeiten mit MAL-Code, da alle lokal definierten Doppelpunktdefinitionen komprimiert werden können, wodurch nur mehr der Hauptcode übrig bleibt.

Beispiel:

: hauptprogramm
# : unterprogramm1
  "hier steht eine Menge Code" 
  .
  .
  . ;
  : unterprogramm2
  "auch hier steht eine Menge Code"
  .
  . ;
unterprogramm2 unterprogramm1 + sqrt ;
Die Cursorposition ist in diesem Beispiel mit # gekennzeichnet. Wird also in diesem Fall ^P^K eingegeben, so sieht der Dateiinhalt folgendermaßen aus.
: hauptprogramm
  |unterprogramm1|
  |unterprogramm2|
unterprogramm2 unterprogramm1 + sqrt ;
Will man den Inhalt der Unterprogramme editieren, so genügt es, den Cursor auf den Platzhalter zu stellen und ^B^E (Block editieren) einzugeben.

Beim Verlassen eines Blocks mit der Esc-Taste oder beim Beenden des Editors mit ^K^B werden alle Komprimierungen automatisch rückgängig gemacht.

MAL-Homepage Inhaltsverzeichnis


3.2. Editortasten

Allgemeines



Dateizugriffe



Blockoperationen

MAL-Homepage Inhaltsverzeichnis