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_OPERATORKINDS_H 16#define LLVM_CLANG_BASIC_OPERATORKINDS_H 17 18namespace clang { 19 20/// \brief Enumeration specifying the different kinds of C++ overloaded 21/// operators. 22enum 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. 32const char *getOperatorSpelling(OverloadedOperatorKind Operator); 33 34} // end namespace clang 35 36#endif 37