| // Copyright 2018 The Fuchsia 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 SRC_DEVELOPER_DEBUG_ZXDB_EXPR_EVAL_OPERATORS_H_ | |
| #define SRC_DEVELOPER_DEBUG_ZXDB_EXPR_EVAL_OPERATORS_H_ | |
| #include <utility> | |
| #include "lib/fit/function.h" | |
| #include "src/developer/debug/zxdb/expr/eval_callback.h" | |
| #include "src/lib/fxl/memory/ref_ptr.h" | |
| namespace zxdb { | |
| class Err; | |
| class EvalContext; | |
| class ExprNode; | |
| class ExprToken; | |
| class ExprValue; | |
| class ExprValueSource; | |
| class Type; | |
| void EvalBinaryOperator(const fxl::RefPtr<EvalContext>& context, const ExprValue& left_value, | |
| const ExprToken& op, const ExprValue& right_value, EvalCallback cb); | |
| void EvalBinaryOperator(const fxl::RefPtr<EvalContext>& context, const fxl::RefPtr<ExprNode>& left, | |
| const ExprToken& op, const fxl::RefPtr<ExprNode>& right, EvalCallback cb); | |
| void EvalUnaryOperator(const fxl::RefPtr<EvalContext>& context, const ExprToken& op_token, | |
| const ExprValue& value, EvalCallback cb); | |
| } // namespace zxdb | |
| #endif // SRC_DEVELOPER_DEBUG_ZXDB_EXPR_EVAL_OPERATORS_H_ |