private string output_file;
private Target target = Target.Exe;
private string target_string = "exe";
+ private bool quiet = false;
private bool show_tokens = false;
private bool show_method_def = false;
private bool show_method_ref = false;
private bool show_parser = false;
private bool scan_only = false;
- private bool delete_on_error = false;
private CodeGen codegen;
public DriverMain (string[] args)
{
il_file_list = new ArrayList ();
ParseArgs (args);
- report = new Report ();
+ report = new Report (quiet);
}
public void Run ()
Usage ();
if (output_file == null)
output_file = CreateOutputFile ();
- codegen = new CodeGen (output_file, target == Target.Dll, true);
+ codegen = new CodeGen (output_file, target == Target.Dll, true, report);
foreach (string file_path in il_file_list)
ProcessFile (file_path);
if (scan_only)
codegen.Write ();
} catch {
- if (delete_on_error) {
- if (File.Exists (output_file))
- File.Delete (output_file);
- }
throw;
}
}
return;
}
- ILParser parser = new ILParser (codegen);
+ ILParser parser = new ILParser (codegen, reader);
try {
if (show_parser)
parser.yyparse (new ScannerAdapter (scanner),
target = Target.Dll;
target_string = "dll";
break;
+ case "quiet":
+ quiet = true;
+ break;
+ // Stubs to stay commandline compatible with MS
+ case "listing":
+ case "nologo":
+ case "debug":
+ case "clock":
+ case "error":
+ case "subsystem":
+ case "flags":
+ case "alignment":
+ case "base":
+ case "key":
+ case "resource":
+ break;
case "scan_only":
scan_only = true;
break;
case "show_parser":
show_parser = true;
break;
- case "delete_on_error":
- case "doe":
- delete_on_error = true;
- break;
case "-about":
if (str[0] != '-')
break;
break;
Version ();
break;
+ default:
+ if (str [0] == '-')
+ break;
+ il_file_list.Add (str);
+ break;
}
}
}