using CanonSharp.Combinator.Abstractions;
namespace CanonSharp.Combinator.Parsers;
///
/// 解析器原型基类
/// 实际上就是处理了一个后继调用
///
/// 输入流类型
/// 解析结果的类型
public abstract class PrimitiveParser : Parser
{
///
/// 运行解析器 返回解析结果
///
/// 当前输入流的状态
/// 输入流状态的类型
/// 解析结果
protected abstract ParseResult Run(TState state)
where TState : IReadState;
internal sealed override ParseResult Run(TState state,
Func, ParseResult> continuation)
=> continuation(Run(state));
}