home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Power-Programmierung
/
CD1.mdf
/
pascal
/
tpw
/
doc
/
temc.doc
< prev
next >
Wrap
Text File
|
1991-05-20
|
20KB
|
451 lines
TURBO EDITOR MACRO COMPILER (TEMC)
In dieser Datei finden Sie Hinweise zur Benutzung von TEMC.EXE, dem Turbo
Editor Makro Compiler, und eine Darstellung der Turbo-Editor-Makrosprache
TEML.
Inhalt:
-------
1. Was ist TEMC?
2. Kommandozeilenoptionen von TEMC
3. TEMC-Syntax
4. Vordefinierte Editorbefehle
1. Was ist TEMC?
----------------
TEMC.EXE ist ein Compiler für Editormakros in der integrierten Entwicklungs-
umgebung unter Windows. TEMC erstellt eine Makrodatei, die Editormakros und
Tastenzuweisungen definiert. Außerdem wird eine Konfigurationsdatei erstellt.
Diese wird von der IDE gelesen, um die Auswirkungen von Tastaturbefehlen im
Editor festzulegen.
Jedesmal, wenn in der IDE (über Options/Preferences/Command Set) der alter-
native Befehlssatz gewählt wird, sucht Turbo Pascal nach der Datei TPWALT.CMD,
und zwar in dem Verzeichnis, in dem auch TPW.EXE gespeichert ist. Wird diese
Datei gefunden, liest Turbo sie ein und überschreibt die aktuellen Funktions-
tastenbelegungen mit den in der Datei enthaltenen Befehlen.
Die in die IDE eingebauten Makrodefinitionen und Tastenzuweisungen sind in der
Datei TPWALT.TEM enthalten. Sie dient als Beispielmakro und als Grund-
lage der Editoranpassung.
2. Kommandozeilenoptionen von TEMC
----------------------------------
TEMC wird von der DOS-Kommandozeile aus gestartet. Geben Sie den Befehl
temc [-c] <Makrodatei> <Konfigurationsdatei>
ein. Die Erweiterung der Makrodatei ist .TEM, wenn Sie nichts anderes vor-
geben. Für die Konfigurationsdatei geht TEMC von der Erweiterung .TEM aus.
Die Konfigurationsdatei muß nicht existieren, sie wird dann aber erzeugt. Der
optionale Parameter -c kann auch als /c angegeben werden. Er kann an jeder
Position in der Kommandozeile verwendet werden. Benutzen Sie diesen Parameter,
so werden existierende Kommandotabellen in der Konfigurationsdatei verworfen,
bevor die Makrodatei bearbeitet wird. Wird der Parameter -c nicht verwendet,
verbindet TEMC die Tastenzuweisungen aus Konfigurations- und Makrodatei.
TEMC-Syntax
-----------
Die Syntax zur Definition eines Makros sieht so aus:
MACRO <Makroname> <Befehl1>; [ <Befehl2>; ... ] END;
<Makroname> kann jedes gültige C-Symbol sein, <Befehl> der Name eines vordefi-
nierten Makros oder eines vordefinierten TEMC-Editorbefehls. Eine Tabelle
dieser Befehle und ihrer Auswirkungen findet sich am Ende dieses Anhangs.
Bei der Definition eines Makros sind folgende Punkte zu beachten:
1. Eine Anweisung definiert ein benanntes Makro oder eine Tastenzuweisung.
2. Leerstellen und Zeilenschaltungen können optional verwendet werden.
3. Kommentare werden (wie in C) in die Symbole /* ... */ eingeschlossen.
4. Im Unterschied zu C berücksichtigt TEMC Groß- und Kleinschreibung nicht.
5. Einige Editorbefehle haben eine Syntax, die einem Funktionsaufruf unter C
mit einem Argument gleichen:
SetMark(5);
In Abhängigkeit vom Befehl ist das Argument entweder eine Dezimal-Integer-
konstante, eine Zeichenkonstante oder ein literaler String. Sie werden unter
Verwendung der C-Syntax festgelegt.
Hier das Beispiel einer Makrodefinition (aus TPWALT.TEM):
MACRO MacPageUp
FixSreenPos;
PageUp;
FixCursorPos;
END;
Die Syntax dür Tastaturzuweisungen lautet
<Tastenfolge>: <Befehl>;
oder
<Tastenfolge>: BEGIN <Befehl1>; [ <Befehl2>; ... ] END;
<Tastenfolge> kann entweder eine Zeichentaste sein, die zusammen mit Ctrl oder
Alt gedrückt wird, oder eine Folge von Tasten, die durch ein Plus (+) getrennt
werden. Die Festlegung der Zeichentasten selbst muß unter Berücksichtigung der
Klein- bzw. Großschreibung vorgenommen werden. Ctrl-k+B ist eine andere Tasten-
folge als Ctrl-k+b, letztere jedoch identisch mit CTRL-K+b.
Whitespaces zwischen Doppelpunkt und <Tastenfolge> sind erlaubt. Jeder <Befehl>
kann entweder der Name eines bereits definierten Makros oder eines vordefinier-
ten Editorbefehls sein.
Einige Tasten können nicht direkt in eine TEMC-Makrodatei eingegeben werden.
Auf diese Tasten kann aber über ihre Namen nach Maßgabe der folgenden Tabelle
zugegriffen werden.
Jeder Taste in einer Tastenfolge (außer der ersten) kann ein ^ oder ein @
vorangestellt werden. Das Zirkumflex (^) zeigt an, daß beim Drücken der Taste
jede beliebige Kombination von Shift und Ctrl verwendet werden kann. Das
Zeichen @ bezieht sich dagegen nur auf die Shift-Taste:
Ctrl-k+b legt ein Ctrl-K, gefolgt von einem kleinen b, fest.
Ctrl-k+^b legt ein Ctrl-K, gefolgt von b, B oder Ctrl-B, fest.
Ctrl-k+@b legt ein Ctrl-K, gefolgt von b oder B, fest.
Enter, Return und Spacebar können an jeder beliebigen Position nach der ersten
Taste einer Tastenfolge auftreten. Das gilt für alle anderen Zeichen nicht.
Tasten werden durch Buchstaben, Ziffern oder Zeichen festgelegt. Ihnen kann
jeweils ein Ctrl- oder ein Alt- vorangehen. Die folgenden Namen bestimmen
Tasten, die in der TEMC-Syntax nicht als sie selbst eingegeben werden können.
4. Vordefinierte Editorbefehle
------------------------------
TEMC erlaubt die Verwendung eingebauter Editorbefehle und benutzerdefinierter
Makros auch als Befehle innerhalb von Makros. Dabei dürfen allerdings keine
Schleifen erzeugt werden, in denen sich zwei Makros gegenseitig aufrufen.
Beachten Sie, daß einige Befehle aus dem Editor aussteigen und in die IDE
zurückspringen. Es gibt dann keine Möglichkeit, aus dem Makro heraus wieder in
den Editor zu gelangen. Ein solcher Befehl muß also der letzte innerhalb eines
Makros sein. Wird diese Regel bei der Makrodefinition nicht beachtet, erhalten
Sie eine Fehlermeldung.
Es folgt eine Liste aller vordefinierten TEMC-Editorbefehle. Danach folgen
Befehle, die aus dem Editor aussteigen.
BackspaceDelete Löscht das Zeichen links vom Cursor.
BottomOfScreen Bewegt den Cursor in die letzte Zeile des aktuellen
Fensters. Die Spaltenposition bleibt unverändert.
CenterFixScreenPos Paßt die Bildschirmanzeige so an, daß der Cursor
sichtbar wird. Benutzen Sie diese Anpassung, wenn
die Cursorposition nicht im sichtbaren Bereich
liegen könnte. Anschließend befindet sich der
Cursor ungefähr in der Mitte des Bildschirms.
CopyBlock Existiert ein gültiger markierter Textblock, wird
dieser an die aktuelle Cursorposition kopiert.
CursorCharLeft Bewegt den Cursor ein Zeichen nach links.
Tabulatoren und das Zeilenende der vorherigen Zeile
werden übersprungen.
CursorCharRight Bewegt den Cursor ein Zeichen nach rechts.
Tabulatoren und das Zeilenende der aktuellen Zeile
werden übersprungen.
CursorDown Cursor eine Zeile nach unten bewegen.
CursorLeft Cursor eine Spalte nach links bewegen.
CursorRight Cursor eine Spalte nach rechts bewegen.
CursorSwitchedLeft Wie CursorLeft, berücksichtigt aber Tabulatorein-
stellungen (vgl. SetCursorThroughTabMode).
CursorSwitchedRight Wie CursorRight, berücksichtigt aber Tabulatorein-
stellungen (vgl. SetCursorThroughTabMode).
CursorUp Bewegt den Cursor eine Zeile nach oben
DeleteBlock Existiert ein gültig markierter Textblock, wird
er gelöscht.
DeleteChar Löscht das Zeichen auf dem der Cursor steht.
DeleteLine Löscht die aktuelle Zeile.
DeleteToEOL Löscht alle Zeichen aus der aktuellen Zeile, es
bleibt eine Leerzeile zurück.
DeleteWord Löscht von der Cursorposition bis zum nächsten
Wort.
EndCursor Bewegt den Cursor ans Ende des Dateipuffers.
FixCursorPos Stellt sicher, daß der Cursorwert eine Zeile
zwischen 1 und der Anzahl von Zeilen im Puffer dar-
stellt und daß die Spalte größer als 0 ist. Ist die
Option »Cursor through tab« nicht gesetzt, wird der
Cursor nicht in die Mitte eines Tabulators gesetzt.
FixScreenPos Paßt die Bildschirmanzeige an, um den Cursor sicht-
bar zu machen.
FullPaintScreen Zeichnet das gesamte Fenster neu, ohne die alten
Inhalte zu übernehmen.
HideBlock Setzt ein Flag, das anzeigt, daß der ausgewählte
Block nicht markiert werden soll.
HighlightBlock Setzt ein Flag, das bei gültigen Textmarkierungen
für die Hervorhebung der markierten Blöcke sorgt.
HomeCursor Bewegt den Cursor an den Anfang des Dateipuffers.
IndentBlock Fügt ein Leerzeichen am Anfang jeder Zeile des mar-
kierten (ausgewählten) Textes ein.
InsertText Fügt den literalen String im Puffer an der
aktuellen Cursorposition ein. Die Aufrufsyntax
lautet InsertText(String)
LeftOfLine Bewegt den Cursor an den Anfang der aktuellen
Zeile.
LiteralChar Fügt ein Zeichen an der aktuellen Cursorposition
ein, ohne daß Zeichen wie Tabulatoren, Zeichen-
schaltungen usw. gesondert bearbeitet werden. Die
Syntax lautet LiteralChar(c), wobei c ein Zeichen
oder ein Integerwert sein kann.
MarkBufModified Setzt ein Flag, das anzeigt, daß der Inhalt des
Puffers nicht mehr mit der entsprechenden Datei auf
dem Datenträger übereinstimmt.
MarkBufUnModified Löscht ein Flag und zeigt so an, daß von der Iden-
tität von Puffer und der Datei auf dem Datenträger
ausgegangen werden kann.
MatchPairBackward Wie MatchPairForward. Allerdings wird ausgehend von
einem ' oder einem " rückwärts gesucht.
MatchPairForward Steht der Cursor auf einem der Zeichen (, ), {, },
[, ] oder auf einem der ersten Zeichen der Zeichen-
paare /* oder *,/ wird in der entsprechenden Rich-
tung nach einem passenden Begrenzer gesucht. Steht
der Cursor auf einem ' oder ", wird vorwärts ge-
sucht. Der Cursor wird auf die nächste Entsprechung
gesetzt, wenn eine gefunden werden kann.
MoveBlock Wie CopyBlock, jedoch wird das Original des
ausgewählten Textes gelöscht.
MoveToBlockBegin Bewegt den Cursor an den Anfang des ausgewählten
Textes.
MoveToBlockEnd Bewegt den Cursor ans Ende des ausgewählten Textes.
MoveToMark Bewegt den Cursor an die Position, die durch den
Befehl SetMark(n) gesichert wurde. Verwenden Sie
die Syntax MoveToMark(n). n ist eine einstellige
Zahl zwischen 0 und 9.
MoveToPrevPos Bewegt den Cursor an die durch »previous position
marker« bezeichnete Position.
MoveToTempPos Bewegt den Cursor zu einer gesicherten temporären
Markierung.
OutdentBlock Löscht führende Leerzeichen vom Anfang jeder Zeile
des markierten (ausgewählten) Textes.
PageDown Bewegt den Cursor um die Anzahl der Zeilen im
Fenster nach unten.
PageScreenDown Bildlauf um die Anzahl der Zeilen im Fenster nach
unten. Die Cursorposition bleibt unverändert.
PageScreenUp Bildlauf um die Anzahl der Zeilen im Fenster nach
oben. Die Cursorposition bleibt unverändert.
PageUp Bewegt den Cursor um die Anzahl der Zeilen im
Fenster nach oben.
PaintScreen Zeichnet das Fenster neu und geht dabei davon aus,
daß der Bildschirm die letzten Änderungen durch den
Editor richtig dargestellt werden.
ReDo Führt eine Wiederholung durch. Die genauen Auswir-
kungen hängen von den Parametereinstellungen ab.
RightOfLine Bewegt den Cursor an das Ende der Zeile.
RightOfWord Bewegt den Cursor in die dem Ende eines Wortes fol-
gende Spalte.
ScrollScreenDown Führt einen Bildlauf um eine Zeile nach unten
durch, ohne die Cursorposition zu verändern.
ScrollScreenUp Führt einen Bildlauf um eine Zeile nach oben durch,
ohne die Cursorposition zu verändern.
SetAutoIndent Schaltet die Option Auto Indent ein.
SetAutoOutdent Schaltet die Option Backspace Unindents ein.
SetBlockBeg Setzt das erste Zeichen des ausgewählten Textes als
aktuelle Cursorposition.
SetBlockEnd Setzt das letzte Zeichen des ausgewählten Textes
als aktuelle Cursorposition.
SetCursorThroughTabMode Schaltet die Option »Cursor Through Tabs« ein.
SetInsertMode Schaltet den Einfügemodus ein.
SetMark Setzt eine Markierung auf das Zeichen der aktuellen
Cursorposition, so daß ein nachfolgender Befehl
MoveToMark(n) den Cursor wiederherstellen kann.
Verwenden Sie die Syntax SetMark(n). n ist eine
einstellige Zahl zwischen 0 und 9.
SetOptimalFillMode Schaltet die Option »Set Optimal Fill« ein.
SetPrevPos Setzt eine Markierung (»previous position marker«)
auf die aktuelle Cursorposition. Diese Markierung
wird nur durch einen Aufruf von SetPrevPos oder
SwapPrevPos verändert.
SetTabbingMode Schaltet die Option »Use Tab Char« ein.
SetTempPos Sichert die Cursorposition in einer temporären Mar-
kierung, die von einigen internen Editorbefehlen
verwendet wird. In benutzerdefinierten Makros
sollte stattdessen SetMark verwendet wirden.
SmartRefreshScreen Stellt das Fenster neu dar und übergeht dabei alle
Teile, die der Editor als unverändert seit der
letzten Neudarstellung meldet.
SmartTab Fügt Leerzeichen bzw. Tabulatoren entsprechend der
Einstellung der Tabulatorbreite in »Use Tab Char«
ein.
SwapPrevPos Tauscht den Wert des Cursors und des »previous
position marker« gegeneinander aus.
ToggleAutoIndent Schaltet den Status der Option »Auto Indent« um.
ToggleAutoOutdent Schaltet den Status der Option »Backspace
Unindents« um.
ToggleCursorThroughTabMode Schaltet den Status der Option »Cursor Through
Tabs« um.
ToggleHideBlock Schaltet den Status des Flags des markierten
(ausgewählten) Textes um.
ToggleInsert Schaltet den Status der Option Insert/Overwrite um.
ToggleOptimalFillMode Schaltet den Status der Option »Optimal Fill« um.
ToggleTabbingMode Schaltet den Status der Option »Use Tab Char« um.
TopOfScreen Bewegt den Cursor in die erste Zeile des aktuell
dargestellten Fensters. Die Spalte bleibt unverän-
dert.
UnDo Führt eine Undo-Operation (Rückgängig machen)
durch. Die Auswirkungen hängen von den Parameter-
einstellungen ab.
WordLeft Bewegt den Cursor auf den Anfang des vorhergehenden
Wortes bzw. das Ende der vorhergehenden Zeile, je
nach dem, was zuerst gefunden wird.
WordRight Bewegt den Cursor auf den Anfang des nächsten Wor-
tes bzw. das Ende der aktuellen Zeile, je nach dem,
was zuerst gefunden wird.
Die folgenden Befehle verursachen den Ausstieg aus dem Editor und dürfen des-
halb nur als letzter Befehl in einem Makro auftauchen:
ClipClear Löscht ausgewählten Text.
ClipCopy Kopiert ausgewählten Text in die Zwischenablage.
ClipCut Verschiebt ausgewählten Text in die Zwischenablage.
ClipPaste Schreibt den Inhalt der Zwischenablage an der
Cursorposition in den Puffer.
CompilerOptions Kopiert die aktuellen Compiler-Optionen an den
Anfang des Textes im Editorpuffer.
GetFindString Öffnet das Dialogfenster für Such-Operationen.
QuoteChar Das folgende Steuerzeichen wird in den Editor-
puffer eingefügt.
ReadBlock Öffnet ein Dialogfenster, das die Eingabe eines
Dateinamens erwartet. Die Datei wird an der
aktuellen Cursorposition in den Puffer gelesen
und als Textblock markiert.
RepeatSearch Wiederholt eine Suche mit den vorhergehenden
Parametern.
Replace Öffnet ein Dialogfenster für die Funktion Replace
(Ersetzen).
SaveFile Sichert den aktuellen Editorpuffer.
ShiftOff Beendet den Textmarkierungsmodus und macht die
Markierung ausgewählten Textes wieder rückgängig.
ShiftOffWithCopy Kopiert ausgewählten Text in die Zwischenablage
und beendet den Textmarkierungsmodus.
ShiftOffWithCut Verschiebt ausgewählten Text in die Zwischenablage
und beendet den Textmarkierungsmodus.
ShiftOn Schaltet den Textmarkierungsmodus ein.
ShowLastError Zeigt den zuletzt aufgetreten Compilierungs-
fehler erneut an.
ToggleAutoIndent Schaltet den Einrückmodus um.
ToggleAutoOutdent Schaltet den Ausrückmodus (mittels Backspace) um.
ToggleCursorThroughTabMode Schaltet die Option um, die bestimmt, wie der
Cursor sich verhält, wenn er über ein Tab-Zeichen
bewegt wird.
ToggleOptimalFillMode Schaltet die Verwendung von Tab/Leerzeichen um.
ToggleTabbingMode Schaltet zwischen Einfügen von Tabulator- oder
Leerzeichen um.
WriteBlock Öffnet ein Dialogfenster, in dem die Angabe einer
Datei erwartet wird, in die dann der ausgewählte
Text geschrieben wird.