Increment and decrement via ++ or --

This commit is contained in:
2026-05-17 05:43:16 +02:00
parent 77f35e0517
commit a893f9a12d
6 changed files with 25 additions and 3 deletions
+3
View File
@@ -43,6 +43,9 @@ pub enum Statement {
Return(Option<Expression>),
Break,
Continue,
Increment(Expression),
Decrement(Expression),
}
#[derive(Debug, Clone, Serialize)]
+10
View File
@@ -324,6 +324,8 @@ statement = _{
| continue_stmt
| block
| var_decl_statement
| increment_statement
| decrement_statement
}
// ------------------------------------------------------
@@ -354,6 +356,14 @@ assign_statement = {
expr ~ "=" ~ expr ~ semicolon
}
increment_statement = {
expr ~ "++" ~ semicolon
}
decrement_statement = {
expr ~ "--" ~ semicolon
}
compound_assign = {
"+="
| "-="
+8
View File
@@ -114,6 +114,14 @@ impl<'a> TryFrom<pest::iterators::Pair<'a, Rule>> for Statement {
})
}
Rule::increment_statement => {
ast_expr!(Statement::Increment(inner.next().unwrap().try_into()))
}
Rule::decrement_statement => {
ast_expr!(Statement::Decrement(inner.next().unwrap().try_into()))
}
Rule::unexpected_statement => {
return Err(AstError {
span: pair.as_span(),