aboutsummaryrefslogtreecommitdiff
path: root/runtime/ObjC/Framework/ANTLRDoubleKeyMap.h
diff options
context:
space:
mode:
Diffstat (limited to 'runtime/ObjC/Framework/ANTLRDoubleKeyMap.h')
-rw-r--r--runtime/ObjC/Framework/ANTLRDoubleKeyMap.h28
1 files changed, 28 insertions, 0 deletions
diff --git a/runtime/ObjC/Framework/ANTLRDoubleKeyMap.h b/runtime/ObjC/Framework/ANTLRDoubleKeyMap.h
new file mode 100644
index 0000000..7885879
--- /dev/null
+++ b/runtime/ObjC/Framework/ANTLRDoubleKeyMap.h
@@ -0,0 +1,28 @@
+
+#import "AMutableArray.h"
+#import "AMutableDictionary.h"
+#import "ANTLRLinkBase.h"
+/**
+ * Sometimes we need to map a key to a value but key is two pieces of data.
+ * This nested hash table saves creating a single key each time we access
+ * map; avoids mem creation.
+ */
+
+@class AMutableArray;
+
+@interface ANTLRDoubleKeyMap : ANTLRLinkBase {
+ AMutableDictionary *data;
+}
+
+- (id) init;
+- (id) setObject:(id)v forKey1:(id)k1 forKey2:(NSString *)k2;
+- (id) objectForKey1:(id)k1 forKey2:(id)k2;
+- (AMutableDictionary *) objectForKey:(id)k1;
+- (NSArray *) valuesForKey:(id)k1;
+- (NSArray *) allKeys1;
+- (AMutableArray *) allKeys2:(id)k1;
+- (NSArray *) values;
+
+@property (retain) AMutableDictionary *data;
+
+@end