Robert Bradshaw wrote: > On Aug 6, 2008, at 1:49 AM, Dag Sverre Seljebotn wrote: > >> Obviously my past efforts weren't good enough: >> >> DEF MYLEN = 3 >> c = sizeof(MyStruct[MYLEN]) >> >> So it seems that the parser can never discern the current syntax >> (MYLEN >> could have been a typedef and MyStruct and extension type, and then it >> would have been buffer syntax). >> >> So if keeping the current syntax, I seem to have no choice but to >> create >> a TrailingBracketTypeNode and delay the decision until type analysis. >> This takes some work, and adds complexity, so I want to be sure >> that it >> is needed first. > > I'm not understanding why we need to introduce a new node here, why > not let the sizeof operator be OK with index nodes?
Yes, if you can guarantee me that the sizeof operator is the only place this happens, and that the sizeof name cannot ever be overriden and so on, I could do that. The thing is, I've been bitten so many times by wrong assumptions by now that I'd rather use a new rule controlling the thing: If [] is used on a pyobject, then it is buffer, on a native type, then array. But then I need to defer the resolution of what the [] means until type analysis time. (Basically I need to merge the buffer and array type nodes and set some flags, so the number of node types are reduced.) > >> So, can I leave this bug in until the outcome of the syntax is more >> conclusive? (I'm currently gathering some response from the NumPy list >> and I want to see if they come up with anything...) > > Yes, as long as we don't take too long. I'll likely fix it tomorrow, if the syntax is kept (which I think it will be). -- Dag Sverre _______________________________________________ Cython-dev mailing list [email protected] http://codespeak.net/mailman/listinfo/cython-dev
