feat: 添加赋值运算符支持,更新解析器、解释器和词法分析器以处理相关语法
This commit is contained in:
@@ -11,6 +11,7 @@ pub enum Expr {
|
||||
/// 赋值表达式:a = b
|
||||
Assign {
|
||||
name: String,
|
||||
op: AssignOp,
|
||||
value: Box<Expr>,
|
||||
},
|
||||
|
||||
@@ -24,6 +25,7 @@ pub enum Expr {
|
||||
Set {
|
||||
object: Box<Expr>,
|
||||
name: String,
|
||||
op: AssignOp,
|
||||
value: Box<Expr>,
|
||||
},
|
||||
|
||||
@@ -47,6 +49,7 @@ pub enum Expr {
|
||||
IndexSet {
|
||||
array: Box<Expr>,
|
||||
index: Box<Expr>,
|
||||
op: AssignOp,
|
||||
value: Box<Expr>,
|
||||
},
|
||||
|
||||
@@ -118,3 +121,12 @@ pub enum LogicalOp {
|
||||
And,
|
||||
Or,
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, Copy)]
|
||||
pub enum AssignOp {
|
||||
Equal, // =
|
||||
PlusEqual, // +=
|
||||
MinusEqual, // -=
|
||||
StarEqual, // *=
|
||||
SlashEqual, // /=
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user