Vitja Makarov, 23.10.2011 08:39:
This simple code crashes compiler:
lambda i=1: i
"""
File "/home/vitja/work/cython-vitek-git/Cython/Compiler/Parsing.py",
line 122, in p_test
return p_lambdef(s)
File "/home/vitja/work/cython-vitek-git/Cython/Compiler/Parsing.py",
line 102, in p_lambdef
s, terminator=':', annotated=False)
File "/home/vitja/work/cython-vitek-git/Cython/Compiler/Parsing.py",
line 2741, in p_varargslist
annotated = annotated)
File "/home/vitja/work/cython-vitek-git/Cython/Compiler/Parsing.py",
line 2388, in p_c_arg_list
annotated = annotated))
File "/home/vitja/work/cython-vitek-git/Cython/Compiler/Parsing.py",
line 2435, in p_c_arg_decl
print s.level
AttributeError: 'PyrexScanner' object has no attribute 'level'
"""
I'm not sure what's the best way to fix this.
I don't see a "print" statement anywhere, but it seems that the "level"
attribute is really missing from the compiled scanner.
This should do the trick:
diff -r 886697a10602 Cython/Compiler/Scanning.pxd
--- a/Cython/Compiler/Scanning.pxd Sat Oct 22 19:43:45 2011 +0100
+++ b/Cython/Compiler/Scanning.pxd Sun Oct 23 10:11:10 2011 +0200
@@ -28,6 +28,7 @@
cdef public int bracket_nesting_level
cdef public sy
cdef public systring
+ cdef public level
cdef long current_level(self)
#cpdef commentline(self, text)
I didn't commit it, just go ahead and do so if it works for you.
Stefan
_______________________________________________
cython-devel mailing list
cython-devel@python.org
http://mail.python.org/mailman/listinfo/cython-devel