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