Romain Guillebert, 24.05.2011 22:36:
Sounds to me like you should attach the necessary information to the
symbol table entry when analysing he "external" declaration.

That's what I wanted to do that's why I asked how I could access the
external declaration node

Then you should have asked that in the first place.

There are declarator nodes for external declarations. You can traverse them just like any other node. However, they get removed after declaration analysis, so you need to have extracted all required information at that point.

Maybe you can just replace them by new nodes that implement the C access for a specific external declaration?


We currently store a "cname", so adding something like a property name
or accessor information should fit your use case. We may want to
reserve a separate namespace for Python output related information,
though. Maybe something like "entry.pybackend.*"?

This would be a clean way to do it

Also, we considered having module level properties at some point.
That may fall into the same bucket.

Writing a transformation for that should be relatively straightforward.

Well, for the C code that Cython generates, it means that we first need to implement our own module type in order to support properties at all...


What should happen for cimported declarations? Will they be handled
in the same way as internally defined "external" declarations? I
guess so, even if they may be shared between modules.

There's 2 possibilities I think :
- For each file we generate the wrapping functions
- For each pxd file, generate a file containing the wrapping functions

Right. I don't see a problem with any of the two, nor a major advantage on either side. The first sounds a bit simpler.

Stefan
_______________________________________________
cython-devel mailing list
cython-devel@python.org
http://mail.python.org/mailman/listinfo/cython-devel

Reply via email to