lab2 feat: add constant folding

This commit is contained in:
2026-10-14 15:16:08 +03:00
parent 35e38127e7
commit 433ee2bb2e
2 changed files with 87 additions and 53 deletions
+6 -1
View File
@@ -186,17 +186,22 @@ public:
std::shared_ptr<std::string> to_math_str(void) const
{
char buffer[128] = {0};
switch (t)
{
case VAR:
return v.s;
case CONST:
{
char buffer[128] = {0};
return std::make_shared<std::string>((std::ostringstream() << v.d).str());
}
case OPERATOR:
return std::make_shared<std::string>(op_math_str());
case CV:
return std::make_shared<std::string>((std::ostringstream() << "t" << v.cv.i).str());
case NAT:
return std::make_shared<std::string>("");
default:
return std::make_shared<std::string>("Not a valid token!");
}