clang API Documentation
00001 //===--- OperatorKinds.h - C++ Overloaded Operators -------------*- C++ -*-===// 00002 // 00003 // The LLVM Compiler Infrastructure 00004 // 00005 // This file is distributed under the University of Illinois Open Source 00006 // License. See LICENSE.TXT for details. 00007 // 00008 //===----------------------------------------------------------------------===// 00009 /// 00010 /// \file 00011 /// \brief Defines an enumeration for C++ overloaded operators. 00012 /// 00013 //===----------------------------------------------------------------------===// 00014 00015 #ifndef LLVM_CLANG_BASIC_OPERATORKINDS_H 00016 #define LLVM_CLANG_BASIC_OPERATORKINDS_H 00017 00018 namespace clang { 00019 00020 /// \brief Enumeration specifying the different kinds of C++ overloaded 00021 /// operators. 00022 enum OverloadedOperatorKind : int { 00023 OO_None, ///< Not an overloaded operator 00024 #define OVERLOADED_OPERATOR(Name,Spelling,Token,Unary,Binary,MemberOnly) \ 00025 OO_##Name, 00026 #include "clang/Basic/OperatorKinds.def" 00027 NUM_OVERLOADED_OPERATORS 00028 }; 00029 00030 /// \brief Retrieve the spelling of the given overloaded operator, without 00031 /// the preceding "operator" keyword. 00032 const char *getOperatorSpelling(OverloadedOperatorKind Operator); 00033 00034 } // end namespace clang 00035 00036 #endif