예제 #1
0
 Result(bool successful, CharPosition start, CharPosition end, string message, bool canBacktrack)
 {
     Start        = start;
     End          = end;
     Successful   = successful;
     _message     = message;
     CanBacktrack = canBacktrack;
 }
예제 #2
0
 /// <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));
     }
 }
예제 #3
0
 /// <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));
 }
예제 #4
0
 /// <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));
 }
예제 #5
0
 /// <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));
 }
예제 #6
0
 /// <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));
 }
예제 #7
0
 /// <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));
 }
예제 #8
0
 /// <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));
 }