Update dependencies and regenerate CPP parser (#13)

Co-authored-by: mskelton <mskelton@users.noreply.github.com>
This commit is contained in:
github-actions[bot]
2023-07-24 08:39:40 -05:00
committed by GitHub
co-authored by mskelton
parent a99bb0d545
commit 931c278a2d
9 changed files with 472986 additions and 394641 deletions
+1003 -478
View File
File diff suppressed because it is too large Load Diff
+117 -50
View File
@@ -1,30 +1,38 @@
=====================================
================================================================================
Scoped function definitions
=====================================
================================================================================
int T::foo() { return 1; }
int T::foo() const { return 0; }
---
--------------------------------------------------------------------------------
(translation_unit
(function_definition
(primitive_type)
(function_declarator
(qualified_identifier (namespace_identifier) (identifier))
(qualified_identifier
(namespace_identifier)
(identifier))
(parameter_list))
(compound_statement (return_statement (number_literal))))
(compound_statement
(return_statement
(number_literal))))
(function_definition
(primitive_type)
(function_declarator
(qualified_identifier (namespace_identifier) (identifier))
(qualified_identifier
(namespace_identifier)
(identifier))
(parameter_list)
(type_qualifier))
(compound_statement (return_statement (number_literal)))))
(compound_statement
(return_statement
(number_literal)))))
=====================================
================================================================================
Constructor definitions
=====================================
================================================================================
T::T() {}
@@ -36,32 +44,52 @@ T::T() : Base<T>() {}
T::T() try : f1(0) {} catch(...) {}
---
--------------------------------------------------------------------------------
(translation_unit
(function_definition
(function_declarator
(qualified_identifier (namespace_identifier) (identifier))
(qualified_identifier
(namespace_identifier)
(identifier))
(parameter_list))
(compound_statement))
(function_definition
(function_declarator
(qualified_identifier (namespace_identifier) (identifier))
(qualified_identifier
(namespace_identifier)
(identifier))
(parameter_list))
(field_initializer_list
(field_initializer (field_identifier) (argument_list (number_literal)))
(field_initializer (field_identifier) (argument_list (number_literal) (number_literal))))
(field_initializer
(field_identifier)
(argument_list
(number_literal)))
(field_initializer
(field_identifier)
(argument_list
(number_literal)
(number_literal))))
(compound_statement
(expression_statement (call_expression (identifier) (argument_list (string_literal))))))
(expression_statement
(call_expression
(identifier)
(argument_list
(string_literal
(string_content)))))))
(function_definition
(function_declarator
(qualified_identifier (namespace_identifier) (identifier))
(qualified_identifier
(namespace_identifier)
(identifier))
(parameter_list))
(field_initializer_list
(field_initializer
(template_method
(field_identifier)
(template_argument_list (type_descriptor (type_identifier))))
(template_argument_list
(type_descriptor
(type_identifier))))
(argument_list)))
(compound_statement))
(function_definition
@@ -81,9 +109,9 @@ T::T() try : f1(0) {} catch(...) {}
(parameter_list)
(compound_statement)))))
=====================================
================================================================================
Explicit constructor definitions
=====================================
================================================================================
class C {
explicit C(int f) : f_(f) {}
@@ -92,7 +120,7 @@ class C {
int f_;
};
---
--------------------------------------------------------------------------------
(translation_unit
(class_specifier
@@ -102,23 +130,31 @@ class C {
(explicit_function_specifier)
(function_declarator
(identifier)
(parameter_list (parameter_declaration (primitive_type) (identifier))))
(parameter_list
(parameter_declaration
(primitive_type)
(identifier))))
(field_initializer_list
(field_initializer (field_identifier) (argument_list (identifier))))
(field_initializer
(field_identifier)
(argument_list
(identifier))))
(compound_statement))
(access_specifier)
(field_declaration (primitive_type) (field_identifier)))))
(field_declaration
(primitive_type)
(field_identifier)))))
=====================================
================================================================================
Explicit constructor declaration
=====================================
================================================================================
class C {
explicit C(int f);
explicit(true) C(long f);
};
---
--------------------------------------------------------------------------------
(translation_unit
(class_specifier
@@ -126,14 +162,25 @@ class C {
(field_declaration_list
(declaration
(explicit_function_specifier)
(function_declarator (identifier) (parameter_list (parameter_declaration (primitive_type) (identifier)))))
(function_declarator
(identifier)
(parameter_list
(parameter_declaration
(primitive_type)
(identifier)))))
(declaration
(explicit_function_specifier (true))
(function_declarator (identifier) (parameter_list (parameter_declaration (sized_type_specifier) (identifier))))))))
(explicit_function_specifier
(true))
(function_declarator
(identifier)
(parameter_list
(parameter_declaration
(sized_type_specifier)
(identifier))))))))
=====================================
================================================================================
Default and deleted methods
=====================================
================================================================================
class A : public B {
A() = default;
@@ -143,7 +190,7 @@ class A : public B {
A& operator=(A&&) = delete;
};
---
--------------------------------------------------------------------------------
(translation_unit
(class_specifier
@@ -153,56 +200,78 @@ class A : public B {
(type_identifier))
(field_declaration_list
(function_definition
(function_declarator (identifier) (parameter_list))
(function_declarator
(identifier)
(parameter_list))
(default_method_clause))
(function_definition
(function_declarator
(identifier)
(parameter_list (parameter_declaration (type_identifier) (abstract_reference_declarator))))
(parameter_list
(parameter_declaration
(type_identifier)
(abstract_reference_declarator))))
(delete_method_clause))
(function_definition
(primitive_type)
(function_declarator (field_identifier) (parameter_list)) (delete_method_clause))
(function_declarator
(field_identifier)
(parameter_list))
(delete_method_clause))
(function_definition
(type_identifier)
(reference_declarator
(function_declarator
(operator_name)
(parameter_list (parameter_declaration (type_qualifier) (type_identifier) (abstract_reference_declarator)))))
(parameter_list
(parameter_declaration
(type_qualifier)
(type_identifier)
(abstract_reference_declarator)))))
(default_method_clause))
(function_definition
(type_identifier)
(reference_declarator
(function_declarator
(operator_name)
(parameter_list (parameter_declaration (type_identifier) (abstract_reference_declarator)))))
(parameter_list
(parameter_declaration
(type_identifier)
(abstract_reference_declarator)))))
(delete_method_clause)))))
=====================================
================================================================================
Destructor definitions
=====================================
================================================================================
~T() {}
T::~T() {}
---
--------------------------------------------------------------------------------
(translation_unit
(function_definition
(function_declarator (destructor_name (identifier)) (parameter_list))
(function_declarator
(destructor_name
(identifier))
(parameter_list))
(compound_statement))
(function_definition
(function_declarator
(qualified_identifier (namespace_identifier) (destructor_name (identifier))) (parameter_list))
(qualified_identifier
(namespace_identifier)
(destructor_name
(identifier)))
(parameter_list))
(compound_statement)))
=====================================
================================================================================
Function-try-block definitions
=====================================
================================================================================
void foo() try {} catch(...) {}
---
--------------------------------------------------------------------------------
(translation_unit
(function_definition
@@ -216,14 +285,13 @@ void foo() try {} catch(...) {}
(parameter_list)
(compound_statement)))))
=====================================
================================================================================
Conversion operator definitions
=====================================
================================================================================
T::operator int() try { throw 1; } catch (...) { return 2; }
---
--------------------------------------------------------------------------------
(translation_unit
(function_definition
@@ -242,4 +310,3 @@ T::operator int() try { throw 1; } catch (...) { return 2; }
(compound_statement
(return_statement
(number_literal)))))))
File diff suppressed because it is too large Load Diff
+308 -133
View File
@@ -1,23 +1,28 @@
===========================================
================================================================================
Returning braced initializer lists
===========================================
================================================================================
T main() {
return {0, 5};
}
---
--------------------------------------------------------------------------------
(translation_unit
(function_definition
(type_identifier)
(function_declarator (identifier) (parameter_list))
(function_declarator
(identifier)
(parameter_list))
(compound_statement
(return_statement (initializer_list (number_literal) (number_literal))))))
(return_statement
(initializer_list
(number_literal)
(number_literal))))))
===========================================
================================================================================
Range-based for loops
===========================================
================================================================================
T main() {
for (Value &value : values) {
@@ -41,7 +46,7 @@ T main() {
}
}
---
--------------------------------------------------------------------------------
(translation_unit
(function_definition
@@ -52,34 +57,46 @@ T main() {
body: (compound_statement
(for_range_loop
type: (type_identifier)
declarator: (reference_declarator (identifier))
declarator: (reference_declarator
(identifier))
right: (identifier)
body: (compound_statement
(expression_statement (binary_expression
left: (identifier)
right: (identifier)))))
(expression_statement
(binary_expression
left: (identifier)
right: (identifier)))))
(for_range_loop
(type_qualifier)
type: (placeholder_type_specifier (auto))
declarator: (reference_declarator (identifier))
type: (placeholder_type_specifier
(auto))
declarator: (reference_declarator
(identifier))
right: (identifier)
body: (compound_statement
(expression_statement (binary_expression
left: (identifier)
right: (identifier)))))
(expression_statement
(binary_expression
left: (identifier)
right: (identifier)))))
(for_range_loop
(type_qualifier)
type: (placeholder_type_specifier (auto))
declarator: (reference_declarator (identifier))
right: (initializer_list (number_literal) (number_literal) (number_literal))
type: (placeholder_type_specifier
(auto))
declarator: (reference_declarator
(identifier))
right: (initializer_list
(number_literal)
(number_literal)
(number_literal))
body: (compound_statement
(expression_statement (binary_expression
left: (identifier)
right: (identifier)))))
(expression_statement
(binary_expression
left: (identifier)
right: (identifier)))))
(for_range_loop
initializer: (init_statement
(declaration
type: (placeholder_type_specifier (auto))
type: (placeholder_type_specifier
(auto))
declarator: (init_declarator
declarator: (identifier)
value: (call_expression
@@ -87,7 +104,8 @@ T main() {
argument: (identifier)
field: (field_identifier))
arguments: (argument_list)))))
type: (placeholder_type_specifier (auto))
type: (placeholder_type_specifier
(auto))
declarator: (identifier)
right: (identifier)
body: (compound_statement
@@ -99,7 +117,8 @@ T main() {
left: (update_expression
argument: (identifier))
right: (identifier)))
right: (char_literal)))))
right: (char_literal
(character))))))
(for_range_loop
initializer: (init_statement
(alias_declaration
@@ -120,11 +139,12 @@ T main() {
left: (update_expression
argument: (identifier))
right: (identifier)))
right: (char_literal))))))))
right: (char_literal
(character)))))))))
===========================================
================================================================================
Constexpr if statements
===========================================
================================================================================
T f() {
if constexpr (std::is_pointer_v<T>)
@@ -133,7 +153,7 @@ T f() {
return t;
}
---
--------------------------------------------------------------------------------
(translation_unit
(function_definition
@@ -149,14 +169,18 @@ T f() {
name: (template_function
name: (identifier)
arguments: (template_argument_list
(type_descriptor type: (type_identifier))))))
(type_descriptor
type: (type_identifier))))))
consequence: (return_statement
(pointer_expression argument: (identifier)))
alternative: (return_statement (identifier))))))
(pointer_expression
argument: (identifier)))
alternative: (else_clause
(return_statement
(identifier)))))))
=====================================
================================================================================
If statements with declarations
====================================
================================================================================
void f() {
if (const int x = foo()) { }
@@ -164,7 +188,7 @@ void f() {
if (const int x = foo(); x != 0) { }
}
---
--------------------------------------------------------------------------------
(translation_unit
(function_definition
@@ -189,7 +213,10 @@ void f() {
(type_qualifier)
type: (primitive_type)
declarator: (identifier)
value: (initializer_list (call_expression function: (identifier) arguments: (argument_list)))))
value: (initializer_list
(call_expression
function: (identifier)
arguments: (argument_list)))))
consequence: (compound_statement))
(if_statement
condition: (condition_clause
@@ -199,13 +226,17 @@ void f() {
type: (primitive_type)
declarator: (init_declarator
declarator: (identifier)
value: (call_expression function: (identifier) arguments: (argument_list)))))
value: (binary_expression left: (identifier) right: (number_literal)))
value: (call_expression
function: (identifier)
arguments: (argument_list)))))
value: (binary_expression
left: (identifier)
right: (number_literal)))
consequence: (compound_statement)))))
===========================================
================================================================================
Try/catch statements
===========================================
================================================================================
void main() {
try {
@@ -219,37 +250,7 @@ void main() {
}
}
---
(translation_unit
(function_definition
(primitive_type)
(function_declarator (identifier) (parameter_list))
(compound_statement
(try_statement
(compound_statement
(expression_statement (call_expression (identifier) (argument_list))))
(catch_clause
(parameter_list (parameter_declaration (type_qualifier) (qualified_identifier (namespace_identifier) (type_identifier))))
(compound_statement (comment)))
(catch_clause
(parameter_list (parameter_declaration (type_qualifier) (type_identifier) (reference_declarator (identifier))))
(compound_statement (comment)))
(catch_clause
(parameter_list)
(compound_statement (comment)))))))
===========================================
Throw statements
===========================================
void main() {
throw e;
throw x + 1;
throw "exception";
}
---
--------------------------------------------------------------------------------
(translation_unit
(function_definition
@@ -257,78 +258,161 @@ void main() {
(function_declarator
(identifier)
(parameter_list))
(compound_statement
(throw_statement (identifier))
(throw_statement (binary_expression (identifier) (number_literal)))
(throw_statement (string_literal)))))
(compound_statement
(try_statement
(compound_statement
(expression_statement
(call_expression
(identifier)
(argument_list))))
(catch_clause
(parameter_list
(parameter_declaration
(type_qualifier)
(qualified_identifier
(namespace_identifier)
(type_identifier))))
(compound_statement
(comment)))
(catch_clause
(parameter_list
(parameter_declaration
(type_qualifier)
(type_identifier)
(reference_declarator
(identifier))))
(compound_statement
(comment)))
(catch_clause
(parameter_list)
(compound_statement
(comment)))))))
===========================================
================================================================================
Throw statements
================================================================================
void main() {
throw e;
throw x + 1;
throw "exception";
}
--------------------------------------------------------------------------------
(translation_unit
(function_definition
(primitive_type)
(function_declarator
(identifier)
(parameter_list))
(compound_statement
(throw_statement
(identifier))
(throw_statement
(binary_expression
(identifier)
(number_literal)))
(throw_statement
(string_literal
(string_content))))))
================================================================================
Noexcept specifier
===========================================
================================================================================
void foo() noexcept;
void foo() noexcept(true);
template<class T> T foo() noexcept(sizeof(T) < 4);
---
--------------------------------------------------------------------------------
(translation_unit
(declaration
(primitive_type)
(function_declarator (identifier) (parameter_list)
(function_declarator
(identifier)
(parameter_list)
(noexcept)))
(declaration
(primitive_type)
(function_declarator (identifier) (parameter_list)
(noexcept (true))))
(function_declarator
(identifier)
(parameter_list)
(noexcept
(true))))
(template_declaration
(template_parameter_list
(type_parameter_declaration (type_identifier)))
(type_parameter_declaration
(type_identifier)))
(declaration
(type_identifier)
(function_declarator (identifier) (parameter_list)
(function_declarator
(identifier)
(parameter_list)
(noexcept
(binary_expression (sizeof_expression (parenthesized_expression (identifier))) (number_literal)))))))
(binary_expression
(sizeof_expression
(parenthesized_expression
(identifier)))
(number_literal)))))))
===========================================
================================================================================
Throw specifier
===========================================
================================================================================
void foo() throw();
void foo() throw(int);
void foo() throw(std::string, char *);
void foo() throw(float) { }
---
--------------------------------------------------------------------------------
(translation_unit
(declaration
(primitive_type)
(function_declarator (identifier) (parameter_list)
(function_declarator
(identifier)
(parameter_list)
(throw_specifier)))
(declaration
(primitive_type)
(function_declarator (identifier) (parameter_list)
(throw_specifier (type_descriptor (primitive_type)))))
(primitive_type)
(function_declarator
(identifier)
(parameter_list)
(throw_specifier
(type_descriptor
(primitive_type)))))
(declaration
(primitive_type)
(function_declarator (identifier) (parameter_list)
(function_declarator
(identifier)
(parameter_list)
(throw_specifier
(type_descriptor (qualified_identifier (namespace_identifier) (type_identifier)))
(type_descriptor (primitive_type) (abstract_pointer_declarator)))))
(type_descriptor
(qualified_identifier
(namespace_identifier)
(type_identifier)))
(type_descriptor
(primitive_type)
(abstract_pointer_declarator)))))
(function_definition
(primitive_type)
(function_declarator (identifier) (parameter_list)
(throw_specifier (type_descriptor (primitive_type))))
(compound_statement)))
(function_declarator
(identifier)
(parameter_list)
(throw_specifier
(type_descriptor
(primitive_type))))
(compound_statement)))
===========================================
================================================================================
Assignment
===========================================
================================================================================
a::b::c = 1;
---
--------------------------------------------------------------------------------
(translation_unit
(expression_statement
@@ -340,9 +424,9 @@ a::b::c = 1;
(identifier)))
(number_literal))))
=========================================
================================================================================
Attributes
=========================================
================================================================================
void f() {
[[a]] switch (b) {
@@ -359,37 +443,101 @@ void f() {
[[a]] goto label;
}
---
--------------------------------------------------------------------------------
(translation_unit
(function_definition (primitive_type)
(function_declarator (identifier) (parameter_list))
(function_definition
(primitive_type)
(function_declarator
(identifier)
(parameter_list))
(compound_statement
(attributed_statement (attribute_declaration (attribute (identifier)))
(attributed_statement
(attribute_declaration
(attribute
(identifier)))
(switch_statement
(condition_clause (identifier))
(condition_clause
(identifier))
(compound_statement
(attributed_statement (attribute_declaration (attribute (identifier)))
(case_statement (number_literal) (compound_statement))))))
(attributed_statement (attribute_declaration (attribute (identifier))) (while_statement (condition_clause (true)) (compound_statement)))
(attributed_statement (attribute_declaration (attribute (identifier))) (if_statement (condition_clause (true)) (compound_statement)))
(attributed_statement (attribute_declaration (attribute (identifier))) (for_range_loop (placeholder_type_specifier (auto)) (identifier) (identifier) (compound_statement)))
(attributed_statement (attribute_declaration (attribute (identifier))) (for_statement (compound_statement)))
(attributed_statement (attribute_declaration (attribute (identifier))) (return_statement))
(attributed_statement (attribute_declaration (attribute (identifier))) (expression_statement (identifier)))
(attributed_statement (attribute_declaration (attribute (identifier))) (expression_statement))
(attributed_statement (attribute_declaration (attribute (identifier))) (labeled_statement (statement_identifier) (compound_statement)))
(attributed_statement (attribute_declaration (attribute (identifier))) (goto_statement (statement_identifier))))))
(attributed_statement
(attribute_declaration
(attribute
(identifier)))
(case_statement
(number_literal)
(compound_statement))))))
(attributed_statement
(attribute_declaration
(attribute
(identifier)))
(while_statement
(condition_clause
(true))
(compound_statement)))
(attributed_statement
(attribute_declaration
(attribute
(identifier)))
(if_statement
(condition_clause
(true))
(compound_statement)))
(attributed_statement
(attribute_declaration
(attribute
(identifier)))
(for_range_loop
(placeholder_type_specifier
(auto))
(identifier)
(identifier)
(compound_statement)))
(attributed_statement
(attribute_declaration
(attribute
(identifier)))
(for_statement
(compound_statement)))
(attributed_statement
(attribute_declaration
(attribute
(identifier)))
(return_statement))
(attributed_statement
(attribute_declaration
(attribute
(identifier)))
(expression_statement
(identifier)))
(attributed_statement
(attribute_declaration
(attribute
(identifier)))
(expression_statement))
(attributed_statement
(attribute_declaration
(attribute
(identifier)))
(labeled_statement
(statement_identifier)
(compound_statement)))
(attributed_statement
(attribute_declaration
(attribute
(identifier)))
(goto_statement
(statement_identifier))))))
===========================================
================================================================================
Coroutines
===========================================
================================================================================
co_return 1;
co_return;
co_yield 1;
---
--------------------------------------------------------------------------------
(translation_unit
(co_return_statement
@@ -398,10 +546,9 @@ co_yield 1;
(co_yield_statement
(number_literal)))
===========================================
================================================================================
Switch statements
===========================================
================================================================================
void foo(int a) {
switch (a) {
@@ -419,15 +566,43 @@ void foo(int a) {
}
}
---
--------------------------------------------------------------------------------
(translation_unit
(function_definition (primitive_type)
(function_declarator (identifier) (parameter_list (parameter_declaration (primitive_type) (identifier))))
(function_definition
(primitive_type)
(function_declarator
(identifier)
(parameter_list
(parameter_declaration
(primitive_type)
(identifier))))
(compound_statement
(switch_statement (condition_clause (identifier))
(switch_statement
(condition_clause
(identifier))
(compound_statement
(case_statement (number_literal) (for_range_loop (placeholder_type_specifier (auto)) (identifier) (identifier) (compound_statement)))
(case_statement (number_literal) (try_statement (compound_statement (comment)) (catch_clause (parameter_list) (compound_statement))) (throw_statement (number_literal)))
(case_statement (number_literal) (co_return_statement))
(case_statement (co_yield_statement (identifier))))))))
(case_statement
(number_literal)
(for_range_loop
(placeholder_type_specifier
(auto))
(identifier)
(identifier)
(compound_statement)))
(case_statement
(number_literal)
(try_statement
(compound_statement
(comment))
(catch_clause
(parameter_list)
(compound_statement)))
(throw_statement
(number_literal)))
(case_statement
(number_literal)
(co_return_statement))
(case_statement
(co_yield_statement
(identifier))))))))