mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-09-05 17:16:04 +00:00
LibCpp: Add TemplatizedName
This type represents templatized names, and replaces our previous use of 'TemplatizedType' and 'TemplatizedFunctionCall'. Also, we now parse function calls as secondary expressions.
This commit is contained in:
parent
510b5073de
commit
9e2e36724d
Notes:
sideshowbarker
2024-07-18 20:41:06 +09:00
Author: https://github.com/itamar8910
Commit: 9e2e36724d
Pull-request: https://github.com/SerenityOS/serenity/pull/6009
5 changed files with 96 additions and 184 deletions
|
@ -93,14 +93,7 @@ private:
|
|||
bool match_c_style_cast_expression();
|
||||
bool match_sizeof_expression();
|
||||
bool match_braced_init_list();
|
||||
|
||||
enum class TemplatizedMatchResult {
|
||||
NoMatch,
|
||||
Regular,
|
||||
Templatized,
|
||||
};
|
||||
TemplatizedMatchResult match_type();
|
||||
TemplatizedMatchResult match_function_call();
|
||||
bool match_type();
|
||||
|
||||
Optional<NonnullRefPtrVector<Parameter>> parse_parameter_list(ASTNode& parent);
|
||||
Optional<Token> consume_whitespace();
|
||||
|
@ -165,7 +158,7 @@ private:
|
|||
create_ast_node(ASTNode& parent, const Position& start, Optional<Position> end, Args&&... args)
|
||||
{
|
||||
auto node = adopt(*new T(&parent, start, end, m_filename, forward<Args>(args)...));
|
||||
if(!parent.is_dummy_node()) {
|
||||
if (!parent.is_dummy_node()) {
|
||||
m_state.nodes.append(node);
|
||||
}
|
||||
return node;
|
||||
|
@ -180,14 +173,12 @@ private:
|
|||
return node;
|
||||
}
|
||||
|
||||
|
||||
DummyAstNode& get_dummy_node()
|
||||
{
|
||||
static NonnullRefPtr<DummyAstNode> dummy = adopt(*new DummyAstNode(nullptr, {}, {}, {}));
|
||||
static NonnullRefPtr<DummyAstNode> dummy = adopt(*new DummyAstNode(nullptr, {}, {}, {}));
|
||||
return dummy;
|
||||
}
|
||||
|
||||
|
||||
bool match_attribute_specification();
|
||||
void consume_attribute_specification();
|
||||
bool match_ellipsis();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue