/// AUTOGENERATED COPYRIGHT HEADER START // Copyright (C) 2017-2024 Michael Fabian 'Xaymar' Dirks // AUTOGENERATED COPYRIGHT HEADER END #pragma once #include "ast.hpp" #include "value.hpp" namespace blitz { namespace ast { enum class expression_operator : int8_t { Add, /*+*/ Subtract, /*-*/ Multiply, /***/ Divide, /*/*/ Invert, /*~*/ Power, /*^*/ Equal, /*=*/ }; class arithmetic_expression : public expression { public: arithmetic_expression(expression_operator op, std::unique_ptr left, std::unique_ptr right); virtual ~arithmetic_expression(); private: expression_operator m_operator; std::unique_ptr m_left, m_right; }; } }