Added main file
authorNilsForssen <forssennils@gmail.com>
Mon, 9 Oct 2023 10:25:49 +0000 (12:25 +0200)
committerNilsForssen <forssennils@gmail.com>
Mon, 9 Oct 2023 10:25:49 +0000 (12:25 +0200)
src/uppgift13.cc

index fb82a088d50b3ee7d298b5fb8aa5a2ec40ad073e..d5252f521dd6987d4003551953d55472494a7ea8 100644 (file)
@@ -1,15 +1,51 @@
 #include <iostream>
+#include "expression.h"
 
-using namespace std;
+typedef enum
+{
+    PREFIX,
+    INFIX,
+    POSTFIX,
+    CALC,
+    QUIT
+} Commands;
+
+std::map<std::string, Commands> commands_string_map;
 
 int main()
 {
-  string line;
-  while ( getline(cin, line) )
+  std::string line;
+  std::cout << "Write expression: ";
+
+  std::getline(std::cin, line);
+  Expression e{line};
+
+  while (std::getline(std::cin, line))
   {
-    Expression e{line};
-    cout << e.to_string() << endl
-         << e.evaluate() << endl;
+    if (line == ":prefix")
+    {
+      std::cout << e.to_prefix_string() << std::endl;
+    }
+    else if (line == ":infix")
+    {
+      std::cout << e.to_infix_string() << std::endl;
+    }
+    else if (line == ":postfix")
+    {
+      std::cout << e.to_postfix_string() << std::endl;  
+    }
+    else if (line == ":calc")
+    {
+      std::cout << "Value: " << e.evaluate() << std::endl;
+    }
+    else if (line == ":quit")
+    {
+      break;
+    }
+    else 
+    {
+      Expression e{line};
+    }
   }
   return 0;
 }