home *** CD-ROM | disk | FTP | other *** search
Modula Implementation | 1991-08-10 | 1.6 KB | 85 lines |
- (*======================================================================*)
- (* Macro List Routines *)
- (*======================================================================*)
- (* Version: 1.00 Author: Dennis Brueni *)
- (* Date: 07-13-91 Changes: Original *)
- (*======================================================================*)
-
- IMPLEMENTATION MODULE MacLists;
-
- IMPORT
- SYSTEM;
- IMPORT
- Strings,FStorage,FIO;
- IMPORT
- SymLists,FSM;
-
-
-
- (*----------------------------------------------------------------------*)
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- (*----------------------------------------------------------------------*)
-
-
-
- PROCEDURE Insert(VAR list: SymLists.SymList; symbol: ARRAY OF CHAR; toktyp: FSM.Lexicals);
-
- VAR
- temp: TokRecPtr;
- leng: CARDINAL;
-
- BEGIN
-
- leng:=Strings.Length(symbol)+2;
- FStorage.ALLOCATE(temp,LONGCARD(TokRecSize+leng));
- WITH temp^ DO
- sym:=SYSTEM.ADDRESS(temp)+SYSTEM.ADDRESS(TokRecSize);
- len:=leng;
- typ:=toktyp;
- Strings.Assign(symbol,sym^);
- END;
- SymLists.Insert(list,temp);
- END Insert;
-
- (*----------------------------------------------------------------------*)
-
- PROCEDURE Destroy(VAR list: SymLists.SymList);
-
- VAR
- lptr: SymLists.SymList;
- temp: TokRecPtr;
- BEGIN
-
- lptr:=list;
- WHILE NOT SymLists.Empty(lptr) DO
- temp:=SymLists.First(lptr);
-
- FStorage.DEALLOCATE(temp,LONGCARD(TokRecSize+temp^.len));
- lptr:=SymLists.Next(lptr);
- END;
- SymLists.Destroy(list);
- END Destroy;
-
- (************************************************************************)
-
- BEGIN
-
- END MacLists.
-