using System.Diagnostics.CodeAnalysis; namespace Canon.Core.Abstractions; /// /// 读取源代码的接口 /// public interface ISourceReader { /// /// 尝试读取下一个字符 /// /// 读取到的字符 /// 是否成功读取 public bool TryReadChar([NotNullWhen(true)] out char? c); /// /// 源文件名称 /// public string FileName { get; } /// /// 当前读取字符的行号 /// public uint Line { get; } /// /// 当前读取字符的列号 /// public uint Pos { get; } }