macros.h
上传用户:shenzhenrh
上传日期:2013-05-12
资源大小:2904k
文件大小:7k
源码类别:

信息检索与抽取

开发平台:

Unix_Linux

  1. struct List_linked;
  2. struct List_mlinks;
  3. struct ListIndex_mlinks;
  4. struct Collection_any;
  5. #ifdef METHOD_FUNCTIONS
  6. struct MapIndex_c;
  7. struct Map_c;
  8. struct OrderedSet_c;
  9. extern id _i_Collection_any_remove_ (id, SEL, id);
  10. extern id _i_Collection_any_atOffset_ (id, SEL, unsigned);
  11. extern id _i_Collection_any_getFirst (id, SEL);
  12. extern id _i_Collection_any_getLast (id, SEL);
  13. #define COLLECTION_REMOVE(coll, obj) _i_Collection_any_remove_(coll, M(remove:), obj)
  14. #define COLLECTION_ATOFFSET(coll, offset) _i_Collection_any_atOffset_ (coll, M(atAOffset:), offset)
  15. #define COLLECTION_GETLAST(coll) _i_Collection_any_getLast (coll, M(getLast))
  16. #define COLLECTION_GETFIRST(coll) _i_Collection_any_getFirst (coll, M(getFirst))
  17. extern id _i_List_linked__removeLast (id, SEL);
  18. #define LIST_REMOVELAST(list) _i_List_linked__removeLast(list, M(removeLast))
  19. extern id _i_List_linked__removeFirst (id, SEL);
  20. #define LIST_REMOVEFIRST(list) _i_List_linked__removeFirst(list, M(removeFirst))
  21. extern id _i_List_linked__addLast_ (id, SEL, id);
  22. #define LIST_ADDLAST(list, obj) _i_List_linked__addLast_(list, M(addLast), obj)
  23. extern id _i_List_linked__addFirst_ (id, SEL, id);
  24. #define LIST_ADDFIRST(list, obj) _i_List_linked__addFirst_(list, M(addFirst), obj)
  25. #define LIST_BEGIN(list) beginLinkedList (list)
  26. extern id _i_ListIndex_linked__next (id, SEL);
  27. #define LIST_INDEX_NEXT(index) _i_ListIndex_linked__next (index, M(next))
  28. extern id _i_ListIndex_linked__prev (id, SEL);
  29. #define LIST_INDEX_PREV(index) _i_ListIndex_linked__prev (index, M(prev))
  30. extern id <Symbol> _i_ListIndex_linked__getLoc (id, SEL);
  31. #define LIST_INDEX_GETLOC(index) _i_ListIndex_linked__getLoc (index, M(getLoc))
  32. extern id _i_ListIndex_linked__setLoc_ (id, SEL, id);
  33. #define LIST_INDEX_SETLOC(index, sym) _i_ListIndex_linked__setLoc_ (index, M(setLoc), sym)
  34. extern id _i_ListIndex_linked__get (id, SEL);
  35. #define LIST_INDEX_GET(index) _i_ListIndex_linked__get (index, M(get))
  36. extern id _i_ListIndex_linked__remove (id, SEL);
  37. #define LIST_INDEX_REMOVE(index) _i_ListIndex_linked__remove (index, M(remove))
  38. extern id _i_ListIndex_linked__addBefore_ (id, SEL, id);
  39. #define LIST_INDEX_ADDBEFORE(index, obj) _i_ListIndex_linked__addBefore_ (index, M(addBefore:), obj)
  40. extern id _i_List_mlinks__removeLast (id, SEL);
  41. #define MLIST_REMOVELAST(list) _i_List_mlinks_removeLast(list, M(removeLast))
  42. extern id _i_List_mlinks__removeFirst (id, SEL);
  43. #define MLIST_REMOVEFIRST(list) _i_List_mlinks__removeFirst(list, M(removeFirst))
  44. extern id _i_List_mlinks__addLast_ (id, SEL, id);
  45. #define MLIST_ADDLAST(list, obj) _i_List_mlinks__addLast_(list, M(addLast), obj)
  46. extern id _i_List_mlinks__addFirst_ (id, SEL, id);
  47. #define MLIST_ADDFIRST(list, obj) _i_List_mlinks__addFirst_(list, M(addFirst), obj)
  48. #define MLIST_BEGIN_ZONE(list,aZone) beginMlinksList(list, aZone)
  49. extern id _i_ListIndex_mlinks__next (id, SEL);
  50. #define MLIST_INDEX_NEXT(index) _i_ListIndex_mlinks__next (index, M(next))
  51. extern id _i_ListIndex_mlinks__prev (id, SEL);
  52. #define MLIST_INDEX_PREV(index) _i_ListIndex_mlinks__prev (index, M(prev))
  53. extern id <Symbol> _i_ListIndex_mlinks__getLoc (id, SEL);
  54. #define MLIST_INDEX_GETLOC(index) _i_ListIndex_mlinks__getLoc (index, M(getLoc))
  55. extern void _i_ListIndex_mlinks__setLoc_ (id, SEL, id);
  56. #define MLIST_INDEX_SETLOC(index, sym) _i_ListIndex_mlinks__setLoc_ (index, M(setLoc:), sym)
  57. extern id _i_ListIndex_mlinks__remove (struct ListIndex_mlinks *, struct objc_selector *);
  58. #define MLIST_INDEX_REMOVE(index) _i_ListIndex_mlinks__remove ((struct ListIndex_mlinks *) index, M(remove))
  59. extern id _i_List_mlinks__createIndex_fromMember_ (struct List_mlinks *, struct objc_selector *, struct objc_object *, struct objc_object *);
  60. #define MLIST_CREATEINDEX_FROMMEMBER(list, zone, obj) _i_List_mlinks__createIndex_fromMember_ ((struct List_mlinks *) list, M(createIndex:fromMember:), zone, obj)
  61. extern id _i_Map_c__createIndex_fromMember_ (struct Map_c *, struct objc_selector *, id, id);
  62. #define MAP_CREATEINDEX_FROMMEMBER(map, zone, obj) _i_Map_c__createIndex_fromMember_ (map, M(createIndex:fromMember:), zone, obj)
  63. extern BOOL _i_Map_c__at_memberSlot_ (struct Map_c *, struct objc_selector *, id, id **);
  64. #define MAP_AT_MEMBERSLOT(map, key, ptr) _i_Map_c__at_memberSlot_ (map, M(at:memberSlot:), key, ptr)
  65. extern id _i_MapIndex_c__next (struct MapIndex_c *, struct objc_selector *);
  66. #define MAP_INDEX_NEXT(index) _i_MapIndex_c__next (index, M(next))
  67. extern id _i_MapIndex_c__next_ (struct MapIndex_c *, struct objc_selector *, id *);
  68. #define MAP_INDEX_NEXTKEY(mapindex, keyptr) _i_MapIndex_c__next_ (mapindex, M(next:), keyptr)
  69. extern id _i_MapIndex_c__prev (struct MapIndex_c *, struct objc_selector *);
  70. #define MAP_INDEX_PREV(index) _i_MapIndex_c__prev (index, M(prev))
  71. extern void _i_MapIndex_c__setLoc_ (struct MapIndex_c *, struct objc_selector *, id <Symbol>);
  72. #define MAP_INDEX_SETLOC(index, sym) _i_MapIndex_c__setLoc_ (index, M(setLoc:), sym)
  73. extern id <Symbol> _i_MapIndex_c__getLoc (struct MapIndex_c *, struct objc_selector *);
  74. #define MAP_INDEX_GETLOC(index) _i_MapIndex_c__getLoc (index, M(getLoc:))
  75. extern BOOL _i_Map_c__at_insert_ (struct Map_c *, struct objc_selector *, id, id);
  76. #define MAP_AT_INSERT(map, key, value) _i_Map_c__at_insert_ (self, M(at:insert:), key, value)
  77. extern id _i_OrderedSet_c__remove_ (struct OrderedSet_c *, struct objc_selector *, id);
  78. #define ORDEREDSET_REMOVE(set, obj) _i_OrderedSet_c__remove_ (set, M(remove:), obj)
  79. #else
  80. #define COLLECTION_REMOVE(coll, obj) [coll remove: obj]
  81. #define COLLECTION_ATOFFSET(coll, offset) [coll atOffset: offset]
  82. #define COLLECTION_GETLAST(coll) [coll getLast]
  83. #define COLLECTION_GETFIRST(coll) [coll getFirst]
  84. #define LIST_REMOVELAST(list) [list removeLast]
  85. #define LIST_REMOVEFIRST(list) [list removeFirst]
  86. #define LIST_ADDFIRST(list, obj) [list addFirst: obj]
  87. #define LIST_ADDLAST(list, obj) [list addLast: obj]
  88. #define LIST_BEGIN(list) beginLinkedList (list)
  89. #define LIST_INDEX_NEXT(index) [index next]
  90. #define LIST_INDEX_PREV(index) [index prev]
  91. #define LIST_INDEX_GETLOC(index) [index getLoc]
  92. #define LIST_INDEX_SETLOC(index, sym) [index setLoc: sym]
  93. #define LIST_INDEX_GET(index) [index get]
  94. #define LIST_INDEX_REMOVE(index) [index remove]
  95. #define LIST_INDEX_ADDBEFORE(index, obj) [index addBefore: obj]
  96. #define MLIST_BEGIN_ZONE(list,aZone) beginMlinksList (list,aZone)
  97. #define MLIST_INDEX_NEXT(index) [index next]
  98. #define MLIST_INDEX_PREV(index) [index prev]
  99. #define MLIST_INDEX_GETLOC(index) [index getLoc]
  100. #define MLIST_INDEX_SETLOC(index, sym) [index setLoc: sym]
  101. #define MLIST_INDEX_REMOVE(index) [index remove]
  102. #define MLIST_CREATEINDEX_FROMMEMBER(list, zone, obj) [list createIndex: zone fromMember: obj]
  103. #define MLIST_REMOVELAST(list) [list removeLast]
  104. #define MLIST_REMOVEFIRST(list) [list removeFirst]
  105. #define MLIST_ADDLAST(list, obj) [list addLast: obj]
  106. #define MLIST_ADDFIRST(list, obj) [list addFirst: obj]
  107. #define MAP_CREATEINDEX_FROMMEMBER(map, zone, obj) [map createIndex: zone fromMember: obj]
  108. #define MAP_AT_MEMBERSLOT(map, key, ptr) [map at: key memberSlot: ptr]
  109. #define MAP_AT_INSERT(map, key, value) [map at: key insert: value]
  110. #define MAP_INDEX_NEXT(index) [index next]
  111. #define MAP_INDEX_NEXTKEY(index, keyptr) [index next: keyptr]
  112. #define MAP_INDEX_PREV(index) [index prev]
  113. #define MAP_INDEX_SETLOC(index, sym) [index setLoc: sym]
  114. #define MAP_INDEX_GETLOC(index) [index getLoc]
  115. #define ORDEREDSET_REMOVE(set, obj) [set remove: obj]
  116. #endif
  117. #ifndef BUILDING_SWARM
  118. #define COLLECTION_COUNT(coll) (((Collection_any *) coll)->count)
  119. #define LIST_GETFIRST(l) ((((List_linked *) l)->firstLink)->refObject)
  120. #define MLIST_GETFIRST(l) getFirstMlinksList (l)
  121. #endif