//===--- OperationKinds.def - Operations Database ---------------*- C++ -*-===//
//
// This file enumerates the different kinds of operations that can be
// performed by various expressions.
//
//===----------------------------------------------------------------------===//
//
/// @file OperationKinds.def
///
/// Macros had one or two arguments:
///
/// Name: The name of the operation. Name (prefixed with CK_, UO_ or BO_) will
/// be the name of the corresponding enumerator (see OperationsKinds.h).
///
/// Spelling: A string that provides a canonical spelling for the operation.

#ifndef BINARY_OPERATION
#  define BINARY_OPERATION(Name, Spelling)
#endif

//===- Binary Operations  -------------------------------------------------===//
// Operators listed in order of precedence.
// Note that additions to this should also update the StmtVisitor class.

BINARY_OPERATION(Mul, "*")
BINARY_OPERATION(Div, "/")
BINARY_OPERATION(Add, "+")
BINARY_OPERATION(Sub, "-")
// Relational operators.
BINARY_OPERATION(LT, "<")
BINARY_OPERATION(GT, ">")
BINARY_OPERATION(LE, "<=")
BINARY_OPERATION(GE, ">=")
// Equality operators.
BINARY_OPERATION(EQ, "=")
BINARY_OPERATION(NE, "!=")

#undef CAST_OPERATION
#undef BINARY_OPERATION
