Statements are separated into simple statements and complex statements. Simple statements are statements that cannot contain other statements like assignments, calls or the return statement; complex statements can contain other statements. To avoid the dangling else problem, complex statements always have to be indented. The details can be found in the grammar.