The original Wirth syntax said:
After every then or else is exact one statement allowed. If there are more then one statement you have to enclose them with begin ... end;
Note that that wasn't a Wirth thing, that was an ALGOL-60 thing and there was also a variant like
a := if b: then c else d
which is all nice and orthogonal. But at some point before the ALGOL-68 standardisation process it was recognised that that syntax, no matter how elegant, was also susceptible to the dangling-else problem... note that I'm not calling it an ambiguity, but it's definitely a problem.
Wirth perpetuated the ALGOL-60 <single statement> form, when he could (and later did) fix it by adopting if <condition> then <statement sequence> end etc. He dropped the in-expression form despite this not being necessary (for the sake of consistency) until the statement form was fixed. And he introduced records etc. which had an explicit end, rather than themselves needing a begin...end pair. In short, whatever his reputation as a pragmatist, Pascal's syntax is messily inconsistent.
In ALGOL-60, begin...end was also used for the entire program (i.e. rather than program...end). Also variables were declared inside blocks rather than before them, the idea of moving declarations to before the begin would be all very well if it didn't preclude declaring temporary index variables for the for statement rather than leaving things as "this value becomes undefined".
So I'm sorry, but whatever the efforts of people over the years Pascal as defined by Wirth was flawed.
MarkMLl