In fact in some programming languages you can (or should) omit things like this. E.g. pascal does not require or explicitly forbids semicolon before end keyword.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Refe...
https://html.spec.whatwg.org/multipage/grouping-content.html...
simple-statement =
empty-statement
| assignment-statement
| procedure-statement
| goto-statement .
empty-statement = .
from http://www.pascal-central.com/iso7185.html#6.8%20Statements (ISO 7185 Pascal)In practice the separator-vs-terminator distinction mostly shows up in if-statements:
if foo then
bar
else
baz;
I believe that anywhere else in a statement context, you can put in as many extra ';' as you like and it won't make a difference. And of course you can drop the final ';' before 'end' or 'until'.Still I actually struggled each time this given not exactly sure I am in English or American camp.