using CanonSharp.Combinator.Abstractions; namespace CanonSharp.Combinator.Parsers.Primitives; /// /// 直接成功的解析器 /// /// 解析成功返回的值 /// 输入流类型 /// 解析成功返回值的类型 internal sealed class PureParser(T value) : PrimitiveParser { protected override ParseResult Run(TState state) => ParseResultBuilder.Succeed(value, state); } /// /// 按照输入状态返回结果的始终成功解析器 /// /// 按照输入状态返回解析结果的函数 /// 输入流类型 /// 解析成功返回值的类型 internal sealed class DelayedPureParser(Func, T> valueFunc) : PrimitiveParser { protected override ParseResult Run(TState state) => ParseResultBuilder.Succeed(valueFunc(state), state); }