~ubuntu-branches/ubuntu/trusty/cython/trusty-proposed

« back to all changes in this revision

Viewing changes to Cython/Compiler/Visitor.c

  • Committer: Bazaar Package Importer
  • Author(s): Yaroslav Halchenko
  • Date: 2011-02-13 09:41:12 UTC
  • mfrom: (1.4.1 upstream) (9.1.1 experimental)
  • Revision ID: james.westby@ubuntu.com-20110213094112-0vg8c1a2stwuufnn
Tags: 0.14.1-1
* Reincarnating uploads to unstable
* Fresh upstream release
* debian/control: added python-dev into Suggests (Closes: #545809)
* Standards-Version bumped to 3.9.1 (no change needed)
* Use help2man to generate a reasonable manpage (Closes: #607098)

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/* Generated by Cython 0.14.1 on Fri Feb  4 01:17:38 2011 */
 
2
 
 
3
#define PY_SSIZE_T_CLEAN
 
4
#include "Python.h"
 
5
#ifndef Py_PYTHON_H
 
6
    #error Python headers needed to compile C extensions, please install development version of Python.
 
7
#else
 
8
 
 
9
#include <stddef.h> /* For offsetof */
 
10
#ifndef offsetof
 
11
#define offsetof(type, member) ( (size_t) & ((type*)0) -> member )
 
12
#endif
 
13
 
 
14
#if !defined(WIN32) && !defined(MS_WINDOWS)
 
15
  #ifndef __stdcall
 
16
    #define __stdcall
 
17
  #endif
 
18
  #ifndef __cdecl
 
19
    #define __cdecl
 
20
  #endif
 
21
  #ifndef __fastcall
 
22
    #define __fastcall
 
23
  #endif
 
24
#endif
 
25
 
 
26
#ifndef DL_IMPORT
 
27
  #define DL_IMPORT(t) t
 
28
#endif
 
29
#ifndef DL_EXPORT
 
30
  #define DL_EXPORT(t) t
 
31
#endif
 
32
 
 
33
#ifndef PY_LONG_LONG
 
34
  #define PY_LONG_LONG LONG_LONG
 
35
#endif
 
36
 
 
37
#if PY_VERSION_HEX < 0x02040000
 
38
  #define METH_COEXIST 0
 
39
  #define PyDict_CheckExact(op) (Py_TYPE(op) == &PyDict_Type)
 
40
  #define PyDict_Contains(d,o)   PySequence_Contains(d,o)
 
41
#endif
 
42
 
 
43
#if PY_VERSION_HEX < 0x02050000
 
44
  typedef int Py_ssize_t;
 
45
  #define PY_SSIZE_T_MAX INT_MAX
 
46
  #define PY_SSIZE_T_MIN INT_MIN
 
47
  #define PY_FORMAT_SIZE_T ""
 
48
  #define PyInt_FromSsize_t(z) PyInt_FromLong(z)
 
49
  #define PyInt_AsSsize_t(o)   PyInt_AsLong(o)
 
50
  #define PyNumber_Index(o)    PyNumber_Int(o)
 
51
  #define PyIndex_Check(o)     PyNumber_Check(o)
 
52
  #define PyErr_WarnEx(category, message, stacklevel) PyErr_Warn(category, message)
 
53
#endif
 
54
 
 
55
#if PY_VERSION_HEX < 0x02060000
 
56
  #define Py_REFCNT(ob) (((PyObject*)(ob))->ob_refcnt)
 
57
  #define Py_TYPE(ob)   (((PyObject*)(ob))->ob_type)
 
58
  #define Py_SIZE(ob)   (((PyVarObject*)(ob))->ob_size)
 
59
  #define PyVarObject_HEAD_INIT(type, size) \
 
60
          PyObject_HEAD_INIT(type) size,
 
61
  #define PyType_Modified(t)
 
62
 
 
63
  typedef struct {
 
64
     void *buf;
 
65
     PyObject *obj;
 
66
     Py_ssize_t len;
 
67
     Py_ssize_t itemsize;
 
68
     int readonly;
 
69
     int ndim;
 
70
     char *format;
 
71
     Py_ssize_t *shape;
 
72
     Py_ssize_t *strides;
 
73
     Py_ssize_t *suboffsets;
 
74
     void *internal;
 
75
  } Py_buffer;
 
76
 
 
77
  #define PyBUF_SIMPLE 0
 
78
  #define PyBUF_WRITABLE 0x0001
 
79
  #define PyBUF_FORMAT 0x0004
 
80
  #define PyBUF_ND 0x0008
 
81
  #define PyBUF_STRIDES (0x0010 | PyBUF_ND)
 
82
  #define PyBUF_C_CONTIGUOUS (0x0020 | PyBUF_STRIDES)
 
83
  #define PyBUF_F_CONTIGUOUS (0x0040 | PyBUF_STRIDES)
 
84
  #define PyBUF_ANY_CONTIGUOUS (0x0080 | PyBUF_STRIDES)
 
85
  #define PyBUF_INDIRECT (0x0100 | PyBUF_STRIDES)
 
86
 
 
87
#endif
 
88
 
 
89
#if PY_MAJOR_VERSION < 3
 
90
  #define __Pyx_BUILTIN_MODULE_NAME "__builtin__"
 
91
#else
 
92
  #define __Pyx_BUILTIN_MODULE_NAME "builtins"
 
93
#endif
 
94
 
 
95
#if PY_MAJOR_VERSION >= 3
 
96
  #define Py_TPFLAGS_CHECKTYPES 0
 
97
  #define Py_TPFLAGS_HAVE_INDEX 0
 
98
#endif
 
99
 
 
100
#if (PY_VERSION_HEX < 0x02060000) || (PY_MAJOR_VERSION >= 3)
 
101
  #define Py_TPFLAGS_HAVE_NEWBUFFER 0
 
102
#endif
 
103
 
 
104
#if PY_MAJOR_VERSION >= 3
 
105
  #define PyBaseString_Type            PyUnicode_Type
 
106
  #define PyStringObject               PyUnicodeObject
 
107
  #define PyString_Type                PyUnicode_Type
 
108
  #define PyString_Check               PyUnicode_Check
 
109
  #define PyString_CheckExact          PyUnicode_CheckExact
 
110
#endif
 
111
 
 
112
#if PY_VERSION_HEX < 0x02060000
 
113
  #define PyBytesObject                PyStringObject
 
114
  #define PyBytes_Type                 PyString_Type
 
115
  #define PyBytes_Check                PyString_Check
 
116
  #define PyBytes_CheckExact           PyString_CheckExact
 
117
  #define PyBytes_FromString           PyString_FromString
 
118
  #define PyBytes_FromStringAndSize    PyString_FromStringAndSize
 
119
  #define PyBytes_FromFormat           PyString_FromFormat
 
120
  #define PyBytes_DecodeEscape         PyString_DecodeEscape
 
121
  #define PyBytes_AsString             PyString_AsString
 
122
  #define PyBytes_AsStringAndSize      PyString_AsStringAndSize
 
123
  #define PyBytes_Size                 PyString_Size
 
124
  #define PyBytes_AS_STRING            PyString_AS_STRING
 
125
  #define PyBytes_GET_SIZE             PyString_GET_SIZE
 
126
  #define PyBytes_Repr                 PyString_Repr
 
127
  #define PyBytes_Concat               PyString_Concat
 
128
  #define PyBytes_ConcatAndDel         PyString_ConcatAndDel
 
129
#endif
 
130
 
 
131
#if PY_VERSION_HEX < 0x02060000
 
132
  #define PySet_Check(obj)             PyObject_TypeCheck(obj, &PySet_Type)
 
133
  #define PyFrozenSet_Check(obj)       PyObject_TypeCheck(obj, &PyFrozenSet_Type)
 
134
#endif
 
135
#ifndef PySet_CheckExact
 
136
  #define PySet_CheckExact(obj)        (Py_TYPE(obj) == &PySet_Type)
 
137
#endif
 
138
 
 
139
#define __Pyx_TypeCheck(obj, type) PyObject_TypeCheck(obj, (PyTypeObject *)type)
 
140
 
 
141
#if PY_MAJOR_VERSION >= 3
 
142
  #define PyIntObject                  PyLongObject
 
143
  #define PyInt_Type                   PyLong_Type
 
144
  #define PyInt_Check(op)              PyLong_Check(op)
 
145
  #define PyInt_CheckExact(op)         PyLong_CheckExact(op)
 
146
  #define PyInt_FromString             PyLong_FromString
 
147
  #define PyInt_FromUnicode            PyLong_FromUnicode
 
148
  #define PyInt_FromLong               PyLong_FromLong
 
149
  #define PyInt_FromSize_t             PyLong_FromSize_t
 
150
  #define PyInt_FromSsize_t            PyLong_FromSsize_t
 
151
  #define PyInt_AsLong                 PyLong_AsLong
 
152
  #define PyInt_AS_LONG                PyLong_AS_LONG
 
153
  #define PyInt_AsSsize_t              PyLong_AsSsize_t
 
154
  #define PyInt_AsUnsignedLongMask     PyLong_AsUnsignedLongMask
 
155
  #define PyInt_AsUnsignedLongLongMask PyLong_AsUnsignedLongLongMask
 
156
#endif
 
157
 
 
158
#if PY_MAJOR_VERSION >= 3
 
159
  #define PyBoolObject                 PyLongObject
 
160
#endif
 
161
 
 
162
 
 
163
#if PY_MAJOR_VERSION >= 3
 
164
  #define __Pyx_PyNumber_Divide(x,y)         PyNumber_TrueDivide(x,y)
 
165
  #define __Pyx_PyNumber_InPlaceDivide(x,y)  PyNumber_InPlaceTrueDivide(x,y)
 
166
#else
 
167
  #define __Pyx_PyNumber_Divide(x,y)         PyNumber_Divide(x,y)
 
168
  #define __Pyx_PyNumber_InPlaceDivide(x,y)  PyNumber_InPlaceDivide(x,y)
 
169
#endif
 
170
 
 
171
#if (PY_MAJOR_VERSION < 3) || (PY_VERSION_HEX >= 0x03010300)
 
172
  #define __Pyx_PySequence_GetSlice(obj, a, b) PySequence_GetSlice(obj, a, b)
 
173
  #define __Pyx_PySequence_SetSlice(obj, a, b, value) PySequence_SetSlice(obj, a, b, value)
 
174
  #define __Pyx_PySequence_DelSlice(obj, a, b) PySequence_DelSlice(obj, a, b)
 
175
#else
 
176
  #define __Pyx_PySequence_GetSlice(obj, a, b) (unlikely(!(obj)) ? \
 
177
        (PyErr_SetString(PyExc_SystemError, "null argument to internal routine"), (PyObject*)0) : \
 
178
        (likely((obj)->ob_type->tp_as_mapping) ? (PySequence_GetSlice(obj, a, b)) : \
 
179
            (PyErr_Format(PyExc_TypeError, "'%.200s' object is unsliceable", (obj)->ob_type->tp_name), (PyObject*)0)))
 
180
  #define __Pyx_PySequence_SetSlice(obj, a, b, value) (unlikely(!(obj)) ? \
 
181
        (PyErr_SetString(PyExc_SystemError, "null argument to internal routine"), -1) : \
 
182
        (likely((obj)->ob_type->tp_as_mapping) ? (PySequence_SetSlice(obj, a, b, value)) : \
 
183
            (PyErr_Format(PyExc_TypeError, "'%.200s' object doesn't support slice assignment", (obj)->ob_type->tp_name), -1)))
 
184
  #define __Pyx_PySequence_DelSlice(obj, a, b) (unlikely(!(obj)) ? \
 
185
        (PyErr_SetString(PyExc_SystemError, "null argument to internal routine"), -1) : \
 
186
        (likely((obj)->ob_type->tp_as_mapping) ? (PySequence_DelSlice(obj, a, b)) : \
 
187
            (PyErr_Format(PyExc_TypeError, "'%.200s' object doesn't support slice deletion", (obj)->ob_type->tp_name), -1)))
 
188
#endif
 
189
 
 
190
#if PY_MAJOR_VERSION >= 3
 
191
  #define PyMethod_New(func, self, klass) ((self) ? PyMethod_New(func, self) : PyInstanceMethod_New(func))
 
192
#endif
 
193
 
 
194
#if PY_VERSION_HEX < 0x02050000
 
195
  #define __Pyx_GetAttrString(o,n)   PyObject_GetAttrString((o),((char *)(n)))
 
196
  #define __Pyx_SetAttrString(o,n,a) PyObject_SetAttrString((o),((char *)(n)),(a))
 
197
  #define __Pyx_DelAttrString(o,n)   PyObject_DelAttrString((o),((char *)(n)))
 
198
#else
 
199
  #define __Pyx_GetAttrString(o,n)   PyObject_GetAttrString((o),(n))
 
200
  #define __Pyx_SetAttrString(o,n,a) PyObject_SetAttrString((o),(n),(a))
 
201
  #define __Pyx_DelAttrString(o,n)   PyObject_DelAttrString((o),(n))
 
202
#endif
 
203
 
 
204
#if PY_VERSION_HEX < 0x02050000
 
205
  #define __Pyx_NAMESTR(n) ((char *)(n))
 
206
  #define __Pyx_DOCSTR(n)  ((char *)(n))
 
207
#else
 
208
  #define __Pyx_NAMESTR(n) (n)
 
209
  #define __Pyx_DOCSTR(n)  (n)
 
210
#endif
 
211
 
 
212
#ifdef __cplusplus
 
213
#define __PYX_EXTERN_C extern "C"
 
214
#else
 
215
#define __PYX_EXTERN_C extern
 
216
#endif
 
217
 
 
218
#if defined(WIN32) || defined(MS_WINDOWS)
 
219
#define _USE_MATH_DEFINES
 
220
#endif
 
221
#include <math.h>
 
222
#define __PYX_HAVE_API__Cython__Compiler__Visitor
 
223
 
 
224
#ifdef PYREX_WITHOUT_ASSERTIONS
 
225
#define CYTHON_WITHOUT_ASSERTIONS
 
226
#endif
 
227
 
 
228
 
 
229
/* inline attribute */
 
230
#ifndef CYTHON_INLINE
 
231
  #if defined(__GNUC__)
 
232
    #define CYTHON_INLINE __inline__
 
233
  #elif defined(_MSC_VER)
 
234
    #define CYTHON_INLINE __inline
 
235
  #elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
 
236
    #define CYTHON_INLINE inline
 
237
  #else
 
238
    #define CYTHON_INLINE
 
239
  #endif
 
240
#endif
 
241
 
 
242
/* unused attribute */
 
243
#ifndef CYTHON_UNUSED
 
244
# if defined(__GNUC__)
 
245
#   if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4))
 
246
#     define CYTHON_UNUSED __attribute__ ((__unused__))
 
247
#   else
 
248
#     define CYTHON_UNUSED
 
249
#   endif
 
250
# elif defined(__ICC) || defined(__INTEL_COMPILER)
 
251
#   define CYTHON_UNUSED __attribute__ ((__unused__))
 
252
# else
 
253
#   define CYTHON_UNUSED
 
254
# endif
 
255
#endif
 
256
 
 
257
typedef struct {PyObject **p; char *s; const long n; const char* encoding; const char is_unicode; const char is_str; const char intern; } __Pyx_StringTabEntry; /*proto*/
 
258
 
 
259
 
 
260
/* Type Conversion Predeclarations */
 
261
 
 
262
#define __Pyx_PyBytes_FromUString(s) PyBytes_FromString((char*)s)
 
263
#define __Pyx_PyBytes_AsUString(s)   ((unsigned char*) PyBytes_AsString(s))
 
264
 
 
265
#define __Pyx_PyBool_FromLong(b) ((b) ? (Py_INCREF(Py_True), Py_True) : (Py_INCREF(Py_False), Py_False))
 
266
static CYTHON_INLINE int __Pyx_PyObject_IsTrue(PyObject*);
 
267
static CYTHON_INLINE PyObject* __Pyx_PyNumber_Int(PyObject* x);
 
268
 
 
269
static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject*);
 
270
static CYTHON_INLINE PyObject * __Pyx_PyInt_FromSize_t(size_t);
 
271
static CYTHON_INLINE size_t __Pyx_PyInt_AsSize_t(PyObject*);
 
272
 
 
273
#define __pyx_PyFloat_AsDouble(x) (PyFloat_CheckExact(x) ? PyFloat_AS_DOUBLE(x) : PyFloat_AsDouble(x))
 
274
 
 
275
 
 
276
#ifdef __GNUC__
 
277
/* Test for GCC > 2.95 */
 
278
#if __GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95))
 
279
#define likely(x)   __builtin_expect(!!(x), 1)
 
280
#define unlikely(x) __builtin_expect(!!(x), 0)
 
281
#else /* __GNUC__ > 2 ... */
 
282
#define likely(x)   (x)
 
283
#define unlikely(x) (x)
 
284
#endif /* __GNUC__ > 2 ... */
 
285
#else /* __GNUC__ */
 
286
#define likely(x)   (x)
 
287
#define unlikely(x) (x)
 
288
#endif /* __GNUC__ */
 
289
    
 
290
static PyObject *__pyx_m;
 
291
static PyObject *__pyx_b;
 
292
static PyObject *__pyx_empty_tuple;
 
293
static PyObject *__pyx_empty_bytes;
 
294
static int __pyx_lineno;
 
295
static int __pyx_clineno = 0;
 
296
static const char * __pyx_cfilenm= __FILE__;
 
297
static const char *__pyx_filename;
 
298
 
 
299
 
 
300
static const char *__pyx_f[] = {
 
301
  "Visitor.py",
 
302
  "Visitor.pxd",
 
303
};
 
304
 
 
305
/* Type declarations */
 
306
 
 
307
/* "Cython/Compiler/Visitor.pxd":13
 
308
 *     @cython.locals(idx=int)
 
309
 *     cdef dict _visitchildren(self, parent, attrs)
 
310
 *     cpdef visitchildren(self, parent, attrs=*)             # <<<<<<<<<<<<<<
 
311
 * 
 
312
 * cdef class VisitorTransform(TreeVisitor):
 
313
 */
 
314
 
 
315
struct __pyx_opt_args_6Cython_8Compiler_7Visitor_11TreeVisitor_visitchildren {
 
316
  int __pyx_n;
 
317
  PyObject *attrs;
 
318
};
 
319
 
 
320
/* "Cython/Compiler/Visitor.pxd":16
 
321
 * 
 
322
 * cdef class VisitorTransform(TreeVisitor):
 
323
 *     cpdef visitchildren(self, parent, attrs=*)             # <<<<<<<<<<<<<<
 
324
 *     cpdef recurse_to_children(self, node)
 
325
 * 
 
326
 */
 
327
 
 
328
struct __pyx_opt_args_6Cython_8Compiler_7Visitor_16VisitorTransform_visitchildren {
 
329
  int __pyx_n;
 
330
  PyObject *attrs;
 
331
};
 
332
 
 
333
/* "Cython/Compiler/Visitor.pxd":3
 
334
 * cimport cython
 
335
 * 
 
336
 * cdef class TreeVisitor:             # <<<<<<<<<<<<<<
 
337
 *     cdef public list access_path
 
338
 *     cdef dict dispatch_table
 
339
 */
 
340
 
 
341
struct __pyx_obj_6Cython_8Compiler_7Visitor_TreeVisitor {
 
342
  PyObject_HEAD
 
343
  struct __pyx_vtabstruct_6Cython_8Compiler_7Visitor_TreeVisitor *__pyx_vtab;
 
344
  PyObject *access_path;
 
345
  PyObject *dispatch_table;
 
346
};
 
347
 
 
348
/* "Cython/Compiler/Visitor.pxd":15
 
349
 *     cpdef visitchildren(self, parent, attrs=*)
 
350
 * 
 
351
 * cdef class VisitorTransform(TreeVisitor):             # <<<<<<<<<<<<<<
 
352
 *     cpdef visitchildren(self, parent, attrs=*)
 
353
 *     cpdef recurse_to_children(self, node)
 
354
 */
 
355
 
 
356
struct __pyx_obj_6Cython_8Compiler_7Visitor_VisitorTransform {
 
357
  struct __pyx_obj_6Cython_8Compiler_7Visitor_TreeVisitor __pyx_base;
 
358
};
 
359
 
 
360
/* "Cython/Compiler/Visitor.pxd":19
 
361
 *     cpdef recurse_to_children(self, node)
 
362
 * 
 
363
 * cdef class CythonTransform(VisitorTransform):             # <<<<<<<<<<<<<<
 
364
 *     cdef public context
 
365
 *     cdef public current_directives
 
366
 */
 
367
 
 
368
struct __pyx_obj_6Cython_8Compiler_7Visitor_CythonTransform {
 
369
  struct __pyx_obj_6Cython_8Compiler_7Visitor_VisitorTransform __pyx_base;
 
370
  PyObject *context;
 
371
  PyObject *current_directives;
 
372
};
 
373
 
 
374
/* "Cython/Compiler/Visitor.pxd":28
 
375
 *     cdef visit_scope(self, node, scope_type)
 
376
 * 
 
377
 * cdef class EnvTransform(CythonTransform):             # <<<<<<<<<<<<<<
 
378
 *     cdef public list env_stack
 
379
 * 
 
380
 */
 
381
 
 
382
struct __pyx_obj_6Cython_8Compiler_7Visitor_EnvTransform {
 
383
  struct __pyx_obj_6Cython_8Compiler_7Visitor_CythonTransform __pyx_base;
 
384
  PyObject *env_stack;
 
385
};
 
386
 
 
387
/* "Cython/Compiler/Visitor.pxd":23
 
388
 *     cdef public current_directives
 
389
 * 
 
390
 * cdef class ScopeTrackingTransform(CythonTransform):             # <<<<<<<<<<<<<<
 
391
 *     cdef public scope_type
 
392
 *     cdef public scope_node
 
393
 */
 
394
 
 
395
struct __pyx_obj_6Cython_8Compiler_7Visitor_ScopeTrackingTransform {
 
396
  struct __pyx_obj_6Cython_8Compiler_7Visitor_CythonTransform __pyx_base;
 
397
  PyObject *scope_type;
 
398
  PyObject *scope_node;
 
399
};
 
400
 
 
401
/* "Cython/Compiler/Visitor.pxd":31
 
402
 *     cdef public list env_stack
 
403
 * 
 
404
 * cdef class RecursiveNodeReplacer(VisitorTransform):             # <<<<<<<<<<<<<<
 
405
 *      cdef public orig_node
 
406
 *      cdef public new_node
 
407
 */
 
408
 
 
409
struct __pyx_obj_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer {
 
410
  struct __pyx_obj_6Cython_8Compiler_7Visitor_VisitorTransform __pyx_base;
 
411
  PyObject *orig_node;
 
412
  PyObject *new_node;
 
413
};
 
414
 
 
415
 
 
416
/* "Cython/Compiler/Visitor.py":14
 
417
 * import DebugFlags
 
418
 * 
 
419
 * class TreeVisitor(object):             # <<<<<<<<<<<<<<
 
420
 *     """
 
421
 *     Base class for writing visitors for a Cython tree, contains utilities for
 
422
 */
 
423
 
 
424
struct __pyx_vtabstruct_6Cython_8Compiler_7Visitor_TreeVisitor {
 
425
  PyObject *(*visit)(struct __pyx_obj_6Cython_8Compiler_7Visitor_TreeVisitor *, PyObject *, int __pyx_skip_dispatch);
 
426
  PyObject *(*_visit)(struct __pyx_obj_6Cython_8Compiler_7Visitor_TreeVisitor *, PyObject *);
 
427
  PyObject *(*find_handler)(struct __pyx_obj_6Cython_8Compiler_7Visitor_TreeVisitor *, PyObject *);
 
428
  PyObject *(*_visitchild)(struct __pyx_obj_6Cython_8Compiler_7Visitor_TreeVisitor *, PyObject *, PyObject *, PyObject *, PyObject *);
 
429
  PyObject *(*_visitchildren)(struct __pyx_obj_6Cython_8Compiler_7Visitor_TreeVisitor *, PyObject *, PyObject *);
 
430
  PyObject *(*visitchildren)(struct __pyx_obj_6Cython_8Compiler_7Visitor_TreeVisitor *, PyObject *, int __pyx_skip_dispatch, struct __pyx_opt_args_6Cython_8Compiler_7Visitor_11TreeVisitor_visitchildren *__pyx_optional_args);
 
431
};
 
432
static struct __pyx_vtabstruct_6Cython_8Compiler_7Visitor_TreeVisitor *__pyx_vtabptr_6Cython_8Compiler_7Visitor_TreeVisitor;
 
433
 
 
434
 
 
435
/* "Cython/Compiler/Visitor.py":213
 
436
 * 
 
437
 * 
 
438
 * class VisitorTransform(TreeVisitor):             # <<<<<<<<<<<<<<
 
439
 *     """
 
440
 *     A tree transform is a base class for visitors that wants to do stream
 
441
 */
 
442
 
 
443
struct __pyx_vtabstruct_6Cython_8Compiler_7Visitor_VisitorTransform {
 
444
  struct __pyx_vtabstruct_6Cython_8Compiler_7Visitor_TreeVisitor __pyx_base;
 
445
  PyObject *(*recurse_to_children)(struct __pyx_obj_6Cython_8Compiler_7Visitor_VisitorTransform *, PyObject *, int __pyx_skip_dispatch);
 
446
};
 
447
static struct __pyx_vtabstruct_6Cython_8Compiler_7Visitor_VisitorTransform *__pyx_vtabptr_6Cython_8Compiler_7Visitor_VisitorTransform;
 
448
 
 
449
 
 
450
/* "Cython/Compiler/Visitor.py":257
 
451
 *         return self._visit(root)
 
452
 * 
 
453
 * class CythonTransform(VisitorTransform):             # <<<<<<<<<<<<<<
 
454
 *     """
 
455
 *     Certain common conventions and utilities for Cython transforms.
 
456
 */
 
457
 
 
458
struct __pyx_vtabstruct_6Cython_8Compiler_7Visitor_CythonTransform {
 
459
  struct __pyx_vtabstruct_6Cython_8Compiler_7Visitor_VisitorTransform __pyx_base;
 
460
};
 
461
static struct __pyx_vtabstruct_6Cython_8Compiler_7Visitor_CythonTransform *__pyx_vtabptr_6Cython_8Compiler_7Visitor_CythonTransform;
 
462
 
 
463
 
 
464
/* "Cython/Compiler/Visitor.py":317
 
465
 * 
 
466
 * 
 
467
 * class EnvTransform(CythonTransform):             # <<<<<<<<<<<<<<
 
468
 *     """
 
469
 *     This transformation keeps a stack of the environments.
 
470
 */
 
471
 
 
472
struct __pyx_vtabstruct_6Cython_8Compiler_7Visitor_EnvTransform {
 
473
  struct __pyx_vtabstruct_6Cython_8Compiler_7Visitor_CythonTransform __pyx_base;
 
474
};
 
475
static struct __pyx_vtabstruct_6Cython_8Compiler_7Visitor_EnvTransform *__pyx_vtabptr_6Cython_8Compiler_7Visitor_EnvTransform;
 
476
 
 
477
 
 
478
/* "Cython/Compiler/Visitor.py":335
 
479
 * 
 
480
 * 
 
481
 * class RecursiveNodeReplacer(VisitorTransform):             # <<<<<<<<<<<<<<
 
482
 *     """
 
483
 *     Recursively replace all occurrences of a node in a subtree by
 
484
 */
 
485
 
 
486
struct __pyx_vtabstruct_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer {
 
487
  struct __pyx_vtabstruct_6Cython_8Compiler_7Visitor_VisitorTransform __pyx_base;
 
488
};
 
489
static struct __pyx_vtabstruct_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer *__pyx_vtabptr_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer;
 
490
 
 
491
 
 
492
/* "Cython/Compiler/Visitor.py":285
 
493
 *         return node
 
494
 * 
 
495
 * class ScopeTrackingTransform(CythonTransform):             # <<<<<<<<<<<<<<
 
496
 *     # Keeps track of type of scopes
 
497
 *     #scope_type: can be either of 'module', 'function', 'cclass', 'pyclass', 'struct'
 
498
 */
 
499
 
 
500
struct __pyx_vtabstruct_6Cython_8Compiler_7Visitor_ScopeTrackingTransform {
 
501
  struct __pyx_vtabstruct_6Cython_8Compiler_7Visitor_CythonTransform __pyx_base;
 
502
  PyObject *(*visit_scope)(struct __pyx_obj_6Cython_8Compiler_7Visitor_ScopeTrackingTransform *, PyObject *, PyObject *);
 
503
};
 
504
static struct __pyx_vtabstruct_6Cython_8Compiler_7Visitor_ScopeTrackingTransform *__pyx_vtabptr_6Cython_8Compiler_7Visitor_ScopeTrackingTransform;
 
505
 
 
506
#ifndef CYTHON_REFNANNY
 
507
  #define CYTHON_REFNANNY 0
 
508
#endif
 
509
 
 
510
#if CYTHON_REFNANNY
 
511
  typedef struct {
 
512
    void (*INCREF)(void*, PyObject*, int);
 
513
    void (*DECREF)(void*, PyObject*, int);
 
514
    void (*GOTREF)(void*, PyObject*, int);
 
515
    void (*GIVEREF)(void*, PyObject*, int);
 
516
    void* (*SetupContext)(const char*, int, const char*);
 
517
    void (*FinishContext)(void**);
 
518
  } __Pyx_RefNannyAPIStruct;
 
519
  static __Pyx_RefNannyAPIStruct *__Pyx_RefNanny = NULL;
 
520
  static __Pyx_RefNannyAPIStruct * __Pyx_RefNannyImportAPI(const char *modname) {
 
521
    PyObject *m = NULL, *p = NULL;
 
522
    void *r = NULL;
 
523
    m = PyImport_ImportModule((char *)modname);
 
524
    if (!m) goto end;
 
525
    p = PyObject_GetAttrString(m, (char *)"RefNannyAPI");
 
526
    if (!p) goto end;
 
527
    r = PyLong_AsVoidPtr(p);
 
528
  end:
 
529
    Py_XDECREF(p);
 
530
    Py_XDECREF(m);
 
531
    return (__Pyx_RefNannyAPIStruct *)r;
 
532
  }
 
533
  #define __Pyx_RefNannySetupContext(name)           void *__pyx_refnanny = __Pyx_RefNanny->SetupContext((name), __LINE__, __FILE__)
 
534
  #define __Pyx_RefNannyFinishContext()           __Pyx_RefNanny->FinishContext(&__pyx_refnanny)
 
535
  #define __Pyx_INCREF(r) __Pyx_RefNanny->INCREF(__pyx_refnanny, (PyObject *)(r), __LINE__)
 
536
  #define __Pyx_DECREF(r) __Pyx_RefNanny->DECREF(__pyx_refnanny, (PyObject *)(r), __LINE__)
 
537
  #define __Pyx_GOTREF(r) __Pyx_RefNanny->GOTREF(__pyx_refnanny, (PyObject *)(r), __LINE__)
 
538
  #define __Pyx_GIVEREF(r) __Pyx_RefNanny->GIVEREF(__pyx_refnanny, (PyObject *)(r), __LINE__)
 
539
  #define __Pyx_XDECREF(r) do { if((r) != NULL) {__Pyx_DECREF(r);} } while(0)
 
540
#else
 
541
  #define __Pyx_RefNannySetupContext(name)
 
542
  #define __Pyx_RefNannyFinishContext()
 
543
  #define __Pyx_INCREF(r) Py_INCREF(r)
 
544
  #define __Pyx_DECREF(r) Py_DECREF(r)
 
545
  #define __Pyx_GOTREF(r)
 
546
  #define __Pyx_GIVEREF(r)
 
547
  #define __Pyx_XDECREF(r) Py_XDECREF(r)
 
548
#endif /* CYTHON_REFNANNY */
 
549
#define __Pyx_XGIVEREF(r) do { if((r) != NULL) {__Pyx_GIVEREF(r);} } while(0)
 
550
#define __Pyx_XGOTREF(r) do { if((r) != NULL) {__Pyx_GOTREF(r);} } while(0)
 
551
 
 
552
static PyObject *__Pyx_GetName(PyObject *dict, PyObject *name); /*proto*/
 
553
 
 
554
static void __Pyx_RaiseArgtupleInvalid(const char* func_name, int exact,
 
555
    Py_ssize_t num_min, Py_ssize_t num_max, Py_ssize_t num_found); /*proto*/
 
556
 
 
557
static CYTHON_INLINE int __Pyx_CheckKeywordStrings(PyObject *kwdict,
 
558
    const char* function_name, int kw_allowed); /*proto*/
 
559
 
 
560
static void __Pyx_RaiseDoubleKeywordsError(
 
561
    const char* func_name, PyObject* kw_name); /*proto*/
 
562
 
 
563
static int __Pyx_ParseOptionalKeywords(PyObject *kwds, PyObject **argnames[],     PyObject *kwds2, PyObject *values[], Py_ssize_t num_pos_args,     const char* function_name); /*proto*/
 
564
 
 
565
 
 
566
static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Generic(PyObject *o, PyObject* j) {
 
567
    PyObject *r;
 
568
    if (!j) return NULL;
 
569
    r = PyObject_GetItem(o, j);
 
570
    Py_DECREF(j);
 
571
    return r;
 
572
}
 
573
 
 
574
 
 
575
#define __Pyx_GetItemInt_List(o, i, size, to_py_func) (((size) <= sizeof(Py_ssize_t)) ? \
 
576
                                                    __Pyx_GetItemInt_List_Fast(o, i) : \
 
577
                                                    __Pyx_GetItemInt_Generic(o, to_py_func(i)))
 
578
 
 
579
static CYTHON_INLINE PyObject *__Pyx_GetItemInt_List_Fast(PyObject *o, Py_ssize_t i) {
 
580
    if (likely(o != Py_None)) {
 
581
        if (likely((0 <= i) & (i < PyList_GET_SIZE(o)))) {
 
582
            PyObject *r = PyList_GET_ITEM(o, i);
 
583
            Py_INCREF(r);
 
584
            return r;
 
585
        }
 
586
        else if ((-PyList_GET_SIZE(o) <= i) & (i < 0)) {
 
587
            PyObject *r = PyList_GET_ITEM(o, PyList_GET_SIZE(o) + i);
 
588
            Py_INCREF(r);
 
589
            return r;
 
590
        }
 
591
    }
 
592
    return __Pyx_GetItemInt_Generic(o, PyInt_FromSsize_t(i));
 
593
}
 
594
 
 
595
#define __Pyx_GetItemInt_Tuple(o, i, size, to_py_func) (((size) <= sizeof(Py_ssize_t)) ? \
 
596
                                                    __Pyx_GetItemInt_Tuple_Fast(o, i) : \
 
597
                                                    __Pyx_GetItemInt_Generic(o, to_py_func(i)))
 
598
 
 
599
static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Tuple_Fast(PyObject *o, Py_ssize_t i) {
 
600
    if (likely(o != Py_None)) {
 
601
        if (likely((0 <= i) & (i < PyTuple_GET_SIZE(o)))) {
 
602
            PyObject *r = PyTuple_GET_ITEM(o, i);
 
603
            Py_INCREF(r);
 
604
            return r;
 
605
        }
 
606
        else if ((-PyTuple_GET_SIZE(o) <= i) & (i < 0)) {
 
607
            PyObject *r = PyTuple_GET_ITEM(o, PyTuple_GET_SIZE(o) + i);
 
608
            Py_INCREF(r);
 
609
            return r;
 
610
        }
 
611
    }
 
612
    return __Pyx_GetItemInt_Generic(o, PyInt_FromSsize_t(i));
 
613
}
 
614
 
 
615
 
 
616
#define __Pyx_GetItemInt(o, i, size, to_py_func) (((size) <= sizeof(Py_ssize_t)) ? \
 
617
                                                    __Pyx_GetItemInt_Fast(o, i) : \
 
618
                                                    __Pyx_GetItemInt_Generic(o, to_py_func(i)))
 
619
 
 
620
static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Fast(PyObject *o, Py_ssize_t i) {
 
621
    PyObject *r;
 
622
    if (PyList_CheckExact(o) && ((0 <= i) & (i < PyList_GET_SIZE(o)))) {
 
623
        r = PyList_GET_ITEM(o, i);
 
624
        Py_INCREF(r);
 
625
    }
 
626
    else if (PyTuple_CheckExact(o) && ((0 <= i) & (i < PyTuple_GET_SIZE(o)))) {
 
627
        r = PyTuple_GET_ITEM(o, i);
 
628
        Py_INCREF(r);
 
629
    }
 
630
    else if (Py_TYPE(o)->tp_as_sequence && Py_TYPE(o)->tp_as_sequence->sq_item && (likely(i >= 0))) {
 
631
        r = PySequence_GetItem(o, i);
 
632
    }
 
633
    else {
 
634
        r = __Pyx_GetItemInt_Generic(o, PyInt_FromSsize_t(i));
 
635
    }
 
636
    return r;
 
637
}
 
638
 
 
639
static CYTHON_INLINE long __Pyx_NegateNonNeg(long b) { return unlikely(b < 0) ? b : !b; }
 
640
static CYTHON_INLINE PyObject* __Pyx_PyBoolOrNull_FromLong(long b) {
 
641
    return unlikely(b < 0) ? NULL : __Pyx_PyBool_FromLong(b);
 
642
}
 
643
 
 
644
static int __Pyx_GetException(PyObject **type, PyObject **value, PyObject **tb); /*proto*/
 
645
 
 
646
static CYTHON_INLINE void __Pyx_RaiseNeedMoreValuesError(Py_ssize_t index);
 
647
 
 
648
static CYTHON_INLINE void __Pyx_RaiseTooManyValuesError(Py_ssize_t expected);
 
649
 
 
650
static PyObject *__Pyx_UnpackItem(PyObject *, Py_ssize_t index); /*proto*/
 
651
static int __Pyx_EndUnpack(PyObject *, Py_ssize_t expected); /*proto*/
 
652
 
 
653
static CYTHON_INLINE void __Pyx_ErrRestore(PyObject *type, PyObject *value, PyObject *tb); /*proto*/
 
654
static CYTHON_INLINE void __Pyx_ErrFetch(PyObject **type, PyObject **value, PyObject **tb); /*proto*/
 
655
 
 
656
static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb); /*proto*/
 
657
 
 
658
static CYTHON_INLINE void __Pyx_RaiseNoneIndexingError(void);
 
659
 
 
660
#if PY_MAJOR_VERSION >= 3
 
661
static PyObject *__Pyx_PyDict_GetItem(PyObject *d, PyObject* key) {
 
662
    PyObject *value;
 
663
    if (unlikely(d == Py_None)) {
 
664
        __Pyx_RaiseNoneIndexingError();
 
665
        return NULL;
 
666
    }
 
667
    value = PyDict_GetItemWithError(d, key);
 
668
    if (unlikely(!value)) {
 
669
        if (!PyErr_Occurred())
 
670
            PyErr_SetObject(PyExc_KeyError, key);
 
671
        return NULL;
 
672
    }
 
673
    Py_INCREF(value);
 
674
    return value;
 
675
}
 
676
#else
 
677
    #define __Pyx_PyDict_GetItem(d, key) PyObject_GetItem(d, key)
 
678
#endif
 
679
 
 
680
static CYTHON_INLINE PyObject* __Pyx_PyObject_Pop(PyObject* L) {
 
681
    PyObject *r, *m;
 
682
#if PY_VERSION_HEX >= 0x02040000
 
683
    if (likely(PyList_CheckExact(L))
 
684
            /* Check that both the size is positive and no reallocation shrinking needs to be done. */
 
685
            && likely(PyList_GET_SIZE(L) > (((PyListObject*)L)->allocated >> 1))) {
 
686
        Py_SIZE(L) -= 1;
 
687
        return PyList_GET_ITEM(L, PyList_GET_SIZE(L));
 
688
    }
 
689
#endif
 
690
    m = __Pyx_GetAttrString(L, "pop");
 
691
    if (!m) return NULL;
 
692
    r = PyObject_CallObject(m, NULL);
 
693
    Py_DECREF(m);
 
694
    return r;
 
695
}
 
696
 
 
697
static CYTHON_INLINE PyObject* __Pyx_PyObject_Append(PyObject* L, PyObject* x) {
 
698
    if (likely(PyList_CheckExact(L))) {
 
699
        if (PyList_Append(L, x) < 0) return NULL;
 
700
        Py_INCREF(Py_None);
 
701
        return Py_None; /* this is just to have an accurate signature */
 
702
    }
 
703
    else {
 
704
        PyObject *r, *m;
 
705
        m = __Pyx_GetAttrString(L, "append");
 
706
        if (!m) return NULL;
 
707
        r = PyObject_CallFunctionObjArgs(m, x, NULL);
 
708
        Py_DECREF(m);
 
709
        return r;
 
710
    }
 
711
}
 
712
 
 
713
static CYTHON_INLINE void __Pyx_RaiseNoneNotIterableError(void);
 
714
 
 
715
static void __Pyx_UnpackTupleError(PyObject *, Py_ssize_t index); /*proto*/
 
716
 
 
717
static CYTHON_INLINE void __Pyx_ExceptionSave(PyObject **type, PyObject **value, PyObject **tb); /*proto*/
 
718
static void __Pyx_ExceptionReset(PyObject *type, PyObject *value, PyObject *tb); /*proto*/
 
719
 
 
720
static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list); /*proto*/
 
721
 
 
722
static PyObject *__Pyx_FindPy2Metaclass(PyObject *bases); /*proto*/
 
723
 
 
724
static PyObject *__Pyx_CreateClass(PyObject *bases, PyObject *dict, PyObject *name,
 
725
                                   PyObject *modname); /*proto*/
 
726
 
 
727
#define __pyx_binding_PyCFunctionType_USED 1
 
728
 
 
729
typedef struct {
 
730
    PyCFunctionObject func;
 
731
} __pyx_binding_PyCFunctionType_object;
 
732
 
 
733
static PyTypeObject __pyx_binding_PyCFunctionType_type;
 
734
static PyTypeObject *__pyx_binding_PyCFunctionType = NULL;
 
735
 
 
736
static PyObject *__pyx_binding_PyCFunctionType_NewEx(PyMethodDef *ml, PyObject *self, PyObject *module); /* proto */
 
737
#define __pyx_binding_PyCFunctionType_New(ml, self) __pyx_binding_PyCFunctionType_NewEx(ml, self, NULL)
 
738
 
 
739
static int __pyx_binding_PyCFunctionType_init(void); /* proto */
 
740
 
 
741
static CYTHON_INLINE PyObject *__Pyx_GetAttr3(PyObject *, PyObject *, PyObject *); /*proto*/
 
742
 
 
743
static int __Pyx_Print(PyObject*, PyObject *, int); /*proto*/
 
744
#if PY_MAJOR_VERSION >= 3
 
745
static PyObject* __pyx_print = 0;
 
746
static PyObject* __pyx_print_kwargs = 0;
 
747
#endif
 
748
 
 
749
static int __Pyx_PrintOne(PyObject* stream, PyObject *o); /*proto*/
 
750
 
 
751
static CYTHON_INLINE unsigned char __Pyx_PyInt_AsUnsignedChar(PyObject *);
 
752
 
 
753
static CYTHON_INLINE unsigned short __Pyx_PyInt_AsUnsignedShort(PyObject *);
 
754
 
 
755
static CYTHON_INLINE unsigned int __Pyx_PyInt_AsUnsignedInt(PyObject *);
 
756
 
 
757
static CYTHON_INLINE char __Pyx_PyInt_AsChar(PyObject *);
 
758
 
 
759
static CYTHON_INLINE short __Pyx_PyInt_AsShort(PyObject *);
 
760
 
 
761
static CYTHON_INLINE int __Pyx_PyInt_AsInt(PyObject *);
 
762
 
 
763
static CYTHON_INLINE signed char __Pyx_PyInt_AsSignedChar(PyObject *);
 
764
 
 
765
static CYTHON_INLINE signed short __Pyx_PyInt_AsSignedShort(PyObject *);
 
766
 
 
767
static CYTHON_INLINE signed int __Pyx_PyInt_AsSignedInt(PyObject *);
 
768
 
 
769
static CYTHON_INLINE int __Pyx_PyInt_AsLongDouble(PyObject *);
 
770
 
 
771
static CYTHON_INLINE unsigned long __Pyx_PyInt_AsUnsignedLong(PyObject *);
 
772
 
 
773
static CYTHON_INLINE unsigned PY_LONG_LONG __Pyx_PyInt_AsUnsignedLongLong(PyObject *);
 
774
 
 
775
static CYTHON_INLINE long __Pyx_PyInt_AsLong(PyObject *);
 
776
 
 
777
static CYTHON_INLINE PY_LONG_LONG __Pyx_PyInt_AsLongLong(PyObject *);
 
778
 
 
779
static CYTHON_INLINE signed long __Pyx_PyInt_AsSignedLong(PyObject *);
 
780
 
 
781
static CYTHON_INLINE signed PY_LONG_LONG __Pyx_PyInt_AsSignedLongLong(PyObject *);
 
782
 
 
783
static int __Pyx_SetVtable(PyObject *dict, void *vtable); /*proto*/
 
784
 
 
785
static void __Pyx_AddTraceback(const char *funcname); /*proto*/
 
786
 
 
787
static int __Pyx_InitStrings(__Pyx_StringTabEntry *t); /*proto*/
 
788
/* Module declarations from cython */
 
789
 
 
790
/* Module declarations from Cython.Compiler.Visitor */
 
791
 
 
792
static PyTypeObject *__pyx_ptype_6Cython_8Compiler_7Visitor_TreeVisitor = 0;
 
793
static PyTypeObject *__pyx_ptype_6Cython_8Compiler_7Visitor_VisitorTransform = 0;
 
794
static PyTypeObject *__pyx_ptype_6Cython_8Compiler_7Visitor_CythonTransform = 0;
 
795
static PyTypeObject *__pyx_ptype_6Cython_8Compiler_7Visitor_ScopeTrackingTransform = 0;
 
796
static PyTypeObject *__pyx_ptype_6Cython_8Compiler_7Visitor_EnvTransform = 0;
 
797
static PyTypeObject *__pyx_ptype_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer = 0;
 
798
#define __Pyx_MODULE_NAME "Cython.Compiler.Visitor"
 
799
static int __pyx_module_is_main_Cython__Compiler__Visitor = 0;
 
800
 
 
801
/* Implementation of Cython.Compiler.Visitor */
 
802
static PyObject *__pyx_builtin_super;
 
803
static PyObject *__pyx_builtin_AttributeError;
 
804
static PyObject *__pyx_builtin_RuntimeError;
 
805
static PyObject *__pyx_builtin_KeyError;
 
806
static PyObject *__pyx_builtin_Exception;
 
807
static PyObject *__pyx_builtin_enumerate;
 
808
static char __pyx_k_1[] = "os.path";
 
809
static char __pyx_k_2[] = "%s:%s:%s";
 
810
static char __pyx_k_5[] = "[...]/%d";
 
811
static char __pyx_k_6[] = "%s = %s";
 
812
static char __pyx_k_7[] = "%s(%s)";
 
813
static char __pyx_k_8[] = ",\n    ";
 
814
static char __pyx_k_10[] = "";
 
815
static char __pyx_k_11[] = "[%d]";
 
816
static char __pyx_k_12[] = "%s.%s%s = %s";
 
817
static char __pyx_k_13[] = "File '%s', line %d, in %s: %s";
 
818
static char __pyx_k_14[] = "\n";
 
819
static char __pyx_k_15[] = "visit_%s";
 
820
static char __pyx_k_16[] = "Visitor %r does not accept object: %s";
 
821
static char __pyx_k_17[] = "debug_no_exception_intercept";
 
822
static char __pyx_k_18[] = "_raise_compiler_error";
 
823
static char __pyx_k_19[] = "Cannot insert list here: %s in %r";
 
824
static char __pyx_k_20[] = "  ";
 
825
static char __pyx_k_21[] = "Parse tree dump at phase '%s'";
 
826
static char __pyx_k_22[] = "(root)";
 
827
static char __pyx_k_23[] = "%s[%d]";
 
828
static char __pyx_k_24[] = "%s- %s: %s";
 
829
static char __pyx_k_25[] = "(none)";
 
830
static char __pyx_k_26[] = "(type=%s, name=\"%s\")";
 
831
static char __pyx_k_27[] = "(name=\"%s\")";
 
832
static char __pyx_k_28[] = "(type=%s)";
 
833
static char __pyx_k_29[] = "/";
 
834
static char __pyx_k_31[] = "\\";
 
835
static char __pyx_k_33[] = "(pos=(%s:%s:%s))";
 
836
static char __pyx_k_34[] = "Cython.Compiler.Visitor";
 
837
static char __pyx_k_35[] = "recursively_replace_node";
 
838
static char __pyx_k_36[] = "Prints a representation of the tree to standard output.\n    Subclass and override repr_of to provide more information\n    about nodes. ";
 
839
static char __pyx_k___[] = "_";
 
840
static char __pyx_k__e[] = "e";
 
841
static char __pyx_k__get[] = "get";
 
842
static char __pyx_k__pos[] = "pos";
 
843
static char __pyx_k__ptr[] = "ptr";
 
844
static char __pyx_k__sys[] = "sys";
 
845
static char __pyx_k__Node[] = "Node";
 
846
static char __pyx_k__join[] = "join";
 
847
static char __pyx_k__name[] = "name";
 
848
static char __pyx_k__node[] = "node";
 
849
static char __pyx_k__path[] = "path";
 
850
static char __pyx_k__root[] = "root";
 
851
static char __pyx_k__self[] = "self";
 
852
static char __pyx_k__sort[] = "sort";
 
853
static char __pyx_k__tree[] = "tree";
 
854
static char __pyx_k__type[] = "type";
 
855
static char __pyx_k__Nodes[] = "Nodes";
 
856
static char __pyx_k__attrs[] = "attrs";
 
857
static char __pyx_k__child[] = "child";
 
858
static char __pyx_k__phase[] = "phase";
 
859
static char __pyx_k__scope[] = "scope";
 
860
static char __pyx_k__split[] = "split";
 
861
static char __pyx_k__stats[] = "stats";
 
862
static char __pyx_k__super[] = "super";
 
863
static char __pyx_k__value[] = "value";
 
864
static char __pyx_k__visit[] = "visit";
 
865
static char __pyx_k__Errors[] = "Errors";
 
866
static char __pyx_k__Naming[] = "Naming";
 
867
static char __pyx_k___visit[] = "_visit";
 
868
static char __pyx_k__append[] = "append";
 
869
static char __pyx_k__cclass[] = "cclass";
 
870
static char __pyx_k__f_code[] = "f_code";
 
871
static char __pyx_k__getmro[] = "getmro";
 
872
static char __pyx_k__indent[] = "indent";
 
873
static char __pyx_k__module[] = "module";
 
874
static char __pyx_k__parent[] = "parent";
 
875
static char __pyx_k__struct[] = "struct";
 
876
static char __pyx_k__DefNode[] = "DefNode";
 
877
static char __pyx_k___indent[] = "_indent";
 
878
static char __pyx_k__co_name[] = "co_name";
 
879
static char __pyx_k__context[] = "context";
 
880
static char __pyx_k__doctest[] = "doctest";
 
881
static char __pyx_k__inspect[] = "inspect";
 
882
static char __pyx_k__pyclass[] = "pyclass";
 
883
static char __pyx_k__repr_of[] = "repr_of";
 
884
static char __pyx_k__tb_next[] = "tb_next";
 
885
static char __pyx_k__testmod[] = "testmod";
 
886
static char __pyx_k__ExprNode[] = "ExprNode";
 
887
static char __pyx_k__KeyError[] = "KeyError";
 
888
static char __pyx_k__NameNode[] = "NameNode";
 
889
static char __pyx_k____call__[] = "__call__";
 
890
static char __pyx_k____dict__[] = "__dict__";
 
891
static char __pyx_k____init__[] = "__init__";
 
892
static char __pyx_k____main__[] = "__main__";
 
893
static char __pyx_k____name__[] = "__name__";
 
894
static char __pyx_k____test__[] = "__test__";
 
895
static char __pyx_k__basename[] = "basename";
 
896
static char __pyx_k__endswith[] = "endswith";
 
897
static char __pyx_k__exc_info[] = "exc_info";
 
898
static char __pyx_k__f_lineno[] = "f_lineno";
 
899
static char __pyx_k__f_locals[] = "f_locals";
 
900
static char __pyx_k__function[] = "function";
 
901
static char __pyx_k__new_node[] = "new_node";
 
902
static char __pyx_k__old_node[] = "old_node";
 
903
static char __pyx_k__subexprs[] = "subexprs";
 
904
static char __pyx_k__tb_frame[] = "tb_frame";
 
905
static char __pyx_k__unindent[] = "unindent";
 
906
static char __pyx_k__Exception[] = "Exception";
 
907
static char __pyx_k__ExprNodes[] = "ExprNodes";
 
908
static char __pyx_k__PrintTree[] = "PrintTree";
 
909
static char __pyx_k____class__[] = "__class__";
 
910
static char __pyx_k__dump_node[] = "dump_node";
 
911
static char __pyx_k__enumerate[] = "enumerate";
 
912
static char __pyx_k__env_stack[] = "env_stack";
 
913
static char __pyx_k__orig_node[] = "orig_node";
 
914
static char __pyx_k__AbortError[] = "AbortError";
 
915
static char __pyx_k__DebugFlags[] = "DebugFlags";
 
916
static char __pyx_k__ModuleNode[] = "ModuleNode";
 
917
static char __pyx_k__directives[] = "directives";
 
918
static char __pyx_k__scope_node[] = "scope_node";
 
919
static char __pyx_k__scope_type[] = "scope_type";
 
920
static char __pyx_k__startswith[] = "startswith";
 
921
static char __pyx_k__visit_Node[] = "visit_Node";
 
922
static char __pyx_k___visitchild[] = "_visitchild";
 
923
static char __pyx_k__access_path[] = "access_path";
 
924
static char __pyx_k__child_attrs[] = "child_attrs";
 
925
static char __pyx_k__co_filename[] = "co_filename";
 
926
static char __pyx_k__cpp_message[] = "cpp_message";
 
927
static char __pyx_k__gil_message[] = "gil_message";
 
928
static char __pyx_k__local_scope[] = "local_scope";
 
929
static char __pyx_k__visit_scope[] = "visit_scope";
 
930
static char __pyx_k__CompileError[] = "CompileError";
 
931
static char __pyx_k__RuntimeError[] = "RuntimeError";
 
932
static char __pyx_k__StatListNode[] = "StatListNode";
 
933
static char __pyx_k__find_handler[] = "find_handler";
 
934
static char __pyx_k__replace_node[] = "replace_node";
 
935
static char __pyx_k__CompilerCrash[] = "CompilerCrash";
 
936
static char __pyx_k__visitchildren[] = "visitchildren";
 
937
static char __pyx_k__AttributeError[] = "AttributeError";
 
938
static char __pyx_k___visitchildren[] = "_visitchildren";
 
939
static char __pyx_k__dispatch_table[] = "dispatch_table";
 
940
static char __pyx_k___find_node_path[] = "_find_node_path";
 
941
static char __pyx_k__ensure_statlist[] = "ensure_statlist";
 
942
static char __pyx_k__get_description[] = "get_description";
 
943
static char __pyx_k__current_directives[] = "current_directives";
 
944
static char __pyx_k__recurse_to_children[] = "recurse_to_children";
 
945
static PyObject *__pyx_n_s_1;
 
946
static PyObject *__pyx_kp_s_10;
 
947
static PyObject *__pyx_kp_u_11;
 
948
static PyObject *__pyx_kp_u_12;
 
949
static PyObject *__pyx_kp_u_13;
 
950
static PyObject *__pyx_kp_u_14;
 
951
static PyObject *__pyx_kp_s_15;
 
952
static PyObject *__pyx_kp_s_16;
 
953
static PyObject *__pyx_n_s_17;
 
954
static PyObject *__pyx_n_s_18;
 
955
static PyObject *__pyx_kp_s_19;
 
956
static PyObject *__pyx_kp_u_2;
 
957
static PyObject *__pyx_kp_s_20;
 
958
static PyObject *__pyx_kp_s_21;
 
959
static PyObject *__pyx_kp_s_22;
 
960
static PyObject *__pyx_kp_s_23;
 
961
static PyObject *__pyx_kp_s_24;
 
962
static PyObject *__pyx_kp_s_25;
 
963
static PyObject *__pyx_kp_s_26;
 
964
static PyObject *__pyx_kp_s_27;
 
965
static PyObject *__pyx_kp_s_28;
 
966
static PyObject *__pyx_kp_s_29;
 
967
static PyObject *__pyx_kp_s_31;
 
968
static PyObject *__pyx_kp_s_33;
 
969
static PyObject *__pyx_n_s_34;
 
970
static PyObject *__pyx_n_s_35;
 
971
static PyObject *__pyx_kp_s_36;
 
972
static PyObject *__pyx_kp_u_5;
 
973
static PyObject *__pyx_kp_u_6;
 
974
static PyObject *__pyx_kp_u_7;
 
975
static PyObject *__pyx_kp_u_8;
 
976
static PyObject *__pyx_n_s__AbortError;
 
977
static PyObject *__pyx_n_s__AttributeError;
 
978
static PyObject *__pyx_n_s__CompileError;
 
979
static PyObject *__pyx_n_s__CompilerCrash;
 
980
static PyObject *__pyx_n_s__DebugFlags;
 
981
static PyObject *__pyx_n_s__DefNode;
 
982
static PyObject *__pyx_n_s__Errors;
 
983
static PyObject *__pyx_n_s__Exception;
 
984
static PyObject *__pyx_n_s__ExprNode;
 
985
static PyObject *__pyx_n_s__ExprNodes;
 
986
static PyObject *__pyx_n_s__KeyError;
 
987
static PyObject *__pyx_n_s__ModuleNode;
 
988
static PyObject *__pyx_n_s__NameNode;
 
989
static PyObject *__pyx_n_s__Naming;
 
990
static PyObject *__pyx_n_s__Node;
 
991
static PyObject *__pyx_n_s__Nodes;
 
992
static PyObject *__pyx_n_s__PrintTree;
 
993
static PyObject *__pyx_n_s__RuntimeError;
 
994
static PyObject *__pyx_n_s__StatListNode;
 
995
static PyObject *__pyx_n_u___;
 
996
static PyObject *__pyx_n_s____call__;
 
997
static PyObject *__pyx_n_s____class__;
 
998
static PyObject *__pyx_n_s____dict__;
 
999
static PyObject *__pyx_n_s____init__;
 
1000
static PyObject *__pyx_n_s____main__;
 
1001
static PyObject *__pyx_n_s____name__;
 
1002
static PyObject *__pyx_n_s____test__;
 
1003
static PyObject *__pyx_n_s___find_node_path;
 
1004
static PyObject *__pyx_n_s___indent;
 
1005
static PyObject *__pyx_n_s___visit;
 
1006
static PyObject *__pyx_n_s___visitchild;
 
1007
static PyObject *__pyx_n_s___visitchildren;
 
1008
static PyObject *__pyx_n_s__access_path;
 
1009
static PyObject *__pyx_n_s__append;
 
1010
static PyObject *__pyx_n_s__attrs;
 
1011
static PyObject *__pyx_n_s__basename;
 
1012
static PyObject *__pyx_n_s__cclass;
 
1013
static PyObject *__pyx_n_s__child;
 
1014
static PyObject *__pyx_n_s__child_attrs;
 
1015
static PyObject *__pyx_n_u__child_attrs;
 
1016
static PyObject *__pyx_n_s__co_filename;
 
1017
static PyObject *__pyx_n_s__co_name;
 
1018
static PyObject *__pyx_n_s__context;
 
1019
static PyObject *__pyx_n_u__cpp_message;
 
1020
static PyObject *__pyx_n_s__current_directives;
 
1021
static PyObject *__pyx_n_s__directives;
 
1022
static PyObject *__pyx_n_s__dispatch_table;
 
1023
static PyObject *__pyx_n_s__doctest;
 
1024
static PyObject *__pyx_n_s__dump_node;
 
1025
static PyObject *__pyx_n_s__e;
 
1026
static PyObject *__pyx_n_s__endswith;
 
1027
static PyObject *__pyx_n_s__ensure_statlist;
 
1028
static PyObject *__pyx_n_s__enumerate;
 
1029
static PyObject *__pyx_n_s__env_stack;
 
1030
static PyObject *__pyx_n_s__exc_info;
 
1031
static PyObject *__pyx_n_s__f_code;
 
1032
static PyObject *__pyx_n_s__f_lineno;
 
1033
static PyObject *__pyx_n_s__f_locals;
 
1034
static PyObject *__pyx_n_s__find_handler;
 
1035
static PyObject *__pyx_n_s__function;
 
1036
static PyObject *__pyx_n_s__get;
 
1037
static PyObject *__pyx_n_s__get_description;
 
1038
static PyObject *__pyx_n_s__getmro;
 
1039
static PyObject *__pyx_n_u__gil_message;
 
1040
static PyObject *__pyx_n_s__indent;
 
1041
static PyObject *__pyx_n_s__inspect;
 
1042
static PyObject *__pyx_n_s__join;
 
1043
static PyObject *__pyx_n_s__local_scope;
 
1044
static PyObject *__pyx_n_s__module;
 
1045
static PyObject *__pyx_n_s__name;
 
1046
static PyObject *__pyx_n_s__new_node;
 
1047
static PyObject *__pyx_n_s__node;
 
1048
static PyObject *__pyx_n_s__old_node;
 
1049
static PyObject *__pyx_n_s__orig_node;
 
1050
static PyObject *__pyx_n_s__parent;
 
1051
static PyObject *__pyx_n_s__path;
 
1052
static PyObject *__pyx_n_s__phase;
 
1053
static PyObject *__pyx_n_s__pos;
 
1054
static PyObject *__pyx_n_u__pos;
 
1055
static PyObject *__pyx_n_s__ptr;
 
1056
static PyObject *__pyx_n_s__pyclass;
 
1057
static PyObject *__pyx_n_s__recurse_to_children;
 
1058
static PyObject *__pyx_n_s__replace_node;
 
1059
static PyObject *__pyx_n_s__repr_of;
 
1060
static PyObject *__pyx_n_s__root;
 
1061
static PyObject *__pyx_n_s__scope;
 
1062
static PyObject *__pyx_n_s__scope_node;
 
1063
static PyObject *__pyx_n_s__scope_type;
 
1064
static PyObject *__pyx_n_s__self;
 
1065
static PyObject *__pyx_n_u__self;
 
1066
static PyObject *__pyx_n_s__sort;
 
1067
static PyObject *__pyx_n_s__split;
 
1068
static PyObject *__pyx_n_s__startswith;
 
1069
static PyObject *__pyx_n_s__stats;
 
1070
static PyObject *__pyx_n_s__struct;
 
1071
static PyObject *__pyx_n_u__subexprs;
 
1072
static PyObject *__pyx_n_s__super;
 
1073
static PyObject *__pyx_n_s__sys;
 
1074
static PyObject *__pyx_n_s__tb_frame;
 
1075
static PyObject *__pyx_n_s__tb_next;
 
1076
static PyObject *__pyx_n_s__testmod;
 
1077
static PyObject *__pyx_n_s__tree;
 
1078
static PyObject *__pyx_n_s__type;
 
1079
static PyObject *__pyx_n_s__unindent;
 
1080
static PyObject *__pyx_n_s__value;
 
1081
static PyObject *__pyx_n_s__visit;
 
1082
static PyObject *__pyx_n_s__visit_Node;
 
1083
static PyObject *__pyx_n_s__visit_scope;
 
1084
static PyObject *__pyx_n_s__visitchildren;
 
1085
static PyObject *__pyx_int_0;
 
1086
static PyObject *__pyx_k_tuple_3;
 
1087
static PyObject *__pyx_k_tuple_4;
 
1088
static PyObject *__pyx_k_tuple_9;
 
1089
static PyObject *__pyx_k_tuple_30;
 
1090
static PyObject *__pyx_k_tuple_32;
 
1091
 
 
1092
/* "Cython/Compiler/Visitor.py":57
 
1093
 *     out 0
 
1094
 *     """
 
1095
 *     def __init__(self):             # <<<<<<<<<<<<<<
 
1096
 *         super(TreeVisitor, self).__init__()
 
1097
 *         self.dispatch_table = {}
 
1098
 */
 
1099
 
 
1100
static int __pyx_pf_6Cython_8Compiler_7Visitor_11TreeVisitor___init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
 
1101
static int __pyx_pf_6Cython_8Compiler_7Visitor_11TreeVisitor___init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
 
1102
  int __pyx_r;
 
1103
  PyObject *__pyx_t_1 = NULL;
 
1104
  PyObject *__pyx_t_2 = NULL;
 
1105
  __Pyx_RefNannySetupContext("__init__");
 
1106
  if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) {
 
1107
    __Pyx_RaiseArgtupleInvalid("__init__", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return -1;}
 
1108
  if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__init__", 0))) return -1;
 
1109
 
 
1110
  /* "Cython/Compiler/Visitor.py":58
 
1111
 *     """
 
1112
 *     def __init__(self):
 
1113
 *         super(TreeVisitor, self).__init__()             # <<<<<<<<<<<<<<
 
1114
 *         self.dispatch_table = {}
 
1115
 *         self.access_path = []
 
1116
 */
 
1117
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 58; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
1118
  __Pyx_GOTREF(((PyObject *)__pyx_t_1));
 
1119
  __Pyx_INCREF(((PyObject *)((PyObject*)__pyx_ptype_6Cython_8Compiler_7Visitor_TreeVisitor)));
 
1120
  PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)((PyObject*)__pyx_ptype_6Cython_8Compiler_7Visitor_TreeVisitor)));
 
1121
  __Pyx_GIVEREF(((PyObject *)((PyObject*)__pyx_ptype_6Cython_8Compiler_7Visitor_TreeVisitor)));
 
1122
  __Pyx_INCREF(__pyx_v_self);
 
1123
  PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_self);
 
1124
  __Pyx_GIVEREF(__pyx_v_self);
 
1125
  __pyx_t_2 = PyObject_Call(__pyx_builtin_super, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 58; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
1126
  __Pyx_GOTREF(__pyx_t_2);
 
1127
  __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
 
1128
  __pyx_t_1 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s____init__); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 58; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
1129
  __Pyx_GOTREF(__pyx_t_1);
 
1130
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 
1131
  __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 58; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
1132
  __Pyx_GOTREF(__pyx_t_2);
 
1133
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
1134
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 
1135
 
 
1136
  /* "Cython/Compiler/Visitor.py":59
 
1137
 *     def __init__(self):
 
1138
 *         super(TreeVisitor, self).__init__()
 
1139
 *         self.dispatch_table = {}             # <<<<<<<<<<<<<<
 
1140
 *         self.access_path = []
 
1141
 * 
 
1142
 */
 
1143
  __pyx_t_2 = PyDict_New(); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 59; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
1144
  __Pyx_GOTREF(((PyObject *)__pyx_t_2));
 
1145
  __Pyx_GIVEREF(((PyObject *)__pyx_t_2));
 
1146
  __Pyx_GOTREF(((struct __pyx_obj_6Cython_8Compiler_7Visitor_TreeVisitor *)__pyx_v_self)->dispatch_table);
 
1147
  __Pyx_DECREF(((PyObject *)((struct __pyx_obj_6Cython_8Compiler_7Visitor_TreeVisitor *)__pyx_v_self)->dispatch_table));
 
1148
  ((struct __pyx_obj_6Cython_8Compiler_7Visitor_TreeVisitor *)__pyx_v_self)->dispatch_table = __pyx_t_2;
 
1149
  __pyx_t_2 = 0;
 
1150
 
 
1151
  /* "Cython/Compiler/Visitor.py":60
 
1152
 *         super(TreeVisitor, self).__init__()
 
1153
 *         self.dispatch_table = {}
 
1154
 *         self.access_path = []             # <<<<<<<<<<<<<<
 
1155
 * 
 
1156
 *     def dump_node(self, node, indent=0):
 
1157
 */
 
1158
  __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 60; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
1159
  __Pyx_GOTREF(((PyObject *)__pyx_t_2));
 
1160
  __Pyx_GIVEREF(((PyObject *)__pyx_t_2));
 
1161
  __Pyx_GOTREF(((struct __pyx_obj_6Cython_8Compiler_7Visitor_TreeVisitor *)__pyx_v_self)->access_path);
 
1162
  __Pyx_DECREF(((PyObject *)((struct __pyx_obj_6Cython_8Compiler_7Visitor_TreeVisitor *)__pyx_v_self)->access_path));
 
1163
  ((struct __pyx_obj_6Cython_8Compiler_7Visitor_TreeVisitor *)__pyx_v_self)->access_path = __pyx_t_2;
 
1164
  __pyx_t_2 = 0;
 
1165
 
 
1166
  __pyx_r = 0;
 
1167
  goto __pyx_L0;
 
1168
  __pyx_L1_error:;
 
1169
  __Pyx_XDECREF(__pyx_t_1);
 
1170
  __Pyx_XDECREF(__pyx_t_2);
 
1171
  __Pyx_AddTraceback("Cython.Compiler.Visitor.TreeVisitor.__init__");
 
1172
  __pyx_r = -1;
 
1173
  __pyx_L0:;
 
1174
  __Pyx_RefNannyFinishContext();
 
1175
  return __pyx_r;
 
1176
}
 
1177
 
 
1178
/* "Cython/Compiler/Visitor.py":62
 
1179
 *         self.access_path = []
 
1180
 * 
 
1181
 *     def dump_node(self, node, indent=0):             # <<<<<<<<<<<<<<
 
1182
 *         ignored = list(node.child_attrs) + [u'child_attrs', u'pos',
 
1183
 *                                             u'gil_message', u'cpp_message',
 
1184
 */
 
1185
 
 
1186
static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_11TreeVisitor_1dump_node(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
 
1187
static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_11TreeVisitor_1dump_node(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
 
1188
  PyObject *__pyx_v_node = 0;
 
1189
  PyObject *__pyx_v_indent = 0;
 
1190
  PyObject *__pyx_v_ignored;
 
1191
  PyObject *__pyx_v_values;
 
1192
  PyObject *__pyx_v_pos;
 
1193
  PyObject *__pyx_v_source;
 
1194
  PyObject *__pyx_v_os;
 
1195
  PyObject *__pyx_v_attribute_names;
 
1196
  PyObject *__pyx_v_attr;
 
1197
  PyObject *__pyx_v_value;
 
1198
  PyObject *__pyx_r = NULL;
 
1199
  PyObject *__pyx_t_1 = NULL;
 
1200
  PyObject *__pyx_t_2 = NULL;
 
1201
  PyObject *__pyx_t_3 = NULL;
 
1202
  int __pyx_t_4;
 
1203
  int __pyx_t_5;
 
1204
  Py_ssize_t __pyx_t_6;
 
1205
  int __pyx_t_7;
 
1206
  int __pyx_t_8;
 
1207
  PyObject *__pyx_t_9 = NULL;
 
1208
  Py_ssize_t __pyx_t_10;
 
1209
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__node,&__pyx_n_s__indent,0};
 
1210
  __Pyx_RefNannySetupContext("dump_node");
 
1211
  if (unlikely(__pyx_kwds)) {
 
1212
    Py_ssize_t kw_args = PyDict_Size(__pyx_kwds);
 
1213
    PyObject* values[2] = {0,0};
 
1214
    values[1] = ((PyObject *)__pyx_int_0);
 
1215
    switch (PyTuple_GET_SIZE(__pyx_args)) {
 
1216
      case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
 
1217
      case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
 
1218
      case  0: break;
 
1219
      default: goto __pyx_L5_argtuple_error;
 
1220
    }
 
1221
    switch (PyTuple_GET_SIZE(__pyx_args)) {
 
1222
      case  0:
 
1223
      values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__node);
 
1224
      if (likely(values[0])) kw_args--;
 
1225
      else goto __pyx_L5_argtuple_error;
 
1226
      case  1:
 
1227
      if (kw_args > 0) {
 
1228
        PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__indent);
 
1229
        if (value) { values[1] = value; kw_args--; }
 
1230
      }
 
1231
    }
 
1232
    if (unlikely(kw_args > 0)) {
 
1233
      if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "dump_node") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 62; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 
1234
    }
 
1235
    __pyx_v_node = values[0];
 
1236
    __pyx_v_indent = values[1];
 
1237
  } else {
 
1238
    __pyx_v_indent = ((PyObject *)__pyx_int_0);
 
1239
    switch (PyTuple_GET_SIZE(__pyx_args)) {
 
1240
      case  2: __pyx_v_indent = PyTuple_GET_ITEM(__pyx_args, 1);
 
1241
      case  1: __pyx_v_node = PyTuple_GET_ITEM(__pyx_args, 0);
 
1242
      break;
 
1243
      default: goto __pyx_L5_argtuple_error;
 
1244
    }
 
1245
  }
 
1246
  goto __pyx_L4_argument_unpacking_done;
 
1247
  __pyx_L5_argtuple_error:;
 
1248
  __Pyx_RaiseArgtupleInvalid("dump_node", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 62; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 
1249
  __pyx_L3_error:;
 
1250
  __Pyx_AddTraceback("Cython.Compiler.Visitor.TreeVisitor.dump_node");
 
1251
  __Pyx_RefNannyFinishContext();
 
1252
  return NULL;
 
1253
  __pyx_L4_argument_unpacking_done:;
 
1254
  __pyx_v_ignored = ((PyObject*)Py_None); __Pyx_INCREF(Py_None);
 
1255
  __pyx_v_values = ((PyObject*)Py_None); __Pyx_INCREF(Py_None);
 
1256
  __pyx_v_pos = Py_None; __Pyx_INCREF(Py_None);
 
1257
  __pyx_v_source = Py_None; __Pyx_INCREF(Py_None);
 
1258
  __pyx_v_os = Py_None; __Pyx_INCREF(Py_None);
 
1259
  __pyx_v_attribute_names = Py_None; __Pyx_INCREF(Py_None);
 
1260
  __pyx_v_attr = Py_None; __Pyx_INCREF(Py_None);
 
1261
  __pyx_v_value = Py_None; __Pyx_INCREF(Py_None);
 
1262
 
 
1263
  /* "Cython/Compiler/Visitor.py":63
 
1264
 * 
 
1265
 *     def dump_node(self, node, indent=0):
 
1266
 *         ignored = list(node.child_attrs) + [u'child_attrs', u'pos',             # <<<<<<<<<<<<<<
 
1267
 *                                             u'gil_message', u'cpp_message',
 
1268
 *                                             u'subexprs']
 
1269
 */
 
1270
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_node, __pyx_n_s__child_attrs); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 63; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
1271
  __Pyx_GOTREF(__pyx_t_1);
 
1272
  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 63; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
1273
  __Pyx_GOTREF(((PyObject *)__pyx_t_2));
 
1274
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
 
1275
  __Pyx_GIVEREF(__pyx_t_1);
 
1276
  __pyx_t_1 = 0;
 
1277
  __pyx_t_1 = PyObject_Call(((PyObject *)((PyObject*)(&PyList_Type))), ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 63; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
1278
  __Pyx_GOTREF(__pyx_t_1);
 
1279
  __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
 
1280
  __pyx_t_2 = PyList_New(5); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 63; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
1281
  __Pyx_GOTREF(((PyObject *)__pyx_t_2));
 
1282
  __Pyx_INCREF(((PyObject *)__pyx_n_u__child_attrs));
 
1283
  PyList_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_n_u__child_attrs));
 
1284
  __Pyx_GIVEREF(((PyObject *)__pyx_n_u__child_attrs));
 
1285
  __Pyx_INCREF(((PyObject *)__pyx_n_u__pos));
 
1286
  PyList_SET_ITEM(__pyx_t_2, 1, ((PyObject *)__pyx_n_u__pos));
 
1287
  __Pyx_GIVEREF(((PyObject *)__pyx_n_u__pos));
 
1288
  __Pyx_INCREF(((PyObject *)__pyx_n_u__gil_message));
 
1289
  PyList_SET_ITEM(__pyx_t_2, 2, ((PyObject *)__pyx_n_u__gil_message));
 
1290
  __Pyx_GIVEREF(((PyObject *)__pyx_n_u__gil_message));
 
1291
  __Pyx_INCREF(((PyObject *)__pyx_n_u__cpp_message));
 
1292
  PyList_SET_ITEM(__pyx_t_2, 3, ((PyObject *)__pyx_n_u__cpp_message));
 
1293
  __Pyx_GIVEREF(((PyObject *)__pyx_n_u__cpp_message));
 
1294
  __Pyx_INCREF(((PyObject *)__pyx_n_u__subexprs));
 
1295
  PyList_SET_ITEM(__pyx_t_2, 4, ((PyObject *)__pyx_n_u__subexprs));
 
1296
  __Pyx_GIVEREF(((PyObject *)__pyx_n_u__subexprs));
 
1297
  __pyx_t_3 = PyNumber_Add(__pyx_t_1, ((PyObject *)__pyx_t_2)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 63; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
1298
  __Pyx_GOTREF(((PyObject *)__pyx_t_3));
 
1299
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
1300
  __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
 
1301
  __Pyx_DECREF(((PyObject *)__pyx_v_ignored));
 
1302
  __pyx_v_ignored = __pyx_t_3;
 
1303
  __pyx_t_3 = 0;
 
1304
 
 
1305
  /* "Cython/Compiler/Visitor.py":66
 
1306
 *                                             u'gil_message', u'cpp_message',
 
1307
 *                                             u'subexprs']
 
1308
 *         values = []             # <<<<<<<<<<<<<<
 
1309
 *         pos = node.pos
 
1310
 *         if pos:
 
1311
 */
 
1312
  __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 66; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
1313
  __Pyx_GOTREF(((PyObject *)__pyx_t_3));
 
1314
  __Pyx_DECREF(((PyObject *)__pyx_v_values));
 
1315
  __pyx_v_values = __pyx_t_3;
 
1316
  __pyx_t_3 = 0;
 
1317
 
 
1318
  /* "Cython/Compiler/Visitor.py":67
 
1319
 *                                             u'subexprs']
 
1320
 *         values = []
 
1321
 *         pos = node.pos             # <<<<<<<<<<<<<<
 
1322
 *         if pos:
 
1323
 *             source = pos[0]
 
1324
 */
 
1325
  __pyx_t_3 = PyObject_GetAttr(__pyx_v_node, __pyx_n_s__pos); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 67; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
1326
  __Pyx_GOTREF(__pyx_t_3);
 
1327
  __Pyx_DECREF(__pyx_v_pos);
 
1328
  __pyx_v_pos = __pyx_t_3;
 
1329
  __pyx_t_3 = 0;
 
1330
 
 
1331
  /* "Cython/Compiler/Visitor.py":68
 
1332
 *         values = []
 
1333
 *         pos = node.pos
 
1334
 *         if pos:             # <<<<<<<<<<<<<<
 
1335
 *             source = pos[0]
 
1336
 *             if source:
 
1337
 */
 
1338
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_pos); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 68; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
1339
  if (__pyx_t_4) {
 
1340
 
 
1341
    /* "Cython/Compiler/Visitor.py":69
 
1342
 *         pos = node.pos
 
1343
 *         if pos:
 
1344
 *             source = pos[0]             # <<<<<<<<<<<<<<
 
1345
 *             if source:
 
1346
 *                 import os.path
 
1347
 */
 
1348
    __pyx_t_3 = __Pyx_GetItemInt(__pyx_v_pos, 0, sizeof(long), PyInt_FromLong); if (!__pyx_t_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 69; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
1349
    __Pyx_GOTREF(__pyx_t_3);
 
1350
    __Pyx_DECREF(__pyx_v_source);
 
1351
    __pyx_v_source = __pyx_t_3;
 
1352
    __pyx_t_3 = 0;
 
1353
 
 
1354
    /* "Cython/Compiler/Visitor.py":70
 
1355
 *         if pos:
 
1356
 *             source = pos[0]
 
1357
 *             if source:             # <<<<<<<<<<<<<<
 
1358
 *                 import os.path
 
1359
 *                 source = os.path.basename(source.get_description())
 
1360
 */
 
1361
    __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_source); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 70; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
1362
    if (__pyx_t_4) {
 
1363
 
 
1364
      /* "Cython/Compiler/Visitor.py":71
 
1365
 *             source = pos[0]
 
1366
 *             if source:
 
1367
 *                 import os.path             # <<<<<<<<<<<<<<
 
1368
 *                 source = os.path.basename(source.get_description())
 
1369
 *             values.append(u'%s:%s:%s' % (source, pos[1], pos[2]))
 
1370
 */
 
1371
      __pyx_t_3 = __Pyx_Import(((PyObject *)__pyx_n_s_1), 0); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 71; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
1372
      __Pyx_GOTREF(__pyx_t_3);
 
1373
      __Pyx_DECREF(__pyx_v_os);
 
1374
      __pyx_v_os = __pyx_t_3;
 
1375
      __pyx_t_3 = 0;
 
1376
 
 
1377
      /* "Cython/Compiler/Visitor.py":72
 
1378
 *             if source:
 
1379
 *                 import os.path
 
1380
 *                 source = os.path.basename(source.get_description())             # <<<<<<<<<<<<<<
 
1381
 *             values.append(u'%s:%s:%s' % (source, pos[1], pos[2]))
 
1382
 *         attribute_names = dir(node)
 
1383
 */
 
1384
      __pyx_t_3 = PyObject_GetAttr(__pyx_v_os, __pyx_n_s__path); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 72; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
1385
      __Pyx_GOTREF(__pyx_t_3);
 
1386
      __pyx_t_2 = PyObject_GetAttr(__pyx_t_3, __pyx_n_s__basename); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 72; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
1387
      __Pyx_GOTREF(__pyx_t_2);
 
1388
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 
1389
      __pyx_t_3 = PyObject_GetAttr(__pyx_v_source, __pyx_n_s__get_description); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 72; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
1390
      __Pyx_GOTREF(__pyx_t_3);
 
1391
      __pyx_t_1 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 72; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
1392
      __Pyx_GOTREF(__pyx_t_1);
 
1393
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 
1394
      __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 72; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
1395
      __Pyx_GOTREF(((PyObject *)__pyx_t_3));
 
1396
      PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
 
1397
      __Pyx_GIVEREF(__pyx_t_1);
 
1398
      __pyx_t_1 = 0;
 
1399
      __pyx_t_1 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 72; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
1400
      __Pyx_GOTREF(__pyx_t_1);
 
1401
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 
1402
      __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
 
1403
      __Pyx_DECREF(__pyx_v_source);
 
1404
      __pyx_v_source = __pyx_t_1;
 
1405
      __pyx_t_1 = 0;
 
1406
      goto __pyx_L7;
 
1407
    }
 
1408
    __pyx_L7:;
 
1409
 
 
1410
    /* "Cython/Compiler/Visitor.py":73
 
1411
 *                 import os.path
 
1412
 *                 source = os.path.basename(source.get_description())
 
1413
 *             values.append(u'%s:%s:%s' % (source, pos[1], pos[2]))             # <<<<<<<<<<<<<<
 
1414
 *         attribute_names = dir(node)
 
1415
 *         attribute_names.sort()
 
1416
 */
 
1417
    if (unlikely(__pyx_v_values == Py_None)) {
 
1418
      PyErr_SetString(PyExc_AttributeError, "'NoneType' object has no attribute 'append'"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 73; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 
 
1419
    }
 
1420
    __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_pos, 1, sizeof(long), PyInt_FromLong); if (!__pyx_t_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 73; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
1421
    __Pyx_GOTREF(__pyx_t_1);
 
1422
    __pyx_t_3 = __Pyx_GetItemInt(__pyx_v_pos, 2, sizeof(long), PyInt_FromLong); if (!__pyx_t_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 73; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
1423
    __Pyx_GOTREF(__pyx_t_3);
 
1424
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 73; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
1425
    __Pyx_GOTREF(((PyObject *)__pyx_t_2));
 
1426
    __Pyx_INCREF(__pyx_v_source);
 
1427
    PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_source);
 
1428
    __Pyx_GIVEREF(__pyx_v_source);
 
1429
    PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_1);
 
1430
    __Pyx_GIVEREF(__pyx_t_1);
 
1431
    PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_t_3);
 
1432
    __Pyx_GIVEREF(__pyx_t_3);
 
1433
    __pyx_t_1 = 0;
 
1434
    __pyx_t_3 = 0;
 
1435
    __pyx_t_3 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_2), ((PyObject *)__pyx_t_2)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 73; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
1436
    __Pyx_GOTREF(((PyObject *)__pyx_t_3));
 
1437
    __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
 
1438
    __pyx_t_5 = PyList_Append(__pyx_v_values, ((PyObject *)__pyx_t_3)); if (unlikely(__pyx_t_5 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 73; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
1439
    __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
 
1440
    goto __pyx_L6;
 
1441
  }
 
1442
  __pyx_L6:;
 
1443
 
 
1444
  /* "Cython/Compiler/Visitor.py":74
 
1445
 *                 source = os.path.basename(source.get_description())
 
1446
 *             values.append(u'%s:%s:%s' % (source, pos[1], pos[2]))
 
1447
 *         attribute_names = dir(node)             # <<<<<<<<<<<<<<
 
1448
 *         attribute_names.sort()
 
1449
 *         for attr in attribute_names:
 
1450
 */
 
1451
  __pyx_t_3 = __pyx_v_node;
 
1452
  __Pyx_INCREF(__pyx_t_3);
 
1453
  __pyx_t_2 = PyObject_Dir(__pyx_t_3); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 74; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
1454
  __Pyx_GOTREF(__pyx_t_2);
 
1455
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 
1456
  __Pyx_DECREF(__pyx_v_attribute_names);
 
1457
  __pyx_v_attribute_names = __pyx_t_2;
 
1458
  __pyx_t_2 = 0;
 
1459
 
 
1460
  /* "Cython/Compiler/Visitor.py":75
 
1461
 *             values.append(u'%s:%s:%s' % (source, pos[1], pos[2]))
 
1462
 *         attribute_names = dir(node)
 
1463
 *         attribute_names.sort()             # <<<<<<<<<<<<<<
 
1464
 *         for attr in attribute_names:
 
1465
 *             if attr in ignored:
 
1466
 */
 
1467
  __pyx_t_2 = PyObject_GetAttr(__pyx_v_attribute_names, __pyx_n_s__sort); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 75; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
1468
  __Pyx_GOTREF(__pyx_t_2);
 
1469
  __pyx_t_3 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 75; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
1470
  __Pyx_GOTREF(__pyx_t_3);
 
1471
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 
1472
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 
1473
 
 
1474
  /* "Cython/Compiler/Visitor.py":76
 
1475
 *         attribute_names = dir(node)
 
1476
 *         attribute_names.sort()
 
1477
 *         for attr in attribute_names:             # <<<<<<<<<<<<<<
 
1478
 *             if attr in ignored:
 
1479
 *                 continue
 
1480
 */
 
1481
  if (PyList_CheckExact(__pyx_v_attribute_names) || PyTuple_CheckExact(__pyx_v_attribute_names)) {
 
1482
    __pyx_t_6 = 0; __pyx_t_3 = __pyx_v_attribute_names; __Pyx_INCREF(__pyx_t_3);
 
1483
  } else {
 
1484
    __pyx_t_6 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_v_attribute_names); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 76; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
1485
    __Pyx_GOTREF(__pyx_t_3);
 
1486
  }
 
1487
  for (;;) {
 
1488
    if (likely(PyList_CheckExact(__pyx_t_3))) {
 
1489
      if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_3)) break;
 
1490
      __pyx_t_2 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_6); __Pyx_INCREF(__pyx_t_2); __pyx_t_6++;
 
1491
    } else if (likely(PyTuple_CheckExact(__pyx_t_3))) {
 
1492
      if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_3)) break;
 
1493
      __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_6); __Pyx_INCREF(__pyx_t_2); __pyx_t_6++;
 
1494
    } else {
 
1495
      __pyx_t_2 = PyIter_Next(__pyx_t_3);
 
1496
      if (!__pyx_t_2) {
 
1497
        if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 76; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
1498
        break;
 
1499
      }
 
1500
      __Pyx_GOTREF(__pyx_t_2);
 
1501
    }
 
1502
    __Pyx_DECREF(__pyx_v_attr);
 
1503
    __pyx_v_attr = __pyx_t_2;
 
1504
    __pyx_t_2 = 0;
 
1505
 
 
1506
    /* "Cython/Compiler/Visitor.py":77
 
1507
 *         attribute_names.sort()
 
1508
 *         for attr in attribute_names:
 
1509
 *             if attr in ignored:             # <<<<<<<<<<<<<<
 
1510
 *                 continue
 
1511
 *             if attr.startswith(u'_') or attr.endswith(u'_'):
 
1512
 */
 
1513
    __pyx_t_4 = ((PySequence_Contains(((PyObject *)__pyx_v_ignored), __pyx_v_attr))); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 77; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
1514
    if (__pyx_t_4) {
 
1515
 
 
1516
      /* "Cython/Compiler/Visitor.py":78
 
1517
 *         for attr in attribute_names:
 
1518
 *             if attr in ignored:
 
1519
 *                 continue             # <<<<<<<<<<<<<<
 
1520
 *             if attr.startswith(u'_') or attr.endswith(u'_'):
 
1521
 *                 continue
 
1522
 */
 
1523
      goto __pyx_L8_continue;
 
1524
      goto __pyx_L10;
 
1525
    }
 
1526
    __pyx_L10:;
 
1527
 
 
1528
    /* "Cython/Compiler/Visitor.py":79
 
1529
 *             if attr in ignored:
 
1530
 *                 continue
 
1531
 *             if attr.startswith(u'_') or attr.endswith(u'_'):             # <<<<<<<<<<<<<<
 
1532
 *                 continue
 
1533
 *             try:
 
1534
 */
 
1535
    __pyx_t_2 = PyObject_GetAttr(__pyx_v_attr, __pyx_n_s__startswith); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 79; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
1536
    __Pyx_GOTREF(__pyx_t_2);
 
1537
    __pyx_t_1 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_k_tuple_3), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 79; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
1538
    __Pyx_GOTREF(__pyx_t_1);
 
1539
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 
1540
    __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 79; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
1541
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
1542
    if (!__pyx_t_4) {
 
1543
      __pyx_t_1 = PyObject_GetAttr(__pyx_v_attr, __pyx_n_s__endswith); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 79; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
1544
      __Pyx_GOTREF(__pyx_t_1);
 
1545
      __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_k_tuple_4), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 79; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
1546
      __Pyx_GOTREF(__pyx_t_2);
 
1547
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
1548
      __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_7 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 79; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
1549
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 
1550
      __pyx_t_8 = __pyx_t_7;
 
1551
    } else {
 
1552
      __pyx_t_8 = __pyx_t_4;
 
1553
    }
 
1554
    if (__pyx_t_8) {
 
1555
 
 
1556
      /* "Cython/Compiler/Visitor.py":80
 
1557
 *                 continue
 
1558
 *             if attr.startswith(u'_') or attr.endswith(u'_'):
 
1559
 *                 continue             # <<<<<<<<<<<<<<
 
1560
 *             try:
 
1561
 *                 value = getattr(node, attr)
 
1562
 */
 
1563
      goto __pyx_L8_continue;
 
1564
      goto __pyx_L11;
 
1565
    }
 
1566
    __pyx_L11:;
 
1567
 
 
1568
    /* "Cython/Compiler/Visitor.py":81
 
1569
 *             if attr.startswith(u'_') or attr.endswith(u'_'):
 
1570
 *                 continue
 
1571
 *             try:             # <<<<<<<<<<<<<<
 
1572
 *                 value = getattr(node, attr)
 
1573
 *             except AttributeError:
 
1574
 */
 
1575
    {
 
1576
      PyObject *__pyx_save_exc_type, *__pyx_save_exc_value, *__pyx_save_exc_tb;
 
1577
      __Pyx_ExceptionSave(&__pyx_save_exc_type, &__pyx_save_exc_value, &__pyx_save_exc_tb);
 
1578
      __Pyx_XGOTREF(__pyx_save_exc_type);
 
1579
      __Pyx_XGOTREF(__pyx_save_exc_value);
 
1580
      __Pyx_XGOTREF(__pyx_save_exc_tb);
 
1581
      /*try:*/ {
 
1582
 
 
1583
        /* "Cython/Compiler/Visitor.py":82
 
1584
 *                 continue
 
1585
 *             try:
 
1586
 *                 value = getattr(node, attr)             # <<<<<<<<<<<<<<
 
1587
 *             except AttributeError:
 
1588
 *                 continue
 
1589
 */
 
1590
        __pyx_t_2 = __pyx_v_node;
 
1591
        __Pyx_INCREF(__pyx_t_2);
 
1592
        __pyx_t_1 = PyObject_GetAttr(__pyx_t_2, __pyx_v_attr); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 82; __pyx_clineno = __LINE__; goto __pyx_L12_error;}
 
1593
        __Pyx_GOTREF(__pyx_t_1);
 
1594
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 
1595
        __Pyx_DECREF(__pyx_v_value);
 
1596
        __pyx_v_value = __pyx_t_1;
 
1597
        __pyx_t_1 = 0;
 
1598
      }
 
1599
      __Pyx_XDECREF(__pyx_save_exc_type); __pyx_save_exc_type = 0;
 
1600
      __Pyx_XDECREF(__pyx_save_exc_value); __pyx_save_exc_value = 0;
 
1601
      __Pyx_XDECREF(__pyx_save_exc_tb); __pyx_save_exc_tb = 0;
 
1602
      goto __pyx_L19_try_end;
 
1603
      __pyx_L12_error:;
 
1604
      __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
 
1605
      __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
 
1606
 
 
1607
      /* "Cython/Compiler/Visitor.py":83
 
1608
 *             try:
 
1609
 *                 value = getattr(node, attr)
 
1610
 *             except AttributeError:             # <<<<<<<<<<<<<<
 
1611
 *                 continue
 
1612
 *             if value is None or value == 0:
 
1613
 */
 
1614
      __pyx_t_5 = PyErr_ExceptionMatches(__pyx_builtin_AttributeError);
 
1615
      if (__pyx_t_5) {
 
1616
        __Pyx_AddTraceback("Cython.Compiler.Visitor.TreeVisitor.dump_node");
 
1617
        if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_2, &__pyx_t_9) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 83; __pyx_clineno = __LINE__; goto __pyx_L14_except_error;}
 
1618
        __Pyx_GOTREF(__pyx_t_1);
 
1619
        __Pyx_GOTREF(__pyx_t_2);
 
1620
        __Pyx_GOTREF(__pyx_t_9);
 
1621
 
 
1622
        /* "Cython/Compiler/Visitor.py":84
 
1623
 *                 value = getattr(node, attr)
 
1624
 *             except AttributeError:
 
1625
 *                 continue             # <<<<<<<<<<<<<<
 
1626
 *             if value is None or value == 0:
 
1627
 *                 continue
 
1628
 */
 
1629
        goto __pyx_L21_except_continue;
 
1630
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
1631
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 
1632
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
 
1633
        goto __pyx_L13_exception_handled;
 
1634
        __pyx_L21_except_continue:;
 
1635
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
1636
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 
1637
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
 
1638
        goto __pyx_L18_try_continue;
 
1639
      }
 
1640
      __pyx_L14_except_error:;
 
1641
      __Pyx_XGIVEREF(__pyx_save_exc_type);
 
1642
      __Pyx_XGIVEREF(__pyx_save_exc_value);
 
1643
      __Pyx_XGIVEREF(__pyx_save_exc_tb);
 
1644
      __Pyx_ExceptionReset(__pyx_save_exc_type, __pyx_save_exc_value, __pyx_save_exc_tb);
 
1645
      goto __pyx_L1_error;
 
1646
      __pyx_L18_try_continue:;
 
1647
      __Pyx_XGIVEREF(__pyx_save_exc_type);
 
1648
      __Pyx_XGIVEREF(__pyx_save_exc_value);
 
1649
      __Pyx_XGIVEREF(__pyx_save_exc_tb);
 
1650
      __Pyx_ExceptionReset(__pyx_save_exc_type, __pyx_save_exc_value, __pyx_save_exc_tb);
 
1651
      goto __pyx_L8_continue;
 
1652
      __pyx_L13_exception_handled:;
 
1653
      __Pyx_XGIVEREF(__pyx_save_exc_type);
 
1654
      __Pyx_XGIVEREF(__pyx_save_exc_value);
 
1655
      __Pyx_XGIVEREF(__pyx_save_exc_tb);
 
1656
      __Pyx_ExceptionReset(__pyx_save_exc_type, __pyx_save_exc_value, __pyx_save_exc_tb);
 
1657
      __pyx_L19_try_end:;
 
1658
    }
 
1659
 
 
1660
    /* "Cython/Compiler/Visitor.py":85
 
1661
 *             except AttributeError:
 
1662
 *                 continue
 
1663
 *             if value is None or value == 0:             # <<<<<<<<<<<<<<
 
1664
 *                 continue
 
1665
 *             elif isinstance(value, list):
 
1666
 */
 
1667
    __pyx_t_8 = (__pyx_v_value == Py_None);
 
1668
    if (!__pyx_t_8) {
 
1669
      __pyx_t_9 = PyObject_RichCompare(__pyx_v_value, __pyx_int_0, Py_EQ); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 85; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
1670
      __Pyx_GOTREF(__pyx_t_9);
 
1671
      __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_9); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 85; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
1672
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
 
1673
      __pyx_t_7 = __pyx_t_4;
 
1674
    } else {
 
1675
      __pyx_t_7 = __pyx_t_8;
 
1676
    }
 
1677
    if (__pyx_t_7) {
 
1678
 
 
1679
      /* "Cython/Compiler/Visitor.py":86
 
1680
 *                 continue
 
1681
 *             if value is None or value == 0:
 
1682
 *                 continue             # <<<<<<<<<<<<<<
 
1683
 *             elif isinstance(value, list):
 
1684
 *                 value = u'[...]/%d' % len(value)
 
1685
 */
 
1686
      goto __pyx_L8_continue;
 
1687
      goto __pyx_L22;
 
1688
    }
 
1689
 
 
1690
    /* "Cython/Compiler/Visitor.py":87
 
1691
 *             if value is None or value == 0:
 
1692
 *                 continue
 
1693
 *             elif isinstance(value, list):             # <<<<<<<<<<<<<<
 
1694
 *                 value = u'[...]/%d' % len(value)
 
1695
 *             elif not isinstance(value, (str, unicode, long, int, float)):
 
1696
 */
 
1697
    __pyx_t_9 = ((PyObject *)((PyObject*)(&PyList_Type)));
 
1698
    __Pyx_INCREF(__pyx_t_9);
 
1699
    __pyx_t_7 = __Pyx_TypeCheck(__pyx_v_value, __pyx_t_9); 
 
1700
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
 
1701
    if (__pyx_t_7) {
 
1702
 
 
1703
      /* "Cython/Compiler/Visitor.py":88
 
1704
 *                 continue
 
1705
 *             elif isinstance(value, list):
 
1706
 *                 value = u'[...]/%d' % len(value)             # <<<<<<<<<<<<<<
 
1707
 *             elif not isinstance(value, (str, unicode, long, int, float)):
 
1708
 *                 continue
 
1709
 */
 
1710
      __pyx_t_10 = PyObject_Length(__pyx_v_value); if (unlikely(__pyx_t_10 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 88; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
1711
      __pyx_t_9 = PyInt_FromSsize_t(__pyx_t_10); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 88; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
1712
      __Pyx_GOTREF(__pyx_t_9);
 
1713
      __pyx_t_2 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_5), __pyx_t_9); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 88; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
1714
      __Pyx_GOTREF(((PyObject *)__pyx_t_2));
 
1715
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
 
1716
      __Pyx_DECREF(__pyx_v_value);
 
1717
      __pyx_v_value = ((PyObject *)__pyx_t_2);
 
1718
      __pyx_t_2 = 0;
 
1719
      goto __pyx_L22;
 
1720
    }
 
1721
 
 
1722
    /* "Cython/Compiler/Visitor.py":89
 
1723
 *             elif isinstance(value, list):
 
1724
 *                 value = u'[...]/%d' % len(value)
 
1725
 *             elif not isinstance(value, (str, unicode, long, int, float)):             # <<<<<<<<<<<<<<
 
1726
 *                 continue
 
1727
 *             else:
 
1728
 */
 
1729
    __Pyx_INCREF(__pyx_v_value);
 
1730
    __pyx_t_2 = __pyx_v_value;
 
1731
    __pyx_t_7 = PyString_Check(__pyx_t_2); 
 
1732
    if (!__pyx_t_7) {
 
1733
      __pyx_t_8 = PyUnicode_Check(__pyx_t_2); 
 
1734
      __pyx_t_4 = __pyx_t_8;
 
1735
    } else {
 
1736
      __pyx_t_4 = __pyx_t_7;
 
1737
    }
 
1738
    if (!__pyx_t_4) {
 
1739
      __pyx_t_7 = PyLong_Check(__pyx_t_2); 
 
1740
      __pyx_t_8 = __pyx_t_7;
 
1741
    } else {
 
1742
      __pyx_t_8 = __pyx_t_4;
 
1743
    }
 
1744
    if (!__pyx_t_8) {
 
1745
      __pyx_t_4 = PyInt_Check(__pyx_t_2); 
 
1746
      __pyx_t_7 = __pyx_t_4;
 
1747
    } else {
 
1748
      __pyx_t_7 = __pyx_t_8;
 
1749
    }
 
1750
    if (!__pyx_t_7) {
 
1751
      __pyx_t_8 = PyFloat_Check(__pyx_t_2); 
 
1752
      __pyx_t_4 = __pyx_t_8;
 
1753
    } else {
 
1754
      __pyx_t_4 = __pyx_t_7;
 
1755
    }
 
1756
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 
1757
    __pyx_t_7 = (!__pyx_t_4);
 
1758
    if (__pyx_t_7) {
 
1759
 
 
1760
      /* "Cython/Compiler/Visitor.py":90
 
1761
 *                 value = u'[...]/%d' % len(value)
 
1762
 *             elif not isinstance(value, (str, unicode, long, int, float)):
 
1763
 *                 continue             # <<<<<<<<<<<<<<
 
1764
 *             else:
 
1765
 *                 value = repr(value)
 
1766
 */
 
1767
      goto __pyx_L8_continue;
 
1768
      goto __pyx_L22;
 
1769
    }
 
1770
    /*else*/ {
 
1771
 
 
1772
      /* "Cython/Compiler/Visitor.py":92
 
1773
 *                 continue
 
1774
 *             else:
 
1775
 *                 value = repr(value)             # <<<<<<<<<<<<<<
 
1776
 *             values.append(u'%s = %s' % (attr, value))
 
1777
 *         return u'%s(%s)' % (node.__class__.__name__,
 
1778
 */
 
1779
      __pyx_t_2 = PyObject_Repr(__pyx_v_value); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 92; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
1780
      __Pyx_GOTREF(__pyx_t_2);
 
1781
      __Pyx_DECREF(__pyx_v_value);
 
1782
      __pyx_v_value = __pyx_t_2;
 
1783
      __pyx_t_2 = 0;
 
1784
    }
 
1785
    __pyx_L22:;
 
1786
 
 
1787
    /* "Cython/Compiler/Visitor.py":93
 
1788
 *             else:
 
1789
 *                 value = repr(value)
 
1790
 *             values.append(u'%s = %s' % (attr, value))             # <<<<<<<<<<<<<<
 
1791
 *         return u'%s(%s)' % (node.__class__.__name__,
 
1792
 *                            u',\n    '.join(values))
 
1793
 */
 
1794
    if (unlikely(__pyx_v_values == Py_None)) {
 
1795
      PyErr_SetString(PyExc_AttributeError, "'NoneType' object has no attribute 'append'"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 93; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 
 
1796
    }
 
1797
    __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 93; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
1798
    __Pyx_GOTREF(((PyObject *)__pyx_t_2));
 
1799
    __Pyx_INCREF(__pyx_v_attr);
 
1800
    PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_attr);
 
1801
    __Pyx_GIVEREF(__pyx_v_attr);
 
1802
    __Pyx_INCREF(__pyx_v_value);
 
1803
    PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_value);
 
1804
    __Pyx_GIVEREF(__pyx_v_value);
 
1805
    __pyx_t_9 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_6), ((PyObject *)__pyx_t_2)); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 93; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
1806
    __Pyx_GOTREF(((PyObject *)__pyx_t_9));
 
1807
    __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
 
1808
    __pyx_t_5 = PyList_Append(__pyx_v_values, ((PyObject *)__pyx_t_9)); if (unlikely(__pyx_t_5 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 93; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
1809
    __Pyx_DECREF(((PyObject *)__pyx_t_9)); __pyx_t_9 = 0;
 
1810
    __pyx_L8_continue:;
 
1811
  }
 
1812
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 
1813
 
 
1814
  /* "Cython/Compiler/Visitor.py":94
 
1815
 *                 value = repr(value)
 
1816
 *             values.append(u'%s = %s' % (attr, value))
 
1817
 *         return u'%s(%s)' % (node.__class__.__name__,             # <<<<<<<<<<<<<<
 
1818
 *                            u',\n    '.join(values))
 
1819
 * 
 
1820
 */
 
1821
  __Pyx_XDECREF(__pyx_r);
 
1822
  __pyx_t_3 = PyObject_GetAttr(__pyx_v_node, __pyx_n_s____class__); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 94; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
1823
  __Pyx_GOTREF(__pyx_t_3);
 
1824
  __pyx_t_9 = PyObject_GetAttr(__pyx_t_3, __pyx_n_s____name__); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 94; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
1825
  __Pyx_GOTREF(__pyx_t_9);
 
1826
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 
1827
 
 
1828
  /* "Cython/Compiler/Visitor.py":95
 
1829
 *             values.append(u'%s = %s' % (attr, value))
 
1830
 *         return u'%s(%s)' % (node.__class__.__name__,
 
1831
 *                            u',\n    '.join(values))             # <<<<<<<<<<<<<<
 
1832
 * 
 
1833
 *     def _find_node_path(self, stacktrace):
 
1834
 */
 
1835
  __pyx_t_3 = ((PyObject *)PyUnicode_Join(__pyx_kp_u_8, ((PyObject *)__pyx_v_values))); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 95; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
1836
  __Pyx_GOTREF(__pyx_t_3);
 
1837
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 94; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
1838
  __Pyx_GOTREF(((PyObject *)__pyx_t_2));
 
1839
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_9);
 
1840
  __Pyx_GIVEREF(__pyx_t_9);
 
1841
  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_3);
 
1842
  __Pyx_GIVEREF(__pyx_t_3);
 
1843
  __pyx_t_9 = 0;
 
1844
  __pyx_t_3 = 0;
 
1845
  __pyx_t_3 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_7), ((PyObject *)__pyx_t_2)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 94; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
1846
  __Pyx_GOTREF(((PyObject *)__pyx_t_3));
 
1847
  __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
 
1848
  __pyx_r = ((PyObject *)__pyx_t_3);
 
1849
  __pyx_t_3 = 0;
 
1850
  goto __pyx_L0;
 
1851
 
 
1852
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
 
1853
  goto __pyx_L0;
 
1854
  __pyx_L1_error:;
 
1855
  __Pyx_XDECREF(__pyx_t_1);
 
1856
  __Pyx_XDECREF(__pyx_t_2);
 
1857
  __Pyx_XDECREF(__pyx_t_3);
 
1858
  __Pyx_XDECREF(__pyx_t_9);
 
1859
  __Pyx_AddTraceback("Cython.Compiler.Visitor.TreeVisitor.dump_node");
 
1860
  __pyx_r = NULL;
 
1861
  __pyx_L0:;
 
1862
  __Pyx_DECREF(__pyx_v_ignored);
 
1863
  __Pyx_DECREF(__pyx_v_values);
 
1864
  __Pyx_DECREF(__pyx_v_pos);
 
1865
  __Pyx_DECREF(__pyx_v_source);
 
1866
  __Pyx_DECREF(__pyx_v_os);
 
1867
  __Pyx_DECREF(__pyx_v_attribute_names);
 
1868
  __Pyx_DECREF(__pyx_v_attr);
 
1869
  __Pyx_DECREF(__pyx_v_value);
 
1870
  __Pyx_XGIVEREF(__pyx_r);
 
1871
  __Pyx_RefNannyFinishContext();
 
1872
  return __pyx_r;
 
1873
}
 
1874
 
 
1875
/* "Cython/Compiler/Visitor.py":97
 
1876
 *                            u',\n    '.join(values))
 
1877
 * 
 
1878
 *     def _find_node_path(self, stacktrace):             # <<<<<<<<<<<<<<
 
1879
 *         import os.path
 
1880
 *         last_traceback = stacktrace
 
1881
 */
 
1882
 
 
1883
static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_11TreeVisitor_2_find_node_path(PyObject *__pyx_v_self, PyObject *__pyx_v_stacktrace); /*proto*/
 
1884
static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_11TreeVisitor_2_find_node_path(PyObject *__pyx_v_self, PyObject *__pyx_v_stacktrace) {
 
1885
  PyObject *__pyx_v_os;
 
1886
  PyObject *__pyx_v_last_traceback;
 
1887
  PyObject *__pyx_v_nodes;
 
1888
  PyObject *__pyx_v_frame;
 
1889
  PyObject *__pyx_v_node;
 
1890
  PyObject *__pyx_v_code;
 
1891
  PyObject *__pyx_v_method_name;
 
1892
  PyObject *__pyx_v_pos;
 
1893
  PyObject *__pyx_r = NULL;
 
1894
  PyObject *__pyx_t_1 = NULL;
 
1895
  PyObject *__pyx_t_2 = NULL;
 
1896
  int __pyx_t_3;
 
1897
  PyObject *__pyx_t_4 = NULL;
 
1898
  int __pyx_t_5;
 
1899
  __Pyx_RefNannySetupContext("_find_node_path");
 
1900
  __Pyx_INCREF(__pyx_v_stacktrace);
 
1901
  __pyx_v_os = Py_None; __Pyx_INCREF(Py_None);
 
1902
  __pyx_v_last_traceback = Py_None; __Pyx_INCREF(Py_None);
 
1903
  __pyx_v_nodes = ((PyObject*)Py_None); __Pyx_INCREF(Py_None);
 
1904
  __pyx_v_frame = Py_None; __Pyx_INCREF(Py_None);
 
1905
  __pyx_v_node = Py_None; __Pyx_INCREF(Py_None);
 
1906
  __pyx_v_code = Py_None; __Pyx_INCREF(Py_None);
 
1907
  __pyx_v_method_name = Py_None; __Pyx_INCREF(Py_None);
 
1908
  __pyx_v_pos = ((PyObject*)Py_None); __Pyx_INCREF(Py_None);
 
1909
 
 
1910
  /* "Cython/Compiler/Visitor.py":98
 
1911
 * 
 
1912
 *     def _find_node_path(self, stacktrace):
 
1913
 *         import os.path             # <<<<<<<<<<<<<<
 
1914
 *         last_traceback = stacktrace
 
1915
 *         nodes = []
 
1916
 */
 
1917
  __pyx_t_1 = __Pyx_Import(((PyObject *)__pyx_n_s_1), 0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 98; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
1918
  __Pyx_GOTREF(__pyx_t_1);
 
1919
  __Pyx_DECREF(__pyx_v_os);
 
1920
  __pyx_v_os = __pyx_t_1;
 
1921
  __pyx_t_1 = 0;
 
1922
 
 
1923
  /* "Cython/Compiler/Visitor.py":99
 
1924
 *     def _find_node_path(self, stacktrace):
 
1925
 *         import os.path
 
1926
 *         last_traceback = stacktrace             # <<<<<<<<<<<<<<
 
1927
 *         nodes = []
 
1928
 *         while hasattr(stacktrace, 'tb_frame'):
 
1929
 */
 
1930
  __Pyx_INCREF(__pyx_v_stacktrace);
 
1931
  __Pyx_DECREF(__pyx_v_last_traceback);
 
1932
  __pyx_v_last_traceback = __pyx_v_stacktrace;
 
1933
 
 
1934
  /* "Cython/Compiler/Visitor.py":100
 
1935
 *         import os.path
 
1936
 *         last_traceback = stacktrace
 
1937
 *         nodes = []             # <<<<<<<<<<<<<<
 
1938
 *         while hasattr(stacktrace, 'tb_frame'):
 
1939
 *             frame = stacktrace.tb_frame
 
1940
 */
 
1941
  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 100; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
1942
  __Pyx_GOTREF(((PyObject *)__pyx_t_1));
 
1943
  __Pyx_DECREF(((PyObject *)__pyx_v_nodes));
 
1944
  __pyx_v_nodes = __pyx_t_1;
 
1945
  __pyx_t_1 = 0;
 
1946
 
 
1947
  /* "Cython/Compiler/Visitor.py":101
 
1948
 *         last_traceback = stacktrace
 
1949
 *         nodes = []
 
1950
 *         while hasattr(stacktrace, 'tb_frame'):             # <<<<<<<<<<<<<<
 
1951
 *             frame = stacktrace.tb_frame
 
1952
 *             node = frame.f_locals.get(u'self')
 
1953
 */
 
1954
  while (1) {
 
1955
    __pyx_t_1 = __pyx_v_stacktrace;
 
1956
    __Pyx_INCREF(__pyx_t_1);
 
1957
    __pyx_t_2 = ((PyObject *)__pyx_n_s__tb_frame);
 
1958
    __Pyx_INCREF(__pyx_t_2);
 
1959
    __pyx_t_3 = PyObject_HasAttr(__pyx_t_1, __pyx_t_2); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 101; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
1960
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
1961
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 
1962
    if (!__pyx_t_3) break;
 
1963
 
 
1964
    /* "Cython/Compiler/Visitor.py":102
 
1965
 *         nodes = []
 
1966
 *         while hasattr(stacktrace, 'tb_frame'):
 
1967
 *             frame = stacktrace.tb_frame             # <<<<<<<<<<<<<<
 
1968
 *             node = frame.f_locals.get(u'self')
 
1969
 *             if isinstance(node, Nodes.Node):
 
1970
 */
 
1971
    __pyx_t_2 = PyObject_GetAttr(__pyx_v_stacktrace, __pyx_n_s__tb_frame); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 102; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
1972
    __Pyx_GOTREF(__pyx_t_2);
 
1973
    __Pyx_DECREF(__pyx_v_frame);
 
1974
    __pyx_v_frame = __pyx_t_2;
 
1975
    __pyx_t_2 = 0;
 
1976
 
 
1977
    /* "Cython/Compiler/Visitor.py":103
 
1978
 *         while hasattr(stacktrace, 'tb_frame'):
 
1979
 *             frame = stacktrace.tb_frame
 
1980
 *             node = frame.f_locals.get(u'self')             # <<<<<<<<<<<<<<
 
1981
 *             if isinstance(node, Nodes.Node):
 
1982
 *                 code = frame.f_code
 
1983
 */
 
1984
    __pyx_t_2 = PyObject_GetAttr(__pyx_v_frame, __pyx_n_s__f_locals); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 103; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
1985
    __Pyx_GOTREF(__pyx_t_2);
 
1986
    __pyx_t_1 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s__get); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 103; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
1987
    __Pyx_GOTREF(__pyx_t_1);
 
1988
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 
1989
    __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_k_tuple_9), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 103; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
1990
    __Pyx_GOTREF(__pyx_t_2);
 
1991
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
1992
    __Pyx_DECREF(__pyx_v_node);
 
1993
    __pyx_v_node = __pyx_t_2;
 
1994
    __pyx_t_2 = 0;
 
1995
 
 
1996
    /* "Cython/Compiler/Visitor.py":104
 
1997
 *             frame = stacktrace.tb_frame
 
1998
 *             node = frame.f_locals.get(u'self')
 
1999
 *             if isinstance(node, Nodes.Node):             # <<<<<<<<<<<<<<
 
2000
 *                 code = frame.f_code
 
2001
 *                 method_name = code.co_name
 
2002
 */
 
2003
    __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s__Nodes); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 104; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
2004
    __Pyx_GOTREF(__pyx_t_2);
 
2005
    __pyx_t_1 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s__Node); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 104; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
2006
    __Pyx_GOTREF(__pyx_t_1);
 
2007
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 
2008
    __pyx_t_3 = PyObject_IsInstance(__pyx_v_node, __pyx_t_1); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 104; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
2009
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
2010
    if (__pyx_t_3) {
 
2011
 
 
2012
      /* "Cython/Compiler/Visitor.py":105
 
2013
 *             node = frame.f_locals.get(u'self')
 
2014
 *             if isinstance(node, Nodes.Node):
 
2015
 *                 code = frame.f_code             # <<<<<<<<<<<<<<
 
2016
 *                 method_name = code.co_name
 
2017
 *                 pos = (os.path.basename(code.co_filename),
 
2018
 */
 
2019
      __pyx_t_1 = PyObject_GetAttr(__pyx_v_frame, __pyx_n_s__f_code); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 105; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
2020
      __Pyx_GOTREF(__pyx_t_1);
 
2021
      __Pyx_DECREF(__pyx_v_code);
 
2022
      __pyx_v_code = __pyx_t_1;
 
2023
      __pyx_t_1 = 0;
 
2024
 
 
2025
      /* "Cython/Compiler/Visitor.py":106
 
2026
 *             if isinstance(node, Nodes.Node):
 
2027
 *                 code = frame.f_code
 
2028
 *                 method_name = code.co_name             # <<<<<<<<<<<<<<
 
2029
 *                 pos = (os.path.basename(code.co_filename),
 
2030
 *                        frame.f_lineno)
 
2031
 */
 
2032
      __pyx_t_1 = PyObject_GetAttr(__pyx_v_code, __pyx_n_s__co_name); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 106; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
2033
      __Pyx_GOTREF(__pyx_t_1);
 
2034
      __Pyx_DECREF(__pyx_v_method_name);
 
2035
      __pyx_v_method_name = __pyx_t_1;
 
2036
      __pyx_t_1 = 0;
 
2037
 
 
2038
      /* "Cython/Compiler/Visitor.py":107
 
2039
 *                 code = frame.f_code
 
2040
 *                 method_name = code.co_name
 
2041
 *                 pos = (os.path.basename(code.co_filename),             # <<<<<<<<<<<<<<
 
2042
 *                        frame.f_lineno)
 
2043
 *                 nodes.append((node, method_name, pos))
 
2044
 */
 
2045
      __pyx_t_1 = PyObject_GetAttr(__pyx_v_os, __pyx_n_s__path); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 107; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
2046
      __Pyx_GOTREF(__pyx_t_1);
 
2047
      __pyx_t_2 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__basename); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 107; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
2048
      __Pyx_GOTREF(__pyx_t_2);
 
2049
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
2050
      __pyx_t_1 = PyObject_GetAttr(__pyx_v_code, __pyx_n_s__co_filename); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 107; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
2051
      __Pyx_GOTREF(__pyx_t_1);
 
2052
      __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 107; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
2053
      __Pyx_GOTREF(((PyObject *)__pyx_t_4));
 
2054
      PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1);
 
2055
      __Pyx_GIVEREF(__pyx_t_1);
 
2056
      __pyx_t_1 = 0;
 
2057
      __pyx_t_1 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 107; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
2058
      __Pyx_GOTREF(__pyx_t_1);
 
2059
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 
2060
      __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
 
2061
 
 
2062
      /* "Cython/Compiler/Visitor.py":108
 
2063
 *                 method_name = code.co_name
 
2064
 *                 pos = (os.path.basename(code.co_filename),
 
2065
 *                        frame.f_lineno)             # <<<<<<<<<<<<<<
 
2066
 *                 nodes.append((node, method_name, pos))
 
2067
 *                 last_traceback = stacktrace
 
2068
 */
 
2069
      __pyx_t_4 = PyObject_GetAttr(__pyx_v_frame, __pyx_n_s__f_lineno); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 108; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
2070
      __Pyx_GOTREF(__pyx_t_4);
 
2071
      __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 107; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
2072
      __Pyx_GOTREF(((PyObject *)__pyx_t_2));
 
2073
      PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
 
2074
      __Pyx_GIVEREF(__pyx_t_1);
 
2075
      PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_4);
 
2076
      __Pyx_GIVEREF(__pyx_t_4);
 
2077
      __pyx_t_1 = 0;
 
2078
      __pyx_t_4 = 0;
 
2079
      __Pyx_DECREF(((PyObject *)__pyx_v_pos));
 
2080
      __pyx_v_pos = __pyx_t_2;
 
2081
      __pyx_t_2 = 0;
 
2082
 
 
2083
      /* "Cython/Compiler/Visitor.py":109
 
2084
 *                 pos = (os.path.basename(code.co_filename),
 
2085
 *                        frame.f_lineno)
 
2086
 *                 nodes.append((node, method_name, pos))             # <<<<<<<<<<<<<<
 
2087
 *                 last_traceback = stacktrace
 
2088
 *             stacktrace = stacktrace.tb_next
 
2089
 */
 
2090
      if (unlikely(__pyx_v_nodes == Py_None)) {
 
2091
        PyErr_SetString(PyExc_AttributeError, "'NoneType' object has no attribute 'append'"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 109; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 
 
2092
      }
 
2093
      __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 109; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
2094
      __Pyx_GOTREF(((PyObject *)__pyx_t_2));
 
2095
      __Pyx_INCREF(__pyx_v_node);
 
2096
      PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_node);
 
2097
      __Pyx_GIVEREF(__pyx_v_node);
 
2098
      __Pyx_INCREF(__pyx_v_method_name);
 
2099
      PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_method_name);
 
2100
      __Pyx_GIVEREF(__pyx_v_method_name);
 
2101
      __Pyx_INCREF(((PyObject *)__pyx_v_pos));
 
2102
      PyTuple_SET_ITEM(__pyx_t_2, 2, ((PyObject *)__pyx_v_pos));
 
2103
      __Pyx_GIVEREF(((PyObject *)__pyx_v_pos));
 
2104
      __pyx_t_5 = PyList_Append(__pyx_v_nodes, ((PyObject *)__pyx_t_2)); if (unlikely(__pyx_t_5 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 109; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
2105
      __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
 
2106
 
 
2107
      /* "Cython/Compiler/Visitor.py":110
 
2108
 *                        frame.f_lineno)
 
2109
 *                 nodes.append((node, method_name, pos))
 
2110
 *                 last_traceback = stacktrace             # <<<<<<<<<<<<<<
 
2111
 *             stacktrace = stacktrace.tb_next
 
2112
 *         return (last_traceback, nodes)
 
2113
 */
 
2114
      __Pyx_INCREF(__pyx_v_stacktrace);
 
2115
      __Pyx_DECREF(__pyx_v_last_traceback);
 
2116
      __pyx_v_last_traceback = __pyx_v_stacktrace;
 
2117
      goto __pyx_L7;
 
2118
    }
 
2119
    __pyx_L7:;
 
2120
 
 
2121
    /* "Cython/Compiler/Visitor.py":111
 
2122
 *                 nodes.append((node, method_name, pos))
 
2123
 *                 last_traceback = stacktrace
 
2124
 *             stacktrace = stacktrace.tb_next             # <<<<<<<<<<<<<<
 
2125
 *         return (last_traceback, nodes)
 
2126
 * 
 
2127
 */
 
2128
    __pyx_t_2 = PyObject_GetAttr(__pyx_v_stacktrace, __pyx_n_s__tb_next); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 111; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
2129
    __Pyx_GOTREF(__pyx_t_2);
 
2130
    __Pyx_DECREF(__pyx_v_stacktrace);
 
2131
    __pyx_v_stacktrace = __pyx_t_2;
 
2132
    __pyx_t_2 = 0;
 
2133
  }
 
2134
 
 
2135
  /* "Cython/Compiler/Visitor.py":112
 
2136
 *                 last_traceback = stacktrace
 
2137
 *             stacktrace = stacktrace.tb_next
 
2138
 *         return (last_traceback, nodes)             # <<<<<<<<<<<<<<
 
2139
 * 
 
2140
 *     def _raise_compiler_error(self, child, e):
 
2141
 */
 
2142
  __Pyx_XDECREF(__pyx_r);
 
2143
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 112; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
2144
  __Pyx_GOTREF(((PyObject *)__pyx_t_2));
 
2145
  __Pyx_INCREF(__pyx_v_last_traceback);
 
2146
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_last_traceback);
 
2147
  __Pyx_GIVEREF(__pyx_v_last_traceback);
 
2148
  __Pyx_INCREF(((PyObject *)__pyx_v_nodes));
 
2149
  PyTuple_SET_ITEM(__pyx_t_2, 1, ((PyObject *)__pyx_v_nodes));
 
2150
  __Pyx_GIVEREF(((PyObject *)__pyx_v_nodes));
 
2151
  __pyx_r = ((PyObject *)__pyx_t_2);
 
2152
  __pyx_t_2 = 0;
 
2153
  goto __pyx_L0;
 
2154
 
 
2155
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
 
2156
  goto __pyx_L0;
 
2157
  __pyx_L1_error:;
 
2158
  __Pyx_XDECREF(__pyx_t_1);
 
2159
  __Pyx_XDECREF(__pyx_t_2);
 
2160
  __Pyx_XDECREF(__pyx_t_4);
 
2161
  __Pyx_AddTraceback("Cython.Compiler.Visitor.TreeVisitor._find_node_path");
 
2162
  __pyx_r = NULL;
 
2163
  __pyx_L0:;
 
2164
  __Pyx_DECREF(__pyx_v_os);
 
2165
  __Pyx_DECREF(__pyx_v_last_traceback);
 
2166
  __Pyx_DECREF(__pyx_v_nodes);
 
2167
  __Pyx_DECREF(__pyx_v_frame);
 
2168
  __Pyx_DECREF(__pyx_v_node);
 
2169
  __Pyx_DECREF(__pyx_v_code);
 
2170
  __Pyx_DECREF(__pyx_v_method_name);
 
2171
  __Pyx_DECREF(__pyx_v_pos);
 
2172
  __Pyx_DECREF(__pyx_v_stacktrace);
 
2173
  __Pyx_XGIVEREF(__pyx_r);
 
2174
  __Pyx_RefNannyFinishContext();
 
2175
  return __pyx_r;
 
2176
}
 
2177
 
 
2178
/* "Cython/Compiler/Visitor.py":114
 
2179
 *         return (last_traceback, nodes)
 
2180
 * 
 
2181
 *     def _raise_compiler_error(self, child, e):             # <<<<<<<<<<<<<<
 
2182
 *         import sys
 
2183
 *         trace = ['']
 
2184
 */
 
2185
 
 
2186
static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_11TreeVisitor_3_raise_compiler_error(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
 
2187
static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_11TreeVisitor_3_raise_compiler_error(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
 
2188
  PyObject *__pyx_v_child = 0;
 
2189
  PyObject *__pyx_v_e = 0;
 
2190
  PyObject *__pyx_v_sys;
 
2191
  PyObject *__pyx_v_trace;
 
2192
  PyObject *__pyx_v_parent;
 
2193
  PyObject *__pyx_v_attribute;
 
2194
  PyObject *__pyx_v_index;
 
2195
  PyObject *__pyx_v_node;
 
2196
  PyObject *__pyx_v_stacktrace;
 
2197
  PyObject *__pyx_v_called_nodes;
 
2198
  PyObject *__pyx_v_last_node;
 
2199
  PyObject *__pyx_v_method_name;
 
2200
  PyObject *__pyx_v_pos;
 
2201
  PyObject *__pyx_r = NULL;
 
2202
  PyObject *__pyx_t_1 = NULL;
 
2203
  Py_ssize_t __pyx_t_2;
 
2204
  PyObject *__pyx_t_3 = NULL;
 
2205
  PyObject *__pyx_t_4 = NULL;
 
2206
  PyObject *__pyx_t_5 = NULL;
 
2207
  PyObject *__pyx_t_6 = NULL;
 
2208
  PyObject *__pyx_t_7 = NULL;
 
2209
  int __pyx_t_8;
 
2210
  int __pyx_t_9;
 
2211
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__child,&__pyx_n_s__e,0};
 
2212
  __Pyx_RefNannySetupContext("_raise_compiler_error");
 
2213
  if (unlikely(__pyx_kwds)) {
 
2214
    Py_ssize_t kw_args = PyDict_Size(__pyx_kwds);
 
2215
    PyObject* values[2] = {0,0};
 
2216
    switch (PyTuple_GET_SIZE(__pyx_args)) {
 
2217
      case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
 
2218
      case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
 
2219
      case  0: break;
 
2220
      default: goto __pyx_L5_argtuple_error;
 
2221
    }
 
2222
    switch (PyTuple_GET_SIZE(__pyx_args)) {
 
2223
      case  0:
 
2224
      values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__child);
 
2225
      if (likely(values[0])) kw_args--;
 
2226
      else goto __pyx_L5_argtuple_error;
 
2227
      case  1:
 
2228
      values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__e);
 
2229
      if (likely(values[1])) kw_args--;
 
2230
      else {
 
2231
        __Pyx_RaiseArgtupleInvalid("_raise_compiler_error", 1, 2, 2, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 114; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 
2232
      }
 
2233
    }
 
2234
    if (unlikely(kw_args > 0)) {
 
2235
      if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "_raise_compiler_error") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 114; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 
2236
    }
 
2237
    __pyx_v_child = values[0];
 
2238
    __pyx_v_e = values[1];
 
2239
  } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
 
2240
    goto __pyx_L5_argtuple_error;
 
2241
  } else {
 
2242
    __pyx_v_child = PyTuple_GET_ITEM(__pyx_args, 0);
 
2243
    __pyx_v_e = PyTuple_GET_ITEM(__pyx_args, 1);
 
2244
  }
 
2245
  goto __pyx_L4_argument_unpacking_done;
 
2246
  __pyx_L5_argtuple_error:;
 
2247
  __Pyx_RaiseArgtupleInvalid("_raise_compiler_error", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 114; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 
2248
  __pyx_L3_error:;
 
2249
  __Pyx_AddTraceback("Cython.Compiler.Visitor.TreeVisitor._raise_compiler_error");
 
2250
  __Pyx_RefNannyFinishContext();
 
2251
  return NULL;
 
2252
  __pyx_L4_argument_unpacking_done:;
 
2253
  __pyx_v_sys = Py_None; __Pyx_INCREF(Py_None);
 
2254
  __pyx_v_trace = ((PyObject*)Py_None); __Pyx_INCREF(Py_None);
 
2255
  __pyx_v_parent = Py_None; __Pyx_INCREF(Py_None);
 
2256
  __pyx_v_attribute = Py_None; __Pyx_INCREF(Py_None);
 
2257
  __pyx_v_index = Py_None; __Pyx_INCREF(Py_None);
 
2258
  __pyx_v_node = Py_None; __Pyx_INCREF(Py_None);
 
2259
  __pyx_v_stacktrace = Py_None; __Pyx_INCREF(Py_None);
 
2260
  __pyx_v_called_nodes = Py_None; __Pyx_INCREF(Py_None);
 
2261
  __pyx_v_last_node = Py_None; __Pyx_INCREF(Py_None);
 
2262
  __pyx_v_method_name = Py_None; __Pyx_INCREF(Py_None);
 
2263
  __pyx_v_pos = Py_None; __Pyx_INCREF(Py_None);
 
2264
 
 
2265
  /* "Cython/Compiler/Visitor.py":115
 
2266
 * 
 
2267
 *     def _raise_compiler_error(self, child, e):
 
2268
 *         import sys             # <<<<<<<<<<<<<<
 
2269
 *         trace = ['']
 
2270
 *         for parent, attribute, index in self.access_path:
 
2271
 */
 
2272
  __pyx_t_1 = __Pyx_Import(((PyObject *)__pyx_n_s__sys), 0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 115; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
2273
  __Pyx_GOTREF(__pyx_t_1);
 
2274
  __Pyx_DECREF(__pyx_v_sys);
 
2275
  __pyx_v_sys = __pyx_t_1;
 
2276
  __pyx_t_1 = 0;
 
2277
 
 
2278
  /* "Cython/Compiler/Visitor.py":116
 
2279
 *     def _raise_compiler_error(self, child, e):
 
2280
 *         import sys
 
2281
 *         trace = ['']             # <<<<<<<<<<<<<<
 
2282
 *         for parent, attribute, index in self.access_path:
 
2283
 *             node = getattr(parent, attribute)
 
2284
 */
 
2285
  __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 116; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
2286
  __Pyx_GOTREF(((PyObject *)__pyx_t_1));
 
2287
  __Pyx_INCREF(((PyObject *)__pyx_kp_s_10));
 
2288
  PyList_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_kp_s_10));
 
2289
  __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_10));
 
2290
  __Pyx_DECREF(((PyObject *)__pyx_v_trace));
 
2291
  __pyx_v_trace = __pyx_t_1;
 
2292
  __pyx_t_1 = 0;
 
2293
 
 
2294
  /* "Cython/Compiler/Visitor.py":117
 
2295
 *         import sys
 
2296
 *         trace = ['']
 
2297
 *         for parent, attribute, index in self.access_path:             # <<<<<<<<<<<<<<
 
2298
 *             node = getattr(parent, attribute)
 
2299
 *             if index is None:
 
2300
 */
 
2301
  if (unlikely(((struct __pyx_obj_6Cython_8Compiler_7Visitor_TreeVisitor *)__pyx_v_self)->access_path == Py_None)) {
 
2302
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 117; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 
 
2303
  }
 
2304
  __pyx_t_2 = 0; __pyx_t_1 = ((PyObject *)((struct __pyx_obj_6Cython_8Compiler_7Visitor_TreeVisitor *)__pyx_v_self)->access_path); __Pyx_INCREF(__pyx_t_1);
 
2305
  for (;;) {
 
2306
    if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break;
 
2307
    __pyx_t_3 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_3); __pyx_t_2++;
 
2308
    if (PyTuple_CheckExact(__pyx_t_3) && likely(PyTuple_GET_SIZE(__pyx_t_3) == 3)) {
 
2309
      PyObject* tuple = __pyx_t_3;
 
2310
      __pyx_t_4 = PyTuple_GET_ITEM(tuple, 0); __Pyx_INCREF(__pyx_t_4);
 
2311
      __pyx_t_5 = PyTuple_GET_ITEM(tuple, 1); __Pyx_INCREF(__pyx_t_5);
 
2312
      __pyx_t_6 = PyTuple_GET_ITEM(tuple, 2); __Pyx_INCREF(__pyx_t_6);
 
2313
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 
2314
      __Pyx_DECREF(__pyx_v_parent);
 
2315
      __pyx_v_parent = __pyx_t_4;
 
2316
      __pyx_t_4 = 0;
 
2317
      __Pyx_DECREF(__pyx_v_attribute);
 
2318
      __pyx_v_attribute = __pyx_t_5;
 
2319
      __pyx_t_5 = 0;
 
2320
      __Pyx_DECREF(__pyx_v_index);
 
2321
      __pyx_v_index = __pyx_t_6;
 
2322
      __pyx_t_6 = 0;
 
2323
    } else {
 
2324
      __pyx_t_7 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 117; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
2325
      __Pyx_GOTREF(__pyx_t_7);
 
2326
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 
2327
      __pyx_t_4 = __Pyx_UnpackItem(__pyx_t_7, 0); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 117; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
2328
      __Pyx_GOTREF(__pyx_t_4);
 
2329
      __pyx_t_5 = __Pyx_UnpackItem(__pyx_t_7, 1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 117; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
2330
      __Pyx_GOTREF(__pyx_t_5);
 
2331
      __pyx_t_6 = __Pyx_UnpackItem(__pyx_t_7, 2); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 117; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
2332
      __Pyx_GOTREF(__pyx_t_6);
 
2333
      if (__Pyx_EndUnpack(__pyx_t_7, 3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 117; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
2334
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
 
2335
      __Pyx_DECREF(__pyx_v_parent);
 
2336
      __pyx_v_parent = __pyx_t_4;
 
2337
      __pyx_t_4 = 0;
 
2338
      __Pyx_DECREF(__pyx_v_attribute);
 
2339
      __pyx_v_attribute = __pyx_t_5;
 
2340
      __pyx_t_5 = 0;
 
2341
      __Pyx_DECREF(__pyx_v_index);
 
2342
      __pyx_v_index = __pyx_t_6;
 
2343
      __pyx_t_6 = 0;
 
2344
    }
 
2345
 
 
2346
    /* "Cython/Compiler/Visitor.py":118
 
2347
 *         trace = ['']
 
2348
 *         for parent, attribute, index in self.access_path:
 
2349
 *             node = getattr(parent, attribute)             # <<<<<<<<<<<<<<
 
2350
 *             if index is None:
 
2351
 *                 index = ''
 
2352
 */
 
2353
    __pyx_t_3 = PyObject_GetAttr(__pyx_v_parent, __pyx_v_attribute); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 118; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
2354
    __Pyx_GOTREF(__pyx_t_3);
 
2355
    __Pyx_DECREF(__pyx_v_node);
 
2356
    __pyx_v_node = __pyx_t_3;
 
2357
    __pyx_t_3 = 0;
 
2358
 
 
2359
    /* "Cython/Compiler/Visitor.py":119
 
2360
 *         for parent, attribute, index in self.access_path:
 
2361
 *             node = getattr(parent, attribute)
 
2362
 *             if index is None:             # <<<<<<<<<<<<<<
 
2363
 *                 index = ''
 
2364
 *             else:
 
2365
 */
 
2366
    __pyx_t_8 = (__pyx_v_index == Py_None);
 
2367
    if (__pyx_t_8) {
 
2368
 
 
2369
      /* "Cython/Compiler/Visitor.py":120
 
2370
 *             node = getattr(parent, attribute)
 
2371
 *             if index is None:
 
2372
 *                 index = ''             # <<<<<<<<<<<<<<
 
2373
 *             else:
 
2374
 *                 node = node[index]
 
2375
 */
 
2376
      __Pyx_INCREF(((PyObject *)__pyx_kp_s_10));
 
2377
      __Pyx_DECREF(__pyx_v_index);
 
2378
      __pyx_v_index = ((PyObject *)__pyx_kp_s_10);
 
2379
      goto __pyx_L8;
 
2380
    }
 
2381
    /*else*/ {
 
2382
 
 
2383
      /* "Cython/Compiler/Visitor.py":122
 
2384
 *                 index = ''
 
2385
 *             else:
 
2386
 *                 node = node[index]             # <<<<<<<<<<<<<<
 
2387
 *                 index = u'[%d]' % index
 
2388
 *             trace.append(u'%s.%s%s = %s' % (
 
2389
 */
 
2390
      __pyx_t_3 = PyObject_GetItem(__pyx_v_node, __pyx_v_index); if (!__pyx_t_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 122; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
2391
      __Pyx_GOTREF(__pyx_t_3);
 
2392
      __Pyx_DECREF(__pyx_v_node);
 
2393
      __pyx_v_node = __pyx_t_3;
 
2394
      __pyx_t_3 = 0;
 
2395
 
 
2396
      /* "Cython/Compiler/Visitor.py":123
 
2397
 *             else:
 
2398
 *                 node = node[index]
 
2399
 *                 index = u'[%d]' % index             # <<<<<<<<<<<<<<
 
2400
 *             trace.append(u'%s.%s%s = %s' % (
 
2401
 *                 parent.__class__.__name__, attribute, index,
 
2402
 */
 
2403
      __pyx_t_3 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_11), __pyx_v_index); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 123; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
2404
      __Pyx_GOTREF(((PyObject *)__pyx_t_3));
 
2405
      __Pyx_DECREF(__pyx_v_index);
 
2406
      __pyx_v_index = ((PyObject *)__pyx_t_3);
 
2407
      __pyx_t_3 = 0;
 
2408
    }
 
2409
    __pyx_L8:;
 
2410
 
 
2411
    /* "Cython/Compiler/Visitor.py":124
 
2412
 *                 node = node[index]
 
2413
 *                 index = u'[%d]' % index
 
2414
 *             trace.append(u'%s.%s%s = %s' % (             # <<<<<<<<<<<<<<
 
2415
 *                 parent.__class__.__name__, attribute, index,
 
2416
 *                 self.dump_node(node)))
 
2417
 */
 
2418
    if (unlikely(__pyx_v_trace == Py_None)) {
 
2419
      PyErr_SetString(PyExc_AttributeError, "'NoneType' object has no attribute 'append'"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 124; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 
 
2420
    }
 
2421
 
 
2422
    /* "Cython/Compiler/Visitor.py":125
 
2423
 *                 index = u'[%d]' % index
 
2424
 *             trace.append(u'%s.%s%s = %s' % (
 
2425
 *                 parent.__class__.__name__, attribute, index,             # <<<<<<<<<<<<<<
 
2426
 *                 self.dump_node(node)))
 
2427
 *         stacktrace, called_nodes = self._find_node_path(sys.exc_info()[2])
 
2428
 */
 
2429
    __pyx_t_3 = PyObject_GetAttr(__pyx_v_parent, __pyx_n_s____class__); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 125; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
2430
    __Pyx_GOTREF(__pyx_t_3);
 
2431
    __pyx_t_6 = PyObject_GetAttr(__pyx_t_3, __pyx_n_s____name__); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 125; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
2432
    __Pyx_GOTREF(__pyx_t_6);
 
2433
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 
2434
 
 
2435
    /* "Cython/Compiler/Visitor.py":126
 
2436
 *             trace.append(u'%s.%s%s = %s' % (
 
2437
 *                 parent.__class__.__name__, attribute, index,
 
2438
 *                 self.dump_node(node)))             # <<<<<<<<<<<<<<
 
2439
 *         stacktrace, called_nodes = self._find_node_path(sys.exc_info()[2])
 
2440
 *         last_node = child
 
2441
 */
 
2442
    __pyx_t_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__dump_node); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 126; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
2443
    __Pyx_GOTREF(__pyx_t_3);
 
2444
    __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 126; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
2445
    __Pyx_GOTREF(((PyObject *)__pyx_t_5));
 
2446
    __Pyx_INCREF(__pyx_v_node);
 
2447
    PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_node);
 
2448
    __Pyx_GIVEREF(__pyx_v_node);
 
2449
    __pyx_t_4 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_t_5), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 126; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
2450
    __Pyx_GOTREF(__pyx_t_4);
 
2451
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 
2452
    __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
 
2453
    __pyx_t_5 = PyTuple_New(4); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 125; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
2454
    __Pyx_GOTREF(((PyObject *)__pyx_t_5));
 
2455
    PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_6);
 
2456
    __Pyx_GIVEREF(__pyx_t_6);
 
2457
    __Pyx_INCREF(__pyx_v_attribute);
 
2458
    PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_v_attribute);
 
2459
    __Pyx_GIVEREF(__pyx_v_attribute);
 
2460
    __Pyx_INCREF(__pyx_v_index);
 
2461
    PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_v_index);
 
2462
    __Pyx_GIVEREF(__pyx_v_index);
 
2463
    PyTuple_SET_ITEM(__pyx_t_5, 3, __pyx_t_4);
 
2464
    __Pyx_GIVEREF(__pyx_t_4);
 
2465
    __pyx_t_6 = 0;
 
2466
    __pyx_t_4 = 0;
 
2467
    __pyx_t_4 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_12), ((PyObject *)__pyx_t_5)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 124; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
2468
    __Pyx_GOTREF(((PyObject *)__pyx_t_4));
 
2469
    __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
 
2470
    __pyx_t_9 = PyList_Append(__pyx_v_trace, ((PyObject *)__pyx_t_4)); if (unlikely(__pyx_t_9 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 124; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
2471
    __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
 
2472
  }
 
2473
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
2474
 
 
2475
  /* "Cython/Compiler/Visitor.py":127
 
2476
 *                 parent.__class__.__name__, attribute, index,
 
2477
 *                 self.dump_node(node)))
 
2478
 *         stacktrace, called_nodes = self._find_node_path(sys.exc_info()[2])             # <<<<<<<<<<<<<<
 
2479
 *         last_node = child
 
2480
 *         for node, method_name, pos in called_nodes:
 
2481
 */
 
2482
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s___find_node_path); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 127; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
2483
  __Pyx_GOTREF(__pyx_t_1);
 
2484
  __pyx_t_4 = PyObject_GetAttr(__pyx_v_sys, __pyx_n_s__exc_info); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 127; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
2485
  __Pyx_GOTREF(__pyx_t_4);
 
2486
  __pyx_t_5 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 127; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
2487
  __Pyx_GOTREF(__pyx_t_5);
 
2488
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 
2489
  __pyx_t_4 = __Pyx_GetItemInt(__pyx_t_5, 2, sizeof(long), PyInt_FromLong); if (!__pyx_t_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 127; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
2490
  __Pyx_GOTREF(__pyx_t_4);
 
2491
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
 
2492
  __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 127; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
2493
  __Pyx_GOTREF(((PyObject *)__pyx_t_5));
 
2494
  PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_4);
 
2495
  __Pyx_GIVEREF(__pyx_t_4);
 
2496
  __pyx_t_4 = 0;
 
2497
  __pyx_t_4 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_5), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 127; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
2498
  __Pyx_GOTREF(__pyx_t_4);
 
2499
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
2500
  __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
 
2501
  if (PyTuple_CheckExact(__pyx_t_4) && likely(PyTuple_GET_SIZE(__pyx_t_4) == 2)) {
 
2502
    PyObject* tuple = __pyx_t_4;
 
2503
    __pyx_t_5 = PyTuple_GET_ITEM(tuple, 0); __Pyx_INCREF(__pyx_t_5);
 
2504
    __pyx_t_1 = PyTuple_GET_ITEM(tuple, 1); __Pyx_INCREF(__pyx_t_1);
 
2505
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 
2506
    __Pyx_DECREF(__pyx_v_stacktrace);
 
2507
    __pyx_v_stacktrace = __pyx_t_5;
 
2508
    __pyx_t_5 = 0;
 
2509
    __Pyx_DECREF(__pyx_v_called_nodes);
 
2510
    __pyx_v_called_nodes = __pyx_t_1;
 
2511
    __pyx_t_1 = 0;
 
2512
  } else {
 
2513
    __pyx_t_6 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 127; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
2514
    __Pyx_GOTREF(__pyx_t_6);
 
2515
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 
2516
    __pyx_t_5 = __Pyx_UnpackItem(__pyx_t_6, 0); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 127; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
2517
    __Pyx_GOTREF(__pyx_t_5);
 
2518
    __pyx_t_1 = __Pyx_UnpackItem(__pyx_t_6, 1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 127; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
2519
    __Pyx_GOTREF(__pyx_t_1);
 
2520
    if (__Pyx_EndUnpack(__pyx_t_6, 2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 127; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
2521
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
 
2522
    __Pyx_DECREF(__pyx_v_stacktrace);
 
2523
    __pyx_v_stacktrace = __pyx_t_5;
 
2524
    __pyx_t_5 = 0;
 
2525
    __Pyx_DECREF(__pyx_v_called_nodes);
 
2526
    __pyx_v_called_nodes = __pyx_t_1;
 
2527
    __pyx_t_1 = 0;
 
2528
  }
 
2529
 
 
2530
  /* "Cython/Compiler/Visitor.py":128
 
2531
 *                 self.dump_node(node)))
 
2532
 *         stacktrace, called_nodes = self._find_node_path(sys.exc_info()[2])
 
2533
 *         last_node = child             # <<<<<<<<<<<<<<
 
2534
 *         for node, method_name, pos in called_nodes:
 
2535
 *             last_node = node
 
2536
 */
 
2537
  __Pyx_INCREF(__pyx_v_child);
 
2538
  __Pyx_DECREF(__pyx_v_last_node);
 
2539
  __pyx_v_last_node = __pyx_v_child;
 
2540
 
 
2541
  /* "Cython/Compiler/Visitor.py":129
 
2542
 *         stacktrace, called_nodes = self._find_node_path(sys.exc_info()[2])
 
2543
 *         last_node = child
 
2544
 *         for node, method_name, pos in called_nodes:             # <<<<<<<<<<<<<<
 
2545
 *             last_node = node
 
2546
 *             trace.append(u"File '%s', line %d, in %s: %s" % (
 
2547
 */
 
2548
  if (PyList_CheckExact(__pyx_v_called_nodes) || PyTuple_CheckExact(__pyx_v_called_nodes)) {
 
2549
    __pyx_t_2 = 0; __pyx_t_4 = __pyx_v_called_nodes; __Pyx_INCREF(__pyx_t_4);
 
2550
  } else {
 
2551
    __pyx_t_2 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_v_called_nodes); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 129; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
2552
    __Pyx_GOTREF(__pyx_t_4);
 
2553
  }
 
2554
  for (;;) {
 
2555
    if (likely(PyList_CheckExact(__pyx_t_4))) {
 
2556
      if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_4)) break;
 
2557
      __pyx_t_1 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_2); __Pyx_INCREF(__pyx_t_1); __pyx_t_2++;
 
2558
    } else if (likely(PyTuple_CheckExact(__pyx_t_4))) {
 
2559
      if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_4)) break;
 
2560
      __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_2); __Pyx_INCREF(__pyx_t_1); __pyx_t_2++;
 
2561
    } else {
 
2562
      __pyx_t_1 = PyIter_Next(__pyx_t_4);
 
2563
      if (!__pyx_t_1) {
 
2564
        if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 129; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
2565
        break;
 
2566
      }
 
2567
      __Pyx_GOTREF(__pyx_t_1);
 
2568
    }
 
2569
    if (PyTuple_CheckExact(__pyx_t_1) && likely(PyTuple_GET_SIZE(__pyx_t_1) == 3)) {
 
2570
      PyObject* tuple = __pyx_t_1;
 
2571
      __pyx_t_5 = PyTuple_GET_ITEM(tuple, 0); __Pyx_INCREF(__pyx_t_5);
 
2572
      __pyx_t_6 = PyTuple_GET_ITEM(tuple, 1); __Pyx_INCREF(__pyx_t_6);
 
2573
      __pyx_t_3 = PyTuple_GET_ITEM(tuple, 2); __Pyx_INCREF(__pyx_t_3);
 
2574
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
2575
      __Pyx_DECREF(__pyx_v_node);
 
2576
      __pyx_v_node = __pyx_t_5;
 
2577
      __pyx_t_5 = 0;
 
2578
      __Pyx_DECREF(__pyx_v_method_name);
 
2579
      __pyx_v_method_name = __pyx_t_6;
 
2580
      __pyx_t_6 = 0;
 
2581
      __Pyx_DECREF(__pyx_v_pos);
 
2582
      __pyx_v_pos = __pyx_t_3;
 
2583
      __pyx_t_3 = 0;
 
2584
    } else {
 
2585
      __pyx_t_7 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 129; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
2586
      __Pyx_GOTREF(__pyx_t_7);
 
2587
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
2588
      __pyx_t_5 = __Pyx_UnpackItem(__pyx_t_7, 0); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 129; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
2589
      __Pyx_GOTREF(__pyx_t_5);
 
2590
      __pyx_t_6 = __Pyx_UnpackItem(__pyx_t_7, 1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 129; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
2591
      __Pyx_GOTREF(__pyx_t_6);
 
2592
      __pyx_t_3 = __Pyx_UnpackItem(__pyx_t_7, 2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 129; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
2593
      __Pyx_GOTREF(__pyx_t_3);
 
2594
      if (__Pyx_EndUnpack(__pyx_t_7, 3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 129; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
2595
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
 
2596
      __Pyx_DECREF(__pyx_v_node);
 
2597
      __pyx_v_node = __pyx_t_5;
 
2598
      __pyx_t_5 = 0;
 
2599
      __Pyx_DECREF(__pyx_v_method_name);
 
2600
      __pyx_v_method_name = __pyx_t_6;
 
2601
      __pyx_t_6 = 0;
 
2602
      __Pyx_DECREF(__pyx_v_pos);
 
2603
      __pyx_v_pos = __pyx_t_3;
 
2604
      __pyx_t_3 = 0;
 
2605
    }
 
2606
 
 
2607
    /* "Cython/Compiler/Visitor.py":130
 
2608
 *         last_node = child
 
2609
 *         for node, method_name, pos in called_nodes:
 
2610
 *             last_node = node             # <<<<<<<<<<<<<<
 
2611
 *             trace.append(u"File '%s', line %d, in %s: %s" % (
 
2612
 *                 pos[0], pos[1], method_name, self.dump_node(node)))
 
2613
 */
 
2614
    __Pyx_INCREF(__pyx_v_node);
 
2615
    __Pyx_DECREF(__pyx_v_last_node);
 
2616
    __pyx_v_last_node = __pyx_v_node;
 
2617
 
 
2618
    /* "Cython/Compiler/Visitor.py":131
 
2619
 *         for node, method_name, pos in called_nodes:
 
2620
 *             last_node = node
 
2621
 *             trace.append(u"File '%s', line %d, in %s: %s" % (             # <<<<<<<<<<<<<<
 
2622
 *                 pos[0], pos[1], method_name, self.dump_node(node)))
 
2623
 *         raise Errors.CompilerCrash(
 
2624
 */
 
2625
    if (unlikely(__pyx_v_trace == Py_None)) {
 
2626
      PyErr_SetString(PyExc_AttributeError, "'NoneType' object has no attribute 'append'"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 131; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 
 
2627
    }
 
2628
 
 
2629
    /* "Cython/Compiler/Visitor.py":132
 
2630
 *             last_node = node
 
2631
 *             trace.append(u"File '%s', line %d, in %s: %s" % (
 
2632
 *                 pos[0], pos[1], method_name, self.dump_node(node)))             # <<<<<<<<<<<<<<
 
2633
 *         raise Errors.CompilerCrash(
 
2634
 *             last_node.pos, self.__class__.__name__,
 
2635
 */
 
2636
    __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_pos, 0, sizeof(long), PyInt_FromLong); if (!__pyx_t_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 132; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
2637
    __Pyx_GOTREF(__pyx_t_1);
 
2638
    __pyx_t_3 = __Pyx_GetItemInt(__pyx_v_pos, 1, sizeof(long), PyInt_FromLong); if (!__pyx_t_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 132; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
2639
    __Pyx_GOTREF(__pyx_t_3);
 
2640
    __pyx_t_6 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__dump_node); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 132; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
2641
    __Pyx_GOTREF(__pyx_t_6);
 
2642
    __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 132; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
2643
    __Pyx_GOTREF(((PyObject *)__pyx_t_5));
 
2644
    __Pyx_INCREF(__pyx_v_node);
 
2645
    PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_node);
 
2646
    __Pyx_GIVEREF(__pyx_v_node);
 
2647
    __pyx_t_7 = PyObject_Call(__pyx_t_6, ((PyObject *)__pyx_t_5), NULL); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 132; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
2648
    __Pyx_GOTREF(__pyx_t_7);
 
2649
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
 
2650
    __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
 
2651
    __pyx_t_5 = PyTuple_New(4); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 132; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
2652
    __Pyx_GOTREF(((PyObject *)__pyx_t_5));
 
2653
    PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1);
 
2654
    __Pyx_GIVEREF(__pyx_t_1);
 
2655
    PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_3);
 
2656
    __Pyx_GIVEREF(__pyx_t_3);
 
2657
    __Pyx_INCREF(__pyx_v_method_name);
 
2658
    PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_v_method_name);
 
2659
    __Pyx_GIVEREF(__pyx_v_method_name);
 
2660
    PyTuple_SET_ITEM(__pyx_t_5, 3, __pyx_t_7);
 
2661
    __Pyx_GIVEREF(__pyx_t_7);
 
2662
    __pyx_t_1 = 0;
 
2663
    __pyx_t_3 = 0;
 
2664
    __pyx_t_7 = 0;
 
2665
    __pyx_t_7 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_13), ((PyObject *)__pyx_t_5)); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 131; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
2666
    __Pyx_GOTREF(((PyObject *)__pyx_t_7));
 
2667
    __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
 
2668
    __pyx_t_9 = PyList_Append(__pyx_v_trace, ((PyObject *)__pyx_t_7)); if (unlikely(__pyx_t_9 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 131; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
2669
    __Pyx_DECREF(((PyObject *)__pyx_t_7)); __pyx_t_7 = 0;
 
2670
  }
 
2671
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 
2672
 
 
2673
  /* "Cython/Compiler/Visitor.py":133
 
2674
 *             trace.append(u"File '%s', line %d, in %s: %s" % (
 
2675
 *                 pos[0], pos[1], method_name, self.dump_node(node)))
 
2676
 *         raise Errors.CompilerCrash(             # <<<<<<<<<<<<<<
 
2677
 *             last_node.pos, self.__class__.__name__,
 
2678
 *             u'\n'.join(trace), e, stacktrace)
 
2679
 */
 
2680
  __pyx_t_4 = __Pyx_GetName(__pyx_m, __pyx_n_s__Errors); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 133; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
2681
  __Pyx_GOTREF(__pyx_t_4);
 
2682
  __pyx_t_7 = PyObject_GetAttr(__pyx_t_4, __pyx_n_s__CompilerCrash); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 133; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
2683
  __Pyx_GOTREF(__pyx_t_7);
 
2684
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 
2685
 
 
2686
  /* "Cython/Compiler/Visitor.py":134
 
2687
 *                 pos[0], pos[1], method_name, self.dump_node(node)))
 
2688
 *         raise Errors.CompilerCrash(
 
2689
 *             last_node.pos, self.__class__.__name__,             # <<<<<<<<<<<<<<
 
2690
 *             u'\n'.join(trace), e, stacktrace)
 
2691
 * 
 
2692
 */
 
2693
  __pyx_t_4 = PyObject_GetAttr(__pyx_v_last_node, __pyx_n_s__pos); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 134; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
2694
  __Pyx_GOTREF(__pyx_t_4);
 
2695
  __pyx_t_5 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s____class__); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 134; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
2696
  __Pyx_GOTREF(__pyx_t_5);
 
2697
  __pyx_t_3 = PyObject_GetAttr(__pyx_t_5, __pyx_n_s____name__); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 134; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
2698
  __Pyx_GOTREF(__pyx_t_3);
 
2699
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
 
2700
 
 
2701
  /* "Cython/Compiler/Visitor.py":135
 
2702
 *         raise Errors.CompilerCrash(
 
2703
 *             last_node.pos, self.__class__.__name__,
 
2704
 *             u'\n'.join(trace), e, stacktrace)             # <<<<<<<<<<<<<<
 
2705
 * 
 
2706
 *     def find_handler(self, obj):
 
2707
 */
 
2708
  __pyx_t_5 = ((PyObject *)PyUnicode_Join(__pyx_kp_u_14, ((PyObject *)__pyx_v_trace))); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 135; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
2709
  __Pyx_GOTREF(__pyx_t_5);
 
2710
  __pyx_t_1 = PyTuple_New(5); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 133; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
2711
  __Pyx_GOTREF(((PyObject *)__pyx_t_1));
 
2712
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_4);
 
2713
  __Pyx_GIVEREF(__pyx_t_4);
 
2714
  PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_3);
 
2715
  __Pyx_GIVEREF(__pyx_t_3);
 
2716
  PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_t_5);
 
2717
  __Pyx_GIVEREF(__pyx_t_5);
 
2718
  __Pyx_INCREF(__pyx_v_e);
 
2719
  PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_e);
 
2720
  __Pyx_GIVEREF(__pyx_v_e);
 
2721
  __Pyx_INCREF(__pyx_v_stacktrace);
 
2722
  PyTuple_SET_ITEM(__pyx_t_1, 4, __pyx_v_stacktrace);
 
2723
  __Pyx_GIVEREF(__pyx_v_stacktrace);
 
2724
  __pyx_t_4 = 0;
 
2725
  __pyx_t_3 = 0;
 
2726
  __pyx_t_5 = 0;
 
2727
  __pyx_t_5 = PyObject_Call(__pyx_t_7, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 133; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
2728
  __Pyx_GOTREF(__pyx_t_5);
 
2729
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
 
2730
  __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
 
2731
  __Pyx_Raise(__pyx_t_5, 0, 0);
 
2732
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
 
2733
  {__pyx_filename = __pyx_f[0]; __pyx_lineno = 133; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
2734
 
 
2735
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
 
2736
  goto __pyx_L0;
 
2737
  __pyx_L1_error:;
 
2738
  __Pyx_XDECREF(__pyx_t_1);
 
2739
  __Pyx_XDECREF(__pyx_t_3);
 
2740
  __Pyx_XDECREF(__pyx_t_4);
 
2741
  __Pyx_XDECREF(__pyx_t_5);
 
2742
  __Pyx_XDECREF(__pyx_t_6);
 
2743
  __Pyx_XDECREF(__pyx_t_7);
 
2744
  __Pyx_AddTraceback("Cython.Compiler.Visitor.TreeVisitor._raise_compiler_error");
 
2745
  __pyx_r = NULL;
 
2746
  __pyx_L0:;
 
2747
  __Pyx_DECREF(__pyx_v_sys);
 
2748
  __Pyx_DECREF(__pyx_v_trace);
 
2749
  __Pyx_DECREF(__pyx_v_parent);
 
2750
  __Pyx_DECREF(__pyx_v_attribute);
 
2751
  __Pyx_DECREF(__pyx_v_index);
 
2752
  __Pyx_DECREF(__pyx_v_node);
 
2753
  __Pyx_DECREF(__pyx_v_stacktrace);
 
2754
  __Pyx_DECREF(__pyx_v_called_nodes);
 
2755
  __Pyx_DECREF(__pyx_v_last_node);
 
2756
  __Pyx_DECREF(__pyx_v_method_name);
 
2757
  __Pyx_DECREF(__pyx_v_pos);
 
2758
  __Pyx_XGIVEREF(__pyx_r);
 
2759
  __Pyx_RefNannyFinishContext();
 
2760
  return __pyx_r;
 
2761
}
 
2762
 
 
2763
/* "Cython/Compiler/Visitor.py":137
 
2764
 *             u'\n'.join(trace), e, stacktrace)
 
2765
 * 
 
2766
 *     def find_handler(self, obj):             # <<<<<<<<<<<<<<
 
2767
 *         # to resolve, try entire hierarchy
 
2768
 *         cls = type(obj)
 
2769
 */
 
2770
 
 
2771
static  PyObject *__pyx_f_6Cython_8Compiler_7Visitor_11TreeVisitor_find_handler(struct __pyx_obj_6Cython_8Compiler_7Visitor_TreeVisitor *__pyx_v_self, PyObject *__pyx_v_obj) {
 
2772
  PyObject *__pyx_v_cls;
 
2773
  PyObject *__pyx_v_pattern;
 
2774
  PyObject *__pyx_v_mro;
 
2775
  PyObject *__pyx_v_handler_method;
 
2776
  PyObject *__pyx_v_mro_cls;
 
2777
  PyObject *__pyx_r = NULL;
 
2778
  PyObject *__pyx_t_1 = NULL;
 
2779
  PyObject *__pyx_t_2 = NULL;
 
2780
  PyObject *__pyx_t_3 = NULL;
 
2781
  Py_ssize_t __pyx_t_4;
 
2782
  PyObject *__pyx_t_5 = NULL;
 
2783
  PyObject *__pyx_t_6 = NULL;
 
2784
  int __pyx_t_7;
 
2785
  __Pyx_RefNannySetupContext("find_handler");
 
2786
  __pyx_v_cls = ((PyObject*)Py_None); __Pyx_INCREF(Py_None);
 
2787
  __pyx_v_pattern = ((PyObject*)Py_None); __Pyx_INCREF(Py_None);
 
2788
  __pyx_v_mro = Py_None; __Pyx_INCREF(Py_None);
 
2789
  __pyx_v_handler_method = Py_None; __Pyx_INCREF(Py_None);
 
2790
  __pyx_v_mro_cls = Py_None; __Pyx_INCREF(Py_None);
 
2791
 
 
2792
  /* "Cython/Compiler/Visitor.py":139
 
2793
 *     def find_handler(self, obj):
 
2794
 *         # to resolve, try entire hierarchy
 
2795
 *         cls = type(obj)             # <<<<<<<<<<<<<<
 
2796
 *         pattern = "visit_%s"
 
2797
 *         mro = inspect.getmro(cls)
 
2798
 */
 
2799
  __Pyx_INCREF(((PyObject *)Py_TYPE(__pyx_v_obj)));
 
2800
  __Pyx_DECREF(((PyObject *)__pyx_v_cls));
 
2801
  __pyx_v_cls = ((PyObject*)((PyObject *)Py_TYPE(__pyx_v_obj)));
 
2802
 
 
2803
  /* "Cython/Compiler/Visitor.py":140
 
2804
 *         # to resolve, try entire hierarchy
 
2805
 *         cls = type(obj)
 
2806
 *         pattern = "visit_%s"             # <<<<<<<<<<<<<<
 
2807
 *         mro = inspect.getmro(cls)
 
2808
 *         handler_method = None
 
2809
 */
 
2810
  __Pyx_INCREF(((PyObject *)__pyx_kp_s_15));
 
2811
  __Pyx_DECREF(((PyObject *)__pyx_v_pattern));
 
2812
  __pyx_v_pattern = __pyx_kp_s_15;
 
2813
 
 
2814
  /* "Cython/Compiler/Visitor.py":141
 
2815
 *         cls = type(obj)
 
2816
 *         pattern = "visit_%s"
 
2817
 *         mro = inspect.getmro(cls)             # <<<<<<<<<<<<<<
 
2818
 *         handler_method = None
 
2819
 *         for mro_cls in mro:
 
2820
 */
 
2821
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__inspect); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 141; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
2822
  __Pyx_GOTREF(__pyx_t_1);
 
2823
  __pyx_t_2 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__getmro); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 141; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
2824
  __Pyx_GOTREF(__pyx_t_2);
 
2825
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
2826
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 141; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
2827
  __Pyx_GOTREF(((PyObject *)__pyx_t_1));
 
2828
  __Pyx_INCREF(((PyObject *)__pyx_v_cls));
 
2829
  PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_cls));
 
2830
  __Pyx_GIVEREF(((PyObject *)__pyx_v_cls));
 
2831
  __pyx_t_3 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 141; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
2832
  __Pyx_GOTREF(__pyx_t_3);
 
2833
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 
2834
  __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
 
2835
  __Pyx_DECREF(__pyx_v_mro);
 
2836
  __pyx_v_mro = __pyx_t_3;
 
2837
  __pyx_t_3 = 0;
 
2838
 
 
2839
  /* "Cython/Compiler/Visitor.py":142
 
2840
 *         pattern = "visit_%s"
 
2841
 *         mro = inspect.getmro(cls)
 
2842
 *         handler_method = None             # <<<<<<<<<<<<<<
 
2843
 *         for mro_cls in mro:
 
2844
 *             handler_method = getattr(self, pattern % mro_cls.__name__, None)
 
2845
 */
 
2846
  __Pyx_INCREF(Py_None);
 
2847
  __Pyx_DECREF(__pyx_v_handler_method);
 
2848
  __pyx_v_handler_method = Py_None;
 
2849
 
 
2850
  /* "Cython/Compiler/Visitor.py":143
 
2851
 *         mro = inspect.getmro(cls)
 
2852
 *         handler_method = None
 
2853
 *         for mro_cls in mro:             # <<<<<<<<<<<<<<
 
2854
 *             handler_method = getattr(self, pattern % mro_cls.__name__, None)
 
2855
 *             if handler_method is not None:
 
2856
 */
 
2857
  if (PyList_CheckExact(__pyx_v_mro) || PyTuple_CheckExact(__pyx_v_mro)) {
 
2858
    __pyx_t_4 = 0; __pyx_t_3 = __pyx_v_mro; __Pyx_INCREF(__pyx_t_3);
 
2859
  } else {
 
2860
    __pyx_t_4 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_v_mro); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 143; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
2861
    __Pyx_GOTREF(__pyx_t_3);
 
2862
  }
 
2863
  for (;;) {
 
2864
    if (likely(PyList_CheckExact(__pyx_t_3))) {
 
2865
      if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_3)) break;
 
2866
      __pyx_t_1 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_4); __Pyx_INCREF(__pyx_t_1); __pyx_t_4++;
 
2867
    } else if (likely(PyTuple_CheckExact(__pyx_t_3))) {
 
2868
      if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_3)) break;
 
2869
      __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_4); __Pyx_INCREF(__pyx_t_1); __pyx_t_4++;
 
2870
    } else {
 
2871
      __pyx_t_1 = PyIter_Next(__pyx_t_3);
 
2872
      if (!__pyx_t_1) {
 
2873
        if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 143; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
2874
        break;
 
2875
      }
 
2876
      __Pyx_GOTREF(__pyx_t_1);
 
2877
    }
 
2878
    __Pyx_DECREF(__pyx_v_mro_cls);
 
2879
    __pyx_v_mro_cls = __pyx_t_1;
 
2880
    __pyx_t_1 = 0;
 
2881
 
 
2882
    /* "Cython/Compiler/Visitor.py":144
 
2883
 *         handler_method = None
 
2884
 *         for mro_cls in mro:
 
2885
 *             handler_method = getattr(self, pattern % mro_cls.__name__, None)             # <<<<<<<<<<<<<<
 
2886
 *             if handler_method is not None:
 
2887
 *                 return handler_method
 
2888
 */
 
2889
    __pyx_t_1 = ((PyObject *)__pyx_v_self);
 
2890
    __Pyx_INCREF(__pyx_t_1);
 
2891
    __pyx_t_2 = PyObject_GetAttr(__pyx_v_mro_cls, __pyx_n_s____name__); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 144; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
2892
    __Pyx_GOTREF(__pyx_t_2);
 
2893
    __pyx_t_5 = PyNumber_Remainder(((PyObject *)__pyx_v_pattern), __pyx_t_2); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 144; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
2894
    __Pyx_GOTREF(((PyObject *)__pyx_t_5));
 
2895
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 
2896
    __pyx_t_2 = Py_None;
 
2897
    __Pyx_INCREF(__pyx_t_2);
 
2898
    __pyx_t_6 = __Pyx_GetAttr3(__pyx_t_1, ((PyObject *)__pyx_t_5), __pyx_t_2); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 144; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
2899
    __Pyx_GOTREF(__pyx_t_6);
 
2900
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
2901
    __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
 
2902
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 
2903
    __Pyx_DECREF(__pyx_v_handler_method);
 
2904
    __pyx_v_handler_method = __pyx_t_6;
 
2905
    __pyx_t_6 = 0;
 
2906
 
 
2907
    /* "Cython/Compiler/Visitor.py":145
 
2908
 *         for mro_cls in mro:
 
2909
 *             handler_method = getattr(self, pattern % mro_cls.__name__, None)
 
2910
 *             if handler_method is not None:             # <<<<<<<<<<<<<<
 
2911
 *                 return handler_method
 
2912
 *         print type(self), cls
 
2913
 */
 
2914
    __pyx_t_7 = (__pyx_v_handler_method != Py_None);
 
2915
    if (__pyx_t_7) {
 
2916
 
 
2917
      /* "Cython/Compiler/Visitor.py":146
 
2918
 *             handler_method = getattr(self, pattern % mro_cls.__name__, None)
 
2919
 *             if handler_method is not None:
 
2920
 *                 return handler_method             # <<<<<<<<<<<<<<
 
2921
 *         print type(self), cls
 
2922
 *         if self.access_path:
 
2923
 */
 
2924
      __Pyx_XDECREF(__pyx_r);
 
2925
      __Pyx_INCREF(__pyx_v_handler_method);
 
2926
      __pyx_r = __pyx_v_handler_method;
 
2927
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 
2928
      goto __pyx_L0;
 
2929
      goto __pyx_L5;
 
2930
    }
 
2931
    __pyx_L5:;
 
2932
  }
 
2933
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 
2934
 
 
2935
  /* "Cython/Compiler/Visitor.py":147
 
2936
 *             if handler_method is not None:
 
2937
 *                 return handler_method
 
2938
 *         print type(self), cls             # <<<<<<<<<<<<<<
 
2939
 *         if self.access_path:
 
2940
 *             print self.access_path
 
2941
 */
 
2942
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 147; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
2943
  __Pyx_GOTREF(((PyObject *)__pyx_t_3));
 
2944
  __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
 
2945
  PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
 
2946
  __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
 
2947
  __Pyx_INCREF(((PyObject *)__pyx_v_cls));
 
2948
  PyTuple_SET_ITEM(__pyx_t_3, 1, ((PyObject *)__pyx_v_cls));
 
2949
  __Pyx_GIVEREF(((PyObject *)__pyx_v_cls));
 
2950
  if (__Pyx_Print(0, ((PyObject *)__pyx_t_3), 1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 147; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
2951
  __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
 
2952
 
 
2953
  /* "Cython/Compiler/Visitor.py":148
 
2954
 *                 return handler_method
 
2955
 *         print type(self), cls
 
2956
 *         if self.access_path:             # <<<<<<<<<<<<<<
 
2957
 *             print self.access_path
 
2958
 *             print self.access_path[-1][0].pos
 
2959
 */
 
2960
  __pyx_t_7 = (((PyObject *)__pyx_v_self->access_path) != Py_None) && (PyList_GET_SIZE(((PyObject *)__pyx_v_self->access_path)) != 0);
 
2961
  if (__pyx_t_7) {
 
2962
 
 
2963
    /* "Cython/Compiler/Visitor.py":149
 
2964
 *         print type(self), cls
 
2965
 *         if self.access_path:
 
2966
 *             print self.access_path             # <<<<<<<<<<<<<<
 
2967
 *             print self.access_path[-1][0].pos
 
2968
 *             print self.access_path[-1][0].__dict__
 
2969
 */
 
2970
    if (__Pyx_PrintOne(0, ((PyObject *)__pyx_v_self->access_path)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 149; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
2971
 
 
2972
    /* "Cython/Compiler/Visitor.py":150
 
2973
 *         if self.access_path:
 
2974
 *             print self.access_path
 
2975
 *             print self.access_path[-1][0].pos             # <<<<<<<<<<<<<<
 
2976
 *             print self.access_path[-1][0].__dict__
 
2977
 *         raise RuntimeError("Visitor %r does not accept object: %s" % (self, obj))
 
2978
 */
 
2979
    __pyx_t_3 = __Pyx_GetItemInt_List(((PyObject *)__pyx_v_self->access_path), -1, sizeof(long), PyInt_FromLong); if (!__pyx_t_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 150; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
2980
    __Pyx_GOTREF(__pyx_t_3);
 
2981
    __pyx_t_6 = __Pyx_GetItemInt(__pyx_t_3, 0, sizeof(long), PyInt_FromLong); if (!__pyx_t_6) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 150; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
2982
    __Pyx_GOTREF(__pyx_t_6);
 
2983
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 
2984
    __pyx_t_3 = PyObject_GetAttr(__pyx_t_6, __pyx_n_s__pos); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 150; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
2985
    __Pyx_GOTREF(__pyx_t_3);
 
2986
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
 
2987
    if (__Pyx_PrintOne(0, __pyx_t_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 150; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
2988
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 
2989
 
 
2990
    /* "Cython/Compiler/Visitor.py":151
 
2991
 *             print self.access_path
 
2992
 *             print self.access_path[-1][0].pos
 
2993
 *             print self.access_path[-1][0].__dict__             # <<<<<<<<<<<<<<
 
2994
 *         raise RuntimeError("Visitor %r does not accept object: %s" % (self, obj))
 
2995
 * 
 
2996
 */
 
2997
    __pyx_t_3 = __Pyx_GetItemInt_List(((PyObject *)__pyx_v_self->access_path), -1, sizeof(long), PyInt_FromLong); if (!__pyx_t_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 151; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
2998
    __Pyx_GOTREF(__pyx_t_3);
 
2999
    __pyx_t_6 = __Pyx_GetItemInt(__pyx_t_3, 0, sizeof(long), PyInt_FromLong); if (!__pyx_t_6) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 151; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
3000
    __Pyx_GOTREF(__pyx_t_6);
 
3001
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 
3002
    __pyx_t_3 = PyObject_GetAttr(__pyx_t_6, __pyx_n_s____dict__); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 151; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
3003
    __Pyx_GOTREF(__pyx_t_3);
 
3004
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
 
3005
    if (__Pyx_PrintOne(0, __pyx_t_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 151; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
3006
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 
3007
    goto __pyx_L6;
 
3008
  }
 
3009
  __pyx_L6:;
 
3010
 
 
3011
  /* "Cython/Compiler/Visitor.py":152
 
3012
 *             print self.access_path[-1][0].pos
 
3013
 *             print self.access_path[-1][0].__dict__
 
3014
 *         raise RuntimeError("Visitor %r does not accept object: %s" % (self, obj))             # <<<<<<<<<<<<<<
 
3015
 * 
 
3016
 *     def visit(self, obj):
 
3017
 */
 
3018
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 152; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
3019
  __Pyx_GOTREF(((PyObject *)__pyx_t_3));
 
3020
  __Pyx_INCREF(((PyObject *)__pyx_v_self));
 
3021
  PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_v_self));
 
3022
  __Pyx_GIVEREF(((PyObject *)__pyx_v_self));
 
3023
  __Pyx_INCREF(__pyx_v_obj);
 
3024
  PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_obj);
 
3025
  __Pyx_GIVEREF(__pyx_v_obj);
 
3026
  __pyx_t_6 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_16), ((PyObject *)__pyx_t_3)); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 152; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
3027
  __Pyx_GOTREF(((PyObject *)__pyx_t_6));
 
3028
  __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
 
3029
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 152; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
3030
  __Pyx_GOTREF(((PyObject *)__pyx_t_3));
 
3031
  PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_t_6));
 
3032
  __Pyx_GIVEREF(((PyObject *)__pyx_t_6));
 
3033
  __pyx_t_6 = 0;
 
3034
  __pyx_t_6 = PyObject_Call(__pyx_builtin_RuntimeError, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 152; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
3035
  __Pyx_GOTREF(__pyx_t_6);
 
3036
  __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
 
3037
  __Pyx_Raise(__pyx_t_6, 0, 0);
 
3038
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
 
3039
  {__pyx_filename = __pyx_f[0]; __pyx_lineno = 152; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
3040
 
 
3041
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
 
3042
  goto __pyx_L0;
 
3043
  __pyx_L1_error:;
 
3044
  __Pyx_XDECREF(__pyx_t_1);
 
3045
  __Pyx_XDECREF(__pyx_t_2);
 
3046
  __Pyx_XDECREF(__pyx_t_3);
 
3047
  __Pyx_XDECREF(__pyx_t_5);
 
3048
  __Pyx_XDECREF(__pyx_t_6);
 
3049
  __Pyx_AddTraceback("Cython.Compiler.Visitor.TreeVisitor.find_handler");
 
3050
  __pyx_r = 0;
 
3051
  __pyx_L0:;
 
3052
  __Pyx_DECREF(__pyx_v_cls);
 
3053
  __Pyx_DECREF(__pyx_v_pattern);
 
3054
  __Pyx_DECREF(__pyx_v_mro);
 
3055
  __Pyx_DECREF(__pyx_v_handler_method);
 
3056
  __Pyx_DECREF(__pyx_v_mro_cls);
 
3057
  __Pyx_XGIVEREF(__pyx_r);
 
3058
  __Pyx_RefNannyFinishContext();
 
3059
  return __pyx_r;
 
3060
}
 
3061
 
 
3062
/* "Cython/Compiler/Visitor.py":154
 
3063
 *         raise RuntimeError("Visitor %r does not accept object: %s" % (self, obj))
 
3064
 * 
 
3065
 *     def visit(self, obj):             # <<<<<<<<<<<<<<
 
3066
 *         return self._visit(obj)
 
3067
 * 
 
3068
 */
 
3069
 
 
3070
static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_11TreeVisitor_4visit(PyObject *__pyx_v_self, PyObject *__pyx_v_obj); /*proto*/
 
3071
static  PyObject *__pyx_f_6Cython_8Compiler_7Visitor_11TreeVisitor_visit(struct __pyx_obj_6Cython_8Compiler_7Visitor_TreeVisitor *__pyx_v_self, PyObject *__pyx_v_obj, int __pyx_skip_dispatch) {
 
3072
  PyObject *__pyx_r = NULL;
 
3073
  PyObject *__pyx_t_1 = NULL;
 
3074
  PyObject *__pyx_t_2 = NULL;
 
3075
  PyObject *__pyx_t_3 = NULL;
 
3076
  __Pyx_RefNannySetupContext("visit");
 
3077
  /* Check if called by wrapper */
 
3078
  if (unlikely(__pyx_skip_dispatch)) ;
 
3079
  /* Check if overriden in Python */
 
3080
  else if (unlikely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0)) {
 
3081
    __pyx_t_1 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s__visit); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 154; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
3082
    __Pyx_GOTREF(__pyx_t_1);
 
3083
    if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (void *)&__pyx_pf_6Cython_8Compiler_7Visitor_11TreeVisitor_4visit)) {
 
3084
      __Pyx_XDECREF(__pyx_r);
 
3085
      __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 154; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
3086
      __Pyx_GOTREF(((PyObject *)__pyx_t_2));
 
3087
      __Pyx_INCREF(__pyx_v_obj);
 
3088
      PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_obj);
 
3089
      __Pyx_GIVEREF(__pyx_v_obj);
 
3090
      __pyx_t_3 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 154; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
3091
      __Pyx_GOTREF(__pyx_t_3);
 
3092
      __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
 
3093
      __pyx_r = __pyx_t_3;
 
3094
      __pyx_t_3 = 0;
 
3095
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
3096
      goto __pyx_L0;
 
3097
    }
 
3098
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
3099
  }
 
3100
 
 
3101
  /* "Cython/Compiler/Visitor.py":155
 
3102
 * 
 
3103
 *     def visit(self, obj):
 
3104
 *         return self._visit(obj)             # <<<<<<<<<<<<<<
 
3105
 * 
 
3106
 *     def _visit(self, obj):
 
3107
 */
 
3108
  __Pyx_XDECREF(__pyx_r);
 
3109
  __pyx_t_1 = __pyx_v_obj;
 
3110
  __Pyx_INCREF(__pyx_t_1);
 
3111
  __pyx_t_3 = ((struct __pyx_vtabstruct_6Cython_8Compiler_7Visitor_TreeVisitor *)__pyx_v_self->__pyx_vtab)->_visit(__pyx_v_self, __pyx_t_1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 155; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
3112
  __Pyx_GOTREF(__pyx_t_3);
 
3113
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
3114
  __pyx_r = __pyx_t_3;
 
3115
  __pyx_t_3 = 0;
 
3116
  goto __pyx_L0;
 
3117
 
 
3118
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
 
3119
  goto __pyx_L0;
 
3120
  __pyx_L1_error:;
 
3121
  __Pyx_XDECREF(__pyx_t_1);
 
3122
  __Pyx_XDECREF(__pyx_t_2);
 
3123
  __Pyx_XDECREF(__pyx_t_3);
 
3124
  __Pyx_AddTraceback("Cython.Compiler.Visitor.TreeVisitor.visit");
 
3125
  __pyx_r = 0;
 
3126
  __pyx_L0:;
 
3127
  __Pyx_XGIVEREF(__pyx_r);
 
3128
  __Pyx_RefNannyFinishContext();
 
3129
  return __pyx_r;
 
3130
}
 
3131
 
 
3132
/* "Cython/Compiler/Visitor.py":154
 
3133
 *         raise RuntimeError("Visitor %r does not accept object: %s" % (self, obj))
 
3134
 * 
 
3135
 *     def visit(self, obj):             # <<<<<<<<<<<<<<
 
3136
 *         return self._visit(obj)
 
3137
 * 
 
3138
 */
 
3139
 
 
3140
static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_11TreeVisitor_4visit(PyObject *__pyx_v_self, PyObject *__pyx_v_obj); /*proto*/
 
3141
static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_11TreeVisitor_4visit(PyObject *__pyx_v_self, PyObject *__pyx_v_obj) {
 
3142
  PyObject *__pyx_r = NULL;
 
3143
  PyObject *__pyx_t_1 = NULL;
 
3144
  PyObject *__pyx_t_2 = NULL;
 
3145
  __Pyx_RefNannySetupContext("visit");
 
3146
  __Pyx_XDECREF(__pyx_r);
 
3147
  __pyx_t_1 = __pyx_v_obj;
 
3148
  __Pyx_INCREF(__pyx_t_1);
 
3149
  __pyx_t_2 = ((struct __pyx_vtabstruct_6Cython_8Compiler_7Visitor_TreeVisitor *)((struct __pyx_obj_6Cython_8Compiler_7Visitor_TreeVisitor *)__pyx_v_self)->__pyx_vtab)->visit(((struct __pyx_obj_6Cython_8Compiler_7Visitor_TreeVisitor *)__pyx_v_self), __pyx_t_1, 1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 154; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
3150
  __Pyx_GOTREF(__pyx_t_2);
 
3151
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
3152
  __pyx_r = __pyx_t_2;
 
3153
  __pyx_t_2 = 0;
 
3154
  goto __pyx_L0;
 
3155
 
 
3156
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
 
3157
  goto __pyx_L0;
 
3158
  __pyx_L1_error:;
 
3159
  __Pyx_XDECREF(__pyx_t_1);
 
3160
  __Pyx_XDECREF(__pyx_t_2);
 
3161
  __Pyx_AddTraceback("Cython.Compiler.Visitor.TreeVisitor.visit");
 
3162
  __pyx_r = NULL;
 
3163
  __pyx_L0:;
 
3164
  __Pyx_XGIVEREF(__pyx_r);
 
3165
  __Pyx_RefNannyFinishContext();
 
3166
  return __pyx_r;
 
3167
}
 
3168
 
 
3169
/* "Cython/Compiler/Visitor.py":157
 
3170
 *         return self._visit(obj)
 
3171
 * 
 
3172
 *     def _visit(self, obj):             # <<<<<<<<<<<<<<
 
3173
 *         try:
 
3174
 *             handler_method = self.dispatch_table[type(obj)]
 
3175
 */
 
3176
 
 
3177
static  PyObject *__pyx_f_6Cython_8Compiler_7Visitor_11TreeVisitor__visit(struct __pyx_obj_6Cython_8Compiler_7Visitor_TreeVisitor *__pyx_v_self, PyObject *__pyx_v_obj) {
 
3178
  PyObject *__pyx_v_handler_method;
 
3179
  PyObject *__pyx_r = NULL;
 
3180
  PyObject *__pyx_t_1 = NULL;
 
3181
  int __pyx_t_2;
 
3182
  PyObject *__pyx_t_3 = NULL;
 
3183
  PyObject *__pyx_t_4 = NULL;
 
3184
  PyObject *__pyx_t_5 = NULL;
 
3185
  PyObject *__pyx_t_6 = NULL;
 
3186
  __Pyx_RefNannySetupContext("_visit");
 
3187
  __pyx_v_handler_method = Py_None; __Pyx_INCREF(Py_None);
 
3188
 
 
3189
  /* "Cython/Compiler/Visitor.py":158
 
3190
 * 
 
3191
 *     def _visit(self, obj):
 
3192
 *         try:             # <<<<<<<<<<<<<<
 
3193
 *             handler_method = self.dispatch_table[type(obj)]
 
3194
 *         except KeyError:
 
3195
 */
 
3196
  {
 
3197
    PyObject *__pyx_save_exc_type, *__pyx_save_exc_value, *__pyx_save_exc_tb;
 
3198
    __Pyx_ExceptionSave(&__pyx_save_exc_type, &__pyx_save_exc_value, &__pyx_save_exc_tb);
 
3199
    __Pyx_XGOTREF(__pyx_save_exc_type);
 
3200
    __Pyx_XGOTREF(__pyx_save_exc_value);
 
3201
    __Pyx_XGOTREF(__pyx_save_exc_tb);
 
3202
    /*try:*/ {
 
3203
 
 
3204
      /* "Cython/Compiler/Visitor.py":159
 
3205
 *     def _visit(self, obj):
 
3206
 *         try:
 
3207
 *             handler_method = self.dispatch_table[type(obj)]             # <<<<<<<<<<<<<<
 
3208
 *         except KeyError:
 
3209
 *             handler_method = self.find_handler(obj)
 
3210
 */
 
3211
      __pyx_t_1 = __Pyx_PyDict_GetItem(((PyObject *)__pyx_v_self->dispatch_table), ((PyObject *)Py_TYPE(__pyx_v_obj))); if (!__pyx_t_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 159; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 
3212
      __Pyx_GOTREF(__pyx_t_1);
 
3213
      __Pyx_DECREF(__pyx_v_handler_method);
 
3214
      __pyx_v_handler_method = __pyx_t_1;
 
3215
      __pyx_t_1 = 0;
 
3216
    }
 
3217
    __Pyx_XDECREF(__pyx_save_exc_type); __pyx_save_exc_type = 0;
 
3218
    __Pyx_XDECREF(__pyx_save_exc_value); __pyx_save_exc_value = 0;
 
3219
    __Pyx_XDECREF(__pyx_save_exc_tb); __pyx_save_exc_tb = 0;
 
3220
    goto __pyx_L10_try_end;
 
3221
    __pyx_L3_error:;
 
3222
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
 
3223
 
 
3224
    /* "Cython/Compiler/Visitor.py":160
 
3225
 *         try:
 
3226
 *             handler_method = self.dispatch_table[type(obj)]
 
3227
 *         except KeyError:             # <<<<<<<<<<<<<<
 
3228
 *             handler_method = self.find_handler(obj)
 
3229
 *             self.dispatch_table[type(obj)] = handler_method
 
3230
 */
 
3231
    __pyx_t_2 = PyErr_ExceptionMatches(__pyx_builtin_KeyError);
 
3232
    if (__pyx_t_2) {
 
3233
      __Pyx_AddTraceback("Cython.Compiler.Visitor.TreeVisitor._visit");
 
3234
      if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_3, &__pyx_t_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 160; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
 
3235
      __Pyx_GOTREF(__pyx_t_1);
 
3236
      __Pyx_GOTREF(__pyx_t_3);
 
3237
      __Pyx_GOTREF(__pyx_t_4);
 
3238
 
 
3239
      /* "Cython/Compiler/Visitor.py":161
 
3240
 *             handler_method = self.dispatch_table[type(obj)]
 
3241
 *         except KeyError:
 
3242
 *             handler_method = self.find_handler(obj)             # <<<<<<<<<<<<<<
 
3243
 *             self.dispatch_table[type(obj)] = handler_method
 
3244
 *         return handler_method(obj)
 
3245
 */
 
3246
      __pyx_t_5 = __pyx_v_obj;
 
3247
      __Pyx_INCREF(__pyx_t_5);
 
3248
      __pyx_t_6 = ((struct __pyx_vtabstruct_6Cython_8Compiler_7Visitor_TreeVisitor *)__pyx_v_self->__pyx_vtab)->find_handler(__pyx_v_self, __pyx_t_5); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 161; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
 
3249
      __Pyx_GOTREF(__pyx_t_6);
 
3250
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
 
3251
      __Pyx_DECREF(__pyx_v_handler_method);
 
3252
      __pyx_v_handler_method = __pyx_t_6;
 
3253
      __pyx_t_6 = 0;
 
3254
 
 
3255
      /* "Cython/Compiler/Visitor.py":162
 
3256
 *         except KeyError:
 
3257
 *             handler_method = self.find_handler(obj)
 
3258
 *             self.dispatch_table[type(obj)] = handler_method             # <<<<<<<<<<<<<<
 
3259
 *         return handler_method(obj)
 
3260
 * 
 
3261
 */
 
3262
      if (PyDict_SetItem(((PyObject *)__pyx_v_self->dispatch_table), ((PyObject *)Py_TYPE(__pyx_v_obj)), __pyx_v_handler_method) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 162; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
 
3263
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
3264
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 
3265
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 
3266
      goto __pyx_L4_exception_handled;
 
3267
    }
 
3268
    __pyx_L5_except_error:;
 
3269
    __Pyx_XGIVEREF(__pyx_save_exc_type);
 
3270
    __Pyx_XGIVEREF(__pyx_save_exc_value);
 
3271
    __Pyx_XGIVEREF(__pyx_save_exc_tb);
 
3272
    __Pyx_ExceptionReset(__pyx_save_exc_type, __pyx_save_exc_value, __pyx_save_exc_tb);
 
3273
    goto __pyx_L1_error;
 
3274
    __pyx_L4_exception_handled:;
 
3275
    __Pyx_XGIVEREF(__pyx_save_exc_type);
 
3276
    __Pyx_XGIVEREF(__pyx_save_exc_value);
 
3277
    __Pyx_XGIVEREF(__pyx_save_exc_tb);
 
3278
    __Pyx_ExceptionReset(__pyx_save_exc_type, __pyx_save_exc_value, __pyx_save_exc_tb);
 
3279
    __pyx_L10_try_end:;
 
3280
  }
 
3281
 
 
3282
  /* "Cython/Compiler/Visitor.py":163
 
3283
 *             handler_method = self.find_handler(obj)
 
3284
 *             self.dispatch_table[type(obj)] = handler_method
 
3285
 *         return handler_method(obj)             # <<<<<<<<<<<<<<
 
3286
 * 
 
3287
 *     def _visitchild(self, child, parent, attrname, idx):
 
3288
 */
 
3289
  __Pyx_XDECREF(__pyx_r);
 
3290
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 163; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
3291
  __Pyx_GOTREF(((PyObject *)__pyx_t_4));
 
3292
  __Pyx_INCREF(__pyx_v_obj);
 
3293
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_obj);
 
3294
  __Pyx_GIVEREF(__pyx_v_obj);
 
3295
  __pyx_t_3 = PyObject_Call(__pyx_v_handler_method, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 163; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
3296
  __Pyx_GOTREF(__pyx_t_3);
 
3297
  __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
 
3298
  __pyx_r = __pyx_t_3;
 
3299
  __pyx_t_3 = 0;
 
3300
  goto __pyx_L0;
 
3301
 
 
3302
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
 
3303
  goto __pyx_L0;
 
3304
  __pyx_L1_error:;
 
3305
  __Pyx_XDECREF(__pyx_t_1);
 
3306
  __Pyx_XDECREF(__pyx_t_3);
 
3307
  __Pyx_XDECREF(__pyx_t_4);
 
3308
  __Pyx_XDECREF(__pyx_t_5);
 
3309
  __Pyx_XDECREF(__pyx_t_6);
 
3310
  __Pyx_AddTraceback("Cython.Compiler.Visitor.TreeVisitor._visit");
 
3311
  __pyx_r = 0;
 
3312
  __pyx_L0:;
 
3313
  __Pyx_DECREF(__pyx_v_handler_method);
 
3314
  __Pyx_XGIVEREF(__pyx_r);
 
3315
  __Pyx_RefNannyFinishContext();
 
3316
  return __pyx_r;
 
3317
}
 
3318
 
 
3319
/* "Cython/Compiler/Visitor.py":165
 
3320
 *         return handler_method(obj)
 
3321
 * 
 
3322
 *     def _visitchild(self, child, parent, attrname, idx):             # <<<<<<<<<<<<<<
 
3323
 *         self.access_path.append((parent, attrname, idx))
 
3324
 *         try:
 
3325
 */
 
3326
 
 
3327
static  PyObject *__pyx_f_6Cython_8Compiler_7Visitor_11TreeVisitor__visitchild(struct __pyx_obj_6Cython_8Compiler_7Visitor_TreeVisitor *__pyx_v_self, PyObject *__pyx_v_child, PyObject *__pyx_v_parent, PyObject *__pyx_v_attrname, PyObject *__pyx_v_idx) {
 
3328
  PyObject *__pyx_v_handler_method;
 
3329
  PyObject *__pyx_v_result;
 
3330
  PyObject *__pyx_v_e;
 
3331
  PyObject *__pyx_r = NULL;
 
3332
  PyObject *__pyx_t_1 = NULL;
 
3333
  int __pyx_t_2;
 
3334
  PyObject *__pyx_t_3 = NULL;
 
3335
  PyObject *__pyx_t_4 = NULL;
 
3336
  PyObject *__pyx_t_5 = NULL;
 
3337
  PyObject *__pyx_t_6 = NULL;
 
3338
  int __pyx_t_7;
 
3339
  PyObject *__pyx_t_8 = NULL;
 
3340
  __Pyx_RefNannySetupContext("_visitchild");
 
3341
  __pyx_v_handler_method = Py_None; __Pyx_INCREF(Py_None);
 
3342
  __pyx_v_result = Py_None; __Pyx_INCREF(Py_None);
 
3343
  __pyx_v_e = Py_None; __Pyx_INCREF(Py_None);
 
3344
 
 
3345
  /* "Cython/Compiler/Visitor.py":166
 
3346
 * 
 
3347
 *     def _visitchild(self, child, parent, attrname, idx):
 
3348
 *         self.access_path.append((parent, attrname, idx))             # <<<<<<<<<<<<<<
 
3349
 *         try:
 
3350
 *             try:
 
3351
 */
 
3352
  if (unlikely(__pyx_v_self->access_path == Py_None)) {
 
3353
    PyErr_SetString(PyExc_AttributeError, "'NoneType' object has no attribute 'append'"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 166; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 
 
3354
  }
 
3355
  __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 166; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
3356
  __Pyx_GOTREF(((PyObject *)__pyx_t_1));
 
3357
  __Pyx_INCREF(__pyx_v_parent);
 
3358
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_parent);
 
3359
  __Pyx_GIVEREF(__pyx_v_parent);
 
3360
  __Pyx_INCREF(__pyx_v_attrname);
 
3361
  PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_attrname);
 
3362
  __Pyx_GIVEREF(__pyx_v_attrname);
 
3363
  __Pyx_INCREF(__pyx_v_idx);
 
3364
  PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_idx);
 
3365
  __Pyx_GIVEREF(__pyx_v_idx);
 
3366
  __pyx_t_2 = PyList_Append(__pyx_v_self->access_path, ((PyObject *)__pyx_t_1)); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 166; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
3367
  __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
 
3368
 
 
3369
  /* "Cython/Compiler/Visitor.py":167
 
3370
 *     def _visitchild(self, child, parent, attrname, idx):
 
3371
 *         self.access_path.append((parent, attrname, idx))
 
3372
 *         try:             # <<<<<<<<<<<<<<
 
3373
 *             try:
 
3374
 *                 handler_method = self.dispatch_table[type(child)]
 
3375
 */
 
3376
  {
 
3377
    PyObject *__pyx_save_exc_type, *__pyx_save_exc_value, *__pyx_save_exc_tb;
 
3378
    __Pyx_ExceptionSave(&__pyx_save_exc_type, &__pyx_save_exc_value, &__pyx_save_exc_tb);
 
3379
    __Pyx_XGOTREF(__pyx_save_exc_type);
 
3380
    __Pyx_XGOTREF(__pyx_save_exc_value);
 
3381
    __Pyx_XGOTREF(__pyx_save_exc_tb);
 
3382
    /*try:*/ {
 
3383
 
 
3384
      /* "Cython/Compiler/Visitor.py":168
 
3385
 *         self.access_path.append((parent, attrname, idx))
 
3386
 *         try:
 
3387
 *             try:             # <<<<<<<<<<<<<<
 
3388
 *                 handler_method = self.dispatch_table[type(child)]
 
3389
 *             except KeyError:
 
3390
 */
 
3391
      {
 
3392
        PyObject *__pyx_save_exc_type, *__pyx_save_exc_value, *__pyx_save_exc_tb;
 
3393
        __Pyx_ExceptionSave(&__pyx_save_exc_type, &__pyx_save_exc_value, &__pyx_save_exc_tb);
 
3394
        __Pyx_XGOTREF(__pyx_save_exc_type);
 
3395
        __Pyx_XGOTREF(__pyx_save_exc_value);
 
3396
        __Pyx_XGOTREF(__pyx_save_exc_tb);
 
3397
        /*try:*/ {
 
3398
 
 
3399
          /* "Cython/Compiler/Visitor.py":169
 
3400
 *         try:
 
3401
 *             try:
 
3402
 *                 handler_method = self.dispatch_table[type(child)]             # <<<<<<<<<<<<<<
 
3403
 *             except KeyError:
 
3404
 *                 handler_method = self.find_handler(child)
 
3405
 */
 
3406
          __pyx_t_1 = __Pyx_PyDict_GetItem(((PyObject *)__pyx_v_self->dispatch_table), ((PyObject *)Py_TYPE(__pyx_v_child))); if (!__pyx_t_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 169; __pyx_clineno = __LINE__; goto __pyx_L11_error;}
 
3407
          __Pyx_GOTREF(__pyx_t_1);
 
3408
          __Pyx_DECREF(__pyx_v_handler_method);
 
3409
          __pyx_v_handler_method = __pyx_t_1;
 
3410
          __pyx_t_1 = 0;
 
3411
        }
 
3412
        __Pyx_XDECREF(__pyx_save_exc_type); __pyx_save_exc_type = 0;
 
3413
        __Pyx_XDECREF(__pyx_save_exc_value); __pyx_save_exc_value = 0;
 
3414
        __Pyx_XDECREF(__pyx_save_exc_tb); __pyx_save_exc_tb = 0;
 
3415
        goto __pyx_L18_try_end;
 
3416
        __pyx_L11_error:;
 
3417
        __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
 
3418
 
 
3419
        /* "Cython/Compiler/Visitor.py":170
 
3420
 *             try:
 
3421
 *                 handler_method = self.dispatch_table[type(child)]
 
3422
 *             except KeyError:             # <<<<<<<<<<<<<<
 
3423
 *                 handler_method = self.find_handler(child)
 
3424
 *                 self.dispatch_table[type(child)] = handler_method
 
3425
 */
 
3426
        __pyx_t_2 = PyErr_ExceptionMatches(__pyx_builtin_KeyError);
 
3427
        if (__pyx_t_2) {
 
3428
          __Pyx_AddTraceback("Cython.Compiler.Visitor.TreeVisitor._visitchild");
 
3429
          if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_3, &__pyx_t_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 170; __pyx_clineno = __LINE__; goto __pyx_L13_except_error;}
 
3430
          __Pyx_GOTREF(__pyx_t_1);
 
3431
          __Pyx_GOTREF(__pyx_t_3);
 
3432
          __Pyx_GOTREF(__pyx_t_4);
 
3433
 
 
3434
          /* "Cython/Compiler/Visitor.py":171
 
3435
 *                 handler_method = self.dispatch_table[type(child)]
 
3436
 *             except KeyError:
 
3437
 *                 handler_method = self.find_handler(child)             # <<<<<<<<<<<<<<
 
3438
 *                 self.dispatch_table[type(child)] = handler_method
 
3439
 *             result = handler_method(child)
 
3440
 */
 
3441
          __pyx_t_5 = __pyx_v_child;
 
3442
          __Pyx_INCREF(__pyx_t_5);
 
3443
          __pyx_t_6 = ((struct __pyx_vtabstruct_6Cython_8Compiler_7Visitor_TreeVisitor *)__pyx_v_self->__pyx_vtab)->find_handler(__pyx_v_self, __pyx_t_5); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 171; __pyx_clineno = __LINE__; goto __pyx_L13_except_error;}
 
3444
          __Pyx_GOTREF(__pyx_t_6);
 
3445
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
 
3446
          __Pyx_DECREF(__pyx_v_handler_method);
 
3447
          __pyx_v_handler_method = __pyx_t_6;
 
3448
          __pyx_t_6 = 0;
 
3449
 
 
3450
          /* "Cython/Compiler/Visitor.py":172
 
3451
 *             except KeyError:
 
3452
 *                 handler_method = self.find_handler(child)
 
3453
 *                 self.dispatch_table[type(child)] = handler_method             # <<<<<<<<<<<<<<
 
3454
 *             result = handler_method(child)
 
3455
 *         except Errors.CompileError:
 
3456
 */
 
3457
          if (PyDict_SetItem(((PyObject *)__pyx_v_self->dispatch_table), ((PyObject *)Py_TYPE(__pyx_v_child)), __pyx_v_handler_method) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 172; __pyx_clineno = __LINE__; goto __pyx_L13_except_error;}
 
3458
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
3459
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 
3460
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 
3461
          goto __pyx_L12_exception_handled;
 
3462
        }
 
3463
        __pyx_L13_except_error:;
 
3464
        __Pyx_XGIVEREF(__pyx_save_exc_type);
 
3465
        __Pyx_XGIVEREF(__pyx_save_exc_value);
 
3466
        __Pyx_XGIVEREF(__pyx_save_exc_tb);
 
3467
        __Pyx_ExceptionReset(__pyx_save_exc_type, __pyx_save_exc_value, __pyx_save_exc_tb);
 
3468
        goto __pyx_L3_error;
 
3469
        __pyx_L12_exception_handled:;
 
3470
        __Pyx_XGIVEREF(__pyx_save_exc_type);
 
3471
        __Pyx_XGIVEREF(__pyx_save_exc_value);
 
3472
        __Pyx_XGIVEREF(__pyx_save_exc_tb);
 
3473
        __Pyx_ExceptionReset(__pyx_save_exc_type, __pyx_save_exc_value, __pyx_save_exc_tb);
 
3474
        __pyx_L18_try_end:;
 
3475
      }
 
3476
 
 
3477
      /* "Cython/Compiler/Visitor.py":173
 
3478
 *                 handler_method = self.find_handler(child)
 
3479
 *                 self.dispatch_table[type(child)] = handler_method
 
3480
 *             result = handler_method(child)             # <<<<<<<<<<<<<<
 
3481
 *         except Errors.CompileError:
 
3482
 *             raise
 
3483
 */
 
3484
      __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 173; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 
3485
      __Pyx_GOTREF(((PyObject *)__pyx_t_4));
 
3486
      __Pyx_INCREF(__pyx_v_child);
 
3487
      PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_child);
 
3488
      __Pyx_GIVEREF(__pyx_v_child);
 
3489
      __pyx_t_3 = PyObject_Call(__pyx_v_handler_method, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 173; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 
3490
      __Pyx_GOTREF(__pyx_t_3);
 
3491
      __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
 
3492
      __Pyx_DECREF(__pyx_v_result);
 
3493
      __pyx_v_result = __pyx_t_3;
 
3494
      __pyx_t_3 = 0;
 
3495
    }
 
3496
    __Pyx_XDECREF(__pyx_save_exc_type); __pyx_save_exc_type = 0;
 
3497
    __Pyx_XDECREF(__pyx_save_exc_value); __pyx_save_exc_value = 0;
 
3498
    __Pyx_XDECREF(__pyx_save_exc_tb); __pyx_save_exc_tb = 0;
 
3499
    goto __pyx_L10_try_end;
 
3500
    __pyx_L3_error:;
 
3501
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
 
3502
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
 
3503
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
 
3504
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
 
3505
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
 
3506
 
 
3507
    /* "Cython/Compiler/Visitor.py":174
 
3508
 *                 self.dispatch_table[type(child)] = handler_method
 
3509
 *             result = handler_method(child)
 
3510
 *         except Errors.CompileError:             # <<<<<<<<<<<<<<
 
3511
 *             raise
 
3512
 *         except Errors.AbortError:
 
3513
 */
 
3514
    __pyx_t_3 = __Pyx_GetName(__pyx_m, __pyx_n_s__Errors); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 174; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
 
3515
    __Pyx_GOTREF(__pyx_t_3);
 
3516
    __pyx_t_4 = PyObject_GetAttr(__pyx_t_3, __pyx_n_s__CompileError); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 174; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
 
3517
    __Pyx_GOTREF(__pyx_t_4);
 
3518
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 
3519
    __pyx_t_2 = PyErr_ExceptionMatches(__pyx_t_4);
 
3520
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 
3521
    if (__pyx_t_2) {
 
3522
      __Pyx_AddTraceback("Cython.Compiler.Visitor.TreeVisitor._visitchild");
 
3523
      if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_3, &__pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 174; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
 
3524
      __Pyx_GOTREF(__pyx_t_4);
 
3525
      __Pyx_GOTREF(__pyx_t_3);
 
3526
      __Pyx_GOTREF(__pyx_t_1);
 
3527
 
 
3528
      /* "Cython/Compiler/Visitor.py":175
 
3529
 *             result = handler_method(child)
 
3530
 *         except Errors.CompileError:
 
3531
 *             raise             # <<<<<<<<<<<<<<
 
3532
 *         except Errors.AbortError:
 
3533
 *             raise
 
3534
 */
 
3535
      __Pyx_GIVEREF(__pyx_t_4);
 
3536
      __Pyx_GIVEREF(__pyx_t_3);
 
3537
      __Pyx_GIVEREF(__pyx_t_1);
 
3538
      __Pyx_ErrRestore(__pyx_t_4, __pyx_t_3, __pyx_t_1);
 
3539
      __pyx_t_4 = 0; __pyx_t_3 = 0; __pyx_t_1 = 0; 
 
3540
      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 175; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
 
3541
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 
3542
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 
3543
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
3544
      goto __pyx_L4_exception_handled;
 
3545
    }
 
3546
 
 
3547
    /* "Cython/Compiler/Visitor.py":176
 
3548
 *         except Errors.CompileError:
 
3549
 *             raise
 
3550
 *         except Errors.AbortError:             # <<<<<<<<<<<<<<
 
3551
 *             raise
 
3552
 *         except Exception, e:
 
3553
 */
 
3554
    __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__Errors); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 176; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
 
3555
    __Pyx_GOTREF(__pyx_t_1);
 
3556
    __pyx_t_3 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__AbortError); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 176; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
 
3557
    __Pyx_GOTREF(__pyx_t_3);
 
3558
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
3559
    __pyx_t_2 = PyErr_ExceptionMatches(__pyx_t_3);
 
3560
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 
3561
    if (__pyx_t_2) {
 
3562
      __Pyx_AddTraceback("Cython.Compiler.Visitor.TreeVisitor._visitchild");
 
3563
      if (__Pyx_GetException(&__pyx_t_3, &__pyx_t_1, &__pyx_t_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 176; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
 
3564
      __Pyx_GOTREF(__pyx_t_3);
 
3565
      __Pyx_GOTREF(__pyx_t_1);
 
3566
      __Pyx_GOTREF(__pyx_t_4);
 
3567
 
 
3568
      /* "Cython/Compiler/Visitor.py":177
 
3569
 *             raise
 
3570
 *         except Errors.AbortError:
 
3571
 *             raise             # <<<<<<<<<<<<<<
 
3572
 *         except Exception, e:
 
3573
 *             if DebugFlags.debug_no_exception_intercept:
 
3574
 */
 
3575
      __Pyx_GIVEREF(__pyx_t_3);
 
3576
      __Pyx_GIVEREF(__pyx_t_1);
 
3577
      __Pyx_GIVEREF(__pyx_t_4);
 
3578
      __Pyx_ErrRestore(__pyx_t_3, __pyx_t_1, __pyx_t_4);
 
3579
      __pyx_t_3 = 0; __pyx_t_1 = 0; __pyx_t_4 = 0; 
 
3580
      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 177; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
 
3581
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 
3582
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
3583
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 
3584
      goto __pyx_L4_exception_handled;
 
3585
    }
 
3586
 
 
3587
    /* "Cython/Compiler/Visitor.py":178
 
3588
 *         except Errors.AbortError:
 
3589
 *             raise
 
3590
 *         except Exception, e:             # <<<<<<<<<<<<<<
 
3591
 *             if DebugFlags.debug_no_exception_intercept:
 
3592
 *                 raise
 
3593
 */
 
3594
    __pyx_t_2 = PyErr_ExceptionMatches(__pyx_builtin_Exception);
 
3595
    if (__pyx_t_2) {
 
3596
      __Pyx_AddTraceback("Cython.Compiler.Visitor.TreeVisitor._visitchild");
 
3597
      if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_1, &__pyx_t_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 178; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
 
3598
      __Pyx_GOTREF(__pyx_t_4);
 
3599
      __Pyx_GOTREF(__pyx_t_1);
 
3600
      __Pyx_GOTREF(__pyx_t_3);
 
3601
      __Pyx_INCREF(__pyx_t_1);
 
3602
      __Pyx_DECREF(__pyx_v_e);
 
3603
      __pyx_v_e = __pyx_t_1;
 
3604
 
 
3605
      /* "Cython/Compiler/Visitor.py":179
 
3606
 *             raise
 
3607
 *         except Exception, e:
 
3608
 *             if DebugFlags.debug_no_exception_intercept:             # <<<<<<<<<<<<<<
 
3609
 *                 raise
 
3610
 *             self._raise_compiler_error(child, e)
 
3611
 */
 
3612
      __pyx_t_6 = __Pyx_GetName(__pyx_m, __pyx_n_s__DebugFlags); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 179; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
 
3613
      __Pyx_GOTREF(__pyx_t_6);
 
3614
      __pyx_t_5 = PyObject_GetAttr(__pyx_t_6, __pyx_n_s_17); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 179; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
 
3615
      __Pyx_GOTREF(__pyx_t_5);
 
3616
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
 
3617
      __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_7 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 179; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
 
3618
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
 
3619
      if (__pyx_t_7) {
 
3620
 
 
3621
        /* "Cython/Compiler/Visitor.py":180
 
3622
 *         except Exception, e:
 
3623
 *             if DebugFlags.debug_no_exception_intercept:
 
3624
 *                 raise             # <<<<<<<<<<<<<<
 
3625
 *             self._raise_compiler_error(child, e)
 
3626
 *         self.access_path.pop()
 
3627
 */
 
3628
        __Pyx_GIVEREF(__pyx_t_4);
 
3629
        __Pyx_GIVEREF(__pyx_t_1);
 
3630
        __Pyx_GIVEREF(__pyx_t_3);
 
3631
        __Pyx_ErrRestore(__pyx_t_4, __pyx_t_1, __pyx_t_3);
 
3632
        __pyx_t_4 = 0; __pyx_t_1 = 0; __pyx_t_3 = 0; 
 
3633
        {__pyx_filename = __pyx_f[0]; __pyx_lineno = 180; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
 
3634
        goto __pyx_L27;
 
3635
      }
 
3636
      __pyx_L27:;
 
3637
 
 
3638
      /* "Cython/Compiler/Visitor.py":181
 
3639
 *             if DebugFlags.debug_no_exception_intercept:
 
3640
 *                 raise
 
3641
 *             self._raise_compiler_error(child, e)             # <<<<<<<<<<<<<<
 
3642
 *         self.access_path.pop()
 
3643
 *         return result
 
3644
 */
 
3645
      __pyx_t_5 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s_18); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 181; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
 
3646
      __Pyx_GOTREF(__pyx_t_5);
 
3647
      __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 181; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
 
3648
      __Pyx_GOTREF(((PyObject *)__pyx_t_6));
 
3649
      __Pyx_INCREF(__pyx_v_child);
 
3650
      PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_v_child);
 
3651
      __Pyx_GIVEREF(__pyx_v_child);
 
3652
      __Pyx_INCREF(__pyx_v_e);
 
3653
      PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_v_e);
 
3654
      __Pyx_GIVEREF(__pyx_v_e);
 
3655
      __pyx_t_8 = PyObject_Call(__pyx_t_5, ((PyObject *)__pyx_t_6), NULL); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 181; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
 
3656
      __Pyx_GOTREF(__pyx_t_8);
 
3657
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
 
3658
      __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
 
3659
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
 
3660
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 
3661
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
3662
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 
3663
      goto __pyx_L4_exception_handled;
 
3664
    }
 
3665
    __pyx_L5_except_error:;
 
3666
    __Pyx_XGIVEREF(__pyx_save_exc_type);
 
3667
    __Pyx_XGIVEREF(__pyx_save_exc_value);
 
3668
    __Pyx_XGIVEREF(__pyx_save_exc_tb);
 
3669
    __Pyx_ExceptionReset(__pyx_save_exc_type, __pyx_save_exc_value, __pyx_save_exc_tb);
 
3670
    goto __pyx_L1_error;
 
3671
    __pyx_L4_exception_handled:;
 
3672
    __Pyx_XGIVEREF(__pyx_save_exc_type);
 
3673
    __Pyx_XGIVEREF(__pyx_save_exc_value);
 
3674
    __Pyx_XGIVEREF(__pyx_save_exc_tb);
 
3675
    __Pyx_ExceptionReset(__pyx_save_exc_type, __pyx_save_exc_value, __pyx_save_exc_tb);
 
3676
    __pyx_L10_try_end:;
 
3677
  }
 
3678
 
 
3679
  /* "Cython/Compiler/Visitor.py":182
 
3680
 *                 raise
 
3681
 *             self._raise_compiler_error(child, e)
 
3682
 *         self.access_path.pop()             # <<<<<<<<<<<<<<
 
3683
 *         return result
 
3684
 * 
 
3685
 */
 
3686
  __pyx_t_3 = __Pyx_PyObject_Pop(((PyObject *)__pyx_v_self->access_path)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 182; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
3687
  __Pyx_GOTREF(__pyx_t_3);
 
3688
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 
3689
 
 
3690
  /* "Cython/Compiler/Visitor.py":183
 
3691
 *             self._raise_compiler_error(child, e)
 
3692
 *         self.access_path.pop()
 
3693
 *         return result             # <<<<<<<<<<<<<<
 
3694
 * 
 
3695
 *     def visitchildren(self, parent, attrs=None):
 
3696
 */
 
3697
  __Pyx_XDECREF(__pyx_r);
 
3698
  __Pyx_INCREF(__pyx_v_result);
 
3699
  __pyx_r = __pyx_v_result;
 
3700
  goto __pyx_L0;
 
3701
 
 
3702
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
 
3703
  goto __pyx_L0;
 
3704
  __pyx_L1_error:;
 
3705
  __Pyx_XDECREF(__pyx_t_1);
 
3706
  __Pyx_XDECREF(__pyx_t_3);
 
3707
  __Pyx_XDECREF(__pyx_t_4);
 
3708
  __Pyx_XDECREF(__pyx_t_5);
 
3709
  __Pyx_XDECREF(__pyx_t_6);
 
3710
  __Pyx_XDECREF(__pyx_t_8);
 
3711
  __Pyx_AddTraceback("Cython.Compiler.Visitor.TreeVisitor._visitchild");
 
3712
  __pyx_r = 0;
 
3713
  __pyx_L0:;
 
3714
  __Pyx_DECREF(__pyx_v_handler_method);
 
3715
  __Pyx_DECREF(__pyx_v_result);
 
3716
  __Pyx_DECREF(__pyx_v_e);
 
3717
  __Pyx_XGIVEREF(__pyx_r);
 
3718
  __Pyx_RefNannyFinishContext();
 
3719
  return __pyx_r;
 
3720
}
 
3721
 
 
3722
/* "Cython/Compiler/Visitor.py":185
 
3723
 *         return result
 
3724
 * 
 
3725
 *     def visitchildren(self, parent, attrs=None):             # <<<<<<<<<<<<<<
 
3726
 *         return self._visitchildren(parent, attrs)
 
3727
 * 
 
3728
 */
 
3729
 
 
3730
static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_11TreeVisitor_5visitchildren(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
 
3731
static  PyObject *__pyx_f_6Cython_8Compiler_7Visitor_11TreeVisitor_visitchildren(struct __pyx_obj_6Cython_8Compiler_7Visitor_TreeVisitor *__pyx_v_self, PyObject *__pyx_v_parent, int __pyx_skip_dispatch, struct __pyx_opt_args_6Cython_8Compiler_7Visitor_11TreeVisitor_visitchildren *__pyx_optional_args) {
 
3732
  PyObject *__pyx_v_attrs = ((PyObject *)Py_None);
 
3733
  PyObject *__pyx_r = NULL;
 
3734
  PyObject *__pyx_t_1 = NULL;
 
3735
  PyObject *__pyx_t_2 = NULL;
 
3736
  PyObject *__pyx_t_3 = NULL;
 
3737
  __Pyx_RefNannySetupContext("visitchildren");
 
3738
  if (__pyx_optional_args) {
 
3739
    if (__pyx_optional_args->__pyx_n > 0) {
 
3740
      __pyx_v_attrs = __pyx_optional_args->attrs;
 
3741
    }
 
3742
  }
 
3743
  /* Check if called by wrapper */
 
3744
  if (unlikely(__pyx_skip_dispatch)) ;
 
3745
  /* Check if overriden in Python */
 
3746
  else if (unlikely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0)) {
 
3747
    __pyx_t_1 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s__visitchildren); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 185; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
3748
    __Pyx_GOTREF(__pyx_t_1);
 
3749
    if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (void *)&__pyx_pf_6Cython_8Compiler_7Visitor_11TreeVisitor_5visitchildren)) {
 
3750
      __Pyx_XDECREF(__pyx_r);
 
3751
      __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 185; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
3752
      __Pyx_GOTREF(((PyObject *)__pyx_t_2));
 
3753
      __Pyx_INCREF(__pyx_v_parent);
 
3754
      PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_parent);
 
3755
      __Pyx_GIVEREF(__pyx_v_parent);
 
3756
      __Pyx_INCREF(__pyx_v_attrs);
 
3757
      PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_attrs);
 
3758
      __Pyx_GIVEREF(__pyx_v_attrs);
 
3759
      __pyx_t_3 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 185; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
3760
      __Pyx_GOTREF(__pyx_t_3);
 
3761
      __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
 
3762
      __pyx_r = __pyx_t_3;
 
3763
      __pyx_t_3 = 0;
 
3764
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
3765
      goto __pyx_L0;
 
3766
    }
 
3767
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
3768
  }
 
3769
 
 
3770
  /* "Cython/Compiler/Visitor.py":186
 
3771
 * 
 
3772
 *     def visitchildren(self, parent, attrs=None):
 
3773
 *         return self._visitchildren(parent, attrs)             # <<<<<<<<<<<<<<
 
3774
 * 
 
3775
 *     def _visitchildren(self, parent, attrs):
 
3776
 */
 
3777
  __Pyx_XDECREF(__pyx_r);
 
3778
  __pyx_t_1 = __pyx_v_parent;
 
3779
  __Pyx_INCREF(__pyx_t_1);
 
3780
  __pyx_t_3 = __pyx_v_attrs;
 
3781
  __Pyx_INCREF(__pyx_t_3);
 
3782
  __pyx_t_2 = ((PyObject *)((struct __pyx_vtabstruct_6Cython_8Compiler_7Visitor_TreeVisitor *)__pyx_v_self->__pyx_vtab)->_visitchildren(__pyx_v_self, __pyx_t_1, __pyx_t_3)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 186; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
3783
  __Pyx_GOTREF(__pyx_t_2);
 
3784
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
3785
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 
3786
  __pyx_r = __pyx_t_2;
 
3787
  __pyx_t_2 = 0;
 
3788
  goto __pyx_L0;
 
3789
 
 
3790
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
 
3791
  goto __pyx_L0;
 
3792
  __pyx_L1_error:;
 
3793
  __Pyx_XDECREF(__pyx_t_1);
 
3794
  __Pyx_XDECREF(__pyx_t_2);
 
3795
  __Pyx_XDECREF(__pyx_t_3);
 
3796
  __Pyx_AddTraceback("Cython.Compiler.Visitor.TreeVisitor.visitchildren");
 
3797
  __pyx_r = 0;
 
3798
  __pyx_L0:;
 
3799
  __Pyx_XGIVEREF(__pyx_r);
 
3800
  __Pyx_RefNannyFinishContext();
 
3801
  return __pyx_r;
 
3802
}
 
3803
 
 
3804
/* "Cython/Compiler/Visitor.py":185
 
3805
 *         return result
 
3806
 * 
 
3807
 *     def visitchildren(self, parent, attrs=None):             # <<<<<<<<<<<<<<
 
3808
 *         return self._visitchildren(parent, attrs)
 
3809
 * 
 
3810
 */
 
3811
 
 
3812
static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_11TreeVisitor_5visitchildren(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
 
3813
static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_11TreeVisitor_5visitchildren(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
 
3814
  PyObject *__pyx_v_parent = 0;
 
3815
  PyObject *__pyx_v_attrs = 0;
 
3816
  PyObject *__pyx_r = NULL;
 
3817
  PyObject *__pyx_t_1 = NULL;
 
3818
  PyObject *__pyx_t_2 = NULL;
 
3819
  PyObject *__pyx_t_3 = NULL;
 
3820
  struct __pyx_opt_args_6Cython_8Compiler_7Visitor_11TreeVisitor_visitchildren __pyx_t_4;
 
3821
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__parent,&__pyx_n_s__attrs,0};
 
3822
  __Pyx_RefNannySetupContext("visitchildren");
 
3823
  if (unlikely(__pyx_kwds)) {
 
3824
    Py_ssize_t kw_args = PyDict_Size(__pyx_kwds);
 
3825
    PyObject* values[2] = {0,0};
 
3826
    values[1] = ((PyObject *)Py_None);
 
3827
    switch (PyTuple_GET_SIZE(__pyx_args)) {
 
3828
      case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
 
3829
      case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
 
3830
      case  0: break;
 
3831
      default: goto __pyx_L5_argtuple_error;
 
3832
    }
 
3833
    switch (PyTuple_GET_SIZE(__pyx_args)) {
 
3834
      case  0:
 
3835
      values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__parent);
 
3836
      if (likely(values[0])) kw_args--;
 
3837
      else goto __pyx_L5_argtuple_error;
 
3838
      case  1:
 
3839
      if (kw_args > 0) {
 
3840
        PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__attrs);
 
3841
        if (value) { values[1] = value; kw_args--; }
 
3842
      }
 
3843
    }
 
3844
    if (unlikely(kw_args > 0)) {
 
3845
      if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "visitchildren") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 185; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 
3846
    }
 
3847
    __pyx_v_parent = values[0];
 
3848
    __pyx_v_attrs = values[1];
 
3849
  } else {
 
3850
    __pyx_v_attrs = ((PyObject *)Py_None);
 
3851
    switch (PyTuple_GET_SIZE(__pyx_args)) {
 
3852
      case  2: __pyx_v_attrs = PyTuple_GET_ITEM(__pyx_args, 1);
 
3853
      case  1: __pyx_v_parent = PyTuple_GET_ITEM(__pyx_args, 0);
 
3854
      break;
 
3855
      default: goto __pyx_L5_argtuple_error;
 
3856
    }
 
3857
  }
 
3858
  goto __pyx_L4_argument_unpacking_done;
 
3859
  __pyx_L5_argtuple_error:;
 
3860
  __Pyx_RaiseArgtupleInvalid("visitchildren", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 185; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 
3861
  __pyx_L3_error:;
 
3862
  __Pyx_AddTraceback("Cython.Compiler.Visitor.TreeVisitor.visitchildren");
 
3863
  __Pyx_RefNannyFinishContext();
 
3864
  return NULL;
 
3865
  __pyx_L4_argument_unpacking_done:;
 
3866
  __Pyx_XDECREF(__pyx_r);
 
3867
  __pyx_t_1 = __pyx_v_parent;
 
3868
  __Pyx_INCREF(__pyx_t_1);
 
3869
  __pyx_t_2 = __pyx_v_attrs;
 
3870
  __Pyx_INCREF(__pyx_t_2);
 
3871
  __pyx_t_4.__pyx_n = 1;
 
3872
  __pyx_t_4.attrs = __pyx_t_2;
 
3873
  __pyx_t_3 = ((struct __pyx_vtabstruct_6Cython_8Compiler_7Visitor_TreeVisitor *)((struct __pyx_obj_6Cython_8Compiler_7Visitor_TreeVisitor *)__pyx_v_self)->__pyx_vtab)->visitchildren(((struct __pyx_obj_6Cython_8Compiler_7Visitor_TreeVisitor *)__pyx_v_self), __pyx_t_1, 1, &__pyx_t_4); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 185; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
3874
  __Pyx_GOTREF(__pyx_t_3);
 
3875
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
3876
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 
3877
  __pyx_r = __pyx_t_3;
 
3878
  __pyx_t_3 = 0;
 
3879
  goto __pyx_L0;
 
3880
 
 
3881
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
 
3882
  goto __pyx_L0;
 
3883
  __pyx_L1_error:;
 
3884
  __Pyx_XDECREF(__pyx_t_1);
 
3885
  __Pyx_XDECREF(__pyx_t_2);
 
3886
  __Pyx_XDECREF(__pyx_t_3);
 
3887
  __Pyx_AddTraceback("Cython.Compiler.Visitor.TreeVisitor.visitchildren");
 
3888
  __pyx_r = NULL;
 
3889
  __pyx_L0:;
 
3890
  __Pyx_XGIVEREF(__pyx_r);
 
3891
  __Pyx_RefNannyFinishContext();
 
3892
  return __pyx_r;
 
3893
}
 
3894
 
 
3895
/* "Cython/Compiler/Visitor.py":188
 
3896
 *         return self._visitchildren(parent, attrs)
 
3897
 * 
 
3898
 *     def _visitchildren(self, parent, attrs):             # <<<<<<<<<<<<<<
 
3899
 *         """
 
3900
 *         Visits the children of the given parent. If parent is None, returns
 
3901
 */
 
3902
 
 
3903
static  PyObject *__pyx_f_6Cython_8Compiler_7Visitor_11TreeVisitor__visitchildren(struct __pyx_obj_6Cython_8Compiler_7Visitor_TreeVisitor *__pyx_v_self, PyObject *__pyx_v_parent, PyObject *__pyx_v_attrs) {
 
3904
  int __pyx_v_idx;
 
3905
  PyObject *__pyx_v_result;
 
3906
  PyObject *__pyx_v_attr;
 
3907
  PyObject *__pyx_v_child;
 
3908
  PyObject *__pyx_v_childretval;
 
3909
  PyObject *__pyx_v_x;
 
3910
  PyObject *__pyx_r = NULL;
 
3911
  int __pyx_t_1;
 
3912
  PyObject *__pyx_t_2 = NULL;
 
3913
  Py_ssize_t __pyx_t_3;
 
3914
  PyObject *__pyx_t_4 = NULL;
 
3915
  int __pyx_t_5;
 
3916
  int __pyx_t_6;
 
3917
  PyObject *__pyx_t_7 = NULL;
 
3918
  int __pyx_t_8;
 
3919
  Py_ssize_t __pyx_t_9;
 
3920
  PyObject *__pyx_t_10 = NULL;
 
3921
  PyObject *__pyx_t_11 = NULL;
 
3922
  PyObject *__pyx_t_12 = NULL;
 
3923
  __Pyx_RefNannySetupContext("_visitchildren");
 
3924
  __pyx_v_result = ((PyObject*)Py_None); __Pyx_INCREF(Py_None);
 
3925
  __pyx_v_attr = Py_None; __Pyx_INCREF(Py_None);
 
3926
  __pyx_v_child = Py_None; __Pyx_INCREF(Py_None);
 
3927
  __pyx_v_childretval = Py_None; __Pyx_INCREF(Py_None);
 
3928
  __pyx_v_x = Py_None; __Pyx_INCREF(Py_None);
 
3929
 
 
3930
  /* "Cython/Compiler/Visitor.py":198
 
3931
 *         in an attribute)).
 
3932
 *         """
 
3933
 *         if parent is None: return None             # <<<<<<<<<<<<<<
 
3934
 *         result = {}
 
3935
 *         for attr in parent.child_attrs:
 
3936
 */
 
3937
  __pyx_t_1 = (__pyx_v_parent == Py_None);
 
3938
  if (__pyx_t_1) {
 
3939
    __Pyx_XDECREF(((PyObject *)__pyx_r));
 
3940
    __Pyx_INCREF(Py_None);
 
3941
    __pyx_r = ((PyObject*)Py_None);
 
3942
    goto __pyx_L0;
 
3943
    goto __pyx_L3;
 
3944
  }
 
3945
  __pyx_L3:;
 
3946
 
 
3947
  /* "Cython/Compiler/Visitor.py":199
 
3948
 *         """
 
3949
 *         if parent is None: return None
 
3950
 *         result = {}             # <<<<<<<<<<<<<<
 
3951
 *         for attr in parent.child_attrs:
 
3952
 *             if attrs is not None and attr not in attrs: continue
 
3953
 */
 
3954
  __pyx_t_2 = PyDict_New(); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 199; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
3955
  __Pyx_GOTREF(((PyObject *)__pyx_t_2));
 
3956
  __Pyx_DECREF(((PyObject *)__pyx_v_result));
 
3957
  __pyx_v_result = __pyx_t_2;
 
3958
  __pyx_t_2 = 0;
 
3959
 
 
3960
  /* "Cython/Compiler/Visitor.py":200
 
3961
 *         if parent is None: return None
 
3962
 *         result = {}
 
3963
 *         for attr in parent.child_attrs:             # <<<<<<<<<<<<<<
 
3964
 *             if attrs is not None and attr not in attrs: continue
 
3965
 *             child = getattr(parent, attr)
 
3966
 */
 
3967
  __pyx_t_2 = PyObject_GetAttr(__pyx_v_parent, __pyx_n_s__child_attrs); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 200; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
3968
  __Pyx_GOTREF(__pyx_t_2);
 
3969
  if (PyList_CheckExact(__pyx_t_2) || PyTuple_CheckExact(__pyx_t_2)) {
 
3970
    __pyx_t_3 = 0; __pyx_t_4 = __pyx_t_2; __Pyx_INCREF(__pyx_t_4);
 
3971
  } else {
 
3972
    __pyx_t_3 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 200; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
3973
    __Pyx_GOTREF(__pyx_t_4);
 
3974
  }
 
3975
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 
3976
  for (;;) {
 
3977
    if (likely(PyList_CheckExact(__pyx_t_4))) {
 
3978
      if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_4)) break;
 
3979
      __pyx_t_2 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_3); __Pyx_INCREF(__pyx_t_2); __pyx_t_3++;
 
3980
    } else if (likely(PyTuple_CheckExact(__pyx_t_4))) {
 
3981
      if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_4)) break;
 
3982
      __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_3); __Pyx_INCREF(__pyx_t_2); __pyx_t_3++;
 
3983
    } else {
 
3984
      __pyx_t_2 = PyIter_Next(__pyx_t_4);
 
3985
      if (!__pyx_t_2) {
 
3986
        if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 200; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
3987
        break;
 
3988
      }
 
3989
      __Pyx_GOTREF(__pyx_t_2);
 
3990
    }
 
3991
    __Pyx_DECREF(__pyx_v_attr);
 
3992
    __pyx_v_attr = __pyx_t_2;
 
3993
    __pyx_t_2 = 0;
 
3994
 
 
3995
    /* "Cython/Compiler/Visitor.py":201
 
3996
 *         result = {}
 
3997
 *         for attr in parent.child_attrs:
 
3998
 *             if attrs is not None and attr not in attrs: continue             # <<<<<<<<<<<<<<
 
3999
 *             child = getattr(parent, attr)
 
4000
 *             if child is not None:
 
4001
 */
 
4002
    __pyx_t_1 = (__pyx_v_attrs != Py_None);
 
4003
    if (__pyx_t_1) {
 
4004
      __pyx_t_5 = (__Pyx_NegateNonNeg(PySequence_Contains(__pyx_v_attrs, __pyx_v_attr))); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 201; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
4005
      __pyx_t_6 = __pyx_t_5;
 
4006
    } else {
 
4007
      __pyx_t_6 = __pyx_t_1;
 
4008
    }
 
4009
    if (__pyx_t_6) {
 
4010
      goto __pyx_L4_continue;
 
4011
      goto __pyx_L6;
 
4012
    }
 
4013
    __pyx_L6:;
 
4014
 
 
4015
    /* "Cython/Compiler/Visitor.py":202
 
4016
 *         for attr in parent.child_attrs:
 
4017
 *             if attrs is not None and attr not in attrs: continue
 
4018
 *             child = getattr(parent, attr)             # <<<<<<<<<<<<<<
 
4019
 *             if child is not None:
 
4020
 *                 if type(child) is list:
 
4021
 */
 
4022
    __pyx_t_2 = __pyx_v_parent;
 
4023
    __Pyx_INCREF(__pyx_t_2);
 
4024
    __pyx_t_7 = PyObject_GetAttr(__pyx_t_2, __pyx_v_attr); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 202; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
4025
    __Pyx_GOTREF(__pyx_t_7);
 
4026
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 
4027
    __Pyx_DECREF(__pyx_v_child);
 
4028
    __pyx_v_child = __pyx_t_7;
 
4029
    __pyx_t_7 = 0;
 
4030
 
 
4031
    /* "Cython/Compiler/Visitor.py":203
 
4032
 *             if attrs is not None and attr not in attrs: continue
 
4033
 *             child = getattr(parent, attr)
 
4034
 *             if child is not None:             # <<<<<<<<<<<<<<
 
4035
 *                 if type(child) is list:
 
4036
 *                     childretval = [self._visitchild(x, parent, attr, idx) for idx, x in enumerate(child)]
 
4037
 */
 
4038
    __pyx_t_6 = (__pyx_v_child != Py_None);
 
4039
    if (__pyx_t_6) {
 
4040
 
 
4041
      /* "Cython/Compiler/Visitor.py":204
 
4042
 *             child = getattr(parent, attr)
 
4043
 *             if child is not None:
 
4044
 *                 if type(child) is list:             # <<<<<<<<<<<<<<
 
4045
 *                     childretval = [self._visitchild(x, parent, attr, idx) for idx, x in enumerate(child)]
 
4046
 *                 else:
 
4047
 */
 
4048
      __pyx_t_6 = (((PyObject *)Py_TYPE(__pyx_v_child)) == ((PyObject *)((PyObject*)(&PyList_Type))));
 
4049
      if (__pyx_t_6) {
 
4050
 
 
4051
        /* "Cython/Compiler/Visitor.py":205
 
4052
 *             if child is not None:
 
4053
 *                 if type(child) is list:
 
4054
 *                     childretval = [self._visitchild(x, parent, attr, idx) for idx, x in enumerate(child)]             # <<<<<<<<<<<<<<
 
4055
 *                 else:
 
4056
 *                     childretval = self._visitchild(child, parent, attr, None)
 
4057
 */
 
4058
        __pyx_t_7 = PyList_New(0); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 205; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
4059
        __Pyx_GOTREF(((PyObject *)__pyx_t_7));
 
4060
        __pyx_t_8 = 0;
 
4061
        if (PyList_CheckExact(__pyx_v_child) || PyTuple_CheckExact(__pyx_v_child)) {
 
4062
          __pyx_t_9 = 0; __pyx_t_2 = __pyx_v_child; __Pyx_INCREF(__pyx_t_2);
 
4063
        } else {
 
4064
          __pyx_t_9 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_v_child); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 205; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
4065
          __Pyx_GOTREF(__pyx_t_2);
 
4066
        }
 
4067
        for (;;) {
 
4068
          if (likely(PyList_CheckExact(__pyx_t_2))) {
 
4069
            if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_2)) break;
 
4070
            __pyx_t_10 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_9); __Pyx_INCREF(__pyx_t_10); __pyx_t_9++;
 
4071
          } else if (likely(PyTuple_CheckExact(__pyx_t_2))) {
 
4072
            if (__pyx_t_9 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
 
4073
            __pyx_t_10 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_9); __Pyx_INCREF(__pyx_t_10); __pyx_t_9++;
 
4074
          } else {
 
4075
            __pyx_t_10 = PyIter_Next(__pyx_t_2);
 
4076
            if (!__pyx_t_10) {
 
4077
              if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 205; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
4078
              break;
 
4079
            }
 
4080
            __Pyx_GOTREF(__pyx_t_10);
 
4081
          }
 
4082
          __Pyx_DECREF(__pyx_v_x);
 
4083
          __pyx_v_x = __pyx_t_10;
 
4084
          __pyx_t_10 = 0;
 
4085
          __pyx_v_idx = __pyx_t_8;
 
4086
          __pyx_t_8 = (__pyx_t_8 + 1);
 
4087
          __pyx_t_10 = __pyx_v_parent;
 
4088
          __Pyx_INCREF(__pyx_t_10);
 
4089
          __pyx_t_11 = PyInt_FromLong(__pyx_v_idx); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 205; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
4090
          __Pyx_GOTREF(__pyx_t_11);
 
4091
          __pyx_t_12 = ((struct __pyx_vtabstruct_6Cython_8Compiler_7Visitor_TreeVisitor *)__pyx_v_self->__pyx_vtab)->_visitchild(__pyx_v_self, __pyx_v_x, __pyx_t_10, __pyx_v_attr, __pyx_t_11); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 205; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
4092
          __Pyx_GOTREF(__pyx_t_12);
 
4093
          __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
 
4094
          __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
 
4095
          if (unlikely(PyList_Append(__pyx_t_7, (PyObject*)__pyx_t_12))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 205; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
4096
          __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
 
4097
        }
 
4098
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 
4099
        __Pyx_INCREF(((PyObject *)__pyx_t_7));
 
4100
        __Pyx_DECREF(__pyx_v_childretval);
 
4101
        __pyx_v_childretval = ((PyObject *)__pyx_t_7);
 
4102
        __Pyx_DECREF(((PyObject *)__pyx_t_7)); __pyx_t_7 = 0;
 
4103
        goto __pyx_L8;
 
4104
      }
 
4105
      /*else*/ {
 
4106
 
 
4107
        /* "Cython/Compiler/Visitor.py":207
 
4108
 *                     childretval = [self._visitchild(x, parent, attr, idx) for idx, x in enumerate(child)]
 
4109
 *                 else:
 
4110
 *                     childretval = self._visitchild(child, parent, attr, None)             # <<<<<<<<<<<<<<
 
4111
 *                     assert not isinstance(childretval, list), 'Cannot insert list here: %s in %r' % (attr, parent)
 
4112
 *                 result[attr] = childretval
 
4113
 */
 
4114
        __pyx_t_7 = __pyx_v_parent;
 
4115
        __Pyx_INCREF(__pyx_t_7);
 
4116
        __pyx_t_2 = Py_None;
 
4117
        __Pyx_INCREF(__pyx_t_2);
 
4118
        __pyx_t_12 = ((struct __pyx_vtabstruct_6Cython_8Compiler_7Visitor_TreeVisitor *)__pyx_v_self->__pyx_vtab)->_visitchild(__pyx_v_self, __pyx_v_child, __pyx_t_7, __pyx_v_attr, __pyx_t_2); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 207; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
4119
        __Pyx_GOTREF(__pyx_t_12);
 
4120
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
 
4121
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 
4122
        __Pyx_DECREF(__pyx_v_childretval);
 
4123
        __pyx_v_childretval = __pyx_t_12;
 
4124
        __pyx_t_12 = 0;
 
4125
 
 
4126
        /* "Cython/Compiler/Visitor.py":208
 
4127
 *                 else:
 
4128
 *                     childretval = self._visitchild(child, parent, attr, None)
 
4129
 *                     assert not isinstance(childretval, list), 'Cannot insert list here: %s in %r' % (attr, parent)             # <<<<<<<<<<<<<<
 
4130
 *                 result[attr] = childretval
 
4131
 *         return result
 
4132
 */
 
4133
        #ifndef CYTHON_WITHOUT_ASSERTIONS
 
4134
        __pyx_t_12 = ((PyObject *)((PyObject*)(&PyList_Type)));
 
4135
        __Pyx_INCREF(__pyx_t_12);
 
4136
        __pyx_t_6 = __Pyx_TypeCheck(__pyx_v_childretval, __pyx_t_12); 
 
4137
        __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
 
4138
        if (unlikely(!(!__pyx_t_6))) {
 
4139
          __pyx_t_12 = PyTuple_New(2); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 208; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
4140
          __Pyx_GOTREF(((PyObject *)__pyx_t_12));
 
4141
          __Pyx_INCREF(__pyx_v_attr);
 
4142
          PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_v_attr);
 
4143
          __Pyx_GIVEREF(__pyx_v_attr);
 
4144
          __Pyx_INCREF(__pyx_v_parent);
 
4145
          PyTuple_SET_ITEM(__pyx_t_12, 1, __pyx_v_parent);
 
4146
          __Pyx_GIVEREF(__pyx_v_parent);
 
4147
          __pyx_t_2 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_19), ((PyObject *)__pyx_t_12)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 208; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
4148
          __Pyx_GOTREF(((PyObject *)__pyx_t_2));
 
4149
          __Pyx_DECREF(((PyObject *)__pyx_t_12)); __pyx_t_12 = 0;
 
4150
          PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_t_2));
 
4151
          __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
 
4152
          {__pyx_filename = __pyx_f[0]; __pyx_lineno = 208; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
4153
        }
 
4154
        #endif
 
4155
      }
 
4156
      __pyx_L8:;
 
4157
 
 
4158
      /* "Cython/Compiler/Visitor.py":209
 
4159
 *                     childretval = self._visitchild(child, parent, attr, None)
 
4160
 *                     assert not isinstance(childretval, list), 'Cannot insert list here: %s in %r' % (attr, parent)
 
4161
 *                 result[attr] = childretval             # <<<<<<<<<<<<<<
 
4162
 *         return result
 
4163
 * 
 
4164
 */
 
4165
      if (PyDict_SetItem(((PyObject *)__pyx_v_result), __pyx_v_attr, __pyx_v_childretval) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 209; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
4166
      goto __pyx_L7;
 
4167
    }
 
4168
    __pyx_L7:;
 
4169
    __pyx_L4_continue:;
 
4170
  }
 
4171
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 
4172
 
 
4173
  /* "Cython/Compiler/Visitor.py":210
 
4174
 *                     assert not isinstance(childretval, list), 'Cannot insert list here: %s in %r' % (attr, parent)
 
4175
 *                 result[attr] = childretval
 
4176
 *         return result             # <<<<<<<<<<<<<<
 
4177
 * 
 
4178
 * 
 
4179
 */
 
4180
  __Pyx_XDECREF(((PyObject *)__pyx_r));
 
4181
  __Pyx_INCREF(((PyObject *)__pyx_v_result));
 
4182
  __pyx_r = __pyx_v_result;
 
4183
  goto __pyx_L0;
 
4184
 
 
4185
  __pyx_r = ((PyObject*)Py_None); __Pyx_INCREF(Py_None);
 
4186
  goto __pyx_L0;
 
4187
  __pyx_L1_error:;
 
4188
  __Pyx_XDECREF(__pyx_t_2);
 
4189
  __Pyx_XDECREF(__pyx_t_4);
 
4190
  __Pyx_XDECREF(__pyx_t_7);
 
4191
  __Pyx_XDECREF(__pyx_t_10);
 
4192
  __Pyx_XDECREF(__pyx_t_11);
 
4193
  __Pyx_XDECREF(__pyx_t_12);
 
4194
  __Pyx_AddTraceback("Cython.Compiler.Visitor.TreeVisitor._visitchildren");
 
4195
  __pyx_r = 0;
 
4196
  __pyx_L0:;
 
4197
  __Pyx_DECREF(__pyx_v_result);
 
4198
  __Pyx_DECREF(__pyx_v_attr);
 
4199
  __Pyx_DECREF(__pyx_v_child);
 
4200
  __Pyx_DECREF(__pyx_v_childretval);
 
4201
  __Pyx_DECREF(__pyx_v_x);
 
4202
  __Pyx_XGIVEREF(__pyx_r);
 
4203
  __Pyx_RefNannyFinishContext();
 
4204
  return __pyx_r;
 
4205
}
 
4206
 
 
4207
/* "Cython/Compiler/Visitor.pxd":4
 
4208
 * 
 
4209
 * cdef class TreeVisitor:
 
4210
 *     cdef public list access_path             # <<<<<<<<<<<<<<
 
4211
 *     cdef dict dispatch_table
 
4212
 * 
 
4213
 */
 
4214
 
 
4215
static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_11TreeVisitor_11access_path___get__(PyObject *__pyx_v_self); /*proto*/
 
4216
static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_11TreeVisitor_11access_path___get__(PyObject *__pyx_v_self) {
 
4217
  PyObject *__pyx_r = NULL;
 
4218
  __Pyx_RefNannySetupContext("__get__");
 
4219
  __Pyx_XDECREF(__pyx_r);
 
4220
  __Pyx_INCREF(((PyObject *)((struct __pyx_obj_6Cython_8Compiler_7Visitor_TreeVisitor *)__pyx_v_self)->access_path));
 
4221
  __pyx_r = ((PyObject *)((struct __pyx_obj_6Cython_8Compiler_7Visitor_TreeVisitor *)__pyx_v_self)->access_path);
 
4222
  goto __pyx_L0;
 
4223
 
 
4224
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
 
4225
  __pyx_L0:;
 
4226
  __Pyx_XGIVEREF(__pyx_r);
 
4227
  __Pyx_RefNannyFinishContext();
 
4228
  return __pyx_r;
 
4229
}
 
4230
 
 
4231
static int __pyx_pf_6Cython_8Compiler_7Visitor_11TreeVisitor_11access_path_1__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
 
4232
static int __pyx_pf_6Cython_8Compiler_7Visitor_11TreeVisitor_11access_path_1__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
 
4233
  int __pyx_r;
 
4234
  __Pyx_RefNannySetupContext("__set__");
 
4235
  if (!(likely(PyList_CheckExact(__pyx_v_value))||((__pyx_v_value) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected list, got %.200s", Py_TYPE(__pyx_v_value)->tp_name), 0))) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 4; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
4236
  __Pyx_INCREF(__pyx_v_value);
 
4237
  __Pyx_GIVEREF(__pyx_v_value);
 
4238
  __Pyx_GOTREF(((struct __pyx_obj_6Cython_8Compiler_7Visitor_TreeVisitor *)__pyx_v_self)->access_path);
 
4239
  __Pyx_DECREF(((PyObject *)((struct __pyx_obj_6Cython_8Compiler_7Visitor_TreeVisitor *)__pyx_v_self)->access_path));
 
4240
  ((struct __pyx_obj_6Cython_8Compiler_7Visitor_TreeVisitor *)__pyx_v_self)->access_path = ((PyObject*)__pyx_v_value);
 
4241
 
 
4242
  __pyx_r = 0;
 
4243
  goto __pyx_L0;
 
4244
  __pyx_L1_error:;
 
4245
  __Pyx_AddTraceback("Cython.Compiler.Visitor.TreeVisitor.access_path.__set__");
 
4246
  __pyx_r = -1;
 
4247
  __pyx_L0:;
 
4248
  __Pyx_RefNannyFinishContext();
 
4249
  return __pyx_r;
 
4250
}
 
4251
 
 
4252
static int __pyx_pf_6Cython_8Compiler_7Visitor_11TreeVisitor_11access_path_2__del__(PyObject *__pyx_v_self); /*proto*/
 
4253
static int __pyx_pf_6Cython_8Compiler_7Visitor_11TreeVisitor_11access_path_2__del__(PyObject *__pyx_v_self) {
 
4254
  int __pyx_r;
 
4255
  __Pyx_RefNannySetupContext("__del__");
 
4256
  __Pyx_INCREF(Py_None);
 
4257
  __Pyx_GIVEREF(Py_None);
 
4258
  __Pyx_GOTREF(((struct __pyx_obj_6Cython_8Compiler_7Visitor_TreeVisitor *)__pyx_v_self)->access_path);
 
4259
  __Pyx_DECREF(((PyObject *)((struct __pyx_obj_6Cython_8Compiler_7Visitor_TreeVisitor *)__pyx_v_self)->access_path));
 
4260
  ((struct __pyx_obj_6Cython_8Compiler_7Visitor_TreeVisitor *)__pyx_v_self)->access_path = ((PyObject*)Py_None);
 
4261
 
 
4262
  __pyx_r = 0;
 
4263
  __Pyx_RefNannyFinishContext();
 
4264
  return __pyx_r;
 
4265
}
 
4266
 
 
4267
/* "Cython/Compiler/Visitor.py":233
 
4268
 *     are within a StatListNode or similar before doing this.)
 
4269
 *     """
 
4270
 *     def visitchildren(self, parent, attrs=None):             # <<<<<<<<<<<<<<
 
4271
 *         result = self._visitchildren(parent, attrs)
 
4272
 *         for attr, newnode in result.iteritems():
 
4273
 */
 
4274
 
 
4275
static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_16VisitorTransform_visitchildren(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
 
4276
static  PyObject *__pyx_f_6Cython_8Compiler_7Visitor_16VisitorTransform_visitchildren(struct __pyx_obj_6Cython_8Compiler_7Visitor_VisitorTransform *__pyx_v_self, PyObject *__pyx_v_parent, int __pyx_skip_dispatch, struct __pyx_opt_args_6Cython_8Compiler_7Visitor_16VisitorTransform_visitchildren *__pyx_optional_args) {
 
4277
  PyObject *__pyx_v_attrs = ((PyObject *)Py_None);
 
4278
  PyObject *__pyx_v_result;
 
4279
  PyObject *__pyx_v_attr;
 
4280
  PyObject *__pyx_v_newnode;
 
4281
  PyObject *__pyx_v_newlist;
 
4282
  PyObject *__pyx_v_x;
 
4283
  PyObject *__pyx_r = NULL;
 
4284
  PyObject *__pyx_t_1 = NULL;
 
4285
  PyObject *__pyx_t_2 = NULL;
 
4286
  PyObject *__pyx_t_3 = NULL;
 
4287
  Py_ssize_t __pyx_t_4;
 
4288
  void *__pyx_t_5;
 
4289
  void *__pyx_t_6;
 
4290
  int __pyx_t_7;
 
4291
  int __pyx_t_8;
 
4292
  int __pyx_t_9;
 
4293
  Py_ssize_t __pyx_t_10;
 
4294
  __Pyx_RefNannySetupContext("visitchildren");
 
4295
  if (__pyx_optional_args) {
 
4296
    if (__pyx_optional_args->__pyx_n > 0) {
 
4297
      __pyx_v_attrs = __pyx_optional_args->attrs;
 
4298
    }
 
4299
  }
 
4300
  __pyx_v_result = ((PyObject*)Py_None); __Pyx_INCREF(Py_None);
 
4301
  __pyx_v_attr = Py_None; __Pyx_INCREF(Py_None);
 
4302
  __pyx_v_newnode = Py_None; __Pyx_INCREF(Py_None);
 
4303
  __pyx_v_newlist = Py_None; __Pyx_INCREF(Py_None);
 
4304
  __pyx_v_x = Py_None; __Pyx_INCREF(Py_None);
 
4305
  /* Check if called by wrapper */
 
4306
  if (unlikely(__pyx_skip_dispatch)) ;
 
4307
  /* Check if overriden in Python */
 
4308
  else if (unlikely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0)) {
 
4309
    __pyx_t_1 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s__visitchildren); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 233; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
4310
    __Pyx_GOTREF(__pyx_t_1);
 
4311
    if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (void *)&__pyx_pf_6Cython_8Compiler_7Visitor_16VisitorTransform_visitchildren)) {
 
4312
      __Pyx_XDECREF(__pyx_r);
 
4313
      __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 233; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
4314
      __Pyx_GOTREF(((PyObject *)__pyx_t_2));
 
4315
      __Pyx_INCREF(__pyx_v_parent);
 
4316
      PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_parent);
 
4317
      __Pyx_GIVEREF(__pyx_v_parent);
 
4318
      __Pyx_INCREF(__pyx_v_attrs);
 
4319
      PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_attrs);
 
4320
      __Pyx_GIVEREF(__pyx_v_attrs);
 
4321
      __pyx_t_3 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 233; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
4322
      __Pyx_GOTREF(__pyx_t_3);
 
4323
      __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
 
4324
      __pyx_r = __pyx_t_3;
 
4325
      __pyx_t_3 = 0;
 
4326
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
4327
      goto __pyx_L0;
 
4328
    }
 
4329
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
4330
  }
 
4331
 
 
4332
  /* "Cython/Compiler/Visitor.py":234
 
4333
 *     """
 
4334
 *     def visitchildren(self, parent, attrs=None):
 
4335
 *         result = self._visitchildren(parent, attrs)             # <<<<<<<<<<<<<<
 
4336
 *         for attr, newnode in result.iteritems():
 
4337
 *             if not type(newnode) is list:
 
4338
 */
 
4339
  __pyx_t_1 = __pyx_v_parent;
 
4340
  __Pyx_INCREF(__pyx_t_1);
 
4341
  __pyx_t_3 = __pyx_v_attrs;
 
4342
  __Pyx_INCREF(__pyx_t_3);
 
4343
  __pyx_t_2 = ((PyObject *)((struct __pyx_vtabstruct_6Cython_8Compiler_7Visitor_VisitorTransform *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base._visitchildren(((struct __pyx_obj_6Cython_8Compiler_7Visitor_TreeVisitor *)__pyx_v_self), __pyx_t_1, __pyx_t_3)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 234; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
4344
  __Pyx_GOTREF(__pyx_t_2);
 
4345
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
4346
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 
4347
  __Pyx_DECREF(((PyObject *)__pyx_v_result));
 
4348
  __pyx_v_result = ((PyObject*)__pyx_t_2);
 
4349
  __pyx_t_2 = 0;
 
4350
 
 
4351
  /* "Cython/Compiler/Visitor.py":235
 
4352
 *     def visitchildren(self, parent, attrs=None):
 
4353
 *         result = self._visitchildren(parent, attrs)
 
4354
 *         for attr, newnode in result.iteritems():             # <<<<<<<<<<<<<<
 
4355
 *             if not type(newnode) is list:
 
4356
 *                 setattr(parent, attr, newnode)
 
4357
 */
 
4358
  __Pyx_INCREF(((PyObject *)__pyx_v_result));
 
4359
  __Pyx_XDECREF(__pyx_t_2);
 
4360
  __pyx_t_2 = ((PyObject *)__pyx_v_result);
 
4361
  __pyx_t_4 = 0;
 
4362
  while (1) {
 
4363
    if (!PyDict_Next(__pyx_t_2, (&__pyx_t_4), ((PyObject **)(&__pyx_t_5)), ((PyObject **)(&__pyx_t_6)))) break;
 
4364
    __Pyx_INCREF(((PyObject *)__pyx_t_5));
 
4365
    __Pyx_DECREF(__pyx_v_attr);
 
4366
    __pyx_v_attr = ((PyObject *)__pyx_t_5);
 
4367
    __Pyx_INCREF(((PyObject *)__pyx_t_6));
 
4368
    __Pyx_DECREF(__pyx_v_newnode);
 
4369
    __pyx_v_newnode = ((PyObject *)__pyx_t_6);
 
4370
 
 
4371
    /* "Cython/Compiler/Visitor.py":236
 
4372
 *         result = self._visitchildren(parent, attrs)
 
4373
 *         for attr, newnode in result.iteritems():
 
4374
 *             if not type(newnode) is list:             # <<<<<<<<<<<<<<
 
4375
 *                 setattr(parent, attr, newnode)
 
4376
 *             else:
 
4377
 */
 
4378
    __pyx_t_7 = (((PyObject *)Py_TYPE(__pyx_v_newnode)) == ((PyObject *)((PyObject*)(&PyList_Type))));
 
4379
    __pyx_t_8 = (!__pyx_t_7);
 
4380
    if (__pyx_t_8) {
 
4381
 
 
4382
      /* "Cython/Compiler/Visitor.py":237
 
4383
 *         for attr, newnode in result.iteritems():
 
4384
 *             if not type(newnode) is list:
 
4385
 *                 setattr(parent, attr, newnode)             # <<<<<<<<<<<<<<
 
4386
 *             else:
 
4387
 *                 # Flatten the list one level and remove any None
 
4388
 */
 
4389
      __pyx_t_3 = __pyx_v_parent;
 
4390
      __Pyx_INCREF(__pyx_t_3);
 
4391
      __pyx_t_9 = PyObject_SetAttr(__pyx_t_3, __pyx_v_attr, __pyx_v_newnode); if (unlikely(__pyx_t_9 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 237; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
4392
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 
4393
      goto __pyx_L5;
 
4394
    }
 
4395
    /*else*/ {
 
4396
 
 
4397
      /* "Cython/Compiler/Visitor.py":240
 
4398
 *             else:
 
4399
 *                 # Flatten the list one level and remove any None
 
4400
 *                 newlist = []             # <<<<<<<<<<<<<<
 
4401
 *                 for x in newnode:
 
4402
 *                     if x is not None:
 
4403
 */
 
4404
      __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 240; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
4405
      __Pyx_GOTREF(((PyObject *)__pyx_t_3));
 
4406
      __Pyx_DECREF(__pyx_v_newlist);
 
4407
      __pyx_v_newlist = ((PyObject *)__pyx_t_3);
 
4408
      __pyx_t_3 = 0;
 
4409
 
 
4410
      /* "Cython/Compiler/Visitor.py":241
 
4411
 *                 # Flatten the list one level and remove any None
 
4412
 *                 newlist = []
 
4413
 *                 for x in newnode:             # <<<<<<<<<<<<<<
 
4414
 *                     if x is not None:
 
4415
 *                         if type(x) is list:
 
4416
 */
 
4417
      if (PyList_CheckExact(__pyx_v_newnode) || PyTuple_CheckExact(__pyx_v_newnode)) {
 
4418
        __pyx_t_10 = 0; __pyx_t_3 = __pyx_v_newnode; __Pyx_INCREF(__pyx_t_3);
 
4419
      } else {
 
4420
        __pyx_t_10 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_v_newnode); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 241; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
4421
        __Pyx_GOTREF(__pyx_t_3);
 
4422
      }
 
4423
      for (;;) {
 
4424
        if (likely(PyList_CheckExact(__pyx_t_3))) {
 
4425
          if (__pyx_t_10 >= PyList_GET_SIZE(__pyx_t_3)) break;
 
4426
          __pyx_t_1 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_10); __Pyx_INCREF(__pyx_t_1); __pyx_t_10++;
 
4427
        } else if (likely(PyTuple_CheckExact(__pyx_t_3))) {
 
4428
          if (__pyx_t_10 >= PyTuple_GET_SIZE(__pyx_t_3)) break;
 
4429
          __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_10); __Pyx_INCREF(__pyx_t_1); __pyx_t_10++;
 
4430
        } else {
 
4431
          __pyx_t_1 = PyIter_Next(__pyx_t_3);
 
4432
          if (!__pyx_t_1) {
 
4433
            if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 241; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
4434
            break;
 
4435
          }
 
4436
          __Pyx_GOTREF(__pyx_t_1);
 
4437
        }
 
4438
        __Pyx_DECREF(__pyx_v_x);
 
4439
        __pyx_v_x = __pyx_t_1;
 
4440
        __pyx_t_1 = 0;
 
4441
 
 
4442
        /* "Cython/Compiler/Visitor.py":242
 
4443
 *                 newlist = []
 
4444
 *                 for x in newnode:
 
4445
 *                     if x is not None:             # <<<<<<<<<<<<<<
 
4446
 *                         if type(x) is list:
 
4447
 *                             newlist += x
 
4448
 */
 
4449
        __pyx_t_8 = (__pyx_v_x != Py_None);
 
4450
        if (__pyx_t_8) {
 
4451
 
 
4452
          /* "Cython/Compiler/Visitor.py":243
 
4453
 *                 for x in newnode:
 
4454
 *                     if x is not None:
 
4455
 *                         if type(x) is list:             # <<<<<<<<<<<<<<
 
4456
 *                             newlist += x
 
4457
 *                         else:
 
4458
 */
 
4459
          __pyx_t_8 = (((PyObject *)Py_TYPE(__pyx_v_x)) == ((PyObject *)((PyObject*)(&PyList_Type))));
 
4460
          if (__pyx_t_8) {
 
4461
 
 
4462
            /* "Cython/Compiler/Visitor.py":244
 
4463
 *                     if x is not None:
 
4464
 *                         if type(x) is list:
 
4465
 *                             newlist += x             # <<<<<<<<<<<<<<
 
4466
 *                         else:
 
4467
 *                             newlist.append(x)
 
4468
 */
 
4469
            __pyx_t_1 = PyNumber_InPlaceAdd(__pyx_v_newlist, __pyx_v_x); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 244; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
4470
            __Pyx_GOTREF(__pyx_t_1);
 
4471
            __Pyx_DECREF(__pyx_v_newlist);
 
4472
            __pyx_v_newlist = __pyx_t_1;
 
4473
            __pyx_t_1 = 0;
 
4474
            goto __pyx_L9;
 
4475
          }
 
4476
          /*else*/ {
 
4477
 
 
4478
            /* "Cython/Compiler/Visitor.py":246
 
4479
 *                             newlist += x
 
4480
 *                         else:
 
4481
 *                             newlist.append(x)             # <<<<<<<<<<<<<<
 
4482
 *                 setattr(parent, attr, newlist)
 
4483
 *         return result
 
4484
 */
 
4485
            __pyx_t_1 = __Pyx_PyObject_Append(__pyx_v_newlist, __pyx_v_x); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 246; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
4486
            __Pyx_GOTREF(__pyx_t_1);
 
4487
            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
4488
          }
 
4489
          __pyx_L9:;
 
4490
          goto __pyx_L8;
 
4491
        }
 
4492
        __pyx_L8:;
 
4493
      }
 
4494
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 
4495
 
 
4496
      /* "Cython/Compiler/Visitor.py":247
 
4497
 *                         else:
 
4498
 *                             newlist.append(x)
 
4499
 *                 setattr(parent, attr, newlist)             # <<<<<<<<<<<<<<
 
4500
 *         return result
 
4501
 * 
 
4502
 */
 
4503
      __pyx_t_3 = __pyx_v_parent;
 
4504
      __Pyx_INCREF(__pyx_t_3);
 
4505
      __pyx_t_9 = PyObject_SetAttr(__pyx_t_3, __pyx_v_attr, __pyx_v_newlist); if (unlikely(__pyx_t_9 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 247; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
4506
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 
4507
    }
 
4508
    __pyx_L5:;
 
4509
  }
 
4510
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 
4511
 
 
4512
  /* "Cython/Compiler/Visitor.py":248
 
4513
 *                             newlist.append(x)
 
4514
 *                 setattr(parent, attr, newlist)
 
4515
 *         return result             # <<<<<<<<<<<<<<
 
4516
 * 
 
4517
 *     def recurse_to_children(self, node):
 
4518
 */
 
4519
  __Pyx_XDECREF(__pyx_r);
 
4520
  __Pyx_INCREF(((PyObject *)__pyx_v_result));
 
4521
  __pyx_r = ((PyObject *)__pyx_v_result);
 
4522
  goto __pyx_L0;
 
4523
 
 
4524
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
 
4525
  goto __pyx_L0;
 
4526
  __pyx_L1_error:;
 
4527
  __Pyx_XDECREF(__pyx_t_1);
 
4528
  __Pyx_XDECREF(__pyx_t_2);
 
4529
  __Pyx_XDECREF(__pyx_t_3);
 
4530
  __Pyx_AddTraceback("Cython.Compiler.Visitor.VisitorTransform.visitchildren");
 
4531
  __pyx_r = 0;
 
4532
  __pyx_L0:;
 
4533
  __Pyx_DECREF(__pyx_v_result);
 
4534
  __Pyx_DECREF(__pyx_v_attr);
 
4535
  __Pyx_DECREF(__pyx_v_newnode);
 
4536
  __Pyx_DECREF(__pyx_v_newlist);
 
4537
  __Pyx_DECREF(__pyx_v_x);
 
4538
  __Pyx_XGIVEREF(__pyx_r);
 
4539
  __Pyx_RefNannyFinishContext();
 
4540
  return __pyx_r;
 
4541
}
 
4542
 
 
4543
/* "Cython/Compiler/Visitor.py":233
 
4544
 *     are within a StatListNode or similar before doing this.)
 
4545
 *     """
 
4546
 *     def visitchildren(self, parent, attrs=None):             # <<<<<<<<<<<<<<
 
4547
 *         result = self._visitchildren(parent, attrs)
 
4548
 *         for attr, newnode in result.iteritems():
 
4549
 */
 
4550
 
 
4551
static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_16VisitorTransform_visitchildren(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
 
4552
static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_16VisitorTransform_visitchildren(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
 
4553
  PyObject *__pyx_v_parent = 0;
 
4554
  PyObject *__pyx_v_attrs = 0;
 
4555
  PyObject *__pyx_r = NULL;
 
4556
  PyObject *__pyx_t_1 = NULL;
 
4557
  PyObject *__pyx_t_2 = NULL;
 
4558
  PyObject *__pyx_t_3 = NULL;
 
4559
  struct __pyx_opt_args_6Cython_8Compiler_7Visitor_11TreeVisitor_visitchildren __pyx_t_4;
 
4560
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__parent,&__pyx_n_s__attrs,0};
 
4561
  __Pyx_RefNannySetupContext("visitchildren");
 
4562
  if (unlikely(__pyx_kwds)) {
 
4563
    Py_ssize_t kw_args = PyDict_Size(__pyx_kwds);
 
4564
    PyObject* values[2] = {0,0};
 
4565
    values[1] = ((PyObject *)Py_None);
 
4566
    switch (PyTuple_GET_SIZE(__pyx_args)) {
 
4567
      case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
 
4568
      case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
 
4569
      case  0: break;
 
4570
      default: goto __pyx_L5_argtuple_error;
 
4571
    }
 
4572
    switch (PyTuple_GET_SIZE(__pyx_args)) {
 
4573
      case  0:
 
4574
      values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__parent);
 
4575
      if (likely(values[0])) kw_args--;
 
4576
      else goto __pyx_L5_argtuple_error;
 
4577
      case  1:
 
4578
      if (kw_args > 0) {
 
4579
        PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__attrs);
 
4580
        if (value) { values[1] = value; kw_args--; }
 
4581
      }
 
4582
    }
 
4583
    if (unlikely(kw_args > 0)) {
 
4584
      if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "visitchildren") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 233; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 
4585
    }
 
4586
    __pyx_v_parent = values[0];
 
4587
    __pyx_v_attrs = values[1];
 
4588
  } else {
 
4589
    __pyx_v_attrs = ((PyObject *)Py_None);
 
4590
    switch (PyTuple_GET_SIZE(__pyx_args)) {
 
4591
      case  2: __pyx_v_attrs = PyTuple_GET_ITEM(__pyx_args, 1);
 
4592
      case  1: __pyx_v_parent = PyTuple_GET_ITEM(__pyx_args, 0);
 
4593
      break;
 
4594
      default: goto __pyx_L5_argtuple_error;
 
4595
    }
 
4596
  }
 
4597
  goto __pyx_L4_argument_unpacking_done;
 
4598
  __pyx_L5_argtuple_error:;
 
4599
  __Pyx_RaiseArgtupleInvalid("visitchildren", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 233; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 
4600
  __pyx_L3_error:;
 
4601
  __Pyx_AddTraceback("Cython.Compiler.Visitor.VisitorTransform.visitchildren");
 
4602
  __Pyx_RefNannyFinishContext();
 
4603
  return NULL;
 
4604
  __pyx_L4_argument_unpacking_done:;
 
4605
  __Pyx_XDECREF(__pyx_r);
 
4606
  __pyx_t_1 = __pyx_v_parent;
 
4607
  __Pyx_INCREF(__pyx_t_1);
 
4608
  __pyx_t_2 = __pyx_v_attrs;
 
4609
  __Pyx_INCREF(__pyx_t_2);
 
4610
  __pyx_t_4.__pyx_n = 1;
 
4611
  __pyx_t_4.attrs = __pyx_t_2;
 
4612
  __pyx_t_3 = ((struct __pyx_vtabstruct_6Cython_8Compiler_7Visitor_VisitorTransform *)((struct __pyx_obj_6Cython_8Compiler_7Visitor_VisitorTransform *)__pyx_v_self)->__pyx_base.__pyx_vtab)->__pyx_base.visitchildren(((struct __pyx_obj_6Cython_8Compiler_7Visitor_TreeVisitor *)__pyx_v_self), __pyx_t_1, 1, &__pyx_t_4); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 233; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
4613
  __Pyx_GOTREF(__pyx_t_3);
 
4614
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
4615
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 
4616
  __pyx_r = __pyx_t_3;
 
4617
  __pyx_t_3 = 0;
 
4618
  goto __pyx_L0;
 
4619
 
 
4620
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
 
4621
  goto __pyx_L0;
 
4622
  __pyx_L1_error:;
 
4623
  __Pyx_XDECREF(__pyx_t_1);
 
4624
  __Pyx_XDECREF(__pyx_t_2);
 
4625
  __Pyx_XDECREF(__pyx_t_3);
 
4626
  __Pyx_AddTraceback("Cython.Compiler.Visitor.VisitorTransform.visitchildren");
 
4627
  __pyx_r = NULL;
 
4628
  __pyx_L0:;
 
4629
  __Pyx_XGIVEREF(__pyx_r);
 
4630
  __Pyx_RefNannyFinishContext();
 
4631
  return __pyx_r;
 
4632
}
 
4633
 
 
4634
/* "Cython/Compiler/Visitor.py":250
 
4635
 *         return result
 
4636
 * 
 
4637
 *     def recurse_to_children(self, node):             # <<<<<<<<<<<<<<
 
4638
 *         self.visitchildren(node)
 
4639
 *         return node
 
4640
 */
 
4641
 
 
4642
static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_16VisitorTransform_1recurse_to_children(PyObject *__pyx_v_self, PyObject *__pyx_v_node); /*proto*/
 
4643
static  PyObject *__pyx_f_6Cython_8Compiler_7Visitor_16VisitorTransform_recurse_to_children(struct __pyx_obj_6Cython_8Compiler_7Visitor_VisitorTransform *__pyx_v_self, PyObject *__pyx_v_node, int __pyx_skip_dispatch) {
 
4644
  PyObject *__pyx_r = NULL;
 
4645
  PyObject *__pyx_t_1 = NULL;
 
4646
  PyObject *__pyx_t_2 = NULL;
 
4647
  PyObject *__pyx_t_3 = NULL;
 
4648
  __Pyx_RefNannySetupContext("recurse_to_children");
 
4649
  /* Check if called by wrapper */
 
4650
  if (unlikely(__pyx_skip_dispatch)) ;
 
4651
  /* Check if overriden in Python */
 
4652
  else if (unlikely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0)) {
 
4653
    __pyx_t_1 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s__recurse_to_children); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 250; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
4654
    __Pyx_GOTREF(__pyx_t_1);
 
4655
    if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (void *)&__pyx_pf_6Cython_8Compiler_7Visitor_16VisitorTransform_1recurse_to_children)) {
 
4656
      __Pyx_XDECREF(__pyx_r);
 
4657
      __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 250; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
4658
      __Pyx_GOTREF(((PyObject *)__pyx_t_2));
 
4659
      __Pyx_INCREF(__pyx_v_node);
 
4660
      PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_node);
 
4661
      __Pyx_GIVEREF(__pyx_v_node);
 
4662
      __pyx_t_3 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 250; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
4663
      __Pyx_GOTREF(__pyx_t_3);
 
4664
      __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
 
4665
      __pyx_r = __pyx_t_3;
 
4666
      __pyx_t_3 = 0;
 
4667
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
4668
      goto __pyx_L0;
 
4669
    }
 
4670
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
4671
  }
 
4672
 
 
4673
  /* "Cython/Compiler/Visitor.py":251
 
4674
 * 
 
4675
 *     def recurse_to_children(self, node):
 
4676
 *         self.visitchildren(node)             # <<<<<<<<<<<<<<
 
4677
 *         return node
 
4678
 * 
 
4679
 */
 
4680
  __pyx_t_1 = __pyx_v_node;
 
4681
  __Pyx_INCREF(__pyx_t_1);
 
4682
  __pyx_t_3 = ((struct __pyx_vtabstruct_6Cython_8Compiler_7Visitor_VisitorTransform *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.visitchildren(((struct __pyx_obj_6Cython_8Compiler_7Visitor_TreeVisitor *)__pyx_v_self), __pyx_t_1, 0, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 251; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
4683
  __Pyx_GOTREF(__pyx_t_3);
 
4684
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
4685
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 
4686
 
 
4687
  /* "Cython/Compiler/Visitor.py":252
 
4688
 *     def recurse_to_children(self, node):
 
4689
 *         self.visitchildren(node)
 
4690
 *         return node             # <<<<<<<<<<<<<<
 
4691
 * 
 
4692
 *     def __call__(self, root):
 
4693
 */
 
4694
  __Pyx_XDECREF(__pyx_r);
 
4695
  __Pyx_INCREF(__pyx_v_node);
 
4696
  __pyx_r = __pyx_v_node;
 
4697
  goto __pyx_L0;
 
4698
 
 
4699
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
 
4700
  goto __pyx_L0;
 
4701
  __pyx_L1_error:;
 
4702
  __Pyx_XDECREF(__pyx_t_1);
 
4703
  __Pyx_XDECREF(__pyx_t_2);
 
4704
  __Pyx_XDECREF(__pyx_t_3);
 
4705
  __Pyx_AddTraceback("Cython.Compiler.Visitor.VisitorTransform.recurse_to_children");
 
4706
  __pyx_r = 0;
 
4707
  __pyx_L0:;
 
4708
  __Pyx_XGIVEREF(__pyx_r);
 
4709
  __Pyx_RefNannyFinishContext();
 
4710
  return __pyx_r;
 
4711
}
 
4712
 
 
4713
/* "Cython/Compiler/Visitor.py":250
 
4714
 *         return result
 
4715
 * 
 
4716
 *     def recurse_to_children(self, node):             # <<<<<<<<<<<<<<
 
4717
 *         self.visitchildren(node)
 
4718
 *         return node
 
4719
 */
 
4720
 
 
4721
static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_16VisitorTransform_1recurse_to_children(PyObject *__pyx_v_self, PyObject *__pyx_v_node); /*proto*/
 
4722
static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_16VisitorTransform_1recurse_to_children(PyObject *__pyx_v_self, PyObject *__pyx_v_node) {
 
4723
  PyObject *__pyx_r = NULL;
 
4724
  PyObject *__pyx_t_1 = NULL;
 
4725
  PyObject *__pyx_t_2 = NULL;
 
4726
  __Pyx_RefNannySetupContext("recurse_to_children");
 
4727
  __Pyx_XDECREF(__pyx_r);
 
4728
  __pyx_t_1 = __pyx_v_node;
 
4729
  __Pyx_INCREF(__pyx_t_1);
 
4730
  __pyx_t_2 = ((struct __pyx_vtabstruct_6Cython_8Compiler_7Visitor_VisitorTransform *)((struct __pyx_obj_6Cython_8Compiler_7Visitor_VisitorTransform *)__pyx_v_self)->__pyx_base.__pyx_vtab)->recurse_to_children(((struct __pyx_obj_6Cython_8Compiler_7Visitor_VisitorTransform *)__pyx_v_self), __pyx_t_1, 1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 250; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
4731
  __Pyx_GOTREF(__pyx_t_2);
 
4732
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
4733
  __pyx_r = __pyx_t_2;
 
4734
  __pyx_t_2 = 0;
 
4735
  goto __pyx_L0;
 
4736
 
 
4737
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
 
4738
  goto __pyx_L0;
 
4739
  __pyx_L1_error:;
 
4740
  __Pyx_XDECREF(__pyx_t_1);
 
4741
  __Pyx_XDECREF(__pyx_t_2);
 
4742
  __Pyx_AddTraceback("Cython.Compiler.Visitor.VisitorTransform.recurse_to_children");
 
4743
  __pyx_r = NULL;
 
4744
  __pyx_L0:;
 
4745
  __Pyx_XGIVEREF(__pyx_r);
 
4746
  __Pyx_RefNannyFinishContext();
 
4747
  return __pyx_r;
 
4748
}
 
4749
 
 
4750
/* "Cython/Compiler/Visitor.py":254
 
4751
 *         return node
 
4752
 * 
 
4753
 *     def __call__(self, root):             # <<<<<<<<<<<<<<
 
4754
 *         return self._visit(root)
 
4755
 * 
 
4756
 */
 
4757
 
 
4758
static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_16VisitorTransform_2__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
 
4759
static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_16VisitorTransform_2__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
 
4760
  PyObject *__pyx_v_root = 0;
 
4761
  PyObject *__pyx_r = NULL;
 
4762
  PyObject *__pyx_t_1 = NULL;
 
4763
  PyObject *__pyx_t_2 = NULL;
 
4764
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__root,0};
 
4765
  __Pyx_RefNannySetupContext("__call__");
 
4766
  if (unlikely(__pyx_kwds)) {
 
4767
    Py_ssize_t kw_args = PyDict_Size(__pyx_kwds);
 
4768
    PyObject* values[1] = {0};
 
4769
    switch (PyTuple_GET_SIZE(__pyx_args)) {
 
4770
      case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
 
4771
      case  0: break;
 
4772
      default: goto __pyx_L5_argtuple_error;
 
4773
    }
 
4774
    switch (PyTuple_GET_SIZE(__pyx_args)) {
 
4775
      case  0:
 
4776
      values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__root);
 
4777
      if (likely(values[0])) kw_args--;
 
4778
      else goto __pyx_L5_argtuple_error;
 
4779
    }
 
4780
    if (unlikely(kw_args > 0)) {
 
4781
      if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "__call__") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 254; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 
4782
    }
 
4783
    __pyx_v_root = values[0];
 
4784
  } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
 
4785
    goto __pyx_L5_argtuple_error;
 
4786
  } else {
 
4787
    __pyx_v_root = PyTuple_GET_ITEM(__pyx_args, 0);
 
4788
  }
 
4789
  goto __pyx_L4_argument_unpacking_done;
 
4790
  __pyx_L5_argtuple_error:;
 
4791
  __Pyx_RaiseArgtupleInvalid("__call__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 254; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 
4792
  __pyx_L3_error:;
 
4793
  __Pyx_AddTraceback("Cython.Compiler.Visitor.VisitorTransform.__call__");
 
4794
  __Pyx_RefNannyFinishContext();
 
4795
  return NULL;
 
4796
  __pyx_L4_argument_unpacking_done:;
 
4797
 
 
4798
  /* "Cython/Compiler/Visitor.py":255
 
4799
 * 
 
4800
 *     def __call__(self, root):
 
4801
 *         return self._visit(root)             # <<<<<<<<<<<<<<
 
4802
 * 
 
4803
 * class CythonTransform(VisitorTransform):
 
4804
 */
 
4805
  __Pyx_XDECREF(__pyx_r);
 
4806
  __pyx_t_1 = __pyx_v_root;
 
4807
  __Pyx_INCREF(__pyx_t_1);
 
4808
  __pyx_t_2 = ((struct __pyx_vtabstruct_6Cython_8Compiler_7Visitor_VisitorTransform *)((struct __pyx_obj_6Cython_8Compiler_7Visitor_VisitorTransform *)__pyx_v_self)->__pyx_base.__pyx_vtab)->__pyx_base._visit(((struct __pyx_obj_6Cython_8Compiler_7Visitor_TreeVisitor *)__pyx_v_self), __pyx_t_1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 255; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
4809
  __Pyx_GOTREF(__pyx_t_2);
 
4810
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
4811
  __pyx_r = __pyx_t_2;
 
4812
  __pyx_t_2 = 0;
 
4813
  goto __pyx_L0;
 
4814
 
 
4815
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
 
4816
  goto __pyx_L0;
 
4817
  __pyx_L1_error:;
 
4818
  __Pyx_XDECREF(__pyx_t_1);
 
4819
  __Pyx_XDECREF(__pyx_t_2);
 
4820
  __Pyx_AddTraceback("Cython.Compiler.Visitor.VisitorTransform.__call__");
 
4821
  __pyx_r = NULL;
 
4822
  __pyx_L0:;
 
4823
  __Pyx_XGIVEREF(__pyx_r);
 
4824
  __Pyx_RefNannyFinishContext();
 
4825
  return __pyx_r;
 
4826
}
 
4827
 
 
4828
/* "Cython/Compiler/Visitor.py":264
 
4829
 *      - Tracks directives in effect in self.current_directives
 
4830
 *     """
 
4831
 *     def __init__(self, context):             # <<<<<<<<<<<<<<
 
4832
 *         super(CythonTransform, self).__init__()
 
4833
 *         self.context = context
 
4834
 */
 
4835
 
 
4836
static int __pyx_pf_6Cython_8Compiler_7Visitor_15CythonTransform___init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
 
4837
static int __pyx_pf_6Cython_8Compiler_7Visitor_15CythonTransform___init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
 
4838
  PyObject *__pyx_v_context = 0;
 
4839
  int __pyx_r;
 
4840
  PyObject *__pyx_t_1 = NULL;
 
4841
  PyObject *__pyx_t_2 = NULL;
 
4842
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__context,0};
 
4843
  __Pyx_RefNannySetupContext("__init__");
 
4844
  if (unlikely(__pyx_kwds)) {
 
4845
    Py_ssize_t kw_args = PyDict_Size(__pyx_kwds);
 
4846
    PyObject* values[1] = {0};
 
4847
    switch (PyTuple_GET_SIZE(__pyx_args)) {
 
4848
      case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
 
4849
      case  0: break;
 
4850
      default: goto __pyx_L5_argtuple_error;
 
4851
    }
 
4852
    switch (PyTuple_GET_SIZE(__pyx_args)) {
 
4853
      case  0:
 
4854
      values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__context);
 
4855
      if (likely(values[0])) kw_args--;
 
4856
      else goto __pyx_L5_argtuple_error;
 
4857
    }
 
4858
    if (unlikely(kw_args > 0)) {
 
4859
      if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "__init__") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 264; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 
4860
    }
 
4861
    __pyx_v_context = values[0];
 
4862
  } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
 
4863
    goto __pyx_L5_argtuple_error;
 
4864
  } else {
 
4865
    __pyx_v_context = PyTuple_GET_ITEM(__pyx_args, 0);
 
4866
  }
 
4867
  goto __pyx_L4_argument_unpacking_done;
 
4868
  __pyx_L5_argtuple_error:;
 
4869
  __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 264; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 
4870
  __pyx_L3_error:;
 
4871
  __Pyx_AddTraceback("Cython.Compiler.Visitor.CythonTransform.__init__");
 
4872
  __Pyx_RefNannyFinishContext();
 
4873
  return -1;
 
4874
  __pyx_L4_argument_unpacking_done:;
 
4875
 
 
4876
  /* "Cython/Compiler/Visitor.py":265
 
4877
 *     """
 
4878
 *     def __init__(self, context):
 
4879
 *         super(CythonTransform, self).__init__()             # <<<<<<<<<<<<<<
 
4880
 *         self.context = context
 
4881
 * 
 
4882
 */
 
4883
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 265; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
4884
  __Pyx_GOTREF(((PyObject *)__pyx_t_1));
 
4885
  __Pyx_INCREF(((PyObject *)((PyObject*)__pyx_ptype_6Cython_8Compiler_7Visitor_CythonTransform)));
 
4886
  PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)((PyObject*)__pyx_ptype_6Cython_8Compiler_7Visitor_CythonTransform)));
 
4887
  __Pyx_GIVEREF(((PyObject *)((PyObject*)__pyx_ptype_6Cython_8Compiler_7Visitor_CythonTransform)));
 
4888
  __Pyx_INCREF(__pyx_v_self);
 
4889
  PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_self);
 
4890
  __Pyx_GIVEREF(__pyx_v_self);
 
4891
  __pyx_t_2 = PyObject_Call(__pyx_builtin_super, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 265; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
4892
  __Pyx_GOTREF(__pyx_t_2);
 
4893
  __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
 
4894
  __pyx_t_1 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s____init__); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 265; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
4895
  __Pyx_GOTREF(__pyx_t_1);
 
4896
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 
4897
  __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 265; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
4898
  __Pyx_GOTREF(__pyx_t_2);
 
4899
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
4900
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 
4901
 
 
4902
  /* "Cython/Compiler/Visitor.py":266
 
4903
 *     def __init__(self, context):
 
4904
 *         super(CythonTransform, self).__init__()
 
4905
 *         self.context = context             # <<<<<<<<<<<<<<
 
4906
 * 
 
4907
 *     def __call__(self, node):
 
4908
 */
 
4909
  __Pyx_INCREF(__pyx_v_context);
 
4910
  __Pyx_GIVEREF(__pyx_v_context);
 
4911
  __Pyx_GOTREF(((struct __pyx_obj_6Cython_8Compiler_7Visitor_CythonTransform *)__pyx_v_self)->context);
 
4912
  __Pyx_DECREF(((struct __pyx_obj_6Cython_8Compiler_7Visitor_CythonTransform *)__pyx_v_self)->context);
 
4913
  ((struct __pyx_obj_6Cython_8Compiler_7Visitor_CythonTransform *)__pyx_v_self)->context = __pyx_v_context;
 
4914
 
 
4915
  __pyx_r = 0;
 
4916
  goto __pyx_L0;
 
4917
  __pyx_L1_error:;
 
4918
  __Pyx_XDECREF(__pyx_t_1);
 
4919
  __Pyx_XDECREF(__pyx_t_2);
 
4920
  __Pyx_AddTraceback("Cython.Compiler.Visitor.CythonTransform.__init__");
 
4921
  __pyx_r = -1;
 
4922
  __pyx_L0:;
 
4923
  __Pyx_RefNannyFinishContext();
 
4924
  return __pyx_r;
 
4925
}
 
4926
 
 
4927
/* "Cython/Compiler/Visitor.py":268
 
4928
 *         self.context = context
 
4929
 * 
 
4930
 *     def __call__(self, node):             # <<<<<<<<<<<<<<
 
4931
 *         import ModuleNode
 
4932
 *         if isinstance(node, ModuleNode.ModuleNode):
 
4933
 */
 
4934
 
 
4935
static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_15CythonTransform_1__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
 
4936
static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_15CythonTransform_1__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
 
4937
  PyObject *__pyx_v_node = 0;
 
4938
  PyObject *__pyx_v_ModuleNode;
 
4939
  PyObject *__pyx_r = NULL;
 
4940
  PyObject *__pyx_t_1 = NULL;
 
4941
  PyObject *__pyx_t_2 = NULL;
 
4942
  int __pyx_t_3;
 
4943
  PyObject *__pyx_t_4 = NULL;
 
4944
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__node,0};
 
4945
  __Pyx_RefNannySetupContext("__call__");
 
4946
  if (unlikely(__pyx_kwds)) {
 
4947
    Py_ssize_t kw_args = PyDict_Size(__pyx_kwds);
 
4948
    PyObject* values[1] = {0};
 
4949
    switch (PyTuple_GET_SIZE(__pyx_args)) {
 
4950
      case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
 
4951
      case  0: break;
 
4952
      default: goto __pyx_L5_argtuple_error;
 
4953
    }
 
4954
    switch (PyTuple_GET_SIZE(__pyx_args)) {
 
4955
      case  0:
 
4956
      values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__node);
 
4957
      if (likely(values[0])) kw_args--;
 
4958
      else goto __pyx_L5_argtuple_error;
 
4959
    }
 
4960
    if (unlikely(kw_args > 0)) {
 
4961
      if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "__call__") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 268; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 
4962
    }
 
4963
    __pyx_v_node = values[0];
 
4964
  } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
 
4965
    goto __pyx_L5_argtuple_error;
 
4966
  } else {
 
4967
    __pyx_v_node = PyTuple_GET_ITEM(__pyx_args, 0);
 
4968
  }
 
4969
  goto __pyx_L4_argument_unpacking_done;
 
4970
  __pyx_L5_argtuple_error:;
 
4971
  __Pyx_RaiseArgtupleInvalid("__call__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 268; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 
4972
  __pyx_L3_error:;
 
4973
  __Pyx_AddTraceback("Cython.Compiler.Visitor.CythonTransform.__call__");
 
4974
  __Pyx_RefNannyFinishContext();
 
4975
  return NULL;
 
4976
  __pyx_L4_argument_unpacking_done:;
 
4977
  __pyx_v_ModuleNode = Py_None; __Pyx_INCREF(Py_None);
 
4978
 
 
4979
  /* "Cython/Compiler/Visitor.py":269
 
4980
 * 
 
4981
 *     def __call__(self, node):
 
4982
 *         import ModuleNode             # <<<<<<<<<<<<<<
 
4983
 *         if isinstance(node, ModuleNode.ModuleNode):
 
4984
 *             self.current_directives = node.directives
 
4985
 */
 
4986
  __pyx_t_1 = __Pyx_Import(((PyObject *)__pyx_n_s__ModuleNode), 0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 269; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
4987
  __Pyx_GOTREF(__pyx_t_1);
 
4988
  __Pyx_DECREF(__pyx_v_ModuleNode);
 
4989
  __pyx_v_ModuleNode = __pyx_t_1;
 
4990
  __pyx_t_1 = 0;
 
4991
 
 
4992
  /* "Cython/Compiler/Visitor.py":270
 
4993
 *     def __call__(self, node):
 
4994
 *         import ModuleNode
 
4995
 *         if isinstance(node, ModuleNode.ModuleNode):             # <<<<<<<<<<<<<<
 
4996
 *             self.current_directives = node.directives
 
4997
 *         return super(CythonTransform, self).__call__(node)
 
4998
 */
 
4999
  __pyx_t_1 = __pyx_v_node;
 
5000
  __Pyx_INCREF(__pyx_t_1);
 
5001
  __pyx_t_2 = PyObject_GetAttr(__pyx_v_ModuleNode, __pyx_n_s__ModuleNode); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 270; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
5002
  __Pyx_GOTREF(__pyx_t_2);
 
5003
  __pyx_t_3 = PyObject_IsInstance(__pyx_t_1, __pyx_t_2); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 270; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
5004
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
5005
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 
5006
  if (__pyx_t_3) {
 
5007
 
 
5008
    /* "Cython/Compiler/Visitor.py":271
 
5009
 *         import ModuleNode
 
5010
 *         if isinstance(node, ModuleNode.ModuleNode):
 
5011
 *             self.current_directives = node.directives             # <<<<<<<<<<<<<<
 
5012
 *         return super(CythonTransform, self).__call__(node)
 
5013
 * 
 
5014
 */
 
5015
    __pyx_t_2 = PyObject_GetAttr(__pyx_v_node, __pyx_n_s__directives); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 271; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
5016
    __Pyx_GOTREF(__pyx_t_2);
 
5017
    __Pyx_GIVEREF(__pyx_t_2);
 
5018
    __Pyx_GOTREF(((struct __pyx_obj_6Cython_8Compiler_7Visitor_CythonTransform *)__pyx_v_self)->current_directives);
 
5019
    __Pyx_DECREF(((struct __pyx_obj_6Cython_8Compiler_7Visitor_CythonTransform *)__pyx_v_self)->current_directives);
 
5020
    ((struct __pyx_obj_6Cython_8Compiler_7Visitor_CythonTransform *)__pyx_v_self)->current_directives = __pyx_t_2;
 
5021
    __pyx_t_2 = 0;
 
5022
    goto __pyx_L6;
 
5023
  }
 
5024
  __pyx_L6:;
 
5025
 
 
5026
  /* "Cython/Compiler/Visitor.py":272
 
5027
 *         if isinstance(node, ModuleNode.ModuleNode):
 
5028
 *             self.current_directives = node.directives
 
5029
 *         return super(CythonTransform, self).__call__(node)             # <<<<<<<<<<<<<<
 
5030
 * 
 
5031
 *     def visit_CompilerDirectivesNode(self, node):
 
5032
 */
 
5033
  __Pyx_XDECREF(__pyx_r);
 
5034
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 272; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
5035
  __Pyx_GOTREF(((PyObject *)__pyx_t_2));
 
5036
  __Pyx_INCREF(((PyObject *)((PyObject*)__pyx_ptype_6Cython_8Compiler_7Visitor_CythonTransform)));
 
5037
  PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)((PyObject*)__pyx_ptype_6Cython_8Compiler_7Visitor_CythonTransform)));
 
5038
  __Pyx_GIVEREF(((PyObject *)((PyObject*)__pyx_ptype_6Cython_8Compiler_7Visitor_CythonTransform)));
 
5039
  __Pyx_INCREF(__pyx_v_self);
 
5040
  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_self);
 
5041
  __Pyx_GIVEREF(__pyx_v_self);
 
5042
  __pyx_t_1 = PyObject_Call(__pyx_builtin_super, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 272; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
5043
  __Pyx_GOTREF(__pyx_t_1);
 
5044
  __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
 
5045
  __pyx_t_2 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s____call__); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 272; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
5046
  __Pyx_GOTREF(__pyx_t_2);
 
5047
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
5048
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 272; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
5049
  __Pyx_GOTREF(((PyObject *)__pyx_t_1));
 
5050
  __Pyx_INCREF(__pyx_v_node);
 
5051
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_node);
 
5052
  __Pyx_GIVEREF(__pyx_v_node);
 
5053
  __pyx_t_4 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 272; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
5054
  __Pyx_GOTREF(__pyx_t_4);
 
5055
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 
5056
  __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
 
5057
  __pyx_r = __pyx_t_4;
 
5058
  __pyx_t_4 = 0;
 
5059
  goto __pyx_L0;
 
5060
 
 
5061
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
 
5062
  goto __pyx_L0;
 
5063
  __pyx_L1_error:;
 
5064
  __Pyx_XDECREF(__pyx_t_1);
 
5065
  __Pyx_XDECREF(__pyx_t_2);
 
5066
  __Pyx_XDECREF(__pyx_t_4);
 
5067
  __Pyx_AddTraceback("Cython.Compiler.Visitor.CythonTransform.__call__");
 
5068
  __pyx_r = NULL;
 
5069
  __pyx_L0:;
 
5070
  __Pyx_DECREF(__pyx_v_ModuleNode);
 
5071
  __Pyx_XGIVEREF(__pyx_r);
 
5072
  __Pyx_RefNannyFinishContext();
 
5073
  return __pyx_r;
 
5074
}
 
5075
 
 
5076
/* "Cython/Compiler/Visitor.py":274
 
5077
 *         return super(CythonTransform, self).__call__(node)
 
5078
 * 
 
5079
 *     def visit_CompilerDirectivesNode(self, node):             # <<<<<<<<<<<<<<
 
5080
 *         old = self.current_directives
 
5081
 *         self.current_directives = node.directives
 
5082
 */
 
5083
 
 
5084
static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_15CythonTransform_2visit_CompilerDirectivesNode(PyObject *__pyx_v_self, PyObject *__pyx_v_node); /*proto*/
 
5085
static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_15CythonTransform_2visit_CompilerDirectivesNode(PyObject *__pyx_v_self, PyObject *__pyx_v_node) {
 
5086
  PyObject *__pyx_v_old;
 
5087
  PyObject *__pyx_r = NULL;
 
5088
  PyObject *__pyx_t_1 = NULL;
 
5089
  PyObject *__pyx_t_2 = NULL;
 
5090
  __Pyx_RefNannySetupContext("visit_CompilerDirectivesNode");
 
5091
  __pyx_v_old = Py_None; __Pyx_INCREF(Py_None);
 
5092
 
 
5093
  /* "Cython/Compiler/Visitor.py":275
 
5094
 * 
 
5095
 *     def visit_CompilerDirectivesNode(self, node):
 
5096
 *         old = self.current_directives             # <<<<<<<<<<<<<<
 
5097
 *         self.current_directives = node.directives
 
5098
 *         self.visitchildren(node)
 
5099
 */
 
5100
  __Pyx_INCREF(((struct __pyx_obj_6Cython_8Compiler_7Visitor_CythonTransform *)__pyx_v_self)->current_directives);
 
5101
  __Pyx_DECREF(__pyx_v_old);
 
5102
  __pyx_v_old = ((struct __pyx_obj_6Cython_8Compiler_7Visitor_CythonTransform *)__pyx_v_self)->current_directives;
 
5103
 
 
5104
  /* "Cython/Compiler/Visitor.py":276
 
5105
 *     def visit_CompilerDirectivesNode(self, node):
 
5106
 *         old = self.current_directives
 
5107
 *         self.current_directives = node.directives             # <<<<<<<<<<<<<<
 
5108
 *         self.visitchildren(node)
 
5109
 *         self.current_directives = old
 
5110
 */
 
5111
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_node, __pyx_n_s__directives); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 276; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
5112
  __Pyx_GOTREF(__pyx_t_1);
 
5113
  __Pyx_GIVEREF(__pyx_t_1);
 
5114
  __Pyx_GOTREF(((struct __pyx_obj_6Cython_8Compiler_7Visitor_CythonTransform *)__pyx_v_self)->current_directives);
 
5115
  __Pyx_DECREF(((struct __pyx_obj_6Cython_8Compiler_7Visitor_CythonTransform *)__pyx_v_self)->current_directives);
 
5116
  ((struct __pyx_obj_6Cython_8Compiler_7Visitor_CythonTransform *)__pyx_v_self)->current_directives = __pyx_t_1;
 
5117
  __pyx_t_1 = 0;
 
5118
 
 
5119
  /* "Cython/Compiler/Visitor.py":277
 
5120
 *         old = self.current_directives
 
5121
 *         self.current_directives = node.directives
 
5122
 *         self.visitchildren(node)             # <<<<<<<<<<<<<<
 
5123
 *         self.current_directives = old
 
5124
 *         return node
 
5125
 */
 
5126
  __pyx_t_1 = __pyx_v_node;
 
5127
  __Pyx_INCREF(__pyx_t_1);
 
5128
  __pyx_t_2 = ((struct __pyx_vtabstruct_6Cython_8Compiler_7Visitor_CythonTransform *)((struct __pyx_obj_6Cython_8Compiler_7Visitor_CythonTransform *)__pyx_v_self)->__pyx_base.__pyx_base.__pyx_vtab)->__pyx_base.__pyx_base.visitchildren(((struct __pyx_obj_6Cython_8Compiler_7Visitor_TreeVisitor *)__pyx_v_self), __pyx_t_1, 0, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 277; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
5129
  __Pyx_GOTREF(__pyx_t_2);
 
5130
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
5131
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 
5132
 
 
5133
  /* "Cython/Compiler/Visitor.py":278
 
5134
 *         self.current_directives = node.directives
 
5135
 *         self.visitchildren(node)
 
5136
 *         self.current_directives = old             # <<<<<<<<<<<<<<
 
5137
 *         return node
 
5138
 * 
 
5139
 */
 
5140
  __Pyx_INCREF(__pyx_v_old);
 
5141
  __Pyx_GIVEREF(__pyx_v_old);
 
5142
  __Pyx_GOTREF(((struct __pyx_obj_6Cython_8Compiler_7Visitor_CythonTransform *)__pyx_v_self)->current_directives);
 
5143
  __Pyx_DECREF(((struct __pyx_obj_6Cython_8Compiler_7Visitor_CythonTransform *)__pyx_v_self)->current_directives);
 
5144
  ((struct __pyx_obj_6Cython_8Compiler_7Visitor_CythonTransform *)__pyx_v_self)->current_directives = __pyx_v_old;
 
5145
 
 
5146
  /* "Cython/Compiler/Visitor.py":279
 
5147
 *         self.visitchildren(node)
 
5148
 *         self.current_directives = old
 
5149
 *         return node             # <<<<<<<<<<<<<<
 
5150
 * 
 
5151
 *     def visit_Node(self, node):
 
5152
 */
 
5153
  __Pyx_XDECREF(__pyx_r);
 
5154
  __Pyx_INCREF(__pyx_v_node);
 
5155
  __pyx_r = __pyx_v_node;
 
5156
  goto __pyx_L0;
 
5157
 
 
5158
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
 
5159
  goto __pyx_L0;
 
5160
  __pyx_L1_error:;
 
5161
  __Pyx_XDECREF(__pyx_t_1);
 
5162
  __Pyx_XDECREF(__pyx_t_2);
 
5163
  __Pyx_AddTraceback("Cython.Compiler.Visitor.CythonTransform.visit_CompilerDirectivesNode");
 
5164
  __pyx_r = NULL;
 
5165
  __pyx_L0:;
 
5166
  __Pyx_DECREF(__pyx_v_old);
 
5167
  __Pyx_XGIVEREF(__pyx_r);
 
5168
  __Pyx_RefNannyFinishContext();
 
5169
  return __pyx_r;
 
5170
}
 
5171
 
 
5172
/* "Cython/Compiler/Visitor.py":281
 
5173
 *         return node
 
5174
 * 
 
5175
 *     def visit_Node(self, node):             # <<<<<<<<<<<<<<
 
5176
 *         self.visitchildren(node)
 
5177
 *         return node
 
5178
 */
 
5179
 
 
5180
static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_15CythonTransform_3visit_Node(PyObject *__pyx_v_self, PyObject *__pyx_v_node); /*proto*/
 
5181
static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_15CythonTransform_3visit_Node(PyObject *__pyx_v_self, PyObject *__pyx_v_node) {
 
5182
  PyObject *__pyx_r = NULL;
 
5183
  PyObject *__pyx_t_1 = NULL;
 
5184
  PyObject *__pyx_t_2 = NULL;
 
5185
  __Pyx_RefNannySetupContext("visit_Node");
 
5186
 
 
5187
  /* "Cython/Compiler/Visitor.py":282
 
5188
 * 
 
5189
 *     def visit_Node(self, node):
 
5190
 *         self.visitchildren(node)             # <<<<<<<<<<<<<<
 
5191
 *         return node
 
5192
 * 
 
5193
 */
 
5194
  __pyx_t_1 = __pyx_v_node;
 
5195
  __Pyx_INCREF(__pyx_t_1);
 
5196
  __pyx_t_2 = ((struct __pyx_vtabstruct_6Cython_8Compiler_7Visitor_CythonTransform *)((struct __pyx_obj_6Cython_8Compiler_7Visitor_CythonTransform *)__pyx_v_self)->__pyx_base.__pyx_base.__pyx_vtab)->__pyx_base.__pyx_base.visitchildren(((struct __pyx_obj_6Cython_8Compiler_7Visitor_TreeVisitor *)__pyx_v_self), __pyx_t_1, 0, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 282; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
5197
  __Pyx_GOTREF(__pyx_t_2);
 
5198
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
5199
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 
5200
 
 
5201
  /* "Cython/Compiler/Visitor.py":283
 
5202
 *     def visit_Node(self, node):
 
5203
 *         self.visitchildren(node)
 
5204
 *         return node             # <<<<<<<<<<<<<<
 
5205
 * 
 
5206
 * class ScopeTrackingTransform(CythonTransform):
 
5207
 */
 
5208
  __Pyx_XDECREF(__pyx_r);
 
5209
  __Pyx_INCREF(__pyx_v_node);
 
5210
  __pyx_r = __pyx_v_node;
 
5211
  goto __pyx_L0;
 
5212
 
 
5213
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
 
5214
  goto __pyx_L0;
 
5215
  __pyx_L1_error:;
 
5216
  __Pyx_XDECREF(__pyx_t_1);
 
5217
  __Pyx_XDECREF(__pyx_t_2);
 
5218
  __Pyx_AddTraceback("Cython.Compiler.Visitor.CythonTransform.visit_Node");
 
5219
  __pyx_r = NULL;
 
5220
  __pyx_L0:;
 
5221
  __Pyx_XGIVEREF(__pyx_r);
 
5222
  __Pyx_RefNannyFinishContext();
 
5223
  return __pyx_r;
 
5224
}
 
5225
 
 
5226
/* "Cython/Compiler/Visitor.pxd":20
 
5227
 * 
 
5228
 * cdef class CythonTransform(VisitorTransform):
 
5229
 *     cdef public context             # <<<<<<<<<<<<<<
 
5230
 *     cdef public current_directives
 
5231
 * 
 
5232
 */
 
5233
 
 
5234
static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_15CythonTransform_7context___get__(PyObject *__pyx_v_self); /*proto*/
 
5235
static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_15CythonTransform_7context___get__(PyObject *__pyx_v_self) {
 
5236
  PyObject *__pyx_r = NULL;
 
5237
  __Pyx_RefNannySetupContext("__get__");
 
5238
  __Pyx_XDECREF(__pyx_r);
 
5239
  __Pyx_INCREF(((struct __pyx_obj_6Cython_8Compiler_7Visitor_CythonTransform *)__pyx_v_self)->context);
 
5240
  __pyx_r = ((struct __pyx_obj_6Cython_8Compiler_7Visitor_CythonTransform *)__pyx_v_self)->context;
 
5241
  goto __pyx_L0;
 
5242
 
 
5243
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
 
5244
  __pyx_L0:;
 
5245
  __Pyx_XGIVEREF(__pyx_r);
 
5246
  __Pyx_RefNannyFinishContext();
 
5247
  return __pyx_r;
 
5248
}
 
5249
 
 
5250
static int __pyx_pf_6Cython_8Compiler_7Visitor_15CythonTransform_7context_1__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
 
5251
static int __pyx_pf_6Cython_8Compiler_7Visitor_15CythonTransform_7context_1__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
 
5252
  int __pyx_r;
 
5253
  __Pyx_RefNannySetupContext("__set__");
 
5254
  __Pyx_INCREF(__pyx_v_value);
 
5255
  __Pyx_GIVEREF(__pyx_v_value);
 
5256
  __Pyx_GOTREF(((struct __pyx_obj_6Cython_8Compiler_7Visitor_CythonTransform *)__pyx_v_self)->context);
 
5257
  __Pyx_DECREF(((struct __pyx_obj_6Cython_8Compiler_7Visitor_CythonTransform *)__pyx_v_self)->context);
 
5258
  ((struct __pyx_obj_6Cython_8Compiler_7Visitor_CythonTransform *)__pyx_v_self)->context = __pyx_v_value;
 
5259
 
 
5260
  __pyx_r = 0;
 
5261
  __Pyx_RefNannyFinishContext();
 
5262
  return __pyx_r;
 
5263
}
 
5264
 
 
5265
static int __pyx_pf_6Cython_8Compiler_7Visitor_15CythonTransform_7context_2__del__(PyObject *__pyx_v_self); /*proto*/
 
5266
static int __pyx_pf_6Cython_8Compiler_7Visitor_15CythonTransform_7context_2__del__(PyObject *__pyx_v_self) {
 
5267
  int __pyx_r;
 
5268
  __Pyx_RefNannySetupContext("__del__");
 
5269
  __Pyx_INCREF(Py_None);
 
5270
  __Pyx_GIVEREF(Py_None);
 
5271
  __Pyx_GOTREF(((struct __pyx_obj_6Cython_8Compiler_7Visitor_CythonTransform *)__pyx_v_self)->context);
 
5272
  __Pyx_DECREF(((struct __pyx_obj_6Cython_8Compiler_7Visitor_CythonTransform *)__pyx_v_self)->context);
 
5273
  ((struct __pyx_obj_6Cython_8Compiler_7Visitor_CythonTransform *)__pyx_v_self)->context = Py_None;
 
5274
 
 
5275
  __pyx_r = 0;
 
5276
  __Pyx_RefNannyFinishContext();
 
5277
  return __pyx_r;
 
5278
}
 
5279
 
 
5280
/* "Cython/Compiler/Visitor.pxd":21
 
5281
 * cdef class CythonTransform(VisitorTransform):
 
5282
 *     cdef public context
 
5283
 *     cdef public current_directives             # <<<<<<<<<<<<<<
 
5284
 * 
 
5285
 * cdef class ScopeTrackingTransform(CythonTransform):
 
5286
 */
 
5287
 
 
5288
static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_15CythonTransform_18current_directives___get__(PyObject *__pyx_v_self); /*proto*/
 
5289
static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_15CythonTransform_18current_directives___get__(PyObject *__pyx_v_self) {
 
5290
  PyObject *__pyx_r = NULL;
 
5291
  __Pyx_RefNannySetupContext("__get__");
 
5292
  __Pyx_XDECREF(__pyx_r);
 
5293
  __Pyx_INCREF(((struct __pyx_obj_6Cython_8Compiler_7Visitor_CythonTransform *)__pyx_v_self)->current_directives);
 
5294
  __pyx_r = ((struct __pyx_obj_6Cython_8Compiler_7Visitor_CythonTransform *)__pyx_v_self)->current_directives;
 
5295
  goto __pyx_L0;
 
5296
 
 
5297
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
 
5298
  __pyx_L0:;
 
5299
  __Pyx_XGIVEREF(__pyx_r);
 
5300
  __Pyx_RefNannyFinishContext();
 
5301
  return __pyx_r;
 
5302
}
 
5303
 
 
5304
static int __pyx_pf_6Cython_8Compiler_7Visitor_15CythonTransform_18current_directives_1__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
 
5305
static int __pyx_pf_6Cython_8Compiler_7Visitor_15CythonTransform_18current_directives_1__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
 
5306
  int __pyx_r;
 
5307
  __Pyx_RefNannySetupContext("__set__");
 
5308
  __Pyx_INCREF(__pyx_v_value);
 
5309
  __Pyx_GIVEREF(__pyx_v_value);
 
5310
  __Pyx_GOTREF(((struct __pyx_obj_6Cython_8Compiler_7Visitor_CythonTransform *)__pyx_v_self)->current_directives);
 
5311
  __Pyx_DECREF(((struct __pyx_obj_6Cython_8Compiler_7Visitor_CythonTransform *)__pyx_v_self)->current_directives);
 
5312
  ((struct __pyx_obj_6Cython_8Compiler_7Visitor_CythonTransform *)__pyx_v_self)->current_directives = __pyx_v_value;
 
5313
 
 
5314
  __pyx_r = 0;
 
5315
  __Pyx_RefNannyFinishContext();
 
5316
  return __pyx_r;
 
5317
}
 
5318
 
 
5319
static int __pyx_pf_6Cython_8Compiler_7Visitor_15CythonTransform_18current_directives_2__del__(PyObject *__pyx_v_self); /*proto*/
 
5320
static int __pyx_pf_6Cython_8Compiler_7Visitor_15CythonTransform_18current_directives_2__del__(PyObject *__pyx_v_self) {
 
5321
  int __pyx_r;
 
5322
  __Pyx_RefNannySetupContext("__del__");
 
5323
  __Pyx_INCREF(Py_None);
 
5324
  __Pyx_GIVEREF(Py_None);
 
5325
  __Pyx_GOTREF(((struct __pyx_obj_6Cython_8Compiler_7Visitor_CythonTransform *)__pyx_v_self)->current_directives);
 
5326
  __Pyx_DECREF(((struct __pyx_obj_6Cython_8Compiler_7Visitor_CythonTransform *)__pyx_v_self)->current_directives);
 
5327
  ((struct __pyx_obj_6Cython_8Compiler_7Visitor_CythonTransform *)__pyx_v_self)->current_directives = Py_None;
 
5328
 
 
5329
  __pyx_r = 0;
 
5330
  __Pyx_RefNannyFinishContext();
 
5331
  return __pyx_r;
 
5332
}
 
5333
 
 
5334
/* "Cython/Compiler/Visitor.py":290
 
5335
 *     #scope_node: the node that owns the current scope
 
5336
 * 
 
5337
 *     def visit_ModuleNode(self, node):             # <<<<<<<<<<<<<<
 
5338
 *         self.scope_type = 'module'
 
5339
 *         self.scope_node = node
 
5340
 */
 
5341
 
 
5342
static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_22ScopeTrackingTransform_visit_ModuleNode(PyObject *__pyx_v_self, PyObject *__pyx_v_node); /*proto*/
 
5343
static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_22ScopeTrackingTransform_visit_ModuleNode(PyObject *__pyx_v_self, PyObject *__pyx_v_node) {
 
5344
  PyObject *__pyx_r = NULL;
 
5345
  PyObject *__pyx_t_1 = NULL;
 
5346
  PyObject *__pyx_t_2 = NULL;
 
5347
  __Pyx_RefNannySetupContext("visit_ModuleNode");
 
5348
 
 
5349
  /* "Cython/Compiler/Visitor.py":291
 
5350
 * 
 
5351
 *     def visit_ModuleNode(self, node):
 
5352
 *         self.scope_type = 'module'             # <<<<<<<<<<<<<<
 
5353
 *         self.scope_node = node
 
5354
 *         self.visitchildren(node)
 
5355
 */
 
5356
  __Pyx_INCREF(((PyObject *)__pyx_n_s__module));
 
5357
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__module));
 
5358
  __Pyx_GOTREF(((struct __pyx_obj_6Cython_8Compiler_7Visitor_ScopeTrackingTransform *)__pyx_v_self)->scope_type);
 
5359
  __Pyx_DECREF(((struct __pyx_obj_6Cython_8Compiler_7Visitor_ScopeTrackingTransform *)__pyx_v_self)->scope_type);
 
5360
  ((struct __pyx_obj_6Cython_8Compiler_7Visitor_ScopeTrackingTransform *)__pyx_v_self)->scope_type = ((PyObject *)__pyx_n_s__module);
 
5361
 
 
5362
  /* "Cython/Compiler/Visitor.py":292
 
5363
 *     def visit_ModuleNode(self, node):
 
5364
 *         self.scope_type = 'module'
 
5365
 *         self.scope_node = node             # <<<<<<<<<<<<<<
 
5366
 *         self.visitchildren(node)
 
5367
 *         return node
 
5368
 */
 
5369
  __Pyx_INCREF(__pyx_v_node);
 
5370
  __Pyx_GIVEREF(__pyx_v_node);
 
5371
  __Pyx_GOTREF(((struct __pyx_obj_6Cython_8Compiler_7Visitor_ScopeTrackingTransform *)__pyx_v_self)->scope_node);
 
5372
  __Pyx_DECREF(((struct __pyx_obj_6Cython_8Compiler_7Visitor_ScopeTrackingTransform *)__pyx_v_self)->scope_node);
 
5373
  ((struct __pyx_obj_6Cython_8Compiler_7Visitor_ScopeTrackingTransform *)__pyx_v_self)->scope_node = __pyx_v_node;
 
5374
 
 
5375
  /* "Cython/Compiler/Visitor.py":293
 
5376
 *         self.scope_type = 'module'
 
5377
 *         self.scope_node = node
 
5378
 *         self.visitchildren(node)             # <<<<<<<<<<<<<<
 
5379
 *         return node
 
5380
 * 
 
5381
 */
 
5382
  __pyx_t_1 = __pyx_v_node;
 
5383
  __Pyx_INCREF(__pyx_t_1);
 
5384
  __pyx_t_2 = ((struct __pyx_vtabstruct_6Cython_8Compiler_7Visitor_ScopeTrackingTransform *)((struct __pyx_obj_6Cython_8Compiler_7Visitor_ScopeTrackingTransform *)__pyx_v_self)->__pyx_base.__pyx_base.__pyx_base.__pyx_vtab)->__pyx_base.__pyx_base.__pyx_base.visitchildren(((struct __pyx_obj_6Cython_8Compiler_7Visitor_TreeVisitor *)__pyx_v_self), __pyx_t_1, 0, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 293; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
5385
  __Pyx_GOTREF(__pyx_t_2);
 
5386
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
5387
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 
5388
 
 
5389
  /* "Cython/Compiler/Visitor.py":294
 
5390
 *         self.scope_node = node
 
5391
 *         self.visitchildren(node)
 
5392
 *         return node             # <<<<<<<<<<<<<<
 
5393
 * 
 
5394
 *     def visit_scope(self, node, scope_type):
 
5395
 */
 
5396
  __Pyx_XDECREF(__pyx_r);
 
5397
  __Pyx_INCREF(__pyx_v_node);
 
5398
  __pyx_r = __pyx_v_node;
 
5399
  goto __pyx_L0;
 
5400
 
 
5401
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
 
5402
  goto __pyx_L0;
 
5403
  __pyx_L1_error:;
 
5404
  __Pyx_XDECREF(__pyx_t_1);
 
5405
  __Pyx_XDECREF(__pyx_t_2);
 
5406
  __Pyx_AddTraceback("Cython.Compiler.Visitor.ScopeTrackingTransform.visit_ModuleNode");
 
5407
  __pyx_r = NULL;
 
5408
  __pyx_L0:;
 
5409
  __Pyx_XGIVEREF(__pyx_r);
 
5410
  __Pyx_RefNannyFinishContext();
 
5411
  return __pyx_r;
 
5412
}
 
5413
 
 
5414
/* "Cython/Compiler/Visitor.py":296
 
5415
 *         return node
 
5416
 * 
 
5417
 *     def visit_scope(self, node, scope_type):             # <<<<<<<<<<<<<<
 
5418
 *         prev = self.scope_type, self.scope_node
 
5419
 *         self.scope_type = scope_type
 
5420
 */
 
5421
 
 
5422
static  PyObject *__pyx_f_6Cython_8Compiler_7Visitor_22ScopeTrackingTransform_visit_scope(struct __pyx_obj_6Cython_8Compiler_7Visitor_ScopeTrackingTransform *__pyx_v_self, PyObject *__pyx_v_node, PyObject *__pyx_v_scope_type) {
 
5423
  PyObject *__pyx_v_prev;
 
5424
  PyObject *__pyx_r = NULL;
 
5425
  PyObject *__pyx_t_1 = NULL;
 
5426
  PyObject *__pyx_t_2 = NULL;
 
5427
  __Pyx_RefNannySetupContext("visit_scope");
 
5428
  __pyx_v_prev = ((PyObject*)Py_None); __Pyx_INCREF(Py_None);
 
5429
 
 
5430
  /* "Cython/Compiler/Visitor.py":297
 
5431
 * 
 
5432
 *     def visit_scope(self, node, scope_type):
 
5433
 *         prev = self.scope_type, self.scope_node             # <<<<<<<<<<<<<<
 
5434
 *         self.scope_type = scope_type
 
5435
 *         self.scope_node = node
 
5436
 */
 
5437
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 297; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
5438
  __Pyx_GOTREF(((PyObject *)__pyx_t_1));
 
5439
  __Pyx_INCREF(__pyx_v_self->scope_type);
 
5440
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_self->scope_type);
 
5441
  __Pyx_GIVEREF(__pyx_v_self->scope_type);
 
5442
  __Pyx_INCREF(__pyx_v_self->scope_node);
 
5443
  PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_self->scope_node);
 
5444
  __Pyx_GIVEREF(__pyx_v_self->scope_node);
 
5445
  __Pyx_DECREF(((PyObject *)__pyx_v_prev));
 
5446
  __pyx_v_prev = __pyx_t_1;
 
5447
  __pyx_t_1 = 0;
 
5448
 
 
5449
  /* "Cython/Compiler/Visitor.py":298
 
5450
 *     def visit_scope(self, node, scope_type):
 
5451
 *         prev = self.scope_type, self.scope_node
 
5452
 *         self.scope_type = scope_type             # <<<<<<<<<<<<<<
 
5453
 *         self.scope_node = node
 
5454
 *         self.visitchildren(node)
 
5455
 */
 
5456
  __Pyx_INCREF(__pyx_v_scope_type);
 
5457
  __Pyx_GIVEREF(__pyx_v_scope_type);
 
5458
  __Pyx_GOTREF(__pyx_v_self->scope_type);
 
5459
  __Pyx_DECREF(__pyx_v_self->scope_type);
 
5460
  __pyx_v_self->scope_type = __pyx_v_scope_type;
 
5461
 
 
5462
  /* "Cython/Compiler/Visitor.py":299
 
5463
 *         prev = self.scope_type, self.scope_node
 
5464
 *         self.scope_type = scope_type
 
5465
 *         self.scope_node = node             # <<<<<<<<<<<<<<
 
5466
 *         self.visitchildren(node)
 
5467
 *         self.scope_type, self.scope_node = prev
 
5468
 */
 
5469
  __Pyx_INCREF(__pyx_v_node);
 
5470
  __Pyx_GIVEREF(__pyx_v_node);
 
5471
  __Pyx_GOTREF(__pyx_v_self->scope_node);
 
5472
  __Pyx_DECREF(__pyx_v_self->scope_node);
 
5473
  __pyx_v_self->scope_node = __pyx_v_node;
 
5474
 
 
5475
  /* "Cython/Compiler/Visitor.py":300
 
5476
 *         self.scope_type = scope_type
 
5477
 *         self.scope_node = node
 
5478
 *         self.visitchildren(node)             # <<<<<<<<<<<<<<
 
5479
 *         self.scope_type, self.scope_node = prev
 
5480
 *         return node
 
5481
 */
 
5482
  __pyx_t_1 = __pyx_v_node;
 
5483
  __Pyx_INCREF(__pyx_t_1);
 
5484
  __pyx_t_2 = ((struct __pyx_vtabstruct_6Cython_8Compiler_7Visitor_ScopeTrackingTransform *)__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.__pyx_vtab)->__pyx_base.__pyx_base.__pyx_base.visitchildren(((struct __pyx_obj_6Cython_8Compiler_7Visitor_TreeVisitor *)__pyx_v_self), __pyx_t_1, 0, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 300; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
5485
  __Pyx_GOTREF(__pyx_t_2);
 
5486
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
5487
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 
5488
 
 
5489
  /* "Cython/Compiler/Visitor.py":301
 
5490
 *         self.scope_node = node
 
5491
 *         self.visitchildren(node)
 
5492
 *         self.scope_type, self.scope_node = prev             # <<<<<<<<<<<<<<
 
5493
 *         return node
 
5494
 * 
 
5495
 */
 
5496
  if (likely(((PyObject *)__pyx_v_prev) != Py_None) && likely(PyTuple_GET_SIZE(((PyObject *)__pyx_v_prev)) == 2)) {
 
5497
    PyObject* tuple = ((PyObject *)__pyx_v_prev);
 
5498
    __pyx_t_2 = PyTuple_GET_ITEM(tuple, 0); __Pyx_INCREF(__pyx_t_2);
 
5499
    __pyx_t_1 = PyTuple_GET_ITEM(tuple, 1); __Pyx_INCREF(__pyx_t_1);
 
5500
    __Pyx_GIVEREF(__pyx_t_2);
 
5501
    __Pyx_GOTREF(__pyx_v_self->scope_type);
 
5502
    __Pyx_DECREF(__pyx_v_self->scope_type);
 
5503
    __pyx_v_self->scope_type = __pyx_t_2;
 
5504
    __pyx_t_2 = 0;
 
5505
    __Pyx_GIVEREF(__pyx_t_1);
 
5506
    __Pyx_GOTREF(__pyx_v_self->scope_node);
 
5507
    __Pyx_DECREF(__pyx_v_self->scope_node);
 
5508
    __pyx_v_self->scope_node = __pyx_t_1;
 
5509
    __pyx_t_1 = 0;
 
5510
  } else {
 
5511
    __Pyx_UnpackTupleError(((PyObject *)__pyx_v_prev), 2);
 
5512
    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 301; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
5513
  }
 
5514
 
 
5515
  /* "Cython/Compiler/Visitor.py":302
 
5516
 *         self.visitchildren(node)
 
5517
 *         self.scope_type, self.scope_node = prev
 
5518
 *         return node             # <<<<<<<<<<<<<<
 
5519
 * 
 
5520
 *     def visit_CClassDefNode(self, node):
 
5521
 */
 
5522
  __Pyx_XDECREF(__pyx_r);
 
5523
  __Pyx_INCREF(__pyx_v_node);
 
5524
  __pyx_r = __pyx_v_node;
 
5525
  goto __pyx_L0;
 
5526
 
 
5527
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
 
5528
  goto __pyx_L0;
 
5529
  __pyx_L1_error:;
 
5530
  __Pyx_XDECREF(__pyx_t_1);
 
5531
  __Pyx_XDECREF(__pyx_t_2);
 
5532
  __Pyx_AddTraceback("Cython.Compiler.Visitor.ScopeTrackingTransform.visit_scope");
 
5533
  __pyx_r = 0;
 
5534
  __pyx_L0:;
 
5535
  __Pyx_DECREF(__pyx_v_prev);
 
5536
  __Pyx_XGIVEREF(__pyx_r);
 
5537
  __Pyx_RefNannyFinishContext();
 
5538
  return __pyx_r;
 
5539
}
 
5540
 
 
5541
/* "Cython/Compiler/Visitor.py":304
 
5542
 *         return node
 
5543
 * 
 
5544
 *     def visit_CClassDefNode(self, node):             # <<<<<<<<<<<<<<
 
5545
 *         return self.visit_scope(node, 'cclass')
 
5546
 * 
 
5547
 */
 
5548
 
 
5549
static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_22ScopeTrackingTransform_1visit_CClassDefNode(PyObject *__pyx_v_self, PyObject *__pyx_v_node); /*proto*/
 
5550
static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_22ScopeTrackingTransform_1visit_CClassDefNode(PyObject *__pyx_v_self, PyObject *__pyx_v_node) {
 
5551
  PyObject *__pyx_r = NULL;
 
5552
  PyObject *__pyx_t_1 = NULL;
 
5553
  PyObject *__pyx_t_2 = NULL;
 
5554
  PyObject *__pyx_t_3 = NULL;
 
5555
  __Pyx_RefNannySetupContext("visit_CClassDefNode");
 
5556
 
 
5557
  /* "Cython/Compiler/Visitor.py":305
 
5558
 * 
 
5559
 *     def visit_CClassDefNode(self, node):
 
5560
 *         return self.visit_scope(node, 'cclass')             # <<<<<<<<<<<<<<
 
5561
 * 
 
5562
 *     def visit_PyClassDefNode(self, node):
 
5563
 */
 
5564
  __Pyx_XDECREF(__pyx_r);
 
5565
  __pyx_t_1 = __pyx_v_node;
 
5566
  __Pyx_INCREF(__pyx_t_1);
 
5567
  __pyx_t_2 = ((PyObject *)__pyx_n_s__cclass);
 
5568
  __Pyx_INCREF(__pyx_t_2);
 
5569
  __pyx_t_3 = ((struct __pyx_vtabstruct_6Cython_8Compiler_7Visitor_ScopeTrackingTransform *)((struct __pyx_obj_6Cython_8Compiler_7Visitor_ScopeTrackingTransform *)__pyx_v_self)->__pyx_base.__pyx_base.__pyx_base.__pyx_vtab)->visit_scope(((struct __pyx_obj_6Cython_8Compiler_7Visitor_ScopeTrackingTransform *)__pyx_v_self), __pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 305; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
5570
  __Pyx_GOTREF(__pyx_t_3);
 
5571
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
5572
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 
5573
  __pyx_r = __pyx_t_3;
 
5574
  __pyx_t_3 = 0;
 
5575
  goto __pyx_L0;
 
5576
 
 
5577
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
 
5578
  goto __pyx_L0;
 
5579
  __pyx_L1_error:;
 
5580
  __Pyx_XDECREF(__pyx_t_1);
 
5581
  __Pyx_XDECREF(__pyx_t_2);
 
5582
  __Pyx_XDECREF(__pyx_t_3);
 
5583
  __Pyx_AddTraceback("Cython.Compiler.Visitor.ScopeTrackingTransform.visit_CClassDefNode");
 
5584
  __pyx_r = NULL;
 
5585
  __pyx_L0:;
 
5586
  __Pyx_XGIVEREF(__pyx_r);
 
5587
  __Pyx_RefNannyFinishContext();
 
5588
  return __pyx_r;
 
5589
}
 
5590
 
 
5591
/* "Cython/Compiler/Visitor.py":307
 
5592
 *         return self.visit_scope(node, 'cclass')
 
5593
 * 
 
5594
 *     def visit_PyClassDefNode(self, node):             # <<<<<<<<<<<<<<
 
5595
 *         return self.visit_scope(node, 'pyclass')
 
5596
 * 
 
5597
 */
 
5598
 
 
5599
static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_22ScopeTrackingTransform_2visit_PyClassDefNode(PyObject *__pyx_v_self, PyObject *__pyx_v_node); /*proto*/
 
5600
static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_22ScopeTrackingTransform_2visit_PyClassDefNode(PyObject *__pyx_v_self, PyObject *__pyx_v_node) {
 
5601
  PyObject *__pyx_r = NULL;
 
5602
  PyObject *__pyx_t_1 = NULL;
 
5603
  PyObject *__pyx_t_2 = NULL;
 
5604
  PyObject *__pyx_t_3 = NULL;
 
5605
  __Pyx_RefNannySetupContext("visit_PyClassDefNode");
 
5606
 
 
5607
  /* "Cython/Compiler/Visitor.py":308
 
5608
 * 
 
5609
 *     def visit_PyClassDefNode(self, node):
 
5610
 *         return self.visit_scope(node, 'pyclass')             # <<<<<<<<<<<<<<
 
5611
 * 
 
5612
 *     def visit_FuncDefNode(self, node):
 
5613
 */
 
5614
  __Pyx_XDECREF(__pyx_r);
 
5615
  __pyx_t_1 = __pyx_v_node;
 
5616
  __Pyx_INCREF(__pyx_t_1);
 
5617
  __pyx_t_2 = ((PyObject *)__pyx_n_s__pyclass);
 
5618
  __Pyx_INCREF(__pyx_t_2);
 
5619
  __pyx_t_3 = ((struct __pyx_vtabstruct_6Cython_8Compiler_7Visitor_ScopeTrackingTransform *)((struct __pyx_obj_6Cython_8Compiler_7Visitor_ScopeTrackingTransform *)__pyx_v_self)->__pyx_base.__pyx_base.__pyx_base.__pyx_vtab)->visit_scope(((struct __pyx_obj_6Cython_8Compiler_7Visitor_ScopeTrackingTransform *)__pyx_v_self), __pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 308; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
5620
  __Pyx_GOTREF(__pyx_t_3);
 
5621
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
5622
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 
5623
  __pyx_r = __pyx_t_3;
 
5624
  __pyx_t_3 = 0;
 
5625
  goto __pyx_L0;
 
5626
 
 
5627
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
 
5628
  goto __pyx_L0;
 
5629
  __pyx_L1_error:;
 
5630
  __Pyx_XDECREF(__pyx_t_1);
 
5631
  __Pyx_XDECREF(__pyx_t_2);
 
5632
  __Pyx_XDECREF(__pyx_t_3);
 
5633
  __Pyx_AddTraceback("Cython.Compiler.Visitor.ScopeTrackingTransform.visit_PyClassDefNode");
 
5634
  __pyx_r = NULL;
 
5635
  __pyx_L0:;
 
5636
  __Pyx_XGIVEREF(__pyx_r);
 
5637
  __Pyx_RefNannyFinishContext();
 
5638
  return __pyx_r;
 
5639
}
 
5640
 
 
5641
/* "Cython/Compiler/Visitor.py":310
 
5642
 *         return self.visit_scope(node, 'pyclass')
 
5643
 * 
 
5644
 *     def visit_FuncDefNode(self, node):             # <<<<<<<<<<<<<<
 
5645
 *         return self.visit_scope(node, 'function')
 
5646
 * 
 
5647
 */
 
5648
 
 
5649
static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_22ScopeTrackingTransform_3visit_FuncDefNode(PyObject *__pyx_v_self, PyObject *__pyx_v_node); /*proto*/
 
5650
static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_22ScopeTrackingTransform_3visit_FuncDefNode(PyObject *__pyx_v_self, PyObject *__pyx_v_node) {
 
5651
  PyObject *__pyx_r = NULL;
 
5652
  PyObject *__pyx_t_1 = NULL;
 
5653
  PyObject *__pyx_t_2 = NULL;
 
5654
  PyObject *__pyx_t_3 = NULL;
 
5655
  __Pyx_RefNannySetupContext("visit_FuncDefNode");
 
5656
 
 
5657
  /* "Cython/Compiler/Visitor.py":311
 
5658
 * 
 
5659
 *     def visit_FuncDefNode(self, node):
 
5660
 *         return self.visit_scope(node, 'function')             # <<<<<<<<<<<<<<
 
5661
 * 
 
5662
 *     def visit_CStructOrUnionDefNode(self, node):
 
5663
 */
 
5664
  __Pyx_XDECREF(__pyx_r);
 
5665
  __pyx_t_1 = __pyx_v_node;
 
5666
  __Pyx_INCREF(__pyx_t_1);
 
5667
  __pyx_t_2 = ((PyObject *)__pyx_n_s__function);
 
5668
  __Pyx_INCREF(__pyx_t_2);
 
5669
  __pyx_t_3 = ((struct __pyx_vtabstruct_6Cython_8Compiler_7Visitor_ScopeTrackingTransform *)((struct __pyx_obj_6Cython_8Compiler_7Visitor_ScopeTrackingTransform *)__pyx_v_self)->__pyx_base.__pyx_base.__pyx_base.__pyx_vtab)->visit_scope(((struct __pyx_obj_6Cython_8Compiler_7Visitor_ScopeTrackingTransform *)__pyx_v_self), __pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 311; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
5670
  __Pyx_GOTREF(__pyx_t_3);
 
5671
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
5672
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 
5673
  __pyx_r = __pyx_t_3;
 
5674
  __pyx_t_3 = 0;
 
5675
  goto __pyx_L0;
 
5676
 
 
5677
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
 
5678
  goto __pyx_L0;
 
5679
  __pyx_L1_error:;
 
5680
  __Pyx_XDECREF(__pyx_t_1);
 
5681
  __Pyx_XDECREF(__pyx_t_2);
 
5682
  __Pyx_XDECREF(__pyx_t_3);
 
5683
  __Pyx_AddTraceback("Cython.Compiler.Visitor.ScopeTrackingTransform.visit_FuncDefNode");
 
5684
  __pyx_r = NULL;
 
5685
  __pyx_L0:;
 
5686
  __Pyx_XGIVEREF(__pyx_r);
 
5687
  __Pyx_RefNannyFinishContext();
 
5688
  return __pyx_r;
 
5689
}
 
5690
 
 
5691
/* "Cython/Compiler/Visitor.py":313
 
5692
 *         return self.visit_scope(node, 'function')
 
5693
 * 
 
5694
 *     def visit_CStructOrUnionDefNode(self, node):             # <<<<<<<<<<<<<<
 
5695
 *         return self.visit_scope(node, 'struct')
 
5696
 * 
 
5697
 */
 
5698
 
 
5699
static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_22ScopeTrackingTransform_4visit_CStructOrUnionDefNode(PyObject *__pyx_v_self, PyObject *__pyx_v_node); /*proto*/
 
5700
static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_22ScopeTrackingTransform_4visit_CStructOrUnionDefNode(PyObject *__pyx_v_self, PyObject *__pyx_v_node) {
 
5701
  PyObject *__pyx_r = NULL;
 
5702
  PyObject *__pyx_t_1 = NULL;
 
5703
  PyObject *__pyx_t_2 = NULL;
 
5704
  PyObject *__pyx_t_3 = NULL;
 
5705
  __Pyx_RefNannySetupContext("visit_CStructOrUnionDefNode");
 
5706
 
 
5707
  /* "Cython/Compiler/Visitor.py":314
 
5708
 * 
 
5709
 *     def visit_CStructOrUnionDefNode(self, node):
 
5710
 *         return self.visit_scope(node, 'struct')             # <<<<<<<<<<<<<<
 
5711
 * 
 
5712
 * 
 
5713
 */
 
5714
  __Pyx_XDECREF(__pyx_r);
 
5715
  __pyx_t_1 = __pyx_v_node;
 
5716
  __Pyx_INCREF(__pyx_t_1);
 
5717
  __pyx_t_2 = ((PyObject *)__pyx_n_s__struct);
 
5718
  __Pyx_INCREF(__pyx_t_2);
 
5719
  __pyx_t_3 = ((struct __pyx_vtabstruct_6Cython_8Compiler_7Visitor_ScopeTrackingTransform *)((struct __pyx_obj_6Cython_8Compiler_7Visitor_ScopeTrackingTransform *)__pyx_v_self)->__pyx_base.__pyx_base.__pyx_base.__pyx_vtab)->visit_scope(((struct __pyx_obj_6Cython_8Compiler_7Visitor_ScopeTrackingTransform *)__pyx_v_self), __pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 314; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
5720
  __Pyx_GOTREF(__pyx_t_3);
 
5721
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
5722
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 
5723
  __pyx_r = __pyx_t_3;
 
5724
  __pyx_t_3 = 0;
 
5725
  goto __pyx_L0;
 
5726
 
 
5727
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
 
5728
  goto __pyx_L0;
 
5729
  __pyx_L1_error:;
 
5730
  __Pyx_XDECREF(__pyx_t_1);
 
5731
  __Pyx_XDECREF(__pyx_t_2);
 
5732
  __Pyx_XDECREF(__pyx_t_3);
 
5733
  __Pyx_AddTraceback("Cython.Compiler.Visitor.ScopeTrackingTransform.visit_CStructOrUnionDefNode");
 
5734
  __pyx_r = NULL;
 
5735
  __pyx_L0:;
 
5736
  __Pyx_XGIVEREF(__pyx_r);
 
5737
  __Pyx_RefNannyFinishContext();
 
5738
  return __pyx_r;
 
5739
}
 
5740
 
 
5741
/* "Cython/Compiler/Visitor.pxd":24
 
5742
 * 
 
5743
 * cdef class ScopeTrackingTransform(CythonTransform):
 
5744
 *     cdef public scope_type             # <<<<<<<<<<<<<<
 
5745
 *     cdef public scope_node
 
5746
 *     cdef visit_scope(self, node, scope_type)
 
5747
 */
 
5748
 
 
5749
static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_22ScopeTrackingTransform_10scope_type___get__(PyObject *__pyx_v_self); /*proto*/
 
5750
static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_22ScopeTrackingTransform_10scope_type___get__(PyObject *__pyx_v_self) {
 
5751
  PyObject *__pyx_r = NULL;
 
5752
  __Pyx_RefNannySetupContext("__get__");
 
5753
  __Pyx_XDECREF(__pyx_r);
 
5754
  __Pyx_INCREF(((struct __pyx_obj_6Cython_8Compiler_7Visitor_ScopeTrackingTransform *)__pyx_v_self)->scope_type);
 
5755
  __pyx_r = ((struct __pyx_obj_6Cython_8Compiler_7Visitor_ScopeTrackingTransform *)__pyx_v_self)->scope_type;
 
5756
  goto __pyx_L0;
 
5757
 
 
5758
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
 
5759
  __pyx_L0:;
 
5760
  __Pyx_XGIVEREF(__pyx_r);
 
5761
  __Pyx_RefNannyFinishContext();
 
5762
  return __pyx_r;
 
5763
}
 
5764
 
 
5765
static int __pyx_pf_6Cython_8Compiler_7Visitor_22ScopeTrackingTransform_10scope_type_1__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
 
5766
static int __pyx_pf_6Cython_8Compiler_7Visitor_22ScopeTrackingTransform_10scope_type_1__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
 
5767
  int __pyx_r;
 
5768
  __Pyx_RefNannySetupContext("__set__");
 
5769
  __Pyx_INCREF(__pyx_v_value);
 
5770
  __Pyx_GIVEREF(__pyx_v_value);
 
5771
  __Pyx_GOTREF(((struct __pyx_obj_6Cython_8Compiler_7Visitor_ScopeTrackingTransform *)__pyx_v_self)->scope_type);
 
5772
  __Pyx_DECREF(((struct __pyx_obj_6Cython_8Compiler_7Visitor_ScopeTrackingTransform *)__pyx_v_self)->scope_type);
 
5773
  ((struct __pyx_obj_6Cython_8Compiler_7Visitor_ScopeTrackingTransform *)__pyx_v_self)->scope_type = __pyx_v_value;
 
5774
 
 
5775
  __pyx_r = 0;
 
5776
  __Pyx_RefNannyFinishContext();
 
5777
  return __pyx_r;
 
5778
}
 
5779
 
 
5780
static int __pyx_pf_6Cython_8Compiler_7Visitor_22ScopeTrackingTransform_10scope_type_2__del__(PyObject *__pyx_v_self); /*proto*/
 
5781
static int __pyx_pf_6Cython_8Compiler_7Visitor_22ScopeTrackingTransform_10scope_type_2__del__(PyObject *__pyx_v_self) {
 
5782
  int __pyx_r;
 
5783
  __Pyx_RefNannySetupContext("__del__");
 
5784
  __Pyx_INCREF(Py_None);
 
5785
  __Pyx_GIVEREF(Py_None);
 
5786
  __Pyx_GOTREF(((struct __pyx_obj_6Cython_8Compiler_7Visitor_ScopeTrackingTransform *)__pyx_v_self)->scope_type);
 
5787
  __Pyx_DECREF(((struct __pyx_obj_6Cython_8Compiler_7Visitor_ScopeTrackingTransform *)__pyx_v_self)->scope_type);
 
5788
  ((struct __pyx_obj_6Cython_8Compiler_7Visitor_ScopeTrackingTransform *)__pyx_v_self)->scope_type = Py_None;
 
5789
 
 
5790
  __pyx_r = 0;
 
5791
  __Pyx_RefNannyFinishContext();
 
5792
  return __pyx_r;
 
5793
}
 
5794
 
 
5795
/* "Cython/Compiler/Visitor.pxd":25
 
5796
 * cdef class ScopeTrackingTransform(CythonTransform):
 
5797
 *     cdef public scope_type
 
5798
 *     cdef public scope_node             # <<<<<<<<<<<<<<
 
5799
 *     cdef visit_scope(self, node, scope_type)
 
5800
 * 
 
5801
 */
 
5802
 
 
5803
static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_22ScopeTrackingTransform_10scope_node___get__(PyObject *__pyx_v_self); /*proto*/
 
5804
static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_22ScopeTrackingTransform_10scope_node___get__(PyObject *__pyx_v_self) {
 
5805
  PyObject *__pyx_r = NULL;
 
5806
  __Pyx_RefNannySetupContext("__get__");
 
5807
  __Pyx_XDECREF(__pyx_r);
 
5808
  __Pyx_INCREF(((struct __pyx_obj_6Cython_8Compiler_7Visitor_ScopeTrackingTransform *)__pyx_v_self)->scope_node);
 
5809
  __pyx_r = ((struct __pyx_obj_6Cython_8Compiler_7Visitor_ScopeTrackingTransform *)__pyx_v_self)->scope_node;
 
5810
  goto __pyx_L0;
 
5811
 
 
5812
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
 
5813
  __pyx_L0:;
 
5814
  __Pyx_XGIVEREF(__pyx_r);
 
5815
  __Pyx_RefNannyFinishContext();
 
5816
  return __pyx_r;
 
5817
}
 
5818
 
 
5819
static int __pyx_pf_6Cython_8Compiler_7Visitor_22ScopeTrackingTransform_10scope_node_1__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
 
5820
static int __pyx_pf_6Cython_8Compiler_7Visitor_22ScopeTrackingTransform_10scope_node_1__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
 
5821
  int __pyx_r;
 
5822
  __Pyx_RefNannySetupContext("__set__");
 
5823
  __Pyx_INCREF(__pyx_v_value);
 
5824
  __Pyx_GIVEREF(__pyx_v_value);
 
5825
  __Pyx_GOTREF(((struct __pyx_obj_6Cython_8Compiler_7Visitor_ScopeTrackingTransform *)__pyx_v_self)->scope_node);
 
5826
  __Pyx_DECREF(((struct __pyx_obj_6Cython_8Compiler_7Visitor_ScopeTrackingTransform *)__pyx_v_self)->scope_node);
 
5827
  ((struct __pyx_obj_6Cython_8Compiler_7Visitor_ScopeTrackingTransform *)__pyx_v_self)->scope_node = __pyx_v_value;
 
5828
 
 
5829
  __pyx_r = 0;
 
5830
  __Pyx_RefNannyFinishContext();
 
5831
  return __pyx_r;
 
5832
}
 
5833
 
 
5834
static int __pyx_pf_6Cython_8Compiler_7Visitor_22ScopeTrackingTransform_10scope_node_2__del__(PyObject *__pyx_v_self); /*proto*/
 
5835
static int __pyx_pf_6Cython_8Compiler_7Visitor_22ScopeTrackingTransform_10scope_node_2__del__(PyObject *__pyx_v_self) {
 
5836
  int __pyx_r;
 
5837
  __Pyx_RefNannySetupContext("__del__");
 
5838
  __Pyx_INCREF(Py_None);
 
5839
  __Pyx_GIVEREF(Py_None);
 
5840
  __Pyx_GOTREF(((struct __pyx_obj_6Cython_8Compiler_7Visitor_ScopeTrackingTransform *)__pyx_v_self)->scope_node);
 
5841
  __Pyx_DECREF(((struct __pyx_obj_6Cython_8Compiler_7Visitor_ScopeTrackingTransform *)__pyx_v_self)->scope_node);
 
5842
  ((struct __pyx_obj_6Cython_8Compiler_7Visitor_ScopeTrackingTransform *)__pyx_v_self)->scope_node = Py_None;
 
5843
 
 
5844
  __pyx_r = 0;
 
5845
  __Pyx_RefNannyFinishContext();
 
5846
  return __pyx_r;
 
5847
}
 
5848
 
 
5849
/* "Cython/Compiler/Visitor.py":321
 
5850
 *     This transformation keeps a stack of the environments.
 
5851
 *     """
 
5852
 *     def __call__(self, root):             # <<<<<<<<<<<<<<
 
5853
 *         self.env_stack = [root.scope]
 
5854
 *         return super(EnvTransform, self).__call__(root)
 
5855
 */
 
5856
 
 
5857
static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_12EnvTransform___call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
 
5858
static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_12EnvTransform___call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
 
5859
  PyObject *__pyx_v_root = 0;
 
5860
  PyObject *__pyx_r = NULL;
 
5861
  PyObject *__pyx_t_1 = NULL;
 
5862
  PyObject *__pyx_t_2 = NULL;
 
5863
  PyObject *__pyx_t_3 = NULL;
 
5864
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__root,0};
 
5865
  __Pyx_RefNannySetupContext("__call__");
 
5866
  if (unlikely(__pyx_kwds)) {
 
5867
    Py_ssize_t kw_args = PyDict_Size(__pyx_kwds);
 
5868
    PyObject* values[1] = {0};
 
5869
    switch (PyTuple_GET_SIZE(__pyx_args)) {
 
5870
      case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
 
5871
      case  0: break;
 
5872
      default: goto __pyx_L5_argtuple_error;
 
5873
    }
 
5874
    switch (PyTuple_GET_SIZE(__pyx_args)) {
 
5875
      case  0:
 
5876
      values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__root);
 
5877
      if (likely(values[0])) kw_args--;
 
5878
      else goto __pyx_L5_argtuple_error;
 
5879
    }
 
5880
    if (unlikely(kw_args > 0)) {
 
5881
      if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "__call__") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 321; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 
5882
    }
 
5883
    __pyx_v_root = values[0];
 
5884
  } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
 
5885
    goto __pyx_L5_argtuple_error;
 
5886
  } else {
 
5887
    __pyx_v_root = PyTuple_GET_ITEM(__pyx_args, 0);
 
5888
  }
 
5889
  goto __pyx_L4_argument_unpacking_done;
 
5890
  __pyx_L5_argtuple_error:;
 
5891
  __Pyx_RaiseArgtupleInvalid("__call__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 321; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 
5892
  __pyx_L3_error:;
 
5893
  __Pyx_AddTraceback("Cython.Compiler.Visitor.EnvTransform.__call__");
 
5894
  __Pyx_RefNannyFinishContext();
 
5895
  return NULL;
 
5896
  __pyx_L4_argument_unpacking_done:;
 
5897
 
 
5898
  /* "Cython/Compiler/Visitor.py":322
 
5899
 *     """
 
5900
 *     def __call__(self, root):
 
5901
 *         self.env_stack = [root.scope]             # <<<<<<<<<<<<<<
 
5902
 *         return super(EnvTransform, self).__call__(root)
 
5903
 * 
 
5904
 */
 
5905
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_root, __pyx_n_s__scope); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 322; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
5906
  __Pyx_GOTREF(__pyx_t_1);
 
5907
  __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 322; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
5908
  __Pyx_GOTREF(((PyObject *)__pyx_t_2));
 
5909
  PyList_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
 
5910
  __Pyx_GIVEREF(__pyx_t_1);
 
5911
  __pyx_t_1 = 0;
 
5912
  __Pyx_GIVEREF(((PyObject *)__pyx_t_2));
 
5913
  __Pyx_GOTREF(((struct __pyx_obj_6Cython_8Compiler_7Visitor_EnvTransform *)__pyx_v_self)->env_stack);
 
5914
  __Pyx_DECREF(((PyObject *)((struct __pyx_obj_6Cython_8Compiler_7Visitor_EnvTransform *)__pyx_v_self)->env_stack));
 
5915
  ((struct __pyx_obj_6Cython_8Compiler_7Visitor_EnvTransform *)__pyx_v_self)->env_stack = __pyx_t_2;
 
5916
  __pyx_t_2 = 0;
 
5917
 
 
5918
  /* "Cython/Compiler/Visitor.py":323
 
5919
 *     def __call__(self, root):
 
5920
 *         self.env_stack = [root.scope]
 
5921
 *         return super(EnvTransform, self).__call__(root)             # <<<<<<<<<<<<<<
 
5922
 * 
 
5923
 *     def current_env(self):
 
5924
 */
 
5925
  __Pyx_XDECREF(__pyx_r);
 
5926
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 323; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
5927
  __Pyx_GOTREF(((PyObject *)__pyx_t_2));
 
5928
  __Pyx_INCREF(((PyObject *)((PyObject*)__pyx_ptype_6Cython_8Compiler_7Visitor_EnvTransform)));
 
5929
  PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)((PyObject*)__pyx_ptype_6Cython_8Compiler_7Visitor_EnvTransform)));
 
5930
  __Pyx_GIVEREF(((PyObject *)((PyObject*)__pyx_ptype_6Cython_8Compiler_7Visitor_EnvTransform)));
 
5931
  __Pyx_INCREF(__pyx_v_self);
 
5932
  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_self);
 
5933
  __Pyx_GIVEREF(__pyx_v_self);
 
5934
  __pyx_t_1 = PyObject_Call(__pyx_builtin_super, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 323; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
5935
  __Pyx_GOTREF(__pyx_t_1);
 
5936
  __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
 
5937
  __pyx_t_2 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s____call__); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 323; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
5938
  __Pyx_GOTREF(__pyx_t_2);
 
5939
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
5940
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 323; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
5941
  __Pyx_GOTREF(((PyObject *)__pyx_t_1));
 
5942
  __Pyx_INCREF(__pyx_v_root);
 
5943
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_root);
 
5944
  __Pyx_GIVEREF(__pyx_v_root);
 
5945
  __pyx_t_3 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 323; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
5946
  __Pyx_GOTREF(__pyx_t_3);
 
5947
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 
5948
  __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
 
5949
  __pyx_r = __pyx_t_3;
 
5950
  __pyx_t_3 = 0;
 
5951
  goto __pyx_L0;
 
5952
 
 
5953
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
 
5954
  goto __pyx_L0;
 
5955
  __pyx_L1_error:;
 
5956
  __Pyx_XDECREF(__pyx_t_1);
 
5957
  __Pyx_XDECREF(__pyx_t_2);
 
5958
  __Pyx_XDECREF(__pyx_t_3);
 
5959
  __Pyx_AddTraceback("Cython.Compiler.Visitor.EnvTransform.__call__");
 
5960
  __pyx_r = NULL;
 
5961
  __pyx_L0:;
 
5962
  __Pyx_XGIVEREF(__pyx_r);
 
5963
  __Pyx_RefNannyFinishContext();
 
5964
  return __pyx_r;
 
5965
}
 
5966
 
 
5967
/* "Cython/Compiler/Visitor.py":325
 
5968
 *         return super(EnvTransform, self).__call__(root)
 
5969
 * 
 
5970
 *     def current_env(self):             # <<<<<<<<<<<<<<
 
5971
 *         return self.env_stack[-1]
 
5972
 * 
 
5973
 */
 
5974
 
 
5975
static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_12EnvTransform_1current_env(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
 
5976
static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_12EnvTransform_1current_env(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
 
5977
  PyObject *__pyx_r = NULL;
 
5978
  PyObject *__pyx_t_1 = NULL;
 
5979
  __Pyx_RefNannySetupContext("current_env");
 
5980
 
 
5981
  /* "Cython/Compiler/Visitor.py":326
 
5982
 * 
 
5983
 *     def current_env(self):
 
5984
 *         return self.env_stack[-1]             # <<<<<<<<<<<<<<
 
5985
 * 
 
5986
 *     def visit_FuncDefNode(self, node):
 
5987
 */
 
5988
  __Pyx_XDECREF(__pyx_r);
 
5989
  __pyx_t_1 = __Pyx_GetItemInt_List(((PyObject *)((struct __pyx_obj_6Cython_8Compiler_7Visitor_EnvTransform *)__pyx_v_self)->env_stack), -1, sizeof(long), PyInt_FromLong); if (!__pyx_t_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 326; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
5990
  __Pyx_GOTREF(__pyx_t_1);
 
5991
  __pyx_r = __pyx_t_1;
 
5992
  __pyx_t_1 = 0;
 
5993
  goto __pyx_L0;
 
5994
 
 
5995
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
 
5996
  goto __pyx_L0;
 
5997
  __pyx_L1_error:;
 
5998
  __Pyx_XDECREF(__pyx_t_1);
 
5999
  __Pyx_AddTraceback("Cython.Compiler.Visitor.EnvTransform.current_env");
 
6000
  __pyx_r = NULL;
 
6001
  __pyx_L0:;
 
6002
  __Pyx_XGIVEREF(__pyx_r);
 
6003
  __Pyx_RefNannyFinishContext();
 
6004
  return __pyx_r;
 
6005
}
 
6006
 
 
6007
/* "Cython/Compiler/Visitor.py":328
 
6008
 *         return self.env_stack[-1]
 
6009
 * 
 
6010
 *     def visit_FuncDefNode(self, node):             # <<<<<<<<<<<<<<
 
6011
 *         self.env_stack.append(node.local_scope)
 
6012
 *         self.visitchildren(node)
 
6013
 */
 
6014
 
 
6015
static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_12EnvTransform_2visit_FuncDefNode(PyObject *__pyx_v_self, PyObject *__pyx_v_node); /*proto*/
 
6016
static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_12EnvTransform_2visit_FuncDefNode(PyObject *__pyx_v_self, PyObject *__pyx_v_node) {
 
6017
  PyObject *__pyx_r = NULL;
 
6018
  PyObject *__pyx_t_1 = NULL;
 
6019
  int __pyx_t_2;
 
6020
  PyObject *__pyx_t_3 = NULL;
 
6021
  __Pyx_RefNannySetupContext("visit_FuncDefNode");
 
6022
 
 
6023
  /* "Cython/Compiler/Visitor.py":329
 
6024
 * 
 
6025
 *     def visit_FuncDefNode(self, node):
 
6026
 *         self.env_stack.append(node.local_scope)             # <<<<<<<<<<<<<<
 
6027
 *         self.visitchildren(node)
 
6028
 *         self.env_stack.pop()
 
6029
 */
 
6030
  if (unlikely(((struct __pyx_obj_6Cython_8Compiler_7Visitor_EnvTransform *)__pyx_v_self)->env_stack == Py_None)) {
 
6031
    PyErr_SetString(PyExc_AttributeError, "'NoneType' object has no attribute 'append'"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 329; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 
 
6032
  }
 
6033
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_node, __pyx_n_s__local_scope); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 329; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
6034
  __Pyx_GOTREF(__pyx_t_1);
 
6035
  __pyx_t_2 = PyList_Append(((struct __pyx_obj_6Cython_8Compiler_7Visitor_EnvTransform *)__pyx_v_self)->env_stack, __pyx_t_1); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 329; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
6036
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
6037
 
 
6038
  /* "Cython/Compiler/Visitor.py":330
 
6039
 *     def visit_FuncDefNode(self, node):
 
6040
 *         self.env_stack.append(node.local_scope)
 
6041
 *         self.visitchildren(node)             # <<<<<<<<<<<<<<
 
6042
 *         self.env_stack.pop()
 
6043
 *         return node
 
6044
 */
 
6045
  __pyx_t_1 = __pyx_v_node;
 
6046
  __Pyx_INCREF(__pyx_t_1);
 
6047
  __pyx_t_3 = ((struct __pyx_vtabstruct_6Cython_8Compiler_7Visitor_EnvTransform *)((struct __pyx_obj_6Cython_8Compiler_7Visitor_EnvTransform *)__pyx_v_self)->__pyx_base.__pyx_base.__pyx_base.__pyx_vtab)->__pyx_base.__pyx_base.__pyx_base.visitchildren(((struct __pyx_obj_6Cython_8Compiler_7Visitor_TreeVisitor *)__pyx_v_self), __pyx_t_1, 0, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 330; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
6048
  __Pyx_GOTREF(__pyx_t_3);
 
6049
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
6050
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 
6051
 
 
6052
  /* "Cython/Compiler/Visitor.py":331
 
6053
 *         self.env_stack.append(node.local_scope)
 
6054
 *         self.visitchildren(node)
 
6055
 *         self.env_stack.pop()             # <<<<<<<<<<<<<<
 
6056
 *         return node
 
6057
 * 
 
6058
 */
 
6059
  __pyx_t_3 = __Pyx_PyObject_Pop(((PyObject *)((struct __pyx_obj_6Cython_8Compiler_7Visitor_EnvTransform *)__pyx_v_self)->env_stack)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 331; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
6060
  __Pyx_GOTREF(__pyx_t_3);
 
6061
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 
6062
 
 
6063
  /* "Cython/Compiler/Visitor.py":332
 
6064
 *         self.visitchildren(node)
 
6065
 *         self.env_stack.pop()
 
6066
 *         return node             # <<<<<<<<<<<<<<
 
6067
 * 
 
6068
 * 
 
6069
 */
 
6070
  __Pyx_XDECREF(__pyx_r);
 
6071
  __Pyx_INCREF(__pyx_v_node);
 
6072
  __pyx_r = __pyx_v_node;
 
6073
  goto __pyx_L0;
 
6074
 
 
6075
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
 
6076
  goto __pyx_L0;
 
6077
  __pyx_L1_error:;
 
6078
  __Pyx_XDECREF(__pyx_t_1);
 
6079
  __Pyx_XDECREF(__pyx_t_3);
 
6080
  __Pyx_AddTraceback("Cython.Compiler.Visitor.EnvTransform.visit_FuncDefNode");
 
6081
  __pyx_r = NULL;
 
6082
  __pyx_L0:;
 
6083
  __Pyx_XGIVEREF(__pyx_r);
 
6084
  __Pyx_RefNannyFinishContext();
 
6085
  return __pyx_r;
 
6086
}
 
6087
 
 
6088
/* "Cython/Compiler/Visitor.pxd":29
 
6089
 * 
 
6090
 * cdef class EnvTransform(CythonTransform):
 
6091
 *     cdef public list env_stack             # <<<<<<<<<<<<<<
 
6092
 * 
 
6093
 * cdef class RecursiveNodeReplacer(VisitorTransform):
 
6094
 */
 
6095
 
 
6096
static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_12EnvTransform_9env_stack___get__(PyObject *__pyx_v_self); /*proto*/
 
6097
static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_12EnvTransform_9env_stack___get__(PyObject *__pyx_v_self) {
 
6098
  PyObject *__pyx_r = NULL;
 
6099
  __Pyx_RefNannySetupContext("__get__");
 
6100
  __Pyx_XDECREF(__pyx_r);
 
6101
  __Pyx_INCREF(((PyObject *)((struct __pyx_obj_6Cython_8Compiler_7Visitor_EnvTransform *)__pyx_v_self)->env_stack));
 
6102
  __pyx_r = ((PyObject *)((struct __pyx_obj_6Cython_8Compiler_7Visitor_EnvTransform *)__pyx_v_self)->env_stack);
 
6103
  goto __pyx_L0;
 
6104
 
 
6105
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
 
6106
  __pyx_L0:;
 
6107
  __Pyx_XGIVEREF(__pyx_r);
 
6108
  __Pyx_RefNannyFinishContext();
 
6109
  return __pyx_r;
 
6110
}
 
6111
 
 
6112
static int __pyx_pf_6Cython_8Compiler_7Visitor_12EnvTransform_9env_stack_1__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
 
6113
static int __pyx_pf_6Cython_8Compiler_7Visitor_12EnvTransform_9env_stack_1__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
 
6114
  int __pyx_r;
 
6115
  __Pyx_RefNannySetupContext("__set__");
 
6116
  if (!(likely(PyList_CheckExact(__pyx_v_value))||((__pyx_v_value) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected list, got %.200s", Py_TYPE(__pyx_v_value)->tp_name), 0))) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 29; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
6117
  __Pyx_INCREF(__pyx_v_value);
 
6118
  __Pyx_GIVEREF(__pyx_v_value);
 
6119
  __Pyx_GOTREF(((struct __pyx_obj_6Cython_8Compiler_7Visitor_EnvTransform *)__pyx_v_self)->env_stack);
 
6120
  __Pyx_DECREF(((PyObject *)((struct __pyx_obj_6Cython_8Compiler_7Visitor_EnvTransform *)__pyx_v_self)->env_stack));
 
6121
  ((struct __pyx_obj_6Cython_8Compiler_7Visitor_EnvTransform *)__pyx_v_self)->env_stack = ((PyObject*)__pyx_v_value);
 
6122
 
 
6123
  __pyx_r = 0;
 
6124
  goto __pyx_L0;
 
6125
  __pyx_L1_error:;
 
6126
  __Pyx_AddTraceback("Cython.Compiler.Visitor.EnvTransform.env_stack.__set__");
 
6127
  __pyx_r = -1;
 
6128
  __pyx_L0:;
 
6129
  __Pyx_RefNannyFinishContext();
 
6130
  return __pyx_r;
 
6131
}
 
6132
 
 
6133
static int __pyx_pf_6Cython_8Compiler_7Visitor_12EnvTransform_9env_stack_2__del__(PyObject *__pyx_v_self); /*proto*/
 
6134
static int __pyx_pf_6Cython_8Compiler_7Visitor_12EnvTransform_9env_stack_2__del__(PyObject *__pyx_v_self) {
 
6135
  int __pyx_r;
 
6136
  __Pyx_RefNannySetupContext("__del__");
 
6137
  __Pyx_INCREF(Py_None);
 
6138
  __Pyx_GIVEREF(Py_None);
 
6139
  __Pyx_GOTREF(((struct __pyx_obj_6Cython_8Compiler_7Visitor_EnvTransform *)__pyx_v_self)->env_stack);
 
6140
  __Pyx_DECREF(((PyObject *)((struct __pyx_obj_6Cython_8Compiler_7Visitor_EnvTransform *)__pyx_v_self)->env_stack));
 
6141
  ((struct __pyx_obj_6Cython_8Compiler_7Visitor_EnvTransform *)__pyx_v_self)->env_stack = ((PyObject*)Py_None);
 
6142
 
 
6143
  __pyx_r = 0;
 
6144
  __Pyx_RefNannyFinishContext();
 
6145
  return __pyx_r;
 
6146
}
 
6147
 
 
6148
/* "Cython/Compiler/Visitor.py":340
 
6149
 *     another node.
 
6150
 *     """
 
6151
 *     def __init__(self, orig_node, new_node):             # <<<<<<<<<<<<<<
 
6152
 *         super(RecursiveNodeReplacer, self).__init__()
 
6153
 *         self.orig_node, self.new_node = orig_node, new_node
 
6154
 */
 
6155
 
 
6156
static int __pyx_pf_6Cython_8Compiler_7Visitor_21RecursiveNodeReplacer___init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
 
6157
static int __pyx_pf_6Cython_8Compiler_7Visitor_21RecursiveNodeReplacer___init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
 
6158
  PyObject *__pyx_v_orig_node = 0;
 
6159
  PyObject *__pyx_v_new_node = 0;
 
6160
  int __pyx_r;
 
6161
  PyObject *__pyx_t_1 = NULL;
 
6162
  PyObject *__pyx_t_2 = NULL;
 
6163
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__orig_node,&__pyx_n_s__new_node,0};
 
6164
  __Pyx_RefNannySetupContext("__init__");
 
6165
  if (unlikely(__pyx_kwds)) {
 
6166
    Py_ssize_t kw_args = PyDict_Size(__pyx_kwds);
 
6167
    PyObject* values[2] = {0,0};
 
6168
    switch (PyTuple_GET_SIZE(__pyx_args)) {
 
6169
      case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
 
6170
      case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
 
6171
      case  0: break;
 
6172
      default: goto __pyx_L5_argtuple_error;
 
6173
    }
 
6174
    switch (PyTuple_GET_SIZE(__pyx_args)) {
 
6175
      case  0:
 
6176
      values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__orig_node);
 
6177
      if (likely(values[0])) kw_args--;
 
6178
      else goto __pyx_L5_argtuple_error;
 
6179
      case  1:
 
6180
      values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__new_node);
 
6181
      if (likely(values[1])) kw_args--;
 
6182
      else {
 
6183
        __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 340; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 
6184
      }
 
6185
    }
 
6186
    if (unlikely(kw_args > 0)) {
 
6187
      if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "__init__") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 340; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 
6188
    }
 
6189
    __pyx_v_orig_node = values[0];
 
6190
    __pyx_v_new_node = values[1];
 
6191
  } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
 
6192
    goto __pyx_L5_argtuple_error;
 
6193
  } else {
 
6194
    __pyx_v_orig_node = PyTuple_GET_ITEM(__pyx_args, 0);
 
6195
    __pyx_v_new_node = PyTuple_GET_ITEM(__pyx_args, 1);
 
6196
  }
 
6197
  goto __pyx_L4_argument_unpacking_done;
 
6198
  __pyx_L5_argtuple_error:;
 
6199
  __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 340; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 
6200
  __pyx_L3_error:;
 
6201
  __Pyx_AddTraceback("Cython.Compiler.Visitor.RecursiveNodeReplacer.__init__");
 
6202
  __Pyx_RefNannyFinishContext();
 
6203
  return -1;
 
6204
  __pyx_L4_argument_unpacking_done:;
 
6205
 
 
6206
  /* "Cython/Compiler/Visitor.py":341
 
6207
 *     """
 
6208
 *     def __init__(self, orig_node, new_node):
 
6209
 *         super(RecursiveNodeReplacer, self).__init__()             # <<<<<<<<<<<<<<
 
6210
 *         self.orig_node, self.new_node = orig_node, new_node
 
6211
 * 
 
6212
 */
 
6213
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 341; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
6214
  __Pyx_GOTREF(((PyObject *)__pyx_t_1));
 
6215
  __Pyx_INCREF(((PyObject *)((PyObject*)__pyx_ptype_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer)));
 
6216
  PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)((PyObject*)__pyx_ptype_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer)));
 
6217
  __Pyx_GIVEREF(((PyObject *)((PyObject*)__pyx_ptype_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer)));
 
6218
  __Pyx_INCREF(__pyx_v_self);
 
6219
  PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_self);
 
6220
  __Pyx_GIVEREF(__pyx_v_self);
 
6221
  __pyx_t_2 = PyObject_Call(__pyx_builtin_super, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 341; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
6222
  __Pyx_GOTREF(__pyx_t_2);
 
6223
  __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
 
6224
  __pyx_t_1 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s____init__); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 341; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
6225
  __Pyx_GOTREF(__pyx_t_1);
 
6226
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 
6227
  __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 341; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
6228
  __Pyx_GOTREF(__pyx_t_2);
 
6229
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
6230
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 
6231
 
 
6232
  /* "Cython/Compiler/Visitor.py":342
 
6233
 *     def __init__(self, orig_node, new_node):
 
6234
 *         super(RecursiveNodeReplacer, self).__init__()
 
6235
 *         self.orig_node, self.new_node = orig_node, new_node             # <<<<<<<<<<<<<<
 
6236
 * 
 
6237
 *     def visit_Node(self, node):
 
6238
 */
 
6239
  __pyx_t_2 = __pyx_v_orig_node;
 
6240
  __Pyx_INCREF(__pyx_t_2);
 
6241
  __pyx_t_1 = __pyx_v_new_node;
 
6242
  __Pyx_INCREF(__pyx_t_1);
 
6243
  __Pyx_GIVEREF(__pyx_t_2);
 
6244
  __Pyx_GOTREF(((struct __pyx_obj_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer *)__pyx_v_self)->orig_node);
 
6245
  __Pyx_DECREF(((struct __pyx_obj_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer *)__pyx_v_self)->orig_node);
 
6246
  ((struct __pyx_obj_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer *)__pyx_v_self)->orig_node = __pyx_t_2;
 
6247
  __pyx_t_2 = 0;
 
6248
  __Pyx_GIVEREF(__pyx_t_1);
 
6249
  __Pyx_GOTREF(((struct __pyx_obj_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer *)__pyx_v_self)->new_node);
 
6250
  __Pyx_DECREF(((struct __pyx_obj_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer *)__pyx_v_self)->new_node);
 
6251
  ((struct __pyx_obj_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer *)__pyx_v_self)->new_node = __pyx_t_1;
 
6252
  __pyx_t_1 = 0;
 
6253
 
 
6254
  __pyx_r = 0;
 
6255
  goto __pyx_L0;
 
6256
  __pyx_L1_error:;
 
6257
  __Pyx_XDECREF(__pyx_t_1);
 
6258
  __Pyx_XDECREF(__pyx_t_2);
 
6259
  __Pyx_AddTraceback("Cython.Compiler.Visitor.RecursiveNodeReplacer.__init__");
 
6260
  __pyx_r = -1;
 
6261
  __pyx_L0:;
 
6262
  __Pyx_RefNannyFinishContext();
 
6263
  return __pyx_r;
 
6264
}
 
6265
 
 
6266
/* "Cython/Compiler/Visitor.py":344
 
6267
 *         self.orig_node, self.new_node = orig_node, new_node
 
6268
 * 
 
6269
 *     def visit_Node(self, node):             # <<<<<<<<<<<<<<
 
6270
 *         self.visitchildren(node)
 
6271
 *         if node is self.orig_node:
 
6272
 */
 
6273
 
 
6274
static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_21RecursiveNodeReplacer_1visit_Node(PyObject *__pyx_v_self, PyObject *__pyx_v_node); /*proto*/
 
6275
static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_21RecursiveNodeReplacer_1visit_Node(PyObject *__pyx_v_self, PyObject *__pyx_v_node) {
 
6276
  PyObject *__pyx_r = NULL;
 
6277
  PyObject *__pyx_t_1 = NULL;
 
6278
  PyObject *__pyx_t_2 = NULL;
 
6279
  int __pyx_t_3;
 
6280
  __Pyx_RefNannySetupContext("visit_Node");
 
6281
 
 
6282
  /* "Cython/Compiler/Visitor.py":345
 
6283
 * 
 
6284
 *     def visit_Node(self, node):
 
6285
 *         self.visitchildren(node)             # <<<<<<<<<<<<<<
 
6286
 *         if node is self.orig_node:
 
6287
 *             return self.new_node
 
6288
 */
 
6289
  __pyx_t_1 = __pyx_v_node;
 
6290
  __Pyx_INCREF(__pyx_t_1);
 
6291
  __pyx_t_2 = ((struct __pyx_vtabstruct_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer *)((struct __pyx_obj_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer *)__pyx_v_self)->__pyx_base.__pyx_base.__pyx_vtab)->__pyx_base.__pyx_base.visitchildren(((struct __pyx_obj_6Cython_8Compiler_7Visitor_TreeVisitor *)__pyx_v_self), __pyx_t_1, 0, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 345; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
6292
  __Pyx_GOTREF(__pyx_t_2);
 
6293
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
6294
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 
6295
 
 
6296
  /* "Cython/Compiler/Visitor.py":346
 
6297
 *     def visit_Node(self, node):
 
6298
 *         self.visitchildren(node)
 
6299
 *         if node is self.orig_node:             # <<<<<<<<<<<<<<
 
6300
 *             return self.new_node
 
6301
 *         else:
 
6302
 */
 
6303
  __pyx_t_3 = (__pyx_v_node == ((struct __pyx_obj_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer *)__pyx_v_self)->orig_node);
 
6304
  if (__pyx_t_3) {
 
6305
 
 
6306
    /* "Cython/Compiler/Visitor.py":347
 
6307
 *         self.visitchildren(node)
 
6308
 *         if node is self.orig_node:
 
6309
 *             return self.new_node             # <<<<<<<<<<<<<<
 
6310
 *         else:
 
6311
 *             return node
 
6312
 */
 
6313
    __Pyx_XDECREF(__pyx_r);
 
6314
    __Pyx_INCREF(((struct __pyx_obj_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer *)__pyx_v_self)->new_node);
 
6315
    __pyx_r = ((struct __pyx_obj_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer *)__pyx_v_self)->new_node;
 
6316
    goto __pyx_L0;
 
6317
    goto __pyx_L5;
 
6318
  }
 
6319
  /*else*/ {
 
6320
 
 
6321
    /* "Cython/Compiler/Visitor.py":349
 
6322
 *             return self.new_node
 
6323
 *         else:
 
6324
 *             return node             # <<<<<<<<<<<<<<
 
6325
 * 
 
6326
 * def recursively_replace_node(tree, old_node, new_node):
 
6327
 */
 
6328
    __Pyx_XDECREF(__pyx_r);
 
6329
    __Pyx_INCREF(__pyx_v_node);
 
6330
    __pyx_r = __pyx_v_node;
 
6331
    goto __pyx_L0;
 
6332
  }
 
6333
  __pyx_L5:;
 
6334
 
 
6335
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
 
6336
  goto __pyx_L0;
 
6337
  __pyx_L1_error:;
 
6338
  __Pyx_XDECREF(__pyx_t_1);
 
6339
  __Pyx_XDECREF(__pyx_t_2);
 
6340
  __Pyx_AddTraceback("Cython.Compiler.Visitor.RecursiveNodeReplacer.visit_Node");
 
6341
  __pyx_r = NULL;
 
6342
  __pyx_L0:;
 
6343
  __Pyx_XGIVEREF(__pyx_r);
 
6344
  __Pyx_RefNannyFinishContext();
 
6345
  return __pyx_r;
 
6346
}
 
6347
 
 
6348
/* "Cython/Compiler/Visitor.pxd":32
 
6349
 * 
 
6350
 * cdef class RecursiveNodeReplacer(VisitorTransform):
 
6351
 *      cdef public orig_node             # <<<<<<<<<<<<<<
 
6352
 *      cdef public new_node
 
6353
 */
 
6354
 
 
6355
static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_21RecursiveNodeReplacer_9orig_node___get__(PyObject *__pyx_v_self); /*proto*/
 
6356
static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_21RecursiveNodeReplacer_9orig_node___get__(PyObject *__pyx_v_self) {
 
6357
  PyObject *__pyx_r = NULL;
 
6358
  __Pyx_RefNannySetupContext("__get__");
 
6359
  __Pyx_XDECREF(__pyx_r);
 
6360
  __Pyx_INCREF(((struct __pyx_obj_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer *)__pyx_v_self)->orig_node);
 
6361
  __pyx_r = ((struct __pyx_obj_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer *)__pyx_v_self)->orig_node;
 
6362
  goto __pyx_L0;
 
6363
 
 
6364
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
 
6365
  __pyx_L0:;
 
6366
  __Pyx_XGIVEREF(__pyx_r);
 
6367
  __Pyx_RefNannyFinishContext();
 
6368
  return __pyx_r;
 
6369
}
 
6370
 
 
6371
static int __pyx_pf_6Cython_8Compiler_7Visitor_21RecursiveNodeReplacer_9orig_node_1__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
 
6372
static int __pyx_pf_6Cython_8Compiler_7Visitor_21RecursiveNodeReplacer_9orig_node_1__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
 
6373
  int __pyx_r;
 
6374
  __Pyx_RefNannySetupContext("__set__");
 
6375
  __Pyx_INCREF(__pyx_v_value);
 
6376
  __Pyx_GIVEREF(__pyx_v_value);
 
6377
  __Pyx_GOTREF(((struct __pyx_obj_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer *)__pyx_v_self)->orig_node);
 
6378
  __Pyx_DECREF(((struct __pyx_obj_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer *)__pyx_v_self)->orig_node);
 
6379
  ((struct __pyx_obj_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer *)__pyx_v_self)->orig_node = __pyx_v_value;
 
6380
 
 
6381
  __pyx_r = 0;
 
6382
  __Pyx_RefNannyFinishContext();
 
6383
  return __pyx_r;
 
6384
}
 
6385
 
 
6386
static int __pyx_pf_6Cython_8Compiler_7Visitor_21RecursiveNodeReplacer_9orig_node_2__del__(PyObject *__pyx_v_self); /*proto*/
 
6387
static int __pyx_pf_6Cython_8Compiler_7Visitor_21RecursiveNodeReplacer_9orig_node_2__del__(PyObject *__pyx_v_self) {
 
6388
  int __pyx_r;
 
6389
  __Pyx_RefNannySetupContext("__del__");
 
6390
  __Pyx_INCREF(Py_None);
 
6391
  __Pyx_GIVEREF(Py_None);
 
6392
  __Pyx_GOTREF(((struct __pyx_obj_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer *)__pyx_v_self)->orig_node);
 
6393
  __Pyx_DECREF(((struct __pyx_obj_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer *)__pyx_v_self)->orig_node);
 
6394
  ((struct __pyx_obj_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer *)__pyx_v_self)->orig_node = Py_None;
 
6395
 
 
6396
  __pyx_r = 0;
 
6397
  __Pyx_RefNannyFinishContext();
 
6398
  return __pyx_r;
 
6399
}
 
6400
 
 
6401
/* "Cython/Compiler/Visitor.pxd":33
 
6402
 * cdef class RecursiveNodeReplacer(VisitorTransform):
 
6403
 *      cdef public orig_node
 
6404
 *      cdef public new_node             # <<<<<<<<<<<<<<
 
6405
 */
 
6406
 
 
6407
static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_21RecursiveNodeReplacer_8new_node___get__(PyObject *__pyx_v_self); /*proto*/
 
6408
static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_21RecursiveNodeReplacer_8new_node___get__(PyObject *__pyx_v_self) {
 
6409
  PyObject *__pyx_r = NULL;
 
6410
  __Pyx_RefNannySetupContext("__get__");
 
6411
  __Pyx_XDECREF(__pyx_r);
 
6412
  __Pyx_INCREF(((struct __pyx_obj_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer *)__pyx_v_self)->new_node);
 
6413
  __pyx_r = ((struct __pyx_obj_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer *)__pyx_v_self)->new_node;
 
6414
  goto __pyx_L0;
 
6415
 
 
6416
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
 
6417
  __pyx_L0:;
 
6418
  __Pyx_XGIVEREF(__pyx_r);
 
6419
  __Pyx_RefNannyFinishContext();
 
6420
  return __pyx_r;
 
6421
}
 
6422
 
 
6423
static int __pyx_pf_6Cython_8Compiler_7Visitor_21RecursiveNodeReplacer_8new_node_1__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
 
6424
static int __pyx_pf_6Cython_8Compiler_7Visitor_21RecursiveNodeReplacer_8new_node_1__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
 
6425
  int __pyx_r;
 
6426
  __Pyx_RefNannySetupContext("__set__");
 
6427
  __Pyx_INCREF(__pyx_v_value);
 
6428
  __Pyx_GIVEREF(__pyx_v_value);
 
6429
  __Pyx_GOTREF(((struct __pyx_obj_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer *)__pyx_v_self)->new_node);
 
6430
  __Pyx_DECREF(((struct __pyx_obj_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer *)__pyx_v_self)->new_node);
 
6431
  ((struct __pyx_obj_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer *)__pyx_v_self)->new_node = __pyx_v_value;
 
6432
 
 
6433
  __pyx_r = 0;
 
6434
  __Pyx_RefNannyFinishContext();
 
6435
  return __pyx_r;
 
6436
}
 
6437
 
 
6438
static int __pyx_pf_6Cython_8Compiler_7Visitor_21RecursiveNodeReplacer_8new_node_2__del__(PyObject *__pyx_v_self); /*proto*/
 
6439
static int __pyx_pf_6Cython_8Compiler_7Visitor_21RecursiveNodeReplacer_8new_node_2__del__(PyObject *__pyx_v_self) {
 
6440
  int __pyx_r;
 
6441
  __Pyx_RefNannySetupContext("__del__");
 
6442
  __Pyx_INCREF(Py_None);
 
6443
  __Pyx_GIVEREF(Py_None);
 
6444
  __Pyx_GOTREF(((struct __pyx_obj_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer *)__pyx_v_self)->new_node);
 
6445
  __Pyx_DECREF(((struct __pyx_obj_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer *)__pyx_v_self)->new_node);
 
6446
  ((struct __pyx_obj_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer *)__pyx_v_self)->new_node = Py_None;
 
6447
 
 
6448
  __pyx_r = 0;
 
6449
  __Pyx_RefNannyFinishContext();
 
6450
  return __pyx_r;
 
6451
}
 
6452
 
 
6453
/* "Cython/Compiler/Visitor.py":351
 
6454
 *             return node
 
6455
 * 
 
6456
 * def recursively_replace_node(tree, old_node, new_node):             # <<<<<<<<<<<<<<
 
6457
 *     replace_in = RecursiveNodeReplacer(old_node, new_node)
 
6458
 *     replace_in(tree)
 
6459
 */
 
6460
 
 
6461
static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_recursively_replace_node(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
 
6462
static PyMethodDef __pyx_mdef_6Cython_8Compiler_7Visitor_recursively_replace_node = {__Pyx_NAMESTR("recursively_replace_node"), (PyCFunction)__pyx_pf_6Cython_8Compiler_7Visitor_recursively_replace_node, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
 
6463
static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_recursively_replace_node(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
 
6464
  PyObject *__pyx_v_tree = 0;
 
6465
  PyObject *__pyx_v_old_node = 0;
 
6466
  PyObject *__pyx_v_new_node = 0;
 
6467
  struct __pyx_obj_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer *__pyx_v_replace_in;
 
6468
  PyObject *__pyx_r = NULL;
 
6469
  PyObject *__pyx_t_1 = NULL;
 
6470
  PyObject *__pyx_t_2 = NULL;
 
6471
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__tree,&__pyx_n_s__old_node,&__pyx_n_s__new_node,0};
 
6472
  __Pyx_RefNannySetupContext("recursively_replace_node");
 
6473
  __pyx_self = __pyx_self;
 
6474
  if (unlikely(__pyx_kwds)) {
 
6475
    Py_ssize_t kw_args = PyDict_Size(__pyx_kwds);
 
6476
    PyObject* values[3] = {0,0,0};
 
6477
    switch (PyTuple_GET_SIZE(__pyx_args)) {
 
6478
      case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
 
6479
      case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
 
6480
      case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
 
6481
      case  0: break;
 
6482
      default: goto __pyx_L5_argtuple_error;
 
6483
    }
 
6484
    switch (PyTuple_GET_SIZE(__pyx_args)) {
 
6485
      case  0:
 
6486
      values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__tree);
 
6487
      if (likely(values[0])) kw_args--;
 
6488
      else goto __pyx_L5_argtuple_error;
 
6489
      case  1:
 
6490
      values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__old_node);
 
6491
      if (likely(values[1])) kw_args--;
 
6492
      else {
 
6493
        __Pyx_RaiseArgtupleInvalid("recursively_replace_node", 1, 3, 3, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 351; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 
6494
      }
 
6495
      case  2:
 
6496
      values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__new_node);
 
6497
      if (likely(values[2])) kw_args--;
 
6498
      else {
 
6499
        __Pyx_RaiseArgtupleInvalid("recursively_replace_node", 1, 3, 3, 2); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 351; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 
6500
      }
 
6501
    }
 
6502
    if (unlikely(kw_args > 0)) {
 
6503
      if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "recursively_replace_node") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 351; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 
6504
    }
 
6505
    __pyx_v_tree = values[0];
 
6506
    __pyx_v_old_node = values[1];
 
6507
    __pyx_v_new_node = values[2];
 
6508
  } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
 
6509
    goto __pyx_L5_argtuple_error;
 
6510
  } else {
 
6511
    __pyx_v_tree = PyTuple_GET_ITEM(__pyx_args, 0);
 
6512
    __pyx_v_old_node = PyTuple_GET_ITEM(__pyx_args, 1);
 
6513
    __pyx_v_new_node = PyTuple_GET_ITEM(__pyx_args, 2);
 
6514
  }
 
6515
  goto __pyx_L4_argument_unpacking_done;
 
6516
  __pyx_L5_argtuple_error:;
 
6517
  __Pyx_RaiseArgtupleInvalid("recursively_replace_node", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 351; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 
6518
  __pyx_L3_error:;
 
6519
  __Pyx_AddTraceback("Cython.Compiler.Visitor.recursively_replace_node");
 
6520
  __Pyx_RefNannyFinishContext();
 
6521
  return NULL;
 
6522
  __pyx_L4_argument_unpacking_done:;
 
6523
  __pyx_v_replace_in = ((struct __pyx_obj_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer *)Py_None); __Pyx_INCREF(Py_None);
 
6524
 
 
6525
  /* "Cython/Compiler/Visitor.py":352
 
6526
 * 
 
6527
 * def recursively_replace_node(tree, old_node, new_node):
 
6528
 *     replace_in = RecursiveNodeReplacer(old_node, new_node)             # <<<<<<<<<<<<<<
 
6529
 *     replace_in(tree)
 
6530
 * 
 
6531
 */
 
6532
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 352; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
6533
  __Pyx_GOTREF(((PyObject *)__pyx_t_1));
 
6534
  __Pyx_INCREF(__pyx_v_old_node);
 
6535
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_old_node);
 
6536
  __Pyx_GIVEREF(__pyx_v_old_node);
 
6537
  __Pyx_INCREF(__pyx_v_new_node);
 
6538
  PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_new_node);
 
6539
  __Pyx_GIVEREF(__pyx_v_new_node);
 
6540
  __pyx_t_2 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer)), ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 352; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
6541
  __Pyx_GOTREF(__pyx_t_2);
 
6542
  __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
 
6543
  __Pyx_DECREF(((PyObject *)__pyx_v_replace_in));
 
6544
  __pyx_v_replace_in = ((struct __pyx_obj_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer *)__pyx_t_2);
 
6545
  __pyx_t_2 = 0;
 
6546
 
 
6547
  /* "Cython/Compiler/Visitor.py":353
 
6548
 * def recursively_replace_node(tree, old_node, new_node):
 
6549
 *     replace_in = RecursiveNodeReplacer(old_node, new_node)
 
6550
 *     replace_in(tree)             # <<<<<<<<<<<<<<
 
6551
 * 
 
6552
 * 
 
6553
 */
 
6554
  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 353; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
6555
  __Pyx_GOTREF(((PyObject *)__pyx_t_2));
 
6556
  __Pyx_INCREF(__pyx_v_tree);
 
6557
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_tree);
 
6558
  __Pyx_GIVEREF(__pyx_v_tree);
 
6559
  __pyx_t_1 = PyObject_Call(((PyObject *)__pyx_v_replace_in), ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 353; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
6560
  __Pyx_GOTREF(__pyx_t_1);
 
6561
  __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
 
6562
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
6563
 
 
6564
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
 
6565
  goto __pyx_L0;
 
6566
  __pyx_L1_error:;
 
6567
  __Pyx_XDECREF(__pyx_t_1);
 
6568
  __Pyx_XDECREF(__pyx_t_2);
 
6569
  __Pyx_AddTraceback("Cython.Compiler.Visitor.recursively_replace_node");
 
6570
  __pyx_r = NULL;
 
6571
  __pyx_L0:;
 
6572
  __Pyx_DECREF((PyObject *)__pyx_v_replace_in);
 
6573
  __Pyx_XGIVEREF(__pyx_r);
 
6574
  __Pyx_RefNannyFinishContext();
 
6575
  return __pyx_r;
 
6576
}
 
6577
 
 
6578
/* "Cython/Compiler/Visitor.py":357
 
6579
 * 
 
6580
 * # Utils
 
6581
 * def ensure_statlist(node):             # <<<<<<<<<<<<<<
 
6582
 *     if not isinstance(node, Nodes.StatListNode):
 
6583
 *         node = Nodes.StatListNode(pos=node.pos, stats=[node])
 
6584
 */
 
6585
 
 
6586
static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_1ensure_statlist(PyObject *__pyx_self, PyObject *__pyx_v_node); /*proto*/
 
6587
static PyMethodDef __pyx_mdef_6Cython_8Compiler_7Visitor_1ensure_statlist = {__Pyx_NAMESTR("ensure_statlist"), (PyCFunction)__pyx_pf_6Cython_8Compiler_7Visitor_1ensure_statlist, METH_O, __Pyx_DOCSTR(0)};
 
6588
static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_1ensure_statlist(PyObject *__pyx_self, PyObject *__pyx_v_node) {
 
6589
  PyObject *__pyx_r = NULL;
 
6590
  PyObject *__pyx_t_1 = NULL;
 
6591
  PyObject *__pyx_t_2 = NULL;
 
6592
  PyObject *__pyx_t_3 = NULL;
 
6593
  int __pyx_t_4;
 
6594
  int __pyx_t_5;
 
6595
  __Pyx_RefNannySetupContext("ensure_statlist");
 
6596
  __pyx_self = __pyx_self;
 
6597
  __Pyx_INCREF(__pyx_v_node);
 
6598
 
 
6599
  /* "Cython/Compiler/Visitor.py":358
 
6600
 * # Utils
 
6601
 * def ensure_statlist(node):
 
6602
 *     if not isinstance(node, Nodes.StatListNode):             # <<<<<<<<<<<<<<
 
6603
 *         node = Nodes.StatListNode(pos=node.pos, stats=[node])
 
6604
 *     return node
 
6605
 */
 
6606
  __pyx_t_1 = __pyx_v_node;
 
6607
  __Pyx_INCREF(__pyx_t_1);
 
6608
  __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s__Nodes); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 358; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
6609
  __Pyx_GOTREF(__pyx_t_2);
 
6610
  __pyx_t_3 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s__StatListNode); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 358; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
6611
  __Pyx_GOTREF(__pyx_t_3);
 
6612
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 
6613
  __pyx_t_4 = PyObject_IsInstance(__pyx_t_1, __pyx_t_3); if (unlikely(__pyx_t_4 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 358; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
6614
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
6615
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 
6616
  __pyx_t_5 = (!__pyx_t_4);
 
6617
  if (__pyx_t_5) {
 
6618
 
 
6619
    /* "Cython/Compiler/Visitor.py":359
 
6620
 * def ensure_statlist(node):
 
6621
 *     if not isinstance(node, Nodes.StatListNode):
 
6622
 *         node = Nodes.StatListNode(pos=node.pos, stats=[node])             # <<<<<<<<<<<<<<
 
6623
 *     return node
 
6624
 * 
 
6625
 */
 
6626
    __pyx_t_3 = __Pyx_GetName(__pyx_m, __pyx_n_s__Nodes); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 359; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
6627
    __Pyx_GOTREF(__pyx_t_3);
 
6628
    __pyx_t_1 = PyObject_GetAttr(__pyx_t_3, __pyx_n_s__StatListNode); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 359; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
6629
    __Pyx_GOTREF(__pyx_t_1);
 
6630
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 
6631
    __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 359; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
6632
    __Pyx_GOTREF(((PyObject *)__pyx_t_3));
 
6633
    __pyx_t_2 = PyObject_GetAttr(__pyx_v_node, __pyx_n_s__pos); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 359; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
6634
    __Pyx_GOTREF(__pyx_t_2);
 
6635
    if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_n_s__pos), __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 359; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
6636
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 
6637
    __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 359; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
6638
    __Pyx_GOTREF(((PyObject *)__pyx_t_2));
 
6639
    __Pyx_INCREF(__pyx_v_node);
 
6640
    PyList_SET_ITEM(__pyx_t_2, 0, __pyx_v_node);
 
6641
    __Pyx_GIVEREF(__pyx_v_node);
 
6642
    if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_n_s__stats), ((PyObject *)__pyx_t_2)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 359; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
6643
    __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
 
6644
    __pyx_t_2 = PyEval_CallObjectWithKeywords(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), ((PyObject *)__pyx_t_3)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 359; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
6645
    __Pyx_GOTREF(__pyx_t_2);
 
6646
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
6647
    __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
 
6648
    __Pyx_DECREF(__pyx_v_node);
 
6649
    __pyx_v_node = __pyx_t_2;
 
6650
    __pyx_t_2 = 0;
 
6651
    goto __pyx_L5;
 
6652
  }
 
6653
  __pyx_L5:;
 
6654
 
 
6655
  /* "Cython/Compiler/Visitor.py":360
 
6656
 *     if not isinstance(node, Nodes.StatListNode):
 
6657
 *         node = Nodes.StatListNode(pos=node.pos, stats=[node])
 
6658
 *     return node             # <<<<<<<<<<<<<<
 
6659
 * 
 
6660
 * def replace_node(ptr, value):
 
6661
 */
 
6662
  __Pyx_XDECREF(__pyx_r);
 
6663
  __Pyx_INCREF(__pyx_v_node);
 
6664
  __pyx_r = __pyx_v_node;
 
6665
  goto __pyx_L0;
 
6666
 
 
6667
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
 
6668
  goto __pyx_L0;
 
6669
  __pyx_L1_error:;
 
6670
  __Pyx_XDECREF(__pyx_t_1);
 
6671
  __Pyx_XDECREF(__pyx_t_2);
 
6672
  __Pyx_XDECREF(__pyx_t_3);
 
6673
  __Pyx_AddTraceback("Cython.Compiler.Visitor.ensure_statlist");
 
6674
  __pyx_r = NULL;
 
6675
  __pyx_L0:;
 
6676
  __Pyx_DECREF(__pyx_v_node);
 
6677
  __Pyx_XGIVEREF(__pyx_r);
 
6678
  __Pyx_RefNannyFinishContext();
 
6679
  return __pyx_r;
 
6680
}
 
6681
 
 
6682
/* "Cython/Compiler/Visitor.py":362
 
6683
 *     return node
 
6684
 * 
 
6685
 * def replace_node(ptr, value):             # <<<<<<<<<<<<<<
 
6686
 *     """Replaces a node. ptr is of the form used on the access path stack
 
6687
 *     (parent, attrname, listidx|None)
 
6688
 */
 
6689
 
 
6690
static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_2replace_node(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
 
6691
static char __pyx_doc_6Cython_8Compiler_7Visitor_2replace_node[] = "Replaces a node. ptr is of the form used on the access path stack\n    (parent, attrname, listidx|None)\n    ";
 
6692
static PyMethodDef __pyx_mdef_6Cython_8Compiler_7Visitor_2replace_node = {__Pyx_NAMESTR("replace_node"), (PyCFunction)__pyx_pf_6Cython_8Compiler_7Visitor_2replace_node, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6Cython_8Compiler_7Visitor_2replace_node)};
 
6693
static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_2replace_node(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
 
6694
  PyObject *__pyx_v_ptr = 0;
 
6695
  PyObject *__pyx_v_value = 0;
 
6696
  PyObject *__pyx_v_parent;
 
6697
  PyObject *__pyx_v_attrname;
 
6698
  PyObject *__pyx_v_listidx;
 
6699
  PyObject *__pyx_r = NULL;
 
6700
  PyObject *__pyx_t_1 = NULL;
 
6701
  PyObject *__pyx_t_2 = NULL;
 
6702
  PyObject *__pyx_t_3 = NULL;
 
6703
  PyObject *__pyx_t_4 = NULL;
 
6704
  int __pyx_t_5;
 
6705
  int __pyx_t_6;
 
6706
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__ptr,&__pyx_n_s__value,0};
 
6707
  __Pyx_RefNannySetupContext("replace_node");
 
6708
  __pyx_self = __pyx_self;
 
6709
  if (unlikely(__pyx_kwds)) {
 
6710
    Py_ssize_t kw_args = PyDict_Size(__pyx_kwds);
 
6711
    PyObject* values[2] = {0,0};
 
6712
    switch (PyTuple_GET_SIZE(__pyx_args)) {
 
6713
      case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
 
6714
      case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
 
6715
      case  0: break;
 
6716
      default: goto __pyx_L5_argtuple_error;
 
6717
    }
 
6718
    switch (PyTuple_GET_SIZE(__pyx_args)) {
 
6719
      case  0:
 
6720
      values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__ptr);
 
6721
      if (likely(values[0])) kw_args--;
 
6722
      else goto __pyx_L5_argtuple_error;
 
6723
      case  1:
 
6724
      values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__value);
 
6725
      if (likely(values[1])) kw_args--;
 
6726
      else {
 
6727
        __Pyx_RaiseArgtupleInvalid("replace_node", 1, 2, 2, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 362; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 
6728
      }
 
6729
    }
 
6730
    if (unlikely(kw_args > 0)) {
 
6731
      if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "replace_node") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 362; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 
6732
    }
 
6733
    __pyx_v_ptr = values[0];
 
6734
    __pyx_v_value = values[1];
 
6735
  } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
 
6736
    goto __pyx_L5_argtuple_error;
 
6737
  } else {
 
6738
    __pyx_v_ptr = PyTuple_GET_ITEM(__pyx_args, 0);
 
6739
    __pyx_v_value = PyTuple_GET_ITEM(__pyx_args, 1);
 
6740
  }
 
6741
  goto __pyx_L4_argument_unpacking_done;
 
6742
  __pyx_L5_argtuple_error:;
 
6743
  __Pyx_RaiseArgtupleInvalid("replace_node", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 362; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 
6744
  __pyx_L3_error:;
 
6745
  __Pyx_AddTraceback("Cython.Compiler.Visitor.replace_node");
 
6746
  __Pyx_RefNannyFinishContext();
 
6747
  return NULL;
 
6748
  __pyx_L4_argument_unpacking_done:;
 
6749
  __pyx_v_parent = Py_None; __Pyx_INCREF(Py_None);
 
6750
  __pyx_v_attrname = Py_None; __Pyx_INCREF(Py_None);
 
6751
  __pyx_v_listidx = Py_None; __Pyx_INCREF(Py_None);
 
6752
 
 
6753
  /* "Cython/Compiler/Visitor.py":366
 
6754
 *     (parent, attrname, listidx|None)
 
6755
 *     """
 
6756
 *     parent, attrname, listidx = ptr             # <<<<<<<<<<<<<<
 
6757
 *     if listidx is None:
 
6758
 *         setattr(parent, attrname, value)
 
6759
 */
 
6760
  if (PyTuple_CheckExact(__pyx_v_ptr) && likely(PyTuple_GET_SIZE(__pyx_v_ptr) == 3)) {
 
6761
    PyObject* tuple = __pyx_v_ptr;
 
6762
    __pyx_t_1 = PyTuple_GET_ITEM(tuple, 0); __Pyx_INCREF(__pyx_t_1);
 
6763
    __pyx_t_2 = PyTuple_GET_ITEM(tuple, 1); __Pyx_INCREF(__pyx_t_2);
 
6764
    __pyx_t_3 = PyTuple_GET_ITEM(tuple, 2); __Pyx_INCREF(__pyx_t_3);
 
6765
    __Pyx_DECREF(__pyx_v_parent);
 
6766
    __pyx_v_parent = __pyx_t_1;
 
6767
    __pyx_t_1 = 0;
 
6768
    __Pyx_DECREF(__pyx_v_attrname);
 
6769
    __pyx_v_attrname = __pyx_t_2;
 
6770
    __pyx_t_2 = 0;
 
6771
    __Pyx_DECREF(__pyx_v_listidx);
 
6772
    __pyx_v_listidx = __pyx_t_3;
 
6773
    __pyx_t_3 = 0;
 
6774
  } else {
 
6775
    __pyx_t_4 = PyObject_GetIter(__pyx_v_ptr); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 366; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
6776
    __Pyx_GOTREF(__pyx_t_4);
 
6777
    __pyx_t_1 = __Pyx_UnpackItem(__pyx_t_4, 0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 366; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
6778
    __Pyx_GOTREF(__pyx_t_1);
 
6779
    __pyx_t_2 = __Pyx_UnpackItem(__pyx_t_4, 1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 366; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
6780
    __Pyx_GOTREF(__pyx_t_2);
 
6781
    __pyx_t_3 = __Pyx_UnpackItem(__pyx_t_4, 2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 366; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
6782
    __Pyx_GOTREF(__pyx_t_3);
 
6783
    if (__Pyx_EndUnpack(__pyx_t_4, 3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 366; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
6784
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 
6785
    __Pyx_DECREF(__pyx_v_parent);
 
6786
    __pyx_v_parent = __pyx_t_1;
 
6787
    __pyx_t_1 = 0;
 
6788
    __Pyx_DECREF(__pyx_v_attrname);
 
6789
    __pyx_v_attrname = __pyx_t_2;
 
6790
    __pyx_t_2 = 0;
 
6791
    __Pyx_DECREF(__pyx_v_listidx);
 
6792
    __pyx_v_listidx = __pyx_t_3;
 
6793
    __pyx_t_3 = 0;
 
6794
  }
 
6795
 
 
6796
  /* "Cython/Compiler/Visitor.py":367
 
6797
 *     """
 
6798
 *     parent, attrname, listidx = ptr
 
6799
 *     if listidx is None:             # <<<<<<<<<<<<<<
 
6800
 *         setattr(parent, attrname, value)
 
6801
 *     else:
 
6802
 */
 
6803
  __pyx_t_5 = (__pyx_v_listidx == Py_None);
 
6804
  if (__pyx_t_5) {
 
6805
 
 
6806
    /* "Cython/Compiler/Visitor.py":368
 
6807
 *     parent, attrname, listidx = ptr
 
6808
 *     if listidx is None:
 
6809
 *         setattr(parent, attrname, value)             # <<<<<<<<<<<<<<
 
6810
 *     else:
 
6811
 *         getattr(parent, attrname)[listidx] = value
 
6812
 */
 
6813
    __pyx_t_3 = __pyx_v_value;
 
6814
    __Pyx_INCREF(__pyx_t_3);
 
6815
    __pyx_t_6 = PyObject_SetAttr(__pyx_v_parent, __pyx_v_attrname, __pyx_t_3); if (unlikely(__pyx_t_6 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 368; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
6816
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 
6817
    goto __pyx_L6;
 
6818
  }
 
6819
  /*else*/ {
 
6820
 
 
6821
    /* "Cython/Compiler/Visitor.py":370
 
6822
 *         setattr(parent, attrname, value)
 
6823
 *     else:
 
6824
 *         getattr(parent, attrname)[listidx] = value             # <<<<<<<<<<<<<<
 
6825
 * 
 
6826
 * class PrintTree(TreeVisitor):
 
6827
 */
 
6828
    __pyx_t_3 = PyObject_GetAttr(__pyx_v_parent, __pyx_v_attrname); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 370; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
6829
    __Pyx_GOTREF(__pyx_t_3);
 
6830
    if (PyObject_SetItem(__pyx_t_3, __pyx_v_listidx, __pyx_v_value) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 370; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
6831
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 
6832
  }
 
6833
  __pyx_L6:;
 
6834
 
 
6835
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
 
6836
  goto __pyx_L0;
 
6837
  __pyx_L1_error:;
 
6838
  __Pyx_XDECREF(__pyx_t_1);
 
6839
  __Pyx_XDECREF(__pyx_t_2);
 
6840
  __Pyx_XDECREF(__pyx_t_3);
 
6841
  __Pyx_XDECREF(__pyx_t_4);
 
6842
  __Pyx_AddTraceback("Cython.Compiler.Visitor.replace_node");
 
6843
  __pyx_r = NULL;
 
6844
  __pyx_L0:;
 
6845
  __Pyx_DECREF(__pyx_v_parent);
 
6846
  __Pyx_DECREF(__pyx_v_attrname);
 
6847
  __Pyx_DECREF(__pyx_v_listidx);
 
6848
  __Pyx_XGIVEREF(__pyx_r);
 
6849
  __Pyx_RefNannyFinishContext();
 
6850
  return __pyx_r;
 
6851
}
 
6852
 
 
6853
/* "Cython/Compiler/Visitor.py":376
 
6854
 *     Subclass and override repr_of to provide more information
 
6855
 *     about nodes. """
 
6856
 *     def __init__(self):             # <<<<<<<<<<<<<<
 
6857
 *         TreeVisitor.__init__(self)
 
6858
 *         self._indent = ""
 
6859
 */
 
6860
 
 
6861
static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_9PrintTree___init__(PyObject *__pyx_self, PyObject *__pyx_v_self); /*proto*/
 
6862
static PyMethodDef __pyx_mdef_6Cython_8Compiler_7Visitor_9PrintTree___init__ = {__Pyx_NAMESTR("__init__"), (PyCFunction)__pyx_pf_6Cython_8Compiler_7Visitor_9PrintTree___init__, METH_O, __Pyx_DOCSTR(0)};
 
6863
static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_9PrintTree___init__(PyObject *__pyx_self, PyObject *__pyx_v_self) {
 
6864
  PyObject *__pyx_r = NULL;
 
6865
  PyObject *__pyx_t_1 = NULL;
 
6866
  PyObject *__pyx_t_2 = NULL;
 
6867
  PyObject *__pyx_t_3 = NULL;
 
6868
  __Pyx_RefNannySetupContext("__init__");
 
6869
  __pyx_self = __pyx_self;
 
6870
 
 
6871
  /* "Cython/Compiler/Visitor.py":377
 
6872
 *     about nodes. """
 
6873
 *     def __init__(self):
 
6874
 *         TreeVisitor.__init__(self)             # <<<<<<<<<<<<<<
 
6875
 *         self._indent = ""
 
6876
 * 
 
6877
 */
 
6878
  __pyx_t_1 = PyObject_GetAttr(((PyObject *)((PyObject*)__pyx_ptype_6Cython_8Compiler_7Visitor_TreeVisitor)), __pyx_n_s____init__); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 377; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
6879
  __Pyx_GOTREF(__pyx_t_1);
 
6880
  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 377; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
6881
  __Pyx_GOTREF(((PyObject *)__pyx_t_2));
 
6882
  __Pyx_INCREF(__pyx_v_self);
 
6883
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_self);
 
6884
  __Pyx_GIVEREF(__pyx_v_self);
 
6885
  __pyx_t_3 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 377; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
6886
  __Pyx_GOTREF(__pyx_t_3);
 
6887
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
6888
  __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
 
6889
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 
6890
 
 
6891
  /* "Cython/Compiler/Visitor.py":378
 
6892
 *     def __init__(self):
 
6893
 *         TreeVisitor.__init__(self)
 
6894
 *         self._indent = ""             # <<<<<<<<<<<<<<
 
6895
 * 
 
6896
 *     def indent(self):
 
6897
 */
 
6898
  if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s___indent, ((PyObject *)__pyx_kp_s_10)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 378; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
6899
 
 
6900
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
 
6901
  goto __pyx_L0;
 
6902
  __pyx_L1_error:;
 
6903
  __Pyx_XDECREF(__pyx_t_1);
 
6904
  __Pyx_XDECREF(__pyx_t_2);
 
6905
  __Pyx_XDECREF(__pyx_t_3);
 
6906
  __Pyx_AddTraceback("Cython.Compiler.Visitor.PrintTree.__init__");
 
6907
  __pyx_r = NULL;
 
6908
  __pyx_L0:;
 
6909
  __Pyx_XGIVEREF(__pyx_r);
 
6910
  __Pyx_RefNannyFinishContext();
 
6911
  return __pyx_r;
 
6912
}
 
6913
 
 
6914
/* "Cython/Compiler/Visitor.py":380
 
6915
 *         self._indent = ""
 
6916
 * 
 
6917
 *     def indent(self):             # <<<<<<<<<<<<<<
 
6918
 *         self._indent += "  "
 
6919
 *     def unindent(self):
 
6920
 */
 
6921
 
 
6922
static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_9PrintTree_1indent(PyObject *__pyx_self, PyObject *__pyx_v_self); /*proto*/
 
6923
static PyMethodDef __pyx_mdef_6Cython_8Compiler_7Visitor_9PrintTree_1indent = {__Pyx_NAMESTR("indent"), (PyCFunction)__pyx_pf_6Cython_8Compiler_7Visitor_9PrintTree_1indent, METH_O, __Pyx_DOCSTR(0)};
 
6924
static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_9PrintTree_1indent(PyObject *__pyx_self, PyObject *__pyx_v_self) {
 
6925
  PyObject *__pyx_r = NULL;
 
6926
  PyObject *__pyx_t_1 = NULL;
 
6927
  PyObject *__pyx_t_2 = NULL;
 
6928
  __Pyx_RefNannySetupContext("indent");
 
6929
  __pyx_self = __pyx_self;
 
6930
 
 
6931
  /* "Cython/Compiler/Visitor.py":381
 
6932
 * 
 
6933
 *     def indent(self):
 
6934
 *         self._indent += "  "             # <<<<<<<<<<<<<<
 
6935
 *     def unindent(self):
 
6936
 *         self._indent = self._indent[:-2]
 
6937
 */
 
6938
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s___indent); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 381; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
6939
  __Pyx_GOTREF(__pyx_t_1);
 
6940
  __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_t_1, ((PyObject *)__pyx_kp_s_20)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 381; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
6941
  __Pyx_GOTREF(__pyx_t_2);
 
6942
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
6943
  if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s___indent, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 381; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
6944
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 
6945
 
 
6946
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
 
6947
  goto __pyx_L0;
 
6948
  __pyx_L1_error:;
 
6949
  __Pyx_XDECREF(__pyx_t_1);
 
6950
  __Pyx_XDECREF(__pyx_t_2);
 
6951
  __Pyx_AddTraceback("Cython.Compiler.Visitor.PrintTree.indent");
 
6952
  __pyx_r = NULL;
 
6953
  __pyx_L0:;
 
6954
  __Pyx_XGIVEREF(__pyx_r);
 
6955
  __Pyx_RefNannyFinishContext();
 
6956
  return __pyx_r;
 
6957
}
 
6958
 
 
6959
/* "Cython/Compiler/Visitor.py":382
 
6960
 *     def indent(self):
 
6961
 *         self._indent += "  "
 
6962
 *     def unindent(self):             # <<<<<<<<<<<<<<
 
6963
 *         self._indent = self._indent[:-2]
 
6964
 * 
 
6965
 */
 
6966
 
 
6967
static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_9PrintTree_2unindent(PyObject *__pyx_self, PyObject *__pyx_v_self); /*proto*/
 
6968
static PyMethodDef __pyx_mdef_6Cython_8Compiler_7Visitor_9PrintTree_2unindent = {__Pyx_NAMESTR("unindent"), (PyCFunction)__pyx_pf_6Cython_8Compiler_7Visitor_9PrintTree_2unindent, METH_O, __Pyx_DOCSTR(0)};
 
6969
static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_9PrintTree_2unindent(PyObject *__pyx_self, PyObject *__pyx_v_self) {
 
6970
  PyObject *__pyx_r = NULL;
 
6971
  PyObject *__pyx_t_1 = NULL;
 
6972
  PyObject *__pyx_t_2 = NULL;
 
6973
  __Pyx_RefNannySetupContext("unindent");
 
6974
  __pyx_self = __pyx_self;
 
6975
 
 
6976
  /* "Cython/Compiler/Visitor.py":383
 
6977
 *         self._indent += "  "
 
6978
 *     def unindent(self):
 
6979
 *         self._indent = self._indent[:-2]             # <<<<<<<<<<<<<<
 
6980
 * 
 
6981
 *     def __call__(self, tree, phase=None):
 
6982
 */
 
6983
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s___indent); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 383; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
6984
  __Pyx_GOTREF(__pyx_t_1);
 
6985
  __pyx_t_2 = __Pyx_PySequence_GetSlice(__pyx_t_1, 0, -2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 383; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
6986
  __Pyx_GOTREF(__pyx_t_2);
 
6987
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
6988
  if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s___indent, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 383; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
6989
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 
6990
 
 
6991
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
 
6992
  goto __pyx_L0;
 
6993
  __pyx_L1_error:;
 
6994
  __Pyx_XDECREF(__pyx_t_1);
 
6995
  __Pyx_XDECREF(__pyx_t_2);
 
6996
  __Pyx_AddTraceback("Cython.Compiler.Visitor.PrintTree.unindent");
 
6997
  __pyx_r = NULL;
 
6998
  __pyx_L0:;
 
6999
  __Pyx_XGIVEREF(__pyx_r);
 
7000
  __Pyx_RefNannyFinishContext();
 
7001
  return __pyx_r;
 
7002
}
 
7003
 
 
7004
/* "Cython/Compiler/Visitor.py":385
 
7005
 *         self._indent = self._indent[:-2]
 
7006
 * 
 
7007
 *     def __call__(self, tree, phase=None):             # <<<<<<<<<<<<<<
 
7008
 *         print("Parse tree dump at phase '%s'" % phase)
 
7009
 *         self._visit(tree)
 
7010
 */
 
7011
 
 
7012
static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_9PrintTree_3__call__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
 
7013
static PyMethodDef __pyx_mdef_6Cython_8Compiler_7Visitor_9PrintTree_3__call__ = {__Pyx_NAMESTR("__call__"), (PyCFunction)__pyx_pf_6Cython_8Compiler_7Visitor_9PrintTree_3__call__, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
 
7014
static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_9PrintTree_3__call__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
 
7015
  PyObject *__pyx_v_self = 0;
 
7016
  PyObject *__pyx_v_tree = 0;
 
7017
  PyObject *__pyx_v_phase = 0;
 
7018
  PyObject *__pyx_r = NULL;
 
7019
  PyObject *__pyx_t_1 = NULL;
 
7020
  PyObject *__pyx_t_2 = NULL;
 
7021
  PyObject *__pyx_t_3 = NULL;
 
7022
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__tree,&__pyx_n_s__phase,0};
 
7023
  __Pyx_RefNannySetupContext("__call__");
 
7024
  __pyx_self = __pyx_self;
 
7025
  if (unlikely(__pyx_kwds)) {
 
7026
    Py_ssize_t kw_args = PyDict_Size(__pyx_kwds);
 
7027
    PyObject* values[3] = {0,0,0};
 
7028
    values[2] = ((PyObject *)Py_None);
 
7029
    switch (PyTuple_GET_SIZE(__pyx_args)) {
 
7030
      case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
 
7031
      case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
 
7032
      case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
 
7033
      case  0: break;
 
7034
      default: goto __pyx_L5_argtuple_error;
 
7035
    }
 
7036
    switch (PyTuple_GET_SIZE(__pyx_args)) {
 
7037
      case  0:
 
7038
      values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
 
7039
      if (likely(values[0])) kw_args--;
 
7040
      else goto __pyx_L5_argtuple_error;
 
7041
      case  1:
 
7042
      values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__tree);
 
7043
      if (likely(values[1])) kw_args--;
 
7044
      else {
 
7045
        __Pyx_RaiseArgtupleInvalid("__call__", 0, 2, 3, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 385; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 
7046
      }
 
7047
      case  2:
 
7048
      if (kw_args > 0) {
 
7049
        PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__phase);
 
7050
        if (value) { values[2] = value; kw_args--; }
 
7051
      }
 
7052
    }
 
7053
    if (unlikely(kw_args > 0)) {
 
7054
      if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "__call__") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 385; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 
7055
    }
 
7056
    __pyx_v_self = values[0];
 
7057
    __pyx_v_tree = values[1];
 
7058
    __pyx_v_phase = values[2];
 
7059
  } else {
 
7060
    __pyx_v_phase = ((PyObject *)Py_None);
 
7061
    switch (PyTuple_GET_SIZE(__pyx_args)) {
 
7062
      case  3:
 
7063
      __pyx_v_phase = PyTuple_GET_ITEM(__pyx_args, 2);
 
7064
      case  2:
 
7065
      __pyx_v_tree = PyTuple_GET_ITEM(__pyx_args, 1);
 
7066
      __pyx_v_self = PyTuple_GET_ITEM(__pyx_args, 0);
 
7067
      break;
 
7068
      default: goto __pyx_L5_argtuple_error;
 
7069
    }
 
7070
  }
 
7071
  goto __pyx_L4_argument_unpacking_done;
 
7072
  __pyx_L5_argtuple_error:;
 
7073
  __Pyx_RaiseArgtupleInvalid("__call__", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 385; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 
7074
  __pyx_L3_error:;
 
7075
  __Pyx_AddTraceback("Cython.Compiler.Visitor.PrintTree.__call__");
 
7076
  __Pyx_RefNannyFinishContext();
 
7077
  return NULL;
 
7078
  __pyx_L4_argument_unpacking_done:;
 
7079
 
 
7080
  /* "Cython/Compiler/Visitor.py":386
 
7081
 * 
 
7082
 *     def __call__(self, tree, phase=None):
 
7083
 *         print("Parse tree dump at phase '%s'" % phase)             # <<<<<<<<<<<<<<
 
7084
 *         self._visit(tree)
 
7085
 *         return tree
 
7086
 */
 
7087
  __pyx_t_1 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_21), __pyx_v_phase); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 386; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
7088
  __Pyx_GOTREF(((PyObject *)__pyx_t_1));
 
7089
  if (__Pyx_PrintOne(0, ((PyObject *)__pyx_t_1)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 386; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
7090
  __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
 
7091
 
 
7092
  /* "Cython/Compiler/Visitor.py":387
 
7093
 *     def __call__(self, tree, phase=None):
 
7094
 *         print("Parse tree dump at phase '%s'" % phase)
 
7095
 *         self._visit(tree)             # <<<<<<<<<<<<<<
 
7096
 *         return tree
 
7097
 * 
 
7098
 */
 
7099
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s___visit); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 387; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
7100
  __Pyx_GOTREF(__pyx_t_1);
 
7101
  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 387; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
7102
  __Pyx_GOTREF(((PyObject *)__pyx_t_2));
 
7103
  __Pyx_INCREF(__pyx_v_tree);
 
7104
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_tree);
 
7105
  __Pyx_GIVEREF(__pyx_v_tree);
 
7106
  __pyx_t_3 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 387; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
7107
  __Pyx_GOTREF(__pyx_t_3);
 
7108
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
7109
  __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
 
7110
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 
7111
 
 
7112
  /* "Cython/Compiler/Visitor.py":388
 
7113
 *         print("Parse tree dump at phase '%s'" % phase)
 
7114
 *         self._visit(tree)
 
7115
 *         return tree             # <<<<<<<<<<<<<<
 
7116
 * 
 
7117
 *     # Don't do anything about process_list, the defaults gives
 
7118
 */
 
7119
  __Pyx_XDECREF(__pyx_r);
 
7120
  __Pyx_INCREF(__pyx_v_tree);
 
7121
  __pyx_r = __pyx_v_tree;
 
7122
  goto __pyx_L0;
 
7123
 
 
7124
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
 
7125
  goto __pyx_L0;
 
7126
  __pyx_L1_error:;
 
7127
  __Pyx_XDECREF(__pyx_t_1);
 
7128
  __Pyx_XDECREF(__pyx_t_2);
 
7129
  __Pyx_XDECREF(__pyx_t_3);
 
7130
  __Pyx_AddTraceback("Cython.Compiler.Visitor.PrintTree.__call__");
 
7131
  __pyx_r = NULL;
 
7132
  __pyx_L0:;
 
7133
  __Pyx_XGIVEREF(__pyx_r);
 
7134
  __Pyx_RefNannyFinishContext();
 
7135
  return __pyx_r;
 
7136
}
 
7137
 
 
7138
/* "Cython/Compiler/Visitor.py":394
 
7139
 *     # under the parent-node, not displaying the list itself in
 
7140
 *     # the hierarchy.
 
7141
 *     def visit_Node(self, node):             # <<<<<<<<<<<<<<
 
7142
 *         if len(self.access_path) == 0:
 
7143
 *             name = "(root)"
 
7144
 */
 
7145
 
 
7146
static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_9PrintTree_4visit_Node(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
 
7147
static PyMethodDef __pyx_mdef_6Cython_8Compiler_7Visitor_9PrintTree_4visit_Node = {__Pyx_NAMESTR("visit_Node"), (PyCFunction)__pyx_pf_6Cython_8Compiler_7Visitor_9PrintTree_4visit_Node, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
 
7148
static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_9PrintTree_4visit_Node(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
 
7149
  PyObject *__pyx_v_self = 0;
 
7150
  PyObject *__pyx_v_node = 0;
 
7151
  PyObject *__pyx_v_name;
 
7152
  PyObject *__pyx_v_parent;
 
7153
  PyObject *__pyx_v_attr;
 
7154
  PyObject *__pyx_v_idx;
 
7155
  PyObject *__pyx_r = NULL;
 
7156
  PyObject *__pyx_t_1 = NULL;
 
7157
  Py_ssize_t __pyx_t_2;
 
7158
  int __pyx_t_3;
 
7159
  PyObject *__pyx_t_4 = NULL;
 
7160
  PyObject *__pyx_t_5 = NULL;
 
7161
  PyObject *__pyx_t_6 = NULL;
 
7162
  PyObject *__pyx_t_7 = NULL;
 
7163
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__node,0};
 
7164
  __Pyx_RefNannySetupContext("visit_Node");
 
7165
  __pyx_self = __pyx_self;
 
7166
  if (unlikely(__pyx_kwds)) {
 
7167
    Py_ssize_t kw_args = PyDict_Size(__pyx_kwds);
 
7168
    PyObject* values[2] = {0,0};
 
7169
    switch (PyTuple_GET_SIZE(__pyx_args)) {
 
7170
      case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
 
7171
      case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
 
7172
      case  0: break;
 
7173
      default: goto __pyx_L5_argtuple_error;
 
7174
    }
 
7175
    switch (PyTuple_GET_SIZE(__pyx_args)) {
 
7176
      case  0:
 
7177
      values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
 
7178
      if (likely(values[0])) kw_args--;
 
7179
      else goto __pyx_L5_argtuple_error;
 
7180
      case  1:
 
7181
      values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__node);
 
7182
      if (likely(values[1])) kw_args--;
 
7183
      else {
 
7184
        __Pyx_RaiseArgtupleInvalid("visit_Node", 1, 2, 2, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 394; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 
7185
      }
 
7186
    }
 
7187
    if (unlikely(kw_args > 0)) {
 
7188
      if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "visit_Node") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 394; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 
7189
    }
 
7190
    __pyx_v_self = values[0];
 
7191
    __pyx_v_node = values[1];
 
7192
  } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
 
7193
    goto __pyx_L5_argtuple_error;
 
7194
  } else {
 
7195
    __pyx_v_self = PyTuple_GET_ITEM(__pyx_args, 0);
 
7196
    __pyx_v_node = PyTuple_GET_ITEM(__pyx_args, 1);
 
7197
  }
 
7198
  goto __pyx_L4_argument_unpacking_done;
 
7199
  __pyx_L5_argtuple_error:;
 
7200
  __Pyx_RaiseArgtupleInvalid("visit_Node", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 394; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 
7201
  __pyx_L3_error:;
 
7202
  __Pyx_AddTraceback("Cython.Compiler.Visitor.PrintTree.visit_Node");
 
7203
  __Pyx_RefNannyFinishContext();
 
7204
  return NULL;
 
7205
  __pyx_L4_argument_unpacking_done:;
 
7206
  __pyx_v_name = Py_None; __Pyx_INCREF(Py_None);
 
7207
  __pyx_v_parent = Py_None; __Pyx_INCREF(Py_None);
 
7208
  __pyx_v_attr = Py_None; __Pyx_INCREF(Py_None);
 
7209
  __pyx_v_idx = Py_None; __Pyx_INCREF(Py_None);
 
7210
 
 
7211
  /* "Cython/Compiler/Visitor.py":395
 
7212
 *     # the hierarchy.
 
7213
 *     def visit_Node(self, node):
 
7214
 *         if len(self.access_path) == 0:             # <<<<<<<<<<<<<<
 
7215
 *             name = "(root)"
 
7216
 *         else:
 
7217
 */
 
7218
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__access_path); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 395; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
7219
  __Pyx_GOTREF(__pyx_t_1);
 
7220
  __pyx_t_2 = PyObject_Length(__pyx_t_1); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 395; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
7221
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
7222
  __pyx_t_3 = (__pyx_t_2 == 0);
 
7223
  if (__pyx_t_3) {
 
7224
 
 
7225
    /* "Cython/Compiler/Visitor.py":396
 
7226
 *     def visit_Node(self, node):
 
7227
 *         if len(self.access_path) == 0:
 
7228
 *             name = "(root)"             # <<<<<<<<<<<<<<
 
7229
 *         else:
 
7230
 *             parent, attr, idx = self.access_path[-1]
 
7231
 */
 
7232
    __Pyx_INCREF(((PyObject *)__pyx_kp_s_22));
 
7233
    __Pyx_DECREF(__pyx_v_name);
 
7234
    __pyx_v_name = ((PyObject *)__pyx_kp_s_22);
 
7235
    goto __pyx_L6;
 
7236
  }
 
7237
  /*else*/ {
 
7238
 
 
7239
    /* "Cython/Compiler/Visitor.py":398
 
7240
 *             name = "(root)"
 
7241
 *         else:
 
7242
 *             parent, attr, idx = self.access_path[-1]             # <<<<<<<<<<<<<<
 
7243
 *             if idx is not None:
 
7244
 *                 name = "%s[%d]" % (attr, idx)
 
7245
 */
 
7246
    __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__access_path); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 398; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
7247
    __Pyx_GOTREF(__pyx_t_1);
 
7248
    __pyx_t_4 = __Pyx_GetItemInt(__pyx_t_1, -1, sizeof(long), PyInt_FromLong); if (!__pyx_t_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 398; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
7249
    __Pyx_GOTREF(__pyx_t_4);
 
7250
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
7251
    if (PyTuple_CheckExact(__pyx_t_4) && likely(PyTuple_GET_SIZE(__pyx_t_4) == 3)) {
 
7252
      PyObject* tuple = __pyx_t_4;
 
7253
      __pyx_t_1 = PyTuple_GET_ITEM(tuple, 0); __Pyx_INCREF(__pyx_t_1);
 
7254
      __pyx_t_5 = PyTuple_GET_ITEM(tuple, 1); __Pyx_INCREF(__pyx_t_5);
 
7255
      __pyx_t_6 = PyTuple_GET_ITEM(tuple, 2); __Pyx_INCREF(__pyx_t_6);
 
7256
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 
7257
      __Pyx_DECREF(__pyx_v_parent);
 
7258
      __pyx_v_parent = __pyx_t_1;
 
7259
      __pyx_t_1 = 0;
 
7260
      __Pyx_DECREF(__pyx_v_attr);
 
7261
      __pyx_v_attr = __pyx_t_5;
 
7262
      __pyx_t_5 = 0;
 
7263
      __Pyx_DECREF(__pyx_v_idx);
 
7264
      __pyx_v_idx = __pyx_t_6;
 
7265
      __pyx_t_6 = 0;
 
7266
    } else {
 
7267
      __pyx_t_7 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 398; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
7268
      __Pyx_GOTREF(__pyx_t_7);
 
7269
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 
7270
      __pyx_t_1 = __Pyx_UnpackItem(__pyx_t_7, 0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 398; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
7271
      __Pyx_GOTREF(__pyx_t_1);
 
7272
      __pyx_t_5 = __Pyx_UnpackItem(__pyx_t_7, 1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 398; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
7273
      __Pyx_GOTREF(__pyx_t_5);
 
7274
      __pyx_t_6 = __Pyx_UnpackItem(__pyx_t_7, 2); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 398; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
7275
      __Pyx_GOTREF(__pyx_t_6);
 
7276
      if (__Pyx_EndUnpack(__pyx_t_7, 3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 398; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
7277
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
 
7278
      __Pyx_DECREF(__pyx_v_parent);
 
7279
      __pyx_v_parent = __pyx_t_1;
 
7280
      __pyx_t_1 = 0;
 
7281
      __Pyx_DECREF(__pyx_v_attr);
 
7282
      __pyx_v_attr = __pyx_t_5;
 
7283
      __pyx_t_5 = 0;
 
7284
      __Pyx_DECREF(__pyx_v_idx);
 
7285
      __pyx_v_idx = __pyx_t_6;
 
7286
      __pyx_t_6 = 0;
 
7287
    }
 
7288
 
 
7289
    /* "Cython/Compiler/Visitor.py":399
 
7290
 *         else:
 
7291
 *             parent, attr, idx = self.access_path[-1]
 
7292
 *             if idx is not None:             # <<<<<<<<<<<<<<
 
7293
 *                 name = "%s[%d]" % (attr, idx)
 
7294
 *             else:
 
7295
 */
 
7296
    __pyx_t_3 = (__pyx_v_idx != Py_None);
 
7297
    if (__pyx_t_3) {
 
7298
 
 
7299
      /* "Cython/Compiler/Visitor.py":400
 
7300
 *             parent, attr, idx = self.access_path[-1]
 
7301
 *             if idx is not None:
 
7302
 *                 name = "%s[%d]" % (attr, idx)             # <<<<<<<<<<<<<<
 
7303
 *             else:
 
7304
 *                 name = attr
 
7305
 */
 
7306
      __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 400; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
7307
      __Pyx_GOTREF(((PyObject *)__pyx_t_4));
 
7308
      __Pyx_INCREF(__pyx_v_attr);
 
7309
      PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_attr);
 
7310
      __Pyx_GIVEREF(__pyx_v_attr);
 
7311
      __Pyx_INCREF(__pyx_v_idx);
 
7312
      PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_v_idx);
 
7313
      __Pyx_GIVEREF(__pyx_v_idx);
 
7314
      __pyx_t_6 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_23), ((PyObject *)__pyx_t_4)); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 400; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
7315
      __Pyx_GOTREF(((PyObject *)__pyx_t_6));
 
7316
      __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
 
7317
      __Pyx_DECREF(__pyx_v_name);
 
7318
      __pyx_v_name = ((PyObject *)__pyx_t_6);
 
7319
      __pyx_t_6 = 0;
 
7320
      goto __pyx_L7;
 
7321
    }
 
7322
    /*else*/ {
 
7323
 
 
7324
      /* "Cython/Compiler/Visitor.py":402
 
7325
 *                 name = "%s[%d]" % (attr, idx)
 
7326
 *             else:
 
7327
 *                 name = attr             # <<<<<<<<<<<<<<
 
7328
 *         print("%s- %s: %s" % (self._indent, name, self.repr_of(node)))
 
7329
 *         self.indent()
 
7330
 */
 
7331
      __Pyx_INCREF(__pyx_v_attr);
 
7332
      __Pyx_DECREF(__pyx_v_name);
 
7333
      __pyx_v_name = __pyx_v_attr;
 
7334
    }
 
7335
    __pyx_L7:;
 
7336
  }
 
7337
  __pyx_L6:;
 
7338
 
 
7339
  /* "Cython/Compiler/Visitor.py":403
 
7340
 *             else:
 
7341
 *                 name = attr
 
7342
 *         print("%s- %s: %s" % (self._indent, name, self.repr_of(node)))             # <<<<<<<<<<<<<<
 
7343
 *         self.indent()
 
7344
 *         self.visitchildren(node)
 
7345
 */
 
7346
  __pyx_t_6 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s___indent); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 403; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
7347
  __Pyx_GOTREF(__pyx_t_6);
 
7348
  __pyx_t_4 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__repr_of); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 403; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
7349
  __Pyx_GOTREF(__pyx_t_4);
 
7350
  __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 403; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
7351
  __Pyx_GOTREF(((PyObject *)__pyx_t_5));
 
7352
  __Pyx_INCREF(__pyx_v_node);
 
7353
  PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_node);
 
7354
  __Pyx_GIVEREF(__pyx_v_node);
 
7355
  __pyx_t_1 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_t_5), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 403; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
7356
  __Pyx_GOTREF(__pyx_t_1);
 
7357
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 
7358
  __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
 
7359
  __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 403; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
7360
  __Pyx_GOTREF(((PyObject *)__pyx_t_5));
 
7361
  PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_6);
 
7362
  __Pyx_GIVEREF(__pyx_t_6);
 
7363
  __Pyx_INCREF(__pyx_v_name);
 
7364
  PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_v_name);
 
7365
  __Pyx_GIVEREF(__pyx_v_name);
 
7366
  PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_1);
 
7367
  __Pyx_GIVEREF(__pyx_t_1);
 
7368
  __pyx_t_6 = 0;
 
7369
  __pyx_t_1 = 0;
 
7370
  __pyx_t_1 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_24), ((PyObject *)__pyx_t_5)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 403; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
7371
  __Pyx_GOTREF(((PyObject *)__pyx_t_1));
 
7372
  __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
 
7373
  if (__Pyx_PrintOne(0, ((PyObject *)__pyx_t_1)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 403; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
7374
  __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
 
7375
 
 
7376
  /* "Cython/Compiler/Visitor.py":404
 
7377
 *                 name = attr
 
7378
 *         print("%s- %s: %s" % (self._indent, name, self.repr_of(node)))
 
7379
 *         self.indent()             # <<<<<<<<<<<<<<
 
7380
 *         self.visitchildren(node)
 
7381
 *         self.unindent()
 
7382
 */
 
7383
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__indent); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 404; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
7384
  __Pyx_GOTREF(__pyx_t_1);
 
7385
  __pyx_t_5 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 404; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
7386
  __Pyx_GOTREF(__pyx_t_5);
 
7387
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
7388
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
 
7389
 
 
7390
  /* "Cython/Compiler/Visitor.py":405
 
7391
 *         print("%s- %s: %s" % (self._indent, name, self.repr_of(node)))
 
7392
 *         self.indent()
 
7393
 *         self.visitchildren(node)             # <<<<<<<<<<<<<<
 
7394
 *         self.unindent()
 
7395
 *         return node
 
7396
 */
 
7397
  __pyx_t_5 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__visitchildren); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 405; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
7398
  __Pyx_GOTREF(__pyx_t_5);
 
7399
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 405; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
7400
  __Pyx_GOTREF(((PyObject *)__pyx_t_1));
 
7401
  __Pyx_INCREF(__pyx_v_node);
 
7402
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_node);
 
7403
  __Pyx_GIVEREF(__pyx_v_node);
 
7404
  __pyx_t_6 = PyObject_Call(__pyx_t_5, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 405; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
7405
  __Pyx_GOTREF(__pyx_t_6);
 
7406
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
 
7407
  __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
 
7408
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
 
7409
 
 
7410
  /* "Cython/Compiler/Visitor.py":406
 
7411
 *         self.indent()
 
7412
 *         self.visitchildren(node)
 
7413
 *         self.unindent()             # <<<<<<<<<<<<<<
 
7414
 *         return node
 
7415
 * 
 
7416
 */
 
7417
  __pyx_t_6 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__unindent); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 406; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
7418
  __Pyx_GOTREF(__pyx_t_6);
 
7419
  __pyx_t_1 = PyObject_Call(__pyx_t_6, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 406; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
7420
  __Pyx_GOTREF(__pyx_t_1);
 
7421
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
 
7422
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
7423
 
 
7424
  /* "Cython/Compiler/Visitor.py":407
 
7425
 *         self.visitchildren(node)
 
7426
 *         self.unindent()
 
7427
 *         return node             # <<<<<<<<<<<<<<
 
7428
 * 
 
7429
 *     def repr_of(self, node):
 
7430
 */
 
7431
  __Pyx_XDECREF(__pyx_r);
 
7432
  __Pyx_INCREF(__pyx_v_node);
 
7433
  __pyx_r = __pyx_v_node;
 
7434
  goto __pyx_L0;
 
7435
 
 
7436
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
 
7437
  goto __pyx_L0;
 
7438
  __pyx_L1_error:;
 
7439
  __Pyx_XDECREF(__pyx_t_1);
 
7440
  __Pyx_XDECREF(__pyx_t_4);
 
7441
  __Pyx_XDECREF(__pyx_t_5);
 
7442
  __Pyx_XDECREF(__pyx_t_6);
 
7443
  __Pyx_XDECREF(__pyx_t_7);
 
7444
  __Pyx_AddTraceback("Cython.Compiler.Visitor.PrintTree.visit_Node");
 
7445
  __pyx_r = NULL;
 
7446
  __pyx_L0:;
 
7447
  __Pyx_DECREF(__pyx_v_name);
 
7448
  __Pyx_DECREF(__pyx_v_parent);
 
7449
  __Pyx_DECREF(__pyx_v_attr);
 
7450
  __Pyx_DECREF(__pyx_v_idx);
 
7451
  __Pyx_XGIVEREF(__pyx_r);
 
7452
  __Pyx_RefNannyFinishContext();
 
7453
  return __pyx_r;
 
7454
}
 
7455
 
 
7456
/* "Cython/Compiler/Visitor.py":409
 
7457
 *         return node
 
7458
 * 
 
7459
 *     def repr_of(self, node):             # <<<<<<<<<<<<<<
 
7460
 *         if node is None:
 
7461
 *             return "(none)"
 
7462
 */
 
7463
 
 
7464
static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_9PrintTree_5repr_of(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
 
7465
static PyMethodDef __pyx_mdef_6Cython_8Compiler_7Visitor_9PrintTree_5repr_of = {__Pyx_NAMESTR("repr_of"), (PyCFunction)__pyx_pf_6Cython_8Compiler_7Visitor_9PrintTree_5repr_of, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
 
7466
static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_9PrintTree_5repr_of(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
 
7467
  PyObject *__pyx_v_self = 0;
 
7468
  PyObject *__pyx_v_node = 0;
 
7469
  PyObject *__pyx_v_result;
 
7470
  PyObject *__pyx_v_t;
 
7471
  PyObject *__pyx_v_pos;
 
7472
  PyObject *__pyx_v_path;
 
7473
  PyObject *__pyx_r = NULL;
 
7474
  int __pyx_t_1;
 
7475
  PyObject *__pyx_t_2 = NULL;
 
7476
  PyObject *__pyx_t_3 = NULL;
 
7477
  PyObject *__pyx_t_4 = NULL;
 
7478
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__node,0};
 
7479
  __Pyx_RefNannySetupContext("repr_of");
 
7480
  __pyx_self = __pyx_self;
 
7481
  if (unlikely(__pyx_kwds)) {
 
7482
    Py_ssize_t kw_args = PyDict_Size(__pyx_kwds);
 
7483
    PyObject* values[2] = {0,0};
 
7484
    switch (PyTuple_GET_SIZE(__pyx_args)) {
 
7485
      case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
 
7486
      case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
 
7487
      case  0: break;
 
7488
      default: goto __pyx_L5_argtuple_error;
 
7489
    }
 
7490
    switch (PyTuple_GET_SIZE(__pyx_args)) {
 
7491
      case  0:
 
7492
      values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
 
7493
      if (likely(values[0])) kw_args--;
 
7494
      else goto __pyx_L5_argtuple_error;
 
7495
      case  1:
 
7496
      values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__node);
 
7497
      if (likely(values[1])) kw_args--;
 
7498
      else {
 
7499
        __Pyx_RaiseArgtupleInvalid("repr_of", 1, 2, 2, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 409; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 
7500
      }
 
7501
    }
 
7502
    if (unlikely(kw_args > 0)) {
 
7503
      if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "repr_of") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 409; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 
7504
    }
 
7505
    __pyx_v_self = values[0];
 
7506
    __pyx_v_node = values[1];
 
7507
  } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
 
7508
    goto __pyx_L5_argtuple_error;
 
7509
  } else {
 
7510
    __pyx_v_self = PyTuple_GET_ITEM(__pyx_args, 0);
 
7511
    __pyx_v_node = PyTuple_GET_ITEM(__pyx_args, 1);
 
7512
  }
 
7513
  goto __pyx_L4_argument_unpacking_done;
 
7514
  __pyx_L5_argtuple_error:;
 
7515
  __Pyx_RaiseArgtupleInvalid("repr_of", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 409; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 
7516
  __pyx_L3_error:;
 
7517
  __Pyx_AddTraceback("Cython.Compiler.Visitor.PrintTree.repr_of");
 
7518
  __Pyx_RefNannyFinishContext();
 
7519
  return NULL;
 
7520
  __pyx_L4_argument_unpacking_done:;
 
7521
  __pyx_v_result = Py_None; __Pyx_INCREF(Py_None);
 
7522
  __pyx_v_t = Py_None; __Pyx_INCREF(Py_None);
 
7523
  __pyx_v_pos = Py_None; __Pyx_INCREF(Py_None);
 
7524
  __pyx_v_path = Py_None; __Pyx_INCREF(Py_None);
 
7525
 
 
7526
  /* "Cython/Compiler/Visitor.py":410
 
7527
 * 
 
7528
 *     def repr_of(self, node):
 
7529
 *         if node is None:             # <<<<<<<<<<<<<<
 
7530
 *             return "(none)"
 
7531
 *         else:
 
7532
 */
 
7533
  __pyx_t_1 = (__pyx_v_node == Py_None);
 
7534
  if (__pyx_t_1) {
 
7535
 
 
7536
    /* "Cython/Compiler/Visitor.py":411
 
7537
 *     def repr_of(self, node):
 
7538
 *         if node is None:
 
7539
 *             return "(none)"             # <<<<<<<<<<<<<<
 
7540
 *         else:
 
7541
 *             result = node.__class__.__name__
 
7542
 */
 
7543
    __Pyx_XDECREF(__pyx_r);
 
7544
    __Pyx_INCREF(((PyObject *)__pyx_kp_s_25));
 
7545
    __pyx_r = ((PyObject *)__pyx_kp_s_25);
 
7546
    goto __pyx_L0;
 
7547
    goto __pyx_L6;
 
7548
  }
 
7549
  /*else*/ {
 
7550
 
 
7551
    /* "Cython/Compiler/Visitor.py":413
 
7552
 *             return "(none)"
 
7553
 *         else:
 
7554
 *             result = node.__class__.__name__             # <<<<<<<<<<<<<<
 
7555
 *             if isinstance(node, ExprNodes.NameNode):
 
7556
 *                 result += "(type=%s, name=\"%s\")" % (repr(node.type), node.name)
 
7557
 */
 
7558
    __pyx_t_2 = PyObject_GetAttr(__pyx_v_node, __pyx_n_s____class__); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 413; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
7559
    __Pyx_GOTREF(__pyx_t_2);
 
7560
    __pyx_t_3 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s____name__); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 413; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
7561
    __Pyx_GOTREF(__pyx_t_3);
 
7562
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 
7563
    __Pyx_DECREF(__pyx_v_result);
 
7564
    __pyx_v_result = __pyx_t_3;
 
7565
    __pyx_t_3 = 0;
 
7566
 
 
7567
    /* "Cython/Compiler/Visitor.py":414
 
7568
 *         else:
 
7569
 *             result = node.__class__.__name__
 
7570
 *             if isinstance(node, ExprNodes.NameNode):             # <<<<<<<<<<<<<<
 
7571
 *                 result += "(type=%s, name=\"%s\")" % (repr(node.type), node.name)
 
7572
 *             elif isinstance(node, Nodes.DefNode):
 
7573
 */
 
7574
    __pyx_t_3 = __pyx_v_node;
 
7575
    __Pyx_INCREF(__pyx_t_3);
 
7576
    __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s__ExprNodes); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 414; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
7577
    __Pyx_GOTREF(__pyx_t_2);
 
7578
    __pyx_t_4 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s__NameNode); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 414; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
7579
    __Pyx_GOTREF(__pyx_t_4);
 
7580
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 
7581
    __pyx_t_1 = PyObject_IsInstance(__pyx_t_3, __pyx_t_4); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 414; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
7582
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 
7583
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 
7584
    if (__pyx_t_1) {
 
7585
 
 
7586
      /* "Cython/Compiler/Visitor.py":415
 
7587
 *             result = node.__class__.__name__
 
7588
 *             if isinstance(node, ExprNodes.NameNode):
 
7589
 *                 result += "(type=%s, name=\"%s\")" % (repr(node.type), node.name)             # <<<<<<<<<<<<<<
 
7590
 *             elif isinstance(node, Nodes.DefNode):
 
7591
 *                 result += "(name=\"%s\")" % node.name
 
7592
 */
 
7593
      __pyx_t_4 = PyObject_GetAttr(__pyx_v_node, __pyx_n_s__type); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 415; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
7594
      __Pyx_GOTREF(__pyx_t_4);
 
7595
      __pyx_t_3 = PyObject_Repr(__pyx_t_4); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 415; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
7596
      __Pyx_GOTREF(__pyx_t_3);
 
7597
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 
7598
      __pyx_t_4 = PyObject_GetAttr(__pyx_v_node, __pyx_n_s__name); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 415; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
7599
      __Pyx_GOTREF(__pyx_t_4);
 
7600
      __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 415; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
7601
      __Pyx_GOTREF(((PyObject *)__pyx_t_2));
 
7602
      PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_3);
 
7603
      __Pyx_GIVEREF(__pyx_t_3);
 
7604
      PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_4);
 
7605
      __Pyx_GIVEREF(__pyx_t_4);
 
7606
      __pyx_t_3 = 0;
 
7607
      __pyx_t_4 = 0;
 
7608
      __pyx_t_4 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_26), ((PyObject *)__pyx_t_2)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 415; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
7609
      __Pyx_GOTREF(((PyObject *)__pyx_t_4));
 
7610
      __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
 
7611
      __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_result, ((PyObject *)__pyx_t_4)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 415; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
7612
      __Pyx_GOTREF(__pyx_t_2);
 
7613
      __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
 
7614
      __Pyx_DECREF(__pyx_v_result);
 
7615
      __pyx_v_result = __pyx_t_2;
 
7616
      __pyx_t_2 = 0;
 
7617
      goto __pyx_L7;
 
7618
    }
 
7619
 
 
7620
    /* "Cython/Compiler/Visitor.py":416
 
7621
 *             if isinstance(node, ExprNodes.NameNode):
 
7622
 *                 result += "(type=%s, name=\"%s\")" % (repr(node.type), node.name)
 
7623
 *             elif isinstance(node, Nodes.DefNode):             # <<<<<<<<<<<<<<
 
7624
 *                 result += "(name=\"%s\")" % node.name
 
7625
 *             elif isinstance(node, ExprNodes.ExprNode):
 
7626
 */
 
7627
    __pyx_t_2 = __pyx_v_node;
 
7628
    __Pyx_INCREF(__pyx_t_2);
 
7629
    __pyx_t_4 = __Pyx_GetName(__pyx_m, __pyx_n_s__Nodes); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 416; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
7630
    __Pyx_GOTREF(__pyx_t_4);
 
7631
    __pyx_t_3 = PyObject_GetAttr(__pyx_t_4, __pyx_n_s__DefNode); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 416; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
7632
    __Pyx_GOTREF(__pyx_t_3);
 
7633
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 
7634
    __pyx_t_1 = PyObject_IsInstance(__pyx_t_2, __pyx_t_3); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 416; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
7635
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 
7636
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 
7637
    if (__pyx_t_1) {
 
7638
 
 
7639
      /* "Cython/Compiler/Visitor.py":417
 
7640
 *                 result += "(type=%s, name=\"%s\")" % (repr(node.type), node.name)
 
7641
 *             elif isinstance(node, Nodes.DefNode):
 
7642
 *                 result += "(name=\"%s\")" % node.name             # <<<<<<<<<<<<<<
 
7643
 *             elif isinstance(node, ExprNodes.ExprNode):
 
7644
 *                 t = node.type
 
7645
 */
 
7646
      __pyx_t_3 = PyObject_GetAttr(__pyx_v_node, __pyx_n_s__name); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 417; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
7647
      __Pyx_GOTREF(__pyx_t_3);
 
7648
      __pyx_t_2 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_27), __pyx_t_3); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 417; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
7649
      __Pyx_GOTREF(((PyObject *)__pyx_t_2));
 
7650
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 
7651
      __pyx_t_3 = PyNumber_InPlaceAdd(__pyx_v_result, ((PyObject *)__pyx_t_2)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 417; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
7652
      __Pyx_GOTREF(__pyx_t_3);
 
7653
      __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
 
7654
      __Pyx_DECREF(__pyx_v_result);
 
7655
      __pyx_v_result = __pyx_t_3;
 
7656
      __pyx_t_3 = 0;
 
7657
      goto __pyx_L7;
 
7658
    }
 
7659
 
 
7660
    /* "Cython/Compiler/Visitor.py":418
 
7661
 *             elif isinstance(node, Nodes.DefNode):
 
7662
 *                 result += "(name=\"%s\")" % node.name
 
7663
 *             elif isinstance(node, ExprNodes.ExprNode):             # <<<<<<<<<<<<<<
 
7664
 *                 t = node.type
 
7665
 *                 result += "(type=%s)" % repr(t)
 
7666
 */
 
7667
    __pyx_t_3 = __pyx_v_node;
 
7668
    __Pyx_INCREF(__pyx_t_3);
 
7669
    __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s__ExprNodes); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 418; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
7670
    __Pyx_GOTREF(__pyx_t_2);
 
7671
    __pyx_t_4 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s__ExprNode); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 418; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
7672
    __Pyx_GOTREF(__pyx_t_4);
 
7673
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 
7674
    __pyx_t_1 = PyObject_IsInstance(__pyx_t_3, __pyx_t_4); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 418; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
7675
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 
7676
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 
7677
    if (__pyx_t_1) {
 
7678
 
 
7679
      /* "Cython/Compiler/Visitor.py":419
 
7680
 *                 result += "(name=\"%s\")" % node.name
 
7681
 *             elif isinstance(node, ExprNodes.ExprNode):
 
7682
 *                 t = node.type             # <<<<<<<<<<<<<<
 
7683
 *                 result += "(type=%s)" % repr(t)
 
7684
 *             elif node.pos:
 
7685
 */
 
7686
      __pyx_t_4 = PyObject_GetAttr(__pyx_v_node, __pyx_n_s__type); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 419; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
7687
      __Pyx_GOTREF(__pyx_t_4);
 
7688
      __Pyx_DECREF(__pyx_v_t);
 
7689
      __pyx_v_t = __pyx_t_4;
 
7690
      __pyx_t_4 = 0;
 
7691
 
 
7692
      /* "Cython/Compiler/Visitor.py":420
 
7693
 *             elif isinstance(node, ExprNodes.ExprNode):
 
7694
 *                 t = node.type
 
7695
 *                 result += "(type=%s)" % repr(t)             # <<<<<<<<<<<<<<
 
7696
 *             elif node.pos:
 
7697
 *                 pos = node.pos
 
7698
 */
 
7699
      __pyx_t_4 = PyObject_Repr(__pyx_v_t); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 420; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
7700
      __Pyx_GOTREF(__pyx_t_4);
 
7701
      __pyx_t_3 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_28), __pyx_t_4); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 420; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
7702
      __Pyx_GOTREF(((PyObject *)__pyx_t_3));
 
7703
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 
7704
      __pyx_t_4 = PyNumber_InPlaceAdd(__pyx_v_result, ((PyObject *)__pyx_t_3)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 420; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
7705
      __Pyx_GOTREF(__pyx_t_4);
 
7706
      __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
 
7707
      __Pyx_DECREF(__pyx_v_result);
 
7708
      __pyx_v_result = __pyx_t_4;
 
7709
      __pyx_t_4 = 0;
 
7710
      goto __pyx_L7;
 
7711
    }
 
7712
 
 
7713
    /* "Cython/Compiler/Visitor.py":421
 
7714
 *                 t = node.type
 
7715
 *                 result += "(type=%s)" % repr(t)
 
7716
 *             elif node.pos:             # <<<<<<<<<<<<<<
 
7717
 *                 pos = node.pos
 
7718
 *                 path = pos[0].get_description()
 
7719
 */
 
7720
    __pyx_t_4 = PyObject_GetAttr(__pyx_v_node, __pyx_n_s__pos); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 421; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
7721
    __Pyx_GOTREF(__pyx_t_4);
 
7722
    __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 421; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
7723
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 
7724
    if (__pyx_t_1) {
 
7725
 
 
7726
      /* "Cython/Compiler/Visitor.py":422
 
7727
 *                 result += "(type=%s)" % repr(t)
 
7728
 *             elif node.pos:
 
7729
 *                 pos = node.pos             # <<<<<<<<<<<<<<
 
7730
 *                 path = pos[0].get_description()
 
7731
 *                 if '/' in path:
 
7732
 */
 
7733
      __pyx_t_4 = PyObject_GetAttr(__pyx_v_node, __pyx_n_s__pos); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 422; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
7734
      __Pyx_GOTREF(__pyx_t_4);
 
7735
      __Pyx_DECREF(__pyx_v_pos);
 
7736
      __pyx_v_pos = __pyx_t_4;
 
7737
      __pyx_t_4 = 0;
 
7738
 
 
7739
      /* "Cython/Compiler/Visitor.py":423
 
7740
 *             elif node.pos:
 
7741
 *                 pos = node.pos
 
7742
 *                 path = pos[0].get_description()             # <<<<<<<<<<<<<<
 
7743
 *                 if '/' in path:
 
7744
 *                     path = path.split('/')[-1]
 
7745
 */
 
7746
      __pyx_t_4 = __Pyx_GetItemInt(__pyx_v_pos, 0, sizeof(long), PyInt_FromLong); if (!__pyx_t_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 423; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
7747
      __Pyx_GOTREF(__pyx_t_4);
 
7748
      __pyx_t_3 = PyObject_GetAttr(__pyx_t_4, __pyx_n_s__get_description); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 423; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
7749
      __Pyx_GOTREF(__pyx_t_3);
 
7750
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 
7751
      __pyx_t_4 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 423; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
7752
      __Pyx_GOTREF(__pyx_t_4);
 
7753
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 
7754
      __Pyx_DECREF(__pyx_v_path);
 
7755
      __pyx_v_path = __pyx_t_4;
 
7756
      __pyx_t_4 = 0;
 
7757
 
 
7758
      /* "Cython/Compiler/Visitor.py":424
 
7759
 *                 pos = node.pos
 
7760
 *                 path = pos[0].get_description()
 
7761
 *                 if '/' in path:             # <<<<<<<<<<<<<<
 
7762
 *                     path = path.split('/')[-1]
 
7763
 *                 if '\\' in path:
 
7764
 */
 
7765
      __pyx_t_1 = ((PySequence_Contains(__pyx_v_path, ((PyObject *)__pyx_kp_s_29)))); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 424; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
7766
      if (__pyx_t_1) {
 
7767
 
 
7768
        /* "Cython/Compiler/Visitor.py":425
 
7769
 *                 path = pos[0].get_description()
 
7770
 *                 if '/' in path:
 
7771
 *                     path = path.split('/')[-1]             # <<<<<<<<<<<<<<
 
7772
 *                 if '\\' in path:
 
7773
 *                     path = path.split('\\')[-1]
 
7774
 */
 
7775
        __pyx_t_4 = PyObject_GetAttr(__pyx_v_path, __pyx_n_s__split); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 425; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
7776
        __Pyx_GOTREF(__pyx_t_4);
 
7777
        __pyx_t_3 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_k_tuple_30), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 425; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
7778
        __Pyx_GOTREF(__pyx_t_3);
 
7779
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 
7780
        __pyx_t_4 = __Pyx_GetItemInt(__pyx_t_3, -1, sizeof(long), PyInt_FromLong); if (!__pyx_t_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 425; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
7781
        __Pyx_GOTREF(__pyx_t_4);
 
7782
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 
7783
        __Pyx_DECREF(__pyx_v_path);
 
7784
        __pyx_v_path = __pyx_t_4;
 
7785
        __pyx_t_4 = 0;
 
7786
        goto __pyx_L8;
 
7787
      }
 
7788
      __pyx_L8:;
 
7789
 
 
7790
      /* "Cython/Compiler/Visitor.py":426
 
7791
 *                 if '/' in path:
 
7792
 *                     path = path.split('/')[-1]
 
7793
 *                 if '\\' in path:             # <<<<<<<<<<<<<<
 
7794
 *                     path = path.split('\\')[-1]
 
7795
 *                 result += "(pos=(%s:%s:%s))" % (path, pos[1], pos[2])
 
7796
 */
 
7797
      __pyx_t_1 = ((PySequence_Contains(__pyx_v_path, ((PyObject *)__pyx_kp_s_31)))); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 426; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
7798
      if (__pyx_t_1) {
 
7799
 
 
7800
        /* "Cython/Compiler/Visitor.py":427
 
7801
 *                     path = path.split('/')[-1]
 
7802
 *                 if '\\' in path:
 
7803
 *                     path = path.split('\\')[-1]             # <<<<<<<<<<<<<<
 
7804
 *                 result += "(pos=(%s:%s:%s))" % (path, pos[1], pos[2])
 
7805
 * 
 
7806
 */
 
7807
        __pyx_t_4 = PyObject_GetAttr(__pyx_v_path, __pyx_n_s__split); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 427; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
7808
        __Pyx_GOTREF(__pyx_t_4);
 
7809
        __pyx_t_3 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_k_tuple_32), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 427; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
7810
        __Pyx_GOTREF(__pyx_t_3);
 
7811
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 
7812
        __pyx_t_4 = __Pyx_GetItemInt(__pyx_t_3, -1, sizeof(long), PyInt_FromLong); if (!__pyx_t_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 427; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
7813
        __Pyx_GOTREF(__pyx_t_4);
 
7814
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 
7815
        __Pyx_DECREF(__pyx_v_path);
 
7816
        __pyx_v_path = __pyx_t_4;
 
7817
        __pyx_t_4 = 0;
 
7818
        goto __pyx_L9;
 
7819
      }
 
7820
      __pyx_L9:;
 
7821
 
 
7822
      /* "Cython/Compiler/Visitor.py":428
 
7823
 *                 if '\\' in path:
 
7824
 *                     path = path.split('\\')[-1]
 
7825
 *                 result += "(pos=(%s:%s:%s))" % (path, pos[1], pos[2])             # <<<<<<<<<<<<<<
 
7826
 * 
 
7827
 *             return result
 
7828
 */
 
7829
      __pyx_t_4 = __Pyx_GetItemInt(__pyx_v_pos, 1, sizeof(long), PyInt_FromLong); if (!__pyx_t_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 428; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
7830
      __Pyx_GOTREF(__pyx_t_4);
 
7831
      __pyx_t_3 = __Pyx_GetItemInt(__pyx_v_pos, 2, sizeof(long), PyInt_FromLong); if (!__pyx_t_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 428; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
7832
      __Pyx_GOTREF(__pyx_t_3);
 
7833
      __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 428; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
7834
      __Pyx_GOTREF(((PyObject *)__pyx_t_2));
 
7835
      __Pyx_INCREF(__pyx_v_path);
 
7836
      PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_path);
 
7837
      __Pyx_GIVEREF(__pyx_v_path);
 
7838
      PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_4);
 
7839
      __Pyx_GIVEREF(__pyx_t_4);
 
7840
      PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_t_3);
 
7841
      __Pyx_GIVEREF(__pyx_t_3);
 
7842
      __pyx_t_4 = 0;
 
7843
      __pyx_t_3 = 0;
 
7844
      __pyx_t_3 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_33), ((PyObject *)__pyx_t_2)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 428; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
7845
      __Pyx_GOTREF(((PyObject *)__pyx_t_3));
 
7846
      __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
 
7847
      __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_result, ((PyObject *)__pyx_t_3)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 428; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
7848
      __Pyx_GOTREF(__pyx_t_2);
 
7849
      __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
 
7850
      __Pyx_DECREF(__pyx_v_result);
 
7851
      __pyx_v_result = __pyx_t_2;
 
7852
      __pyx_t_2 = 0;
 
7853
      goto __pyx_L7;
 
7854
    }
 
7855
    __pyx_L7:;
 
7856
 
 
7857
    /* "Cython/Compiler/Visitor.py":430
 
7858
 *                 result += "(pos=(%s:%s:%s))" % (path, pos[1], pos[2])
 
7859
 * 
 
7860
 *             return result             # <<<<<<<<<<<<<<
 
7861
 * 
 
7862
 * if __name__ == "__main__":
 
7863
 */
 
7864
    __Pyx_XDECREF(__pyx_r);
 
7865
    __Pyx_INCREF(__pyx_v_result);
 
7866
    __pyx_r = __pyx_v_result;
 
7867
    goto __pyx_L0;
 
7868
  }
 
7869
  __pyx_L6:;
 
7870
 
 
7871
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
 
7872
  goto __pyx_L0;
 
7873
  __pyx_L1_error:;
 
7874
  __Pyx_XDECREF(__pyx_t_2);
 
7875
  __Pyx_XDECREF(__pyx_t_3);
 
7876
  __Pyx_XDECREF(__pyx_t_4);
 
7877
  __Pyx_AddTraceback("Cython.Compiler.Visitor.PrintTree.repr_of");
 
7878
  __pyx_r = NULL;
 
7879
  __pyx_L0:;
 
7880
  __Pyx_DECREF(__pyx_v_result);
 
7881
  __Pyx_DECREF(__pyx_v_t);
 
7882
  __Pyx_DECREF(__pyx_v_pos);
 
7883
  __Pyx_DECREF(__pyx_v_path);
 
7884
  __Pyx_XGIVEREF(__pyx_r);
 
7885
  __Pyx_RefNannyFinishContext();
 
7886
  return __pyx_r;
 
7887
}
 
7888
static struct __pyx_vtabstruct_6Cython_8Compiler_7Visitor_TreeVisitor __pyx_vtable_6Cython_8Compiler_7Visitor_TreeVisitor;
 
7889
 
 
7890
static PyObject *__pyx_tp_new_6Cython_8Compiler_7Visitor_TreeVisitor(PyTypeObject *t, PyObject *a, PyObject *k) {
 
7891
  struct __pyx_obj_6Cython_8Compiler_7Visitor_TreeVisitor *p;
 
7892
  PyObject *o = (*t->tp_alloc)(t, 0);
 
7893
  if (!o) return 0;
 
7894
  p = ((struct __pyx_obj_6Cython_8Compiler_7Visitor_TreeVisitor *)o);
 
7895
  p->__pyx_vtab = __pyx_vtabptr_6Cython_8Compiler_7Visitor_TreeVisitor;
 
7896
  p->access_path = ((PyObject*)Py_None); Py_INCREF(Py_None);
 
7897
  p->dispatch_table = ((PyObject*)Py_None); Py_INCREF(Py_None);
 
7898
  return o;
 
7899
}
 
7900
 
 
7901
static void __pyx_tp_dealloc_6Cython_8Compiler_7Visitor_TreeVisitor(PyObject *o) {
 
7902
  struct __pyx_obj_6Cython_8Compiler_7Visitor_TreeVisitor *p = (struct __pyx_obj_6Cython_8Compiler_7Visitor_TreeVisitor *)o;
 
7903
  Py_XDECREF(((PyObject *)p->access_path));
 
7904
  Py_XDECREF(((PyObject *)p->dispatch_table));
 
7905
  (*Py_TYPE(o)->tp_free)(o);
 
7906
}
 
7907
 
 
7908
static int __pyx_tp_traverse_6Cython_8Compiler_7Visitor_TreeVisitor(PyObject *o, visitproc v, void *a) {
 
7909
  int e;
 
7910
  struct __pyx_obj_6Cython_8Compiler_7Visitor_TreeVisitor *p = (struct __pyx_obj_6Cython_8Compiler_7Visitor_TreeVisitor *)o;
 
7911
  if (p->access_path) {
 
7912
    e = (*v)(p->access_path, a); if (e) return e;
 
7913
  }
 
7914
  if (p->dispatch_table) {
 
7915
    e = (*v)(p->dispatch_table, a); if (e) return e;
 
7916
  }
 
7917
  return 0;
 
7918
}
 
7919
 
 
7920
static int __pyx_tp_clear_6Cython_8Compiler_7Visitor_TreeVisitor(PyObject *o) {
 
7921
  struct __pyx_obj_6Cython_8Compiler_7Visitor_TreeVisitor *p = (struct __pyx_obj_6Cython_8Compiler_7Visitor_TreeVisitor *)o;
 
7922
  PyObject* tmp;
 
7923
  tmp = ((PyObject*)p->access_path);
 
7924
  p->access_path = ((PyObject*)Py_None); Py_INCREF(Py_None);
 
7925
  Py_XDECREF(tmp);
 
7926
  tmp = ((PyObject*)p->dispatch_table);
 
7927
  p->dispatch_table = ((PyObject*)Py_None); Py_INCREF(Py_None);
 
7928
  Py_XDECREF(tmp);
 
7929
  return 0;
 
7930
}
 
7931
 
 
7932
static PyObject *__pyx_getprop_6Cython_8Compiler_7Visitor_11TreeVisitor_access_path(PyObject *o, void *x) {
 
7933
  return __pyx_pf_6Cython_8Compiler_7Visitor_11TreeVisitor_11access_path___get__(o);
 
7934
}
 
7935
 
 
7936
static int __pyx_setprop_6Cython_8Compiler_7Visitor_11TreeVisitor_access_path(PyObject *o, PyObject *v, void *x) {
 
7937
  if (v) {
 
7938
    return __pyx_pf_6Cython_8Compiler_7Visitor_11TreeVisitor_11access_path_1__set__(o, v);
 
7939
  }
 
7940
  else {
 
7941
    return __pyx_pf_6Cython_8Compiler_7Visitor_11TreeVisitor_11access_path_2__del__(o);
 
7942
  }
 
7943
}
 
7944
 
 
7945
static PyMethodDef __pyx_methods_6Cython_8Compiler_7Visitor_TreeVisitor[] = {
 
7946
  {__Pyx_NAMESTR("dump_node"), (PyCFunction)__pyx_pf_6Cython_8Compiler_7Visitor_11TreeVisitor_1dump_node, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)},
 
7947
  {__Pyx_NAMESTR("_find_node_path"), (PyCFunction)__pyx_pf_6Cython_8Compiler_7Visitor_11TreeVisitor_2_find_node_path, METH_O, __Pyx_DOCSTR(0)},
 
7948
  {__Pyx_NAMESTR("_raise_compiler_error"), (PyCFunction)__pyx_pf_6Cython_8Compiler_7Visitor_11TreeVisitor_3_raise_compiler_error, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)},
 
7949
  {__Pyx_NAMESTR("visit"), (PyCFunction)__pyx_pf_6Cython_8Compiler_7Visitor_11TreeVisitor_4visit, METH_O, __Pyx_DOCSTR(0)},
 
7950
  {__Pyx_NAMESTR("visitchildren"), (PyCFunction)__pyx_pf_6Cython_8Compiler_7Visitor_11TreeVisitor_5visitchildren, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)},
 
7951
  {0, 0, 0, 0}
 
7952
};
 
7953
 
 
7954
static struct PyGetSetDef __pyx_getsets_6Cython_8Compiler_7Visitor_TreeVisitor[] = {
 
7955
  {(char *)"access_path", __pyx_getprop_6Cython_8Compiler_7Visitor_11TreeVisitor_access_path, __pyx_setprop_6Cython_8Compiler_7Visitor_11TreeVisitor_access_path, 0, 0},
 
7956
  {0, 0, 0, 0, 0}
 
7957
};
 
7958
 
 
7959
static PyNumberMethods __pyx_tp_as_number_TreeVisitor = {
 
7960
  0, /*nb_add*/
 
7961
  0, /*nb_subtract*/
 
7962
  0, /*nb_multiply*/
 
7963
  #if PY_MAJOR_VERSION < 3
 
7964
  0, /*nb_divide*/
 
7965
  #endif
 
7966
  0, /*nb_remainder*/
 
7967
  0, /*nb_divmod*/
 
7968
  0, /*nb_power*/
 
7969
  0, /*nb_negative*/
 
7970
  0, /*nb_positive*/
 
7971
  0, /*nb_absolute*/
 
7972
  0, /*nb_nonzero*/
 
7973
  0, /*nb_invert*/
 
7974
  0, /*nb_lshift*/
 
7975
  0, /*nb_rshift*/
 
7976
  0, /*nb_and*/
 
7977
  0, /*nb_xor*/
 
7978
  0, /*nb_or*/
 
7979
  #if PY_MAJOR_VERSION < 3
 
7980
  0, /*nb_coerce*/
 
7981
  #endif
 
7982
  0, /*nb_int*/
 
7983
  #if PY_MAJOR_VERSION < 3
 
7984
  0, /*nb_long*/
 
7985
  #else
 
7986
  0, /*reserved*/
 
7987
  #endif
 
7988
  0, /*nb_float*/
 
7989
  #if PY_MAJOR_VERSION < 3
 
7990
  0, /*nb_oct*/
 
7991
  #endif
 
7992
  #if PY_MAJOR_VERSION < 3
 
7993
  0, /*nb_hex*/
 
7994
  #endif
 
7995
  0, /*nb_inplace_add*/
 
7996
  0, /*nb_inplace_subtract*/
 
7997
  0, /*nb_inplace_multiply*/
 
7998
  #if PY_MAJOR_VERSION < 3
 
7999
  0, /*nb_inplace_divide*/
 
8000
  #endif
 
8001
  0, /*nb_inplace_remainder*/
 
8002
  0, /*nb_inplace_power*/
 
8003
  0, /*nb_inplace_lshift*/
 
8004
  0, /*nb_inplace_rshift*/
 
8005
  0, /*nb_inplace_and*/
 
8006
  0, /*nb_inplace_xor*/
 
8007
  0, /*nb_inplace_or*/
 
8008
  0, /*nb_floor_divide*/
 
8009
  0, /*nb_true_divide*/
 
8010
  0, /*nb_inplace_floor_divide*/
 
8011
  0, /*nb_inplace_true_divide*/
 
8012
  #if PY_VERSION_HEX >= 0x02050000
 
8013
  0, /*nb_index*/
 
8014
  #endif
 
8015
};
 
8016
 
 
8017
static PySequenceMethods __pyx_tp_as_sequence_TreeVisitor = {
 
8018
  0, /*sq_length*/
 
8019
  0, /*sq_concat*/
 
8020
  0, /*sq_repeat*/
 
8021
  0, /*sq_item*/
 
8022
  0, /*sq_slice*/
 
8023
  0, /*sq_ass_item*/
 
8024
  0, /*sq_ass_slice*/
 
8025
  0, /*sq_contains*/
 
8026
  0, /*sq_inplace_concat*/
 
8027
  0, /*sq_inplace_repeat*/
 
8028
};
 
8029
 
 
8030
static PyMappingMethods __pyx_tp_as_mapping_TreeVisitor = {
 
8031
  0, /*mp_length*/
 
8032
  0, /*mp_subscript*/
 
8033
  0, /*mp_ass_subscript*/
 
8034
};
 
8035
 
 
8036
static PyBufferProcs __pyx_tp_as_buffer_TreeVisitor = {
 
8037
  #if PY_MAJOR_VERSION < 3
 
8038
  0, /*bf_getreadbuffer*/
 
8039
  #endif
 
8040
  #if PY_MAJOR_VERSION < 3
 
8041
  0, /*bf_getwritebuffer*/
 
8042
  #endif
 
8043
  #if PY_MAJOR_VERSION < 3
 
8044
  0, /*bf_getsegcount*/
 
8045
  #endif
 
8046
  #if PY_MAJOR_VERSION < 3
 
8047
  0, /*bf_getcharbuffer*/
 
8048
  #endif
 
8049
  #if PY_VERSION_HEX >= 0x02060000
 
8050
  0, /*bf_getbuffer*/
 
8051
  #endif
 
8052
  #if PY_VERSION_HEX >= 0x02060000
 
8053
  0, /*bf_releasebuffer*/
 
8054
  #endif
 
8055
};
 
8056
 
 
8057
static PyTypeObject __pyx_type_6Cython_8Compiler_7Visitor_TreeVisitor = {
 
8058
  PyVarObject_HEAD_INIT(0, 0)
 
8059
  __Pyx_NAMESTR("Cython.Compiler.Visitor.TreeVisitor"), /*tp_name*/
 
8060
  sizeof(struct __pyx_obj_6Cython_8Compiler_7Visitor_TreeVisitor), /*tp_basicsize*/
 
8061
  0, /*tp_itemsize*/
 
8062
  __pyx_tp_dealloc_6Cython_8Compiler_7Visitor_TreeVisitor, /*tp_dealloc*/
 
8063
  0, /*tp_print*/
 
8064
  0, /*tp_getattr*/
 
8065
  0, /*tp_setattr*/
 
8066
  #if PY_MAJOR_VERSION < 3
 
8067
  0, /*tp_compare*/
 
8068
  #else
 
8069
  0, /*reserved*/
 
8070
  #endif
 
8071
  0, /*tp_repr*/
 
8072
  &__pyx_tp_as_number_TreeVisitor, /*tp_as_number*/
 
8073
  &__pyx_tp_as_sequence_TreeVisitor, /*tp_as_sequence*/
 
8074
  &__pyx_tp_as_mapping_TreeVisitor, /*tp_as_mapping*/
 
8075
  0, /*tp_hash*/
 
8076
  0, /*tp_call*/
 
8077
  0, /*tp_str*/
 
8078
  0, /*tp_getattro*/
 
8079
  0, /*tp_setattro*/
 
8080
  &__pyx_tp_as_buffer_TreeVisitor, /*tp_as_buffer*/
 
8081
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
 
8082
  __Pyx_DOCSTR("\n    Base class for writing visitors for a Cython tree, contains utilities for\n    recursing such trees using visitors. Each node is\n    expected to have a child_attrs iterable containing the names of attributes\n    containing child nodes or lists of child nodes. Lists are not considered\n    part of the tree structure (i.e. contained nodes are considered direct\n    children of the parent node).\n\n    visit_children visits each of the children of a given node (see the visit_children\n    documentation). When recursing the tree using visit_children, an attribute\n    access_path is maintained which gives information about the current location\n    in the tree as a stack of tuples: (parent_node, attrname, index), representing\n    the node, attribute and optional list index that was taken in each step in the path to\n    the current node.\n\n    Example:\n\n    >>> class SampleNode(object):\n    ...     child_attrs = [\"head\", \"body\"]\n    ...     def __init__(self, value, head=None, body=None):\n    ...         self.value = value\n    ...         self.head = head\n    ...         self.body = body\n    ...     def __repr__(self): return \"SampleNode(%s)\" % self.value\n    ...\n    >>> tree = SampleNode(0, SampleNode(1), [SampleNode(2), SampleNode(3)])\n    >>> class MyVisitor(TreeVisitor):\n    ...     def visit_SampleNode(self, node):\n    ...         print \"in\", node.value, self.access_path\n    ...         self.visitchildren(node)\n    ...         print \"out\", node.value\n    ...\n    >>> MyVisitor().visit(tree)\n    in 0 []\n    in 1 [(SampleNode(0), 'head', None)]\n    out 1\n    in 2 [(SampleNode(0), 'body', 0)]\n    out 2\n    in 3 [(SampleNode(0), 'body', 1)]\n    out 3\n    out 0\n    "), /*tp_doc*/
 
8083
  __pyx_tp_traverse_6Cython_8Compiler_7Visitor_TreeVisitor, /*tp_traverse*/
 
8084
  __pyx_tp_clear_6Cython_8Compiler_7Visitor_TreeVisitor, /*tp_clear*/
 
8085
  0, /*tp_richcompare*/
 
8086
  0, /*tp_weaklistoffset*/
 
8087
  0, /*tp_iter*/
 
8088
  0, /*tp_iternext*/
 
8089
  __pyx_methods_6Cython_8Compiler_7Visitor_TreeVisitor, /*tp_methods*/
 
8090
  0, /*tp_members*/
 
8091
  __pyx_getsets_6Cython_8Compiler_7Visitor_TreeVisitor, /*tp_getset*/
 
8092
  0, /*tp_base*/
 
8093
  0, /*tp_dict*/
 
8094
  0, /*tp_descr_get*/
 
8095
  0, /*tp_descr_set*/
 
8096
  0, /*tp_dictoffset*/
 
8097
  __pyx_pf_6Cython_8Compiler_7Visitor_11TreeVisitor___init__, /*tp_init*/
 
8098
  0, /*tp_alloc*/
 
8099
  __pyx_tp_new_6Cython_8Compiler_7Visitor_TreeVisitor, /*tp_new*/
 
8100
  0, /*tp_free*/
 
8101
  0, /*tp_is_gc*/
 
8102
  0, /*tp_bases*/
 
8103
  0, /*tp_mro*/
 
8104
  0, /*tp_cache*/
 
8105
  0, /*tp_subclasses*/
 
8106
  0, /*tp_weaklist*/
 
8107
  0, /*tp_del*/
 
8108
  #if PY_VERSION_HEX >= 0x02060000
 
8109
  0, /*tp_version_tag*/
 
8110
  #endif
 
8111
};
 
8112
static struct __pyx_vtabstruct_6Cython_8Compiler_7Visitor_VisitorTransform __pyx_vtable_6Cython_8Compiler_7Visitor_VisitorTransform;
 
8113
 
 
8114
static PyObject *__pyx_tp_new_6Cython_8Compiler_7Visitor_VisitorTransform(PyTypeObject *t, PyObject *a, PyObject *k) {
 
8115
  struct __pyx_obj_6Cython_8Compiler_7Visitor_VisitorTransform *p;
 
8116
  PyObject *o = __pyx_tp_new_6Cython_8Compiler_7Visitor_TreeVisitor(t, a, k);
 
8117
  if (!o) return 0;
 
8118
  p = ((struct __pyx_obj_6Cython_8Compiler_7Visitor_VisitorTransform *)o);
 
8119
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_6Cython_8Compiler_7Visitor_TreeVisitor*)__pyx_vtabptr_6Cython_8Compiler_7Visitor_VisitorTransform;
 
8120
  return o;
 
8121
}
 
8122
 
 
8123
static PyMethodDef __pyx_methods_6Cython_8Compiler_7Visitor_VisitorTransform[] = {
 
8124
  {__Pyx_NAMESTR("visitchildren"), (PyCFunction)__pyx_pf_6Cython_8Compiler_7Visitor_16VisitorTransform_visitchildren, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)},
 
8125
  {__Pyx_NAMESTR("recurse_to_children"), (PyCFunction)__pyx_pf_6Cython_8Compiler_7Visitor_16VisitorTransform_1recurse_to_children, METH_O, __Pyx_DOCSTR(0)},
 
8126
  {0, 0, 0, 0}
 
8127
};
 
8128
 
 
8129
static PyNumberMethods __pyx_tp_as_number_VisitorTransform = {
 
8130
  0, /*nb_add*/
 
8131
  0, /*nb_subtract*/
 
8132
  0, /*nb_multiply*/
 
8133
  #if PY_MAJOR_VERSION < 3
 
8134
  0, /*nb_divide*/
 
8135
  #endif
 
8136
  0, /*nb_remainder*/
 
8137
  0, /*nb_divmod*/
 
8138
  0, /*nb_power*/
 
8139
  0, /*nb_negative*/
 
8140
  0, /*nb_positive*/
 
8141
  0, /*nb_absolute*/
 
8142
  0, /*nb_nonzero*/
 
8143
  0, /*nb_invert*/
 
8144
  0, /*nb_lshift*/
 
8145
  0, /*nb_rshift*/
 
8146
  0, /*nb_and*/
 
8147
  0, /*nb_xor*/
 
8148
  0, /*nb_or*/
 
8149
  #if PY_MAJOR_VERSION < 3
 
8150
  0, /*nb_coerce*/
 
8151
  #endif
 
8152
  0, /*nb_int*/
 
8153
  #if PY_MAJOR_VERSION < 3
 
8154
  0, /*nb_long*/
 
8155
  #else
 
8156
  0, /*reserved*/
 
8157
  #endif
 
8158
  0, /*nb_float*/
 
8159
  #if PY_MAJOR_VERSION < 3
 
8160
  0, /*nb_oct*/
 
8161
  #endif
 
8162
  #if PY_MAJOR_VERSION < 3
 
8163
  0, /*nb_hex*/
 
8164
  #endif
 
8165
  0, /*nb_inplace_add*/
 
8166
  0, /*nb_inplace_subtract*/
 
8167
  0, /*nb_inplace_multiply*/
 
8168
  #if PY_MAJOR_VERSION < 3
 
8169
  0, /*nb_inplace_divide*/
 
8170
  #endif
 
8171
  0, /*nb_inplace_remainder*/
 
8172
  0, /*nb_inplace_power*/
 
8173
  0, /*nb_inplace_lshift*/
 
8174
  0, /*nb_inplace_rshift*/
 
8175
  0, /*nb_inplace_and*/
 
8176
  0, /*nb_inplace_xor*/
 
8177
  0, /*nb_inplace_or*/
 
8178
  0, /*nb_floor_divide*/
 
8179
  0, /*nb_true_divide*/
 
8180
  0, /*nb_inplace_floor_divide*/
 
8181
  0, /*nb_inplace_true_divide*/
 
8182
  #if PY_VERSION_HEX >= 0x02050000
 
8183
  0, /*nb_index*/
 
8184
  #endif
 
8185
};
 
8186
 
 
8187
static PySequenceMethods __pyx_tp_as_sequence_VisitorTransform = {
 
8188
  0, /*sq_length*/
 
8189
  0, /*sq_concat*/
 
8190
  0, /*sq_repeat*/
 
8191
  0, /*sq_item*/
 
8192
  0, /*sq_slice*/
 
8193
  0, /*sq_ass_item*/
 
8194
  0, /*sq_ass_slice*/
 
8195
  0, /*sq_contains*/
 
8196
  0, /*sq_inplace_concat*/
 
8197
  0, /*sq_inplace_repeat*/
 
8198
};
 
8199
 
 
8200
static PyMappingMethods __pyx_tp_as_mapping_VisitorTransform = {
 
8201
  0, /*mp_length*/
 
8202
  0, /*mp_subscript*/
 
8203
  0, /*mp_ass_subscript*/
 
8204
};
 
8205
 
 
8206
static PyBufferProcs __pyx_tp_as_buffer_VisitorTransform = {
 
8207
  #if PY_MAJOR_VERSION < 3
 
8208
  0, /*bf_getreadbuffer*/
 
8209
  #endif
 
8210
  #if PY_MAJOR_VERSION < 3
 
8211
  0, /*bf_getwritebuffer*/
 
8212
  #endif
 
8213
  #if PY_MAJOR_VERSION < 3
 
8214
  0, /*bf_getsegcount*/
 
8215
  #endif
 
8216
  #if PY_MAJOR_VERSION < 3
 
8217
  0, /*bf_getcharbuffer*/
 
8218
  #endif
 
8219
  #if PY_VERSION_HEX >= 0x02060000
 
8220
  0, /*bf_getbuffer*/
 
8221
  #endif
 
8222
  #if PY_VERSION_HEX >= 0x02060000
 
8223
  0, /*bf_releasebuffer*/
 
8224
  #endif
 
8225
};
 
8226
 
 
8227
static PyTypeObject __pyx_type_6Cython_8Compiler_7Visitor_VisitorTransform = {
 
8228
  PyVarObject_HEAD_INIT(0, 0)
 
8229
  __Pyx_NAMESTR("Cython.Compiler.Visitor.VisitorTransform"), /*tp_name*/
 
8230
  sizeof(struct __pyx_obj_6Cython_8Compiler_7Visitor_VisitorTransform), /*tp_basicsize*/
 
8231
  0, /*tp_itemsize*/
 
8232
  __pyx_tp_dealloc_6Cython_8Compiler_7Visitor_TreeVisitor, /*tp_dealloc*/
 
8233
  0, /*tp_print*/
 
8234
  0, /*tp_getattr*/
 
8235
  0, /*tp_setattr*/
 
8236
  #if PY_MAJOR_VERSION < 3
 
8237
  0, /*tp_compare*/
 
8238
  #else
 
8239
  0, /*reserved*/
 
8240
  #endif
 
8241
  0, /*tp_repr*/
 
8242
  &__pyx_tp_as_number_VisitorTransform, /*tp_as_number*/
 
8243
  &__pyx_tp_as_sequence_VisitorTransform, /*tp_as_sequence*/
 
8244
  &__pyx_tp_as_mapping_VisitorTransform, /*tp_as_mapping*/
 
8245
  0, /*tp_hash*/
 
8246
  __pyx_pf_6Cython_8Compiler_7Visitor_16VisitorTransform_2__call__, /*tp_call*/
 
8247
  0, /*tp_str*/
 
8248
  0, /*tp_getattro*/
 
8249
  0, /*tp_setattro*/
 
8250
  &__pyx_tp_as_buffer_VisitorTransform, /*tp_as_buffer*/
 
8251
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
 
8252
  __Pyx_DOCSTR("\n    A tree transform is a base class for visitors that wants to do stream\n    processing of the structure (rather than attributes etc.) of a tree.\n\n    It implements __call__ to simply visit the argument node.\n\n    It requires the visitor methods to return the nodes which should take\n    the place of the visited node in the result tree (which can be the same\n    or one or more replacement). Specifically, if the return value from\n    a visitor method is:\n\n    - [] or None; the visited node will be removed (set to None if an attribute and\n    removed if in a list)\n    - A single node; the visited node will be replaced by the returned node.\n    - A list of nodes; the visited nodes will be replaced by all the nodes in the\n    list. This will only work if the node was already a member of a list; if it\n    was not, an exception will be raised. (Typically you want to ensure that you\n    are within a StatListNode or similar before doing this.)\n    "), /*tp_doc*/
 
8253
  __pyx_tp_traverse_6Cython_8Compiler_7Visitor_TreeVisitor, /*tp_traverse*/
 
8254
  __pyx_tp_clear_6Cython_8Compiler_7Visitor_TreeVisitor, /*tp_clear*/
 
8255
  0, /*tp_richcompare*/
 
8256
  0, /*tp_weaklistoffset*/
 
8257
  0, /*tp_iter*/
 
8258
  0, /*tp_iternext*/
 
8259
  __pyx_methods_6Cython_8Compiler_7Visitor_VisitorTransform, /*tp_methods*/
 
8260
  0, /*tp_members*/
 
8261
  0, /*tp_getset*/
 
8262
  0, /*tp_base*/
 
8263
  0, /*tp_dict*/
 
8264
  0, /*tp_descr_get*/
 
8265
  0, /*tp_descr_set*/
 
8266
  0, /*tp_dictoffset*/
 
8267
  0, /*tp_init*/
 
8268
  0, /*tp_alloc*/
 
8269
  __pyx_tp_new_6Cython_8Compiler_7Visitor_VisitorTransform, /*tp_new*/
 
8270
  0, /*tp_free*/
 
8271
  0, /*tp_is_gc*/
 
8272
  0, /*tp_bases*/
 
8273
  0, /*tp_mro*/
 
8274
  0, /*tp_cache*/
 
8275
  0, /*tp_subclasses*/
 
8276
  0, /*tp_weaklist*/
 
8277
  0, /*tp_del*/
 
8278
  #if PY_VERSION_HEX >= 0x02060000
 
8279
  0, /*tp_version_tag*/
 
8280
  #endif
 
8281
};
 
8282
static struct __pyx_vtabstruct_6Cython_8Compiler_7Visitor_CythonTransform __pyx_vtable_6Cython_8Compiler_7Visitor_CythonTransform;
 
8283
 
 
8284
static PyObject *__pyx_tp_new_6Cython_8Compiler_7Visitor_CythonTransform(PyTypeObject *t, PyObject *a, PyObject *k) {
 
8285
  struct __pyx_obj_6Cython_8Compiler_7Visitor_CythonTransform *p;
 
8286
  PyObject *o = __pyx_tp_new_6Cython_8Compiler_7Visitor_TreeVisitor(t, a, k);
 
8287
  if (!o) return 0;
 
8288
  p = ((struct __pyx_obj_6Cython_8Compiler_7Visitor_CythonTransform *)o);
 
8289
  p->__pyx_base.__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_6Cython_8Compiler_7Visitor_TreeVisitor*)__pyx_vtabptr_6Cython_8Compiler_7Visitor_CythonTransform;
 
8290
  p->context = Py_None; Py_INCREF(Py_None);
 
8291
  p->current_directives = Py_None; Py_INCREF(Py_None);
 
8292
  return o;
 
8293
}
 
8294
 
 
8295
static void __pyx_tp_dealloc_6Cython_8Compiler_7Visitor_CythonTransform(PyObject *o) {
 
8296
  struct __pyx_obj_6Cython_8Compiler_7Visitor_CythonTransform *p = (struct __pyx_obj_6Cython_8Compiler_7Visitor_CythonTransform *)o;
 
8297
  Py_XDECREF(p->context);
 
8298
  Py_XDECREF(p->current_directives);
 
8299
  __pyx_tp_dealloc_6Cython_8Compiler_7Visitor_TreeVisitor(o);
 
8300
}
 
8301
 
 
8302
static int __pyx_tp_traverse_6Cython_8Compiler_7Visitor_CythonTransform(PyObject *o, visitproc v, void *a) {
 
8303
  int e;
 
8304
  struct __pyx_obj_6Cython_8Compiler_7Visitor_CythonTransform *p = (struct __pyx_obj_6Cython_8Compiler_7Visitor_CythonTransform *)o;
 
8305
  e = __pyx_tp_traverse_6Cython_8Compiler_7Visitor_TreeVisitor(o, v, a); if (e) return e;
 
8306
  if (p->context) {
 
8307
    e = (*v)(p->context, a); if (e) return e;
 
8308
  }
 
8309
  if (p->current_directives) {
 
8310
    e = (*v)(p->current_directives, a); if (e) return e;
 
8311
  }
 
8312
  return 0;
 
8313
}
 
8314
 
 
8315
static int __pyx_tp_clear_6Cython_8Compiler_7Visitor_CythonTransform(PyObject *o) {
 
8316
  struct __pyx_obj_6Cython_8Compiler_7Visitor_CythonTransform *p = (struct __pyx_obj_6Cython_8Compiler_7Visitor_CythonTransform *)o;
 
8317
  PyObject* tmp;
 
8318
  __pyx_tp_clear_6Cython_8Compiler_7Visitor_TreeVisitor(o);
 
8319
  tmp = ((PyObject*)p->context);
 
8320
  p->context = Py_None; Py_INCREF(Py_None);
 
8321
  Py_XDECREF(tmp);
 
8322
  tmp = ((PyObject*)p->current_directives);
 
8323
  p->current_directives = Py_None; Py_INCREF(Py_None);
 
8324
  Py_XDECREF(tmp);
 
8325
  return 0;
 
8326
}
 
8327
 
 
8328
static PyObject *__pyx_getprop_6Cython_8Compiler_7Visitor_15CythonTransform_context(PyObject *o, void *x) {
 
8329
  return __pyx_pf_6Cython_8Compiler_7Visitor_15CythonTransform_7context___get__(o);
 
8330
}
 
8331
 
 
8332
static int __pyx_setprop_6Cython_8Compiler_7Visitor_15CythonTransform_context(PyObject *o, PyObject *v, void *x) {
 
8333
  if (v) {
 
8334
    return __pyx_pf_6Cython_8Compiler_7Visitor_15CythonTransform_7context_1__set__(o, v);
 
8335
  }
 
8336
  else {
 
8337
    return __pyx_pf_6Cython_8Compiler_7Visitor_15CythonTransform_7context_2__del__(o);
 
8338
  }
 
8339
}
 
8340
 
 
8341
static PyObject *__pyx_getprop_6Cython_8Compiler_7Visitor_15CythonTransform_current_directives(PyObject *o, void *x) {
 
8342
  return __pyx_pf_6Cython_8Compiler_7Visitor_15CythonTransform_18current_directives___get__(o);
 
8343
}
 
8344
 
 
8345
static int __pyx_setprop_6Cython_8Compiler_7Visitor_15CythonTransform_current_directives(PyObject *o, PyObject *v, void *x) {
 
8346
  if (v) {
 
8347
    return __pyx_pf_6Cython_8Compiler_7Visitor_15CythonTransform_18current_directives_1__set__(o, v);
 
8348
  }
 
8349
  else {
 
8350
    return __pyx_pf_6Cython_8Compiler_7Visitor_15CythonTransform_18current_directives_2__del__(o);
 
8351
  }
 
8352
}
 
8353
 
 
8354
static PyMethodDef __pyx_methods_6Cython_8Compiler_7Visitor_CythonTransform[] = {
 
8355
  {__Pyx_NAMESTR("visit_CompilerDirectivesNode"), (PyCFunction)__pyx_pf_6Cython_8Compiler_7Visitor_15CythonTransform_2visit_CompilerDirectivesNode, METH_O, __Pyx_DOCSTR(0)},
 
8356
  {__Pyx_NAMESTR("visit_Node"), (PyCFunction)__pyx_pf_6Cython_8Compiler_7Visitor_15CythonTransform_3visit_Node, METH_O, __Pyx_DOCSTR(0)},
 
8357
  {0, 0, 0, 0}
 
8358
};
 
8359
 
 
8360
static struct PyGetSetDef __pyx_getsets_6Cython_8Compiler_7Visitor_CythonTransform[] = {
 
8361
  {(char *)"context", __pyx_getprop_6Cython_8Compiler_7Visitor_15CythonTransform_context, __pyx_setprop_6Cython_8Compiler_7Visitor_15CythonTransform_context, 0, 0},
 
8362
  {(char *)"current_directives", __pyx_getprop_6Cython_8Compiler_7Visitor_15CythonTransform_current_directives, __pyx_setprop_6Cython_8Compiler_7Visitor_15CythonTransform_current_directives, 0, 0},
 
8363
  {0, 0, 0, 0, 0}
 
8364
};
 
8365
 
 
8366
static PyNumberMethods __pyx_tp_as_number_CythonTransform = {
 
8367
  0, /*nb_add*/
 
8368
  0, /*nb_subtract*/
 
8369
  0, /*nb_multiply*/
 
8370
  #if PY_MAJOR_VERSION < 3
 
8371
  0, /*nb_divide*/
 
8372
  #endif
 
8373
  0, /*nb_remainder*/
 
8374
  0, /*nb_divmod*/
 
8375
  0, /*nb_power*/
 
8376
  0, /*nb_negative*/
 
8377
  0, /*nb_positive*/
 
8378
  0, /*nb_absolute*/
 
8379
  0, /*nb_nonzero*/
 
8380
  0, /*nb_invert*/
 
8381
  0, /*nb_lshift*/
 
8382
  0, /*nb_rshift*/
 
8383
  0, /*nb_and*/
 
8384
  0, /*nb_xor*/
 
8385
  0, /*nb_or*/
 
8386
  #if PY_MAJOR_VERSION < 3
 
8387
  0, /*nb_coerce*/
 
8388
  #endif
 
8389
  0, /*nb_int*/
 
8390
  #if PY_MAJOR_VERSION < 3
 
8391
  0, /*nb_long*/
 
8392
  #else
 
8393
  0, /*reserved*/
 
8394
  #endif
 
8395
  0, /*nb_float*/
 
8396
  #if PY_MAJOR_VERSION < 3
 
8397
  0, /*nb_oct*/
 
8398
  #endif
 
8399
  #if PY_MAJOR_VERSION < 3
 
8400
  0, /*nb_hex*/
 
8401
  #endif
 
8402
  0, /*nb_inplace_add*/
 
8403
  0, /*nb_inplace_subtract*/
 
8404
  0, /*nb_inplace_multiply*/
 
8405
  #if PY_MAJOR_VERSION < 3
 
8406
  0, /*nb_inplace_divide*/
 
8407
  #endif
 
8408
  0, /*nb_inplace_remainder*/
 
8409
  0, /*nb_inplace_power*/
 
8410
  0, /*nb_inplace_lshift*/
 
8411
  0, /*nb_inplace_rshift*/
 
8412
  0, /*nb_inplace_and*/
 
8413
  0, /*nb_inplace_xor*/
 
8414
  0, /*nb_inplace_or*/
 
8415
  0, /*nb_floor_divide*/
 
8416
  0, /*nb_true_divide*/
 
8417
  0, /*nb_inplace_floor_divide*/
 
8418
  0, /*nb_inplace_true_divide*/
 
8419
  #if PY_VERSION_HEX >= 0x02050000
 
8420
  0, /*nb_index*/
 
8421
  #endif
 
8422
};
 
8423
 
 
8424
static PySequenceMethods __pyx_tp_as_sequence_CythonTransform = {
 
8425
  0, /*sq_length*/
 
8426
  0, /*sq_concat*/
 
8427
  0, /*sq_repeat*/
 
8428
  0, /*sq_item*/
 
8429
  0, /*sq_slice*/
 
8430
  0, /*sq_ass_item*/
 
8431
  0, /*sq_ass_slice*/
 
8432
  0, /*sq_contains*/
 
8433
  0, /*sq_inplace_concat*/
 
8434
  0, /*sq_inplace_repeat*/
 
8435
};
 
8436
 
 
8437
static PyMappingMethods __pyx_tp_as_mapping_CythonTransform = {
 
8438
  0, /*mp_length*/
 
8439
  0, /*mp_subscript*/
 
8440
  0, /*mp_ass_subscript*/
 
8441
};
 
8442
 
 
8443
static PyBufferProcs __pyx_tp_as_buffer_CythonTransform = {
 
8444
  #if PY_MAJOR_VERSION < 3
 
8445
  0, /*bf_getreadbuffer*/
 
8446
  #endif
 
8447
  #if PY_MAJOR_VERSION < 3
 
8448
  0, /*bf_getwritebuffer*/
 
8449
  #endif
 
8450
  #if PY_MAJOR_VERSION < 3
 
8451
  0, /*bf_getsegcount*/
 
8452
  #endif
 
8453
  #if PY_MAJOR_VERSION < 3
 
8454
  0, /*bf_getcharbuffer*/
 
8455
  #endif
 
8456
  #if PY_VERSION_HEX >= 0x02060000
 
8457
  0, /*bf_getbuffer*/
 
8458
  #endif
 
8459
  #if PY_VERSION_HEX >= 0x02060000
 
8460
  0, /*bf_releasebuffer*/
 
8461
  #endif
 
8462
};
 
8463
 
 
8464
static PyTypeObject __pyx_type_6Cython_8Compiler_7Visitor_CythonTransform = {
 
8465
  PyVarObject_HEAD_INIT(0, 0)
 
8466
  __Pyx_NAMESTR("Cython.Compiler.Visitor.CythonTransform"), /*tp_name*/
 
8467
  sizeof(struct __pyx_obj_6Cython_8Compiler_7Visitor_CythonTransform), /*tp_basicsize*/
 
8468
  0, /*tp_itemsize*/
 
8469
  __pyx_tp_dealloc_6Cython_8Compiler_7Visitor_CythonTransform, /*tp_dealloc*/
 
8470
  0, /*tp_print*/
 
8471
  0, /*tp_getattr*/
 
8472
  0, /*tp_setattr*/
 
8473
  #if PY_MAJOR_VERSION < 3
 
8474
  0, /*tp_compare*/
 
8475
  #else
 
8476
  0, /*reserved*/
 
8477
  #endif
 
8478
  0, /*tp_repr*/
 
8479
  &__pyx_tp_as_number_CythonTransform, /*tp_as_number*/
 
8480
  &__pyx_tp_as_sequence_CythonTransform, /*tp_as_sequence*/
 
8481
  &__pyx_tp_as_mapping_CythonTransform, /*tp_as_mapping*/
 
8482
  0, /*tp_hash*/
 
8483
  __pyx_pf_6Cython_8Compiler_7Visitor_15CythonTransform_1__call__, /*tp_call*/
 
8484
  0, /*tp_str*/
 
8485
  0, /*tp_getattro*/
 
8486
  0, /*tp_setattro*/
 
8487
  &__pyx_tp_as_buffer_CythonTransform, /*tp_as_buffer*/
 
8488
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
 
8489
  __Pyx_DOCSTR("\n    Certain common conventions and utilities for Cython transforms.\n\n     - Sets up the context of the pipeline in self.context\n     - Tracks directives in effect in self.current_directives\n    "), /*tp_doc*/
 
8490
  __pyx_tp_traverse_6Cython_8Compiler_7Visitor_CythonTransform, /*tp_traverse*/
 
8491
  __pyx_tp_clear_6Cython_8Compiler_7Visitor_CythonTransform, /*tp_clear*/
 
8492
  0, /*tp_richcompare*/
 
8493
  0, /*tp_weaklistoffset*/
 
8494
  0, /*tp_iter*/
 
8495
  0, /*tp_iternext*/
 
8496
  __pyx_methods_6Cython_8Compiler_7Visitor_CythonTransform, /*tp_methods*/
 
8497
  0, /*tp_members*/
 
8498
  __pyx_getsets_6Cython_8Compiler_7Visitor_CythonTransform, /*tp_getset*/
 
8499
  0, /*tp_base*/
 
8500
  0, /*tp_dict*/
 
8501
  0, /*tp_descr_get*/
 
8502
  0, /*tp_descr_set*/
 
8503
  0, /*tp_dictoffset*/
 
8504
  __pyx_pf_6Cython_8Compiler_7Visitor_15CythonTransform___init__, /*tp_init*/
 
8505
  0, /*tp_alloc*/
 
8506
  __pyx_tp_new_6Cython_8Compiler_7Visitor_CythonTransform, /*tp_new*/
 
8507
  0, /*tp_free*/
 
8508
  0, /*tp_is_gc*/
 
8509
  0, /*tp_bases*/
 
8510
  0, /*tp_mro*/
 
8511
  0, /*tp_cache*/
 
8512
  0, /*tp_subclasses*/
 
8513
  0, /*tp_weaklist*/
 
8514
  0, /*tp_del*/
 
8515
  #if PY_VERSION_HEX >= 0x02060000
 
8516
  0, /*tp_version_tag*/
 
8517
  #endif
 
8518
};
 
8519
static struct __pyx_vtabstruct_6Cython_8Compiler_7Visitor_ScopeTrackingTransform __pyx_vtable_6Cython_8Compiler_7Visitor_ScopeTrackingTransform;
 
8520
 
 
8521
static PyObject *__pyx_tp_new_6Cython_8Compiler_7Visitor_ScopeTrackingTransform(PyTypeObject *t, PyObject *a, PyObject *k) {
 
8522
  struct __pyx_obj_6Cython_8Compiler_7Visitor_ScopeTrackingTransform *p;
 
8523
  PyObject *o = __pyx_tp_new_6Cython_8Compiler_7Visitor_CythonTransform(t, a, k);
 
8524
  if (!o) return 0;
 
8525
  p = ((struct __pyx_obj_6Cython_8Compiler_7Visitor_ScopeTrackingTransform *)o);
 
8526
  p->__pyx_base.__pyx_base.__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_6Cython_8Compiler_7Visitor_TreeVisitor*)__pyx_vtabptr_6Cython_8Compiler_7Visitor_ScopeTrackingTransform;
 
8527
  p->scope_type = Py_None; Py_INCREF(Py_None);
 
8528
  p->scope_node = Py_None; Py_INCREF(Py_None);
 
8529
  return o;
 
8530
}
 
8531
 
 
8532
static void __pyx_tp_dealloc_6Cython_8Compiler_7Visitor_ScopeTrackingTransform(PyObject *o) {
 
8533
  struct __pyx_obj_6Cython_8Compiler_7Visitor_ScopeTrackingTransform *p = (struct __pyx_obj_6Cython_8Compiler_7Visitor_ScopeTrackingTransform *)o;
 
8534
  Py_XDECREF(p->scope_type);
 
8535
  Py_XDECREF(p->scope_node);
 
8536
  __pyx_tp_dealloc_6Cython_8Compiler_7Visitor_CythonTransform(o);
 
8537
}
 
8538
 
 
8539
static int __pyx_tp_traverse_6Cython_8Compiler_7Visitor_ScopeTrackingTransform(PyObject *o, visitproc v, void *a) {
 
8540
  int e;
 
8541
  struct __pyx_obj_6Cython_8Compiler_7Visitor_ScopeTrackingTransform *p = (struct __pyx_obj_6Cython_8Compiler_7Visitor_ScopeTrackingTransform *)o;
 
8542
  e = __pyx_tp_traverse_6Cython_8Compiler_7Visitor_CythonTransform(o, v, a); if (e) return e;
 
8543
  if (p->scope_type) {
 
8544
    e = (*v)(p->scope_type, a); if (e) return e;
 
8545
  }
 
8546
  if (p->scope_node) {
 
8547
    e = (*v)(p->scope_node, a); if (e) return e;
 
8548
  }
 
8549
  return 0;
 
8550
}
 
8551
 
 
8552
static int __pyx_tp_clear_6Cython_8Compiler_7Visitor_ScopeTrackingTransform(PyObject *o) {
 
8553
  struct __pyx_obj_6Cython_8Compiler_7Visitor_ScopeTrackingTransform *p = (struct __pyx_obj_6Cython_8Compiler_7Visitor_ScopeTrackingTransform *)o;
 
8554
  PyObject* tmp;
 
8555
  __pyx_tp_clear_6Cython_8Compiler_7Visitor_CythonTransform(o);
 
8556
  tmp = ((PyObject*)p->scope_type);
 
8557
  p->scope_type = Py_None; Py_INCREF(Py_None);
 
8558
  Py_XDECREF(tmp);
 
8559
  tmp = ((PyObject*)p->scope_node);
 
8560
  p->scope_node = Py_None; Py_INCREF(Py_None);
 
8561
  Py_XDECREF(tmp);
 
8562
  return 0;
 
8563
}
 
8564
 
 
8565
static PyObject *__pyx_getprop_6Cython_8Compiler_7Visitor_22ScopeTrackingTransform_scope_type(PyObject *o, void *x) {
 
8566
  return __pyx_pf_6Cython_8Compiler_7Visitor_22ScopeTrackingTransform_10scope_type___get__(o);
 
8567
}
 
8568
 
 
8569
static int __pyx_setprop_6Cython_8Compiler_7Visitor_22ScopeTrackingTransform_scope_type(PyObject *o, PyObject *v, void *x) {
 
8570
  if (v) {
 
8571
    return __pyx_pf_6Cython_8Compiler_7Visitor_22ScopeTrackingTransform_10scope_type_1__set__(o, v);
 
8572
  }
 
8573
  else {
 
8574
    return __pyx_pf_6Cython_8Compiler_7Visitor_22ScopeTrackingTransform_10scope_type_2__del__(o);
 
8575
  }
 
8576
}
 
8577
 
 
8578
static PyObject *__pyx_getprop_6Cython_8Compiler_7Visitor_22ScopeTrackingTransform_scope_node(PyObject *o, void *x) {
 
8579
  return __pyx_pf_6Cython_8Compiler_7Visitor_22ScopeTrackingTransform_10scope_node___get__(o);
 
8580
}
 
8581
 
 
8582
static int __pyx_setprop_6Cython_8Compiler_7Visitor_22ScopeTrackingTransform_scope_node(PyObject *o, PyObject *v, void *x) {
 
8583
  if (v) {
 
8584
    return __pyx_pf_6Cython_8Compiler_7Visitor_22ScopeTrackingTransform_10scope_node_1__set__(o, v);
 
8585
  }
 
8586
  else {
 
8587
    return __pyx_pf_6Cython_8Compiler_7Visitor_22ScopeTrackingTransform_10scope_node_2__del__(o);
 
8588
  }
 
8589
}
 
8590
 
 
8591
static PyMethodDef __pyx_methods_6Cython_8Compiler_7Visitor_ScopeTrackingTransform[] = {
 
8592
  {__Pyx_NAMESTR("visit_ModuleNode"), (PyCFunction)__pyx_pf_6Cython_8Compiler_7Visitor_22ScopeTrackingTransform_visit_ModuleNode, METH_O, __Pyx_DOCSTR(0)},
 
8593
  {__Pyx_NAMESTR("visit_CClassDefNode"), (PyCFunction)__pyx_pf_6Cython_8Compiler_7Visitor_22ScopeTrackingTransform_1visit_CClassDefNode, METH_O, __Pyx_DOCSTR(0)},
 
8594
  {__Pyx_NAMESTR("visit_PyClassDefNode"), (PyCFunction)__pyx_pf_6Cython_8Compiler_7Visitor_22ScopeTrackingTransform_2visit_PyClassDefNode, METH_O, __Pyx_DOCSTR(0)},
 
8595
  {__Pyx_NAMESTR("visit_FuncDefNode"), (PyCFunction)__pyx_pf_6Cython_8Compiler_7Visitor_22ScopeTrackingTransform_3visit_FuncDefNode, METH_O, __Pyx_DOCSTR(0)},
 
8596
  {__Pyx_NAMESTR("visit_CStructOrUnionDefNode"), (PyCFunction)__pyx_pf_6Cython_8Compiler_7Visitor_22ScopeTrackingTransform_4visit_CStructOrUnionDefNode, METH_O, __Pyx_DOCSTR(0)},
 
8597
  {0, 0, 0, 0}
 
8598
};
 
8599
 
 
8600
static struct PyGetSetDef __pyx_getsets_6Cython_8Compiler_7Visitor_ScopeTrackingTransform[] = {
 
8601
  {(char *)"scope_type", __pyx_getprop_6Cython_8Compiler_7Visitor_22ScopeTrackingTransform_scope_type, __pyx_setprop_6Cython_8Compiler_7Visitor_22ScopeTrackingTransform_scope_type, 0, 0},
 
8602
  {(char *)"scope_node", __pyx_getprop_6Cython_8Compiler_7Visitor_22ScopeTrackingTransform_scope_node, __pyx_setprop_6Cython_8Compiler_7Visitor_22ScopeTrackingTransform_scope_node, 0, 0},
 
8603
  {0, 0, 0, 0, 0}
 
8604
};
 
8605
 
 
8606
static PyNumberMethods __pyx_tp_as_number_ScopeTrackingTransform = {
 
8607
  0, /*nb_add*/
 
8608
  0, /*nb_subtract*/
 
8609
  0, /*nb_multiply*/
 
8610
  #if PY_MAJOR_VERSION < 3
 
8611
  0, /*nb_divide*/
 
8612
  #endif
 
8613
  0, /*nb_remainder*/
 
8614
  0, /*nb_divmod*/
 
8615
  0, /*nb_power*/
 
8616
  0, /*nb_negative*/
 
8617
  0, /*nb_positive*/
 
8618
  0, /*nb_absolute*/
 
8619
  0, /*nb_nonzero*/
 
8620
  0, /*nb_invert*/
 
8621
  0, /*nb_lshift*/
 
8622
  0, /*nb_rshift*/
 
8623
  0, /*nb_and*/
 
8624
  0, /*nb_xor*/
 
8625
  0, /*nb_or*/
 
8626
  #if PY_MAJOR_VERSION < 3
 
8627
  0, /*nb_coerce*/
 
8628
  #endif
 
8629
  0, /*nb_int*/
 
8630
  #if PY_MAJOR_VERSION < 3
 
8631
  0, /*nb_long*/
 
8632
  #else
 
8633
  0, /*reserved*/
 
8634
  #endif
 
8635
  0, /*nb_float*/
 
8636
  #if PY_MAJOR_VERSION < 3
 
8637
  0, /*nb_oct*/
 
8638
  #endif
 
8639
  #if PY_MAJOR_VERSION < 3
 
8640
  0, /*nb_hex*/
 
8641
  #endif
 
8642
  0, /*nb_inplace_add*/
 
8643
  0, /*nb_inplace_subtract*/
 
8644
  0, /*nb_inplace_multiply*/
 
8645
  #if PY_MAJOR_VERSION < 3
 
8646
  0, /*nb_inplace_divide*/
 
8647
  #endif
 
8648
  0, /*nb_inplace_remainder*/
 
8649
  0, /*nb_inplace_power*/
 
8650
  0, /*nb_inplace_lshift*/
 
8651
  0, /*nb_inplace_rshift*/
 
8652
  0, /*nb_inplace_and*/
 
8653
  0, /*nb_inplace_xor*/
 
8654
  0, /*nb_inplace_or*/
 
8655
  0, /*nb_floor_divide*/
 
8656
  0, /*nb_true_divide*/
 
8657
  0, /*nb_inplace_floor_divide*/
 
8658
  0, /*nb_inplace_true_divide*/
 
8659
  #if PY_VERSION_HEX >= 0x02050000
 
8660
  0, /*nb_index*/
 
8661
  #endif
 
8662
};
 
8663
 
 
8664
static PySequenceMethods __pyx_tp_as_sequence_ScopeTrackingTransform = {
 
8665
  0, /*sq_length*/
 
8666
  0, /*sq_concat*/
 
8667
  0, /*sq_repeat*/
 
8668
  0, /*sq_item*/
 
8669
  0, /*sq_slice*/
 
8670
  0, /*sq_ass_item*/
 
8671
  0, /*sq_ass_slice*/
 
8672
  0, /*sq_contains*/
 
8673
  0, /*sq_inplace_concat*/
 
8674
  0, /*sq_inplace_repeat*/
 
8675
};
 
8676
 
 
8677
static PyMappingMethods __pyx_tp_as_mapping_ScopeTrackingTransform = {
 
8678
  0, /*mp_length*/
 
8679
  0, /*mp_subscript*/
 
8680
  0, /*mp_ass_subscript*/
 
8681
};
 
8682
 
 
8683
static PyBufferProcs __pyx_tp_as_buffer_ScopeTrackingTransform = {
 
8684
  #if PY_MAJOR_VERSION < 3
 
8685
  0, /*bf_getreadbuffer*/
 
8686
  #endif
 
8687
  #if PY_MAJOR_VERSION < 3
 
8688
  0, /*bf_getwritebuffer*/
 
8689
  #endif
 
8690
  #if PY_MAJOR_VERSION < 3
 
8691
  0, /*bf_getsegcount*/
 
8692
  #endif
 
8693
  #if PY_MAJOR_VERSION < 3
 
8694
  0, /*bf_getcharbuffer*/
 
8695
  #endif
 
8696
  #if PY_VERSION_HEX >= 0x02060000
 
8697
  0, /*bf_getbuffer*/
 
8698
  #endif
 
8699
  #if PY_VERSION_HEX >= 0x02060000
 
8700
  0, /*bf_releasebuffer*/
 
8701
  #endif
 
8702
};
 
8703
 
 
8704
static PyTypeObject __pyx_type_6Cython_8Compiler_7Visitor_ScopeTrackingTransform = {
 
8705
  PyVarObject_HEAD_INIT(0, 0)
 
8706
  __Pyx_NAMESTR("Cython.Compiler.Visitor.ScopeTrackingTransform"), /*tp_name*/
 
8707
  sizeof(struct __pyx_obj_6Cython_8Compiler_7Visitor_ScopeTrackingTransform), /*tp_basicsize*/
 
8708
  0, /*tp_itemsize*/
 
8709
  __pyx_tp_dealloc_6Cython_8Compiler_7Visitor_ScopeTrackingTransform, /*tp_dealloc*/
 
8710
  0, /*tp_print*/
 
8711
  0, /*tp_getattr*/
 
8712
  0, /*tp_setattr*/
 
8713
  #if PY_MAJOR_VERSION < 3
 
8714
  0, /*tp_compare*/
 
8715
  #else
 
8716
  0, /*reserved*/
 
8717
  #endif
 
8718
  0, /*tp_repr*/
 
8719
  &__pyx_tp_as_number_ScopeTrackingTransform, /*tp_as_number*/
 
8720
  &__pyx_tp_as_sequence_ScopeTrackingTransform, /*tp_as_sequence*/
 
8721
  &__pyx_tp_as_mapping_ScopeTrackingTransform, /*tp_as_mapping*/
 
8722
  0, /*tp_hash*/
 
8723
  0, /*tp_call*/
 
8724
  0, /*tp_str*/
 
8725
  0, /*tp_getattro*/
 
8726
  0, /*tp_setattro*/
 
8727
  &__pyx_tp_as_buffer_ScopeTrackingTransform, /*tp_as_buffer*/
 
8728
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
 
8729
  0, /*tp_doc*/
 
8730
  __pyx_tp_traverse_6Cython_8Compiler_7Visitor_ScopeTrackingTransform, /*tp_traverse*/
 
8731
  __pyx_tp_clear_6Cython_8Compiler_7Visitor_ScopeTrackingTransform, /*tp_clear*/
 
8732
  0, /*tp_richcompare*/
 
8733
  0, /*tp_weaklistoffset*/
 
8734
  0, /*tp_iter*/
 
8735
  0, /*tp_iternext*/
 
8736
  __pyx_methods_6Cython_8Compiler_7Visitor_ScopeTrackingTransform, /*tp_methods*/
 
8737
  0, /*tp_members*/
 
8738
  __pyx_getsets_6Cython_8Compiler_7Visitor_ScopeTrackingTransform, /*tp_getset*/
 
8739
  0, /*tp_base*/
 
8740
  0, /*tp_dict*/
 
8741
  0, /*tp_descr_get*/
 
8742
  0, /*tp_descr_set*/
 
8743
  0, /*tp_dictoffset*/
 
8744
  0, /*tp_init*/
 
8745
  0, /*tp_alloc*/
 
8746
  __pyx_tp_new_6Cython_8Compiler_7Visitor_ScopeTrackingTransform, /*tp_new*/
 
8747
  0, /*tp_free*/
 
8748
  0, /*tp_is_gc*/
 
8749
  0, /*tp_bases*/
 
8750
  0, /*tp_mro*/
 
8751
  0, /*tp_cache*/
 
8752
  0, /*tp_subclasses*/
 
8753
  0, /*tp_weaklist*/
 
8754
  0, /*tp_del*/
 
8755
  #if PY_VERSION_HEX >= 0x02060000
 
8756
  0, /*tp_version_tag*/
 
8757
  #endif
 
8758
};
 
8759
static struct __pyx_vtabstruct_6Cython_8Compiler_7Visitor_EnvTransform __pyx_vtable_6Cython_8Compiler_7Visitor_EnvTransform;
 
8760
 
 
8761
static PyObject *__pyx_tp_new_6Cython_8Compiler_7Visitor_EnvTransform(PyTypeObject *t, PyObject *a, PyObject *k) {
 
8762
  struct __pyx_obj_6Cython_8Compiler_7Visitor_EnvTransform *p;
 
8763
  PyObject *o = __pyx_tp_new_6Cython_8Compiler_7Visitor_CythonTransform(t, a, k);
 
8764
  if (!o) return 0;
 
8765
  p = ((struct __pyx_obj_6Cython_8Compiler_7Visitor_EnvTransform *)o);
 
8766
  p->__pyx_base.__pyx_base.__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_6Cython_8Compiler_7Visitor_TreeVisitor*)__pyx_vtabptr_6Cython_8Compiler_7Visitor_EnvTransform;
 
8767
  p->env_stack = ((PyObject*)Py_None); Py_INCREF(Py_None);
 
8768
  return o;
 
8769
}
 
8770
 
 
8771
static void __pyx_tp_dealloc_6Cython_8Compiler_7Visitor_EnvTransform(PyObject *o) {
 
8772
  struct __pyx_obj_6Cython_8Compiler_7Visitor_EnvTransform *p = (struct __pyx_obj_6Cython_8Compiler_7Visitor_EnvTransform *)o;
 
8773
  Py_XDECREF(((PyObject *)p->env_stack));
 
8774
  __pyx_tp_dealloc_6Cython_8Compiler_7Visitor_CythonTransform(o);
 
8775
}
 
8776
 
 
8777
static int __pyx_tp_traverse_6Cython_8Compiler_7Visitor_EnvTransform(PyObject *o, visitproc v, void *a) {
 
8778
  int e;
 
8779
  struct __pyx_obj_6Cython_8Compiler_7Visitor_EnvTransform *p = (struct __pyx_obj_6Cython_8Compiler_7Visitor_EnvTransform *)o;
 
8780
  e = __pyx_tp_traverse_6Cython_8Compiler_7Visitor_CythonTransform(o, v, a); if (e) return e;
 
8781
  if (p->env_stack) {
 
8782
    e = (*v)(p->env_stack, a); if (e) return e;
 
8783
  }
 
8784
  return 0;
 
8785
}
 
8786
 
 
8787
static int __pyx_tp_clear_6Cython_8Compiler_7Visitor_EnvTransform(PyObject *o) {
 
8788
  struct __pyx_obj_6Cython_8Compiler_7Visitor_EnvTransform *p = (struct __pyx_obj_6Cython_8Compiler_7Visitor_EnvTransform *)o;
 
8789
  PyObject* tmp;
 
8790
  __pyx_tp_clear_6Cython_8Compiler_7Visitor_CythonTransform(o);
 
8791
  tmp = ((PyObject*)p->env_stack);
 
8792
  p->env_stack = ((PyObject*)Py_None); Py_INCREF(Py_None);
 
8793
  Py_XDECREF(tmp);
 
8794
  return 0;
 
8795
}
 
8796
 
 
8797
static PyObject *__pyx_getprop_6Cython_8Compiler_7Visitor_12EnvTransform_env_stack(PyObject *o, void *x) {
 
8798
  return __pyx_pf_6Cython_8Compiler_7Visitor_12EnvTransform_9env_stack___get__(o);
 
8799
}
 
8800
 
 
8801
static int __pyx_setprop_6Cython_8Compiler_7Visitor_12EnvTransform_env_stack(PyObject *o, PyObject *v, void *x) {
 
8802
  if (v) {
 
8803
    return __pyx_pf_6Cython_8Compiler_7Visitor_12EnvTransform_9env_stack_1__set__(o, v);
 
8804
  }
 
8805
  else {
 
8806
    return __pyx_pf_6Cython_8Compiler_7Visitor_12EnvTransform_9env_stack_2__del__(o);
 
8807
  }
 
8808
}
 
8809
 
 
8810
static PyMethodDef __pyx_methods_6Cython_8Compiler_7Visitor_EnvTransform[] = {
 
8811
  {__Pyx_NAMESTR("current_env"), (PyCFunction)__pyx_pf_6Cython_8Compiler_7Visitor_12EnvTransform_1current_env, METH_NOARGS, __Pyx_DOCSTR(0)},
 
8812
  {__Pyx_NAMESTR("visit_FuncDefNode"), (PyCFunction)__pyx_pf_6Cython_8Compiler_7Visitor_12EnvTransform_2visit_FuncDefNode, METH_O, __Pyx_DOCSTR(0)},
 
8813
  {0, 0, 0, 0}
 
8814
};
 
8815
 
 
8816
static struct PyGetSetDef __pyx_getsets_6Cython_8Compiler_7Visitor_EnvTransform[] = {
 
8817
  {(char *)"env_stack", __pyx_getprop_6Cython_8Compiler_7Visitor_12EnvTransform_env_stack, __pyx_setprop_6Cython_8Compiler_7Visitor_12EnvTransform_env_stack, 0, 0},
 
8818
  {0, 0, 0, 0, 0}
 
8819
};
 
8820
 
 
8821
static PyNumberMethods __pyx_tp_as_number_EnvTransform = {
 
8822
  0, /*nb_add*/
 
8823
  0, /*nb_subtract*/
 
8824
  0, /*nb_multiply*/
 
8825
  #if PY_MAJOR_VERSION < 3
 
8826
  0, /*nb_divide*/
 
8827
  #endif
 
8828
  0, /*nb_remainder*/
 
8829
  0, /*nb_divmod*/
 
8830
  0, /*nb_power*/
 
8831
  0, /*nb_negative*/
 
8832
  0, /*nb_positive*/
 
8833
  0, /*nb_absolute*/
 
8834
  0, /*nb_nonzero*/
 
8835
  0, /*nb_invert*/
 
8836
  0, /*nb_lshift*/
 
8837
  0, /*nb_rshift*/
 
8838
  0, /*nb_and*/
 
8839
  0, /*nb_xor*/
 
8840
  0, /*nb_or*/
 
8841
  #if PY_MAJOR_VERSION < 3
 
8842
  0, /*nb_coerce*/
 
8843
  #endif
 
8844
  0, /*nb_int*/
 
8845
  #if PY_MAJOR_VERSION < 3
 
8846
  0, /*nb_long*/
 
8847
  #else
 
8848
  0, /*reserved*/
 
8849
  #endif
 
8850
  0, /*nb_float*/
 
8851
  #if PY_MAJOR_VERSION < 3
 
8852
  0, /*nb_oct*/
 
8853
  #endif
 
8854
  #if PY_MAJOR_VERSION < 3
 
8855
  0, /*nb_hex*/
 
8856
  #endif
 
8857
  0, /*nb_inplace_add*/
 
8858
  0, /*nb_inplace_subtract*/
 
8859
  0, /*nb_inplace_multiply*/
 
8860
  #if PY_MAJOR_VERSION < 3
 
8861
  0, /*nb_inplace_divide*/
 
8862
  #endif
 
8863
  0, /*nb_inplace_remainder*/
 
8864
  0, /*nb_inplace_power*/
 
8865
  0, /*nb_inplace_lshift*/
 
8866
  0, /*nb_inplace_rshift*/
 
8867
  0, /*nb_inplace_and*/
 
8868
  0, /*nb_inplace_xor*/
 
8869
  0, /*nb_inplace_or*/
 
8870
  0, /*nb_floor_divide*/
 
8871
  0, /*nb_true_divide*/
 
8872
  0, /*nb_inplace_floor_divide*/
 
8873
  0, /*nb_inplace_true_divide*/
 
8874
  #if PY_VERSION_HEX >= 0x02050000
 
8875
  0, /*nb_index*/
 
8876
  #endif
 
8877
};
 
8878
 
 
8879
static PySequenceMethods __pyx_tp_as_sequence_EnvTransform = {
 
8880
  0, /*sq_length*/
 
8881
  0, /*sq_concat*/
 
8882
  0, /*sq_repeat*/
 
8883
  0, /*sq_item*/
 
8884
  0, /*sq_slice*/
 
8885
  0, /*sq_ass_item*/
 
8886
  0, /*sq_ass_slice*/
 
8887
  0, /*sq_contains*/
 
8888
  0, /*sq_inplace_concat*/
 
8889
  0, /*sq_inplace_repeat*/
 
8890
};
 
8891
 
 
8892
static PyMappingMethods __pyx_tp_as_mapping_EnvTransform = {
 
8893
  0, /*mp_length*/
 
8894
  0, /*mp_subscript*/
 
8895
  0, /*mp_ass_subscript*/
 
8896
};
 
8897
 
 
8898
static PyBufferProcs __pyx_tp_as_buffer_EnvTransform = {
 
8899
  #if PY_MAJOR_VERSION < 3
 
8900
  0, /*bf_getreadbuffer*/
 
8901
  #endif
 
8902
  #if PY_MAJOR_VERSION < 3
 
8903
  0, /*bf_getwritebuffer*/
 
8904
  #endif
 
8905
  #if PY_MAJOR_VERSION < 3
 
8906
  0, /*bf_getsegcount*/
 
8907
  #endif
 
8908
  #if PY_MAJOR_VERSION < 3
 
8909
  0, /*bf_getcharbuffer*/
 
8910
  #endif
 
8911
  #if PY_VERSION_HEX >= 0x02060000
 
8912
  0, /*bf_getbuffer*/
 
8913
  #endif
 
8914
  #if PY_VERSION_HEX >= 0x02060000
 
8915
  0, /*bf_releasebuffer*/
 
8916
  #endif
 
8917
};
 
8918
 
 
8919
static PyTypeObject __pyx_type_6Cython_8Compiler_7Visitor_EnvTransform = {
 
8920
  PyVarObject_HEAD_INIT(0, 0)
 
8921
  __Pyx_NAMESTR("Cython.Compiler.Visitor.EnvTransform"), /*tp_name*/
 
8922
  sizeof(struct __pyx_obj_6Cython_8Compiler_7Visitor_EnvTransform), /*tp_basicsize*/
 
8923
  0, /*tp_itemsize*/
 
8924
  __pyx_tp_dealloc_6Cython_8Compiler_7Visitor_EnvTransform, /*tp_dealloc*/
 
8925
  0, /*tp_print*/
 
8926
  0, /*tp_getattr*/
 
8927
  0, /*tp_setattr*/
 
8928
  #if PY_MAJOR_VERSION < 3
 
8929
  0, /*tp_compare*/
 
8930
  #else
 
8931
  0, /*reserved*/
 
8932
  #endif
 
8933
  0, /*tp_repr*/
 
8934
  &__pyx_tp_as_number_EnvTransform, /*tp_as_number*/
 
8935
  &__pyx_tp_as_sequence_EnvTransform, /*tp_as_sequence*/
 
8936
  &__pyx_tp_as_mapping_EnvTransform, /*tp_as_mapping*/
 
8937
  0, /*tp_hash*/
 
8938
  __pyx_pf_6Cython_8Compiler_7Visitor_12EnvTransform___call__, /*tp_call*/
 
8939
  0, /*tp_str*/
 
8940
  0, /*tp_getattro*/
 
8941
  0, /*tp_setattro*/
 
8942
  &__pyx_tp_as_buffer_EnvTransform, /*tp_as_buffer*/
 
8943
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
 
8944
  __Pyx_DOCSTR("\n    This transformation keeps a stack of the environments.\n    "), /*tp_doc*/
 
8945
  __pyx_tp_traverse_6Cython_8Compiler_7Visitor_EnvTransform, /*tp_traverse*/
 
8946
  __pyx_tp_clear_6Cython_8Compiler_7Visitor_EnvTransform, /*tp_clear*/
 
8947
  0, /*tp_richcompare*/
 
8948
  0, /*tp_weaklistoffset*/
 
8949
  0, /*tp_iter*/
 
8950
  0, /*tp_iternext*/
 
8951
  __pyx_methods_6Cython_8Compiler_7Visitor_EnvTransform, /*tp_methods*/
 
8952
  0, /*tp_members*/
 
8953
  __pyx_getsets_6Cython_8Compiler_7Visitor_EnvTransform, /*tp_getset*/
 
8954
  0, /*tp_base*/
 
8955
  0, /*tp_dict*/
 
8956
  0, /*tp_descr_get*/
 
8957
  0, /*tp_descr_set*/
 
8958
  0, /*tp_dictoffset*/
 
8959
  0, /*tp_init*/
 
8960
  0, /*tp_alloc*/
 
8961
  __pyx_tp_new_6Cython_8Compiler_7Visitor_EnvTransform, /*tp_new*/
 
8962
  0, /*tp_free*/
 
8963
  0, /*tp_is_gc*/
 
8964
  0, /*tp_bases*/
 
8965
  0, /*tp_mro*/
 
8966
  0, /*tp_cache*/
 
8967
  0, /*tp_subclasses*/
 
8968
  0, /*tp_weaklist*/
 
8969
  0, /*tp_del*/
 
8970
  #if PY_VERSION_HEX >= 0x02060000
 
8971
  0, /*tp_version_tag*/
 
8972
  #endif
 
8973
};
 
8974
static struct __pyx_vtabstruct_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer __pyx_vtable_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer;
 
8975
 
 
8976
static PyObject *__pyx_tp_new_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer(PyTypeObject *t, PyObject *a, PyObject *k) {
 
8977
  struct __pyx_obj_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer *p;
 
8978
  PyObject *o = __pyx_tp_new_6Cython_8Compiler_7Visitor_TreeVisitor(t, a, k);
 
8979
  if (!o) return 0;
 
8980
  p = ((struct __pyx_obj_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer *)o);
 
8981
  p->__pyx_base.__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_6Cython_8Compiler_7Visitor_TreeVisitor*)__pyx_vtabptr_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer;
 
8982
  p->orig_node = Py_None; Py_INCREF(Py_None);
 
8983
  p->new_node = Py_None; Py_INCREF(Py_None);
 
8984
  return o;
 
8985
}
 
8986
 
 
8987
static void __pyx_tp_dealloc_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer(PyObject *o) {
 
8988
  struct __pyx_obj_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer *p = (struct __pyx_obj_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer *)o;
 
8989
  Py_XDECREF(p->orig_node);
 
8990
  Py_XDECREF(p->new_node);
 
8991
  __pyx_tp_dealloc_6Cython_8Compiler_7Visitor_TreeVisitor(o);
 
8992
}
 
8993
 
 
8994
static int __pyx_tp_traverse_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer(PyObject *o, visitproc v, void *a) {
 
8995
  int e;
 
8996
  struct __pyx_obj_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer *p = (struct __pyx_obj_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer *)o;
 
8997
  e = __pyx_tp_traverse_6Cython_8Compiler_7Visitor_TreeVisitor(o, v, a); if (e) return e;
 
8998
  if (p->orig_node) {
 
8999
    e = (*v)(p->orig_node, a); if (e) return e;
 
9000
  }
 
9001
  if (p->new_node) {
 
9002
    e = (*v)(p->new_node, a); if (e) return e;
 
9003
  }
 
9004
  return 0;
 
9005
}
 
9006
 
 
9007
static int __pyx_tp_clear_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer(PyObject *o) {
 
9008
  struct __pyx_obj_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer *p = (struct __pyx_obj_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer *)o;
 
9009
  PyObject* tmp;
 
9010
  __pyx_tp_clear_6Cython_8Compiler_7Visitor_TreeVisitor(o);
 
9011
  tmp = ((PyObject*)p->orig_node);
 
9012
  p->orig_node = Py_None; Py_INCREF(Py_None);
 
9013
  Py_XDECREF(tmp);
 
9014
  tmp = ((PyObject*)p->new_node);
 
9015
  p->new_node = Py_None; Py_INCREF(Py_None);
 
9016
  Py_XDECREF(tmp);
 
9017
  return 0;
 
9018
}
 
9019
 
 
9020
static PyObject *__pyx_getprop_6Cython_8Compiler_7Visitor_21RecursiveNodeReplacer_orig_node(PyObject *o, void *x) {
 
9021
  return __pyx_pf_6Cython_8Compiler_7Visitor_21RecursiveNodeReplacer_9orig_node___get__(o);
 
9022
}
 
9023
 
 
9024
static int __pyx_setprop_6Cython_8Compiler_7Visitor_21RecursiveNodeReplacer_orig_node(PyObject *o, PyObject *v, void *x) {
 
9025
  if (v) {
 
9026
    return __pyx_pf_6Cython_8Compiler_7Visitor_21RecursiveNodeReplacer_9orig_node_1__set__(o, v);
 
9027
  }
 
9028
  else {
 
9029
    return __pyx_pf_6Cython_8Compiler_7Visitor_21RecursiveNodeReplacer_9orig_node_2__del__(o);
 
9030
  }
 
9031
}
 
9032
 
 
9033
static PyObject *__pyx_getprop_6Cython_8Compiler_7Visitor_21RecursiveNodeReplacer_new_node(PyObject *o, void *x) {
 
9034
  return __pyx_pf_6Cython_8Compiler_7Visitor_21RecursiveNodeReplacer_8new_node___get__(o);
 
9035
}
 
9036
 
 
9037
static int __pyx_setprop_6Cython_8Compiler_7Visitor_21RecursiveNodeReplacer_new_node(PyObject *o, PyObject *v, void *x) {
 
9038
  if (v) {
 
9039
    return __pyx_pf_6Cython_8Compiler_7Visitor_21RecursiveNodeReplacer_8new_node_1__set__(o, v);
 
9040
  }
 
9041
  else {
 
9042
    return __pyx_pf_6Cython_8Compiler_7Visitor_21RecursiveNodeReplacer_8new_node_2__del__(o);
 
9043
  }
 
9044
}
 
9045
 
 
9046
static PyMethodDef __pyx_methods_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer[] = {
 
9047
  {__Pyx_NAMESTR("visit_Node"), (PyCFunction)__pyx_pf_6Cython_8Compiler_7Visitor_21RecursiveNodeReplacer_1visit_Node, METH_O, __Pyx_DOCSTR(0)},
 
9048
  {0, 0, 0, 0}
 
9049
};
 
9050
 
 
9051
static struct PyGetSetDef __pyx_getsets_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer[] = {
 
9052
  {(char *)"orig_node", __pyx_getprop_6Cython_8Compiler_7Visitor_21RecursiveNodeReplacer_orig_node, __pyx_setprop_6Cython_8Compiler_7Visitor_21RecursiveNodeReplacer_orig_node, 0, 0},
 
9053
  {(char *)"new_node", __pyx_getprop_6Cython_8Compiler_7Visitor_21RecursiveNodeReplacer_new_node, __pyx_setprop_6Cython_8Compiler_7Visitor_21RecursiveNodeReplacer_new_node, 0, 0},
 
9054
  {0, 0, 0, 0, 0}
 
9055
};
 
9056
 
 
9057
static PyNumberMethods __pyx_tp_as_number_RecursiveNodeReplacer = {
 
9058
  0, /*nb_add*/
 
9059
  0, /*nb_subtract*/
 
9060
  0, /*nb_multiply*/
 
9061
  #if PY_MAJOR_VERSION < 3
 
9062
  0, /*nb_divide*/
 
9063
  #endif
 
9064
  0, /*nb_remainder*/
 
9065
  0, /*nb_divmod*/
 
9066
  0, /*nb_power*/
 
9067
  0, /*nb_negative*/
 
9068
  0, /*nb_positive*/
 
9069
  0, /*nb_absolute*/
 
9070
  0, /*nb_nonzero*/
 
9071
  0, /*nb_invert*/
 
9072
  0, /*nb_lshift*/
 
9073
  0, /*nb_rshift*/
 
9074
  0, /*nb_and*/
 
9075
  0, /*nb_xor*/
 
9076
  0, /*nb_or*/
 
9077
  #if PY_MAJOR_VERSION < 3
 
9078
  0, /*nb_coerce*/
 
9079
  #endif
 
9080
  0, /*nb_int*/
 
9081
  #if PY_MAJOR_VERSION < 3
 
9082
  0, /*nb_long*/
 
9083
  #else
 
9084
  0, /*reserved*/
 
9085
  #endif
 
9086
  0, /*nb_float*/
 
9087
  #if PY_MAJOR_VERSION < 3
 
9088
  0, /*nb_oct*/
 
9089
  #endif
 
9090
  #if PY_MAJOR_VERSION < 3
 
9091
  0, /*nb_hex*/
 
9092
  #endif
 
9093
  0, /*nb_inplace_add*/
 
9094
  0, /*nb_inplace_subtract*/
 
9095
  0, /*nb_inplace_multiply*/
 
9096
  #if PY_MAJOR_VERSION < 3
 
9097
  0, /*nb_inplace_divide*/
 
9098
  #endif
 
9099
  0, /*nb_inplace_remainder*/
 
9100
  0, /*nb_inplace_power*/
 
9101
  0, /*nb_inplace_lshift*/
 
9102
  0, /*nb_inplace_rshift*/
 
9103
  0, /*nb_inplace_and*/
 
9104
  0, /*nb_inplace_xor*/
 
9105
  0, /*nb_inplace_or*/
 
9106
  0, /*nb_floor_divide*/
 
9107
  0, /*nb_true_divide*/
 
9108
  0, /*nb_inplace_floor_divide*/
 
9109
  0, /*nb_inplace_true_divide*/
 
9110
  #if PY_VERSION_HEX >= 0x02050000
 
9111
  0, /*nb_index*/
 
9112
  #endif
 
9113
};
 
9114
 
 
9115
static PySequenceMethods __pyx_tp_as_sequence_RecursiveNodeReplacer = {
 
9116
  0, /*sq_length*/
 
9117
  0, /*sq_concat*/
 
9118
  0, /*sq_repeat*/
 
9119
  0, /*sq_item*/
 
9120
  0, /*sq_slice*/
 
9121
  0, /*sq_ass_item*/
 
9122
  0, /*sq_ass_slice*/
 
9123
  0, /*sq_contains*/
 
9124
  0, /*sq_inplace_concat*/
 
9125
  0, /*sq_inplace_repeat*/
 
9126
};
 
9127
 
 
9128
static PyMappingMethods __pyx_tp_as_mapping_RecursiveNodeReplacer = {
 
9129
  0, /*mp_length*/
 
9130
  0, /*mp_subscript*/
 
9131
  0, /*mp_ass_subscript*/
 
9132
};
 
9133
 
 
9134
static PyBufferProcs __pyx_tp_as_buffer_RecursiveNodeReplacer = {
 
9135
  #if PY_MAJOR_VERSION < 3
 
9136
  0, /*bf_getreadbuffer*/
 
9137
  #endif
 
9138
  #if PY_MAJOR_VERSION < 3
 
9139
  0, /*bf_getwritebuffer*/
 
9140
  #endif
 
9141
  #if PY_MAJOR_VERSION < 3
 
9142
  0, /*bf_getsegcount*/
 
9143
  #endif
 
9144
  #if PY_MAJOR_VERSION < 3
 
9145
  0, /*bf_getcharbuffer*/
 
9146
  #endif
 
9147
  #if PY_VERSION_HEX >= 0x02060000
 
9148
  0, /*bf_getbuffer*/
 
9149
  #endif
 
9150
  #if PY_VERSION_HEX >= 0x02060000
 
9151
  0, /*bf_releasebuffer*/
 
9152
  #endif
 
9153
};
 
9154
 
 
9155
static PyTypeObject __pyx_type_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer = {
 
9156
  PyVarObject_HEAD_INIT(0, 0)
 
9157
  __Pyx_NAMESTR("Cython.Compiler.Visitor.RecursiveNodeReplacer"), /*tp_name*/
 
9158
  sizeof(struct __pyx_obj_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer), /*tp_basicsize*/
 
9159
  0, /*tp_itemsize*/
 
9160
  __pyx_tp_dealloc_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer, /*tp_dealloc*/
 
9161
  0, /*tp_print*/
 
9162
  0, /*tp_getattr*/
 
9163
  0, /*tp_setattr*/
 
9164
  #if PY_MAJOR_VERSION < 3
 
9165
  0, /*tp_compare*/
 
9166
  #else
 
9167
  0, /*reserved*/
 
9168
  #endif
 
9169
  0, /*tp_repr*/
 
9170
  &__pyx_tp_as_number_RecursiveNodeReplacer, /*tp_as_number*/
 
9171
  &__pyx_tp_as_sequence_RecursiveNodeReplacer, /*tp_as_sequence*/
 
9172
  &__pyx_tp_as_mapping_RecursiveNodeReplacer, /*tp_as_mapping*/
 
9173
  0, /*tp_hash*/
 
9174
  0, /*tp_call*/
 
9175
  0, /*tp_str*/
 
9176
  0, /*tp_getattro*/
 
9177
  0, /*tp_setattro*/
 
9178
  &__pyx_tp_as_buffer_RecursiveNodeReplacer, /*tp_as_buffer*/
 
9179
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
 
9180
  __Pyx_DOCSTR("\n    Recursively replace all occurrences of a node in a subtree by\n    another node.\n    "), /*tp_doc*/
 
9181
  __pyx_tp_traverse_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer, /*tp_traverse*/
 
9182
  __pyx_tp_clear_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer, /*tp_clear*/
 
9183
  0, /*tp_richcompare*/
 
9184
  0, /*tp_weaklistoffset*/
 
9185
  0, /*tp_iter*/
 
9186
  0, /*tp_iternext*/
 
9187
  __pyx_methods_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer, /*tp_methods*/
 
9188
  0, /*tp_members*/
 
9189
  __pyx_getsets_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer, /*tp_getset*/
 
9190
  0, /*tp_base*/
 
9191
  0, /*tp_dict*/
 
9192
  0, /*tp_descr_get*/
 
9193
  0, /*tp_descr_set*/
 
9194
  0, /*tp_dictoffset*/
 
9195
  __pyx_pf_6Cython_8Compiler_7Visitor_21RecursiveNodeReplacer___init__, /*tp_init*/
 
9196
  0, /*tp_alloc*/
 
9197
  __pyx_tp_new_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer, /*tp_new*/
 
9198
  0, /*tp_free*/
 
9199
  0, /*tp_is_gc*/
 
9200
  0, /*tp_bases*/
 
9201
  0, /*tp_mro*/
 
9202
  0, /*tp_cache*/
 
9203
  0, /*tp_subclasses*/
 
9204
  0, /*tp_weaklist*/
 
9205
  0, /*tp_del*/
 
9206
  #if PY_VERSION_HEX >= 0x02060000
 
9207
  0, /*tp_version_tag*/
 
9208
  #endif
 
9209
};
 
9210
 
 
9211
static PyMethodDef __pyx_methods[] = {
 
9212
  {0, 0, 0, 0}
 
9213
};
 
9214
 
 
9215
#if PY_MAJOR_VERSION >= 3
 
9216
static struct PyModuleDef __pyx_moduledef = {
 
9217
    PyModuleDef_HEAD_INIT,
 
9218
    __Pyx_NAMESTR("Visitor"),
 
9219
    0, /* m_doc */
 
9220
    -1, /* m_size */
 
9221
    __pyx_methods /* m_methods */,
 
9222
    NULL, /* m_reload */
 
9223
    NULL, /* m_traverse */
 
9224
    NULL, /* m_clear */
 
9225
    NULL /* m_free */
 
9226
};
 
9227
#endif
 
9228
 
 
9229
static __Pyx_StringTabEntry __pyx_string_tab[] = {
 
9230
  {&__pyx_n_s_1, __pyx_k_1, sizeof(__pyx_k_1), 0, 0, 1, 1},
 
9231
  {&__pyx_kp_s_10, __pyx_k_10, sizeof(__pyx_k_10), 0, 0, 1, 0},
 
9232
  {&__pyx_kp_u_11, __pyx_k_11, sizeof(__pyx_k_11), 0, 1, 0, 0},
 
9233
  {&__pyx_kp_u_12, __pyx_k_12, sizeof(__pyx_k_12), 0, 1, 0, 0},
 
9234
  {&__pyx_kp_u_13, __pyx_k_13, sizeof(__pyx_k_13), 0, 1, 0, 0},
 
9235
  {&__pyx_kp_u_14, __pyx_k_14, sizeof(__pyx_k_14), 0, 1, 0, 0},
 
9236
  {&__pyx_kp_s_15, __pyx_k_15, sizeof(__pyx_k_15), 0, 0, 1, 0},
 
9237
  {&__pyx_kp_s_16, __pyx_k_16, sizeof(__pyx_k_16), 0, 0, 1, 0},
 
9238
  {&__pyx_n_s_17, __pyx_k_17, sizeof(__pyx_k_17), 0, 0, 1, 1},
 
9239
  {&__pyx_n_s_18, __pyx_k_18, sizeof(__pyx_k_18), 0, 0, 1, 1},
 
9240
  {&__pyx_kp_s_19, __pyx_k_19, sizeof(__pyx_k_19), 0, 0, 1, 0},
 
9241
  {&__pyx_kp_u_2, __pyx_k_2, sizeof(__pyx_k_2), 0, 1, 0, 0},
 
9242
  {&__pyx_kp_s_20, __pyx_k_20, sizeof(__pyx_k_20), 0, 0, 1, 0},
 
9243
  {&__pyx_kp_s_21, __pyx_k_21, sizeof(__pyx_k_21), 0, 0, 1, 0},
 
9244
  {&__pyx_kp_s_22, __pyx_k_22, sizeof(__pyx_k_22), 0, 0, 1, 0},
 
9245
  {&__pyx_kp_s_23, __pyx_k_23, sizeof(__pyx_k_23), 0, 0, 1, 0},
 
9246
  {&__pyx_kp_s_24, __pyx_k_24, sizeof(__pyx_k_24), 0, 0, 1, 0},
 
9247
  {&__pyx_kp_s_25, __pyx_k_25, sizeof(__pyx_k_25), 0, 0, 1, 0},
 
9248
  {&__pyx_kp_s_26, __pyx_k_26, sizeof(__pyx_k_26), 0, 0, 1, 0},
 
9249
  {&__pyx_kp_s_27, __pyx_k_27, sizeof(__pyx_k_27), 0, 0, 1, 0},
 
9250
  {&__pyx_kp_s_28, __pyx_k_28, sizeof(__pyx_k_28), 0, 0, 1, 0},
 
9251
  {&__pyx_kp_s_29, __pyx_k_29, sizeof(__pyx_k_29), 0, 0, 1, 0},
 
9252
  {&__pyx_kp_s_31, __pyx_k_31, sizeof(__pyx_k_31), 0, 0, 1, 0},
 
9253
  {&__pyx_kp_s_33, __pyx_k_33, sizeof(__pyx_k_33), 0, 0, 1, 0},
 
9254
  {&__pyx_n_s_34, __pyx_k_34, sizeof(__pyx_k_34), 0, 0, 1, 1},
 
9255
  {&__pyx_n_s_35, __pyx_k_35, sizeof(__pyx_k_35), 0, 0, 1, 1},
 
9256
  {&__pyx_kp_s_36, __pyx_k_36, sizeof(__pyx_k_36), 0, 0, 1, 0},
 
9257
  {&__pyx_kp_u_5, __pyx_k_5, sizeof(__pyx_k_5), 0, 1, 0, 0},
 
9258
  {&__pyx_kp_u_6, __pyx_k_6, sizeof(__pyx_k_6), 0, 1, 0, 0},
 
9259
  {&__pyx_kp_u_7, __pyx_k_7, sizeof(__pyx_k_7), 0, 1, 0, 0},
 
9260
  {&__pyx_kp_u_8, __pyx_k_8, sizeof(__pyx_k_8), 0, 1, 0, 0},
 
9261
  {&__pyx_n_s__AbortError, __pyx_k__AbortError, sizeof(__pyx_k__AbortError), 0, 0, 1, 1},
 
9262
  {&__pyx_n_s__AttributeError, __pyx_k__AttributeError, sizeof(__pyx_k__AttributeError), 0, 0, 1, 1},
 
9263
  {&__pyx_n_s__CompileError, __pyx_k__CompileError, sizeof(__pyx_k__CompileError), 0, 0, 1, 1},
 
9264
  {&__pyx_n_s__CompilerCrash, __pyx_k__CompilerCrash, sizeof(__pyx_k__CompilerCrash), 0, 0, 1, 1},
 
9265
  {&__pyx_n_s__DebugFlags, __pyx_k__DebugFlags, sizeof(__pyx_k__DebugFlags), 0, 0, 1, 1},
 
9266
  {&__pyx_n_s__DefNode, __pyx_k__DefNode, sizeof(__pyx_k__DefNode), 0, 0, 1, 1},
 
9267
  {&__pyx_n_s__Errors, __pyx_k__Errors, sizeof(__pyx_k__Errors), 0, 0, 1, 1},
 
9268
  {&__pyx_n_s__Exception, __pyx_k__Exception, sizeof(__pyx_k__Exception), 0, 0, 1, 1},
 
9269
  {&__pyx_n_s__ExprNode, __pyx_k__ExprNode, sizeof(__pyx_k__ExprNode), 0, 0, 1, 1},
 
9270
  {&__pyx_n_s__ExprNodes, __pyx_k__ExprNodes, sizeof(__pyx_k__ExprNodes), 0, 0, 1, 1},
 
9271
  {&__pyx_n_s__KeyError, __pyx_k__KeyError, sizeof(__pyx_k__KeyError), 0, 0, 1, 1},
 
9272
  {&__pyx_n_s__ModuleNode, __pyx_k__ModuleNode, sizeof(__pyx_k__ModuleNode), 0, 0, 1, 1},
 
9273
  {&__pyx_n_s__NameNode, __pyx_k__NameNode, sizeof(__pyx_k__NameNode), 0, 0, 1, 1},
 
9274
  {&__pyx_n_s__Naming, __pyx_k__Naming, sizeof(__pyx_k__Naming), 0, 0, 1, 1},
 
9275
  {&__pyx_n_s__Node, __pyx_k__Node, sizeof(__pyx_k__Node), 0, 0, 1, 1},
 
9276
  {&__pyx_n_s__Nodes, __pyx_k__Nodes, sizeof(__pyx_k__Nodes), 0, 0, 1, 1},
 
9277
  {&__pyx_n_s__PrintTree, __pyx_k__PrintTree, sizeof(__pyx_k__PrintTree), 0, 0, 1, 1},
 
9278
  {&__pyx_n_s__RuntimeError, __pyx_k__RuntimeError, sizeof(__pyx_k__RuntimeError), 0, 0, 1, 1},
 
9279
  {&__pyx_n_s__StatListNode, __pyx_k__StatListNode, sizeof(__pyx_k__StatListNode), 0, 0, 1, 1},
 
9280
  {&__pyx_n_u___, __pyx_k___, sizeof(__pyx_k___), 0, 1, 0, 1},
 
9281
  {&__pyx_n_s____call__, __pyx_k____call__, sizeof(__pyx_k____call__), 0, 0, 1, 1},
 
9282
  {&__pyx_n_s____class__, __pyx_k____class__, sizeof(__pyx_k____class__), 0, 0, 1, 1},
 
9283
  {&__pyx_n_s____dict__, __pyx_k____dict__, sizeof(__pyx_k____dict__), 0, 0, 1, 1},
 
9284
  {&__pyx_n_s____init__, __pyx_k____init__, sizeof(__pyx_k____init__), 0, 0, 1, 1},
 
9285
  {&__pyx_n_s____main__, __pyx_k____main__, sizeof(__pyx_k____main__), 0, 0, 1, 1},
 
9286
  {&__pyx_n_s____name__, __pyx_k____name__, sizeof(__pyx_k____name__), 0, 0, 1, 1},
 
9287
  {&__pyx_n_s____test__, __pyx_k____test__, sizeof(__pyx_k____test__), 0, 0, 1, 1},
 
9288
  {&__pyx_n_s___find_node_path, __pyx_k___find_node_path, sizeof(__pyx_k___find_node_path), 0, 0, 1, 1},
 
9289
  {&__pyx_n_s___indent, __pyx_k___indent, sizeof(__pyx_k___indent), 0, 0, 1, 1},
 
9290
  {&__pyx_n_s___visit, __pyx_k___visit, sizeof(__pyx_k___visit), 0, 0, 1, 1},
 
9291
  {&__pyx_n_s___visitchild, __pyx_k___visitchild, sizeof(__pyx_k___visitchild), 0, 0, 1, 1},
 
9292
  {&__pyx_n_s___visitchildren, __pyx_k___visitchildren, sizeof(__pyx_k___visitchildren), 0, 0, 1, 1},
 
9293
  {&__pyx_n_s__access_path, __pyx_k__access_path, sizeof(__pyx_k__access_path), 0, 0, 1, 1},
 
9294
  {&__pyx_n_s__append, __pyx_k__append, sizeof(__pyx_k__append), 0, 0, 1, 1},
 
9295
  {&__pyx_n_s__attrs, __pyx_k__attrs, sizeof(__pyx_k__attrs), 0, 0, 1, 1},
 
9296
  {&__pyx_n_s__basename, __pyx_k__basename, sizeof(__pyx_k__basename), 0, 0, 1, 1},
 
9297
  {&__pyx_n_s__cclass, __pyx_k__cclass, sizeof(__pyx_k__cclass), 0, 0, 1, 1},
 
9298
  {&__pyx_n_s__child, __pyx_k__child, sizeof(__pyx_k__child), 0, 0, 1, 1},
 
9299
  {&__pyx_n_s__child_attrs, __pyx_k__child_attrs, sizeof(__pyx_k__child_attrs), 0, 0, 1, 1},
 
9300
  {&__pyx_n_u__child_attrs, __pyx_k__child_attrs, sizeof(__pyx_k__child_attrs), 0, 1, 0, 1},
 
9301
  {&__pyx_n_s__co_filename, __pyx_k__co_filename, sizeof(__pyx_k__co_filename), 0, 0, 1, 1},
 
9302
  {&__pyx_n_s__co_name, __pyx_k__co_name, sizeof(__pyx_k__co_name), 0, 0, 1, 1},
 
9303
  {&__pyx_n_s__context, __pyx_k__context, sizeof(__pyx_k__context), 0, 0, 1, 1},
 
9304
  {&__pyx_n_u__cpp_message, __pyx_k__cpp_message, sizeof(__pyx_k__cpp_message), 0, 1, 0, 1},
 
9305
  {&__pyx_n_s__current_directives, __pyx_k__current_directives, sizeof(__pyx_k__current_directives), 0, 0, 1, 1},
 
9306
  {&__pyx_n_s__directives, __pyx_k__directives, sizeof(__pyx_k__directives), 0, 0, 1, 1},
 
9307
  {&__pyx_n_s__dispatch_table, __pyx_k__dispatch_table, sizeof(__pyx_k__dispatch_table), 0, 0, 1, 1},
 
9308
  {&__pyx_n_s__doctest, __pyx_k__doctest, sizeof(__pyx_k__doctest), 0, 0, 1, 1},
 
9309
  {&__pyx_n_s__dump_node, __pyx_k__dump_node, sizeof(__pyx_k__dump_node), 0, 0, 1, 1},
 
9310
  {&__pyx_n_s__e, __pyx_k__e, sizeof(__pyx_k__e), 0, 0, 1, 1},
 
9311
  {&__pyx_n_s__endswith, __pyx_k__endswith, sizeof(__pyx_k__endswith), 0, 0, 1, 1},
 
9312
  {&__pyx_n_s__ensure_statlist, __pyx_k__ensure_statlist, sizeof(__pyx_k__ensure_statlist), 0, 0, 1, 1},
 
9313
  {&__pyx_n_s__enumerate, __pyx_k__enumerate, sizeof(__pyx_k__enumerate), 0, 0, 1, 1},
 
9314
  {&__pyx_n_s__env_stack, __pyx_k__env_stack, sizeof(__pyx_k__env_stack), 0, 0, 1, 1},
 
9315
  {&__pyx_n_s__exc_info, __pyx_k__exc_info, sizeof(__pyx_k__exc_info), 0, 0, 1, 1},
 
9316
  {&__pyx_n_s__f_code, __pyx_k__f_code, sizeof(__pyx_k__f_code), 0, 0, 1, 1},
 
9317
  {&__pyx_n_s__f_lineno, __pyx_k__f_lineno, sizeof(__pyx_k__f_lineno), 0, 0, 1, 1},
 
9318
  {&__pyx_n_s__f_locals, __pyx_k__f_locals, sizeof(__pyx_k__f_locals), 0, 0, 1, 1},
 
9319
  {&__pyx_n_s__find_handler, __pyx_k__find_handler, sizeof(__pyx_k__find_handler), 0, 0, 1, 1},
 
9320
  {&__pyx_n_s__function, __pyx_k__function, sizeof(__pyx_k__function), 0, 0, 1, 1},
 
9321
  {&__pyx_n_s__get, __pyx_k__get, sizeof(__pyx_k__get), 0, 0, 1, 1},
 
9322
  {&__pyx_n_s__get_description, __pyx_k__get_description, sizeof(__pyx_k__get_description), 0, 0, 1, 1},
 
9323
  {&__pyx_n_s__getmro, __pyx_k__getmro, sizeof(__pyx_k__getmro), 0, 0, 1, 1},
 
9324
  {&__pyx_n_u__gil_message, __pyx_k__gil_message, sizeof(__pyx_k__gil_message), 0, 1, 0, 1},
 
9325
  {&__pyx_n_s__indent, __pyx_k__indent, sizeof(__pyx_k__indent), 0, 0, 1, 1},
 
9326
  {&__pyx_n_s__inspect, __pyx_k__inspect, sizeof(__pyx_k__inspect), 0, 0, 1, 1},
 
9327
  {&__pyx_n_s__join, __pyx_k__join, sizeof(__pyx_k__join), 0, 0, 1, 1},
 
9328
  {&__pyx_n_s__local_scope, __pyx_k__local_scope, sizeof(__pyx_k__local_scope), 0, 0, 1, 1},
 
9329
  {&__pyx_n_s__module, __pyx_k__module, sizeof(__pyx_k__module), 0, 0, 1, 1},
 
9330
  {&__pyx_n_s__name, __pyx_k__name, sizeof(__pyx_k__name), 0, 0, 1, 1},
 
9331
  {&__pyx_n_s__new_node, __pyx_k__new_node, sizeof(__pyx_k__new_node), 0, 0, 1, 1},
 
9332
  {&__pyx_n_s__node, __pyx_k__node, sizeof(__pyx_k__node), 0, 0, 1, 1},
 
9333
  {&__pyx_n_s__old_node, __pyx_k__old_node, sizeof(__pyx_k__old_node), 0, 0, 1, 1},
 
9334
  {&__pyx_n_s__orig_node, __pyx_k__orig_node, sizeof(__pyx_k__orig_node), 0, 0, 1, 1},
 
9335
  {&__pyx_n_s__parent, __pyx_k__parent, sizeof(__pyx_k__parent), 0, 0, 1, 1},
 
9336
  {&__pyx_n_s__path, __pyx_k__path, sizeof(__pyx_k__path), 0, 0, 1, 1},
 
9337
  {&__pyx_n_s__phase, __pyx_k__phase, sizeof(__pyx_k__phase), 0, 0, 1, 1},
 
9338
  {&__pyx_n_s__pos, __pyx_k__pos, sizeof(__pyx_k__pos), 0, 0, 1, 1},
 
9339
  {&__pyx_n_u__pos, __pyx_k__pos, sizeof(__pyx_k__pos), 0, 1, 0, 1},
 
9340
  {&__pyx_n_s__ptr, __pyx_k__ptr, sizeof(__pyx_k__ptr), 0, 0, 1, 1},
 
9341
  {&__pyx_n_s__pyclass, __pyx_k__pyclass, sizeof(__pyx_k__pyclass), 0, 0, 1, 1},
 
9342
  {&__pyx_n_s__recurse_to_children, __pyx_k__recurse_to_children, sizeof(__pyx_k__recurse_to_children), 0, 0, 1, 1},
 
9343
  {&__pyx_n_s__replace_node, __pyx_k__replace_node, sizeof(__pyx_k__replace_node), 0, 0, 1, 1},
 
9344
  {&__pyx_n_s__repr_of, __pyx_k__repr_of, sizeof(__pyx_k__repr_of), 0, 0, 1, 1},
 
9345
  {&__pyx_n_s__root, __pyx_k__root, sizeof(__pyx_k__root), 0, 0, 1, 1},
 
9346
  {&__pyx_n_s__scope, __pyx_k__scope, sizeof(__pyx_k__scope), 0, 0, 1, 1},
 
9347
  {&__pyx_n_s__scope_node, __pyx_k__scope_node, sizeof(__pyx_k__scope_node), 0, 0, 1, 1},
 
9348
  {&__pyx_n_s__scope_type, __pyx_k__scope_type, sizeof(__pyx_k__scope_type), 0, 0, 1, 1},
 
9349
  {&__pyx_n_s__self, __pyx_k__self, sizeof(__pyx_k__self), 0, 0, 1, 1},
 
9350
  {&__pyx_n_u__self, __pyx_k__self, sizeof(__pyx_k__self), 0, 1, 0, 1},
 
9351
  {&__pyx_n_s__sort, __pyx_k__sort, sizeof(__pyx_k__sort), 0, 0, 1, 1},
 
9352
  {&__pyx_n_s__split, __pyx_k__split, sizeof(__pyx_k__split), 0, 0, 1, 1},
 
9353
  {&__pyx_n_s__startswith, __pyx_k__startswith, sizeof(__pyx_k__startswith), 0, 0, 1, 1},
 
9354
  {&__pyx_n_s__stats, __pyx_k__stats, sizeof(__pyx_k__stats), 0, 0, 1, 1},
 
9355
  {&__pyx_n_s__struct, __pyx_k__struct, sizeof(__pyx_k__struct), 0, 0, 1, 1},
 
9356
  {&__pyx_n_u__subexprs, __pyx_k__subexprs, sizeof(__pyx_k__subexprs), 0, 1, 0, 1},
 
9357
  {&__pyx_n_s__super, __pyx_k__super, sizeof(__pyx_k__super), 0, 0, 1, 1},
 
9358
  {&__pyx_n_s__sys, __pyx_k__sys, sizeof(__pyx_k__sys), 0, 0, 1, 1},
 
9359
  {&__pyx_n_s__tb_frame, __pyx_k__tb_frame, sizeof(__pyx_k__tb_frame), 0, 0, 1, 1},
 
9360
  {&__pyx_n_s__tb_next, __pyx_k__tb_next, sizeof(__pyx_k__tb_next), 0, 0, 1, 1},
 
9361
  {&__pyx_n_s__testmod, __pyx_k__testmod, sizeof(__pyx_k__testmod), 0, 0, 1, 1},
 
9362
  {&__pyx_n_s__tree, __pyx_k__tree, sizeof(__pyx_k__tree), 0, 0, 1, 1},
 
9363
  {&__pyx_n_s__type, __pyx_k__type, sizeof(__pyx_k__type), 0, 0, 1, 1},
 
9364
  {&__pyx_n_s__unindent, __pyx_k__unindent, sizeof(__pyx_k__unindent), 0, 0, 1, 1},
 
9365
  {&__pyx_n_s__value, __pyx_k__value, sizeof(__pyx_k__value), 0, 0, 1, 1},
 
9366
  {&__pyx_n_s__visit, __pyx_k__visit, sizeof(__pyx_k__visit), 0, 0, 1, 1},
 
9367
  {&__pyx_n_s__visit_Node, __pyx_k__visit_Node, sizeof(__pyx_k__visit_Node), 0, 0, 1, 1},
 
9368
  {&__pyx_n_s__visit_scope, __pyx_k__visit_scope, sizeof(__pyx_k__visit_scope), 0, 0, 1, 1},
 
9369
  {&__pyx_n_s__visitchildren, __pyx_k__visitchildren, sizeof(__pyx_k__visitchildren), 0, 0, 1, 1},
 
9370
  {0, 0, 0, 0, 0, 0, 0}
 
9371
};
 
9372
static int __Pyx_InitCachedBuiltins(void) {
 
9373
  __pyx_builtin_super = __Pyx_GetName(__pyx_b, __pyx_n_s__super); if (!__pyx_builtin_super) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 58; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
9374
  __pyx_builtin_AttributeError = __Pyx_GetName(__pyx_b, __pyx_n_s__AttributeError); if (!__pyx_builtin_AttributeError) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 83; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
9375
  __pyx_builtin_RuntimeError = __Pyx_GetName(__pyx_b, __pyx_n_s__RuntimeError); if (!__pyx_builtin_RuntimeError) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 152; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
9376
  __pyx_builtin_KeyError = __Pyx_GetName(__pyx_b, __pyx_n_s__KeyError); if (!__pyx_builtin_KeyError) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 160; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
9377
  __pyx_builtin_Exception = __Pyx_GetName(__pyx_b, __pyx_n_s__Exception); if (!__pyx_builtin_Exception) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 178; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
9378
  __pyx_builtin_enumerate = __Pyx_GetName(__pyx_b, __pyx_n_s__enumerate); if (!__pyx_builtin_enumerate) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 205; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
9379
  return 0;
 
9380
  __pyx_L1_error:;
 
9381
  return -1;
 
9382
}
 
9383
 
 
9384
static int __Pyx_InitCachedConstants(void) {
 
9385
  __Pyx_RefNannySetupContext("__Pyx_InitCachedConstants");
 
9386
 
 
9387
  /* "Cython/Compiler/Visitor.py":79
 
9388
 *             if attr in ignored:
 
9389
 *                 continue
 
9390
 *             if attr.startswith(u'_') or attr.endswith(u'_'):             # <<<<<<<<<<<<<<
 
9391
 *                 continue
 
9392
 *             try:
 
9393
 */
 
9394
  __pyx_k_tuple_3 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 79; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
9395
  __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_3));
 
9396
  __Pyx_INCREF(((PyObject *)__pyx_n_u___));
 
9397
  PyTuple_SET_ITEM(__pyx_k_tuple_3, 0, ((PyObject *)__pyx_n_u___));
 
9398
  __Pyx_GIVEREF(((PyObject *)__pyx_n_u___));
 
9399
  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_3));
 
9400
  __pyx_k_tuple_4 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 79; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
9401
  __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_4));
 
9402
  __Pyx_INCREF(((PyObject *)__pyx_n_u___));
 
9403
  PyTuple_SET_ITEM(__pyx_k_tuple_4, 0, ((PyObject *)__pyx_n_u___));
 
9404
  __Pyx_GIVEREF(((PyObject *)__pyx_n_u___));
 
9405
  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_4));
 
9406
 
 
9407
  /* "Cython/Compiler/Visitor.py":103
 
9408
 *         while hasattr(stacktrace, 'tb_frame'):
 
9409
 *             frame = stacktrace.tb_frame
 
9410
 *             node = frame.f_locals.get(u'self')             # <<<<<<<<<<<<<<
 
9411
 *             if isinstance(node, Nodes.Node):
 
9412
 *                 code = frame.f_code
 
9413
 */
 
9414
  __pyx_k_tuple_9 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 103; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
9415
  __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_9));
 
9416
  __Pyx_INCREF(((PyObject *)__pyx_n_u__self));
 
9417
  PyTuple_SET_ITEM(__pyx_k_tuple_9, 0, ((PyObject *)__pyx_n_u__self));
 
9418
  __Pyx_GIVEREF(((PyObject *)__pyx_n_u__self));
 
9419
  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_9));
 
9420
 
 
9421
  /* "Cython/Compiler/Visitor.py":425
 
9422
 *                 path = pos[0].get_description()
 
9423
 *                 if '/' in path:
 
9424
 *                     path = path.split('/')[-1]             # <<<<<<<<<<<<<<
 
9425
 *                 if '\\' in path:
 
9426
 *                     path = path.split('\\')[-1]
 
9427
 */
 
9428
  __pyx_k_tuple_30 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_30)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 425; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
9429
  __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_30));
 
9430
  __Pyx_INCREF(((PyObject *)__pyx_kp_s_29));
 
9431
  PyTuple_SET_ITEM(__pyx_k_tuple_30, 0, ((PyObject *)__pyx_kp_s_29));
 
9432
  __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_29));
 
9433
  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_30));
 
9434
 
 
9435
  /* "Cython/Compiler/Visitor.py":427
 
9436
 *                     path = path.split('/')[-1]
 
9437
 *                 if '\\' in path:
 
9438
 *                     path = path.split('\\')[-1]             # <<<<<<<<<<<<<<
 
9439
 *                 result += "(pos=(%s:%s:%s))" % (path, pos[1], pos[2])
 
9440
 * 
 
9441
 */
 
9442
  __pyx_k_tuple_32 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_32)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 427; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
9443
  __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_32));
 
9444
  __Pyx_INCREF(((PyObject *)__pyx_kp_s_31));
 
9445
  PyTuple_SET_ITEM(__pyx_k_tuple_32, 0, ((PyObject *)__pyx_kp_s_31));
 
9446
  __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_31));
 
9447
  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_32));
 
9448
  __Pyx_RefNannyFinishContext();
 
9449
  return 0;
 
9450
  __pyx_L1_error:;
 
9451
  __Pyx_RefNannyFinishContext();
 
9452
  return -1;
 
9453
}
 
9454
 
 
9455
static int __Pyx_InitGlobals(void) {
 
9456
  if (__Pyx_InitStrings(__pyx_string_tab) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
 
9457
  __pyx_int_0 = PyInt_FromLong(0); if (unlikely(!__pyx_int_0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
 
9458
  return 0;
 
9459
  __pyx_L1_error:;
 
9460
  return -1;
 
9461
}
 
9462
 
 
9463
#if PY_MAJOR_VERSION < 3
 
9464
PyMODINIT_FUNC initVisitor(void); /*proto*/
 
9465
PyMODINIT_FUNC initVisitor(void)
 
9466
#else
 
9467
PyMODINIT_FUNC PyInit_Visitor(void); /*proto*/
 
9468
PyMODINIT_FUNC PyInit_Visitor(void)
 
9469
#endif
 
9470
{
 
9471
  PyObject *__pyx_t_1 = NULL;
 
9472
  PyObject *__pyx_t_2 = NULL;
 
9473
  PyObject *__pyx_t_3 = NULL;
 
9474
  int __pyx_t_4;
 
9475
  #if CYTHON_REFNANNY
 
9476
  void* __pyx_refnanny = NULL;
 
9477
  __Pyx_RefNanny = __Pyx_RefNannyImportAPI("refnanny");
 
9478
  if (!__Pyx_RefNanny) {
 
9479
      PyErr_Clear();
 
9480
      __Pyx_RefNanny = __Pyx_RefNannyImportAPI("Cython.Runtime.refnanny");
 
9481
      if (!__Pyx_RefNanny)
 
9482
          Py_FatalError("failed to import 'refnanny' module");
 
9483
  }
 
9484
  __pyx_refnanny = __Pyx_RefNanny->SetupContext("PyMODINIT_FUNC PyInit_Visitor(void)", __LINE__, __FILE__);
 
9485
  #endif
 
9486
  __pyx_empty_tuple = PyTuple_New(0); if (unlikely(!__pyx_empty_tuple)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
9487
  __pyx_empty_bytes = PyBytes_FromStringAndSize("", 0); if (unlikely(!__pyx_empty_bytes)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
9488
  #ifdef __pyx_binding_PyCFunctionType_USED
 
9489
  if (__pyx_binding_PyCFunctionType_init() < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
9490
  #endif
 
9491
  /*--- Library function declarations ---*/
 
9492
  /*--- Threads initialization code ---*/
 
9493
  #if defined(__PYX_FORCE_INIT_THREADS) && __PYX_FORCE_INIT_THREADS
 
9494
  #ifdef WITH_THREAD /* Python build with threading support? */
 
9495
  PyEval_InitThreads();
 
9496
  #endif
 
9497
  #endif
 
9498
  /*--- Module creation code ---*/
 
9499
  #if PY_MAJOR_VERSION < 3
 
9500
  __pyx_m = Py_InitModule4(__Pyx_NAMESTR("Visitor"), __pyx_methods, 0, 0, PYTHON_API_VERSION);
 
9501
  #else
 
9502
  __pyx_m = PyModule_Create(&__pyx_moduledef);
 
9503
  #endif
 
9504
  if (!__pyx_m) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
 
9505
  #if PY_MAJOR_VERSION < 3
 
9506
  Py_INCREF(__pyx_m);
 
9507
  #endif
 
9508
  __pyx_b = PyImport_AddModule(__Pyx_NAMESTR(__Pyx_BUILTIN_MODULE_NAME));
 
9509
  if (!__pyx_b) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
 
9510
  if (__Pyx_SetAttrString(__pyx_m, "__builtins__", __pyx_b) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
 
9511
  /*--- Initialize various global constants etc. ---*/
 
9512
  if (unlikely(__Pyx_InitGlobals() < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
9513
  if (__pyx_module_is_main_Cython__Compiler__Visitor) {
 
9514
    if (__Pyx_SetAttrString(__pyx_m, "__name__", __pyx_n_s____main__) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
 
9515
  }
 
9516
  /*--- Builtin init code ---*/
 
9517
  if (unlikely(__Pyx_InitCachedBuiltins() < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
9518
  /*--- Constants init code ---*/
 
9519
  if (unlikely(__Pyx_InitCachedConstants() < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
9520
  /*--- Global init code ---*/
 
9521
  /*--- Function export code ---*/
 
9522
  /*--- Type init code ---*/
 
9523
  __pyx_vtabptr_6Cython_8Compiler_7Visitor_TreeVisitor = &__pyx_vtable_6Cython_8Compiler_7Visitor_TreeVisitor;
 
9524
  __pyx_vtable_6Cython_8Compiler_7Visitor_TreeVisitor.visit = (PyObject *(*)(struct __pyx_obj_6Cython_8Compiler_7Visitor_TreeVisitor *, PyObject *, int __pyx_skip_dispatch))__pyx_f_6Cython_8Compiler_7Visitor_11TreeVisitor_visit;
 
9525
  __pyx_vtable_6Cython_8Compiler_7Visitor_TreeVisitor._visit = (PyObject *(*)(struct __pyx_obj_6Cython_8Compiler_7Visitor_TreeVisitor *, PyObject *))__pyx_f_6Cython_8Compiler_7Visitor_11TreeVisitor__visit;
 
9526
  __pyx_vtable_6Cython_8Compiler_7Visitor_TreeVisitor.find_handler = (PyObject *(*)(struct __pyx_obj_6Cython_8Compiler_7Visitor_TreeVisitor *, PyObject *))__pyx_f_6Cython_8Compiler_7Visitor_11TreeVisitor_find_handler;
 
9527
  __pyx_vtable_6Cython_8Compiler_7Visitor_TreeVisitor._visitchild = (PyObject *(*)(struct __pyx_obj_6Cython_8Compiler_7Visitor_TreeVisitor *, PyObject *, PyObject *, PyObject *, PyObject *))__pyx_f_6Cython_8Compiler_7Visitor_11TreeVisitor__visitchild;
 
9528
  __pyx_vtable_6Cython_8Compiler_7Visitor_TreeVisitor._visitchildren = (PyObject *(*)(struct __pyx_obj_6Cython_8Compiler_7Visitor_TreeVisitor *, PyObject *, PyObject *))__pyx_f_6Cython_8Compiler_7Visitor_11TreeVisitor__visitchildren;
 
9529
  __pyx_vtable_6Cython_8Compiler_7Visitor_TreeVisitor.visitchildren = (PyObject *(*)(struct __pyx_obj_6Cython_8Compiler_7Visitor_TreeVisitor *, PyObject *, int __pyx_skip_dispatch, struct __pyx_opt_args_6Cython_8Compiler_7Visitor_11TreeVisitor_visitchildren *__pyx_optional_args))__pyx_f_6Cython_8Compiler_7Visitor_11TreeVisitor_visitchildren;
 
9530
  if (PyType_Ready(&__pyx_type_6Cython_8Compiler_7Visitor_TreeVisitor) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 14; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
9531
  if (__Pyx_SetVtable(__pyx_type_6Cython_8Compiler_7Visitor_TreeVisitor.tp_dict, __pyx_vtabptr_6Cython_8Compiler_7Visitor_TreeVisitor) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 14; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
9532
  if (__Pyx_SetAttrString(__pyx_m, "TreeVisitor", (PyObject *)&__pyx_type_6Cython_8Compiler_7Visitor_TreeVisitor) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 14; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
9533
  __pyx_ptype_6Cython_8Compiler_7Visitor_TreeVisitor = &__pyx_type_6Cython_8Compiler_7Visitor_TreeVisitor;
 
9534
  __pyx_vtabptr_6Cython_8Compiler_7Visitor_VisitorTransform = &__pyx_vtable_6Cython_8Compiler_7Visitor_VisitorTransform;
 
9535
  __pyx_vtable_6Cython_8Compiler_7Visitor_VisitorTransform.__pyx_base = *__pyx_vtabptr_6Cython_8Compiler_7Visitor_TreeVisitor;
 
9536
  __pyx_vtable_6Cython_8Compiler_7Visitor_VisitorTransform.__pyx_base.visitchildren = (PyObject *(*)(struct __pyx_obj_6Cython_8Compiler_7Visitor_TreeVisitor *, PyObject *, int __pyx_skip_dispatch, struct __pyx_opt_args_6Cython_8Compiler_7Visitor_11TreeVisitor_visitchildren *__pyx_optional_args))__pyx_f_6Cython_8Compiler_7Visitor_16VisitorTransform_visitchildren;
 
9537
  __pyx_vtable_6Cython_8Compiler_7Visitor_VisitorTransform.recurse_to_children = (PyObject *(*)(struct __pyx_obj_6Cython_8Compiler_7Visitor_VisitorTransform *, PyObject *, int __pyx_skip_dispatch))__pyx_f_6Cython_8Compiler_7Visitor_16VisitorTransform_recurse_to_children;
 
9538
  __pyx_type_6Cython_8Compiler_7Visitor_VisitorTransform.tp_base = __pyx_ptype_6Cython_8Compiler_7Visitor_TreeVisitor;
 
9539
  if (PyType_Ready(&__pyx_type_6Cython_8Compiler_7Visitor_VisitorTransform) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 213; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
9540
  if (__Pyx_SetVtable(__pyx_type_6Cython_8Compiler_7Visitor_VisitorTransform.tp_dict, __pyx_vtabptr_6Cython_8Compiler_7Visitor_VisitorTransform) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 213; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
9541
  if (__Pyx_SetAttrString(__pyx_m, "VisitorTransform", (PyObject *)&__pyx_type_6Cython_8Compiler_7Visitor_VisitorTransform) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 213; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
9542
  __pyx_ptype_6Cython_8Compiler_7Visitor_VisitorTransform = &__pyx_type_6Cython_8Compiler_7Visitor_VisitorTransform;
 
9543
  __pyx_vtabptr_6Cython_8Compiler_7Visitor_CythonTransform = &__pyx_vtable_6Cython_8Compiler_7Visitor_CythonTransform;
 
9544
  __pyx_vtable_6Cython_8Compiler_7Visitor_CythonTransform.__pyx_base = *__pyx_vtabptr_6Cython_8Compiler_7Visitor_VisitorTransform;
 
9545
  __pyx_type_6Cython_8Compiler_7Visitor_CythonTransform.tp_base = __pyx_ptype_6Cython_8Compiler_7Visitor_VisitorTransform;
 
9546
  if (PyType_Ready(&__pyx_type_6Cython_8Compiler_7Visitor_CythonTransform) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 257; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
9547
  if (__Pyx_SetVtable(__pyx_type_6Cython_8Compiler_7Visitor_CythonTransform.tp_dict, __pyx_vtabptr_6Cython_8Compiler_7Visitor_CythonTransform) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 257; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
9548
  if (__Pyx_SetAttrString(__pyx_m, "CythonTransform", (PyObject *)&__pyx_type_6Cython_8Compiler_7Visitor_CythonTransform) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 257; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
9549
  __pyx_ptype_6Cython_8Compiler_7Visitor_CythonTransform = &__pyx_type_6Cython_8Compiler_7Visitor_CythonTransform;
 
9550
  __pyx_vtabptr_6Cython_8Compiler_7Visitor_ScopeTrackingTransform = &__pyx_vtable_6Cython_8Compiler_7Visitor_ScopeTrackingTransform;
 
9551
  __pyx_vtable_6Cython_8Compiler_7Visitor_ScopeTrackingTransform.__pyx_base = *__pyx_vtabptr_6Cython_8Compiler_7Visitor_CythonTransform;
 
9552
  __pyx_vtable_6Cython_8Compiler_7Visitor_ScopeTrackingTransform.visit_scope = (PyObject *(*)(struct __pyx_obj_6Cython_8Compiler_7Visitor_ScopeTrackingTransform *, PyObject *, PyObject *))__pyx_f_6Cython_8Compiler_7Visitor_22ScopeTrackingTransform_visit_scope;
 
9553
  __pyx_type_6Cython_8Compiler_7Visitor_ScopeTrackingTransform.tp_base = __pyx_ptype_6Cython_8Compiler_7Visitor_CythonTransform;
 
9554
  if (PyType_Ready(&__pyx_type_6Cython_8Compiler_7Visitor_ScopeTrackingTransform) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 285; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
9555
  if (__Pyx_SetVtable(__pyx_type_6Cython_8Compiler_7Visitor_ScopeTrackingTransform.tp_dict, __pyx_vtabptr_6Cython_8Compiler_7Visitor_ScopeTrackingTransform) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 285; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
9556
  if (__Pyx_SetAttrString(__pyx_m, "ScopeTrackingTransform", (PyObject *)&__pyx_type_6Cython_8Compiler_7Visitor_ScopeTrackingTransform) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 285; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
9557
  __pyx_ptype_6Cython_8Compiler_7Visitor_ScopeTrackingTransform = &__pyx_type_6Cython_8Compiler_7Visitor_ScopeTrackingTransform;
 
9558
  __pyx_vtabptr_6Cython_8Compiler_7Visitor_EnvTransform = &__pyx_vtable_6Cython_8Compiler_7Visitor_EnvTransform;
 
9559
  __pyx_vtable_6Cython_8Compiler_7Visitor_EnvTransform.__pyx_base = *__pyx_vtabptr_6Cython_8Compiler_7Visitor_CythonTransform;
 
9560
  __pyx_type_6Cython_8Compiler_7Visitor_EnvTransform.tp_base = __pyx_ptype_6Cython_8Compiler_7Visitor_CythonTransform;
 
9561
  if (PyType_Ready(&__pyx_type_6Cython_8Compiler_7Visitor_EnvTransform) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 317; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
9562
  if (__Pyx_SetVtable(__pyx_type_6Cython_8Compiler_7Visitor_EnvTransform.tp_dict, __pyx_vtabptr_6Cython_8Compiler_7Visitor_EnvTransform) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 317; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
9563
  if (__Pyx_SetAttrString(__pyx_m, "EnvTransform", (PyObject *)&__pyx_type_6Cython_8Compiler_7Visitor_EnvTransform) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 317; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
9564
  __pyx_ptype_6Cython_8Compiler_7Visitor_EnvTransform = &__pyx_type_6Cython_8Compiler_7Visitor_EnvTransform;
 
9565
  __pyx_vtabptr_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer = &__pyx_vtable_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer;
 
9566
  __pyx_vtable_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer.__pyx_base = *__pyx_vtabptr_6Cython_8Compiler_7Visitor_VisitorTransform;
 
9567
  __pyx_type_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer.tp_base = __pyx_ptype_6Cython_8Compiler_7Visitor_VisitorTransform;
 
9568
  if (PyType_Ready(&__pyx_type_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 335; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
9569
  if (__Pyx_SetVtable(__pyx_type_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer.tp_dict, __pyx_vtabptr_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 335; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
9570
  if (__Pyx_SetAttrString(__pyx_m, "RecursiveNodeReplacer", (PyObject *)&__pyx_type_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 335; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
9571
  __pyx_ptype_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer = &__pyx_type_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer;
 
9572
  /*--- Type import code ---*/
 
9573
  /*--- Function import code ---*/
 
9574
  /*--- Execution code ---*/
 
9575
 
 
9576
  /* "Cython/Compiler/Visitor.py":7
 
9577
 * #
 
9578
 * import cython
 
9579
 * import inspect             # <<<<<<<<<<<<<<
 
9580
 * import Nodes
 
9581
 * import ExprNodes
 
9582
 */
 
9583
  __pyx_t_1 = __Pyx_Import(((PyObject *)__pyx_n_s__inspect), 0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 7; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
9584
  __Pyx_GOTREF(__pyx_t_1);
 
9585
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__inspect, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 7; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
9586
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
9587
 
 
9588
  /* "Cython/Compiler/Visitor.py":8
 
9589
 * import cython
 
9590
 * import inspect
 
9591
 * import Nodes             # <<<<<<<<<<<<<<
 
9592
 * import ExprNodes
 
9593
 * import Naming
 
9594
 */
 
9595
  __pyx_t_1 = __Pyx_Import(((PyObject *)__pyx_n_s__Nodes), 0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 8; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
9596
  __Pyx_GOTREF(__pyx_t_1);
 
9597
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__Nodes, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 8; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
9598
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
9599
 
 
9600
  /* "Cython/Compiler/Visitor.py":9
 
9601
 * import inspect
 
9602
 * import Nodes
 
9603
 * import ExprNodes             # <<<<<<<<<<<<<<
 
9604
 * import Naming
 
9605
 * import Errors
 
9606
 */
 
9607
  __pyx_t_1 = __Pyx_Import(((PyObject *)__pyx_n_s__ExprNodes), 0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 9; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
9608
  __Pyx_GOTREF(__pyx_t_1);
 
9609
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__ExprNodes, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 9; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
9610
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
9611
 
 
9612
  /* "Cython/Compiler/Visitor.py":10
 
9613
 * import Nodes
 
9614
 * import ExprNodes
 
9615
 * import Naming             # <<<<<<<<<<<<<<
 
9616
 * import Errors
 
9617
 * import DebugFlags
 
9618
 */
 
9619
  __pyx_t_1 = __Pyx_Import(((PyObject *)__pyx_n_s__Naming), 0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 10; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
9620
  __Pyx_GOTREF(__pyx_t_1);
 
9621
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__Naming, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 10; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
9622
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
9623
 
 
9624
  /* "Cython/Compiler/Visitor.py":11
 
9625
 * import ExprNodes
 
9626
 * import Naming
 
9627
 * import Errors             # <<<<<<<<<<<<<<
 
9628
 * import DebugFlags
 
9629
 * 
 
9630
 */
 
9631
  __pyx_t_1 = __Pyx_Import(((PyObject *)__pyx_n_s__Errors), 0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 11; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
9632
  __Pyx_GOTREF(__pyx_t_1);
 
9633
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__Errors, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 11; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
9634
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
9635
 
 
9636
  /* "Cython/Compiler/Visitor.py":12
 
9637
 * import Naming
 
9638
 * import Errors
 
9639
 * import DebugFlags             # <<<<<<<<<<<<<<
 
9640
 * 
 
9641
 * class TreeVisitor(object):
 
9642
 */
 
9643
  __pyx_t_1 = __Pyx_Import(((PyObject *)__pyx_n_s__DebugFlags), 0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 12; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
9644
  __Pyx_GOTREF(__pyx_t_1);
 
9645
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__DebugFlags, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 12; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
9646
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
9647
 
 
9648
  /* "Cython/Compiler/Visitor.py":351
 
9649
 *             return node
 
9650
 * 
 
9651
 * def recursively_replace_node(tree, old_node, new_node):             # <<<<<<<<<<<<<<
 
9652
 *     replace_in = RecursiveNodeReplacer(old_node, new_node)
 
9653
 *     replace_in(tree)
 
9654
 */
 
9655
  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_6Cython_8Compiler_7Visitor_recursively_replace_node, NULL, __pyx_n_s_34); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 351; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
9656
  __Pyx_GOTREF(__pyx_t_1);
 
9657
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_35, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 351; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
9658
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
9659
 
 
9660
  /* "Cython/Compiler/Visitor.py":357
 
9661
 * 
 
9662
 * # Utils
 
9663
 * def ensure_statlist(node):             # <<<<<<<<<<<<<<
 
9664
 *     if not isinstance(node, Nodes.StatListNode):
 
9665
 *         node = Nodes.StatListNode(pos=node.pos, stats=[node])
 
9666
 */
 
9667
  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_6Cython_8Compiler_7Visitor_1ensure_statlist, NULL, __pyx_n_s_34); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 357; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
9668
  __Pyx_GOTREF(__pyx_t_1);
 
9669
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__ensure_statlist, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 357; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
9670
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
9671
 
 
9672
  /* "Cython/Compiler/Visitor.py":362
 
9673
 *     return node
 
9674
 * 
 
9675
 * def replace_node(ptr, value):             # <<<<<<<<<<<<<<
 
9676
 *     """Replaces a node. ptr is of the form used on the access path stack
 
9677
 *     (parent, attrname, listidx|None)
 
9678
 */
 
9679
  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_6Cython_8Compiler_7Visitor_2replace_node, NULL, __pyx_n_s_34); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 362; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
9680
  __Pyx_GOTREF(__pyx_t_1);
 
9681
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__replace_node, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 362; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
9682
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
9683
 
 
9684
  /* "Cython/Compiler/Visitor.py":372
 
9685
 *         getattr(parent, attrname)[listidx] = value
 
9686
 * 
 
9687
 * class PrintTree(TreeVisitor):             # <<<<<<<<<<<<<<
 
9688
 *     """Prints a representation of the tree to standard output.
 
9689
 *     Subclass and override repr_of to provide more information
 
9690
 */
 
9691
  __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 372; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
9692
  __Pyx_GOTREF(((PyObject *)__pyx_t_1));
 
9693
 
 
9694
  /* "Cython/Compiler/Visitor.py":376
 
9695
 *     Subclass and override repr_of to provide more information
 
9696
 *     about nodes. """
 
9697
 *     def __init__(self):             # <<<<<<<<<<<<<<
 
9698
 *         TreeVisitor.__init__(self)
 
9699
 *         self._indent = ""
 
9700
 */
 
9701
  __pyx_t_2 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_6Cython_8Compiler_7Visitor_9PrintTree___init__, NULL, __pyx_n_s_34); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 376; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
9702
  __Pyx_GOTREF(__pyx_t_2);
 
9703
  if (PyObject_SetItem(__pyx_t_1, __pyx_n_s____init__, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 376; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
9704
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 
9705
 
 
9706
  /* "Cython/Compiler/Visitor.py":380
 
9707
 *         self._indent = ""
 
9708
 * 
 
9709
 *     def indent(self):             # <<<<<<<<<<<<<<
 
9710
 *         self._indent += "  "
 
9711
 *     def unindent(self):
 
9712
 */
 
9713
  __pyx_t_2 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_6Cython_8Compiler_7Visitor_9PrintTree_1indent, NULL, __pyx_n_s_34); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 380; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
9714
  __Pyx_GOTREF(__pyx_t_2);
 
9715
  if (PyObject_SetItem(__pyx_t_1, __pyx_n_s__indent, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 380; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
9716
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 
9717
 
 
9718
  /* "Cython/Compiler/Visitor.py":382
 
9719
 *     def indent(self):
 
9720
 *         self._indent += "  "
 
9721
 *     def unindent(self):             # <<<<<<<<<<<<<<
 
9722
 *         self._indent = self._indent[:-2]
 
9723
 * 
 
9724
 */
 
9725
  __pyx_t_2 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_6Cython_8Compiler_7Visitor_9PrintTree_2unindent, NULL, __pyx_n_s_34); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 382; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
9726
  __Pyx_GOTREF(__pyx_t_2);
 
9727
  if (PyObject_SetItem(__pyx_t_1, __pyx_n_s__unindent, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 382; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
9728
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 
9729
 
 
9730
  /* "Cython/Compiler/Visitor.py":385
 
9731
 *         self._indent = self._indent[:-2]
 
9732
 * 
 
9733
 *     def __call__(self, tree, phase=None):             # <<<<<<<<<<<<<<
 
9734
 *         print("Parse tree dump at phase '%s'" % phase)
 
9735
 *         self._visit(tree)
 
9736
 */
 
9737
  __pyx_t_2 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_6Cython_8Compiler_7Visitor_9PrintTree_3__call__, NULL, __pyx_n_s_34); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 385; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
9738
  __Pyx_GOTREF(__pyx_t_2);
 
9739
  if (PyObject_SetItem(__pyx_t_1, __pyx_n_s____call__, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 385; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
9740
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 
9741
 
 
9742
  /* "Cython/Compiler/Visitor.py":394
 
9743
 *     # under the parent-node, not displaying the list itself in
 
9744
 *     # the hierarchy.
 
9745
 *     def visit_Node(self, node):             # <<<<<<<<<<<<<<
 
9746
 *         if len(self.access_path) == 0:
 
9747
 *             name = "(root)"
 
9748
 */
 
9749
  __pyx_t_2 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_6Cython_8Compiler_7Visitor_9PrintTree_4visit_Node, NULL, __pyx_n_s_34); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 394; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
9750
  __Pyx_GOTREF(__pyx_t_2);
 
9751
  if (PyObject_SetItem(__pyx_t_1, __pyx_n_s__visit_Node, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 394; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
9752
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 
9753
 
 
9754
  /* "Cython/Compiler/Visitor.py":409
 
9755
 *         return node
 
9756
 * 
 
9757
 *     def repr_of(self, node):             # <<<<<<<<<<<<<<
 
9758
 *         if node is None:
 
9759
 *             return "(none)"
 
9760
 */
 
9761
  __pyx_t_2 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_6Cython_8Compiler_7Visitor_9PrintTree_5repr_of, NULL, __pyx_n_s_34); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 409; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
9762
  __Pyx_GOTREF(__pyx_t_2);
 
9763
  if (PyObject_SetItem(__pyx_t_1, __pyx_n_s__repr_of, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 409; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
9764
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 
9765
 
 
9766
  /* "Cython/Compiler/Visitor.py":372
 
9767
 *         getattr(parent, attrname)[listidx] = value
 
9768
 * 
 
9769
 * class PrintTree(TreeVisitor):             # <<<<<<<<<<<<<<
 
9770
 *     """Prints a representation of the tree to standard output.
 
9771
 *     Subclass and override repr_of to provide more information
 
9772
 */
 
9773
  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 372; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
9774
  __Pyx_GOTREF(((PyObject *)__pyx_t_2));
 
9775
  __Pyx_INCREF(((PyObject *)((PyObject*)__pyx_ptype_6Cython_8Compiler_7Visitor_TreeVisitor)));
 
9776
  PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)((PyObject*)__pyx_ptype_6Cython_8Compiler_7Visitor_TreeVisitor)));
 
9777
  __Pyx_GIVEREF(((PyObject *)((PyObject*)__pyx_ptype_6Cython_8Compiler_7Visitor_TreeVisitor)));
 
9778
  if (PyDict_SetItemString(((PyObject *)__pyx_t_1), "__doc__", ((PyObject *)__pyx_kp_s_36)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 372; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
9779
  __pyx_t_3 = __Pyx_CreateClass(((PyObject *)__pyx_t_2), ((PyObject *)__pyx_t_1), __pyx_n_s__PrintTree, __pyx_n_s_34); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 372; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
9780
  __Pyx_GOTREF(__pyx_t_3);
 
9781
  __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
 
9782
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__PrintTree, __pyx_t_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 372; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
9783
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 
9784
  __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
 
9785
 
 
9786
  /* "Cython/Compiler/Visitor.py":432
 
9787
 *             return result
 
9788
 * 
 
9789
 * if __name__ == "__main__":             # <<<<<<<<<<<<<<
 
9790
 *     import doctest
 
9791
 *     doctest.testmod()
 
9792
 */
 
9793
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s____name__); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 432; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
9794
  __Pyx_GOTREF(__pyx_t_1);
 
9795
  __pyx_t_3 = PyObject_RichCompare(__pyx_t_1, ((PyObject *)__pyx_n_s____main__), Py_EQ); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 432; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
9796
  __Pyx_GOTREF(__pyx_t_3);
 
9797
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
9798
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 432; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
9799
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 
9800
  if (__pyx_t_4) {
 
9801
 
 
9802
    /* "Cython/Compiler/Visitor.py":433
 
9803
 * 
 
9804
 * if __name__ == "__main__":
 
9805
 *     import doctest             # <<<<<<<<<<<<<<
 
9806
 *     doctest.testmod()
 
9807
 */
 
9808
    __pyx_t_3 = __Pyx_Import(((PyObject *)__pyx_n_s__doctest), 0); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 433; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
9809
    __Pyx_GOTREF(__pyx_t_3);
 
9810
    if (PyObject_SetAttr(__pyx_m, __pyx_n_s__doctest, __pyx_t_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 433; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
9811
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 
9812
 
 
9813
    /* "Cython/Compiler/Visitor.py":434
 
9814
 * if __name__ == "__main__":
 
9815
 *     import doctest
 
9816
 *     doctest.testmod()             # <<<<<<<<<<<<<<
 
9817
 */
 
9818
    __pyx_t_3 = __Pyx_GetName(__pyx_m, __pyx_n_s__doctest); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 434; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
9819
    __Pyx_GOTREF(__pyx_t_3);
 
9820
    __pyx_t_1 = PyObject_GetAttr(__pyx_t_3, __pyx_n_s__testmod); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 434; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
9821
    __Pyx_GOTREF(__pyx_t_1);
 
9822
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 
9823
    __pyx_t_3 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 434; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
9824
    __Pyx_GOTREF(__pyx_t_3);
 
9825
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
9826
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 
9827
    goto __pyx_L2;
 
9828
  }
 
9829
  __pyx_L2:;
 
9830
 
 
9831
  /* "Cython/Compiler/Visitor.py":1
 
9832
 * # cython: infer_types=True             # <<<<<<<<<<<<<<
 
9833
 * 
 
9834
 * #
 
9835
 */
 
9836
  __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
9837
  __Pyx_GOTREF(((PyObject *)__pyx_t_3));
 
9838
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s____test__, ((PyObject *)__pyx_t_3)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
9839
  __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
 
9840
  goto __pyx_L0;
 
9841
  __pyx_L1_error:;
 
9842
  __Pyx_XDECREF(__pyx_t_1);
 
9843
  __Pyx_XDECREF(__pyx_t_2);
 
9844
  __Pyx_XDECREF(__pyx_t_3);
 
9845
  if (__pyx_m) {
 
9846
    __Pyx_AddTraceback("init Cython.Compiler.Visitor");
 
9847
    Py_DECREF(__pyx_m); __pyx_m = 0;
 
9848
  } else if (!PyErr_Occurred()) {
 
9849
    PyErr_SetString(PyExc_ImportError, "init Cython.Compiler.Visitor");
 
9850
  }
 
9851
  __pyx_L0:;
 
9852
  __Pyx_RefNannyFinishContext();
 
9853
  #if PY_MAJOR_VERSION < 3
 
9854
  return;
 
9855
  #else
 
9856
  return __pyx_m;
 
9857
  #endif
 
9858
}
 
9859
 
 
9860
/* Runtime support code */
 
9861
 
 
9862
static PyObject *__Pyx_GetName(PyObject *dict, PyObject *name) {
 
9863
    PyObject *result;
 
9864
    result = PyObject_GetAttr(dict, name);
 
9865
    if (!result)
 
9866
        PyErr_SetObject(PyExc_NameError, name);
 
9867
    return result;
 
9868
}
 
9869
 
 
9870
static void __Pyx_RaiseArgtupleInvalid(
 
9871
    const char* func_name,
 
9872
    int exact,
 
9873
    Py_ssize_t num_min,
 
9874
    Py_ssize_t num_max,
 
9875
    Py_ssize_t num_found)
 
9876
{
 
9877
    Py_ssize_t num_expected;
 
9878
    const char *number, *more_or_less;
 
9879
 
 
9880
    if (num_found < num_min) {
 
9881
        num_expected = num_min;
 
9882
        more_or_less = "at least";
 
9883
    } else {
 
9884
        num_expected = num_max;
 
9885
        more_or_less = "at most";
 
9886
    }
 
9887
    if (exact) {
 
9888
        more_or_less = "exactly";
 
9889
    }
 
9890
    number = (num_expected == 1) ? "" : "s";
 
9891
    PyErr_Format(PyExc_TypeError,
 
9892
        #if PY_VERSION_HEX < 0x02050000
 
9893
            "%s() takes %s %d positional argument%s (%d given)",
 
9894
        #else
 
9895
            "%s() takes %s %zd positional argument%s (%zd given)",
 
9896
        #endif
 
9897
        func_name, more_or_less, num_expected, number, num_found);
 
9898
}
 
9899
 
 
9900
static CYTHON_INLINE int __Pyx_CheckKeywordStrings(
 
9901
    PyObject *kwdict,
 
9902
    const char* function_name,
 
9903
    int kw_allowed)
 
9904
{
 
9905
    PyObject* key = 0;
 
9906
    Py_ssize_t pos = 0;
 
9907
    while (PyDict_Next(kwdict, &pos, &key, 0)) {
 
9908
        #if PY_MAJOR_VERSION < 3
 
9909
        if (unlikely(!PyString_CheckExact(key)) && unlikely(!PyString_Check(key)))
 
9910
        #else
 
9911
        if (unlikely(!PyUnicode_CheckExact(key)) && unlikely(!PyUnicode_Check(key)))
 
9912
        #endif
 
9913
            goto invalid_keyword_type;
 
9914
    }
 
9915
    if ((!kw_allowed) && unlikely(key))
 
9916
        goto invalid_keyword;
 
9917
    return 1;
 
9918
invalid_keyword_type:
 
9919
    PyErr_Format(PyExc_TypeError,
 
9920
        "%s() keywords must be strings", function_name);
 
9921
    return 0;
 
9922
invalid_keyword:
 
9923
    PyErr_Format(PyExc_TypeError,
 
9924
    #if PY_MAJOR_VERSION < 3
 
9925
        "%s() got an unexpected keyword argument '%s'",
 
9926
        function_name, PyString_AsString(key));
 
9927
    #else
 
9928
        "%s() got an unexpected keyword argument '%U'",
 
9929
        function_name, key);
 
9930
    #endif
 
9931
    return 0;
 
9932
}
 
9933
 
 
9934
static void __Pyx_RaiseDoubleKeywordsError(
 
9935
    const char* func_name,
 
9936
    PyObject* kw_name)
 
9937
{
 
9938
    PyErr_Format(PyExc_TypeError,
 
9939
        #if PY_MAJOR_VERSION >= 3
 
9940
        "%s() got multiple values for keyword argument '%U'", func_name, kw_name);
 
9941
        #else
 
9942
        "%s() got multiple values for keyword argument '%s'", func_name,
 
9943
        PyString_AS_STRING(kw_name));
 
9944
        #endif
 
9945
}
 
9946
 
 
9947
static int __Pyx_ParseOptionalKeywords(
 
9948
    PyObject *kwds,
 
9949
    PyObject **argnames[],
 
9950
    PyObject *kwds2,
 
9951
    PyObject *values[],
 
9952
    Py_ssize_t num_pos_args,
 
9953
    const char* function_name)
 
9954
{
 
9955
    PyObject *key = 0, *value = 0;
 
9956
    Py_ssize_t pos = 0;
 
9957
    PyObject*** name;
 
9958
    PyObject*** first_kw_arg = argnames + num_pos_args;
 
9959
 
 
9960
    while (PyDict_Next(kwds, &pos, &key, &value)) {
 
9961
        name = first_kw_arg;
 
9962
        while (*name && (**name != key)) name++;
 
9963
        if (*name) {
 
9964
            values[name-argnames] = value;
 
9965
        } else {
 
9966
            #if PY_MAJOR_VERSION < 3
 
9967
            if (unlikely(!PyString_CheckExact(key)) && unlikely(!PyString_Check(key))) {
 
9968
            #else
 
9969
            if (unlikely(!PyUnicode_CheckExact(key)) && unlikely(!PyUnicode_Check(key))) {
 
9970
            #endif
 
9971
                goto invalid_keyword_type;
 
9972
            } else {
 
9973
                for (name = first_kw_arg; *name; name++) {
 
9974
                    #if PY_MAJOR_VERSION >= 3
 
9975
                    if (PyUnicode_GET_SIZE(**name) == PyUnicode_GET_SIZE(key) &&
 
9976
                        PyUnicode_Compare(**name, key) == 0) break;
 
9977
                    #else
 
9978
                    if (PyString_GET_SIZE(**name) == PyString_GET_SIZE(key) &&
 
9979
                        _PyString_Eq(**name, key)) break;
 
9980
                    #endif
 
9981
                }
 
9982
                if (*name) {
 
9983
                    values[name-argnames] = value;
 
9984
                } else {
 
9985
                    /* unexpected keyword found */
 
9986
                    for (name=argnames; name != first_kw_arg; name++) {
 
9987
                        if (**name == key) goto arg_passed_twice;
 
9988
                        #if PY_MAJOR_VERSION >= 3
 
9989
                        if (PyUnicode_GET_SIZE(**name) == PyUnicode_GET_SIZE(key) &&
 
9990
                            PyUnicode_Compare(**name, key) == 0) goto arg_passed_twice;
 
9991
                        #else
 
9992
                        if (PyString_GET_SIZE(**name) == PyString_GET_SIZE(key) &&
 
9993
                            _PyString_Eq(**name, key)) goto arg_passed_twice;
 
9994
                        #endif
 
9995
                    }
 
9996
                    if (kwds2) {
 
9997
                        if (unlikely(PyDict_SetItem(kwds2, key, value))) goto bad;
 
9998
                    } else {
 
9999
                        goto invalid_keyword;
 
10000
                    }
 
10001
                }
 
10002
            }
 
10003
        }
 
10004
    }
 
10005
    return 0;
 
10006
arg_passed_twice:
 
10007
    __Pyx_RaiseDoubleKeywordsError(function_name, **name);
 
10008
    goto bad;
 
10009
invalid_keyword_type:
 
10010
    PyErr_Format(PyExc_TypeError,
 
10011
        "%s() keywords must be strings", function_name);
 
10012
    goto bad;
 
10013
invalid_keyword:
 
10014
    PyErr_Format(PyExc_TypeError,
 
10015
    #if PY_MAJOR_VERSION < 3
 
10016
        "%s() got an unexpected keyword argument '%s'",
 
10017
        function_name, PyString_AsString(key));
 
10018
    #else
 
10019
        "%s() got an unexpected keyword argument '%U'",
 
10020
        function_name, key);
 
10021
    #endif
 
10022
bad:
 
10023
    return -1;
 
10024
}
 
10025
 
 
10026
 
 
10027
static int __Pyx_GetException(PyObject **type, PyObject **value, PyObject **tb) {
 
10028
    PyObject *local_type, *local_value, *local_tb;
 
10029
    PyObject *tmp_type, *tmp_value, *tmp_tb;
 
10030
    PyThreadState *tstate = PyThreadState_GET();
 
10031
    local_type = tstate->curexc_type;
 
10032
    local_value = tstate->curexc_value;
 
10033
    local_tb = tstate->curexc_traceback;
 
10034
    tstate->curexc_type = 0;
 
10035
    tstate->curexc_value = 0;
 
10036
    tstate->curexc_traceback = 0;
 
10037
    PyErr_NormalizeException(&local_type, &local_value, &local_tb);
 
10038
    if (unlikely(tstate->curexc_type))
 
10039
        goto bad;
 
10040
    #if PY_MAJOR_VERSION >= 3
 
10041
    if (unlikely(PyException_SetTraceback(local_value, local_tb) < 0))
 
10042
        goto bad;
 
10043
    #endif
 
10044
    *type = local_type;
 
10045
    *value = local_value;
 
10046
    *tb = local_tb;
 
10047
    Py_INCREF(local_type);
 
10048
    Py_INCREF(local_value);
 
10049
    Py_INCREF(local_tb);
 
10050
    tmp_type = tstate->exc_type;
 
10051
    tmp_value = tstate->exc_value;
 
10052
    tmp_tb = tstate->exc_traceback;
 
10053
    tstate->exc_type = local_type;
 
10054
    tstate->exc_value = local_value;
 
10055
    tstate->exc_traceback = local_tb;
 
10056
    /* Make sure tstate is in a consistent state when we XDECREF
 
10057
       these objects (XDECREF may run arbitrary code). */
 
10058
    Py_XDECREF(tmp_type);
 
10059
    Py_XDECREF(tmp_value);
 
10060
    Py_XDECREF(tmp_tb);
 
10061
    return 0;
 
10062
bad:
 
10063
    *type = 0;
 
10064
    *value = 0;
 
10065
    *tb = 0;
 
10066
    Py_XDECREF(local_type);
 
10067
    Py_XDECREF(local_value);
 
10068
    Py_XDECREF(local_tb);
 
10069
    return -1;
 
10070
}
 
10071
 
 
10072
 
 
10073
static CYTHON_INLINE void __Pyx_RaiseNeedMoreValuesError(Py_ssize_t index) {
 
10074
    PyErr_Format(PyExc_ValueError,
 
10075
        #if PY_VERSION_HEX < 0x02050000
 
10076
                 "need more than %d value%s to unpack", (int)index,
 
10077
        #else
 
10078
                 "need more than %zd value%s to unpack", index,
 
10079
        #endif
 
10080
                 (index == 1) ? "" : "s");
 
10081
}
 
10082
 
 
10083
static CYTHON_INLINE void __Pyx_RaiseTooManyValuesError(Py_ssize_t expected) {
 
10084
    PyErr_Format(PyExc_ValueError,
 
10085
        #if PY_VERSION_HEX < 0x02050000
 
10086
            "too many values to unpack (expected %d)", (int)expected);
 
10087
        #else
 
10088
            "too many values to unpack (expected %zd)", expected);
 
10089
        #endif
 
10090
}
 
10091
 
 
10092
static PyObject *__Pyx_UnpackItem(PyObject *iter, Py_ssize_t index) {
 
10093
    PyObject *item;
 
10094
    if (!(item = PyIter_Next(iter))) {
 
10095
        if (!PyErr_Occurred()) {
 
10096
            __Pyx_RaiseNeedMoreValuesError(index);
 
10097
        }
 
10098
    }
 
10099
    return item;
 
10100
}
 
10101
 
 
10102
static int __Pyx_EndUnpack(PyObject *iter, Py_ssize_t expected) {
 
10103
    PyObject *item;
 
10104
    if ((item = PyIter_Next(iter))) {
 
10105
        Py_DECREF(item);
 
10106
        __Pyx_RaiseTooManyValuesError(expected);
 
10107
        return -1;
 
10108
    }
 
10109
    else if (!PyErr_Occurred())
 
10110
        return 0;
 
10111
    else
 
10112
        return -1;
 
10113
}
 
10114
 
 
10115
static CYTHON_INLINE void __Pyx_ErrRestore(PyObject *type, PyObject *value, PyObject *tb) {
 
10116
    PyObject *tmp_type, *tmp_value, *tmp_tb;
 
10117
    PyThreadState *tstate = PyThreadState_GET();
 
10118
 
 
10119
    tmp_type = tstate->curexc_type;
 
10120
    tmp_value = tstate->curexc_value;
 
10121
    tmp_tb = tstate->curexc_traceback;
 
10122
    tstate->curexc_type = type;
 
10123
    tstate->curexc_value = value;
 
10124
    tstate->curexc_traceback = tb;
 
10125
    Py_XDECREF(tmp_type);
 
10126
    Py_XDECREF(tmp_value);
 
10127
    Py_XDECREF(tmp_tb);
 
10128
}
 
10129
 
 
10130
static CYTHON_INLINE void __Pyx_ErrFetch(PyObject **type, PyObject **value, PyObject **tb) {
 
10131
    PyThreadState *tstate = PyThreadState_GET();
 
10132
    *type = tstate->curexc_type;
 
10133
    *value = tstate->curexc_value;
 
10134
    *tb = tstate->curexc_traceback;
 
10135
 
 
10136
    tstate->curexc_type = 0;
 
10137
    tstate->curexc_value = 0;
 
10138
    tstate->curexc_traceback = 0;
 
10139
}
 
10140
 
 
10141
 
 
10142
#if PY_MAJOR_VERSION < 3
 
10143
static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb) {
 
10144
    Py_XINCREF(type);
 
10145
    Py_XINCREF(value);
 
10146
    Py_XINCREF(tb);
 
10147
    /* First, check the traceback argument, replacing None with NULL. */
 
10148
    if (tb == Py_None) {
 
10149
        Py_DECREF(tb);
 
10150
        tb = 0;
 
10151
    }
 
10152
    else if (tb != NULL && !PyTraceBack_Check(tb)) {
 
10153
        PyErr_SetString(PyExc_TypeError,
 
10154
            "raise: arg 3 must be a traceback or None");
 
10155
        goto raise_error;
 
10156
    }
 
10157
    /* Next, replace a missing value with None */
 
10158
    if (value == NULL) {
 
10159
        value = Py_None;
 
10160
        Py_INCREF(value);
 
10161
    }
 
10162
    #if PY_VERSION_HEX < 0x02050000
 
10163
    if (!PyClass_Check(type))
 
10164
    #else
 
10165
    if (!PyType_Check(type))
 
10166
    #endif
 
10167
    {
 
10168
        /* Raising an instance.  The value should be a dummy. */
 
10169
        if (value != Py_None) {
 
10170
            PyErr_SetString(PyExc_TypeError,
 
10171
                "instance exception may not have a separate value");
 
10172
            goto raise_error;
 
10173
        }
 
10174
        /* Normalize to raise <class>, <instance> */
 
10175
        Py_DECREF(value);
 
10176
        value = type;
 
10177
        #if PY_VERSION_HEX < 0x02050000
 
10178
            if (PyInstance_Check(type)) {
 
10179
                type = (PyObject*) ((PyInstanceObject*)type)->in_class;
 
10180
                Py_INCREF(type);
 
10181
            }
 
10182
            else {
 
10183
                type = 0;
 
10184
                PyErr_SetString(PyExc_TypeError,
 
10185
                    "raise: exception must be an old-style class or instance");
 
10186
                goto raise_error;
 
10187
            }
 
10188
        #else
 
10189
            type = (PyObject*) Py_TYPE(type);
 
10190
            Py_INCREF(type);
 
10191
            if (!PyType_IsSubtype((PyTypeObject *)type, (PyTypeObject *)PyExc_BaseException)) {
 
10192
                PyErr_SetString(PyExc_TypeError,
 
10193
                    "raise: exception class must be a subclass of BaseException");
 
10194
                goto raise_error;
 
10195
            }
 
10196
        #endif
 
10197
    }
 
10198
 
 
10199
    __Pyx_ErrRestore(type, value, tb);
 
10200
    return;
 
10201
raise_error:
 
10202
    Py_XDECREF(value);
 
10203
    Py_XDECREF(type);
 
10204
    Py_XDECREF(tb);
 
10205
    return;
 
10206
}
 
10207
 
 
10208
#else /* Python 3+ */
 
10209
 
 
10210
static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb) {
 
10211
    if (tb == Py_None) {
 
10212
        tb = 0;
 
10213
    } else if (tb && !PyTraceBack_Check(tb)) {
 
10214
        PyErr_SetString(PyExc_TypeError,
 
10215
            "raise: arg 3 must be a traceback or None");
 
10216
        goto bad;
 
10217
    }
 
10218
    if (value == Py_None)
 
10219
        value = 0;
 
10220
 
 
10221
    if (PyExceptionInstance_Check(type)) {
 
10222
        if (value) {
 
10223
            PyErr_SetString(PyExc_TypeError,
 
10224
                "instance exception may not have a separate value");
 
10225
            goto bad;
 
10226
        }
 
10227
        value = type;
 
10228
        type = (PyObject*) Py_TYPE(value);
 
10229
    } else if (!PyExceptionClass_Check(type)) {
 
10230
        PyErr_SetString(PyExc_TypeError,
 
10231
            "raise: exception class must be a subclass of BaseException");
 
10232
        goto bad;
 
10233
    }
 
10234
 
 
10235
    PyErr_SetObject(type, value);
 
10236
 
 
10237
    if (tb) {
 
10238
        PyThreadState *tstate = PyThreadState_GET();
 
10239
        PyObject* tmp_tb = tstate->curexc_traceback;
 
10240
        if (tb != tmp_tb) {
 
10241
            Py_INCREF(tb);
 
10242
            tstate->curexc_traceback = tb;
 
10243
            Py_XDECREF(tmp_tb);
 
10244
        }
 
10245
    }
 
10246
 
 
10247
bad:
 
10248
    return;
 
10249
}
 
10250
#endif
 
10251
 
 
10252
static CYTHON_INLINE void __Pyx_RaiseNoneIndexingError(void) {
 
10253
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is unsubscriptable");
 
10254
}
 
10255
 
 
10256
static CYTHON_INLINE void __Pyx_RaiseNoneNotIterableError(void) {
 
10257
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
 
10258
}
 
10259
 
 
10260
static void __Pyx_UnpackTupleError(PyObject *t, Py_ssize_t index) {
 
10261
    if (t == Py_None) {
 
10262
      __Pyx_RaiseNoneNotIterableError();
 
10263
    } else if (PyTuple_GET_SIZE(t) < index) {
 
10264
      __Pyx_RaiseNeedMoreValuesError(PyTuple_GET_SIZE(t));
 
10265
    } else {
 
10266
      __Pyx_RaiseTooManyValuesError(index);
 
10267
    }
 
10268
}
 
10269
 
 
10270
static CYTHON_INLINE void __Pyx_ExceptionSave(PyObject **type, PyObject **value, PyObject **tb) {
 
10271
    PyThreadState *tstate = PyThreadState_GET();
 
10272
    *type = tstate->exc_type;
 
10273
    *value = tstate->exc_value;
 
10274
    *tb = tstate->exc_traceback;
 
10275
    Py_XINCREF(*type);
 
10276
    Py_XINCREF(*value);
 
10277
    Py_XINCREF(*tb);
 
10278
}
 
10279
 
 
10280
static void __Pyx_ExceptionReset(PyObject *type, PyObject *value, PyObject *tb) {
 
10281
    PyObject *tmp_type, *tmp_value, *tmp_tb;
 
10282
    PyThreadState *tstate = PyThreadState_GET();
 
10283
    tmp_type = tstate->exc_type;
 
10284
    tmp_value = tstate->exc_value;
 
10285
    tmp_tb = tstate->exc_traceback;
 
10286
    tstate->exc_type = type;
 
10287
    tstate->exc_value = value;
 
10288
    tstate->exc_traceback = tb;
 
10289
    Py_XDECREF(tmp_type);
 
10290
    Py_XDECREF(tmp_value);
 
10291
    Py_XDECREF(tmp_tb);
 
10292
}
 
10293
 
 
10294
static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list) {
 
10295
    PyObject *py_import = 0;
 
10296
    PyObject *empty_list = 0;
 
10297
    PyObject *module = 0;
 
10298
    PyObject *global_dict = 0;
 
10299
    PyObject *empty_dict = 0;
 
10300
    PyObject *list;
 
10301
    py_import = __Pyx_GetAttrString(__pyx_b, "__import__");
 
10302
    if (!py_import)
 
10303
        goto bad;
 
10304
    if (from_list)
 
10305
        list = from_list;
 
10306
    else {
 
10307
        empty_list = PyList_New(0);
 
10308
        if (!empty_list)
 
10309
            goto bad;
 
10310
        list = empty_list;
 
10311
    }
 
10312
    global_dict = PyModule_GetDict(__pyx_m);
 
10313
    if (!global_dict)
 
10314
        goto bad;
 
10315
    empty_dict = PyDict_New();
 
10316
    if (!empty_dict)
 
10317
        goto bad;
 
10318
    module = PyObject_CallFunctionObjArgs(py_import,
 
10319
        name, global_dict, empty_dict, list, NULL);
 
10320
bad:
 
10321
    Py_XDECREF(empty_list);
 
10322
    Py_XDECREF(py_import);
 
10323
    Py_XDECREF(empty_dict);
 
10324
    return module;
 
10325
}
 
10326
 
 
10327
static PyObject *__Pyx_FindPy2Metaclass(PyObject *bases) {
 
10328
    PyObject *metaclass;
 
10329
    /* Default metaclass */
 
10330
#if PY_MAJOR_VERSION < 3
 
10331
    if (PyTuple_Check(bases) && PyTuple_GET_SIZE(bases) > 0) {
 
10332
        PyObject *base = PyTuple_GET_ITEM(bases, 0);
 
10333
        metaclass = PyObject_GetAttrString(base, "__class__");
 
10334
        if (!metaclass) {
 
10335
            PyErr_Clear();
 
10336
            metaclass = (PyObject*) Py_TYPE(base);
 
10337
        }
 
10338
    } else {
 
10339
        metaclass = (PyObject *) &PyClass_Type;
 
10340
    }
 
10341
#else
 
10342
    if (PyTuple_Check(bases) && PyTuple_GET_SIZE(bases) > 0) {
 
10343
        PyObject *base = PyTuple_GET_ITEM(bases, 0);
 
10344
        metaclass = (PyObject*) Py_TYPE(base);
 
10345
    } else {
 
10346
        metaclass = (PyObject *) &PyType_Type;
 
10347
    }
 
10348
#endif
 
10349
    Py_INCREF(metaclass);
 
10350
    return metaclass;
 
10351
}
 
10352
 
 
10353
static PyObject *__Pyx_CreateClass(PyObject *bases, PyObject *dict, PyObject *name,
 
10354
                                   PyObject *modname) {
 
10355
    PyObject *result;
 
10356
    PyObject *metaclass;
 
10357
 
 
10358
    if (PyDict_SetItemString(dict, "__module__", modname) < 0)
 
10359
        return NULL;
 
10360
 
 
10361
    /* Python2 __metaclass__ */
 
10362
    metaclass = PyDict_GetItemString(dict, "__metaclass__");
 
10363
    if (metaclass) {
 
10364
        Py_INCREF(metaclass);
 
10365
    } else {
 
10366
        metaclass = __Pyx_FindPy2Metaclass(bases);
 
10367
    }
 
10368
    result = PyObject_CallFunctionObjArgs(metaclass, name, bases, dict, NULL);
 
10369
    Py_DECREF(metaclass);
 
10370
    return result;
 
10371
}
 
10372
 
 
10373
 
 
10374
static PyObject *__pyx_binding_PyCFunctionType_NewEx(PyMethodDef *ml, PyObject *self, PyObject *module) {
 
10375
        __pyx_binding_PyCFunctionType_object *op = PyObject_GC_New(__pyx_binding_PyCFunctionType_object, __pyx_binding_PyCFunctionType);
 
10376
    if (op == NULL)
 
10377
        return NULL;
 
10378
        op->func.m_ml = ml;
 
10379
        Py_XINCREF(self);
 
10380
        op->func.m_self = self;
 
10381
        Py_XINCREF(module);
 
10382
        op->func.m_module = module;
 
10383
        PyObject_GC_Track(op);
 
10384
        return (PyObject *)op;
 
10385
}
 
10386
 
 
10387
static void __pyx_binding_PyCFunctionType_dealloc(__pyx_binding_PyCFunctionType_object *m) {
 
10388
        PyObject_GC_UnTrack(m);
 
10389
        Py_XDECREF(m->func.m_self);
 
10390
        Py_XDECREF(m->func.m_module);
 
10391
    PyObject_GC_Del(m);
 
10392
}
 
10393
 
 
10394
static PyObject *__pyx_binding_PyCFunctionType_descr_get(PyObject *func, PyObject *obj, PyObject *type) {
 
10395
        if (obj == Py_None)
 
10396
                obj = NULL;
 
10397
        return PyMethod_New(func, obj, type);
 
10398
}
 
10399
 
 
10400
static int __pyx_binding_PyCFunctionType_init(void) {
 
10401
    __pyx_binding_PyCFunctionType_type = PyCFunction_Type;
 
10402
    __pyx_binding_PyCFunctionType_type.tp_name = __Pyx_NAMESTR("cython_binding_builtin_function_or_method");
 
10403
    __pyx_binding_PyCFunctionType_type.tp_dealloc = (destructor)__pyx_binding_PyCFunctionType_dealloc;
 
10404
    __pyx_binding_PyCFunctionType_type.tp_descr_get = __pyx_binding_PyCFunctionType_descr_get;
 
10405
    if (PyType_Ready(&__pyx_binding_PyCFunctionType_type) < 0) {
 
10406
        return -1;
 
10407
    }
 
10408
    __pyx_binding_PyCFunctionType = &__pyx_binding_PyCFunctionType_type;
 
10409
    return 0;
 
10410
 
 
10411
}
 
10412
 
 
10413
static CYTHON_INLINE PyObject *__Pyx_GetAttr3(PyObject *o, PyObject *n, PyObject *d) {
 
10414
    PyObject *r = PyObject_GetAttr(o, n);
 
10415
    if (!r) {
 
10416
        if (!PyErr_ExceptionMatches(PyExc_AttributeError))
 
10417
            goto bad;
 
10418
        PyErr_Clear();
 
10419
        r = d;
 
10420
        Py_INCREF(d);
 
10421
    }
 
10422
    return r;
 
10423
bad:
 
10424
    return NULL;
 
10425
}
 
10426
 
 
10427
#if PY_MAJOR_VERSION < 3
 
10428
static PyObject *__Pyx_GetStdout(void) {
 
10429
    PyObject *f = PySys_GetObject((char *)"stdout");
 
10430
    if (!f) {
 
10431
        PyErr_SetString(PyExc_RuntimeError, "lost sys.stdout");
 
10432
    }
 
10433
    return f;
 
10434
}
 
10435
 
 
10436
static int __Pyx_Print(PyObject* f, PyObject *arg_tuple, int newline) {
 
10437
    PyObject* v;
 
10438
    int i;
 
10439
 
 
10440
    if (!f) {
 
10441
        if (!(f = __Pyx_GetStdout()))
 
10442
            return -1;
 
10443
    }
 
10444
    for (i=0; i < PyTuple_GET_SIZE(arg_tuple); i++) {
 
10445
        if (PyFile_SoftSpace(f, 1)) {
 
10446
            if (PyFile_WriteString(" ", f) < 0)
 
10447
                return -1;
 
10448
        }
 
10449
        v = PyTuple_GET_ITEM(arg_tuple, i);
 
10450
        if (PyFile_WriteObject(v, f, Py_PRINT_RAW) < 0)
 
10451
            return -1;
 
10452
        if (PyString_Check(v)) {
 
10453
            char *s = PyString_AsString(v);
 
10454
            Py_ssize_t len = PyString_Size(v);
 
10455
            if (len > 0 &&
 
10456
                isspace(Py_CHARMASK(s[len-1])) &&
 
10457
                s[len-1] != ' ')
 
10458
                    PyFile_SoftSpace(f, 0);
 
10459
        }
 
10460
    }
 
10461
    if (newline) {
 
10462
        if (PyFile_WriteString("\n", f) < 0)
 
10463
            return -1;
 
10464
        PyFile_SoftSpace(f, 0);
 
10465
    }
 
10466
    return 0;
 
10467
}
 
10468
 
 
10469
#else /* Python 3 has a print function */
 
10470
 
 
10471
static int __Pyx_Print(PyObject* stream, PyObject *arg_tuple, int newline) {
 
10472
    PyObject* kwargs = 0;
 
10473
    PyObject* result = 0;
 
10474
    PyObject* end_string;
 
10475
    if (unlikely(!__pyx_print)) {
 
10476
        __pyx_print = __Pyx_GetAttrString(__pyx_b, "print");
 
10477
        if (!__pyx_print)
 
10478
            return -1;
 
10479
    }
 
10480
    if (stream) {
 
10481
        kwargs = PyDict_New();
 
10482
        if (unlikely(!kwargs))
 
10483
            return -1;
 
10484
        if (unlikely(PyDict_SetItemString(kwargs, "file", stream) < 0))
 
10485
            goto bad;
 
10486
        if (!newline) {
 
10487
            end_string = PyUnicode_FromStringAndSize(" ", 1);
 
10488
            if (unlikely(!end_string))
 
10489
                goto bad;
 
10490
            if (PyDict_SetItemString(kwargs, "end", end_string) < 0) {
 
10491
                Py_DECREF(end_string);
 
10492
                goto bad;
 
10493
            }
 
10494
            Py_DECREF(end_string);
 
10495
        }
 
10496
    } else if (!newline) {
 
10497
        if (unlikely(!__pyx_print_kwargs)) {
 
10498
            __pyx_print_kwargs = PyDict_New();
 
10499
            if (unlikely(!__pyx_print_kwargs))
 
10500
                return -1;
 
10501
            end_string = PyUnicode_FromStringAndSize(" ", 1);
 
10502
            if (unlikely(!end_string))
 
10503
                return -1;
 
10504
            if (PyDict_SetItemString(__pyx_print_kwargs, "end", end_string) < 0) {
 
10505
                Py_DECREF(end_string);
 
10506
                return -1;
 
10507
            }
 
10508
            Py_DECREF(end_string);
 
10509
        }
 
10510
        kwargs = __pyx_print_kwargs;
 
10511
    }
 
10512
    result = PyObject_Call(__pyx_print, arg_tuple, kwargs);
 
10513
    if (unlikely(kwargs) && (kwargs != __pyx_print_kwargs))
 
10514
        Py_DECREF(kwargs);
 
10515
    if (!result)
 
10516
        return -1;
 
10517
    Py_DECREF(result);
 
10518
    return 0;
 
10519
bad:
 
10520
    if (kwargs != __pyx_print_kwargs)
 
10521
        Py_XDECREF(kwargs);
 
10522
    return -1;
 
10523
}
 
10524
 
 
10525
#endif
 
10526
 
 
10527
#if PY_MAJOR_VERSION < 3
 
10528
 
 
10529
static int __Pyx_PrintOne(PyObject* f, PyObject *o) {
 
10530
    if (!f) {
 
10531
        if (!(f = __Pyx_GetStdout()))
 
10532
            return -1;
 
10533
    }
 
10534
    if (PyFile_SoftSpace(f, 0)) {
 
10535
        if (PyFile_WriteString(" ", f) < 0)
 
10536
            return -1;
 
10537
    }
 
10538
    if (PyFile_WriteObject(o, f, Py_PRINT_RAW) < 0)
 
10539
        return -1;
 
10540
    if (PyFile_WriteString("\n", f) < 0)
 
10541
        return -1;
 
10542
    return 0;
 
10543
    /* the line below is just to avoid compiler
 
10544
     * compiler warnings about unused functions */
 
10545
    return __Pyx_Print(f, NULL, 0);
 
10546
}
 
10547
 
 
10548
#else /* Python 3 has a print function */
 
10549
 
 
10550
static int __Pyx_PrintOne(PyObject* stream, PyObject *o) {
 
10551
    int res;
 
10552
    PyObject* arg_tuple = PyTuple_New(1);
 
10553
    if (unlikely(!arg_tuple))
 
10554
        return -1;
 
10555
    Py_INCREF(o);
 
10556
    PyTuple_SET_ITEM(arg_tuple, 0, o);
 
10557
    res = __Pyx_Print(stream, arg_tuple, 1);
 
10558
    Py_DECREF(arg_tuple);
 
10559
    return res;
 
10560
}
 
10561
 
 
10562
#endif
 
10563
 
 
10564
static CYTHON_INLINE unsigned char __Pyx_PyInt_AsUnsignedChar(PyObject* x) {
 
10565
    const unsigned char neg_one = (unsigned char)-1, const_zero = 0;
 
10566
    const int is_unsigned = neg_one > const_zero;
 
10567
    if (sizeof(unsigned char) < sizeof(long)) {
 
10568
        long val = __Pyx_PyInt_AsLong(x);
 
10569
        if (unlikely(val != (long)(unsigned char)val)) {
 
10570
            if (!unlikely(val == -1 && PyErr_Occurred())) {
 
10571
                PyErr_SetString(PyExc_OverflowError,
 
10572
                    (is_unsigned && unlikely(val < 0)) ?
 
10573
                    "can't convert negative value to unsigned char" :
 
10574
                    "value too large to convert to unsigned char");
 
10575
            }
 
10576
            return (unsigned char)-1;
 
10577
        }
 
10578
        return (unsigned char)val;
 
10579
    }
 
10580
    return (unsigned char)__Pyx_PyInt_AsUnsignedLong(x);
 
10581
}
 
10582
 
 
10583
static CYTHON_INLINE unsigned short __Pyx_PyInt_AsUnsignedShort(PyObject* x) {
 
10584
    const unsigned short neg_one = (unsigned short)-1, const_zero = 0;
 
10585
    const int is_unsigned = neg_one > const_zero;
 
10586
    if (sizeof(unsigned short) < sizeof(long)) {
 
10587
        long val = __Pyx_PyInt_AsLong(x);
 
10588
        if (unlikely(val != (long)(unsigned short)val)) {
 
10589
            if (!unlikely(val == -1 && PyErr_Occurred())) {
 
10590
                PyErr_SetString(PyExc_OverflowError,
 
10591
                    (is_unsigned && unlikely(val < 0)) ?
 
10592
                    "can't convert negative value to unsigned short" :
 
10593
                    "value too large to convert to unsigned short");
 
10594
            }
 
10595
            return (unsigned short)-1;
 
10596
        }
 
10597
        return (unsigned short)val;
 
10598
    }
 
10599
    return (unsigned short)__Pyx_PyInt_AsUnsignedLong(x);
 
10600
}
 
10601
 
 
10602
static CYTHON_INLINE unsigned int __Pyx_PyInt_AsUnsignedInt(PyObject* x) {
 
10603
    const unsigned int neg_one = (unsigned int)-1, const_zero = 0;
 
10604
    const int is_unsigned = neg_one > const_zero;
 
10605
    if (sizeof(unsigned int) < sizeof(long)) {
 
10606
        long val = __Pyx_PyInt_AsLong(x);
 
10607
        if (unlikely(val != (long)(unsigned int)val)) {
 
10608
            if (!unlikely(val == -1 && PyErr_Occurred())) {
 
10609
                PyErr_SetString(PyExc_OverflowError,
 
10610
                    (is_unsigned && unlikely(val < 0)) ?
 
10611
                    "can't convert negative value to unsigned int" :
 
10612
                    "value too large to convert to unsigned int");
 
10613
            }
 
10614
            return (unsigned int)-1;
 
10615
        }
 
10616
        return (unsigned int)val;
 
10617
    }
 
10618
    return (unsigned int)__Pyx_PyInt_AsUnsignedLong(x);
 
10619
}
 
10620
 
 
10621
static CYTHON_INLINE char __Pyx_PyInt_AsChar(PyObject* x) {
 
10622
    const char neg_one = (char)-1, const_zero = 0;
 
10623
    const int is_unsigned = neg_one > const_zero;
 
10624
    if (sizeof(char) < sizeof(long)) {
 
10625
        long val = __Pyx_PyInt_AsLong(x);
 
10626
        if (unlikely(val != (long)(char)val)) {
 
10627
            if (!unlikely(val == -1 && PyErr_Occurred())) {
 
10628
                PyErr_SetString(PyExc_OverflowError,
 
10629
                    (is_unsigned && unlikely(val < 0)) ?
 
10630
                    "can't convert negative value to char" :
 
10631
                    "value too large to convert to char");
 
10632
            }
 
10633
            return (char)-1;
 
10634
        }
 
10635
        return (char)val;
 
10636
    }
 
10637
    return (char)__Pyx_PyInt_AsLong(x);
 
10638
}
 
10639
 
 
10640
static CYTHON_INLINE short __Pyx_PyInt_AsShort(PyObject* x) {
 
10641
    const short neg_one = (short)-1, const_zero = 0;
 
10642
    const int is_unsigned = neg_one > const_zero;
 
10643
    if (sizeof(short) < sizeof(long)) {
 
10644
        long val = __Pyx_PyInt_AsLong(x);
 
10645
        if (unlikely(val != (long)(short)val)) {
 
10646
            if (!unlikely(val == -1 && PyErr_Occurred())) {
 
10647
                PyErr_SetString(PyExc_OverflowError,
 
10648
                    (is_unsigned && unlikely(val < 0)) ?
 
10649
                    "can't convert negative value to short" :
 
10650
                    "value too large to convert to short");
 
10651
            }
 
10652
            return (short)-1;
 
10653
        }
 
10654
        return (short)val;
 
10655
    }
 
10656
    return (short)__Pyx_PyInt_AsLong(x);
 
10657
}
 
10658
 
 
10659
static CYTHON_INLINE int __Pyx_PyInt_AsInt(PyObject* x) {
 
10660
    const int neg_one = (int)-1, const_zero = 0;
 
10661
    const int is_unsigned = neg_one > const_zero;
 
10662
    if (sizeof(int) < sizeof(long)) {
 
10663
        long val = __Pyx_PyInt_AsLong(x);
 
10664
        if (unlikely(val != (long)(int)val)) {
 
10665
            if (!unlikely(val == -1 && PyErr_Occurred())) {
 
10666
                PyErr_SetString(PyExc_OverflowError,
 
10667
                    (is_unsigned && unlikely(val < 0)) ?
 
10668
                    "can't convert negative value to int" :
 
10669
                    "value too large to convert to int");
 
10670
            }
 
10671
            return (int)-1;
 
10672
        }
 
10673
        return (int)val;
 
10674
    }
 
10675
    return (int)__Pyx_PyInt_AsLong(x);
 
10676
}
 
10677
 
 
10678
static CYTHON_INLINE signed char __Pyx_PyInt_AsSignedChar(PyObject* x) {
 
10679
    const signed char neg_one = (signed char)-1, const_zero = 0;
 
10680
    const int is_unsigned = neg_one > const_zero;
 
10681
    if (sizeof(signed char) < sizeof(long)) {
 
10682
        long val = __Pyx_PyInt_AsLong(x);
 
10683
        if (unlikely(val != (long)(signed char)val)) {
 
10684
            if (!unlikely(val == -1 && PyErr_Occurred())) {
 
10685
                PyErr_SetString(PyExc_OverflowError,
 
10686
                    (is_unsigned && unlikely(val < 0)) ?
 
10687
                    "can't convert negative value to signed char" :
 
10688
                    "value too large to convert to signed char");
 
10689
            }
 
10690
            return (signed char)-1;
 
10691
        }
 
10692
        return (signed char)val;
 
10693
    }
 
10694
    return (signed char)__Pyx_PyInt_AsSignedLong(x);
 
10695
}
 
10696
 
 
10697
static CYTHON_INLINE signed short __Pyx_PyInt_AsSignedShort(PyObject* x) {
 
10698
    const signed short neg_one = (signed short)-1, const_zero = 0;
 
10699
    const int is_unsigned = neg_one > const_zero;
 
10700
    if (sizeof(signed short) < sizeof(long)) {
 
10701
        long val = __Pyx_PyInt_AsLong(x);
 
10702
        if (unlikely(val != (long)(signed short)val)) {
 
10703
            if (!unlikely(val == -1 && PyErr_Occurred())) {
 
10704
                PyErr_SetString(PyExc_OverflowError,
 
10705
                    (is_unsigned && unlikely(val < 0)) ?
 
10706
                    "can't convert negative value to signed short" :
 
10707
                    "value too large to convert to signed short");
 
10708
            }
 
10709
            return (signed short)-1;
 
10710
        }
 
10711
        return (signed short)val;
 
10712
    }
 
10713
    return (signed short)__Pyx_PyInt_AsSignedLong(x);
 
10714
}
 
10715
 
 
10716
static CYTHON_INLINE signed int __Pyx_PyInt_AsSignedInt(PyObject* x) {
 
10717
    const signed int neg_one = (signed int)-1, const_zero = 0;
 
10718
    const int is_unsigned = neg_one > const_zero;
 
10719
    if (sizeof(signed int) < sizeof(long)) {
 
10720
        long val = __Pyx_PyInt_AsLong(x);
 
10721
        if (unlikely(val != (long)(signed int)val)) {
 
10722
            if (!unlikely(val == -1 && PyErr_Occurred())) {
 
10723
                PyErr_SetString(PyExc_OverflowError,
 
10724
                    (is_unsigned && unlikely(val < 0)) ?
 
10725
                    "can't convert negative value to signed int" :
 
10726
                    "value too large to convert to signed int");
 
10727
            }
 
10728
            return (signed int)-1;
 
10729
        }
 
10730
        return (signed int)val;
 
10731
    }
 
10732
    return (signed int)__Pyx_PyInt_AsSignedLong(x);
 
10733
}
 
10734
 
 
10735
static CYTHON_INLINE int __Pyx_PyInt_AsLongDouble(PyObject* x) {
 
10736
    const int neg_one = (int)-1, const_zero = 0;
 
10737
    const int is_unsigned = neg_one > const_zero;
 
10738
    if (sizeof(int) < sizeof(long)) {
 
10739
        long val = __Pyx_PyInt_AsLong(x);
 
10740
        if (unlikely(val != (long)(int)val)) {
 
10741
            if (!unlikely(val == -1 && PyErr_Occurred())) {
 
10742
                PyErr_SetString(PyExc_OverflowError,
 
10743
                    (is_unsigned && unlikely(val < 0)) ?
 
10744
                    "can't convert negative value to int" :
 
10745
                    "value too large to convert to int");
 
10746
            }
 
10747
            return (int)-1;
 
10748
        }
 
10749
        return (int)val;
 
10750
    }
 
10751
    return (int)__Pyx_PyInt_AsLong(x);
 
10752
}
 
10753
 
 
10754
static CYTHON_INLINE unsigned long __Pyx_PyInt_AsUnsignedLong(PyObject* x) {
 
10755
    const unsigned long neg_one = (unsigned long)-1, const_zero = 0;
 
10756
    const int is_unsigned = neg_one > const_zero;
 
10757
#if PY_VERSION_HEX < 0x03000000
 
10758
    if (likely(PyInt_Check(x))) {
 
10759
        long val = PyInt_AS_LONG(x);
 
10760
        if (is_unsigned && unlikely(val < 0)) {
 
10761
            PyErr_SetString(PyExc_OverflowError,
 
10762
                            "can't convert negative value to unsigned long");
 
10763
            return (unsigned long)-1;
 
10764
        }
 
10765
        return (unsigned long)val;
 
10766
    } else
 
10767
#endif
 
10768
    if (likely(PyLong_Check(x))) {
 
10769
        if (is_unsigned) {
 
10770
            if (unlikely(Py_SIZE(x) < 0)) {
 
10771
                PyErr_SetString(PyExc_OverflowError,
 
10772
                                "can't convert negative value to unsigned long");
 
10773
                return (unsigned long)-1;
 
10774
            }
 
10775
            return PyLong_AsUnsignedLong(x);
 
10776
        } else {
 
10777
            return PyLong_AsLong(x);
 
10778
        }
 
10779
    } else {
 
10780
        unsigned long val;
 
10781
        PyObject *tmp = __Pyx_PyNumber_Int(x);
 
10782
        if (!tmp) return (unsigned long)-1;
 
10783
        val = __Pyx_PyInt_AsUnsignedLong(tmp);
 
10784
        Py_DECREF(tmp);
 
10785
        return val;
 
10786
    }
 
10787
}
 
10788
 
 
10789
static CYTHON_INLINE unsigned PY_LONG_LONG __Pyx_PyInt_AsUnsignedLongLong(PyObject* x) {
 
10790
    const unsigned PY_LONG_LONG neg_one = (unsigned PY_LONG_LONG)-1, const_zero = 0;
 
10791
    const int is_unsigned = neg_one > const_zero;
 
10792
#if PY_VERSION_HEX < 0x03000000
 
10793
    if (likely(PyInt_Check(x))) {
 
10794
        long val = PyInt_AS_LONG(x);
 
10795
        if (is_unsigned && unlikely(val < 0)) {
 
10796
            PyErr_SetString(PyExc_OverflowError,
 
10797
                            "can't convert negative value to unsigned PY_LONG_LONG");
 
10798
            return (unsigned PY_LONG_LONG)-1;
 
10799
        }
 
10800
        return (unsigned PY_LONG_LONG)val;
 
10801
    } else
 
10802
#endif
 
10803
    if (likely(PyLong_Check(x))) {
 
10804
        if (is_unsigned) {
 
10805
            if (unlikely(Py_SIZE(x) < 0)) {
 
10806
                PyErr_SetString(PyExc_OverflowError,
 
10807
                                "can't convert negative value to unsigned PY_LONG_LONG");
 
10808
                return (unsigned PY_LONG_LONG)-1;
 
10809
            }
 
10810
            return PyLong_AsUnsignedLongLong(x);
 
10811
        } else {
 
10812
            return PyLong_AsLongLong(x);
 
10813
        }
 
10814
    } else {
 
10815
        unsigned PY_LONG_LONG val;
 
10816
        PyObject *tmp = __Pyx_PyNumber_Int(x);
 
10817
        if (!tmp) return (unsigned PY_LONG_LONG)-1;
 
10818
        val = __Pyx_PyInt_AsUnsignedLongLong(tmp);
 
10819
        Py_DECREF(tmp);
 
10820
        return val;
 
10821
    }
 
10822
}
 
10823
 
 
10824
static CYTHON_INLINE long __Pyx_PyInt_AsLong(PyObject* x) {
 
10825
    const long neg_one = (long)-1, const_zero = 0;
 
10826
    const int is_unsigned = neg_one > const_zero;
 
10827
#if PY_VERSION_HEX < 0x03000000
 
10828
    if (likely(PyInt_Check(x))) {
 
10829
        long val = PyInt_AS_LONG(x);
 
10830
        if (is_unsigned && unlikely(val < 0)) {
 
10831
            PyErr_SetString(PyExc_OverflowError,
 
10832
                            "can't convert negative value to long");
 
10833
            return (long)-1;
 
10834
        }
 
10835
        return (long)val;
 
10836
    } else
 
10837
#endif
 
10838
    if (likely(PyLong_Check(x))) {
 
10839
        if (is_unsigned) {
 
10840
            if (unlikely(Py_SIZE(x) < 0)) {
 
10841
                PyErr_SetString(PyExc_OverflowError,
 
10842
                                "can't convert negative value to long");
 
10843
                return (long)-1;
 
10844
            }
 
10845
            return PyLong_AsUnsignedLong(x);
 
10846
        } else {
 
10847
            return PyLong_AsLong(x);
 
10848
        }
 
10849
    } else {
 
10850
        long val;
 
10851
        PyObject *tmp = __Pyx_PyNumber_Int(x);
 
10852
        if (!tmp) return (long)-1;
 
10853
        val = __Pyx_PyInt_AsLong(tmp);
 
10854
        Py_DECREF(tmp);
 
10855
        return val;
 
10856
    }
 
10857
}
 
10858
 
 
10859
static CYTHON_INLINE PY_LONG_LONG __Pyx_PyInt_AsLongLong(PyObject* x) {
 
10860
    const PY_LONG_LONG neg_one = (PY_LONG_LONG)-1, const_zero = 0;
 
10861
    const int is_unsigned = neg_one > const_zero;
 
10862
#if PY_VERSION_HEX < 0x03000000
 
10863
    if (likely(PyInt_Check(x))) {
 
10864
        long val = PyInt_AS_LONG(x);
 
10865
        if (is_unsigned && unlikely(val < 0)) {
 
10866
            PyErr_SetString(PyExc_OverflowError,
 
10867
                            "can't convert negative value to PY_LONG_LONG");
 
10868
            return (PY_LONG_LONG)-1;
 
10869
        }
 
10870
        return (PY_LONG_LONG)val;
 
10871
    } else
 
10872
#endif
 
10873
    if (likely(PyLong_Check(x))) {
 
10874
        if (is_unsigned) {
 
10875
            if (unlikely(Py_SIZE(x) < 0)) {
 
10876
                PyErr_SetString(PyExc_OverflowError,
 
10877
                                "can't convert negative value to PY_LONG_LONG");
 
10878
                return (PY_LONG_LONG)-1;
 
10879
            }
 
10880
            return PyLong_AsUnsignedLongLong(x);
 
10881
        } else {
 
10882
            return PyLong_AsLongLong(x);
 
10883
        }
 
10884
    } else {
 
10885
        PY_LONG_LONG val;
 
10886
        PyObject *tmp = __Pyx_PyNumber_Int(x);
 
10887
        if (!tmp) return (PY_LONG_LONG)-1;
 
10888
        val = __Pyx_PyInt_AsLongLong(tmp);
 
10889
        Py_DECREF(tmp);
 
10890
        return val;
 
10891
    }
 
10892
}
 
10893
 
 
10894
static CYTHON_INLINE signed long __Pyx_PyInt_AsSignedLong(PyObject* x) {
 
10895
    const signed long neg_one = (signed long)-1, const_zero = 0;
 
10896
    const int is_unsigned = neg_one > const_zero;
 
10897
#if PY_VERSION_HEX < 0x03000000
 
10898
    if (likely(PyInt_Check(x))) {
 
10899
        long val = PyInt_AS_LONG(x);
 
10900
        if (is_unsigned && unlikely(val < 0)) {
 
10901
            PyErr_SetString(PyExc_OverflowError,
 
10902
                            "can't convert negative value to signed long");
 
10903
            return (signed long)-1;
 
10904
        }
 
10905
        return (signed long)val;
 
10906
    } else
 
10907
#endif
 
10908
    if (likely(PyLong_Check(x))) {
 
10909
        if (is_unsigned) {
 
10910
            if (unlikely(Py_SIZE(x) < 0)) {
 
10911
                PyErr_SetString(PyExc_OverflowError,
 
10912
                                "can't convert negative value to signed long");
 
10913
                return (signed long)-1;
 
10914
            }
 
10915
            return PyLong_AsUnsignedLong(x);
 
10916
        } else {
 
10917
            return PyLong_AsLong(x);
 
10918
        }
 
10919
    } else {
 
10920
        signed long val;
 
10921
        PyObject *tmp = __Pyx_PyNumber_Int(x);
 
10922
        if (!tmp) return (signed long)-1;
 
10923
        val = __Pyx_PyInt_AsSignedLong(tmp);
 
10924
        Py_DECREF(tmp);
 
10925
        return val;
 
10926
    }
 
10927
}
 
10928
 
 
10929
static CYTHON_INLINE signed PY_LONG_LONG __Pyx_PyInt_AsSignedLongLong(PyObject* x) {
 
10930
    const signed PY_LONG_LONG neg_one = (signed PY_LONG_LONG)-1, const_zero = 0;
 
10931
    const int is_unsigned = neg_one > const_zero;
 
10932
#if PY_VERSION_HEX < 0x03000000
 
10933
    if (likely(PyInt_Check(x))) {
 
10934
        long val = PyInt_AS_LONG(x);
 
10935
        if (is_unsigned && unlikely(val < 0)) {
 
10936
            PyErr_SetString(PyExc_OverflowError,
 
10937
                            "can't convert negative value to signed PY_LONG_LONG");
 
10938
            return (signed PY_LONG_LONG)-1;
 
10939
        }
 
10940
        return (signed PY_LONG_LONG)val;
 
10941
    } else
 
10942
#endif
 
10943
    if (likely(PyLong_Check(x))) {
 
10944
        if (is_unsigned) {
 
10945
            if (unlikely(Py_SIZE(x) < 0)) {
 
10946
                PyErr_SetString(PyExc_OverflowError,
 
10947
                                "can't convert negative value to signed PY_LONG_LONG");
 
10948
                return (signed PY_LONG_LONG)-1;
 
10949
            }
 
10950
            return PyLong_AsUnsignedLongLong(x);
 
10951
        } else {
 
10952
            return PyLong_AsLongLong(x);
 
10953
        }
 
10954
    } else {
 
10955
        signed PY_LONG_LONG val;
 
10956
        PyObject *tmp = __Pyx_PyNumber_Int(x);
 
10957
        if (!tmp) return (signed PY_LONG_LONG)-1;
 
10958
        val = __Pyx_PyInt_AsSignedLongLong(tmp);
 
10959
        Py_DECREF(tmp);
 
10960
        return val;
 
10961
    }
 
10962
}
 
10963
 
 
10964
static int __Pyx_SetVtable(PyObject *dict, void *vtable) {
 
10965
#if PY_VERSION_HEX >= 0x02070000 && !(PY_MAJOR_VERSION==3&&PY_MINOR_VERSION==0)
 
10966
    PyObject *ob = PyCapsule_New(vtable, 0, 0);
 
10967
#else
 
10968
    PyObject *ob = PyCObject_FromVoidPtr(vtable, 0);
 
10969
#endif
 
10970
    if (!ob)
 
10971
        goto bad;
 
10972
    if (PyDict_SetItemString(dict, "__pyx_vtable__", ob) < 0)
 
10973
        goto bad;
 
10974
    Py_DECREF(ob);
 
10975
    return 0;
 
10976
bad:
 
10977
    Py_XDECREF(ob);
 
10978
    return -1;
 
10979
}
 
10980
 
 
10981
#include "compile.h"
 
10982
#include "frameobject.h"
 
10983
#include "traceback.h"
 
10984
 
 
10985
static void __Pyx_AddTraceback(const char *funcname) {
 
10986
    PyObject *py_srcfile = 0;
 
10987
    PyObject *py_funcname = 0;
 
10988
    PyObject *py_globals = 0;
 
10989
    PyCodeObject *py_code = 0;
 
10990
    PyFrameObject *py_frame = 0;
 
10991
 
 
10992
    #if PY_MAJOR_VERSION < 3
 
10993
    py_srcfile = PyString_FromString(__pyx_filename);
 
10994
    #else
 
10995
    py_srcfile = PyUnicode_FromString(__pyx_filename);
 
10996
    #endif
 
10997
    if (!py_srcfile) goto bad;
 
10998
    if (__pyx_clineno) {
 
10999
        #if PY_MAJOR_VERSION < 3
 
11000
        py_funcname = PyString_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, __pyx_clineno);
 
11001
        #else
 
11002
        py_funcname = PyUnicode_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, __pyx_clineno);
 
11003
        #endif
 
11004
    }
 
11005
    else {
 
11006
        #if PY_MAJOR_VERSION < 3
 
11007
        py_funcname = PyString_FromString(funcname);
 
11008
        #else
 
11009
        py_funcname = PyUnicode_FromString(funcname);
 
11010
        #endif
 
11011
    }
 
11012
    if (!py_funcname) goto bad;
 
11013
    py_globals = PyModule_GetDict(__pyx_m);
 
11014
    if (!py_globals) goto bad;
 
11015
    py_code = PyCode_New(
 
11016
        0,            /*int argcount,*/
 
11017
        #if PY_MAJOR_VERSION >= 3
 
11018
        0,            /*int kwonlyargcount,*/
 
11019
        #endif
 
11020
        0,            /*int nlocals,*/
 
11021
        0,            /*int stacksize,*/
 
11022
        0,            /*int flags,*/
 
11023
        __pyx_empty_bytes, /*PyObject *code,*/
 
11024
        __pyx_empty_tuple,  /*PyObject *consts,*/
 
11025
        __pyx_empty_tuple,  /*PyObject *names,*/
 
11026
        __pyx_empty_tuple,  /*PyObject *varnames,*/
 
11027
        __pyx_empty_tuple,  /*PyObject *freevars,*/
 
11028
        __pyx_empty_tuple,  /*PyObject *cellvars,*/
 
11029
        py_srcfile,   /*PyObject *filename,*/
 
11030
        py_funcname,  /*PyObject *name,*/
 
11031
        __pyx_lineno,   /*int firstlineno,*/
 
11032
        __pyx_empty_bytes  /*PyObject *lnotab*/
 
11033
    );
 
11034
    if (!py_code) goto bad;
 
11035
    py_frame = PyFrame_New(
 
11036
        PyThreadState_GET(), /*PyThreadState *tstate,*/
 
11037
        py_code,             /*PyCodeObject *code,*/
 
11038
        py_globals,          /*PyObject *globals,*/
 
11039
        0                    /*PyObject *locals*/
 
11040
    );
 
11041
    if (!py_frame) goto bad;
 
11042
    py_frame->f_lineno = __pyx_lineno;
 
11043
    PyTraceBack_Here(py_frame);
 
11044
bad:
 
11045
    Py_XDECREF(py_srcfile);
 
11046
    Py_XDECREF(py_funcname);
 
11047
    Py_XDECREF(py_code);
 
11048
    Py_XDECREF(py_frame);
 
11049
}
 
11050
 
 
11051
static int __Pyx_InitStrings(__Pyx_StringTabEntry *t) {
 
11052
    while (t->p) {
 
11053
        #if PY_MAJOR_VERSION < 3
 
11054
        if (t->is_unicode) {
 
11055
            *t->p = PyUnicode_DecodeUTF8(t->s, t->n - 1, NULL);
 
11056
        } else if (t->intern) {
 
11057
            *t->p = PyString_InternFromString(t->s);
 
11058
        } else {
 
11059
            *t->p = PyString_FromStringAndSize(t->s, t->n - 1);
 
11060
        }
 
11061
        #else  /* Python 3+ has unicode identifiers */
 
11062
        if (t->is_unicode | t->is_str) {
 
11063
            if (t->intern) {
 
11064
                *t->p = PyUnicode_InternFromString(t->s);
 
11065
            } else if (t->encoding) {
 
11066
                *t->p = PyUnicode_Decode(t->s, t->n - 1, t->encoding, NULL);
 
11067
            } else {
 
11068
                *t->p = PyUnicode_FromStringAndSize(t->s, t->n - 1);
 
11069
            }
 
11070
        } else {
 
11071
            *t->p = PyBytes_FromStringAndSize(t->s, t->n - 1);
 
11072
        }
 
11073
        #endif
 
11074
        if (!*t->p)
 
11075
            return -1;
 
11076
        ++t;
 
11077
    }
 
11078
    return 0;
 
11079
}
 
11080
 
 
11081
/* Type Conversion Functions */
 
11082
 
 
11083
static CYTHON_INLINE int __Pyx_PyObject_IsTrue(PyObject* x) {
 
11084
   int is_true = x == Py_True;
 
11085
   if (is_true | (x == Py_False) | (x == Py_None)) return is_true;
 
11086
   else return PyObject_IsTrue(x);
 
11087
}
 
11088
 
 
11089
static CYTHON_INLINE PyObject* __Pyx_PyNumber_Int(PyObject* x) {
 
11090
  PyNumberMethods *m;
 
11091
  const char *name = NULL;
 
11092
  PyObject *res = NULL;
 
11093
#if PY_VERSION_HEX < 0x03000000
 
11094
  if (PyInt_Check(x) || PyLong_Check(x))
 
11095
#else
 
11096
  if (PyLong_Check(x))
 
11097
#endif
 
11098
    return Py_INCREF(x), x;
 
11099
  m = Py_TYPE(x)->tp_as_number;
 
11100
#if PY_VERSION_HEX < 0x03000000
 
11101
  if (m && m->nb_int) {
 
11102
    name = "int";
 
11103
    res = PyNumber_Int(x);
 
11104
  }
 
11105
  else if (m && m->nb_long) {
 
11106
    name = "long";
 
11107
    res = PyNumber_Long(x);
 
11108
  }
 
11109
#else
 
11110
  if (m && m->nb_int) {
 
11111
    name = "int";
 
11112
    res = PyNumber_Long(x);
 
11113
  }
 
11114
#endif
 
11115
  if (res) {
 
11116
#if PY_VERSION_HEX < 0x03000000
 
11117
    if (!PyInt_Check(res) && !PyLong_Check(res)) {
 
11118
#else
 
11119
    if (!PyLong_Check(res)) {
 
11120
#endif
 
11121
      PyErr_Format(PyExc_TypeError,
 
11122
                   "__%s__ returned non-%s (type %.200s)",
 
11123
                   name, name, Py_TYPE(res)->tp_name);
 
11124
      Py_DECREF(res);
 
11125
      return NULL;
 
11126
    }
 
11127
  }
 
11128
  else if (!PyErr_Occurred()) {
 
11129
    PyErr_SetString(PyExc_TypeError,
 
11130
                    "an integer is required");
 
11131
  }
 
11132
  return res;
 
11133
}
 
11134
 
 
11135
static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject* b) {
 
11136
  Py_ssize_t ival;
 
11137
  PyObject* x = PyNumber_Index(b);
 
11138
  if (!x) return -1;
 
11139
  ival = PyInt_AsSsize_t(x);
 
11140
  Py_DECREF(x);
 
11141
  return ival;
 
11142
}
 
11143
 
 
11144
static CYTHON_INLINE PyObject * __Pyx_PyInt_FromSize_t(size_t ival) {
 
11145
#if PY_VERSION_HEX < 0x02050000
 
11146
   if (ival <= LONG_MAX)
 
11147
       return PyInt_FromLong((long)ival);
 
11148
   else {
 
11149
       unsigned char *bytes = (unsigned char *) &ival;
 
11150
       int one = 1; int little = (int)*(unsigned char*)&one;
 
11151
       return _PyLong_FromByteArray(bytes, sizeof(size_t), little, 0);
 
11152
   }
 
11153
#else
 
11154
   return PyInt_FromSize_t(ival);
 
11155
#endif
 
11156
}
 
11157
 
 
11158
static CYTHON_INLINE size_t __Pyx_PyInt_AsSize_t(PyObject* x) {
 
11159
   unsigned PY_LONG_LONG val = __Pyx_PyInt_AsUnsignedLongLong(x);
 
11160
   if (unlikely(val == (unsigned PY_LONG_LONG)-1 && PyErr_Occurred())) {
 
11161
       return (size_t)-1;
 
11162
   } else if (unlikely(val != (unsigned PY_LONG_LONG)(size_t)val)) {
 
11163
       PyErr_SetString(PyExc_OverflowError,
 
11164
                       "value too large to convert to size_t");
 
11165
       return (size_t)-1;
 
11166
   }
 
11167
   return (size_t)val;
 
11168
}
 
11169
 
 
11170
 
 
11171
#endif /* Py_PYTHON_H */