[antlr-interest] C Runtime - list container suggestions

Gavin Lambert antlr at mirality.co.nz
Tue Aug 14 01:09:25 PDT 2007


At 10:29 14/08/2007, Jim Idle wrote:
>I will implement a temporary fix, then look at changing to 
>vectors, which are faster than the hash table for this anyway. I 
>think my doubts were whether you should be able to delete an 
>element from the list and expect the keys to be preserved, or 
>whether the key should be an ordinal, in that you can delete list 
>entry #1 as many times as there is a list entry #1 left. I need 
>to decide which it should be then implement either a key field in 
>the structure (so that it does not reuse the same key in the 
>hashtable), or change to vectors and make the key ordinal (which 
>is what I think a list means actually).

By normal definitions, a "list" could either be a "linked list" or 
a "vector"; either way it's logically unkeyed (though frequently 
they are implicitly keyed by their position in the 
collection).  So for a "list" I think everyone would expect the 
behaviour that if you deleted item #1 then item #2 would "move" to 
become the new item #1.  (Which is not what it does right now.)

I imagine hashtables could still be useful in some places (eg. the 
string factory), but I suspect most of the public stuff should 
probably be dealing with lists.



More information about the antlr-interest mailing list