On Jun 10, 2009, at 8:54 AM, Sebastien Binet wrote: > On Wednesday 10 June 2009 08:07:23 Stefan Behnel wrote: >> Hi, >> >> Dag Sverre Seljebotn wote: >>> Sebastien Binet wrote: >>>> Just for fun and to see how cython works, I am trying to write a >>>> CythonInterpreter inheriting from the usual >>>> code.InteractiveConsole. >> >> Way cool. I always wanted something like that for quickly checking >> out code >> snippets without going all the way through writing a module and >> pyximporting it. >> >>>> So far so good, I manage to compile cython-oneliners (leveraging >>>> pyximport.load_module) but then I'd need some help for multi-lines >>>> statements: >>>> ## ex: >>>> cdef class Foo: >>>> pass >>>> ## >>>> >>>> for this to work in a reasonnable timely fashion, I'd need to >>>> see if >>>> parsing the snippet of code is valid cython (without compiling). >> >> The current parser isn't made for parsing things interactively, so >> I have >> no idea if this is trivial or hard to do. >> >> You might get away with checking for parser errors that indicate a >> missing >> indentation after the last character that you passed. Every parse >> error >> inside or before the last line would indicate a 'real' parser error. > > thanks for the hint. > So I am now able to successfully enter at the cython prompt: > cython> cdef class Foo: > ... cdef int i > > yeah! > > the problem I get now is that I am out of luck if I want to > actually do: > cdef class Foo: > cdef int i > cdef int j > > as the class Foo is compiled just after I entered "cdef int i"... > I suppose I would have to know the indentation context of the last > statement > (if indent_lvl>0, gimme a new line) > > hum... maybe I am not tackling this from the correct angle (perhaps > that a > simple buffer of strings filled while the last entry is not > the_empty_string > would do as I quick hack...)
The way ipython does it is to require a new empty line to "leave" an indentation block--maybe you could do the same. (Or maybe you could even hook this in with ipython). - Robert _______________________________________________ Cython-dev mailing list [email protected] http://codespeak.net/mailman/listinfo/cython-dev
