using CanonSharp.Combinator.Abstractions; namespace CanonSharp.Combinator.Parsers.Bases; /// /// 单子解析器 /// /// 上游解析器 /// 下游解析器生成函数 /// 输入流类型 /// 上游解析器结果类型 /// 下游解析器结果类型 internal sealed class BindParser( IParser parser, Func> next) : IParser { public IParseResult Run(TState state, Func, IParseResult> continuation) where TState : IReadState => parser.Run(state, result => result.Next(next, continuation)); }