Result(bool successful, CharPosition start, CharPosition end, string message, bool canBacktrack) { Start = start; End = end; Successful = successful; _message = message; CanBacktrack = canBacktrack; }
/// <summary> /// パース開始と終了の文字位置情報を付与します。 /// </summary> /// <param name="start">開始の文字位置</param> /// <param name="end">終了の文字位置</param> /// <returns></returns> public Result <T> AttachPosition(CharPosition start, CharPosition end) { if (Successful) { return(Result <T> .OfSuccess(_value, start, end, CanBacktrack)); } else { return(Result <T> .OfFailure(_message, start, end, CanBacktrack)); } }
/// <summary> /// 静的ファクトリーメソッドです。 /// </summary> /// <param name="message">パース失敗の理由を示すメッセージ</param> /// <param name="start">開始の文字位置</param> /// <param name="end">終了の文字位置</param> /// <param name="canBacktrack"><c>true</c>の場合バックトラックは有効</param> /// <returns></returns> public static Result OfFailure(string message, CharPosition start, CharPosition end, bool canBacktrack) { return(new Result(false, start, end, message, canBacktrack)); }
/// <summary> /// 静的ファクトリーメソッドです。 /// </summary> /// <param name="message">パース失敗の理由を示すメッセージ</param> /// <param name="start">開始の文字位置</param> /// <param name="end">終了の文字位置</param> /// <returns></returns> public static Result OfFailure(string message, CharPosition start, CharPosition end) { return(new Result(false, start, end, message, true)); }
/// <summary> /// 静的ファクトリーメソッドです。 /// </summary> /// <param name="start">開始の文字位置</param> /// <param name="end">終了の文字位置</param> /// <param name="canBacktrack"><c>true</c>の場合バックトラックは有効</param> /// <returns></returns> public static Result OfSuccess(CharPosition start, CharPosition end, bool canBacktrack) { return(new Result(true, start, end, null, canBacktrack)); }
/// <summary> /// 静的ファクトリーメソッドです。 /// </summary> /// <param name="start">開始の文字位置</param> /// <param name="end">終了の文字位置</param> /// <returns></returns> public static Result OfSuccess(CharPosition start, CharPosition end) { return(new Result(true, start, end, null, true)); }
/// <summary> /// 静的ファクトリーメソッドです。 /// </summary> /// <param name="value"></param> /// <param name="start"></param> /// <param name="end"></param> /// <param name="canBacktrack"></param> /// <returns></returns> public static Result <T> OfSuccess(T value, CharPosition start, CharPosition end, bool canBacktrack) { return(new Result <T>(true, start, end, null, value, canBacktrack)); }
/// <summary> /// 静的ファクトリーメソッドです。 /// </summary> /// <param name="value"></param> /// <param name="start"></param> /// <param name="end"></param> /// <returns></returns> public static Result <T> OfSuccess(T value, CharPosition start, CharPosition end) { return(new Result <T>(true, start, end, null, value, true)); }