alex910TN 0 Light Poster

Hey guys,
I find myself here once again seeking your expertese. Long story short, I need to create a hash function that will hash a list of lexemes in a programming language to unique indicies in a hash table. The problem is that the lexemes (provided below) must all hash to unqiue indicies will NO COLLISIONS. I know this seems odd, but their is some good reasoning behind this constriant (I will provide expaination if needed). Here are the list of lexemes:

PROGRAM 
VAR
BEGIN
END
END.
INTEGER
FOR
READ
WRITE
TO
DO
;
:
,
:=
+
-
*
DIV
(
) 

I just want you to know that I have tried numerious times but all with table sizes in the range of 32 to 60. Which is more than enough.Hash functions that I have tried so far include:
1. hash= hash + (int)array[i]; //i=0 to i=lexemelength
2. hash= 3 * hash + (int)array[i]; //same i specs
3. hash= (3*hash) + (int)tolower(array[i]); //done when i is odd, otherwise when even do hash number 2(above).
And some more...
I appreciate any help that you guys can provide me.
Thanks
Alex