============================================ If statements ============================================ int main() { if (a) 1; if (!a) { 2; } else { 3; } } --- (translation_unit (function_definition (identifier) (function_declarator (identifier)) (compound_statement (if_statement (identifier) (expression_statement (number_literal))) (if_statement (logical_expression (identifier)) (compound_statement (expression_statement (number_literal))) (compound_statement (expression_statement (number_literal))))))) ============================================ For loops ============================================ int main() { for (;;) 1; for (int i = 0; i < 5; next(), i++) { 2; } for (start(); check(); step()) 3; } --- (translation_unit (function_definition (identifier) (function_declarator (identifier)) (compound_statement (for_statement (expression_statement (number_literal))) (for_statement (declaration (identifier) (init_declarator (identifier) (number_literal))) (relational_expression (identifier) (number_literal)) (call_expression (identifier)) (math_expression (identifier)) (compound_statement (expression_statement (number_literal)))) (for_statement (call_expression (identifier)) (call_expression (identifier)) (call_expression (identifier)) (expression_statement (number_literal)))))) ============================================ While loops ============================================ int main() { while (x) printf("hi"); } --- (translation_unit (function_definition (identifier) (function_declarator (identifier)) (compound_statement (while_statement (identifier) (expression_statement (call_expression (identifier) (string_literal)))))))