home *** CD-ROM | disk | FTP | other *** search
Modula Definition | 1988-06-30 | 2.2 KB | 57 lines |
- (*------------------------------------------------------*)
- (* SYMBOL.DEF *)
- (* Symboltabellenverwaltung in Modula 2 *)
- (* (C) 1988 Frank F. Wachtmeister & TOOLBOX *)
- DEFINITION MODULE Symbol;
-
- FROM Streams IMPORT Stream;
-
- CONST
- AnzSignChar = 25; (* Anzahl signifikanter Zeichen *)
- MaxRC = 2500; (* Maximaler Relativcode *)
- NotFound = 0; (* Relativcode: Nicht gefunden *)
-
- TYPE
- String = ARRAY[0..AnzSignChar] OF CHAR;
- RCTyp = [0..MaxRC];
- SymbolTable=POINTER TO TreeType;
- TreeType = RECORD (* Doppelt indizierter Baum mit: *)
- rc: RCTyp; (* Relativcode des Key-Words *)
- tx: String; (* Klartext des Key-Words *)
- links, (* Zeiger bzgl. lexikal. Ordnung *)
- rechts: SymbolTable;
- END;
-
- VAR
- main: Stream; (* Window ist von aufrufendem Modul *)
- (* zu initialisieren. *)
-
-
- (* Die Funktion AddSymbol fügt einen NAMEn mit Relativ- *)
- (* code rc in eine Symboltabelle s ein. Falls der Name *)
- (* bereits unter einem anderen Relativcode existiert, *)
- (* wird der bisherige Relativcode überschrieben. *)
- PROCEDURE AddSymbol ( VAR s: SymbolTable;
- VAR name: ARRAY OF CHAR; r:RCTyp);
-
- (* Die Prozedur PrintTree druckt den Inhalt eines BAUMes*)
- (* in alphabetischer Reihenfolge. *)
- PROCEDURE PrintTree ( Baum: SymbolTable );
-
- (* SearchRC sucht nach einem Wort TXT in einer Symbol- *)
- (* tabelle s und gibt den zugehörigen Relativcode *)
- (* zurück. Falls nicht gefunden: RC = 0 *)
- PROCEDURE SearchRC ( VAR s: SymbolTable;
- VAR txt: ARRAY OF CHAR ): RCTyp;
-
- (* SearchTxt sucht nach einem Relativcode rc in einer *)
- (* Symboltabelle s und gibt den zugehörigen String txt *)
- (* zurück. Falls nicht gefunden: Length (txt)=0 *)
- PROCEDURE SearchTxt( VAR s: SymbolTable;
- VAR rc:RCTyp;
- VAR txt: ARRAY OF CHAR );
-
- (* Terminate beendet ein Programm. *)
- PROCEDURE Terminate;
- END Symbol.
-