Add implementations for parsing assign statements, forgot to do this
Signed-off-by: Alek Ratzloff <alekratz@gmail.com>
This commit is contained in:
@@ -19,12 +19,12 @@ Body -> Result<Vec<Stmt>>:
|
|||||||
|
|
||||||
Stmt -> Result<Stmt>:
|
Stmt -> Result<Stmt>:
|
||||||
Expr { Ok(Stmt::Expr($1?)) }
|
Expr { Ok(Stmt::Expr($1?)) }
|
||||||
| Assign { todo!() }
|
| Assign { Ok(Stmt::Assign($1?)) }
|
||||||
;
|
;
|
||||||
|
|
||||||
Assign -> Result<AssignStmt>:
|
Assign -> Result<AssignStmt>:
|
||||||
LhsExpr '=' Expr {
|
LhsExpr '=' Expr {
|
||||||
todo!()
|
Ok(AssignStmt { lhs: $1?, rhs: $3? })
|
||||||
}
|
}
|
||||||
;
|
;
|
||||||
|
|
||||||
@@ -32,7 +32,7 @@ LhsExpr -> Result<LhsExpr>:
|
|||||||
AccessExpr {
|
AccessExpr {
|
||||||
let lhs = match $1? {
|
let lhs = match $1? {
|
||||||
Expr::Access(access) => LhsExpr::SetAttr(*access),
|
Expr::Access(access) => LhsExpr::SetAttr(*access),
|
||||||
Expr::Atom(Atom::Ident(local)) => LhsExpr::Local(local),
|
Expr::Atom(Atom::Ident(local)) => LhsExpr::Name(local),
|
||||||
_ => todo!("TODO : invalid syntax, raise error"),
|
_ => todo!("TODO : invalid syntax, raise error"),
|
||||||
};
|
};
|
||||||
Ok(lhs)
|
Ok(lhs)
|
||||||
|
|||||||
Reference in New Issue
Block a user