mirror of
https://github.com/RGBCube/serenity
synced 2025-07-26 19:57:45 +00:00
LibCpp: Parse basic constructors and destructors
This commit is contained in:
parent
fd851ec5c9
commit
7de6c1489b
4 changed files with 185 additions and 5 deletions
|
@ -49,10 +49,13 @@ private:
|
|||
Enum,
|
||||
Class,
|
||||
Namespace,
|
||||
Constructor,
|
||||
Destructor,
|
||||
};
|
||||
|
||||
Optional<DeclarationType> match_declaration_in_translation_unit();
|
||||
Optional<Parser::DeclarationType> match_class_member();
|
||||
Optional<Parser::DeclarationType> match_class_member(const StringView& class_name);
|
||||
|
||||
bool match_function_declaration();
|
||||
bool match_comment();
|
||||
bool match_preprocessor();
|
||||
|
@ -76,6 +79,8 @@ private:
|
|||
bool match_braced_init_list();
|
||||
bool match_type();
|
||||
bool match_access_specifier();
|
||||
bool match_constructor(const StringView& class_name);
|
||||
bool match_destructor(const StringView& class_name);
|
||||
|
||||
Optional<NonnullRefPtrVector<Parameter>> parse_parameter_list(ASTNode& parent);
|
||||
Optional<Token> consume_whitespace();
|
||||
|
@ -113,7 +118,9 @@ private:
|
|||
NonnullRefPtr<SizeofExpression> parse_sizeof_expression(ASTNode& parent);
|
||||
NonnullRefPtr<BracedInitList> parse_braced_init_list(ASTNode& parent);
|
||||
NonnullRefPtr<CStyleCastExpression> parse_c_style_cast_expression(ASTNode& parent);
|
||||
NonnullRefPtrVector<Declaration> parse_class_members(ASTNode& parent);
|
||||
NonnullRefPtrVector<Declaration> parse_class_members(StructOrClassDeclaration& parent);
|
||||
NonnullRefPtr<Constructor> parse_constructor(ASTNode& parent);
|
||||
NonnullRefPtr<Destructor> parse_destructor(ASTNode& parent);
|
||||
|
||||
bool match(Token::Type);
|
||||
Token consume(Token::Type);
|
||||
|
@ -170,6 +177,12 @@ private:
|
|||
Vector<StringView> parse_type_qualifiers();
|
||||
Vector<StringView> parse_function_qualifiers();
|
||||
|
||||
enum class CtorOrDtor {
|
||||
Ctor,
|
||||
Dtor,
|
||||
};
|
||||
void parse_constructor_or_destructor_impl(FunctionDeclaration&, CtorOrDtor);
|
||||
|
||||
Preprocessor::Definitions m_preprocessor_definitions;
|
||||
String m_filename;
|
||||
Vector<Token> m_tokens;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue