E0005: the text does not fit the grammar here
The message says what was expected and what was found. iecf then skips to the end of the statement, declaration or block it was reading and carries on, so one mistake gives one error, and the rest of the file is still checked.
IF x > 0
y := 1; (* E0005: expected THEN *)
END_IF;
Every statement ends with ;, including END_IF, END_CASE,
END_FOR, END_WHILE and END_REPEAT (Ed.3 Annex A, Stmt_List).