1 //===--- OperatorKinds.h - C++ Overloaded Operators -------------*- C++ -*-===// 2 // 3 // The LLVM Compiler Infrastructure 4 // 5 // This file is distributed under the University of Illinois Open Source 6 // License. See LICENSE.TXT for details. 7 // 8 //===----------------------------------------------------------------------===// 9 /// 10 /// \file 11 /// \brief Defines an enumeration for C++ overloaded operators. 12 /// 13 //===----------------------------------------------------------------------===// 14 15 #ifndef LLVM_CLANG_BASIC_OPERATOR_KINDS_H 16 #define LLVM_CLANG_BASIC_OPERATOR_KINDS_H 17 18 namespace clang { 19 20 /// \brief Enumeration specifying the different kinds of C++ overloaded 21 /// operators. 22 enum OverloadedOperatorKind : int { 23 OO_None, ///< Not an overloaded operator 24 #define OVERLOADED_OPERATOR(Name,Spelling,Token,Unary,Binary,MemberOnly) \ 25 OO_##Name, 26 #include "clang/Basic/OperatorKinds.def" 27 NUM_OVERLOADED_OPERATORS 28 }; 29 30 /// \brief Retrieve the spelling of the given overloaded operator, without 31 /// the preceding "operator" keyword. 32 const char *getOperatorSpelling(OverloadedOperatorKind Operator); 33 34 } // end namespace clang 35 36 #endif 37