浏览代码

LibCpp: Handle 'struct' prefix before a type

Itamar 4 年之前
父节点
当前提交
8bcf5daf3f
共有 1 个文件被更改,包括 7 次插入0 次删除
  1. 7 0
      Userland/Libraries/LibCpp/Parser.cpp

+ 7 - 0
Userland/Libraries/LibCpp/Parser.cpp

@@ -257,6 +257,9 @@ Parser::TemplatizedMatchResult Parser::match_type()
     ScopeGuard state_guard = [this] { load_state(); };
     ScopeGuard state_guard = [this] { load_state(); };
 
 
     parse_type_qualifiers();
     parse_type_qualifiers();
+    if (match_keyword("struct")) {
+        consume(Token::Type::Keyword); // Consume struct prefix
+    }
 
 
     if (!match_name())
     if (!match_name())
         return TemplatizedMatchResult::NoMatch;
         return TemplatizedMatchResult::NoMatch;
@@ -1163,6 +1166,10 @@ NonnullRefPtr<Type> Parser::parse_type(ASTNode& parent)
     auto qualifiers = parse_type_qualifiers();
     auto qualifiers = parse_type_qualifiers();
     type->m_qualifiers = move(qualifiers);
     type->m_qualifiers = move(qualifiers);
 
 
+    if (match_keyword("struct")) {
+        consume(Token::Type::Keyword); // Consume struct prefix
+    }
+
     if (!match_name()) {
     if (!match_name()) {
         type->set_end(position());
         type->set_end(position());
         error(String::formatted("expected name instead of: {}", peek().text()));
         error(String::formatted("expected name instead of: {}", peek().text()));