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 // This file defines C++ overloaded operators. 11 // 12 //===----------------------------------------------------------------------===// 13 14 #ifndef LLVM_CLANG_BASIC_OPERATOR_KINDS_H 15 #define LLVM_CLANG_BASIC_OPERATOR_KINDS_H 16 17 namespace clang { 18 19 /// OverloadedOperatorKind - Enumeration specifying the different kinds of 20 /// C++ overloaded operators. 21 enum OverloadedOperatorKind { 22 OO_None, //< Not an overloaded operator 23 #define OVERLOADED_OPERATOR(Name,Spelling,Token,Unary,Binary,MemberOnly) \ 24 OO_##Name, 25 #include "clang/Basic/OperatorKinds.def" 26 NUM_OVERLOADED_OPERATORS 27 }; 28 29 /// \brief Retrieve the spelling of the given overloaded operator, without 30 /// the preceding "operator" keyword. 31 const char *getOperatorSpelling(OverloadedOperatorKind Operator); 32 33 } // end namespace clang 34 35 #endif 36