Fix parsing of expression statements
This commit is contained in:
parent
8e2bc3a7f7
commit
ed51ee61ed
@ -135,8 +135,7 @@ namespace parsing {
|
|||||||
auto ret = new AST::ReturnStatement{ std::move(expression) };
|
auto ret = new AST::ReturnStatement{ std::move(expression) };
|
||||||
return new std::unique_ptr<AST::Statement>{ ret };
|
return new std::unique_ptr<AST::Statement>{ ret };
|
||||||
}
|
}
|
||||||
else if (inner.peek().type == token::Type::Ident) {
|
else if (auto init = parse_init_statement(inner); init.ok()) {
|
||||||
if (auto init = parse_init_statement(inner); init.ok()) {
|
|
||||||
stream.m_position = inner.m_position;
|
stream.m_position = inner.m_position;
|
||||||
return new std::unique_ptr<AST::Statement>{ init.unwrap() };
|
return new std::unique_ptr<AST::Statement>{ init.unwrap() };
|
||||||
}
|
}
|
||||||
@ -146,10 +145,6 @@ namespace parsing {
|
|||||||
auto expr_statement = new AST::ExpressionStatement{ expr.unwrap() };
|
auto expr_statement = new AST::ExpressionStatement{ expr.unwrap() };
|
||||||
return new std::unique_ptr<AST::Statement>{ expr_statement };
|
return new std::unique_ptr<AST::Statement>{ expr_statement };
|
||||||
}
|
}
|
||||||
else {
|
|
||||||
throw std::runtime_error("Expected initialization statement");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else {
|
else {
|
||||||
throw std::runtime_error("Expected return-keyword");
|
throw std::runtime_error("Expected return-keyword");
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user