| //===--- OperatorKinds.h - C++ Overloaded Operators -------------*- C++ -*-===// |
| // |
| // The LLVM Compiler Infrastructure |
| // |
| // This file is distributed under the University of Illinois Open Source |
| // License. See LICENSE.TXT for details. |
| // |
| //===----------------------------------------------------------------------===// |
| /// |
| /// \file |
| /// Defines an enumeration for C++ overloaded operators. |
| /// |
| //===----------------------------------------------------------------------===// |
| |
| #ifndef LLVM_CLANG_BASIC_OPERATORKINDS_H |
| #define LLVM_CLANG_BASIC_OPERATORKINDS_H |
| |
| namespace clang { |
| |
| /// Enumeration specifying the different kinds of C++ overloaded |
| /// operators. |
| enum OverloadedOperatorKind : int { |
| OO_None, ///< Not an overloaded operator |
| #define OVERLOADED_OPERATOR(Name,Spelling,Token,Unary,Binary,MemberOnly) \ |
| OO_##Name, |
| #include "clang/Basic/OperatorKinds.def" |
| NUM_OVERLOADED_OPERATORS |
| }; |
| |
| /// Retrieve the spelling of the given overloaded operator, without |
| /// the preceding "operator" keyword. |
| const char *getOperatorSpelling(OverloadedOperatorKind Operator); |
| |
| } // end namespace clang |
| |
| #endif |