LibCpp: Add support for east const

Now LibCpp can understand the eastest of consts too :^)
This commit is contained in:
Ali Mohammad Pur 2021-07-28 21:35:02 +04:30 committed by Andreas Kling
parent e27ec04cdd
commit 010be01694
Notes: sideshowbarker 2024-07-18 07:36:13 +09:00

View File

@ -1219,6 +1219,9 @@ NonnullRefPtr<Type> Parser::parse_type(ASTNode& parent)
if (match_keyword("auto")) {
consume(Token::Type::Keyword);
named_type->set_auto(true);
auto original_qualifiers = named_type->qualifiers();
original_qualifiers.extend(parse_type_qualifiers());
named_type->set_qualifiers(move(original_qualifiers));
named_type->set_end(position());
return named_type;
}
@ -1234,6 +1237,10 @@ NonnullRefPtr<Type> Parser::parse_type(ASTNode& parent)
}
named_type->set_name(parse_name(*named_type));
auto original_qualifiers = named_type->qualifiers();
original_qualifiers.extend(parse_type_qualifiers());
named_type->set_qualifiers(move(original_qualifiers));
NonnullRefPtr<Type> type = named_type;
while (!eof() && peek().type() == Token::Type::Asterisk) {
type->set_end(position());
@ -1241,6 +1248,7 @@ NonnullRefPtr<Type> Parser::parse_type(ASTNode& parent)
auto ptr = create_ast_node<Pointer>(parent, type->start(), asterisk.end());
type->set_parent(*ptr);
ptr->set_pointee(type);
ptr->set_qualifiers(parse_type_qualifiers());
ptr->set_end(position());
type = ptr;
}