From 7167ce41b61d2ba2cdb526777a4233eb84a3b66a Mon Sep 17 00:00:00 2001 From: Unit 193 Date: Sat, 6 Dec 2014 17:33:25 -0500 Subject: Imported Upstream version 2.99.6 --- SQLiteStudio3/coreSQLiteStudio/expectedtoken.cpp | 73 ++++++++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 SQLiteStudio3/coreSQLiteStudio/expectedtoken.cpp (limited to 'SQLiteStudio3/coreSQLiteStudio/expectedtoken.cpp') 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() +{ +} + +ExpectedTokenPtr::ExpectedTokenPtr(ExpectedToken* ptr) : + QSharedPointer(ptr) +{ +} + +ExpectedTokenPtr::ExpectedTokenPtr(const QSharedPointer& other) : + QSharedPointer(other) +{ +} + +ExpectedTokenPtr::ExpectedTokenPtr(const QWeakPointer& other) : + QSharedPointer(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()); +} -- cgit v1.2.3