diff --git a/src/parsing.cpp b/src/parsing.cpp index fdd9d08..171e7fb 100644 --- a/src/parsing.cpp +++ b/src/parsing.cpp @@ -135,20 +135,15 @@ namespace parsing { auto ret = new AST::ReturnStatement{ std::move(expression) }; return new std::unique_ptr{ ret }; } - else if (inner.peek().type == token::Type::Ident) { - if (auto init = parse_init_statement(inner); init.ok()) { - stream.m_position = inner.m_position; - return new std::unique_ptr{ init.unwrap() }; - } - else if (auto expr = parse_expression(inner); expr.ok()) { - stream.m_position = inner.m_position; - stream.expect(token::Type::Symbol, ";"); - auto expr_statement = new AST::ExpressionStatement{ expr.unwrap() }; - return new std::unique_ptr{ expr_statement }; - } - else { - throw std::runtime_error("Expected initialization statement"); - } + else if (auto init = parse_init_statement(inner); init.ok()) { + stream.m_position = inner.m_position; + return new std::unique_ptr{ init.unwrap() }; + } + else if (auto expr = parse_expression(inner); expr.ok()) { + stream.m_position = inner.m_position; + stream.expect(token::Type::Symbol, ";"); + auto expr_statement = new AST::ExpressionStatement{ expr.unwrap() }; + return new std::unique_ptr{ expr_statement }; } else { throw std::runtime_error("Expected return-keyword");