prevnext   » Startseite » MakeDoc V3.36c » Funktionsweise von MakeDoc

Funktionsweise von MakeDoc

Inhaltsverzeichnis


1.   Allgemeine Funktionsweise

Eine einzelne Zeile inklusive Kommentare darf nicht länger als 10.000 Zeichen sein, mehrere Fortsetzungszeilen zusammen dürfen aber beliebig lang sein. Längere Zeilen werden abgeschnitten und der Rest der Zeile dann als weitere Zeile betrachtet.

Ein Ausrufezeichen ('!') leitet einen Kommentar bis zum Zeilenende ein. Eine Geschweifte-Klammer-Auf ('{') leitet einen Kommentar bis zum Zeilenende oder bis zur nächsten Geschweifte-Klammer-Zu ('}') ein. Kommentare werden durch ein Leerzeichen ersetzt. Durch #IF 0 und #ENDIF lassen sich auch ganze Blöcke auskommentieren. Die Steuerzeichen für Kommentare können auch mit dem Kommando #SETCOMMENT definiert werden.

Steuerzeichen (ASCII-Kode<32, z.B. TAB, ESC, CR, LF, FF, ... ) werden außerhalb von Zeichenketten durch Leerzeichen ersetzt. Mehrfache Leerzeichen werden außerhalb von Zeichenketten (siehe unten) durch ein einzelnes Leerzeichen ersetzt. Leerzeichen oder Tabulatoren am Zeilenanfang oder Zeilenende und auch ganze Leerzeilen werden ignoriert.

Ein Backslash ('\') als letztes Zeichen einer Zeile nach der Entfernung von Kommentaren leitet eine Fortsetzungszeile ein. Eine Basiszeile wird zusammen mit einer oder mehreren Fortsetzungszeilen logisch wie eine Zeile betrachtet.

Zeilen, die mit dem Nummer-Symbol ('#') beginnen (z.B. #IF oder #DEFINE) sind Steuerzeilen für den Preprozessor oder leiten programmabhängige Kommandos ein. Groß- und Kleinschreibung ist bei den Preprozessor-Befehlen unerheblich. Zeilen, die nur aus einem '#' bestehen oder mit '##' bzw. '#!' beginnen, werden vollständig ignoriert.

Nicht-Kommandozeilen werden in die Ausgabedatei kopiert. Genaure Details werden im nächsten Abschnitt beschrieben.


2.   Textzeilen

Alle Zeilen, die nicht mit einem Nummernzeichen ('#') beginnen (Leerzeichen und Tabulatoren werden vor einem '#' ignoriert), sind Textzeilen. Diese Textzeilen werden gemäß der folgenden Punkte bearbeitet:
  1. Ist der Start-Zähler <=0 (siehe #START und #STOP) dann wird die Zeile ignoriert und die Bearbeitung abgebrochen.
  2. Leerzeichen und Tabulatoren am Ende der Zeile werden entfernt.
  3. Ist das erste Zeichen nach beliebig vielen Leerzeichen und Tabulatoren ein Pipe-zeichen ('|'), dann werden diese Zeichen einschließlich des Pipe-Zeichens am Zeilenanfang entfernt. Hierdurch läßt sich auch der Eingabetext formatiert (eingerückt) darstellen.

    Um das Pipe-Zeichen ('|'= oder das Nummernzeichen ('#') am Anfang einer Zeile darzustellen muss '||' bzw. '|#' verwendet werden.

  4. Der Text wird gemäß den Regeln der beiden Kommandos #AUTOEXPAND und #AUTOLOOKUP untersucht und ggf. bearbeitet.
  5. Wurde mittels #TEXTMACRO ein Macro für die weitere Textverarbeitung definiert, dann wird diesem Macro der Text übergeben und die Bearbeitung beendet.
  6. Handelt es sich um eine Zeile ohne Zeichen (Leerzeile), dann wird der Leerzeilenzähler um 1 erhöht und die Bearbeitung beendet. Die Obergrenze dieses Zählers wird durch das Kommando #EMPTYLINES festgelegt.
  7. Ist es keine Leerzeile, dann werden zuerst Leerzeilen gemäß des Leerzeilenzähler (siehe #EMPTYLINES) ausgegeben. Der Leerzeilenzähler wird anschließend auf 0 zurückgesetzt.
  8. An den Anfang der Textzeile werden INDENT Leerzeichen (siehe #INDENT und #SETINDENT) eingefügt.
  9. Mehrfache Leerzeichen werden am Zeilenanfang durch Tabulatoren ersetzt. (siehe #TABSIZE)
  10. Der resultierende Text wird in die Ausgabedatei geschrieben.
Die durch das Kommando #PRINT ausgegeben Zeilen durchlaufen nur die Schritte 6 bis 10.