diff --git a/parser/src/grammar.pest b/parser/src/grammar.pest index 13b9787..945c825 100644 --- a/parser/src/grammar.pest +++ b/parser/src/grammar.pest @@ -368,7 +368,7 @@ else_if_list = { } if_stmt = { - "if" ~ "(" ~ statement_branch ~ else_if_list ~ ("else" ~ statement)? + "if" ~ statement_branch ~ else_if_list ~ ("else" ~ statement)? } // ------------------------------------------------------ diff --git a/parser/src/parser/common/statement.rs b/parser/src/parser/common/statement.rs index 18edb8e..243e6a3 100644 --- a/parser/src/parser/common/statement.rs +++ b/parser/src/parser/common/statement.rs @@ -47,9 +47,7 @@ impl<'a> TryFrom> for Statement { Rule::block => ast_expr!(Statement::Block(pair.try_into())), - Rule::var_decl_statement => { - ast_expr!(Statement::VarDecl(inner.next().unwrap().try_into())) - } + Rule::var_decl_statement => ast_expr!(Statement::VarDecl(pair.try_into())), Rule::return_stmt => { ast_expr!(Statement::Return( @@ -62,8 +60,6 @@ impl<'a> TryFrom> for Statement { Rule::continue_stmt => Ok(Statement::Continue), Rule::if_stmt => { - let mut inner = inner.skip(2); - ast_expr!(Statement::If { initial: inner.next().unwrap().try_into(), else_if: collect_recovered(inner.next().unwrap().into_inner()),