|
@@ -1,17 +1,19 @@
|
|
|
|
|
|
-Strict
|
|
|
+SuperStrict
|
|
|
|
|
|
Rem
|
|
|
bbdoc: Data structures/Maps
|
|
|
End Rem
|
|
|
Module BRL.Map
|
|
|
|
|
|
-ModuleInfo "Version: 1.09"
|
|
|
+ModuleInfo "Version: 1.10"
|
|
|
ModuleInfo "Author: Mark Sibly"
|
|
|
ModuleInfo "License: zlib/libpng"
|
|
|
ModuleInfo "Copyright: Blitz Research Ltd"
|
|
|
ModuleInfo "Modserver: BRL"
|
|
|
|
|
|
+ModuleInfo "History: 1.10"
|
|
|
+ModuleInfo "History: Changed to SuperStrict."
|
|
|
ModuleInfo "History: 1.09"
|
|
|
ModuleInfo "History: Added index operator overloads to maps."
|
|
|
ModuleInfo "History: 1.08"
|
|
@@ -127,12 +129,12 @@ Type TNode Extends TKeyValue
|
|
|
|
|
|
'***** PRIVATE *****
|
|
|
|
|
|
- Field _color,_parent:TNode=nil,_left:TNode=nil,_right:TNode=nil
|
|
|
+ Field _color:Int,_parent:TNode=nil,_left:TNode=nil,_right:TNode=nil
|
|
|
|
|
|
End Type
|
|
|
|
|
|
Type TNodeEnumerator
|
|
|
- Method HasNext()
|
|
|
+ Method HasNext:Int()
|
|
|
Local has:Int = _node<>nil
|
|
|
If Not has Then
|
|
|
_map = Null
|
|
@@ -215,7 +217,7 @@ Type TMap
|
|
|
bbdoc: Checks if the map is empty.
|
|
|
about: #True if @map is empty, otherwise #False.
|
|
|
End Rem
|
|
|
- Method IsEmpty()
|
|
|
+ Method IsEmpty:Int()
|
|
|
Return _root=nil
|
|
|
End Method
|
|
|
|
|
@@ -227,7 +229,7 @@ Type TMap
|
|
|
|
|
|
Assert key Else "Can't insert Null key into map"
|
|
|
|
|
|
- Local node:TNode=_root,parent:TNode=nil,cmp
|
|
|
+ Local node:TNode=_root,parent:TNode=nil,cmp:Int
|
|
|
|
|
|
While node<>nil
|
|
|
parent=node
|
|
@@ -269,7 +271,7 @@ Type TMap
|
|
|
bbdoc: Checks if the map contains @key.
|
|
|
returns: #True if the map contains @key.
|
|
|
End Rem
|
|
|
- Method Contains( key:Object )
|
|
|
+ Method Contains:Int( key:Object )
|
|
|
Return _FindNode( key )<>nil
|
|
|
End Method
|
|
|
|
|
@@ -287,7 +289,7 @@ Type TMap
|
|
|
bbdoc: Remove a key/value pair from the map.
|
|
|
returns: #True if @key was removed, or #False otherwise.
|
|
|
End Rem
|
|
|
- Method Remove( key:Object )
|
|
|
+ Method Remove:Int( key:Object )
|
|
|
Local node:TNode=_FindNode( key )
|
|
|
If node=nil Return 0
|
|
|
_RemoveNode node
|
|
@@ -378,7 +380,7 @@ Type TMap
|
|
|
Method _FindNode:TNode( key:Object )
|
|
|
Local node:TNode=_root
|
|
|
While node<>nil
|
|
|
- Local cmp=key.Compare( node._key )
|
|
|
+ Local cmp:Int=key.Compare( node._key )
|
|
|
If cmp>0
|
|
|
node=node._right
|
|
|
Else If cmp<0
|
|
@@ -584,7 +586,7 @@ Type TMap
|
|
|
Insert(key, value)
|
|
|
End Method
|
|
|
|
|
|
- Const RED=-1,BLACK=1
|
|
|
+ Const RED:Int=-1,BLACK:Int=1
|
|
|
|
|
|
Field _root:TNode=nil
|
|
|
|
|
@@ -614,7 +616,7 @@ Rem
|
|
|
bbdoc: Checks if a map is empty
|
|
|
returns: True if @map is empty, otherwise false
|
|
|
End Rem
|
|
|
-Function MapIsEmpty( map:TMap )
|
|
|
+Function MapIsEmpty:Int( map:TMap )
|
|
|
Return map.IsEmpty()
|
|
|
End Function
|
|
|
|
|
@@ -641,7 +643,7 @@ Rem
|
|
|
bbdoc: Checks if a map contains a key
|
|
|
returns: True if @map contains @key
|
|
|
End Rem
|
|
|
-Function MapContains( map:TMap,key:Object )
|
|
|
+Function MapContains:Int( map:TMap,key:Object )
|
|
|
Return map.Contains( key )
|
|
|
End Function
|
|
|
|