summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Userland/Libraries/LibCpp/Parser.cpp9
-rw-r--r--Userland/Libraries/LibCpp/Parser.h2
2 files changed, 11 insertions, 0 deletions
diff --git a/Userland/Libraries/LibCpp/Parser.cpp b/Userland/Libraries/LibCpp/Parser.cpp
index a78baac06b..f5bbc13e50 100644
--- a/Userland/Libraries/LibCpp/Parser.cpp
+++ b/Userland/Libraries/LibCpp/Parser.cpp
@@ -128,6 +128,8 @@ NonnullRefPtr<Declaration> Parser::parse_declaration(ASTNode& parent, Declaratio
return parse_variable_declaration(parent);
case DeclarationType::Enum:
return parse_enum_declaration(parent);
+ case DeclarationType::Class:
+ return parse_struct_or_class_declaration(parent, StructOrClassDeclaration::Type::Class);
case DeclarationType::Struct:
return parse_struct_or_class_declaration(parent, StructOrClassDeclaration::Type::Struct);
case DeclarationType::Namespace:
@@ -640,6 +642,8 @@ Optional<Parser::DeclarationType> Parser::match_declaration_in_translation_unit(
return DeclarationType::Function;
if (match_enum_declaration())
return DeclarationType::Enum;
+ if (match_class_declaration())
+ return DeclarationType::Class;
if (match_struct_declaration())
return DeclarationType::Struct;
if (match_namespace_declaration())
@@ -654,6 +658,11 @@ bool Parser::match_enum_declaration()
return match_keyword("enum");
}
+bool Parser::match_class_declaration()
+{
+ return match_keyword("class");
+}
+
bool Parser::match_struct_declaration()
{
return match_keyword("struct");
diff --git a/Userland/Libraries/LibCpp/Parser.h b/Userland/Libraries/LibCpp/Parser.h
index aad21bd9d0..64bc114bc8 100644
--- a/Userland/Libraries/LibCpp/Parser.h
+++ b/Userland/Libraries/LibCpp/Parser.h
@@ -69,6 +69,7 @@ private:
Enum,
Struct,
Namespace,
+ Class,
};
Optional<DeclarationType> match_declaration_in_translation_unit();
@@ -80,6 +81,7 @@ private:
bool match_expression();
bool match_secondary_expression();
bool match_enum_declaration();
+ bool match_class_declaration();
bool match_struct_declaration();
bool match_literal();
bool match_unary_expression();