Increment and decrement via ++ or --
This commit is contained in:
@@ -43,6 +43,9 @@ pub enum Statement {
|
||||
Return(Option<Expression>),
|
||||
Break,
|
||||
Continue,
|
||||
|
||||
Increment(Expression),
|
||||
Decrement(Expression),
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, Serialize)]
|
||||
|
||||
@@ -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 = {
|
||||
"+="
|
||||
| "-="
|
||||
|
||||
@@ -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(),
|
||||
|
||||
Reference in New Issue
Block a user