Perf improvements in tokenizer
This commit is contained in:
@@ -2,22 +2,6 @@
|
||||
|
||||
namespace NubLang.Tokenization;
|
||||
|
||||
public abstract class Token(SourceFileSpan fileSpan)
|
||||
{
|
||||
public SourceFileSpan FileSpan { get; } = fileSpan;
|
||||
}
|
||||
|
||||
public class IdentifierToken(SourceFileSpan fileSpan, string value) : Token(fileSpan)
|
||||
{
|
||||
public string Value { get; } = value;
|
||||
}
|
||||
|
||||
public class LiteralToken(SourceFileSpan fileSpan, LiteralKind kind, string value) : Token(fileSpan)
|
||||
{
|
||||
public LiteralKind Kind { get; } = kind;
|
||||
public string Value { get; } = value;
|
||||
}
|
||||
|
||||
public enum LiteralKind
|
||||
{
|
||||
Integer,
|
||||
@@ -26,11 +10,6 @@ public enum LiteralKind
|
||||
Bool
|
||||
}
|
||||
|
||||
public class SymbolToken(SourceFileSpan fileSpan, Symbol symbol) : Token(fileSpan)
|
||||
{
|
||||
public Symbol Symbol { get; } = symbol;
|
||||
}
|
||||
|
||||
public enum Symbol
|
||||
{
|
||||
Func,
|
||||
@@ -83,4 +62,12 @@ public enum Symbol
|
||||
Defer,
|
||||
At,
|
||||
Enum,
|
||||
}
|
||||
}
|
||||
|
||||
public abstract record Token(string FileName, SourceSpan Span);
|
||||
|
||||
public record IdentifierToken(string FileName, SourceSpan Span, string Value) : Token(FileName, Span);
|
||||
|
||||
public record LiteralToken(string FileName, SourceSpan Span, LiteralKind Kind, string Value) : Token(FileName, Span);
|
||||
|
||||
public record SymbolToken(string FileName, SourceSpan Span, Symbol Symbol) : Token(FileName, Span);
|
||||
Reference in New Issue
Block a user