tree-sitter/spec/fixtures/corpus/cpp/statements.txt
Max Brunsfeld 30b6530fd1 Account for parse stack merges when shifting
Previously, when the parse stack was split into 3 or more heads, it was
possible for head 3 to be accidentally skipped if head 2 merged with head 1.
2015-11-05 21:21:18 -08:00

75 lines
2.1 KiB
Text

==================================================
simple functions cpp
==================================================
int main() {
x;
}
---
(translation_unit (function_definition
(type_specifier (identifier))
(declarator (direct_declarator (direct_declarator (identifier))))
(function_body (compound_statement
(expression_statement (identifier))))))
==================================================
function calls
==================================================
int main() {
printf("hello %s", "world");
}
---
(translation_unit (function_definition
(type_specifier (identifier))
(declarator (direct_declarator (direct_declarator (identifier))))
(function_body (compound_statement
(expression_statement (call_expression (identifier) (string) (string)))))))
==================================================
template function / relational expression ambiguities
==================================================
int main() {
someVariable < someValue > 0.0;
someTemplate<SomeType>(0, 0);
}
---
(translation_unit (function_definition
(type_specifier (identifier))
(declarator (direct_declarator (direct_declarator (identifier))))
(function_body (compound_statement
(expression_statement
(relational_expression
(relational_expression (identifier) (identifier))
(number)))
(expression_statement
(call_expression
(template_call (identifier) (type_id (type_specifier (identifier))))
(number) (number)))))))
==================================================
template class / relational expression ambiguities
==================================================
int main() {
SomeTemplate<SomeType> someVariable = 1;
}
---
(translation_unit (function_definition
(type_specifier (identifier))
(declarator (direct_declarator (direct_declarator (identifier))))
(function_body (compound_statement
(simple_declaration
(type_specifier (template_call (identifier) (identifier)))
(init_declarator
(declarator (direct_declarator (identifier)))
(initializer (initializer_clause (number)))))))))