jtr/DevDisciples.Parsing/Lexer.Context.cs
2024-09-15 17:23:27 +02:00

29 lines
791 B
C#

namespace DevDisciples.Parsing;
public abstract partial class Lexer<TToken> where TToken : Enum
{
public class Context
{
public string File { get; }
public Source Source { get; }
public List<Token> Tokens { get; }
public Context(string file, Source source, List<Token> 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
));
}
}
}