[Cython] Scope resolution in a Visitor
stefan_ml at behnel.de
Tue May 24 23:15:04 CEST 2011
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.
More information about the cython-devel