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()
{
for (const auto &vec : commands)
{
if (vec.size() > 1)
for (const vector<string> &vec : commands)
{
if (vec.size() == 3)
{
if (vec[0] == "push")
{
@@ -44,17 +44,16 @@ public:
file << translatePop(filename, determineSegment(vec[1]), stoi(vec[2]));
}
}
if (vec.size() == 1)
else if (vec.size() == 1)
{
if (vec[0] == "add")
cout << translateAdd();
if (vec.at(0) == "add")
file << translateAdd();
if (vec[0] == "sub")
cout << translateSub();
if (vec.at(0) == "sub")
file << translateSub();
if (vec[0] == "neg")
cout << translateNeg();
if (vec.at(0) == "neg")
file << translateNeg();
}
file << endl;
+2 -2
View File
@@ -80,7 +80,7 @@ string translatePush(string filename, Segment segment, int index)
output << "M=M+1" << endl;
return output.str();
};
}
string translatePop(string filename, Segment segment, int index)
{
@@ -146,4 +146,4 @@ string translatePop(string filename, Segment segment, int index)
output << "M=D" << endl;
return output.str();
};
}
+2 -2
View File
@@ -73,9 +73,9 @@ public:
matchedVector.push_back(matched[2]);
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);
}