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 // This file defines C++ overloaded operators. 00011 // 00012 //===----------------------------------------------------------------------===// 00013 00014 #ifndef LLVM_CLANG_BASIC_OPERATOR_KINDS_H 00015 #define LLVM_CLANG_BASIC_OPERATOR_KINDS_H 00016 00017 namespace clang { 00018 00019 /// OverloadedOperatorKind - Enumeration specifying the different kinds of 00020 /// C++ overloaded operators. 00021 enum OverloadedOperatorKind { 00022 OO_None, //< Not an overloaded operator 00023 #define OVERLOADED_OPERATOR(Name,Spelling,Token,Unary,Binary,MemberOnly) \ 00024 OO_##Name, 00025 #include "clang/Basic/OperatorKinds.def" 00026 NUM_OVERLOADED_OPERATORS 00027 }; 00028 00029 /// \brief Retrieve the spelling of the given overloaded operator, without 00030 /// the preceding "operator" keyword. 00031 const char *getOperatorSpelling(OverloadedOperatorKind Operator); 00032 00033 } // end namespace clang 00034 00035 #endif