STEPHEN>The rule is simple.  With Pascal semicolons separate statement and
with
STEPHEN>Ada semicolons end them.

I am aware of the rule.  I've even taught the rule!  But, consider:

if (x < y) then
   x := y * 5.0
else
   x := y * 2.0;

Normally x := y * 5.0 would have a semicolon, but now it doesn't based on
its context.  I would argue the statement terminator rule is more intuitive,
because you don't change the rules for a particular line of code based on
what it is next to.

--Martin