29.01.2010 14:47, Juha Manninen:
[trim]
There are some cases already where you can use a semicolon or leave it out.
Not exactly, IMHO. The original point (AFAIK) was that semicolon is a
separator. That is, it is to be used _between_ operators, not _inside_
of. And in accordance, originally pascal's "case" operator didn't
feature the "else" part at all, so it was all clear and logical. You
were always free to add as much semicolons as you wish, but _only_ where
allowed by syntax - _between_ operators. Like:
begin
DoThing1;
DoThing2;;
DoThing3;;;
;;;;;
end;
This would be perfectly valid even with 25 years' ago compilers.
The last semicolon before "end" was never a requirement, because "end"
is not an operator, so there is simply nothing to separate from. If you
still put semicolon before the "end", it means you just add an implicite
empty operator. You can do it just after "begin" if you like - it is
harmless, though syntactically useless as well.
(And yes, I also have ; before "end" most of the time because of
copy-pasting and typing reflex)
Nikolai
Like :
begin
if a> 100 then
DoThing1
else if a> 50 then
DoThing2
else if a> 10 then
DoThing3
else
DoThing4
end
You don't need a semicolon after the last DoThing4 because it is followed by
END. That is handy when you need to change order and copy/paste those lines,
and none of them has semicolon.
However :
begin
if a> 100 then
DoThing1
else if a> 50 then
DoThing2
else if a> 10 then
DoThing3
else
DoThing4;
FinalAction;
end
Now you needed the semicolon.
Why not allow this, for pragmatic reasons:
begin
if a> 100 then
DoThing1;
else if a> 50 then
DoThing2;
else if a> 10 then
DoThing3;
else
DoThing4;
FinalAction;
end
You can already add semicolons for example after END even they are not
required.
This has the same spirit as Perl's array syntax which allows a comma also
after the last item. It is handy when reordering or adding items. It may be
wrong philosophically or technically (or something) but it works and makes
things easier.
(This would be another improvement for Pascal const array syntax, too, but
let's not go there now. It need its own thread.)
Regards,
Juha Manninen
_______________________________________________
fpc-devel maillist - fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel
_______________________________________________
fpc-devel maillist - fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel