(******************************************************************************)
(*
        PROGRAMMNAME :  GetConfig.mod
        VERSION      :  0.01
        
        AUTOR  :        Ralf Kaiser
                        Winckelmannstraße 1
                        5600 Wuppertal 2
                        
        Start  :        11.01.89
        Update :        13.01.89
        Ende   :        21.01.89

Dieser Programmteil liest die Konfigurationsdatei für das Programm
CompControl. Sie enthält die Namen von Editor, Compiler und Linker,
sowie die Endungen der zu bearbeitenden Files. 
Die gelesenen Daten werden überprüft und in Form eines RECORDS an das 
Hauptprogramm weitergeleitet.
Die Konfigurationsdatei hat den Namen "CC.config". Sie befindet sich
entweder in dem Verzeichnis, das bei Aufruf von CompControl aktuell
war oder in DEVS:.
Wird CC.config nicht gefunden, werden die Namen der einzelnen Programme
mit Standardwerten belegt.
Das Format der Konfigurationsdatei :

Die Reihenfolge der einzelnen Elemente ist festgelegt. Für den Compiler
können 2 verschiedene Programme eingesetzt werden, damit man an Stelle
des zweiten Compilers z.B. einen Assembler starten kann.

Die Komponenten :

Name des Editors           (z.B. "C:M2EMACS ")
Name 1. Compiler           (z.B. "C:M2C -d ")
Endung 1. Compiler         (z.B. ".MOD" )
Name 2. Compiler           (z.B. "C:M2C -d -q ")
Endung 2. Compiler         (z.B. ".DEF ")
Name Linker                (z.B. "C:M2L -x ")
Endung Linker              (z.B. ".OBJ ")

Beispiel 1 :

C:M2EMACS     - Editor       : M2Emacs im C-Dir (immer vollen Pfad angeben !)
C:M2C -d      - Übersetzer 1 : M2c              (Optionen mit angeben !)
.MOD          - Endung für Übersetzer 1 : .MOD
C:M2C -d      - Übersetzer 2 : Wieder M2c
.DEF          - Endung für Übersetzer 2 : .DEF  (so kann manauch
                                                 Definitionsmoduln bearbeiten)
C:M2L         - Linker       : M2l
.OBJ          - Endung für den Linker   : .OBJ

Diese Datei wäre für Modula-2 Programmierer geeignet.
Die Kommentare gehören nicht zur Datei !!!

Beispiel 2

C:ED
C:CC
.C
C:AS
.ASM
C:BLINK
.OBJ

Diese Datei könnten C-Programmierer (hier Atztec-C) gebrauchen.
Hier wird dann, anstatt den Compiler mit einer anderen Endung zu starten,
ein Assembler aufgerufen.

*)
(******************************************************************************)

DEFINITION MODULE GetConfig;

FROM SYSTEM IMPORT
 ADR;
 
FROM FileSystem IMPORT
 Response, File, Lookup, Close, ReadByteBlock;
 
FROM Strings IMPORT
 Delete, Copy, Insert, first, last;

         
TYPE
     CCCONFIG = RECORD
                      Editor : ARRAY [0..30] OF CHAR;
                      Comp1  : ARRAY [0..30] OF CHAR;
                      End1   : ARRAY [0..5 ] OF CHAR;
                      Comp2  : ARRAY [0..30] OF CHAR;
                      End2   : ARRAY [0..5 ] OF CHAR;
                      Link   : ARRAY [0..30] OF CHAR;
                      Obj    : ARRAY [0..5 ] OF CHAR;
     END;
     
     
        
PROCEDURE MakeDefaultConf (VAR Konfig: CCCONFIG);

PROCEDURE OpenConfig (VAR Datei: File; VAR found: BOOLEAN);

PROCEDURE ReadToCR (VAR Datei : File; 
                    VAR ZKette : ARRAY OF CHAR; VAR len : INTEGER);

PROCEDURE ConfigLesen (VAR Konfig: CCCONFIG);

END GetConfig.


