tree-sitter/spec/fixtures/corpus/cpp/statements.txt
Max Brunsfeld 1a5d5b3156 Make ambiguities resolve deterministically
In the future, they should resolve according to some kind of dynamic
precedence annotations provided in the grammars. For now, this at least makes
them fully deterministic, so that tests won't fail due to ambiguities resolving
differently after undone edits.
2015-11-11 16:54:03 -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) (type_id (type_specifier (identifier)))))
(init_declarator
(declarator (direct_declarator (identifier)))
(initializer (initializer_clause (number)))))))))