[fpc-devel] Semicolon before else
juha.manninen at phnet.fi
Fri Jan 29 08:52:59 CET 2010
> if x < 2 then
> if x > 0 then
I was going to write that's not backward compatible, but it doesn't actually
compile with current FPC. I remembered now ELSE would be tied to the first IF.
Anyway, there are some weird cases when it's difficult to tell which IF the
ELSE belongs to. Those are very rare and then one really should use BEGIN END
So, if this change is backward compatible then it should absolutely be
accepted in FPC.
For Graeme and others: the problem is not the amount of typing. The problem is
that you can easily forget this semicolon when you for example add ELSE to an
existing IF. First there had to be a semicolon and then there must not be
So, the goal is to make the language more intuitive and programmer-friendly.
The compiler can deal with complicated things. It could easily understand the
semicolon (as we can see with this patch). Instead giving an error feels
stupid. It is like with the "const array" syntax. The compiler essentially
"Hey you stupid programmer, you left a semicolon there. I easily understand
what your code means but still you must change it yourself."
Ok, it is a small thing but still, this language is otherwise clean and
Using BEGIN END blocks always solves the problem but they are not used always.
More information about the fpc-devel