Files
tree-sitter-mql5/test/corpus/definitions.txt
T

313 lines
8.4 KiB
Plaintext
Raw Normal View History

================================================================================
2023-01-06 22:31:45 -06:00
Scoped function definitions
================================================================================
2023-01-06 22:31:45 -06:00
int T::foo() { return 1; }
int T::foo() const { return 0; }
--------------------------------------------------------------------------------
2023-01-06 22:31:45 -06:00
(translation_unit
(function_definition
(primitive_type)
(function_declarator
(qualified_identifier
(namespace_identifier)
(identifier))
2023-01-06 22:31:45 -06:00
(parameter_list))
(compound_statement
(return_statement
(number_literal))))
2023-01-06 22:31:45 -06:00
(function_definition
(primitive_type)
(function_declarator
(qualified_identifier
(namespace_identifier)
(identifier))
2023-01-06 22:31:45 -06:00
(parameter_list)
(type_qualifier))
(compound_statement
(return_statement
(number_literal)))))
2023-01-06 22:31:45 -06:00
================================================================================
2023-01-06 22:31:45 -06:00
Constructor definitions
================================================================================
2023-01-06 22:31:45 -06:00
T::T() {}
T::T() : f1(0), f2(1, 2) {
puts("HI");
}
T::T() : Base<T>() {}
T::T() try : f1(0) {} catch(...) {}
--------------------------------------------------------------------------------
2023-01-06 22:31:45 -06:00
(translation_unit
(function_definition
(function_declarator
(qualified_identifier
(namespace_identifier)
(identifier))
2023-01-06 22:31:45 -06:00
(parameter_list))
(compound_statement))
(function_definition
(function_declarator
(qualified_identifier
(namespace_identifier)
(identifier))
2023-01-06 22:31:45 -06:00
(parameter_list))
(field_initializer_list
(field_initializer
(field_identifier)
(argument_list
(number_literal)))
(field_initializer
(field_identifier)
(argument_list
(number_literal)
(number_literal))))
2023-01-06 22:31:45 -06:00
(compound_statement
(expression_statement
(call_expression
(identifier)
(argument_list
(string_literal
(string_content)))))))
2023-01-06 22:31:45 -06:00
(function_definition
(function_declarator
(qualified_identifier
(namespace_identifier)
(identifier))
2023-01-06 22:31:45 -06:00
(parameter_list))
(field_initializer_list
(field_initializer
(template_method
(field_identifier)
(template_argument_list
(type_descriptor
(type_identifier))))
2023-01-06 22:31:45 -06:00
(argument_list)))
(compound_statement))
(function_definition
(function_declarator
(qualified_identifier
(namespace_identifier)
(identifier))
(parameter_list))
(try_statement
(field_initializer_list
(field_initializer
(field_identifier)
(argument_list
(number_literal))))
(compound_statement)
(catch_clause
(parameter_list)
(compound_statement)))))
================================================================================
2023-01-06 22:31:45 -06:00
Explicit constructor definitions
================================================================================
2023-01-06 22:31:45 -06:00
class C {
explicit C(int f) : f_(f) {}
private:
int f_;
};
--------------------------------------------------------------------------------
2023-01-06 22:31:45 -06:00
(translation_unit
(class_specifier
(type_identifier)
(field_declaration_list
(function_definition
(explicit_function_specifier)
(function_declarator
(identifier)
(parameter_list
(parameter_declaration
(primitive_type)
(identifier))))
2023-01-06 22:31:45 -06:00
(field_initializer_list
(field_initializer
(field_identifier)
(argument_list
(identifier))))
2023-01-06 22:31:45 -06:00
(compound_statement))
(access_specifier)
(field_declaration
(primitive_type)
(field_identifier)))))
2023-01-06 22:31:45 -06:00
================================================================================
2023-01-06 22:31:45 -06:00
Explicit constructor declaration
================================================================================
2023-01-06 22:31:45 -06:00
class C {
explicit C(int f);
explicit(true) C(long f);
};
--------------------------------------------------------------------------------
2023-01-06 22:31:45 -06:00
(translation_unit
(class_specifier
(type_identifier)
(field_declaration_list
(declaration
(explicit_function_specifier)
(function_declarator
(identifier)
(parameter_list
(parameter_declaration
(primitive_type)
(identifier)))))
2023-01-06 22:31:45 -06:00
(declaration
(explicit_function_specifier
(true))
(function_declarator
(identifier)
(parameter_list
(parameter_declaration
(sized_type_specifier)
(identifier))))))))
2023-01-06 22:31:45 -06:00
================================================================================
2023-01-06 22:31:45 -06:00
Default and deleted methods
================================================================================
2023-01-06 22:31:45 -06:00
class A : public B {
A() = default;
A(A &&) = delete;
void f() = delete;
A& operator=(const A&) = default;
A& operator=(A&&) = delete;
};
--------------------------------------------------------------------------------
2023-01-06 22:31:45 -06:00
(translation_unit
(class_specifier
(type_identifier)
(base_class_clause
(access_specifier)
(type_identifier))
2023-01-06 22:31:45 -06:00
(field_declaration_list
(function_definition
(function_declarator
(identifier)
(parameter_list))
2023-01-06 22:31:45 -06:00
(default_method_clause))
(function_definition
(function_declarator
(identifier)
(parameter_list
(parameter_declaration
(type_identifier)
(abstract_reference_declarator))))
2023-01-06 22:31:45 -06:00
(delete_method_clause))
(function_definition
(primitive_type)
(function_declarator
(field_identifier)
(parameter_list))
(delete_method_clause))
2023-01-06 22:31:45 -06:00
(function_definition
(type_identifier)
(reference_declarator
(function_declarator
(operator_name)
(parameter_list
(parameter_declaration
(type_qualifier)
(type_identifier)
(abstract_reference_declarator)))))
2023-01-06 22:31:45 -06:00
(default_method_clause))
(function_definition
(type_identifier)
(reference_declarator
(function_declarator
(operator_name)
(parameter_list
(parameter_declaration
(type_identifier)
(abstract_reference_declarator)))))
2023-01-06 22:31:45 -06:00
(delete_method_clause)))))
================================================================================
2023-01-06 22:31:45 -06:00
Destructor definitions
================================================================================
2023-01-06 22:31:45 -06:00
~T() {}
T::~T() {}
--------------------------------------------------------------------------------
2023-01-06 22:31:45 -06:00
(translation_unit
(function_definition
(function_declarator
(destructor_name
(identifier))
(parameter_list))
2023-01-06 22:31:45 -06:00
(compound_statement))
(function_definition
(function_declarator
(qualified_identifier
(namespace_identifier)
(destructor_name
(identifier)))
(parameter_list))
2023-01-06 22:31:45 -06:00
(compound_statement)))
================================================================================
2023-01-06 22:31:45 -06:00
Function-try-block definitions
================================================================================
2023-01-06 22:31:45 -06:00
void foo() try {} catch(...) {}
--------------------------------------------------------------------------------
2023-01-06 22:31:45 -06:00
(translation_unit
(function_definition
(primitive_type)
(function_declarator
(identifier)
(parameter_list))
(try_statement
(compound_statement)
(catch_clause
(parameter_list)
(compound_statement)))))
================================================================================
2023-01-06 22:31:45 -06:00
Conversion operator definitions
================================================================================
2023-01-06 22:31:45 -06:00
T::operator int() try { throw 1; } catch (...) { return 2; }
--------------------------------------------------------------------------------
2023-01-06 22:31:45 -06:00
(translation_unit
(function_definition
(qualified_identifier
(namespace_identifier)
(operator_cast
(primitive_type)
(abstract_function_declarator
(parameter_list))))
(try_statement
(compound_statement
(throw_statement
(number_literal)))
(catch_clause
(parameter_list)
(compound_statement
(return_statement
(number_literal)))))))