|
@@ -15,11 +15,20 @@ using zp::AssemblyGenerator;
|
|
|
int main(int argc, char** argv)
|
|
|
{
|
|
|
string filename = "";
|
|
|
+ string outfilename = "";
|
|
|
+ bool outputAssembly = false;
|
|
|
for (int i = 1; i < argc; i++) {
|
|
|
string arg = argv[i];
|
|
|
if (arg == "") {
|
|
|
}
|
|
|
else if (arg[0] == '-') {
|
|
|
+ if (arg == "-o" && argc > i + 1) {
|
|
|
+ outfilename = argv[i + 1];
|
|
|
+ i++;
|
|
|
+ }
|
|
|
+ else if (arg == "-S") {
|
|
|
+ outputAssembly = true;
|
|
|
+ }
|
|
|
}
|
|
|
else {
|
|
|
filename = arg;
|
|
@@ -47,11 +56,12 @@ int main(int argc, char** argv)
|
|
|
|
|
|
Optimizer optimizer;
|
|
|
auto ir = ast->accept(optimizer);
|
|
|
-
|
|
|
+
|
|
|
AssemblyGenerator ag{ *out };
|
|
|
ir->accept(ag);
|
|
|
ag.finish();
|
|
|
|
|
|
+
|
|
|
if (filename != "") {
|
|
|
dynamic_cast<ifstream*> (in)->close();
|
|
|
dynamic_cast<ofstream*> (out)->close();
|