And the point of this? Did you actually read what I wrote. And (since you did not ask questions) Did you understand it?
But first of all, I am writing this under the assumptions, you still try to "proove" that comparing the hash value, but skipping the string compare) is a solution ?
If that is not the case, then please make it clear.
I wrote
For a given set of keywords, there may be a hash, that if compared together with the length, will not allocate any other words (of the same length) to any of the hash values of any keyword.
To prove you have such a hash, you must try ALL combinations of letters of the length of each keyword.
And if you ever have to add another keyword, well....
So even if you ignore the last sentence (but why ignore it?)
What good is your code, that tests a subset of combinations ?
And if you did NOT ignore the last sentence of my quote:
What good would it be, to show it works with the current set of keywords, if tomorrow there will be a new keyword added (e.g. fpc adds a new modifier, like "deprecated", that gets highlighted, so must be added).
And then that new keyword may break it, and you need a new hash algorithm?
What good is all that?