GENLISTS.DEF 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145
  1. DEFINITION MODULE GenLists;
  2. (*
  3. * REPERTOIRE
  4. * Release 1.6
  5. * By Charles Bradford and Cole Brecheen
  6. * (c) Copyright 1985-1992 PMI
  7. * Green Bay, Wisconsin
  8. * All rights reserved
  9. * (414) 468-6040
  10. *
  11. * $Header: D:/logfiles/defs/genlists.dev 1.4 30 Dec 1990 18:01:04 coleb $
  12. *
  13. *)
  14. FROM SYSTEM IMPORT ADDRESS, BYTE;
  15. FROM VStorage IMPORT MemHandle;
  16. CONST
  17. StrCode = 65534;
  18. ListCode = 65535;
  19. TYPE
  20. GenList; (*opaque type*)
  21. ListError = (NoListError, underflow, overflow,
  22. NoInit, RefToZero, RefPastEnd, InsuffMem,
  23. corruption, NoSuchList);
  24. Comparator = PROCEDURE(ADDRESS, CARDINAL,
  25. ADDRESS, CARDINAL): INTEGER;
  26. VAR
  27. DiagMode: BOOLEAN;
  28. ErrorFlag: ListError;
  29. PROCEDURE AdrOfList( VAR TheList: GenList ):
  30. ADDRESS;
  31. PROCEDURE AdrToList( TheAddr: ADDRESS; TheSize:
  32. CARDINAL; VAR TheList: GenList ): BOOLEAN;
  33. PROCEDURE BlockToList( TheAddr: ADDRESS;
  34. BlockSize: CARDINAL; delimiter1, delimiter2:
  35. ARRAY OF CHAR; RecSize, TypeCode: CARDINAL;
  36. VAR TheList: GenList);
  37. PROCEDURE ChangeTypeCode( VAR TheList: GenList;
  38. spot, NewTypeCode: CARDINAL );
  39. PROCEDURE CopyList( InList: GenList; VAR
  40. OutList: GenList );
  41. PROCEDURE DisconnectLists( VAR sublist,
  42. mainlist: GenList );
  43. PROCEDURE DisposeList( VAR TheList : GenList );
  44. PROCEDURE ElmtNow( TheList: GenList ): CARDINAL;
  45. PROCEDURE GetChildList( TheList: GenList; spot:
  46. CARDINAL; VAR Child: GenList );
  47. PROCEDURE GetElmt( TheList : GenList; spot :
  48. CARDINAL; VAR TheElmt: ARRAY OF BYTE; VAR
  49. TypeCode: CARDINAL );
  50. PROCEDURE GetElmtAdr( TheList : GenList; spot :
  51. CARDINAL; VAR ReadAddr: ADDRESS; VAR
  52. TheSize: CARDINAL; VAR TypeCode: CARDINAL) ;
  53. PROCEDURE GetParentList( TheList: GenList; VAR
  54. Parent: GenList );
  55. PROCEDURE Initialized( TheList: GenList ):
  56. BOOLEAN;
  57. PROCEDURE JoinLists( VAR MergedList,
  58. SurvivingList: GenList; spot: CARDINAL);
  59. PROCEDURE ListDelete( TheList : GenList; spot,
  60. HowMany : CARDINAL );
  61. PROCEDURE ListInsert( Element: ARRAY OF BYTE;
  62. TypeCode: CARDINAL; TheList: GenList; spot:
  63. CARDINAL );
  64. PROCEDURE ListInsertAdr( ReadAddr: ADDRESS;
  65. TheSize: CARDINAL; TypeCode: CARDINAL;
  66. TheList: GenList; spot: CARDINAL);
  67. PROCEDURE ListLength( TheList : GenList ):
  68. CARDINAL;
  69. PROCEDURE ListReplace( Element: ARRAY OF BYTE;
  70. TypeCode: CARDINAL; TheList: GenList; spot:
  71. CARDINAL);
  72. PROCEDURE ListReplaceAdr( ReadAddr: ADDRESS;
  73. TheSize, TypeCode: CARDINAL; TheList:
  74. GenList; spot: CARDINAL);
  75. PROCEDURE ListSize( TheList: GenList; VAR
  76. TotalElements: LONGINT; VAR TotalSublists:
  77. CARDINAL; VAR TotalListSize: LONGINT ):
  78. LONGINT;
  79. PROCEDURE ListToAdr( TheList: GenList; TheAddr:
  80. ADDRESS; TheSize: CARDINAL ): BOOLEAN;
  81. PROCEDURE ListToBlock( TheList: GenList;
  82. delimiter1, delimiter2: ARRAY OF CHAR; VAR
  83. TheAddr: ADDRESS; VAR BlockSize, RecSize:
  84. CARDINAL );
  85. PROCEDURE NewList( VAR TheList: GenList );
  86. PROCEDURE NextElmt( TheList: GenList; HowFar:
  87. INTEGER; VAR TheElmt: ARRAY OF BYTE; VAR
  88. TypeCode: CARDINAL );
  89. PROCEDURE NilList( VAR TheList: GenList );
  90. PROCEDURE SameList( list1, list2: GenList ):
  91. BOOLEAN;
  92. PROCEDURE ScanList( TheStr: ARRAY OF CHAR;
  93. TheList: GenList; StartingAt, EndingAt:
  94. CARDINAL; VAR FoundSpot: CARDINAL ):
  95. CARDINAL;
  96. PROCEDURE ShellSortList( TheList: GenList;
  97. CompResult: Comparator );
  98. PROCEDURE SortList( TheList: GenList;
  99. CompResult: Comparator );
  100. PROCEDURE SplitList( InList: GenList; where:
  101. CARDINAL; VAR OutList: GenList );
  102. PROCEDURE Init();
  103. END GenLists.