diff options
author | vitalyisaev <vitalyisaev@yandex-team.com> | 2023-06-29 10:00:50 +0300 |
---|---|---|
committer | vitalyisaev <vitalyisaev@yandex-team.com> | 2023-06-29 10:00:50 +0300 |
commit | 6ffe9e53658409f212834330e13564e4952558f6 (patch) | |
tree | 85b1e00183517648b228aafa7c8fb07f5276f419 /contrib/libs/clang16/include/clang/Basic/TokenKinds.h | |
parent | 726057070f9c5a91fc10fde0d5024913d10f1ab9 (diff) | |
download | ydb-6ffe9e53658409f212834330e13564e4952558f6.tar.gz |
YQ Connector: support managed ClickHouse
Со стороны dqrun можно обратиться к инстансу коннектора, который работает на streaming стенде, и извлечь данные из облачного CH.
Diffstat (limited to 'contrib/libs/clang16/include/clang/Basic/TokenKinds.h')
-rw-r--r-- | contrib/libs/clang16/include/clang/Basic/TokenKinds.h | 134 |
1 files changed, 134 insertions, 0 deletions
diff --git a/contrib/libs/clang16/include/clang/Basic/TokenKinds.h b/contrib/libs/clang16/include/clang/Basic/TokenKinds.h new file mode 100644 index 0000000000..7999ee777e --- /dev/null +++ b/contrib/libs/clang16/include/clang/Basic/TokenKinds.h @@ -0,0 +1,134 @@ +#pragma once + +#ifdef __GNUC__ +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wunused-parameter" +#endif + +//===--- TokenKinds.h - Enum values for C Token Kinds -----------*- C++ -*-===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// +/// +/// \file +/// Defines the clang::TokenKind enum and support functions. +/// +//===----------------------------------------------------------------------===// + +#ifndef LLVM_CLANG_BASIC_TOKENKINDS_H +#define LLVM_CLANG_BASIC_TOKENKINDS_H + +#include "llvm/ADT/DenseMapInfo.h" +#include "llvm/Support/Compiler.h" + +namespace clang { + +namespace tok { + +/// Provides a simple uniform namespace for tokens from all C languages. +enum TokenKind : unsigned short { +#define TOK(X) X, +#include "clang/Basic/TokenKinds.def" + NUM_TOKENS +}; + +/// Provides a namespace for preprocessor keywords which start with a +/// '#' at the beginning of the line. +enum PPKeywordKind { +#define PPKEYWORD(X) pp_##X, +#include "clang/Basic/TokenKinds.def" + NUM_PP_KEYWORDS +}; + +/// Provides a namespace for Objective-C keywords which start with +/// an '@'. +enum ObjCKeywordKind { +#define OBJC_AT_KEYWORD(X) objc_##X, +#include "clang/Basic/TokenKinds.def" + NUM_OBJC_KEYWORDS +}; + +/// Defines the possible values of an on-off-switch (C99 6.10.6p2). +enum OnOffSwitch { + OOS_ON, OOS_OFF, OOS_DEFAULT +}; + +/// Determines the name of a token as used within the front end. +/// +/// The name of a token will be an internal name (such as "l_square") +/// and should not be used as part of diagnostic messages. +const char *getTokenName(TokenKind Kind) LLVM_READNONE; + +/// Determines the spelling of simple punctuation tokens like +/// '!' or '%', and returns NULL for literal and annotation tokens. +/// +/// This routine only retrieves the "simple" spelling of the token, +/// and will not produce any alternative spellings (e.g., a +/// digraph). For the actual spelling of a given Token, use +/// Preprocessor::getSpelling(). +const char *getPunctuatorSpelling(TokenKind Kind) LLVM_READNONE; + +/// Determines the spelling of simple keyword and contextual keyword +/// tokens like 'int' and 'dynamic_cast'. Returns NULL for other token kinds. +const char *getKeywordSpelling(TokenKind Kind) LLVM_READNONE; + +/// Returns the spelling of preprocessor keywords, such as "else". +const char *getPPKeywordSpelling(PPKeywordKind Kind) LLVM_READNONE; + +/// Return true if this is a raw identifier or an identifier kind. +inline bool isAnyIdentifier(TokenKind K) { + return (K == tok::identifier) || (K == tok::raw_identifier); +} + +/// Return true if this is a C or C++ string-literal (or +/// C++11 user-defined-string-literal) token. +inline bool isStringLiteral(TokenKind K) { + return K == tok::string_literal || K == tok::wide_string_literal || + K == tok::utf8_string_literal || K == tok::utf16_string_literal || + K == tok::utf32_string_literal; +} + +/// Return true if this is a "literal" kind, like a numeric +/// constant, string, etc. +inline bool isLiteral(TokenKind K) { + return K == tok::numeric_constant || K == tok::char_constant || + K == tok::wide_char_constant || K == tok::utf8_char_constant || + K == tok::utf16_char_constant || K == tok::utf32_char_constant || + isStringLiteral(K) || K == tok::header_name; +} + +/// Return true if this is any of tok::annot_* kinds. +bool isAnnotation(TokenKind K); + +/// Return true if this is an annotation token representing a pragma. +bool isPragmaAnnotation(TokenKind K); + +} // end namespace tok +} // end namespace clang + +namespace llvm { +template <> struct DenseMapInfo<clang::tok::PPKeywordKind> { + static inline clang::tok::PPKeywordKind getEmptyKey() { + return clang::tok::PPKeywordKind::pp_not_keyword; + } + static inline clang::tok::PPKeywordKind getTombstoneKey() { + return clang::tok::PPKeywordKind::NUM_PP_KEYWORDS; + } + static unsigned getHashValue(const clang::tok::PPKeywordKind &Val) { + return static_cast<unsigned>(Val); + } + static bool isEqual(const clang::tok::PPKeywordKind &LHS, + const clang::tok::PPKeywordKind &RHS) { + return LHS == RHS; + } +}; +} // namespace llvm + +#endif + +#ifdef __GNUC__ +#pragma GCC diagnostic pop +#endif |