diff options
Diffstat (limited to 'SQLiteStudio3/coreSQLiteStudio/expectedtoken.cpp')
| -rw-r--r-- | SQLiteStudio3/coreSQLiteStudio/expectedtoken.cpp | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/SQLiteStudio3/coreSQLiteStudio/expectedtoken.cpp b/SQLiteStudio3/coreSQLiteStudio/expectedtoken.cpp new file mode 100644 index 0000000..a02f8c9 --- /dev/null +++ b/SQLiteStudio3/coreSQLiteStudio/expectedtoken.cpp @@ -0,0 +1,73 @@ +#include "expectedtoken.h" + +bool ExpectedToken::needsWrapping() const +{ + switch (type) + { + case ExpectedToken::COLUMN: + case ExpectedToken::TABLE: + case ExpectedToken::INDEX: + case ExpectedToken::TRIGGER: + case ExpectedToken::VIEW: + case ExpectedToken::DATABASE: + case ExpectedToken::OTHER: + case ExpectedToken::COLLATION: + return true; + case ExpectedToken::KEYWORD: + case ExpectedToken::FUNCTION: + case ExpectedToken::OPERATOR: + case ExpectedToken::STRING: + case ExpectedToken::NUMBER: + case ExpectedToken::BLOB: + case ExpectedToken::PRAGMA: + case ExpectedToken::NO_VALUE: + return false; + } + return false; +} + +int ExpectedToken::operator==(const ExpectedToken& other) +{ + return type == other.type && value == other.value && contextInfo == other.contextInfo && + label == other.label && prefix == other.prefix; +} + +QString ExpectedToken::toString() const +{ + return QString("%4. %1 : %2 (ctx: %3) [label: %5]").arg(value).arg(type).arg(contextInfo).arg(prefix).arg(label); +} + +ExpectedTokenPtr::ExpectedTokenPtr() : + QSharedPointer<ExpectedToken>() +{ +} + +ExpectedTokenPtr::ExpectedTokenPtr(ExpectedToken* ptr) : + QSharedPointer<ExpectedToken>(ptr) +{ +} + +ExpectedTokenPtr::ExpectedTokenPtr(const QSharedPointer<ExpectedToken>& other) : + QSharedPointer<ExpectedToken>(other) +{ +} + +ExpectedTokenPtr::ExpectedTokenPtr(const QWeakPointer<ExpectedToken>& other) : + QSharedPointer<ExpectedToken>(other) +{ +} + +int operator==(const ExpectedTokenPtr& ptr1, const ExpectedTokenPtr& ptr2) +{ + return *ptr1.data() == *ptr2.data(); +} + +int qHash(const ExpectedToken& token) +{ + return token.type ^ qHash(token.value + "/" + token.value + "/" + token.contextInfo + "/" + token.label + "/" + token.prefix); +} + +int qHash(const ExpectedTokenPtr& ptr) +{ + return qHash(*ptr.data()); +} |
