00001 //===-- basic/Pragmas.h --------------------------------------- -*- C++ -*-===// 00002 // 00003 // This file is distributed under the MIT license. See LICENSE.txt for details. 00004 // 00005 // Copyright (C) 2009, Stephen Wilson 00006 // 00007 //===----------------------------------------------------------------------===// 00008 00009 //===----------------------------------------------------------------------===// 00014 //===----------------------------------------------------------------------===// 00015 00016 #ifndef COMMA_BASIC_PRAGMAS_HDR_GUARD 00017 #define COMMA_BASIC_PRAGMAS_HDR_GUARD 00018 00019 #include "llvm/ADT/StringRef.h" 00020 00021 namespace comma { 00022 00023 namespace pragma { 00024 00027 enum PragmaID { 00028 UNKNOWN_PRAGMA, 00029 Assert, 00030 Import, 00031 00032 // Delimiters marking the set of proper pragma values. 00033 FIRST_PRAGMA = Assert, 00034 LAST_PRAGMA = Import 00035 }; 00036 00039 PragmaID getPragmaID(const char *start, const char *end); 00040 00043 inline PragmaID getPragmaID(llvm::StringRef &name) { 00044 return getPragmaID(name.begin(), name.end()); 00045 } 00046 00049 const char *getPragmaString(PragmaID ID); 00050 00051 } // end pragma namespace. 00052 00053 } // end comma namespace. 00054 00055 #endif