============================================
|
|
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)))))))
|