namespace DevDisciples.Parsing; public abstract partial class Lexer where TToken : Enum { public class Context { public string File { get; } public Source Source { get; } public List Tokens { get; } public Context(string file, Source source, List tokens) { File = file; Source = source; Tokens = tokens; } public void AddToken(TToken type, string lexeme, int line = -1, int column = -1) { Tokens.Add(new Token( File, type, lexeme, line == -1 ? Source.Line : line, column == -1 ? Source.Column : column )); } } }