Semicolon?
Aaron96
anthonykell80 at gmail.com
Fri Apr 23 07:03:36 UTC 2021
On Saturday, 3 April 2021 at 11:07:47 UTC, John Colvin wrote:
> On Wednesday, 31 March 2021 at 21:51:07 UTC, Arun wrote:
>> Just curious. Does the compiler need semicolon anymore? Are
>> there corner cases that don't work without semicolon?
>
> SIL (in-house language @ Symmetry Investments, implemented in
> D) has optional semi-colons. We made them work by insisting
> that statements are unambiguous between eager and non-eager
> parsing over line-breaks. Instead of choosing which version is
> correct with a rule, we simply disallow anything that would be
> ambiguous.
>
> For example:
>
> ```
> a = foo
> (bar())
> ```
>
> Instead of deciding which interpretation is correct (assign the
> function `foo` to `a` then call `bar` *or* call `bar`, pass
> result to `foo`, assign result of `foo` to `a`), this is simply
> a parse error and the user must include a backslash or a
> semicolon after `foo` to disambiguate.
>
> We are more conservative about this than we should be and
> therefore disallow some code that isn’t actually ambiguous, but
> in practice it doesn’t seem to be much of a problem.
>
> Having said all that, D is fine with semicolons and should keep
> them.
https://www.mybalancenow.review/
More information about the Digitalmars-d
mailing list