Hello,
On Wed, 22 Jan 2025, Martin Uecker wrote:
> > > So you do not need to look further. But maybe I am missing something
> > > else.
> >
> > Like ...
> >
> > > > Note further that you may have '{ .y[1][3].z }', which is still not a
> > > > designation, but an expression under your proposal, whereas
> > > > '{ .y[1][3].z = 1 }' would remain a designation. This shows that you
> > > > now need arbitrary look-ahead to disambiguate the two. A Very Bad Idea.
> >
> > ... this?
>
> In .y[1][3].z after .y you can decide whether y is a member of the
> struct being initialized. If it is, it is a designator and if not
> it must be an expression.
If y is not a member it must be an expression, true. But if it's a member
you don't know, it may be a designation or an expression.
Ciao,
Michael.