#pragma once #include "../memory/Memory.hpp" #include #include #include #include namespace mu { class Parser; }; namespace Math { struct SExpressionVec2 { std::string x; std::string y; bool empty() const; std::string toString() const; }; std::expected parseExpressionVec2(std::string_view raw); class CExpression { public: CExpression(); ~CExpression() = default; CExpression(const CExpression&) = delete; CExpression(CExpression&) = delete; CExpression(CExpression&&) = delete; void addVariable(const std::string& name, double val); std::optional compute(const std::string& expr); private: UP m_parser; }; };