...
This commit is contained in:
@@ -197,6 +197,12 @@ public sealed class Tokenizer(string contents)
|
||||
Consume();
|
||||
return new TokenSymbol(line, startColumn, column - startColumn, Symbol.Equal);
|
||||
}
|
||||
case '<' when Peek(1) is '<':
|
||||
{
|
||||
Consume();
|
||||
Consume();
|
||||
return new TokenSymbol(line, startColumn, column - startColumn, Symbol.LessThanLessThan);
|
||||
}
|
||||
case '<' when Peek(1) is '=':
|
||||
{
|
||||
Consume();
|
||||
@@ -208,6 +214,12 @@ public sealed class Tokenizer(string contents)
|
||||
Consume();
|
||||
return new TokenSymbol(line, startColumn, column - startColumn, Symbol.LessThan);
|
||||
}
|
||||
case '>' when Peek(1) is '>':
|
||||
{
|
||||
Consume();
|
||||
Consume();
|
||||
return new TokenSymbol(line, startColumn, column - startColumn, Symbol.GreaterThanGreaterThan);
|
||||
}
|
||||
case '>' when Peek(1) is '=':
|
||||
{
|
||||
Consume();
|
||||
@@ -263,6 +275,39 @@ public sealed class Tokenizer(string contents)
|
||||
Consume();
|
||||
return new TokenSymbol(line, startColumn, column - startColumn, Symbol.ForwardSlash);
|
||||
}
|
||||
case '%' when Peek(1) is '=':
|
||||
{
|
||||
Consume();
|
||||
Consume();
|
||||
return new TokenSymbol(line, startColumn, column - startColumn, Symbol.PercentEqual);
|
||||
}
|
||||
case '%':
|
||||
{
|
||||
Consume();
|
||||
return new TokenSymbol(line, startColumn, column - startColumn, Symbol.Percent);
|
||||
}
|
||||
case '&' when Peek(1) is '&':
|
||||
{
|
||||
Consume();
|
||||
Consume();
|
||||
return new TokenSymbol(line, startColumn, column - startColumn, Symbol.AmpersandAmpersand);
|
||||
}
|
||||
case '&':
|
||||
{
|
||||
Consume();
|
||||
return new TokenSymbol(line, startColumn, column - startColumn, Symbol.Ampersand);
|
||||
}
|
||||
case '|' when Peek(1) is '|':
|
||||
{
|
||||
Consume();
|
||||
Consume();
|
||||
return new TokenSymbol(line, startColumn, column - startColumn, Symbol.PipePipe);
|
||||
}
|
||||
case '|':
|
||||
{
|
||||
Consume();
|
||||
return new TokenSymbol(line, startColumn, column - startColumn, Symbol.Pipe);
|
||||
}
|
||||
default:
|
||||
{
|
||||
if (char.IsLetter(c) || c == '_')
|
||||
@@ -377,8 +422,10 @@ public enum Symbol
|
||||
EqualEqual,
|
||||
BangEqual,
|
||||
LessThan,
|
||||
LessThanLessThan,
|
||||
LessThanEqual,
|
||||
GreaterThan,
|
||||
GreaterThanGreaterThan,
|
||||
GreaterThanEqual,
|
||||
Plus,
|
||||
PlusEqual,
|
||||
@@ -388,6 +435,12 @@ public enum Symbol
|
||||
StarEqual,
|
||||
ForwardSlash,
|
||||
ForwardSlashEqual,
|
||||
Percent,
|
||||
PercentEqual,
|
||||
Ampersand,
|
||||
AmpersandAmpersand,
|
||||
Pipe,
|
||||
PipePipe,
|
||||
}
|
||||
|
||||
public sealed class TokenSymbol(int line, int column, int length, Symbol symbol) : Token(line, column, length)
|
||||
|
||||
Reference in New Issue
Block a user