Hey Yury:
Yes, you are right. I was thinking this was a function and not a method.
As an even ickier workaround:
#define TokenStack_top_p(token_stack) &token_stack->top()
cdef extern from "............":
Token* TokenStack_top_p(TokenStack*) except +
cdef Token* tok = TokenStack_top_p(self.pEngine.OStack)
-Brad
On Thu, Feb 28, 2013 at 10:38 AM, Yury V. Zaytsev <[email protected]> wrote:
> Hi Brad,
>
> On Thu, 2013-02-28 at 08:01 -0800, Bradley M. Froehle wrote:
> >
> > cdef extern from "test.h":
> > int* foo2ptr "&foo" ()
> >
> > cdef int *x = foo2ptr()
>
> Thank you for this interesting suggestion, but I must be missing
> something, because when I do the following:
>
> cdef extern from "tokenstack.h":
> cppclass TokenStack:
> Token* top "Token&" () except +
>
> cdef Token* tok = self.pEngine.OStack.top()
>
> I end up with the following generated code, which, of course, doesn't
> compile:
>
> Token *__pyx_t_5;
> __pyx_t_5 = __pyx_v_self->pEngine->OStack.Token&();
>
> whereas, I'd like to see generated this:
>
> Token *__pyx_t_5;
> __pyx_t_5 = __pyx_v_self->pEngine->OStack->top();
>
> Any ideas?
>
> --
> Sincerely yours,
> Yury V. Zaytsev
>
>
> _______________________________________________
> cython-devel mailing list
> [email protected]
> http://mail.python.org/mailman/listinfo/cython-devel
>
_______________________________________________
cython-devel mailing list
[email protected]
http://mail.python.org/mailman/listinfo/cython-devel