Fix parsing non argument commands

This commit is contained in:
Hazem Krimi
2024-04-18 20:10:29 +01:00
parent b26afe682b
commit 934d2c8f08
3 changed files with 14 additions and 15 deletions
+10 -11
View File
@@ -31,9 +31,9 @@ public:
void translate() void translate()
{ {
for (const auto &vec : commands) for (const vector<string> &vec : commands)
{ {
if (vec.size() > 1) if (vec.size() == 3)
{ {
if (vec[0] == "push") if (vec[0] == "push")
{ {
@@ -44,17 +44,16 @@ public:
file << translatePop(filename, determineSegment(vec[1]), stoi(vec[2])); file << translatePop(filename, determineSegment(vec[1]), stoi(vec[2]));
} }
} }
else if (vec.size() == 1)
if (vec.size() == 1)
{ {
if (vec[0] == "add") if (vec.at(0) == "add")
cout << translateAdd(); file << translateAdd();
if (vec[0] == "sub") if (vec.at(0) == "sub")
cout << translateSub(); file << translateSub();
if (vec[0] == "neg") if (vec.at(0) == "neg")
cout << translateNeg(); file << translateNeg();
} }
file << endl; file << endl;
+2 -2
View File
@@ -80,7 +80,7 @@ string translatePush(string filename, Segment segment, int index)
output << "M=M+1" << endl; output << "M=M+1" << endl;
return output.str(); return output.str();
}; }
string translatePop(string filename, Segment segment, int index) string translatePop(string filename, Segment segment, int index)
{ {
@@ -146,4 +146,4 @@ string translatePop(string filename, Segment segment, int index)
output << "M=D" << endl; output << "M=D" << endl;
return output.str(); return output.str();
}; }
+2 -2
View File
@@ -73,9 +73,9 @@ public:
matchedVector.push_back(matched[2]); matchedVector.push_back(matched[2]);
matchedVector.push_back(matched[3]); matchedVector.push_back(matched[3]);
} }
else else if (regex_search(text, matched, regex("^(.*)")))
{ {
matchedVector.push_back(text); matchedVector.push_back(matched[1]);
} }
commands.push_back(matchedVector); commands.push_back(matchedVector);
} }