public abstract class Report {
private static int error_count;
- private static int mark_count;
private static bool quiet;
+ /* Current file being processed */
+ private static string file_path;
static Report ()
{
set { quiet = value; }
}
+ public static string FilePath {
+ get { return file_path; }
+ set { file_path = value; }
+ }
+
public static void AssembleFile (string file, string listing,
string target, string output)
{
+ if (quiet)
+ return;
Console.WriteLine ("Assembling '{0}' , {1}, to {2} --> '{3}'", file,
GetListing (listing), target, output);
Console.WriteLine ();
public static void Error (string message)
{
- Error (null, null, message);
+ Error (null, message);
}
public static void Error (Location location, string message)
{
- Error (null, location, message);
+ error_count++;
+ throw new ILAsmException (file_path, location, message);
}
- public static void Error (string file_path, Location location, string message)
+ public static void Warning (string message)
{
- error_count++;
- throw new ILAsmException (file_path, location, message);
+ Warning (null, message);
+ }
+
+ public static void Warning (Location location, string message)
+ {
+ string location_str = " : ";
+ if (location != null)
+ location_str = " (" + location.line + ", " + location.column + ") : ";
+
+ Console.Error.WriteLine (String.Format ("{0}{1}Warning -- {2}",
+ (file_path != null ? file_path : ""), location_str, message));
}
public static void Message (string message)
public override string ToString ()
{
- string location_str = "";
+ string location_str = " : ";
if (location != null)
location_str = " (" + location.line + ", " + location.column + ") : ";