Tweak parsing

This commit is contained in:
Sofia 2026-04-14 14:17:17 +03:00
parent be2d809986
commit 0cdf1abf82

View File

@ -101,16 +101,9 @@ namespace parsing {
try { try {
auto before_meta = inner.metadata(); auto before_meta = inner.metadata();
if (inner.peek().content == "(") {
inner.next();
auto expr = parse_expression(inner).unwrap();
inner.expect(token::Type::Symbol, ")");
stream.m_position = inner.m_position;
return expr;
}
if (auto cast = parse_cast(inner); cast.ok()) { if (auto cast = parse_cast(inner); cast.ok()) {
auto expr = parse_expression(inner).unwrap(); auto expr = parse_primary_expression(inner).unwrap();
stream.m_position = inner.m_position; stream.m_position = inner.m_position;
return std::unique_ptr<AST::Expression>{ return std::unique_ptr<AST::Expression>{
new AST::CastExpression{ new AST::CastExpression{
@ -120,6 +113,13 @@ namespace parsing {
} }
}; };
} }
else if (inner.peek().content == "(") {
inner.next();
auto expr = parse_expression(inner).unwrap();
inner.expect(token::Type::Symbol, ")");
stream.m_position = inner.m_position;
return expr;
}
else if (inner.peek().content == "&") { else if (inner.peek().content == "&") {
inner.next(); inner.next();
auto expr = parse_primary_expression(inner).unwrap(); auto expr = parse_primary_expression(inner).unwrap();