home *** CD-ROM | disk | FTP | other *** search
/ Club Amiga de Montreal - CAM / CAM_CD_1.iso / files / 549a.lha / M2P_v1.0 / mods.lzh / MacLists.mod < prev    next >
Encoding:
Modula Implementation  |  1991-08-10  |  1.6 KB  |  85 lines

  1. (*======================================================================*)
  2. (*                        Macro List Routines                           *)
  3. (*======================================================================*)
  4. (*  Version:  1.00              Author:   Dennis Brueni                 *)
  5. (*  Date:     07-13-91          Changes:  Original                      *)
  6. (*======================================================================*)
  7.  
  8. IMPLEMENTATION MODULE MacLists;
  9.  
  10. IMPORT
  11.     SYSTEM;
  12. IMPORT
  13.     Strings,FStorage,FIO;
  14. IMPORT
  15.     SymLists,FSM;
  16.  
  17.  
  18.  
  19. (*----------------------------------------------------------------------*)
  20.  
  21.  
  22.  
  23.  
  24.  
  25.  
  26.  
  27.  
  28.  
  29.  
  30.  
  31.  
  32.  
  33.  
  34.  
  35.  
  36.  
  37.  
  38. (*----------------------------------------------------------------------*)
  39.  
  40.  
  41.  
  42. PROCEDURE Insert(VAR list: SymLists.SymList; symbol: ARRAY OF CHAR; toktyp: FSM.Lexicals);
  43.  
  44. VAR
  45.     temp: TokRecPtr;
  46.     leng: CARDINAL;
  47.  
  48. BEGIN
  49.  
  50.     leng:=Strings.Length(symbol)+2;
  51.     FStorage.ALLOCATE(temp,LONGCARD(TokRecSize+leng));
  52.     WITH temp^ DO
  53.         sym:=SYSTEM.ADDRESS(temp)+SYSTEM.ADDRESS(TokRecSize);
  54.         len:=leng;
  55.         typ:=toktyp;
  56.         Strings.Assign(symbol,sym^);
  57.     END;
  58.     SymLists.Insert(list,temp);
  59. END Insert;
  60.  
  61. (*----------------------------------------------------------------------*)
  62.  
  63. PROCEDURE Destroy(VAR list: SymLists.SymList);
  64.  
  65. VAR
  66.     lptr: SymLists.SymList;
  67.     temp: TokRecPtr;
  68. BEGIN
  69.  
  70.     lptr:=list;
  71.     WHILE NOT SymLists.Empty(lptr) DO
  72.         temp:=SymLists.First(lptr);
  73.  
  74.         FStorage.DEALLOCATE(temp,LONGCARD(TokRecSize+temp^.len));
  75.         lptr:=SymLists.Next(lptr);
  76.     END;
  77.     SymLists.Destroy(list);
  78. END Destroy;
  79.  
  80. (************************************************************************)
  81.  
  82. BEGIN
  83.  
  84. END MacLists.
  85.