|
From Gail:
... need to get a list of reserved words, at least those that were affected by this bug.
I tried a couple of random tokens in hql.g and they did not cause a problem without the fix. Do you know what other than "class" and "OBJECT" would be affected? I did notice that things like "claSs" and "object" were also affected by by the bug, so case doesn't matter.
Did this bug only affect named parameters?
It should only affect named parameters, specifically named parameters whose name is recognized as something other than an IDENT in the lexer. This will be any tokens whose text is explicitly named in the grammar (the hql.g file). As an example, look at the difference in how the ALL (or OBJECT or CLASS) token is defined versus say the FIRST token:
tokens
{
ALL="all";
...
CLASS="class";
...
OBJECT="object";
...
FIRST;
}
This difference has an effect on the lexer. The lexer, based on the above declarations, will recognized the character sequence "all" (any case) as a token with type ALL (not IDENT!!!) and text "all". Whereas it will recognize the character sequence "first" as a token with type IDENT and text "first".
Using "all" or "object" or "class" (or any other "token literals") as a named parameter name will trigger this. So look through hql.g and find all the defined tokens that assign a text literal... those are the words that will trigger this if used as a named parameter name. There are some others, but this rule covers most cases.
|