bit ops
This commit is contained in:
@@ -173,9 +173,29 @@ pub const Lexer = struct {
|
||||
}
|
||||
return self.makeToken(.percent, start, self.index);
|
||||
},
|
||||
'&' => return self.makeToken(.ampersand, start, self.index),
|
||||
'&' => {
|
||||
if (self.peek() == '=') {
|
||||
self.index += 1;
|
||||
return self.makeToken(.ampersand_equal, start, self.index);
|
||||
}
|
||||
return self.makeToken(.ampersand, start, self.index);
|
||||
},
|
||||
'@' => return self.makeToken(.at, start, self.index),
|
||||
'|' => return self.makeToken(.pipe, start, self.index),
|
||||
'|' => {
|
||||
if (self.peek() == '=') {
|
||||
self.index += 1;
|
||||
return self.makeToken(.pipe_equal, start, self.index);
|
||||
}
|
||||
return self.makeToken(.pipe, start, self.index);
|
||||
},
|
||||
'^' => {
|
||||
if (self.peek() == '=') {
|
||||
self.index += 1;
|
||||
return self.makeToken(.caret_equal, start, self.index);
|
||||
}
|
||||
return self.makeToken(.caret, start, self.index);
|
||||
},
|
||||
'~' => return self.makeToken(.tilde, start, self.index),
|
||||
'!' => {
|
||||
if (self.peek() == '=') {
|
||||
self.index += 1;
|
||||
@@ -184,6 +204,14 @@ pub const Lexer = struct {
|
||||
return self.makeToken(.bang, start, self.index);
|
||||
},
|
||||
'<' => {
|
||||
if (self.peek() == '<') {
|
||||
self.index += 1;
|
||||
if (self.peek() == '=') {
|
||||
self.index += 1;
|
||||
return self.makeToken(.less_less_equal, start, self.index);
|
||||
}
|
||||
return self.makeToken(.less_less, start, self.index);
|
||||
}
|
||||
if (self.peek() == '=') {
|
||||
self.index += 1;
|
||||
return self.makeToken(.less_equal, start, self.index);
|
||||
@@ -191,6 +219,14 @@ pub const Lexer = struct {
|
||||
return self.makeToken(.less, start, self.index);
|
||||
},
|
||||
'>' => {
|
||||
if (self.peek() == '>') {
|
||||
self.index += 1;
|
||||
if (self.peek() == '=') {
|
||||
self.index += 1;
|
||||
return self.makeToken(.greater_greater_equal, start, self.index);
|
||||
}
|
||||
return self.makeToken(.greater_greater, start, self.index);
|
||||
}
|
||||
if (self.peek() == '=') {
|
||||
self.index += 1;
|
||||
return self.makeToken(.greater_equal, start, self.index);
|
||||
|
||||
Reference in New Issue
Block a user