Assign
This commit is contained in:
@@ -45,6 +45,7 @@ statement_list = { statement* }
|
|||||||
statement = _{
|
statement = _{
|
||||||
expr_stmt
|
expr_stmt
|
||||||
| var_decl_statement
|
| var_decl_statement
|
||||||
|
| assign_statement
|
||||||
| if_stmt
|
| if_stmt
|
||||||
| while_stmt
|
| while_stmt
|
||||||
| return_stmt
|
| return_stmt
|
||||||
@@ -65,6 +66,8 @@ continue_stmt = { "continue" ~ ";" }
|
|||||||
|
|
||||||
var_decl_statement = { var_decl ~ ("=" ~ expr)? ~ ";" }
|
var_decl_statement = { var_decl ~ ("=" ~ expr)? ~ ";" }
|
||||||
|
|
||||||
|
assign_statement = { expr ~ "=" ~ expr ~ ";" }
|
||||||
|
|
||||||
if_stmt = {
|
if_stmt = {
|
||||||
"if" ~ "(" ~ expr ~ ")" ~ statement ~ ("else" ~ statement)?
|
"if" ~ "(" ~ expr ~ ")" ~ statement ~ ("else" ~ statement)?
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -262,6 +262,15 @@ impl From<pest::iterators::Pair<'_, Rule>> for Statement {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Rule::assign_statement => {
|
||||||
|
let mut inner = pair.into_inner();
|
||||||
|
|
||||||
|
Statement::VarAssign(VarAssignStmt {
|
||||||
|
target: Expression::from(inner.next().unwrap()),
|
||||||
|
value: Expression::from(inner.next().unwrap()),
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
_ => unimplemented!(
|
_ => unimplemented!(
|
||||||
"Statement parsing not implemented yet: {:?}",
|
"Statement parsing not implemented yet: {:?}",
|
||||||
pair.as_rule()
|
pair.as_rule()
|
||||||
|
|||||||
Reference in New Issue
Block a user