> if x < 2 then > if x > 0 then > Writeln('x=1'); > else > Writeln('x=0');
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 blocks anyway. 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 semicolon... Non-intuitive. 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 says: "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 intuitive. Using BEGIN END blocks always solves the problem but they are not used always. Regards, Juha Manninen _______________________________________________ fpc-devel maillist - fpc-devel@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-devel