Files
nub-lang/compiler/NubLang/Syntax/Token.cs
nub31 7a3a461519 ...
2025-10-20 20:15:29 +02:00

74 lines
1.2 KiB
C#

using NubLang.Diagnostics;
namespace NubLang.Syntax;
public enum Symbol
{
// Control
If,
Else,
While,
Break,
Continue,
Return,
Let,
Defer,
// Declaration
Func,
Struct,
// Modifier
Extern,
Export,
Colon,
DoubleColon,
OpenParen,
CloseParen,
OpenBrace,
CloseBrace,
OpenBracket,
CloseBracket,
Comma,
Period,
Assign,
Bang,
Equal,
NotEqual,
LessThan,
LessThanOrEqual,
GreaterThan,
GreaterThanOrEqual,
Plus,
Minus,
Star,
ForwardSlash,
Caret,
Ampersand,
Semi,
Percent,
LeftShift,
RightShift,
Pipe,
And,
Or,
Module,
Import,
At,
QuestionMark
}
public abstract record Token(SourceSpan Span);
public record IdentifierToken(SourceSpan Span, string Value) : Token(Span);
public record IntLiteralToken(SourceSpan Span, string Value, int Base) : Token(Span);
public record StringLiteralToken(SourceSpan Span, string Value) : Token(Span);
public record BoolLiteralToken(SourceSpan Span, bool Value) : Token(Span);
public record FloatLiteralToken(SourceSpan Span, string Value) : Token(Span);
public record SymbolToken(SourceSpan Span, Symbol Symbol) : Token(Span);