2018-11-26 16:23:56 +00:00
|
|
|
using System;
|
|
|
|
using Upsilon.Text;
|
|
|
|
|
|
|
|
namespace Upsilon.Exceptions
|
|
|
|
{
|
|
|
|
public class ParseException : Exception
|
|
|
|
{
|
2018-12-07 13:51:02 +00:00
|
|
|
public string FileName { get; }
|
2018-11-26 16:23:56 +00:00
|
|
|
public string ErrorMessage { get; }
|
|
|
|
public int Line { get; }
|
|
|
|
public int Character { get; }
|
|
|
|
public string ErrorLine { get; }
|
|
|
|
|
2018-12-07 13:51:02 +00:00
|
|
|
public ParseException(string fileName, string errorMessage, int line, int character, string errorLine)
|
2018-11-26 16:23:56 +00:00
|
|
|
{
|
2018-12-07 13:51:02 +00:00
|
|
|
FileName = fileName;
|
2018-11-26 16:23:56 +00:00
|
|
|
ErrorMessage = errorMessage;
|
|
|
|
Line = line;
|
|
|
|
Character = character;
|
|
|
|
ErrorLine = errorLine;
|
|
|
|
}
|
|
|
|
|
|
|
|
public override string ToString()
|
|
|
|
{
|
2018-12-07 13:51:02 +00:00
|
|
|
return $"[{FileName}] {ErrorMessage} at ({Line}, {Character})\n{ErrorLine}";
|
2018-11-26 16:23:56 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
public override string Message => ToString();
|
|
|
|
}
|
|
|
|
}
|