#include "src/trace_processor/sqlite/sqlite_tokenizer.h"
#include <ctype.h>
#include <sqlite3.h>
#include <cstdint>
#include <optional>
#include <string_view>
#include "perfetto/base/compiler.h"
#include "perfetto/base/logging.h"
namespace perfetto {
namespace trace_processor {
namespace {
const unsigned char sqlite3CtypeMap[256] = …;
#define CC_X …
#define CC_KYWD0 …
#define CC_KYWD …
#define CC_DIGIT …
#define CC_DOLLAR …
#define CC_VARALPHA …
#define CC_VARNUM …
#define CC_SPACE …
#define CC_QUOTE …
#define CC_QUOTE2 …
#define CC_PIPE …
#define CC_MINUS …
#define CC_LT …
#define CC_GT …
#define CC_EQ …
#define CC_BANG …
#define CC_SLASH …
#define CC_LP …
#define CC_RP …
#define CC_SEMI …
#define CC_PLUS …
#define CC_STAR …
#define CC_PERCENT …
#define CC_COMMA …
#define CC_AND …
#define CC_TILDA …
#define CC_DOT …
#define CC_ID …
#define CC_NUL …
#define CC_BOM …
static const unsigned char aiClass[] = …;
#define IdChar(C) …
int GetSqliteToken(const unsigned char* z, SqliteTokenType* tokenType) { … }
}
SqliteTokenizer::SqliteTokenizer(SqlSource sql) : … { … }
SqliteTokenizer::Token SqliteTokenizer::Next() { … }
SqliteTokenizer::Token SqliteTokenizer::NextNonWhitespace() { … }
SqliteTokenizer::Token SqliteTokenizer::NextTerminal() { … }
SqlSource SqliteTokenizer::Substr(const Token& start, const Token& end) const { … }
SqlSource SqliteTokenizer::SubstrToken(const Token& token) const { … }
std::string SqliteTokenizer::AsTraceback(const Token& token) const { … }
void SqliteTokenizer::Rewrite(SqlSource::Rewriter& rewriter,
const Token& start,
const Token& end,
SqlSource rewrite,
EndToken end_token) const { … }
void SqliteTokenizer::RewriteToken(SqlSource::Rewriter& rewriter,
const Token& token,
SqlSource rewrite) const { … }
}
}