%PDF- %PDF-
Direktori : /home/vacivi36/vittasync.vacivitta.com.br/vittasync/node/deps/v8/src/common/ |
Current File : /home/vacivi36/vittasync.vacivitta.com.br/vittasync/node/deps/v8/src/common/operation.h |
// Copyright 2022 the V8 project authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef V8_COMMON_OPERATION_H_ #define V8_COMMON_OPERATION_H_ #include <ostream> #define ARITHMETIC_OPERATION_LIST(V) \ V(Add) \ V(Subtract) \ V(Multiply) \ V(Divide) \ V(Modulus) \ V(Exponentiate) \ V(BitwiseAnd) \ V(BitwiseOr) \ V(BitwiseXor) \ V(ShiftLeft) \ V(ShiftRight) \ V(ShiftRightLogical) #define UNARY_OPERATION_LIST(V) \ V(BitwiseNot) \ V(Negate) \ V(Increment) \ V(Decrement) #define COMPARISON_OPERATION_LIST(V) \ V(Equal) \ V(StrictEqual) \ V(LessThan) \ V(LessThanOrEqual) \ V(GreaterThan) \ V(GreaterThanOrEqual) #define OPERATION_LIST(V) \ ARITHMETIC_OPERATION_LIST(V) \ UNARY_OPERATION_LIST(V) \ COMPARISON_OPERATION_LIST(V) enum class Operation : uint8_t { #define DEFINE_OP(name) k##name, OPERATION_LIST(DEFINE_OP) #undef DEFINE_OP }; inline std::ostream& operator<<(std::ostream& os, const Operation& operation) { switch (operation) { #define CASE(name) \ case Operation::k##name: \ return os << #name; OPERATION_LIST(CASE) #undef CASE } } #endif // V8_COMMON_OPERATION_H_