コード例 #1
0
 public static IParseResult <TResult> Select <T, TResult>(this IParseResult <T> parsed,
                                                          Func <T, IParseResult <TResult> > func)
 {
     if (parsed.IsSuccess())
     {
         return(func(parsed.Result));
     }
     return(Parse.Error <TResult>(parsed.Error));
 }
コード例 #2
0
ファイル: ChainParser.cs プロジェクト: flashlin/T1.ParserKit
        public IParseResult <T> TryParse(IInputReader inp)
        {
            IParseResult <T> parsed = null;

            foreach (var parser in _parsers)
            {
                parsed = parser.TryParse(inp);

                if (!parsed.IsSuccess())
                {
                    break;
                }
            }

            return(parsed);
        }