/*static*/ bool SqlTokenizer::isReservedWord(const QString& word) { if (word.isEmpty()) return false; const KeywordToTokenMap& keywords = getKeywordToTokenMap(); KeywordToTokenMap::const_iterator pos = keywords.find(word); return pos != keywords.end(); }
/*static*/ SqlTokenType SqlTokenizer::getKeywordTokenType(const QString& word) { if (word.isEmpty()) return tkIDENTIFIER; const KeywordToTokenMap& keywords = getKeywordToTokenMap(); KeywordToTokenMap::const_iterator pos = keywords.find(word.toUpper()); if (pos != keywords.end()) return (*pos).second; return tkIDENTIFIER; }
/*static*/ QString SqlTokenizer::getKeyword(SqlTokenType token, bool upperCase) { if (upperCase) { static TokenToKeywordMap keywordsUpperCase; if (keywordsUpperCase.empty()) { const KeywordToTokenMap& keywordsMap = getKeywordToTokenMap(); for (KeywordToTokenMap::const_iterator it = keywordsMap.begin(); it != keywordsMap.end(); ++it) { keywordsUpperCase.insert(TokenToKeywordEntry((*it).second, (*it).first.toUpper())); } } TokenToKeywordMap::const_iterator pos = keywordsUpperCase.find(token); if (pos != keywordsUpperCase.end()) return (*pos).second; } else { static TokenToKeywordMap keywordsLowerCase; if (keywordsLowerCase.empty()) { const KeywordToTokenMap& keywordsMap = getKeywordToTokenMap(); for (KeywordToTokenMap::const_iterator it = keywordsMap.begin(); it != keywordsMap.end(); ++it) { keywordsLowerCase.insert(TokenToKeywordEntry((*it).second, (*it).first.toLower())); } } TokenToKeywordMap::const_iterator pos = keywordsLowerCase.find(token); if (pos != keywordsLowerCase.end()) return (*pos).second; } return QString(); }
/*static*/ QStringList SqlTokenizer::getKeywords(KeywordCase kwc) { const KeywordToTokenMap& keywordsMap = getKeywordToTokenMap(); QStringList keywords; keywords.reserve((int)keywordsMap.size()); bool upperCase = (kwc == kwUpperCase) || (kwc == kwDefaultCase && config().get(QString::fromLatin1("SQLKeywordsUpperCase"), false)); for (KeywordToTokenMap::const_iterator it = keywordsMap.begin(); it != keywordsMap.end(); ++it) { if (upperCase) keywords.push_back(((*it).first).toUpper()); else keywords.push_back(((*it).first).toLower()); } keywords.sort(); return keywords; }
/*static*/ wxArrayString SqlTokenizer::getKeywords(KeywordCase kwc) { const KeywordToTokenMap& keywordsMap = getKeywordToTokenMap(); wxArrayString keywords; keywords.Alloc(keywordsMap.size()); bool upperCase = (kwc == kwUpperCase) || (kwc == kwDefaultCase && config().get("SQLKeywordsUpperCase", false)); for (KeywordToTokenMap::const_iterator it = keywordsMap.begin(); it != keywordsMap.end(); ++it) { if (upperCase) keywords.Add(((*it).first).Upper()); else keywords.Add(((*it).first).Lower()); } keywords.Sort(); return keywords; }