Statements appear in procedures and in a module's top-level block. The statement terminator is the semicolon, which may be omitted after the last statement in a sequence (in which case it is a statement separator).
Constructs such as FOR, WHILE, REPEAT, WITH, etc. can contain multiple statements and must be terminated by END. In general, whenever a Modula-3 language construct requires an END, it can contain zero, one, or more elements.