
When the tokenizer encounters a keyword, it sniffs whether the last non-whitespace character before it happens to be a '.' and if it is, the keyword is assumed to be the second part of a qualified name. Thus, before this commit -- blah. UPDATE ... would not be parsed as KEYWORD (UPDATE) followed by stuff, but as an ID (blah.UPDATE) followed by stuff. With this change, newlines are no longer counted as whitespace.