30 lines
699 B
C++
30 lines
699 B
C++
#pragma once
|
|
|
|
#include "duckdb/common/case_insensitive_map.hpp"
|
|
#include "duckdb/common/string.hpp"
|
|
|
|
namespace duckdb {
|
|
enum class PEGKeywordCategory : uint8_t {
|
|
KEYWORD_NONE,
|
|
KEYWORD_UNRESERVED,
|
|
KEYWORD_RESERVED,
|
|
KEYWORD_TYPE_FUNC,
|
|
KEYWORD_COL_NAME
|
|
};
|
|
|
|
class PEGKeywordHelper {
|
|
public:
|
|
static PEGKeywordHelper &Instance();
|
|
bool KeywordCategoryType(const string &text, PEGKeywordCategory type) const;
|
|
void InitializeKeywordMaps();
|
|
|
|
private:
|
|
PEGKeywordHelper();
|
|
bool initialized;
|
|
case_insensitive_set_t reserved_keyword_map;
|
|
case_insensitive_set_t unreserved_keyword_map;
|
|
case_insensitive_set_t colname_keyword_map;
|
|
case_insensitive_set_t typefunc_keyword_map;
|
|
};
|
|
} // namespace duckdb
|