feat: 添加取模运算符支持,更新解析器、解释器、词法分析器和相关示例以处理相关语法
This commit is contained in:
@@ -212,6 +212,8 @@ impl Parser {
|
||||
Some(AssignOp::StarEqual)
|
||||
} else if self.match_kind(&[TokenKind::SlashEqual]) {
|
||||
Some(AssignOp::SlashEqual)
|
||||
} else if self.match_kind(&[TokenKind::PercentEqual]) {
|
||||
Some(AssignOp::PercentEqual)
|
||||
} else {
|
||||
None
|
||||
};
|
||||
@@ -324,10 +326,11 @@ impl Parser {
|
||||
fn factor(&mut self) -> Expr {
|
||||
let mut expr = self.unary();
|
||||
|
||||
while self.match_kind(&[TokenKind::Star, TokenKind::Slash]) {
|
||||
while self.match_kind(&[TokenKind::Star, TokenKind::Slash, TokenKind::Percent]) {
|
||||
let op = match self.previous().kind {
|
||||
TokenKind::Star => BinaryOp::Mul,
|
||||
TokenKind::Slash => BinaryOp::Div,
|
||||
TokenKind::Percent => BinaryOp::Mod,
|
||||
_ => unreachable!(),
|
||||
};
|
||||
let right = self.unary();
|
||||
|
||||
Reference in New Issue
Block a user