Hello Michael,
Am Mittwoch, dem 22.01.2025 um 16:54 +0100 schrieb Michael Matz: > 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. In an initializer I know all the members. Martin