============================================ Expression statements ============================================ int main() { x; } --- (function_declaration (identifier) (identifier) (formal_parameters) (statement_block (expression_statement (identifier)))) ============================================ If statements ============================================ int main() { if (a) b; if (!a) { b; } else { c; } } --- (function_declaration (identifier) (identifier) (formal_parameters) (statement_block (if_statement (identifier) (expression_statement (identifier))) (if_statement (bool_op (identifier)) (statement_block (expression_statement (identifier))) (statement_block (expression_statement (identifier)))))) ============================================ For loops ============================================ int main() { for (;;) x; for (int i = 0; i < 5; i++) { y; } for (start(); check(); step()) z; } --- (function_declaration (identifier) (identifier) (formal_parameters) (statement_block (for_statement (expression_statement (identifier))) (for_statement (var_declaration (identifier) (var_assignment (identifier) (number))) (rel_op (identifier) (number)) (math_op (identifier)) (statement_block (expression_statement (identifier)))) (for_statement (function_call (identifier)) (function_call (identifier)) (function_call (identifier)) (expression_statement (identifier))))) ============================================ While loops ============================================ int main() { while (x) printf("hi"); } --- (function_declaration (identifier) (identifier) (formal_parameters) (statement_block (while_statement (identifier) (expression_statement (function_call (identifier) (string))))))