Beispiel #1
0
/*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();
}
Beispiel #2
0
/*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;
}
Beispiel #3
0
/*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();
}
Beispiel #4
0
/*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;
}
Beispiel #5
0
/*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;
}