//===-- LangStandards.def - Language Standard Data --------------*- C++ -*-===//
//
//                     The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//

#ifndef LANGSTANDARD
#error "LANGSTANDARD must be defined before including this file"
#endif

/// LANGSTANDARD(IDENT, NAME, DESC, FEATURES)
///
/// \param IDENT - The name of the standard as a C++ identifier.
/// \param NAME - The name of the standard.
/// \param DESC - A short description of the standard.
/// \param FEATURES - The standard features as flags, these are enums from the
/// clang::frontend namespace, which is assumed to be be available.

// C89-ish modes.
LANGSTANDARD(c89, "c89",
             "ISO C 1990",
             C89 | ImplicitInt)
LANGSTANDARD(c90, "c90",
             "ISO C 1990",
             C89 | ImplicitInt)
LANGSTANDARD(iso9899_1990, "iso9899:1990",
             "ISO C 1990",
             C89 | ImplicitInt)

LANGSTANDARD(c94, "iso9899:199409",
             "ISO C 1990 with amendment 1",
             C89 | Digraphs | ImplicitInt)

LANGSTANDARD(gnu89, "gnu89",
             "ISO C 1990 with GNU extensions",
             BCPLComment | C89 | Digraphs | GNUMode | ImplicitInt)
LANGSTANDARD(gnu90, "gnu90",
             "ISO C 1990 with GNU extensions",
             BCPLComment | C89 | Digraphs | GNUMode | ImplicitInt)

// C99-ish modes
LANGSTANDARD(c99, "c99",
             "ISO C 1999",
             BCPLComment | C99 | Digraphs | HexFloat)
LANGSTANDARD(c9x, "c9x",
             "ISO C 1999",
             BCPLComment | C99 | Digraphs | HexFloat)
LANGSTANDARD(iso9899_1999,
             "iso9899:1999", "ISO C 1999",
             BCPLComment | C99 | Digraphs | HexFloat)
LANGSTANDARD(iso9899_199x,
             "iso9899:199x", "ISO C 1999",
             BCPLComment | C99 | Digraphs | HexFloat)

LANGSTANDARD(gnu99, "gnu99",
             "ISO C 1999 with GNU extensions",
             BCPLComment | C99 | Digraphs | GNUMode | HexFloat)
LANGSTANDARD(gnu9x, "gnu9x",
             "ISO C 1999 with GNU extensions",
             BCPLComment | C99 | Digraphs | GNUMode | HexFloat)

// C11 modes
LANGSTANDARD(c11, "c11",
             "ISO C 2011",
             BCPLComment | C99 | C11 | Digraphs | HexFloat)
LANGSTANDARD(c1x, "c1x",
             "ISO C 2011",
             BCPLComment | C99 | C11 | Digraphs | HexFloat)
LANGSTANDARD(iso9899_2011,
             "iso9899:2011", "ISO C 2011",
             BCPLComment | C99 | C11 | Digraphs | HexFloat)
LANGSTANDARD(iso9899_201x,
             "iso9899:2011", "ISO C 2011",
             BCPLComment | C99 | C11 | Digraphs | HexFloat)

LANGSTANDARD(gnu11, "gnu11",
             "ISO C 2011 with GNU extensions",
             BCPLComment | C99 | C11 | Digraphs | GNUMode | HexFloat)
LANGSTANDARD(gnu1x, "gnu1x",
             "ISO C 2011 with GNU extensions",
             BCPLComment | C99 | C11 | Digraphs | GNUMode | HexFloat)

// C++ modes
LANGSTANDARD(cxx98, "c++98",
             "ISO C++ 1998 with amendments",
             BCPLComment | CPlusPlus | Digraphs)
LANGSTANDARD(cxx03, "c++03",
             "ISO C++ 1998 with amendments",
             BCPLComment | CPlusPlus | Digraphs)
LANGSTANDARD(gnucxx98, "gnu++98",
             "ISO C++ 1998 with amendments and GNU extensions",
             BCPLComment | CPlusPlus | Digraphs | GNUMode)

LANGSTANDARD(cxx0x, "c++0x",
             "ISO C++ 2011 with amendments",
             BCPLComment | CPlusPlus | CPlusPlus0x | Digraphs)
LANGSTANDARD(cxx11, "c++11",
             "ISO C++ 2011 with amendments",
             BCPLComment | CPlusPlus | CPlusPlus0x | Digraphs)
LANGSTANDARD(gnucxx0x, "gnu++0x",
             "ISO C++ 2011 with amendments and GNU extensions",
             BCPLComment | CPlusPlus | CPlusPlus0x | Digraphs | GNUMode)
LANGSTANDARD(gnucxx11, "gnu++11",
             "ISO C++ 2011 with amendments and GNU extensions",
             BCPLComment | CPlusPlus | CPlusPlus0x | Digraphs | GNUMode)

// OpenCL
LANGSTANDARD(opencl, "cl",
             "OpenCL 1.0",
             BCPLComment | C99 | Digraphs | HexFloat)
LANGSTANDARD(opencl11, "CL1.1",
             "OpenCL 1.1",
             BCPLComment | C99 | Digraphs | HexFloat)
LANGSTANDARD(opencl12, "CL1.2",
             "OpenCL 1.2",
             BCPLComment | C99 | Digraphs | HexFloat)

// CUDA
LANGSTANDARD(cuda, "cuda",
             "NVIDIA CUDA(tm)",
             BCPLComment | CPlusPlus | Digraphs)

#undef LANGSTANDARD
