public LuryException(LuryExceptionType type, string sourceCode, CharPosition position, int length) { this.ExceptionType = type; this.SourceCode = sourceCode; this.Position = position; this.CharLength = length; }
private static string GetRawMessage(LuryExceptionType type) { switch (type) { case LuryExceptionType.NilReference: return("nil オブジェクトにはアクセスできません."); case LuryExceptionType.DivideByZero: return("ゼロで除算できません."); case LuryExceptionType.NotSupportedOperationUnary: return("定義されていない演算が試行されました."); case LuryExceptionType.NotSupportedOperationBinary: return("定義されていない演算が試行されました."); case LuryExceptionType.UnableToCall: return("Function 型でないオブジェクトを関数として呼び出すことはできません."); case LuryExceptionType.NotEnoughFunctionArgumentNumber: return("関数の引数の数が一致しません."); case LuryExceptionType.WrongBreak: return("不正な break が存在します."); case LuryExceptionType.ConditionValueIsNotBoolean: return("条件の式は Boolean 型である必要があります."); case LuryExceptionType.AttributeIsNotFound: return("存在しないオブジェクトを参照しました."); case LuryExceptionType.NameIsNotFound: return("存在しないオブジェクトを参照しました."); case LuryExceptionType.WrongLValue: return("非左辺値に代入できません."); case LuryExceptionType.WrongRefReference: return("非左辺値は ref による参照はできません."); default: return("不明なエラーです."); } }
private static string GetRawMessage(LuryExceptionType type) { switch (type) { case LuryExceptionType.NilReference: return "nil オブジェクトにはアクセスできません."; case LuryExceptionType.DivideByZero: return "ゼロで除算できません."; case LuryExceptionType.NotSupportedOperationUnary: return "定義されていない演算が試行されました."; case LuryExceptionType.NotSupportedOperationBinary: return "定義されていない演算が試行されました."; case LuryExceptionType.UnableToCall: return "Function 型でないオブジェクトを関数として呼び出すことはできません."; case LuryExceptionType.NotEnoughFunctionArgumentNumber: return "関数の引数の数が一致しません."; case LuryExceptionType.WrongBreak: return "不正な break が存在します."; case LuryExceptionType.ConditionValueIsNotBoolean: return "条件の式は Boolean 型である必要があります."; case LuryExceptionType.AttributeIsNotFound: return "存在しないオブジェクトを参照しました."; case LuryExceptionType.NameIsNotFound: return "存在しないオブジェクトを参照しました."; case LuryExceptionType.WrongLValue: return "非左辺値に代入できません."; case LuryExceptionType.WrongRefReference: return "非左辺値は ref による参照はできません."; default: return "不明なエラーです."; } }
public LuryException(LuryExceptionType type, Token token) : this(type, token.SourceCode, token.Position, token.Length) { }
public LuryException(LuryExceptionType type) : this(type, null, CharPosition.Empty, 0) { }
public static string GetMessage(this LuryExceptionType type) { return(GetRawMessage(type)); }