feat: 添加赋值运算符支持,更新解析器、解释器和词法分析器以处理相关语法
This commit is contained in:
+23
-3
@@ -56,9 +56,27 @@ impl Lexer {
|
||||
',' => TokenKind::Comma,
|
||||
';' => TokenKind::Semicolon,
|
||||
|
||||
'+' => TokenKind::Plus,
|
||||
'-' => TokenKind::Minus,
|
||||
'*' => TokenKind::Star,
|
||||
'+' => {
|
||||
if self.match_char('=') {
|
||||
TokenKind::PlusEqual
|
||||
} else {
|
||||
TokenKind::Plus
|
||||
}
|
||||
}
|
||||
'-' => {
|
||||
if self.match_char('=') {
|
||||
TokenKind::MinusEqual
|
||||
} else {
|
||||
TokenKind::Minus
|
||||
}
|
||||
}
|
||||
'*' => {
|
||||
if self.match_char('=') {
|
||||
TokenKind::StarEqual
|
||||
} else {
|
||||
TokenKind::Star
|
||||
}
|
||||
}
|
||||
'.' => TokenKind::Dot,
|
||||
':' => TokenKind::Colon,
|
||||
'[' => TokenKind::LeftBracket,
|
||||
@@ -71,6 +89,8 @@ impl Lexer {
|
||||
self.advance();
|
||||
}
|
||||
return None;
|
||||
} else if self.match_char('=') {
|
||||
TokenKind::SlashEqual
|
||||
} else {
|
||||
TokenKind::Slash
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user