---------------------------------------------------------------- Das Programm m2Maker ist ein in Modula-2 geschriebenes Utilitie, welches besonders auf den Compiler von Meier Vogt zugeschnitten ist. Da ich glaube, das dieses Programm vielen Programmierern eine kleine Hilfe ist, habe ich mich entschlossen es als "Shareware" zu veröffentlichen. Das heißt, jeder darf dieses Programm kopieren, tauschen und weiterverbreiten. Kommerzielle Vermarktung ist hiervon ausdrücklich ausgenommen. Wem dieses Programm zusagt, kann mir einen Betrag in beliebiger Höhe (so 20 DM,- oder mehr...) auf mein Konto Stadtsparkasse Hannover Nr. 14561514 BLZ 250 501 80 überweisen. Thomas Stolze Goslarsche Str .32 3000 Hannover 21 P.S.: Anregungen und Fehlerberichte sind immer willkommen. Bitte diese Informationen nicht löschen. ---------------------------------------------------------------- Die Programme Fastlister und MODULETool sind Bestandteile des m2Maker. Ich beabsichtige das MODULETool noch stark zu erweitern. Daher sollte das vorliegende Programm als Vorabversion verstanden werden. ---------------------------------------------------------------- Die Installation der Programme: m2Maker: Der m2Maker muß im selben Verzeichnis liegen wie Compiler, Linker, Editor und das m2Projekt-Programm (siehe Handbuch!). Außerdem müssen sich folgende Programme auf der Systemdiskette im c-Verzeichnis befinden: - Run - Execute - NewShell - Copy Die Funktionen im einzelnen: Die Gadgets: Editor - Ruft den Editor auf. Compiler - Ruft den Compiler auf. Wenn ein Fehler gefunden wurde wird automatisch der Editor aufgerufen. Linker - Ruft den Linker auf. Run - Startet ein fertig compiliertes und gelinktes File. Make - Ruft Compiler,Linker und Run auf. Tritt nach dem compilieren ein Fehler auf, so wird der Editor aufgerufen. Projekt - Wenn mann ein Projekt definiert hat (s.u.), wird dieses initialisiert. Jetzt werden alle Dateien, die Editor,Compiler,Linker und Debugger erzeugen in entsprechene Unterverzeichnisse geschrieben. Dies hilft die Übersichtlichkeit zu erhöhen. (Detailierte Informationen stehen im M2-Handbuch) Durch erneutes anklicken wird das Projekt beendet. Wenn man ein neues Projekt beginnen möchte, muß das alte eventuell erst beendet werden. Optionen - Hier können die Optionen von Editor,Compiler und Linker gesetzt werden. Außerdem kann hier das Verzeichnis angegeben werden mit dem der FastLister arbeitet. Print - Druckt die aktuelle Datei aus. Ein geeigneter Druckertreiber muß sich aber im devs/printer Unter- verzeichnis befinden. Copy - Kopiert die aktuelle Datei auf das Backupmedium. Befindet man sich im Projektmodus, so wird auch auf dem Backupmedium ein Projektverzeichnis erzeugt wenn dort kein entsprechenes existiert. Load Opt Save Opt - Lädt oder speichert die aktuellen Parameter in der Datei m2Maker.par. Clear - Löscht die beiden oberen TextGadgets und setzt die Optionen auf ihre Standartstellungen. Als Backup- medium wird 'df1:' voreingestellt. New - Um eine neue Datei zuerzeugen, die zu einem Projekt gehört, muß dieses Gadget angeklickt werden. Dies kann man auch durch Eingeben eines neuen Dateinamens in das Editortextgadget erreichen. Mod - Ruft das MODULETool auf. Delete - Löscht die aktuelle Datei nach einer Sicherheitsab- frage. Directory - Lädt das aktuelle Verzeichnis. Die Textgadgets lassen sich durch anklicken beliebig verändern. Im oberen Textgadget befindet sich der Name des fertigen Programms, während im unteren der gleiche Name mit einer Endung (".mod",".def") steht, den der Editor benötigt. In dem rot umrahmten Kasten befindet sich das Textgadget mit dem Backuppfad und der Pfad zum aktuellen Projekt. Unter dem Inhaltsverzeichnis befindet sich das Textgadget, welches den aktuellen Pfad enthält. Um das Laufwerk zu ändern, muß hier der neue Pfad eingetragen werden. Inhaltsverzeichnis: Durch Anklicken eines Namens wird diese Datei zur aktuellen erklärt und in den mittleren Textgadgets sichtbar. Unterverzeichnisse werden rot angezeigt. Klickt man diese an, so wird das jeweilige Unterverzeichnis geladen. In Unterverzeichnissen wird an oberster Stelle der Eintrag "PARENT\" hinzugefügt. Durch Anklicken kommt man wieder eine Verzeichnisebene höher. Die Daten werden, Verzeichnisse zuerst, alphabetisch sortiert angezeigt. Durch Anklicken des rechten Proportionalgadgets oder der Pfeile kann man die verdeckten Einträge sichtbar machen. Das Menü: - Projekt - Requester mit Copyright Vermerk. - Option. sorgt für ein automatisches abspeichern vor jedem "Run". - Speichert das gesamte Projektverzeichnis mit allen Unterverzeichnissen auf dem Backupmedium. - Ruft ein neues CLI auf. - Beendet das Programm. - m2Maker - Ruft den Editor auf. - Ruft den Compiler auf. - Ruft den Linker auf. - Startet das fertige Programm. - Startet die Make-Funktion. - Compiliert alle Dateien die in der aktuellen Datei enthalten sind. Wenn die Reihenfolge der Dateinamen ihrer Abhängigkeit voneinander entspricht, kann ein eventuell auftetenes Schlüsselproblem (z.B. durch Änderung eines DefinitionsModules) gelöst werden. Der Dateiname muß auf jeden Fall mit dem Index ".mke" enden! - Optionen - Lädt Optionen. - Lädt Parameter. - Speichert Parameter. - Dos - Löscht die aktuelle Datei nach einer Sicherheits- abfrage. - Datei umbenennen. Nachdem der "m2Maker" ordnungsgemäß vom CLI mit "Run m2Maker" gestartet worden ist, werden die Parameter aus der Datei "m2Maker.par" gelesen, sofern diese vorhanden ist. Außerdem wird nach einer Datei mit dem Namen "m2Maker.exec" gesucht. Diese Datei wird nach dem Starten automatisch abgearbeitet. Diese Batchdatei ist dazu gedacht, automatisch die notwendige Programmierumgebung herzustellen, wie z.B. das Kopieren aller notwendigen Programme von einer Harddisk in die RAM-Disk. An dieser Stelle sei darauf hingewiesen, daß das Programm mit Hilfe von IconX auch von der Workbench gestartet werden kann. Compiler und Linker arbeiten im Projektmodus nur mit Dateien, die sich in den entsprechenen Projektunterverzeichnissen befinden, während der Editor davon unabhängig arbeitet. Die Auswahl der zu bearbeitenen Datei kann auch mit Hilfe der Cursortasten erfolgen. (Auswahl mit anschließendem Return) ---------------------------------------------------------------- MODULETool: Das MODULETool ist ein Utilitie, welches automatisch Definitionsmodule erzeugt. Davon ausgehend, das man zunächst ein Module zu Testzwecken normal entwickelt, um dies später in ein Implementations Module umzuwandeln, ist dieses Programm dazu gedacht, dies mit Hilfe eines Programm zu tun. Da bereits alle Informationen, die ein Definitions Module benötigt im Hauptmodule vorhanden sind, ist dies problemlos möglich. Es werden alle Globalen Typen und Konstanten ins Definitions Module übertragen und die Prozedurköpfe herausgesucht. Außerdem ist es möglich die Importliste alphabetisch zu sortieren und von unnötigen Einträgen zu befreien. !!! Achtung !!! Es macht nur Sinn ein syntaktisch korrektes Programm zu bearbeiten. Außerdem dürfen keine lokalen Module in der Datei vorkommen. Das Moduletool kann entweder von der Workbench oder vom CLI aufgerufen werden (vom m2Maker mit F8 oder Mod). Durch Anklicken einer Datei mit Hilfe der Shifttaste und des Moduletoolicons wird der Pfad automatisch erstellt, sonst muß er eingegeben werden. Vom CLI aus kann man den Dateinamen ebenfalls mitangeben. Die Funktionen: Speed: Es werden die Compileroptionen zur Vermeidung des Prüfcodes gesetzt. Kopf: Es wird vor den Quelltext ein Kopf gesetzt, der Datum und Uhrzeit enthält. Block: Die Importelemente werden ganzzeilig unter den Importnamen gesetzt, sonst richtet sich die Ausrichtung nach der Länge des längsten Importnamens. ausortieren : Unnötige Elemente werden aussortiert. Da als Kriterium die Häufigkeit des Vorkommens ausschlaggebend ist, kommt es bei den Flagnamen vor, das sie aussortiert werden. Folgende Ausnahmebehandlung wird durchgeführt: Da die meisten Flagnamen auf "s" enden wird überprüft ob ein Set gleichen Namens vorhanden ist und dann nicht aussortiert. Beispiel: WindowFlags => WindowFlagSet MemReqs => MemReqSet Dadurch werden fast alle Systemflags richtig behandelt. Ausnahmen werden leider nicht erkannt. z.B.: "Response" aus FileSystem => Set existiert nicht. Bei der Definition von eigenen Typen sollte daher beachtet werden, daß die Typen auf "s" enden. Leerzeile: Sortiert unnötige Leerzeilen aus. Backup: Erstellt eine Sicherheitskopie unter dem Namen der Datei und hängt ein O an (wie m2Emacs). DefMod: Erstellt ein Definitions- und Implementationsmodul, falls die Quelldatei ein normales Modul ist. Außerdem werden aus der Quelldatei immer unnötige Leerzeichen entfernt. Über das Menu kann man außerdem wählen,ob das Doppelkreuz,die Tilde und das Undzeichen durch ihre Äquivalente ersetzt werden sollen oder nicht. # => <> & => AND ~ => NOT ---------------------------------------------------------------- Fastlister: Der Fastlister wird vom m2Maker initialisiert und läuft im Hintergrund. Es wird mit dem unter m2Maker ==> Optionen stehendem Verzeichnis gearbeitet. Durch drücken der Tastenkombination leftShift, CTRL, Help wird dieser aktiviert. Zunächst werden alle Dateien die im angegebenen Verzeichnis liegen aufgelistet. Nach Eingabe der Dateinummer wird die Datei angezeigt. Mit Hilfe der Cursortasten ist das Durchblättern durch die Datei möglich. Mit "Return" verläßt man den Fastlister oder durch Drücken der Helptaste kommt man wieder zurück zur Auswahl. Diese kann man mit ESC verlassen. Das Programm kann durch lShift, CTRL, ESC vorzeitigt beendet werden. Ansonsten wird es beim Beenden vom m2Maker automatisch gelöscht. Das Programm ist dazu gedacht, ein häufiges verlassen des Editors zu vermeiden, nur um "mal schnell" nach einer bestimmten Definition in einer anderen Datei zu suchen. Viel Spaß beim Arbeiten mit dem m2Maker. Thomas Stolze