Hello, On Tue, 15 Apr 2025, Bill Wendling wrote:
> > [... the horrors ...] > > All of this horribleness is because of the insistence of allowing for > primary expressions in the attributes, which I find to be a horrible > idea. I whole-heartedly agree with you :) But in light of this insistence I guess we should strive for the least horrible approach. Meaning: make everyone unhappy, but only a little :) > Arguing that delayed parsing is "tolerable" in one instance but > not in another is a bit specious, At the limit you are correct, but in a practical implementation it's quite a difference between tacking an identifier-id somewhere in the attribute list, or storing a token-list and reparse it in the right mode at the end of the struct definition, especially when the latter concept doesn't exist as of then in a given parser. > given that the expressions we allow are supposed to be "simple" (for > some definition of simple), it should only require doing that tolerable > parsing a couple more times. (As I've mentioned before, it would be so > much better to place the expression into a function.) Yes, I think that's an elegant solution, really. But it seems noone else was much fond of it :-/ > Even the compromise we've discussed here wouldn't fix all of our issues > (see the problem I pointed out with macro expansions). Yes. Though, macros will always be a source of problems. A determined macro-afficiando can always construct weird examples involving macros, I wouldn't worry overly much about those. Ciao, Michael.