diff options
Diffstat (limited to 'include/clang/Frontend/LangStandard.h')
-rw-r--r-- | include/clang/Frontend/LangStandard.h | 117 |
1 files changed, 0 insertions, 117 deletions
diff --git a/include/clang/Frontend/LangStandard.h b/include/clang/Frontend/LangStandard.h deleted file mode 100644 index 244f14c793de..000000000000 --- a/include/clang/Frontend/LangStandard.h +++ /dev/null @@ -1,117 +0,0 @@ -//===--- LangStandard.h -----------------------------------------*- 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 -// -//===----------------------------------------------------------------------===// - -#ifndef LLVM_CLANG_FRONTEND_LANGSTANDARD_H -#define LLVM_CLANG_FRONTEND_LANGSTANDARD_H - -#include "clang/Basic/LLVM.h" -#include "clang/Frontend/FrontendOptions.h" -#include "llvm/ADT/StringRef.h" - -namespace clang { - -namespace frontend { - -enum LangFeatures { - LineComment = (1 << 0), - C99 = (1 << 1), - C11 = (1 << 2), - C17 = (1 << 3), - C2x = (1 << 4), - CPlusPlus = (1 << 5), - CPlusPlus11 = (1 << 6), - CPlusPlus14 = (1 << 7), - CPlusPlus17 = (1 << 8), - CPlusPlus2a = (1 << 9), - Digraphs = (1 << 10), - GNUMode = (1 << 11), - HexFloat = (1 << 12), - ImplicitInt = (1 << 13), - OpenCL = (1 << 14) -}; - -} - -/// LangStandard - Information about the properties of a particular language -/// standard. -struct LangStandard { - enum Kind { -#define LANGSTANDARD(id, name, lang, desc, features) \ - lang_##id, -#include "clang/Frontend/LangStandards.def" - lang_unspecified - }; - - const char *ShortName; - const char *Description; - unsigned Flags; - InputKind::Language Language; - -public: - /// getName - Get the name of this standard. - const char *getName() const { return ShortName; } - - /// getDescription - Get the description of this standard. - const char *getDescription() const { return Description; } - - /// Get the language that this standard describes. - InputKind::Language getLanguage() const { return Language; } - - /// Language supports '//' comments. - bool hasLineComments() const { return Flags & frontend::LineComment; } - - /// isC99 - Language is a superset of C99. - bool isC99() const { return Flags & frontend::C99; } - - /// isC11 - Language is a superset of C11. - bool isC11() const { return Flags & frontend::C11; } - - /// isC17 - Language is a superset of C17. - bool isC17() const { return Flags & frontend::C17; } - - /// isC2x - Language is a superset of C2x. - bool isC2x() const { return Flags & frontend::C2x; } - - /// isCPlusPlus - Language is a C++ variant. - bool isCPlusPlus() const { return Flags & frontend::CPlusPlus; } - - /// isCPlusPlus11 - Language is a C++11 variant (or later). - bool isCPlusPlus11() const { return Flags & frontend::CPlusPlus11; } - - /// isCPlusPlus14 - Language is a C++14 variant (or later). - bool isCPlusPlus14() const { return Flags & frontend::CPlusPlus14; } - - /// isCPlusPlus17 - Language is a C++17 variant (or later). - bool isCPlusPlus17() const { return Flags & frontend::CPlusPlus17; } - - /// isCPlusPlus2a - Language is a post-C++17 variant (or later). - bool isCPlusPlus2a() const { return Flags & frontend::CPlusPlus2a; } - - - /// hasDigraphs - Language supports digraphs. - bool hasDigraphs() const { return Flags & frontend::Digraphs; } - - /// isGNUMode - Language includes GNU extensions. - bool isGNUMode() const { return Flags & frontend::GNUMode; } - - /// hasHexFloats - Language supports hexadecimal float constants. - bool hasHexFloats() const { return Flags & frontend::HexFloat; } - - /// hasImplicitInt - Language allows variables to be typed as int implicitly. - bool hasImplicitInt() const { return Flags & frontend::ImplicitInt; } - - /// isOpenCL - Language is a OpenCL variant. - bool isOpenCL() const { return Flags & frontend::OpenCL; } - - static const LangStandard &getLangStandardForKind(Kind K); - static const LangStandard *getLangStandardForName(StringRef Name); -}; - -} // end namespace clang - -#endif |